@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.
Files changed (181) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/api-extractor.json +3 -0
  3. package/api-report/merge-tree.api.md +31 -30
  4. package/dist/MergeTreeTextHelper.d.ts.map +1 -1
  5. package/dist/MergeTreeTextHelper.js +0 -1
  6. package/dist/MergeTreeTextHelper.js.map +1 -1
  7. package/dist/attributionPolicy.d.ts.map +1 -1
  8. package/dist/attributionPolicy.js +1 -0
  9. package/dist/attributionPolicy.js.map +1 -1
  10. package/dist/client.d.ts +3 -0
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js +4 -6
  13. package/dist/client.js.map +1 -1
  14. package/dist/constants.d.ts +14 -0
  15. package/dist/constants.d.ts.map +1 -1
  16. package/dist/constants.js +14 -0
  17. package/dist/constants.js.map +1 -1
  18. package/dist/endOfTreeSegment.d.ts.map +1 -1
  19. package/dist/endOfTreeSegment.js +1 -0
  20. package/dist/endOfTreeSegment.js.map +1 -1
  21. package/dist/merge-tree-alpha.d.ts +1409 -0
  22. package/dist/merge-tree-beta.d.ts +1295 -0
  23. package/dist/merge-tree-public.d.ts +1295 -0
  24. package/dist/merge-tree-untrimmed.d.ts +1783 -0
  25. package/dist/mergeTree.d.ts.map +1 -1
  26. package/dist/mergeTree.js +2 -22
  27. package/dist/mergeTree.js.map +1 -1
  28. package/dist/mergeTreeDeltaCallback.d.ts +6 -0
  29. package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
  30. package/dist/mergeTreeDeltaCallback.js.map +1 -1
  31. package/dist/mergeTreeNodes.d.ts +29 -0
  32. package/dist/mergeTreeNodes.d.ts.map +1 -1
  33. package/dist/mergeTreeNodes.js +16 -5
  34. package/dist/mergeTreeNodes.js.map +1 -1
  35. package/dist/mergeTreeTracking.d.ts.map +1 -1
  36. package/dist/mergeTreeTracking.js.map +1 -1
  37. package/dist/opBuilder.d.ts +11 -0
  38. package/dist/opBuilder.d.ts.map +1 -1
  39. package/dist/opBuilder.js +11 -0
  40. package/dist/opBuilder.js.map +1 -1
  41. package/dist/partialLengths.d.ts.map +1 -1
  42. package/dist/partialLengths.js +1 -0
  43. package/dist/partialLengths.js.map +1 -1
  44. package/dist/properties.d.ts +3 -0
  45. package/dist/properties.d.ts.map +1 -1
  46. package/dist/properties.js.map +1 -1
  47. package/dist/revertibles.d.ts.map +1 -1
  48. package/dist/revertibles.js +1 -2
  49. package/dist/revertibles.js.map +1 -1
  50. package/dist/segmentGroupCollection.d.ts +9 -0
  51. package/dist/segmentGroupCollection.d.ts.map +1 -1
  52. package/dist/segmentGroupCollection.js +10 -0
  53. package/dist/segmentGroupCollection.js.map +1 -1
  54. package/dist/segmentPropertiesManager.d.ts.map +1 -1
  55. package/dist/segmentPropertiesManager.js +3 -6
  56. package/dist/segmentPropertiesManager.js.map +1 -1
  57. package/dist/snapshotLoader.d.ts.map +1 -1
  58. package/dist/snapshotLoader.js +1 -0
  59. package/dist/snapshotLoader.js.map +1 -1
  60. package/dist/snapshotV1.d.ts.map +1 -1
  61. package/dist/snapshotV1.js +1 -2
  62. package/dist/snapshotV1.js.map +1 -1
  63. package/dist/snapshotlegacy.d.ts.map +1 -1
  64. package/dist/snapshotlegacy.js +1 -2
  65. package/dist/snapshotlegacy.js.map +1 -1
  66. package/dist/sortedSegmentSet.d.ts +5 -0
  67. package/dist/sortedSegmentSet.d.ts.map +1 -1
  68. package/dist/sortedSegmentSet.js +2 -0
  69. package/dist/sortedSegmentSet.js.map +1 -1
  70. package/dist/sortedSet.d.ts +3 -0
  71. package/dist/sortedSet.d.ts.map +1 -1
  72. package/dist/sortedSet.js +3 -0
  73. package/dist/sortedSet.js.map +1 -1
  74. package/dist/textSegment.d.ts +3 -0
  75. package/dist/textSegment.d.ts.map +1 -1
  76. package/dist/textSegment.js.map +1 -1
  77. package/dist/tsdoc-metadata.json +1 -1
  78. package/dist/zamboni.d.ts.map +1 -1
  79. package/dist/zamboni.js +1 -2
  80. package/dist/zamboni.js.map +1 -1
  81. package/lib/MergeTreeTextHelper.d.ts.map +1 -1
  82. package/lib/MergeTreeTextHelper.js +0 -1
  83. package/lib/MergeTreeTextHelper.js.map +1 -1
  84. package/lib/attributionPolicy.d.ts.map +1 -1
  85. package/lib/attributionPolicy.js +1 -0
  86. package/lib/attributionPolicy.js.map +1 -1
  87. package/lib/client.d.ts +3 -0
  88. package/lib/client.d.ts.map +1 -1
  89. package/lib/client.js +5 -9
  90. package/lib/client.js.map +1 -1
  91. package/lib/constants.d.ts +14 -0
  92. package/lib/constants.d.ts.map +1 -1
  93. package/lib/constants.js +14 -0
  94. package/lib/constants.js.map +1 -1
  95. package/lib/endOfTreeSegment.d.ts.map +1 -1
  96. package/lib/endOfTreeSegment.js +1 -0
  97. package/lib/endOfTreeSegment.js.map +1 -1
  98. package/lib/merge-tree-alpha.d.ts +1409 -0
  99. package/lib/merge-tree-beta.d.ts +1295 -0
  100. package/lib/merge-tree-public.d.ts +1295 -0
  101. package/lib/merge-tree-untrimmed.d.ts +1783 -0
  102. package/lib/mergeTree.d.ts.map +1 -1
  103. package/lib/mergeTree.js +4 -30
  104. package/lib/mergeTree.js.map +1 -1
  105. package/lib/mergeTreeDeltaCallback.d.ts +6 -0
  106. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
  107. package/lib/mergeTreeDeltaCallback.js.map +1 -1
  108. package/lib/mergeTreeNodes.d.ts +29 -0
  109. package/lib/mergeTreeNodes.d.ts.map +1 -1
  110. package/lib/mergeTreeNodes.js +17 -8
  111. package/lib/mergeTreeNodes.js.map +1 -1
  112. package/lib/mergeTreeTracking.d.ts.map +1 -1
  113. package/lib/mergeTreeTracking.js.map +1 -1
  114. package/lib/opBuilder.d.ts +11 -0
  115. package/lib/opBuilder.d.ts.map +1 -1
  116. package/lib/opBuilder.js +11 -0
  117. package/lib/opBuilder.js.map +1 -1
  118. package/lib/partialLengths.d.ts.map +1 -1
  119. package/lib/partialLengths.js +1 -0
  120. package/lib/partialLengths.js.map +1 -1
  121. package/lib/properties.d.ts +3 -0
  122. package/lib/properties.d.ts.map +1 -1
  123. package/lib/properties.js.map +1 -1
  124. package/lib/revertibles.d.ts.map +1 -1
  125. package/lib/revertibles.js +1 -2
  126. package/lib/revertibles.js.map +1 -1
  127. package/lib/segmentGroupCollection.d.ts +9 -0
  128. package/lib/segmentGroupCollection.d.ts.map +1 -1
  129. package/lib/segmentGroupCollection.js +10 -0
  130. package/lib/segmentGroupCollection.js.map +1 -1
  131. package/lib/segmentPropertiesManager.d.ts.map +1 -1
  132. package/lib/segmentPropertiesManager.js +3 -6
  133. package/lib/segmentPropertiesManager.js.map +1 -1
  134. package/lib/snapshotLoader.d.ts.map +1 -1
  135. package/lib/snapshotLoader.js +1 -0
  136. package/lib/snapshotLoader.js.map +1 -1
  137. package/lib/snapshotV1.d.ts.map +1 -1
  138. package/lib/snapshotV1.js +1 -2
  139. package/lib/snapshotV1.js.map +1 -1
  140. package/lib/snapshotlegacy.d.ts.map +1 -1
  141. package/lib/snapshotlegacy.js +1 -2
  142. package/lib/snapshotlegacy.js.map +1 -1
  143. package/lib/sortedSegmentSet.d.ts +5 -0
  144. package/lib/sortedSegmentSet.d.ts.map +1 -1
  145. package/lib/sortedSegmentSet.js +2 -0
  146. package/lib/sortedSegmentSet.js.map +1 -1
  147. package/lib/sortedSet.d.ts +3 -0
  148. package/lib/sortedSet.d.ts.map +1 -1
  149. package/lib/sortedSet.js +3 -0
  150. package/lib/sortedSet.js.map +1 -1
  151. package/lib/textSegment.d.ts +3 -0
  152. package/lib/textSegment.d.ts.map +1 -1
  153. package/lib/textSegment.js.map +1 -1
  154. package/lib/zamboni.d.ts.map +1 -1
  155. package/lib/zamboni.js +1 -2
  156. package/lib/zamboni.js.map +1 -1
  157. package/package.json +38 -22
  158. package/src/MergeTreeTextHelper.ts +2 -3
  159. package/src/attributionPolicy.ts +2 -0
  160. package/src/client.ts +5 -11
  161. package/src/constants.ts +18 -1
  162. package/src/endOfTreeSegment.ts +2 -0
  163. package/src/mergeTree.ts +1 -29
  164. package/src/mergeTreeDeltaCallback.ts +6 -0
  165. package/src/mergeTreeNodes.ts +30 -9
  166. package/src/mergeTreeTracking.ts +2 -0
  167. package/src/opBuilder.ts +11 -0
  168. package/src/partialLengths.ts +2 -0
  169. package/src/properties.ts +3 -0
  170. package/src/revertibles.ts +2 -2
  171. package/src/segmentGroupCollection.ts +11 -0
  172. package/src/segmentPropertiesManager.ts +3 -6
  173. package/src/snapshotLoader.ts +1 -0
  174. package/src/snapshotV1.ts +2 -2
  175. package/src/snapshotlegacy.ts +1 -2
  176. package/src/sortedSegmentSet.ts +8 -0
  177. package/src/sortedSet.ts +3 -0
  178. package/src/textSegment.ts +3 -0
  179. package/src/zamboni.ts +1 -2
  180. package/tsconfig.esnext.json +1 -2
  181. 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.
