@fluidframework/merge-tree 2.0.0-internal.7.2.2 → 2.0.0-internal.7.3.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/api-extractor.json +3 -0
- package/api-report/merge-tree.api.md +31 -30
- package/dist/MergeTreeTextHelper.d.ts.map +1 -1
- package/dist/MergeTreeTextHelper.js +0 -1
- package/dist/MergeTreeTextHelper.js.map +1 -1
- package/dist/attributionPolicy.d.ts.map +1 -1
- package/dist/attributionPolicy.js +1 -0
- package/dist/attributionPolicy.js.map +1 -1
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -6
- package/dist/client.js.map +1 -1
- package/dist/constants.d.ts +14 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +14 -0
- package/dist/constants.js.map +1 -1
- package/dist/endOfTreeSegment.d.ts.map +1 -1
- package/dist/endOfTreeSegment.js +1 -0
- package/dist/endOfTreeSegment.js.map +1 -1
- package/dist/merge-tree-alpha.d.ts +1409 -0
- package/dist/merge-tree-beta.d.ts +1295 -0
- package/dist/merge-tree-public.d.ts +1295 -0
- package/dist/merge-tree-untrimmed.d.ts +1783 -0
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +2 -22
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts +6 -0
- package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/dist/mergeTreeDeltaCallback.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +29 -0
- package/dist/mergeTreeNodes.d.ts.map +1 -1
- package/dist/mergeTreeNodes.js +16 -5
- package/dist/mergeTreeNodes.js.map +1 -1
- package/dist/mergeTreeTracking.d.ts.map +1 -1
- package/dist/mergeTreeTracking.js.map +1 -1
- package/dist/opBuilder.d.ts +11 -0
- package/dist/opBuilder.d.ts.map +1 -1
- package/dist/opBuilder.js +11 -0
- package/dist/opBuilder.js.map +1 -1
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +1 -0
- package/dist/partialLengths.js.map +1 -1
- package/dist/properties.d.ts +3 -0
- package/dist/properties.d.ts.map +1 -1
- package/dist/properties.js.map +1 -1
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +1 -2
- package/dist/revertibles.js.map +1 -1
- package/dist/segmentGroupCollection.d.ts +9 -0
- package/dist/segmentGroupCollection.d.ts.map +1 -1
- package/dist/segmentGroupCollection.js +10 -0
- package/dist/segmentGroupCollection.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +3 -6
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js +1 -0
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/snapshotV1.d.ts.map +1 -1
- package/dist/snapshotV1.js +1 -2
- package/dist/snapshotV1.js.map +1 -1
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js +1 -2
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/sortedSegmentSet.d.ts +5 -0
- package/dist/sortedSegmentSet.d.ts.map +1 -1
- package/dist/sortedSegmentSet.js +2 -0
- package/dist/sortedSegmentSet.js.map +1 -1
- package/dist/sortedSet.d.ts +3 -0
- package/dist/sortedSet.d.ts.map +1 -1
- package/dist/sortedSet.js +3 -0
- package/dist/sortedSet.js.map +1 -1
- package/dist/textSegment.d.ts +3 -0
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/zamboni.d.ts.map +1 -1
- package/dist/zamboni.js +1 -2
- package/dist/zamboni.js.map +1 -1
- package/lib/MergeTreeTextHelper.d.ts.map +1 -1
- package/lib/MergeTreeTextHelper.js +0 -1
- package/lib/MergeTreeTextHelper.js.map +1 -1
- package/lib/attributionPolicy.d.ts.map +1 -1
- package/lib/attributionPolicy.js +1 -0
- package/lib/attributionPolicy.js.map +1 -1
- package/lib/client.d.ts +3 -0
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +5 -9
- package/lib/client.js.map +1 -1
- package/lib/constants.d.ts +14 -0
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +14 -0
- package/lib/constants.js.map +1 -1
- package/lib/endOfTreeSegment.d.ts.map +1 -1
- package/lib/endOfTreeSegment.js +1 -0
- package/lib/endOfTreeSegment.js.map +1 -1
- package/lib/merge-tree-alpha.d.ts +1409 -0
- package/lib/merge-tree-beta.d.ts +1295 -0
- package/lib/merge-tree-public.d.ts +1295 -0
- package/lib/merge-tree-untrimmed.d.ts +1783 -0
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +4 -30
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts +6 -0
- package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/lib/mergeTreeDeltaCallback.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +29 -0
- package/lib/mergeTreeNodes.d.ts.map +1 -1
- package/lib/mergeTreeNodes.js +17 -8
- package/lib/mergeTreeNodes.js.map +1 -1
- package/lib/mergeTreeTracking.d.ts.map +1 -1
- package/lib/mergeTreeTracking.js.map +1 -1
- package/lib/opBuilder.d.ts +11 -0
- package/lib/opBuilder.d.ts.map +1 -1
- package/lib/opBuilder.js +11 -0
- package/lib/opBuilder.js.map +1 -1
- package/lib/partialLengths.d.ts.map +1 -1
- package/lib/partialLengths.js +1 -0
- package/lib/partialLengths.js.map +1 -1
- package/lib/properties.d.ts +3 -0
- package/lib/properties.d.ts.map +1 -1
- package/lib/properties.js.map +1 -1
- package/lib/revertibles.d.ts.map +1 -1
- package/lib/revertibles.js +1 -2
- package/lib/revertibles.js.map +1 -1
- package/lib/segmentGroupCollection.d.ts +9 -0
- package/lib/segmentGroupCollection.d.ts.map +1 -1
- package/lib/segmentGroupCollection.js +10 -0
- package/lib/segmentGroupCollection.js.map +1 -1
- package/lib/segmentPropertiesManager.d.ts.map +1 -1
- package/lib/segmentPropertiesManager.js +3 -6
- package/lib/segmentPropertiesManager.js.map +1 -1
- package/lib/snapshotLoader.d.ts.map +1 -1
- package/lib/snapshotLoader.js +1 -0
- package/lib/snapshotLoader.js.map +1 -1
- package/lib/snapshotV1.d.ts.map +1 -1
- package/lib/snapshotV1.js +1 -2
- package/lib/snapshotV1.js.map +1 -1
- package/lib/snapshotlegacy.d.ts.map +1 -1
- package/lib/snapshotlegacy.js +1 -2
- package/lib/snapshotlegacy.js.map +1 -1
- package/lib/sortedSegmentSet.d.ts +5 -0
- package/lib/sortedSegmentSet.d.ts.map +1 -1
- package/lib/sortedSegmentSet.js +2 -0
- package/lib/sortedSegmentSet.js.map +1 -1
- package/lib/sortedSet.d.ts +3 -0
- package/lib/sortedSet.d.ts.map +1 -1
- package/lib/sortedSet.js +3 -0
- package/lib/sortedSet.js.map +1 -1
- package/lib/textSegment.d.ts +3 -0
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js.map +1 -1
- package/lib/zamboni.d.ts.map +1 -1
- package/lib/zamboni.js +1 -2
- package/lib/zamboni.js.map +1 -1
- package/package.json +38 -22
- package/src/MergeTreeTextHelper.ts +2 -3
- package/src/attributionPolicy.ts +2 -0
- package/src/client.ts +5 -11
- package/src/constants.ts +18 -1
- package/src/endOfTreeSegment.ts +2 -0
- package/src/mergeTree.ts +1 -29
- package/src/mergeTreeDeltaCallback.ts +6 -0
- package/src/mergeTreeNodes.ts +30 -9
- package/src/mergeTreeTracking.ts +2 -0
- package/src/opBuilder.ts +11 -0
- package/src/partialLengths.ts +2 -0
- package/src/properties.ts +3 -0
- package/src/revertibles.ts +2 -2
- package/src/segmentGroupCollection.ts +11 -0
- package/src/segmentPropertiesManager.ts +3 -6
- package/src/snapshotLoader.ts +1 -0
- package/src/snapshotV1.ts +2 -2
- package/src/snapshotlegacy.ts +1 -2
- package/src/sortedSegmentSet.ts +8 -0
- package/src/sortedSet.ts +3 -0
- package/src/textSegment.ts +3 -0
- package/src/zamboni.ts +1 -2
- package/tsconfig.esnext.json +1 -2
- package/tsconfig.json +5 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @fluidframework/merge-tree
|
|
2
2
|
|
|
3
|
+
## 2.0.0-internal.7.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Deprecate BaseSegment.ack, Client, CollaborationWindow, compareNumbers, compareStrings, createAnnotateMarkerOp, createAnnotateRangeOp, createInsertOp, createInsertSegmentOp, createRemoveRangeOp, IConsensusInfo, IConsensusValue, IMarkerModifiedAction, IMergeTreeTextHelper, ISegment.ack, LocalClientId, MergeTreeDeltaCallback, MergeTreeMaintenanceCallback, NonCollabClient, SegmentAccumulator, SegmentGroup, SegmentGroupCollection.dequeue, SegmentGroupCollection.enqueue, SegmentGroupCollection.pop, SortedSegmentSet, SortedSegmentSetItem, SortedSet, toRemovalInfo, TreeMaintenanceSequenceNumber, UnassignedSequenceNumber, UniversalSequenceNumber ([#17952](https://github.com/microsoft/FluidFramework/issues/17952)) [b762798c48](https://github.com/microsoft/FluidFramework/commits/b762798c48ec581202fb5335e907637b8482edcc)
|
|
8
|
+
|
|
9
|
+
This functionality was not intended for export and will be removed in a future release.
|
|
10
|
+
|
|
3
11
|
## 2.0.0-internal.7.2.0
|
|
4
12
|
|
|
5
13
|
Dependency updates only.
|
package/api-extractor.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
3
|
"extends": "@fluidframework/build-common/api-extractor-base.json",
|
|
4
|
+
"dtsRollup": {
|
|
5
|
+
"enabled": true
|
|
6
|
+
},
|
|
4
7
|
"messages": {
|
|
5
8
|
// TODO: Fix violations and remove this rule override
|
|
6
9
|
"extractorMessageReporting": {
|
|
@@ -35,7 +35,7 @@ export interface AttributionPolicy {
|
|
|
35
35
|
|
|
36
36
|
// @public (undocumented)
|
|
37
37
|
export abstract class BaseSegment extends MergeNode implements ISegment {
|
|
38
|
-
// (undocumented)
|
|
38
|
+
// @deprecated (undocumented)
|
|
39
39
|
ack(segmentGroup: SegmentGroup, opArgs: IMergeTreeDeltaOpArgs): boolean;
|
|
40
40
|
// (undocumented)
|
|
41
41
|
addProperties(newProps: PropertySet, op?: ICombiningOp, seq?: number, collabWindow?: CollaborationWindow, rollback?: PropertiesRollback): PropertySet | undefined;
|
|
@@ -87,7 +87,7 @@ export abstract class BaseSegment extends MergeNode implements ISegment {
|
|
|
87
87
|
abstract readonly type: string;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
// @public (undocumented)
|
|
90
|
+
// @public @deprecated (undocumented)
|
|
91
91
|
export class Client extends TypedEventEmitter<IClientEvents> {
|
|
92
92
|
constructor(specToSegment: (spec: IJSONSegment) => ISegment, logger: ITelemetryLoggerExt, options?: PropertySet);
|
|
93
93
|
// (undocumented)
|
|
@@ -192,7 +192,7 @@ export class Client extends TypedEventEmitter<IClientEvents> {
|
|
|
192
192
|
// @public @deprecated (undocumented)
|
|
193
193
|
export function clone<T>(extension: MapLike<T> | undefined): MapLike<T> | undefined;
|
|
194
194
|
|
|
195
|
-
// @public (undocumented)
|
|
195
|
+
// @public @deprecated (undocumented)
|
|
196
196
|
export class CollaborationWindow {
|
|
197
197
|
// (undocumented)
|
|
198
198
|
clientId: number;
|
|
@@ -211,22 +211,22 @@ export class CollaborationWindow {
|
|
|
211
211
|
// @public @deprecated (undocumented)
|
|
212
212
|
export function combine(combiningInfo: ICombiningOp, currentValue: any, newValue: any, seq?: number): any;
|
|
213
213
|
|
|
214
|
-
// @public (undocumented)
|
|
214
|
+
// @public @deprecated (undocumented)
|
|
215
215
|
export const compareNumbers: (a: number, b: number) => number;
|
|
216
216
|
|
|
217
217
|
// @public (undocumented)
|
|
218
218
|
export function compareReferencePositions(a: ReferencePosition, b: ReferencePosition): number;
|
|
219
219
|
|
|
220
|
-
// @public (undocumented)
|
|
220
|
+
// @public @deprecated (undocumented)
|
|
221
221
|
export const compareStrings: (a: string, b: string) => number;
|
|
222
222
|
|
|
223
223
|
// @internal (undocumented)
|
|
224
224
|
export type ConflictAction<TKey, TData> = (key: TKey, currentKey: TKey, data: TData, currentData: TData) => QProperty<TKey, TData>;
|
|
225
225
|
|
|
226
|
-
// @public
|
|
226
|
+
// @public @deprecated
|
|
227
227
|
export function createAnnotateMarkerOp(marker: Marker, props: PropertySet, combiningOp?: ICombiningOp): IMergeTreeAnnotateMsg | undefined;
|
|
228
228
|
|
|
229
|
-
// @public
|
|
229
|
+
// @public @deprecated
|
|
230
230
|
export function createAnnotateRangeOp(start: number, end: number, props: PropertySet, combiningOp: ICombiningOp | undefined): IMergeTreeAnnotateMsg;
|
|
231
231
|
|
|
232
232
|
// @public (undocumented)
|
|
@@ -238,16 +238,16 @@ export function createGroupOp(...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg;
|
|
|
238
238
|
// @alpha (undocumented)
|
|
239
239
|
export function createInsertOnlyAttributionPolicy(): AttributionPolicy;
|
|
240
240
|
|
|
241
|
-
// @public (undocumented)
|
|
241
|
+
// @public @deprecated (undocumented)
|
|
242
242
|
export function createInsertOp(pos: number, segSpec: any): IMergeTreeInsertMsg;
|
|
243
243
|
|
|
244
|
-
// @public (undocumented)
|
|
244
|
+
// @public @deprecated (undocumented)
|
|
245
245
|
export function createInsertSegmentOp(pos: number, segment: ISegment): IMergeTreeInsertMsg;
|
|
246
246
|
|
|
247
247
|
// @public @deprecated (undocumented)
|
|
248
248
|
export function createMap<T>(): MapLike<T>;
|
|
249
249
|
|
|
250
|
-
// @public
|
|
250
|
+
// @public @deprecated
|
|
251
251
|
export function createRemoveRangeOp(start: number, end: number): IMergeTreeRemoveMsg;
|
|
252
252
|
|
|
253
253
|
// @public (undocumented)
|
|
@@ -344,7 +344,7 @@ export interface ICombiningOp {
|
|
|
344
344
|
name: string;
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
-
// @public (undocumented)
|
|
347
|
+
// @public @deprecated (undocumented)
|
|
348
348
|
export interface IConsensusInfo {
|
|
349
349
|
// (undocumented)
|
|
350
350
|
callback: (m: Marker) => void;
|
|
@@ -352,7 +352,7 @@ export interface IConsensusInfo {
|
|
|
352
352
|
marker: Marker;
|
|
353
353
|
}
|
|
354
354
|
|
|
355
|
-
// @public (undocumented)
|
|
355
|
+
// @public @deprecated (undocumented)
|
|
356
356
|
export interface IConsensusValue {
|
|
357
357
|
// (undocumented)
|
|
358
358
|
seq: number;
|
|
@@ -392,7 +392,7 @@ export interface IMarkerDef {
|
|
|
392
392
|
refType?: ReferenceType;
|
|
393
393
|
}
|
|
394
394
|
|
|
395
|
-
// @public (undocumented)
|
|
395
|
+
// @public @deprecated (undocumented)
|
|
396
396
|
export interface IMarkerModifiedAction {
|
|
397
397
|
// (undocumented)
|
|
398
398
|
(marker: Marker): void;
|
|
@@ -531,7 +531,7 @@ export interface IMergeTreeSegmentDelta {
|
|
|
531
531
|
segment: ISegment;
|
|
532
532
|
}
|
|
533
533
|
|
|
534
|
-
// @public (undocumented)
|
|
534
|
+
// @public @deprecated (undocumented)
|
|
535
535
|
export interface IMergeTreeTextHelper {
|
|
536
536
|
// (undocumented)
|
|
537
537
|
getText(refSeq: number, clientId: number, placeholder: string, start?: number, end?: number): string;
|
|
@@ -570,6 +570,7 @@ export interface IRemovalInfo {
|
|
|
570
570
|
|
|
571
571
|
// @public
|
|
572
572
|
export interface ISegment extends IMergeNodeCommon, Partial<IRemovalInfo> {
|
|
573
|
+
// @deprecated
|
|
573
574
|
ack(segmentGroup: SegmentGroup, opArgs: IMergeTreeDeltaOpArgs): boolean;
|
|
574
575
|
// (undocumented)
|
|
575
576
|
addProperties(newProps: PropertySet, op?: ICombiningOp, seq?: number, collabWindow?: CollaborationWindow, rollback?: PropertiesRollback): PropertySet | undefined;
|
|
@@ -631,7 +632,7 @@ export interface KeyComparer<TKey> {
|
|
|
631
632
|
(a: TKey, b: TKey): number;
|
|
632
633
|
}
|
|
633
634
|
|
|
634
|
-
// @public (undocumented)
|
|
635
|
+
// @public @deprecated (undocumented)
|
|
635
636
|
export const LocalClientId = -1;
|
|
636
637
|
|
|
637
638
|
// @public
|
|
@@ -746,7 +747,7 @@ export class MergeNode implements IMergeNodeCommon {
|
|
|
746
747
|
ordinal: string;
|
|
747
748
|
}
|
|
748
749
|
|
|
749
|
-
// @public (undocumented)
|
|
750
|
+
// @public @deprecated (undocumented)
|
|
750
751
|
export type MergeTreeDeltaCallback = (opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs) => void;
|
|
751
752
|
|
|
752
753
|
// @public (undocumented)
|
|
@@ -779,7 +780,7 @@ export const MergeTreeDeltaType: {
|
|
|
779
780
|
// @public (undocumented)
|
|
780
781
|
export type MergeTreeDeltaType = (typeof MergeTreeDeltaType)[keyof typeof MergeTreeDeltaType];
|
|
781
782
|
|
|
782
|
-
// @public (undocumented)
|
|
783
|
+
// @public @deprecated (undocumented)
|
|
783
784
|
export type MergeTreeMaintenanceCallback = (MaintenanceArgs: IMergeTreeMaintenanceCallbackArgs, opArgs: IMergeTreeDeltaOpArgs | undefined) => void;
|
|
784
785
|
|
|
785
786
|
// @public
|
|
@@ -806,7 +807,7 @@ export interface MergeTreeRevertibleDriver {
|
|
|
806
807
|
// @public (undocumented)
|
|
807
808
|
export function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
|
|
808
809
|
|
|
809
|
-
// @public (undocumented)
|
|
810
|
+
// @public @deprecated (undocumented)
|
|
810
811
|
export const NonCollabClient = -2;
|
|
811
812
|
|
|
812
813
|
// @public (undocumented)
|
|
@@ -1005,13 +1006,13 @@ export const reservedTileLabelsKey = "referenceTileLabels";
|
|
|
1005
1006
|
// @alpha (undocumented)
|
|
1006
1007
|
export function revertMergeTreeDeltaRevertibles(driver: MergeTreeRevertibleDriver, revertibles: MergeTreeDeltaRevertible[]): void;
|
|
1007
1008
|
|
|
1008
|
-
// @public (undocumented)
|
|
1009
|
+
// @public @deprecated (undocumented)
|
|
1009
1010
|
export interface SegmentAccumulator {
|
|
1010
1011
|
// (undocumented)
|
|
1011
1012
|
segments: ISegment[];
|
|
1012
1013
|
}
|
|
1013
1014
|
|
|
1014
|
-
// @public (undocumented)
|
|
1015
|
+
// @public @deprecated (undocumented)
|
|
1015
1016
|
export interface SegmentGroup {
|
|
1016
1017
|
// (undocumented)
|
|
1017
1018
|
localSeq: number;
|
|
@@ -1028,13 +1029,13 @@ export class SegmentGroupCollection {
|
|
|
1028
1029
|
constructor(segment: ISegment);
|
|
1029
1030
|
// (undocumented)
|
|
1030
1031
|
copyTo(segment: ISegment): void;
|
|
1031
|
-
// (undocumented)
|
|
1032
|
+
// @deprecated (undocumented)
|
|
1032
1033
|
dequeue(): SegmentGroup | undefined;
|
|
1033
1034
|
// (undocumented)
|
|
1034
1035
|
get empty(): boolean;
|
|
1035
|
-
// (undocumented)
|
|
1036
|
+
// @deprecated (undocumented)
|
|
1036
1037
|
enqueue(segmentGroup: SegmentGroup): void;
|
|
1037
|
-
// (undocumented)
|
|
1038
|
+
// @deprecated (undocumented)
|
|
1038
1039
|
pop?(): SegmentGroup | undefined;
|
|
1039
1040
|
// (undocumented)
|
|
1040
1041
|
get size(): number;
|
|
@@ -1076,7 +1077,7 @@ export interface SortedDictionary<TKey, TData> extends Dictionary<TKey, TData> {
|
|
|
1076
1077
|
min(): Property<TKey, TData> | undefined;
|
|
1077
1078
|
}
|
|
1078
1079
|
|
|
1079
|
-
// @public
|
|
1080
|
+
// @public @deprecated
|
|
1080
1081
|
export class SortedSegmentSet<T extends SortedSegmentSetItem = ISegment> extends SortedSet<T, string> {
|
|
1081
1082
|
// (undocumented)
|
|
1082
1083
|
protected findItemPosition(item: T): {
|
|
@@ -1087,12 +1088,12 @@ export class SortedSegmentSet<T extends SortedSegmentSetItem = ISegment> extends
|
|
|
1087
1088
|
protected getKey(item: T): string;
|
|
1088
1089
|
}
|
|
1089
1090
|
|
|
1090
|
-
// @public (undocumented)
|
|
1091
|
+
// @public @deprecated (undocumented)
|
|
1091
1092
|
export type SortedSegmentSetItem = ISegment | LocalReferencePosition | {
|
|
1092
1093
|
readonly segment: ISegment;
|
|
1093
1094
|
};
|
|
1094
1095
|
|
|
1095
|
-
// @public (undocumented)
|
|
1096
|
+
// @public @deprecated (undocumented)
|
|
1096
1097
|
export abstract class SortedSet<T, U extends string | number> {
|
|
1097
1098
|
// (undocumented)
|
|
1098
1099
|
addOrUpdate(newItem: T, update?: (existingItem: T, newItem: T) => void): void;
|
|
@@ -1163,7 +1164,7 @@ export class TextSegment extends BaseSegment {
|
|
|
1163
1164
|
readonly type = "TextSegment";
|
|
1164
1165
|
}
|
|
1165
1166
|
|
|
1166
|
-
// @public (undocumented)
|
|
1167
|
+
// @public @deprecated (undocumented)
|
|
1167
1168
|
export function toRemovalInfo(maybe: Partial<IRemovalInfo> | undefined): IRemovalInfo | undefined;
|
|
1168
1169
|
|
|
1169
1170
|
// @public (undocumented)
|
|
@@ -1201,13 +1202,13 @@ export class TrackingGroupCollection {
|
|
|
1201
1202
|
unlink(trackingGroup: ITrackingGroup): boolean;
|
|
1202
1203
|
}
|
|
1203
1204
|
|
|
1204
|
-
// @public (undocumented)
|
|
1205
|
+
// @public @deprecated (undocumented)
|
|
1205
1206
|
export const TreeMaintenanceSequenceNumber = -2;
|
|
1206
1207
|
|
|
1207
|
-
// @public (undocumented)
|
|
1208
|
+
// @public @deprecated (undocumented)
|
|
1208
1209
|
export const UnassignedSequenceNumber = -1;
|
|
1209
1210
|
|
|
1210
|
-
// @public
|
|
1211
|
+
// @public @deprecated
|
|
1211
1212
|
export const UniversalSequenceNumber = 0;
|
|
1212
1213
|
|
|
1213
1214
|
// (No @packageDocumentation comment for this package)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MergeTreeTextHelper.d.ts","sourceRoot":"","sources":["../src/MergeTreeTextHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"MergeTreeTextHelper.d.ts","sourceRoot":"","sources":["../src/MergeTreeTextHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAe,MAAM,eAAe,CAAC;AAQlE,qBAAa,mBAAoB,YAAW,oBAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAE1C,OAAO,CACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM;IAiBb,OAAO,CAAC,aAAa;CAYrB"}
|
|
@@ -17,7 +17,6 @@ class MergeTreeTextHelper {
|
|
|
17
17
|
return accum.textSegment.text;
|
|
18
18
|
}
|
|
19
19
|
getValidRange(start, end, refSeq, clientId) {
|
|
20
|
-
// eslint-disable-next-line import/no-deprecated
|
|
21
20
|
const range = {
|
|
22
21
|
end: end ?? this.mergeTree.getLength(refSeq, clientId),
|
|
23
22
|
start: start ?? 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MergeTreeTextHelper.js","sourceRoot":"","sources":["../src/MergeTreeTextHelper.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"MergeTreeTextHelper.js","sourceRoot":"","sources":["../src/MergeTreeTextHelper.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAOH,+CAAkE;AAQlE,MAAa,mBAAmB;IAC/B,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE9C,OAAO,CACb,MAAc,EACd,QAAgB,EAChB,WAAW,GAAG,EAAE,EAChB,KAAc,EACd,GAAY;QAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAqB,EAAE,WAAW,EAAE,IAAI,yBAAW,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;QAElF,IAAI,CAAC,SAAS,CAAC,QAAQ,CACtB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,KAAK,EACL,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,GAAG,CACT,CAAC;QACF,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEO,aAAa,CACpB,KAAyB,EACzB,GAAuB,EACvB,MAAc,EACd,QAAgB;QAEhB,MAAM,KAAK,GAAkB;YAC5B,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;YACtD,KAAK,EAAE,KAAK,IAAI,CAAC;SACjB,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AArCD,kDAqCC;AAED,SAAS,UAAU,CAClB,OAAiB,EACjB,GAAW,EACX,MAAc,EACd,QAAgB,EAChB,KAAa,EACb,GAAW,EACX,EAAE,WAAW,EAAE,WAAW,EAAoB;IAE9C,IAAI,yBAAW,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAC5B,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;YAC7C,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;SACjC;aAAM;YACN,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YACnC,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACrC,MAAM,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7C,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACzD;KACD;SAAM,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QACjD,MAAM,eAAe;QACpB,gEAAgE;QAChE,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjF,WAAW,CAAC,IAAI,IAAI,eAAe,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACb,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable import/no-deprecated */\n\nimport { IIntegerRange } from \"./base\";\nimport { ISegment } from \"./mergeTreeNodes\";\nimport { MergeTree } from \"./mergeTree\";\nimport { IMergeTreeTextHelper, TextSegment } from \"./textSegment\";\n\ninterface ITextAccumulator {\n\ttextSegment: TextSegment;\n\tplaceholder?: string;\n\tparallelArrays?: boolean;\n}\n\nexport class MergeTreeTextHelper implements IMergeTreeTextHelper {\n\tconstructor(private readonly mergeTree: MergeTree) {}\n\n\tpublic getText(\n\t\trefSeq: number,\n\t\tclientId: number,\n\t\tplaceholder = \"\",\n\t\tstart?: number,\n\t\tend?: number,\n\t) {\n\t\tconst range = this.getValidRange(start, end, refSeq, clientId);\n\n\t\tconst accum: ITextAccumulator = { textSegment: new TextSegment(\"\"), placeholder };\n\n\t\tthis.mergeTree.mapRange<ITextAccumulator>(\n\t\t\tgatherText,\n\t\t\trefSeq,\n\t\t\tclientId,\n\t\t\taccum,\n\t\t\trange.start,\n\t\t\trange.end,\n\t\t);\n\t\treturn accum.textSegment.text;\n\t}\n\n\tprivate getValidRange(\n\t\tstart: number | undefined,\n\t\tend: number | undefined,\n\t\trefSeq: number,\n\t\tclientId: number,\n\t): IIntegerRange {\n\t\tconst range: IIntegerRange = {\n\t\t\tend: end ?? this.mergeTree.getLength(refSeq, clientId),\n\t\t\tstart: start ?? 0,\n\t\t};\n\t\treturn range;\n\t}\n}\n\nfunction gatherText(\n\tsegment: ISegment,\n\tpos: number,\n\trefSeq: number,\n\tclientId: number,\n\tstart: number,\n\tend: number,\n\t{ textSegment, placeholder }: ITextAccumulator,\n): boolean {\n\tif (TextSegment.is(segment)) {\n\t\tif (start <= 0 && end >= segment.text.length) {\n\t\t\ttextSegment.text += segment.text;\n\t\t} else {\n\t\t\tconst seglen = segment.text.length;\n\t\t\tconst _start = start < 0 ? 0 : start;\n\t\t\tconst _end = end >= seglen ? undefined : end;\n\t\t\ttextSegment.text += segment.text.substring(_start, _end);\n\t\t}\n\t} else if (placeholder && placeholder.length > 0) {\n\t\tconst placeholderText =\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\t\tplaceholder === \"*\" ? `\\n${segment}` : placeholder.repeat(segment.cachedLength);\n\t\ttextSegment.text += placeholderText;\n\t}\n\n\treturn true;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributionPolicy.d.ts","sourceRoot":"","sources":["../src/attributionPolicy.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"attributionPolicy.d.ts","sourceRoot":"","sources":["../src/attributionPolicy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAsLhD;;;;GAIG;AACH,wBAAgB,iCAAiC,IAAI,iBAAiB,CAOrE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,8CAA8C,CAC7D,GAAG,SAAS,EAAE,MAAM,EAAE,GACpB,MAAM,iBAAiB,CAQzB;AAED;;;;;GAKG;AACH,wBAAgB,0DAA0D,CACzE,GAAG,SAAS,EAAE,MAAM,EAAE,GACpB,MAAM,iBAAiB,CASzB"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.createPropertyTrackingAndInsertionAttributionPolicyFactory = exports.createPropertyTrackingAttributionPolicyFactory = exports.createInsertOnlyAttributionPolicy = void 0;
|
|
8
|
+
/* eslint-disable import/no-deprecated */
|
|
8
9
|
const core_utils_1 = require("@fluidframework/core-utils");
|
|
9
10
|
const mergeTreeDeltaCallback_1 = require("./mergeTreeDeltaCallback");
|
|
10
11
|
const ops_1 = require("./ops");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributionPolicy.js","sourceRoot":"","sources":["../src/attributionPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils\";\nimport { AttributionKey } from \"@fluidframework/runtime-definitions\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { AttributionPolicy } from \"./mergeTree\";\nimport { Client } from \"./client\";\nimport {\n\tIMergeTreeDeltaCallbackArgs,\n\tIMergeTreeDeltaOpArgs,\n\tIMergeTreeMaintenanceCallbackArgs,\n\tIMergeTreeSegmentDelta,\n\tMergeTreeMaintenanceType,\n} from \"./mergeTreeDeltaCallback\";\nimport { MergeTreeDeltaType } from \"./ops\";\nimport { AttributionCollection } from \"./attributionCollection\";\n\n// Note: these thinly wrap MergeTreeDeltaCallback and MergeTreeMaintenanceCallback to provide the client.\n// This is because the base callbacks don't always have enough information to infer whether the op being\n// processed is in a detached or attached state, which may affect the attribution key.\ninterface AttributionCallbacks {\n\tdelta: (\n\t\topArgs: IMergeTreeDeltaOpArgs,\n\t\tdeltaArgs: IMergeTreeDeltaCallbackArgs,\n\t\tclient: Client,\n\t) => void;\n\tmaintenance: (\n\t\tmaintenanceArgs: IMergeTreeMaintenanceCallbackArgs,\n\t\topArgs: IMergeTreeDeltaOpArgs | undefined,\n\t\tclient: Client,\n\t) => void;\n}\n\nfunction createAttributionPolicyFromCallbacks({\n\tdelta,\n\tmaintenance,\n}: AttributionCallbacks): AttributionPolicy {\n\tlet unsubscribe: undefined | (() => void);\n\treturn {\n\t\tattach: (client: Client) => {\n\t\t\tassert(\n\t\t\t\tunsubscribe === undefined,\n\t\t\t\t0x557 /* cannot attach to multiple clients at once */,\n\t\t\t);\n\n\t\t\tconst deltaSubscribed = (opArgs, deltaArgs) => delta(opArgs, deltaArgs, client);\n\t\t\tconst maintenanceSubscribed = (args, opArgs) => maintenance(args, opArgs, client);\n\n\t\t\tclient.on(\"delta\", deltaSubscribed);\n\t\t\tclient.on(\"maintenance\", maintenanceSubscribed);\n\n\t\t\tunsubscribe = () => {\n\t\t\t\tclient.off(\"delta\", deltaSubscribed);\n\t\t\t\tclient.off(\"maintenance\", maintenanceSubscribed);\n\t\t\t};\n\t\t},\n\t\tdetach: () => {\n\t\t\tunsubscribe?.();\n\t\t\tunsubscribe = undefined;\n\t\t},\n\t\tget isAttached() {\n\t\t\treturn unsubscribe !== undefined;\n\t\t},\n\t\tserializer: AttributionCollection,\n\t};\n}\n\nconst ensureAttributionCollectionCallbacks: AttributionCallbacks = {\n\tdelta: ({ op }, { deltaSegments }) => {\n\t\tif (op.type === MergeTreeDeltaType.INSERT) {\n\t\t\tfor (const { segment } of deltaSegments) {\n\t\t\t\tsegment.attribution = new AttributionCollection(segment.cachedLength);\n\t\t\t}\n\t\t}\n\t},\n\tmaintenance: () => {},\n};\n\nconst getAttributionKey = (\n\tclient: Client,\n\tmsg: ISequencedDocumentMessage | undefined,\n): AttributionKey => {\n\tif (msg) {\n\t\treturn { type: \"op\", seq: msg.sequenceNumber };\n\t}\n\tconst collabWindow = client.getCollabWindow();\n\treturn collabWindow.collaborating ? { type: \"local\" } : { type: \"detached\", id: 0 };\n};\n\nconst attributeInsertionOnSegments = (\n\tdeltaSegments: IMergeTreeSegmentDelta[],\n\tkey: AttributionKey,\n): void => {\n\tfor (const { segment } of deltaSegments) {\n\t\tif (segment.seq !== undefined) {\n\t\t\tsegment.attribution?.update(\n\t\t\t\tundefined,\n\t\t\t\tnew AttributionCollection(segment.cachedLength, key),\n\t\t\t);\n\t\t}\n\t}\n};\n\nconst insertOnlyAttributionPolicyCallbacks: AttributionCallbacks = {\n\tdelta: (opArgs, { deltaSegments, operation }, client) => {\n\t\tif (operation === MergeTreeDeltaType.INSERT) {\n\t\t\tattributeInsertionOnSegments(\n\t\t\t\tdeltaSegments,\n\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t);\n\t\t}\n\t},\n\tmaintenance: ({ deltaSegments, operation }, opArgs, client) => {\n\t\tif (\n\t\t\toperation === MergeTreeMaintenanceType.ACKNOWLEDGED &&\n\t\t\topArgs?.op.type === MergeTreeDeltaType.INSERT\n\t\t) {\n\t\t\tattributeInsertionOnSegments(\n\t\t\t\tdeltaSegments,\n\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t);\n\t\t}\n\t},\n};\n\nfunction createPropertyTrackingMergeTreeCallbacks(...propNames: string[]): AttributionCallbacks {\n\tconst toTrack = propNames.map((entry) => ({ propName: entry, channelName: entry }));\n\tconst attributeAnnotateOnSegments = (\n\t\tdeltaSegments: IMergeTreeSegmentDelta[],\n\t\t{ op, sequencedMessage }: IMergeTreeDeltaOpArgs,\n\t\tkey: AttributionKey,\n\t): void => {\n\t\tfor (const { segment } of deltaSegments) {\n\t\t\tfor (const { propName, channelName } of toTrack) {\n\t\t\t\tconst shouldAttributeInsert =\n\t\t\t\t\top.type === MergeTreeDeltaType.INSERT &&\n\t\t\t\t\tsegment.properties?.[propName] !== undefined;\n\n\t\t\t\tconst isLocal = sequencedMessage === undefined;\n\t\t\t\tconst shouldAttributeAnnotate =\n\t\t\t\t\top.type === MergeTreeDeltaType.ANNOTATE &&\n\t\t\t\t\t// Only attribute annotations which change the tracked property\n\t\t\t\t\top.props[propName] !== undefined &&\n\t\t\t\t\t// Local changes to the tracked property always take effect\n\t\t\t\t\t(isLocal ||\n\t\t\t\t\t\t// Acked changes only take effect if there isn't a pending local change\n\t\t\t\t\t\t(!isLocal && !segment.propertyManager?.hasPendingProperty(propName)));\n\n\t\t\t\tif (shouldAttributeInsert || shouldAttributeAnnotate) {\n\t\t\t\t\tsegment.attribution?.update(\n\t\t\t\t\t\tchannelName,\n\t\t\t\t\t\tnew AttributionCollection(segment.cachedLength, key),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\treturn {\n\t\tdelta: (opArgs, { deltaSegments }, client) => {\n\t\t\tconst { op, sequencedMessage } = opArgs;\n\t\t\tif (op.type === MergeTreeDeltaType.ANNOTATE || op.type === MergeTreeDeltaType.INSERT) {\n\t\t\t\tattributeAnnotateOnSegments(\n\t\t\t\t\tdeltaSegments,\n\t\t\t\t\topArgs,\n\t\t\t\t\tgetAttributionKey(client, sequencedMessage),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tmaintenance: ({ deltaSegments, operation }, opArgs, client) => {\n\t\t\tif (operation === MergeTreeMaintenanceType.ACKNOWLEDGED && opArgs !== undefined) {\n\t\t\t\tattributeAnnotateOnSegments(\n\t\t\t\t\tdeltaSegments,\n\t\t\t\t\topArgs,\n\t\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction combineMergeTreeCallbacks(callbacks: AttributionCallbacks[]): AttributionCallbacks {\n\treturn {\n\t\tdelta: (...args) => callbacks.forEach(({ delta }) => delta(...args)),\n\t\tmaintenance: (...args) => callbacks.forEach(({ maintenance }) => maintenance(...args)),\n\t};\n}\n\n/**\n * @returns An {@link AttributionPolicy} which tracks only insertion of content.\n *\n * @alpha\n */\nexport function createInsertOnlyAttributionPolicy(): AttributionPolicy {\n\treturn createAttributionPolicyFromCallbacks(\n\t\tcombineMergeTreeCallbacks([\n\t\t\tensureAttributionCollectionCallbacks,\n\t\t\tinsertOnlyAttributionPolicyCallbacks,\n\t\t]),\n\t);\n}\n\n/**\n * @param propNames - List of property names for which attribution should be tracked.\n * @returns A policy which only attributes annotation of the properties specified.\n * Keys for each property are stored under attribution channels of the same name--see example below.\n *\n * @example\n *\n * ```typescript\n * // Use this policy when creating your merge-tree:\n * const policy = createPropertyTrackingAttributionPolicyFactory(\"bold\", \"italic\");\n * // ... later, you can get attribution keys for the last time the \"bold\" and \"italic\"\n * // properties were changed on a segment using `getAtOffset`:\n * const lastBoldedAttributionKey = segment.attribution?.getAtOffset(0, \"bold\");\n * const lastItalicizedAttributionKey = segment.attribution?.getAtOffset(0, \"italic\");\n * ```\n * @alpha\n */\nexport function createPropertyTrackingAttributionPolicyFactory(\n\t...propNames: string[]\n): () => AttributionPolicy {\n\treturn () =>\n\t\tcreateAttributionPolicyFromCallbacks(\n\t\t\tcombineMergeTreeCallbacks([\n\t\t\t\tensureAttributionCollectionCallbacks,\n\t\t\t\tcreatePropertyTrackingMergeTreeCallbacks(...propNames),\n\t\t\t]),\n\t\t);\n}\n\n/**\n * Creates an attribution policy which tracks insertion as well as annotation of certain property names.\n * This combines the policies creatable using {@link createPropertyTrackingAttributionPolicyFactory} and\n * {@link createInsertOnlyAttributionPolicy}: see there for more details.\n * @alpha\n */\nexport function createPropertyTrackingAndInsertionAttributionPolicyFactory(\n\t...propNames: string[]\n): () => AttributionPolicy {\n\treturn () =>\n\t\tcreateAttributionPolicyFromCallbacks(\n\t\t\tcombineMergeTreeCallbacks([\n\t\t\t\tensureAttributionCollectionCallbacks,\n\t\t\t\tinsertOnlyAttributionPolicyCallbacks,\n\t\t\t\tcreatePropertyTrackingMergeTreeCallbacks(...propNames),\n\t\t\t]),\n\t\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"attributionPolicy.js","sourceRoot":"","sources":["../src/attributionPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable import/no-deprecated */\n\nimport { assert } from \"@fluidframework/core-utils\";\nimport { AttributionKey } from \"@fluidframework/runtime-definitions\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { AttributionPolicy } from \"./mergeTree\";\nimport { Client } from \"./client\";\nimport {\n\tIMergeTreeDeltaCallbackArgs,\n\tIMergeTreeDeltaOpArgs,\n\tIMergeTreeMaintenanceCallbackArgs,\n\tIMergeTreeSegmentDelta,\n\tMergeTreeMaintenanceType,\n} from \"./mergeTreeDeltaCallback\";\nimport { MergeTreeDeltaType } from \"./ops\";\nimport { AttributionCollection } from \"./attributionCollection\";\n\n// Note: these thinly wrap MergeTreeDeltaCallback and MergeTreeMaintenanceCallback to provide the client.\n// This is because the base callbacks don't always have enough information to infer whether the op being\n// processed is in a detached or attached state, which may affect the attribution key.\ninterface AttributionCallbacks {\n\tdelta: (\n\t\topArgs: IMergeTreeDeltaOpArgs,\n\t\tdeltaArgs: IMergeTreeDeltaCallbackArgs,\n\t\tclient: Client,\n\t) => void;\n\tmaintenance: (\n\t\tmaintenanceArgs: IMergeTreeMaintenanceCallbackArgs,\n\t\topArgs: IMergeTreeDeltaOpArgs | undefined,\n\t\tclient: Client,\n\t) => void;\n}\n\nfunction createAttributionPolicyFromCallbacks({\n\tdelta,\n\tmaintenance,\n}: AttributionCallbacks): AttributionPolicy {\n\tlet unsubscribe: undefined | (() => void);\n\treturn {\n\t\tattach: (client: Client) => {\n\t\t\tassert(\n\t\t\t\tunsubscribe === undefined,\n\t\t\t\t0x557 /* cannot attach to multiple clients at once */,\n\t\t\t);\n\n\t\t\tconst deltaSubscribed = (opArgs, deltaArgs) => delta(opArgs, deltaArgs, client);\n\t\t\tconst maintenanceSubscribed = (args, opArgs) => maintenance(args, opArgs, client);\n\n\t\t\tclient.on(\"delta\", deltaSubscribed);\n\t\t\tclient.on(\"maintenance\", maintenanceSubscribed);\n\n\t\t\tunsubscribe = () => {\n\t\t\t\tclient.off(\"delta\", deltaSubscribed);\n\t\t\t\tclient.off(\"maintenance\", maintenanceSubscribed);\n\t\t\t};\n\t\t},\n\t\tdetach: () => {\n\t\t\tunsubscribe?.();\n\t\t\tunsubscribe = undefined;\n\t\t},\n\t\tget isAttached() {\n\t\t\treturn unsubscribe !== undefined;\n\t\t},\n\t\tserializer: AttributionCollection,\n\t};\n}\n\nconst ensureAttributionCollectionCallbacks: AttributionCallbacks = {\n\tdelta: ({ op }, { deltaSegments }) => {\n\t\tif (op.type === MergeTreeDeltaType.INSERT) {\n\t\t\tfor (const { segment } of deltaSegments) {\n\t\t\t\tsegment.attribution = new AttributionCollection(segment.cachedLength);\n\t\t\t}\n\t\t}\n\t},\n\tmaintenance: () => {},\n};\n\nconst getAttributionKey = (\n\tclient: Client,\n\tmsg: ISequencedDocumentMessage | undefined,\n): AttributionKey => {\n\tif (msg) {\n\t\treturn { type: \"op\", seq: msg.sequenceNumber };\n\t}\n\tconst collabWindow = client.getCollabWindow();\n\treturn collabWindow.collaborating ? { type: \"local\" } : { type: \"detached\", id: 0 };\n};\n\nconst attributeInsertionOnSegments = (\n\tdeltaSegments: IMergeTreeSegmentDelta[],\n\tkey: AttributionKey,\n): void => {\n\tfor (const { segment } of deltaSegments) {\n\t\tif (segment.seq !== undefined) {\n\t\t\tsegment.attribution?.update(\n\t\t\t\tundefined,\n\t\t\t\tnew AttributionCollection(segment.cachedLength, key),\n\t\t\t);\n\t\t}\n\t}\n};\n\nconst insertOnlyAttributionPolicyCallbacks: AttributionCallbacks = {\n\tdelta: (opArgs, { deltaSegments, operation }, client) => {\n\t\tif (operation === MergeTreeDeltaType.INSERT) {\n\t\t\tattributeInsertionOnSegments(\n\t\t\t\tdeltaSegments,\n\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t);\n\t\t}\n\t},\n\tmaintenance: ({ deltaSegments, operation }, opArgs, client) => {\n\t\tif (\n\t\t\toperation === MergeTreeMaintenanceType.ACKNOWLEDGED &&\n\t\t\topArgs?.op.type === MergeTreeDeltaType.INSERT\n\t\t) {\n\t\t\tattributeInsertionOnSegments(\n\t\t\t\tdeltaSegments,\n\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t);\n\t\t}\n\t},\n};\n\nfunction createPropertyTrackingMergeTreeCallbacks(...propNames: string[]): AttributionCallbacks {\n\tconst toTrack = propNames.map((entry) => ({ propName: entry, channelName: entry }));\n\tconst attributeAnnotateOnSegments = (\n\t\tdeltaSegments: IMergeTreeSegmentDelta[],\n\t\t{ op, sequencedMessage }: IMergeTreeDeltaOpArgs,\n\t\tkey: AttributionKey,\n\t): void => {\n\t\tfor (const { segment } of deltaSegments) {\n\t\t\tfor (const { propName, channelName } of toTrack) {\n\t\t\t\tconst shouldAttributeInsert =\n\t\t\t\t\top.type === MergeTreeDeltaType.INSERT &&\n\t\t\t\t\tsegment.properties?.[propName] !== undefined;\n\n\t\t\t\tconst isLocal = sequencedMessage === undefined;\n\t\t\t\tconst shouldAttributeAnnotate =\n\t\t\t\t\top.type === MergeTreeDeltaType.ANNOTATE &&\n\t\t\t\t\t// Only attribute annotations which change the tracked property\n\t\t\t\t\top.props[propName] !== undefined &&\n\t\t\t\t\t// Local changes to the tracked property always take effect\n\t\t\t\t\t(isLocal ||\n\t\t\t\t\t\t// Acked changes only take effect if there isn't a pending local change\n\t\t\t\t\t\t(!isLocal && !segment.propertyManager?.hasPendingProperty(propName)));\n\n\t\t\t\tif (shouldAttributeInsert || shouldAttributeAnnotate) {\n\t\t\t\t\tsegment.attribution?.update(\n\t\t\t\t\t\tchannelName,\n\t\t\t\t\t\tnew AttributionCollection(segment.cachedLength, key),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\treturn {\n\t\tdelta: (opArgs, { deltaSegments }, client) => {\n\t\t\tconst { op, sequencedMessage } = opArgs;\n\t\t\tif (op.type === MergeTreeDeltaType.ANNOTATE || op.type === MergeTreeDeltaType.INSERT) {\n\t\t\t\tattributeAnnotateOnSegments(\n\t\t\t\t\tdeltaSegments,\n\t\t\t\t\topArgs,\n\t\t\t\t\tgetAttributionKey(client, sequencedMessage),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tmaintenance: ({ deltaSegments, operation }, opArgs, client) => {\n\t\t\tif (operation === MergeTreeMaintenanceType.ACKNOWLEDGED && opArgs !== undefined) {\n\t\t\t\tattributeAnnotateOnSegments(\n\t\t\t\t\tdeltaSegments,\n\t\t\t\t\topArgs,\n\t\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction combineMergeTreeCallbacks(callbacks: AttributionCallbacks[]): AttributionCallbacks {\n\treturn {\n\t\tdelta: (...args) => callbacks.forEach(({ delta }) => delta(...args)),\n\t\tmaintenance: (...args) => callbacks.forEach(({ maintenance }) => maintenance(...args)),\n\t};\n}\n\n/**\n * @returns An {@link AttributionPolicy} which tracks only insertion of content.\n *\n * @alpha\n */\nexport function createInsertOnlyAttributionPolicy(): AttributionPolicy {\n\treturn createAttributionPolicyFromCallbacks(\n\t\tcombineMergeTreeCallbacks([\n\t\t\tensureAttributionCollectionCallbacks,\n\t\t\tinsertOnlyAttributionPolicyCallbacks,\n\t\t]),\n\t);\n}\n\n/**\n * @param propNames - List of property names for which attribution should be tracked.\n * @returns A policy which only attributes annotation of the properties specified.\n * Keys for each property are stored under attribution channels of the same name--see example below.\n *\n * @example\n *\n * ```typescript\n * // Use this policy when creating your merge-tree:\n * const policy = createPropertyTrackingAttributionPolicyFactory(\"bold\", \"italic\");\n * // ... later, you can get attribution keys for the last time the \"bold\" and \"italic\"\n * // properties were changed on a segment using `getAtOffset`:\n * const lastBoldedAttributionKey = segment.attribution?.getAtOffset(0, \"bold\");\n * const lastItalicizedAttributionKey = segment.attribution?.getAtOffset(0, \"italic\");\n * ```\n * @alpha\n */\nexport function createPropertyTrackingAttributionPolicyFactory(\n\t...propNames: string[]\n): () => AttributionPolicy {\n\treturn () =>\n\t\tcreateAttributionPolicyFromCallbacks(\n\t\t\tcombineMergeTreeCallbacks([\n\t\t\t\tensureAttributionCollectionCallbacks,\n\t\t\t\tcreatePropertyTrackingMergeTreeCallbacks(...propNames),\n\t\t\t]),\n\t\t);\n}\n\n/**\n * Creates an attribution policy which tracks insertion as well as annotation of certain property names.\n * This combines the policies creatable using {@link createPropertyTrackingAttributionPolicyFactory} and\n * {@link createInsertOnlyAttributionPolicy}: see there for more details.\n * @alpha\n */\nexport function createPropertyTrackingAndInsertionAttributionPolicyFactory(\n\t...propNames: string[]\n): () => AttributionPolicy {\n\treturn () =>\n\t\tcreateAttributionPolicyFromCallbacks(\n\t\t\tcombineMergeTreeCallbacks([\n\t\t\t\tensureAttributionCollectionCallbacks,\n\t\t\t\tinsertOnlyAttributionPolicyCallbacks,\n\t\t\t\tcreatePropertyTrackingMergeTreeCallbacks(...propNames),\n\t\t\t]),\n\t\t);\n}\n"]}
|
package/dist/client.d.ts
CHANGED
|
@@ -29,6 +29,9 @@ export interface IClientEvents {
|
|
|
29
29
|
(event: "delta", listener: (opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs, target: IEventThisPlaceHolder) => void): any;
|
|
30
30
|
(event: "maintenance", listener: (args: IMergeTreeMaintenanceCallbackArgs, deltaArgs: IMergeTreeDeltaOpArgs | undefined, target: IEventThisPlaceHolder) => void): any;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated This functionality was not meant to be exported and will be removed in a future release
|
|
34
|
+
*/
|
|
32
35
|
export declare class Client extends TypedEventEmitter<IClientEvents> {
|
|
33
36
|
readonly specToSegment: (spec: IJSONSegment) => ISegment;
|
|
34
37
|
readonly logger: ITelemetryLoggerExt;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -17,11 +17,13 @@ const ops_1 = require("./ops");
|
|
|
17
17
|
const snapshotlegacy_1 = require("./snapshotlegacy");
|
|
18
18
|
const snapshotLoader_1 = require("./snapshotLoader");
|
|
19
19
|
const snapshotV1_1 = require("./snapshotV1");
|
|
20
|
-
// eslint-disable-next-line import/no-deprecated
|
|
21
20
|
const referencePositions_1 = require("./referencePositions");
|
|
22
21
|
const mergeTree_1 = require("./mergeTree");
|
|
23
22
|
const MergeTreeTextHelper_1 = require("./MergeTreeTextHelper");
|
|
24
23
|
const mergeTreeNodeWalk_1 = require("./mergeTreeNodeWalk");
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated This functionality was not meant to be exported and will be removed in a future release
|
|
26
|
+
*/
|
|
25
27
|
class Client extends client_utils_1.TypedEventEmitter {
|
|
26
28
|
constructor(
|
|
27
29
|
// Passing this callback would be unnecessary if Client were merged with SharedSegmentSequence
|
|
@@ -351,7 +353,7 @@ class Client extends client_utils_1.TypedEventEmitter {
|
|
|
351
353
|
}
|
|
352
354
|
}
|
|
353
355
|
// start and end are guaranteed to be non-null here, otherwise we throw above.
|
|
354
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
356
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
355
357
|
return { start, end };
|
|
356
358
|
}
|
|
357
359
|
/**
|
|
@@ -613,7 +615,6 @@ class Client extends client_utils_1.TypedEventEmitter {
|
|
|
613
615
|
if (Array.isArray(segmentGroup)) {
|
|
614
616
|
if (segmentGroup.length === 0) {
|
|
615
617
|
// sometimes we rebase to an empty op
|
|
616
|
-
// eslint-disable-next-line import/no-deprecated
|
|
617
618
|
return (0, opBuilder_1.createGroupOp)();
|
|
618
619
|
}
|
|
619
620
|
firstGroup = segmentGroup[0];
|
|
@@ -651,7 +652,6 @@ class Client extends client_utils_1.TypedEventEmitter {
|
|
|
651
652
|
(0, core_utils_1.assert)(!Array.isArray(segmentGroup), 0x03d /* "segmentGroup is array rather than singleton!" */);
|
|
652
653
|
opList.push(...this.resetPendingDeltaToOps(resetOp, segmentGroup));
|
|
653
654
|
}
|
|
654
|
-
// eslint-disable-next-line import/no-deprecated
|
|
655
655
|
return opList.length === 1 ? opList[0] : (0, opBuilder_1.createGroupOp)(...opList);
|
|
656
656
|
}
|
|
657
657
|
createTextHelper() {
|
|
@@ -688,7 +688,6 @@ class Client extends client_utils_1.TypedEventEmitter {
|
|
|
688
688
|
/**
|
|
689
689
|
* @deprecated this functionality is no longer supported and will be removed
|
|
690
690
|
*/
|
|
691
|
-
// eslint-disable-next-line import/no-deprecated
|
|
692
691
|
getStackContext(startPos, rangeLabels) {
|
|
693
692
|
return this._mergeTree.getStackContext(startPos, this.getCollabWindow().clientId, rangeLabels);
|
|
694
693
|
}
|
|
@@ -696,7 +695,6 @@ class Client extends client_utils_1.TypedEventEmitter {
|
|
|
696
695
|
const segWindow = this.getCollabWindow();
|
|
697
696
|
return segWindow.collaborating ? constants_1.UnassignedSequenceNumber : constants_1.UniversalSequenceNumber;
|
|
698
697
|
}
|
|
699
|
-
// eslint-disable-next-line import/no-deprecated
|
|
700
698
|
localTransaction(groupOp) {
|
|
701
699
|
for (const op of groupOp.ops) {
|
|
702
700
|
const opArgs = {
|