@@ -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;AAKH,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;CAcrB"}
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;;;AAMH,+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;QAGhB,gDAAgD;QAChD,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;AAvCD,kDAuCC;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-next-line import/no-deprecated\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\t// eslint-disable-next-line import/no-deprecated\n\t): IIntegerRange {\n\t\t// eslint-disable-next-line import/no-deprecated\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
+ {"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;AAKH,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"}
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":";AAAA;;;GAGG;;;AAEH,yCAAyC;AAEzC,2DAAoD;AAKpD,qEAMkC;AAClC,+BAA2C;AAC3C,mEAAgE;AAkBhE,SAAS,oCAAoC,CAAC,EAC7C,KAAK,EACL,WAAW,GACW;IACtB,IAAI,WAAqC,CAAC;IAC1C,OAAO;QACN,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE;YAC1B,IAAA,mBAAM,EACL,WAAW,KAAK,SAAS,EACzB,KAAK,CAAC,+CAA+C,CACrD,CAAC;YAEF,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAChF,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAElF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACpC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;YAEhD,WAAW,GAAG,GAAG,EAAE;gBAClB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;YAClD,CAAC,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACZ,WAAW,EAAE,EAAE,CAAC;YAChB,WAAW,GAAG,SAAS,CAAC;QACzB,CAAC;QACD,IAAI,UAAU;YACb,OAAO,WAAW,KAAK,SAAS,CAAC;QAClC,CAAC;QACD,UAAU,EAAE,6CAAqB;KACjC,CAAC;AACH,CAAC;AAED,MAAM,oCAAoC,GAAyB;IAClE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACpC,IAAI,EAAE,CAAC,IAAI,KAAK,wBAAkB,CAAC,MAAM,EAAE;YAC1C,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE;gBACxC,OAAO,CAAC,WAAW,GAAG,IAAI,6CAAqB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aACtE;SACD;IACF,CAAC;IACD,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;CACrB,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACzB,MAAc,EACd,GAA0C,EACzB,EAAE;IACnB,IAAI,GAAG,EAAE;QACR,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC;KAC/C;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,OAAO,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CACpC,aAAuC,EACvC,GAAmB,EACZ,EAAE;IACT,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE;QACxC,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE;YAC9B,OAAO,CAAC,WAAW,EAAE,MAAM,CAC1B,SAAS,EACT,IAAI,6CAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CACpD,CAAC;SACF;KACD;AACF,CAAC,CAAC;AAEF,MAAM,oCAAoC,GAAyB;IAClE,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE;QACvD,IAAI,SAAS,KAAK,wBAAkB,CAAC,MAAM,EAAE;YAC5C,4BAA4B,CAC3B,aAAa,EACb,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAClD,CAAC;SACF;IACF,CAAC;IACD,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC7D,IACC,SAAS,KAAK,iDAAwB,CAAC,YAAY;YACnD,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,wBAAkB,CAAC,MAAM,EAC5C;YACD,4BAA4B,CAC3B,aAAa,EACb,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAClD,CAAC;SACF;IACF,CAAC;CACD,CAAC;AAEF,SAAS,wCAAwC,CAAC,GAAG,SAAmB;IACvE,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACpF,MAAM,2BAA2B,GAAG,CACnC,aAAuC,EACvC,EAAE,EAAE,EAAE,gBAAgB,EAAyB,EAC/C,GAAmB,EACZ,EAAE;QACT,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE;YACxC,KAAK,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,OAAO,EAAE;gBAChD,MAAM,qBAAqB,GAC1B,EAAE,CAAC,IAAI,KAAK,wBAAkB,CAAC,MAAM;oBACrC,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;gBAE9C,MAAM,OAAO,GAAG,gBAAgB,KAAK,SAAS,CAAC;gBAC/C,MAAM,uBAAuB,GAC5B,EAAE,CAAC,IAAI,KAAK,wBAAkB,CAAC,QAAQ;oBACvC,+DAA+D;oBAC/D,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS;oBAChC,2DAA2D;oBAC3D,CAAC,OAAO;wBACP,uEAAuE;wBACvE,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAExE,IAAI,qBAAqB,IAAI,uBAAuB,EAAE;oBACrD,OAAO,CAAC,WAAW,EAAE,MAAM,CAC1B,WAAW,EACX,IAAI,6CAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CACpD,CAAC;iBACF;aACD;SACD;IACF,CAAC,CAAC;IACF,OAAO;QACN,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE;YAC5C,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;YACxC,IAAI,EAAE,CAAC,IAAI,KAAK,wBAAkB,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,wBAAkB,CAAC,MAAM,EAAE;gBACrF,2BAA2B,CAC1B,aAAa,EACb,MAAM,EACN,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAC3C,CAAC;aACF;QACF,CAAC;QACD,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,SAAS,KAAK,iDAAwB,CAAC,YAAY,IAAI,MAAM,KAAK,SAAS,EAAE;gBAChF,2BAA2B,CAC1B,aAAa,EACb,MAAM,EACN,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAClD,CAAC;aACF;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAiC;IACnE,OAAO;QACN,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACpE,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;KACtF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,iCAAiC;IAChD,OAAO,oCAAoC,CAC1C,yBAAyB,CAAC;QACzB,oCAAoC;QACpC,oCAAoC;KACpC,CAAC,CACF,CAAC;AACH,CAAC;AAPD,8EAOC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,8CAA8C,CAC7D,GAAG,SAAmB;IAEtB,OAAO,GAAG,EAAE,CACX,oCAAoC,CACnC,yBAAyB,CAAC;QACzB,oCAAoC;QACpC,wCAAwC,CAAC,GAAG,SAAS,CAAC;KACtD,CAAC,CACF,CAAC;AACJ,CAAC;AAVD,wGAUC;AAED;;;;;GAKG;AACH,SAAgB,0DAA0D,CACzE,GAAG,SAAmB;IAEtB,OAAO,GAAG,EAAE,CACX,oCAAoC,CACnC,yBAAyB,CAAC;QACzB,oCAAoC;QACpC,oCAAoC;QACpC,wCAAwC,CAAC,GAAG,SAAS,CAAC;KACtD,CAAC,CACF,CAAC;AACJ,CAAC;AAXD,gIAWC","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;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAe,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAA4B,MAAM,iCAAiC,CAAC;AAKhG,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACN,mBAAmB,EAInB,QAAQ,EACR,cAAc,EACd,MAAM,EACN,YAAY,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,2BAA2B,EAC3B,iCAAiC,EACjC,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EAEjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EAEjB,aAAa,EACb,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAInG,OAAO,EAAgC,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAK9E;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC7B,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,OAAE;IACxE,CACC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CACT,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,2BAA2B,EACtC,MAAM,EAAE,qBAAqB,KACzB,IAAI,OACR;IACF,CACC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,CACT,IAAI,EAAE,iCAAiC,EACvC,SAAS,EAAE,qBAAqB,GAAG,SAAS,EAC5C,MAAM,EAAE,qBAAqB,KACzB,IAAI,OACR;CACF;AAED,qBAAa,MAAO,SAAQ,iBAAiB,CAAC,aAAa,CAAC;aAW1C,aAAa,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,QAAQ;aAC/C,MAAM,EAAE,mBAAmB;IAXrC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAEvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IACpF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqC;gBAIrD,aAAa,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,QAAQ,EAC/C,MAAM,EAAE,mBAAmB,EAC3C,OAAO,CAAC,EAAE,WAAW;IAsBtB;;;;;;OAMG;IACI,wBAAwB,CAAC,KAAK,GAAE,MAAU,GAAG,YAAY,GAAG,YAAY,EAAE,GAAG,SAAS;IAc7F;;;;;;OAMG;IACI,6BAA6B,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACpC,qBAAqB,GAAG,SAAS;IAkBpC;;;;;;OAMG;IACI,cAAc,CACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,WAAW,CAAC,EAAE,YAAY,GACxB,qBAAqB,GAAG,SAAS;IAKpC;;;;;;;OAOG;IACI,kBAAkB,CACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,YAAY,GAAG,SAAS,GACnC,qBAAqB,GAAG,SAAS;IASpC;;;;;OAKG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB;IAMxE;;;OAGG;IACI,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,mBAAmB,GAAG,SAAS;IAW1F;;;OAGG;IACI,8BAA8B,CACpC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,QAAQ,GACf,mBAAmB,GAAG,SAAS;IAiB3B,YAAY,CAAC,WAAW,EAC9B,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,EACpC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,OAAO,GAClB,IAAI;IACA,YAAY,CAAC,SAAS,EAC5B,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,EAClC,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,SAAS,EACjB,UAAU,CAAC,EAAE,OAAO,GAClB,IAAI;IAmBP,SAAS,CAAC,eAAe,CAAC,WAAW,EACpC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,WAAW,KAAK,OAAO,EAC3D,KAAK,CAAC,EAAE,WAAW,GACjB,OAAO;IAOV;;;;OAIG;IACI,eAAe,CACrB,MAAM,EAAE,YAAY,EACpB,0BAA0B,EAAE,gBAAgB,GAC1C,IAAI;IA0BA,eAAe,IAAI,mBAAmB;IAI7C;;;;OAIG;IACI,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAa5E;;;;;;;;;;OAUG;IACI,4BAA4B,CAClC,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,EACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,kBAAkB,CAAC,EAAE,OAAO,GAC1B,sBAAsB;IAWzB;;OAEG;IACI,4BAA4B,CAAC,IAAI,EAAE,sBAAsB;IAIhE;;OAEG;IACI,gCAAgC,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM;IAIxE;;;;OAIG;IACI,kBAAkB,CAAC,WAAW,EAAE,iBAAiB;IAIjD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIxD;;OAEG;IACI,QAAQ,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO;IAIlD;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAiCrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAoEvB;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IA2BvC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,iBAAiB;IAyBzB,iBAAiB;IAOjB,qBAAqB,CAAC,YAAY,EAAE,MAAM;IAO1C,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAGrC,eAAe,CAAC,aAAa,EAAE,MAAM;IAGrC,eAAe,CAAC,YAAY,EAAE,MAAM;IAIpC,OAAO,CAAC,gCAAgC;IAIxC;;;;;;;;OAQG;IACI,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;IASnE,OAAO,CAAC,sBAAsB;IAiG9B,OAAO,CAAC,aAAa;IA6Bd,cAAc,CAAC,EAAE,EAAE,iBAAiB,GAAG,YAAY;IAEnD,cAAc,CAAC,EAAE,EAAE,kBAAkB,GAAG,YAAY,EAAE;IACtD,cAAc,CAAC,EAAE,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,EAAE;IA0B/D,QAAQ,CAAC,GAAG,EAAE,yBAAyB,EAAE,KAAK,GAAE,OAAe;IAmB/D,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAYhD;;;;;;;OAOG;IACI,2BAA2B,CACjC,oBAAoB,EAAE,MAAM,EAC5B,kBAAkB,EAAE,MAAM,EAC1B,cAAc,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS;IASrB,OAAO,CAAC,uBAAuB,CAAK;IAEpC,OAAO,CAAC,aAAa,CAAiC;IACtD;;;;;OAKG;IACI,mBAAmB,CACzB,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,YAAY,GAAG,YAAY,EAAE,GACzC,YAAY;IAiER,gBAAgB,IAAI,oBAAoB;IAIxC,SAAS,CACf,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,yBAAyB,EAAE,GACtC,qBAAqB;IAoCX,IAAI,CAChB,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE,gBAAgB,GAC1B,OAAO,CAAC;QAAE,WAAW,EAAE,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAA;KAAE,CAAC;IAMjE;;OAEG;IAEH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa;IAQvE,OAAO,CAAC,sBAAsB;IAM9B,gBAAgB,CAAC,OAAO,EAAE,kBAAkB;IAqB5C,uBAAuB,CAAC,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE,yBAAyB;IAWjF,YAAY,CAAC,MAAM,EAAE,MAAM;IAI3B,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EACtC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,yBAAyB,GAAG,UAAU,CAAC,EACtF,QAAQ,CAAC,EAAE,MAAM;;;;IAYlB,uBAAuB,CAAC,GAAG,EAAE,MAAM;IASnC,yBAAyB,CAAC,GAAG,EAAE,MAAM;;;;IAYrC,aAAa;IAGb,WAAW;IAIX,SAAS;IAIT,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,SAAI,EAAE,UAAU,SAAI;IAyBvF;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,UAAO;;;;IAK9D;;;;;;;;OAQG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,UAAO;CAItE"}
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, import/no-deprecated
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 = {