@fluidframework/sequence 2.0.0-rc.3.0.2 → 2.0.0-rc.4.0.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 (124) hide show
  1. package/.eslintrc.cjs +29 -0
  2. package/CHANGELOG.md +18 -0
  3. package/README.md +10 -3
  4. package/api-report/sequence.api.md +34 -35
  5. package/dist/IntervalCollectionValues.d.ts +0 -2
  6. package/dist/IntervalCollectionValues.d.ts.map +1 -1
  7. package/dist/IntervalCollectionValues.js +0 -2
  8. package/dist/IntervalCollectionValues.js.map +1 -1
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/intervalCollection.js +1 -1
  14. package/dist/intervalCollection.js.map +1 -1
  15. package/dist/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  16. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  17. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  18. package/dist/intervalIndex/endpointIndex.d.ts +2 -2
  19. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
  20. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  21. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +2 -2
  22. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  23. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  24. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +2 -2
  25. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
  26. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  27. package/dist/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  28. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  29. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  30. package/dist/intervals/interval.js +1 -1
  31. package/dist/intervals/interval.js.map +1 -1
  32. package/dist/intervals/sequenceInterval.js +1 -1
  33. package/dist/intervals/sequenceInterval.js.map +1 -1
  34. package/dist/legacy.d.ts +2 -2
  35. package/dist/packageVersion.d.ts +1 -1
  36. package/dist/packageVersion.js +1 -1
  37. package/dist/packageVersion.js.map +1 -1
  38. package/dist/revertibles.d.ts +6 -6
  39. package/dist/revertibles.d.ts.map +1 -1
  40. package/dist/revertibles.js.map +1 -1
  41. package/dist/sequence.d.ts.map +1 -1
  42. package/dist/sequence.js +8 -3
  43. package/dist/sequence.js.map +1 -1
  44. package/dist/sequenceDeltaEvent.d.ts +24 -3
  45. package/dist/sequenceDeltaEvent.d.ts.map +1 -1
  46. package/dist/sequenceDeltaEvent.js +16 -3
  47. package/dist/sequenceDeltaEvent.js.map +1 -1
  48. package/dist/sequenceFactory.d.ts +15 -7
  49. package/dist/sequenceFactory.d.ts.map +1 -1
  50. package/dist/sequenceFactory.js +9 -6
  51. package/dist/sequenceFactory.js.map +1 -1
  52. package/dist/sharedString.d.ts +70 -47
  53. package/dist/sharedString.d.ts.map +1 -1
  54. package/dist/sharedString.js +15 -52
  55. package/dist/sharedString.js.map +1 -1
  56. package/lib/IntervalCollectionValues.d.ts +0 -2
  57. package/lib/IntervalCollectionValues.d.ts.map +1 -1
  58. package/lib/IntervalCollectionValues.js +0 -2
  59. package/lib/IntervalCollectionValues.js.map +1 -1
  60. package/lib/index.d.ts +2 -2
  61. package/lib/index.d.ts.map +1 -1
  62. package/lib/index.js +2 -2
  63. package/lib/index.js.map +1 -1
  64. package/lib/intervalCollection.js +1 -1
  65. package/lib/intervalCollection.js.map +1 -1
  66. package/lib/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  67. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  68. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  69. package/lib/intervalIndex/endpointIndex.d.ts +2 -2
  70. package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
  71. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  72. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +2 -2
  73. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  74. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  75. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +2 -2
  76. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
  77. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  78. package/lib/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  79. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  80. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  81. package/lib/intervals/interval.js +1 -1
  82. package/lib/intervals/interval.js.map +1 -1
  83. package/lib/intervals/sequenceInterval.js +1 -1
  84. package/lib/intervals/sequenceInterval.js.map +1 -1
  85. package/lib/legacy.d.ts +2 -2
  86. package/lib/packageVersion.d.ts +1 -1
  87. package/lib/packageVersion.js +1 -1
  88. package/lib/packageVersion.js.map +1 -1
  89. package/lib/revertibles.d.ts +6 -6
  90. package/lib/revertibles.d.ts.map +1 -1
  91. package/lib/revertibles.js.map +1 -1
  92. package/lib/sequence.d.ts.map +1 -1
  93. package/lib/sequence.js +10 -4
  94. package/lib/sequence.js.map +1 -1
  95. package/lib/sequenceDeltaEvent.d.ts +24 -3
  96. package/lib/sequenceDeltaEvent.d.ts.map +1 -1
  97. package/lib/sequenceDeltaEvent.js +16 -3
  98. package/lib/sequenceDeltaEvent.js.map +1 -1
  99. package/lib/sequenceFactory.d.ts +15 -7
  100. package/lib/sequenceFactory.d.ts.map +1 -1
  101. package/lib/sequenceFactory.js +9 -6
  102. package/lib/sequenceFactory.js.map +1 -1
  103. package/lib/sharedString.d.ts +70 -47
  104. package/lib/sharedString.d.ts.map +1 -1
  105. package/lib/sharedString.js +13 -50
  106. package/lib/sharedString.js.map +1 -1
  107. package/lib/tsdoc-metadata.json +1 -1
  108. package/package.json +38 -24
  109. package/src/IntervalCollectionValues.ts +0 -2
  110. package/src/index.ts +2 -2
  111. package/src/intervalCollection.ts +1 -1
  112. package/src/intervalIndex/endpointInRangeIndex.ts +2 -2
  113. package/src/intervalIndex/endpointIndex.ts +2 -2
  114. package/src/intervalIndex/overlappingIntervalsIndex.ts +2 -2
  115. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +2 -2
  116. package/src/intervalIndex/startpointInRangeIndex.ts +2 -2
  117. package/src/intervals/interval.ts +1 -1
  118. package/src/intervals/sequenceInterval.ts +1 -1
  119. package/src/packageVersion.ts +1 -1
  120. package/src/revertibles.ts +18 -14
  121. package/src/sequence.ts +11 -3
  122. package/src/sequenceDeltaEvent.ts +12 -1
  123. package/src/sequenceFactory.ts +21 -9
  124. package/src/sharedString.ts +89 -56
package/.eslintrc.cjs CHANGED
@@ -15,4 +15,33 @@ module.exports = {
15
15
  "@typescript-eslint/no-use-before-define": "off",
16
16
  "@typescript-eslint/strict-boolean-expressions": "off",
17
17
  },
18
+ settings: {
19
+ "import/extensions": [".ts", ".tsx", ".d.ts", ".js", ".jsx"],
20
+ "import/parsers": {
21
+ "@typescript-eslint/parser": [".ts", ".tsx", ".d.ts"],
22
+ },
23
+ "import/resolver": {
24
+ typescript: {
25
+ extensions: [".ts", ".tsx", ".d.ts", ".js", ".jsx"],
26
+ conditionNames: [
27
+ "allow-ff-test-exports",
28
+
29
+ // Default condition names below, see https://www.npmjs.com/package/eslint-import-resolver-typescript#conditionnames
30
+ "types",
31
+ "import",
32
+
33
+ // APF: https://angular.io/guide/angular-package-format
34
+ "esm2020",
35
+ "es2020",
36
+ "es2015",
37
+
38
+ "require",
39
+ "node",
40
+ "node-addons",
41
+ "browser",
42
+ "default",
43
+ ],
44
+ },
45
+ },
46
+ },
18
47
  };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @fluidframework/sequence
2
2
 
3
+ ## 2.0.0-rc.4.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - SharedString now uses ISharedObjectKind and does not export the factory [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
8
+
9
+ Most users of `SharedString` should be unaffected as long as they stick to the factory patterns supported by ISharedObjectKind.
10
+ If the actual class type is needed it can be found as `SharedStringClass`.
11
+
12
+ - Deprecated members of IFluidHandle are split off into new IFluidHandleInternal interface [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
13
+
14
+ Split IFluidHandle into two interfaces, `IFluidHandle` and `IFluidHandleInternal`.
15
+ Code depending on the previously deprecated members of IFluidHandle can access them by using `toFluidHandleInternal` from `@fluidframework/runtime-utils/legacy`.
16
+
17
+ External implementation of the `IFluidHandle` interface are not supported: this change makes the typing better convey this using the `ErasedType` pattern.
18
+ Any existing and previously working, and now broken, external implementations of `IFluidHandle` should still work at runtime, but will need some unsafe type casts to compile.
19
+ Such handle implementation may break in the future and thus should be replaced with use of handles produced by the Fluid Framework client packages.
20
+
3
21
  ## 2.0.0-rc.3.0.0
4
22
 
5
23
  ### Major Changes
package/README.md CHANGED
@@ -183,6 +183,8 @@ sharedString.on("sequenceDelta", ({ deltaOperation, ranges, isLocal }) => {
183
183
 
184
184
  Internally, the sequence package depends on `@fluidframework/merge-tree`, and also raises `MergeTreeMaintenance` events on that tree as _maintenance_ events.
185
185
  These events don't correspond directly to APIs invoked on a sequence DDS, but may be useful for advanced users.
186
+ Maintenance events are raised whenever the underlying structure of the merge-tree changes (segments are merged, split, unlinked, etc),
187
+ so applications attempting to synchronize a data model dependent on the segment structure of merge-tree should look into the semantics of these events; see `MergeTreeMaintenanceType`.
186
188
 
187
189
  Both sequenceDelta and maintenance events are commonly used to synchronize or invalidate a view an application might have over a backing sequence DDS.
188
190
 
@@ -564,9 +566,11 @@ const options: ILoaderOptions = {
564
566
  ```
565
567
 
566
568
  This ensures that the client is able to load existing documents containing attribution information,
567
- and specifies which kinds of operations should be attributed at the SharedString level (currently, only insertions).
569
+ and specifies which kinds of operations should be attributed at the SharedString level.
568
570
  The stored attribution information can be found on the `attribution` field of the SharedString's segments.
569
571
 
572
+ > To attribute property changes as well as insertions, use `createPropertyTrackingAndInsertionAttributionPolicyFactory` in place of the insert-only factory.
573
+
570
574
  Next, enable the `"Fluid.Attribution.EnableOnNewFile"` config flag to start tracking attribution information for new files.
571
575
 
572
576
  ```typescript
@@ -576,9 +580,12 @@ const key = segment.attribution.getAtOffset(offset);
576
580
  // See the @fluid-experimental/attributor package for more details.
577
581
  ```
578
582
 
579
- For further reading on attribution, see the [@fluid-experimental/attributor README](https://github.com/microsoft/FluidFramework/blob/main/packages/framework/attributor/README.md).
583
+ Note that because attribution information is only finalized upon receiving acknowledgement from the server,
584
+ any queries for attribution keys on unacked changes will return `LocalAttributionKey`.
585
+ To listen for changes to attribution information (e.g. to synchronize a data model with a `SharedString`),
586
+ use the "maintenance" event for acknowledgement.
580
587
 
581
- There are plans to make attribution policies more flexible, for example tracking attribution of property changes separately from segment insertion.
588
+ For further reading on attribution, see the [@fluid-experimental/attributor README](https://github.com/microsoft/FluidFramework/blob/main/packages/framework/attributor/README.md).
582
589
 
583
590
  <!-- This line begins the content that is copied to the string.md README -->
584
591
 
@@ -25,6 +25,7 @@ import { ISegment } from '@fluidframework/merge-tree/internal';
25
25
  import { ISegmentAction } from '@fluidframework/merge-tree/internal';
26
26
  import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
27
27
  import { ISharedObjectEvents } from '@fluidframework/shared-object-base';
28
+ import type { ISharedObjectKind } from '@fluidframework/shared-object-base';
28
29
  import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
29
30
  import { ITelemetryContext } from '@fluidframework/runtime-definitions';
30
31
  import { LocalReferencePosition } from '@fluidframework/merge-tree/internal';
@@ -54,45 +55,45 @@ import { TypedEventEmitter } from '@fluid-internal/client-utils';
54
55
  export function appendAddIntervalToRevertibles(interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
55
56
 
56
57
  // @alpha
57
- export function appendChangeIntervalToRevertibles(string: SharedString, newInterval: SequenceInterval, previousInterval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
58
+ export function appendChangeIntervalToRevertibles(string: ISharedString, newInterval: SequenceInterval, previousInterval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
58
59
 
59
60
  // @alpha
60
- export function appendDeleteIntervalToRevertibles(string: SharedString, interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
61
+ export function appendDeleteIntervalToRevertibles(string: ISharedString, interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
61
62
 
62
63
  // @alpha
63
64
  export function appendIntervalPropertyChangedToRevertibles(interval: SequenceInterval, deltas: PropertySet, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
64
65
 
65
66
  // @alpha
66
- export function appendSharedStringDeltaToRevertibles(string: SharedString, delta: SequenceDeltaEvent, revertibles: SharedStringRevertible[]): void;
67
+ export function appendSharedStringDeltaToRevertibles(string: ISharedString, delta: SequenceDeltaEvent, revertibles: SharedStringRevertible[]): void;
67
68
 
68
69
  export { BaseSegment }
69
70
 
70
71
  // @internal (undocumented)
71
- export function createEndpointIndex(sharedString: SharedString): IEndpointIndex<SequenceInterval>;
72
+ export function createEndpointIndex(sharedString: ISharedString): IEndpointIndex<SequenceInterval>;
72
73
 
73
74
  // @internal (undocumented)
74
- export function createEndpointInRangeIndex(sharedString: SharedString): IEndpointInRangeIndex<SequenceInterval>;
75
+ export function createEndpointInRangeIndex(sharedString: ISharedString): IEndpointInRangeIndex<SequenceInterval>;
75
76
 
76
77
  // @internal (undocumented)
77
78
  export function createIdIntervalIndex<TInterval extends ISerializableInterval>(): IIdIntervalIndex<TInterval>;
78
79
 
79
80
  // @alpha (undocumented)
80
- export function createOverlappingIntervalsIndex(sharedString: SharedString): IOverlappingIntervalsIndex<SequenceInterval>;
81
+ export function createOverlappingIntervalsIndex(sharedString: ISharedString): IOverlappingIntervalsIndex<SequenceInterval>;
81
82
 
82
83
  // @internal (undocumented)
83
- export function createOverlappingSequenceIntervalsIndex(sharedString: SharedString): SequenceIntervalIndexes.Overlapping;
84
+ export function createOverlappingSequenceIntervalsIndex(sharedString: ISharedString): SequenceIntervalIndexes.Overlapping;
84
85
 
85
86
  // @internal (undocumented)
86
- export function createStartpointInRangeIndex(sharedString: SharedString): IStartpointInRangeIndex<SequenceInterval>;
87
+ export function createStartpointInRangeIndex(sharedString: ISharedString): IStartpointInRangeIndex<SequenceInterval>;
87
88
 
88
89
  // @alpha (undocumented)
89
90
  export type DeserializeCallback = (properties: PropertySet) => void;
90
91
 
91
92
  // @alpha
92
- export function discardSharedStringRevertibles(sharedString: SharedString, revertibles: SharedStringRevertible[]): void;
93
+ export function discardSharedStringRevertibles(sharedString: ISharedString, revertibles: SharedStringRevertible[]): void;
93
94
 
94
95
  // @internal
95
- export function getTextAndMarkers(sharedString: SharedString, label: string, start?: number, end?: number): {
96
+ export function getTextAndMarkers(sharedString: ISharedString, label: string, start?: number, end?: number): {
96
97
  parallelText: string[];
97
98
  parallelMarkers: Marker[];
98
99
  };
@@ -382,9 +383,19 @@ export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
382
383
 
383
384
  // @alpha
384
385
  export interface ISharedString extends SharedSegmentSequence<SharedStringSegment> {
386
+ annotateMarker(marker: Marker, props: PropertySet): void;
387
+ getMarkerFromId(id: string): ISegment | undefined;
388
+ getText(start?: number, end?: number): string;
389
+ // (undocumented)
390
+ getTextRangeWithMarkers(start: number, end: number): string;
391
+ getTextWithPlaceholders(start?: number, end?: number): string;
385
392
  insertMarker(pos: number, refType: ReferenceType, props?: PropertySet): void;
393
+ insertMarkerRelative(relativePos1: IRelativePosition, refType: ReferenceType, props?: PropertySet): void;
386
394
  insertText(pos: number, text: string, props?: PropertySet): void;
387
- posFromRelativePos(relativePos: IRelativePosition): number;
395
+ insertTextRelative(relativePos1: IRelativePosition, text: string, props?: PropertySet): void;
396
+ removeText(start: number, end: number): void;
397
+ replaceText(start: number, end: number, text: string, props?: PropertySet): void;
398
+ searchForMarker(startPos: number, markerLabel: string, forwards?: boolean): Marker | undefined;
388
399
  }
389
400
 
390
401
  // @internal
@@ -420,7 +431,7 @@ export { reservedRangeLabelsKey }
420
431
  export { reservedTileLabelsKey }
421
432
 
422
433
  // @alpha
423
- export function revertSharedStringRevertibles(sharedString: SharedString, revertibles: SharedStringRevertible[]): void;
434
+ export function revertSharedStringRevertibles(sharedString: ISharedString, revertibles: SharedStringRevertible[]): void;
424
435
 
425
436
  // @alpha
426
437
  export class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationType> {
@@ -432,9 +443,9 @@ export class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationTyp
432
443
 
433
444
  // @alpha
434
445
  export abstract class SequenceEvent<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
435
- constructor(deltaArgs: IMergeTreeDeltaCallbackArgs<TOperation>, mergeTreeClient: Client);
446
+ constructor(
447
+ deltaArgs: IMergeTreeDeltaCallbackArgs<TOperation>, mergeTreeClient: Client);
436
448
  get clientId(): string | undefined;
437
- // (undocumented)
438
449
  readonly deltaArgs: IMergeTreeDeltaCallbackArgs<TOperation>;
439
450
  // (undocumented)
440
451
  readonly deltaOperation: TOperation;
@@ -499,8 +510,8 @@ export namespace SequenceIntervalIndexes {
499
510
 
500
511
  // @alpha
501
512
  export class SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenanceType> {
502
- constructor(opArgs: IMergeTreeDeltaOpArgs | undefined, deltaArgs: IMergeTreeMaintenanceCallbackArgs, mergeTreeClient: Client);
503
- // (undocumented)
513
+ constructor(
514
+ opArgs: IMergeTreeDeltaOpArgs | undefined, deltaArgs: IMergeTreeMaintenanceCallbackArgs, mergeTreeClient: Client);
504
515
  readonly opArgs: IMergeTreeDeltaOpArgs | undefined;
505
516
  }
506
517
 
@@ -628,11 +639,15 @@ export class SharedSequence<T> extends SharedSegmentSequence<SubSequence<T>> {
628
639
  }
629
640
 
630
641
  // @alpha
631
- export class SharedString extends SharedSegmentSequence<SharedStringSegment> implements ISharedString {
642
+ export const SharedString: ISharedObjectKind<ISharedString>;
643
+
644
+ // @alpha
645
+ export type SharedString = ISharedString;
646
+
647
+ // @alpha
648
+ export class SharedStringClass extends SharedSegmentSequence<SharedStringSegment> implements ISharedString {
632
649
  constructor(document: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes);
633
650
  annotateMarker(marker: Marker, props: PropertySet): void;
634
- static create(runtime: IFluidDataStoreRuntime, id?: string): SharedString;
635
- static getFactory(): SharedStringFactory;
636
651
  getMarkerFromId(id: string): ISegment | undefined;
637
652
  getText(start?: number, end?: number): string;
638
653
  // (undocumented)
@@ -652,22 +667,6 @@ export class SharedString extends SharedSegmentSequence<SharedStringSegment> imp
652
667
  searchForMarker(startPos: number, markerLabel: string, forwards?: boolean): Marker | undefined;
653
668
  }
654
669
 
655
- // @alpha (undocumented)
656
- export class SharedStringFactory implements IChannelFactory {
657
- // (undocumented)
658
- static readonly Attributes: IChannelAttributes;
659
- // (undocumented)
660
- get attributes(): IChannelAttributes;
661
- create(document: IFluidDataStoreRuntime, id: string): SharedString;
662
- load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<SharedString>;
663
- // (undocumented)
664
- static segmentFromSpec(spec: any): SharedStringSegment;
665
- // (undocumented)
666
- static Type: string;
667
- // (undocumented)
668
- get type(): string;
669
- }
670
-
671
670
  // @alpha
672
671
  export type SharedStringRevertible = MergeTreeDeltaRevertible | IntervalRevertible;
673
672
 
@@ -30,8 +30,6 @@ export interface ILocalIntervalCollection<T extends ISerializableInterval> {
30
30
  export declare function makeSerializable<T extends ISerializableInterval>(localValue: ILocalIntervalCollection<T>, serializer: IFluidSerializer, bind: IFluidHandle): ISerializableIntervalCollection;
31
31
  /**
32
32
  * Manages a contained value type.
33
- *
34
- * @alpha
35
33
  */
36
34
  export declare class IntervalCollectionTypeLocalValue<T extends ISerializableInterval> implements ILocalIntervalCollection<T> {
37
35
  readonly value: IntervalCollection<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"IntervalCollectionValues.d.ts","sourceRoot":"","sources":["../src/IntervalCollectionValues.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACN,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,KAAK,qBAAqB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,qBAAqB;IACxE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,6BAA6B,CAAC;CAChG;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,EAC/D,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACvC,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,YAAY,GAChB,+BAA+B,CAMjC;AAED;;;;GAIG;AACH,qBAAa,gCAAgC,CAAC,CAAC,SAAS,qBAAqB,CAC5E,YAAW,wBAAwB,CAAC,CAAC,CAAC;aAQrB,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP3B;;;;OAIG;gBAEc,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAGvD;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACI,cAAc,CACpB,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,YAAY,GAChB,6BAA6B;IAUhC;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,4BAA4B,CAAC,CAAC,CAAC;CAQ5E"}
1
+ {"version":3,"file":"IntervalCollectionValues.d.ts","sourceRoot":"","sources":["../src/IntervalCollectionValues.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACN,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,KAAK,qBAAqB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,qBAAqB;IACxE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,6BAA6B,CAAC;CAChG;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,EAC/D,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACvC,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,YAAY,GAChB,+BAA+B,CAMjC;AAED;;GAEG;AACH,qBAAa,gCAAgC,CAAC,CAAC,SAAS,qBAAqB,CAC5E,YAAW,wBAAwB,CAAC,CAAC,CAAC;aAQrB,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP3B;;;;OAIG;gBAEc,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAGvD;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACI,cAAc,CACpB,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,YAAY,GAChB,6BAA6B;IAUhC;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,4BAA4B,CAAC,CAAC,CAAC;CAQ5E"}
@@ -16,8 +16,6 @@ function makeSerializable(localValue, serializer, bind) {
16
16
  exports.makeSerializable = makeSerializable;
17
17
  /**
18
18
  * Manages a contained value type.
19
- *
20
- * @alpha
21
19
  */
22
20
  class IntervalCollectionTypeLocalValue {
23
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"IntervalCollectionValues.js","sourceRoot":"","sources":["../src/IntervalCollectionValues.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,0EAA+E;AAkC/E,SAAgB,gBAAgB,CAC/B,UAAuC,EACvC,UAA4B,EAC5B,IAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;KAC7C,CAAC;AACH,CAAC;AAVD,4CAUC;AAED;;;;GAIG;AACH,MAAa,gCAAgC;IAG5C;;;;OAIG;IACH,YACiB,KAA4B,EAC3B,SAAqC;QADtC,UAAK,GAAL,KAAK,CAAuB;QAC3B,cAAS,GAAT,SAAS,CAA4B;IACpD,CAAC;IAEJ;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,cAAc,CACpB,UAA4B,EAC5B,IAAkB;QAElB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAElE,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;SACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAsB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACxC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAjDD,4EAiDC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { IFluidSerializer } from \"@fluidframework/shared-object-base\";\nimport { serializeHandles } from \"@fluidframework/shared-object-base/internal\";\n\nimport type { IntervalCollection } from \"./intervalCollection.js\";\nimport {\n\tIIntervalCollectionOperation,\n\tIIntervalCollectionType,\n\tISerializableIntervalCollection,\n\tISerializedIntervalCollection,\n} from \"./intervalCollectionMapInterfaces.js\";\nimport { type ISerializableInterval, IntervalOpType } from \"./intervals/index.js\";\n\n/**\n * A local value to be stored in a container type DDS.\n */\nexport interface ILocalIntervalCollection<T extends ISerializableInterval> {\n\t/**\n\t * Type indicator of the value stored within.\n\t */\n\treadonly type: string;\n\n\t/**\n\t * The in-memory value stored within.\n\t */\n\treadonly value: IntervalCollection<T>;\n\n\t/**\n\t * Retrieve the serialized form of the value stored within.\n\t * @param serializer - Data store runtime's serializer\n\t * @param bind - Container type's handle\n\t * @returns The serialized form of the contained value\n\t */\n\tmakeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedIntervalCollection;\n}\n\nexport function makeSerializable<T extends ISerializableInterval>(\n\tlocalValue: ILocalIntervalCollection<T>,\n\tserializer: IFluidSerializer,\n\tbind: IFluidHandle,\n): ISerializableIntervalCollection {\n\tconst value = localValue.makeSerialized(serializer, bind);\n\treturn {\n\t\ttype: value.type,\n\t\tvalue: value.value && JSON.parse(value.value),\n\t};\n}\n\n/**\n * Manages a contained value type.\n *\n * @alpha\n */\nexport class IntervalCollectionTypeLocalValue<T extends ISerializableInterval>\n\timplements ILocalIntervalCollection<T>\n{\n\t/**\n\t * Create a new ValueTypeLocalValue.\n\t * @param value - The instance of the value type stored within\n\t * @param valueType - The type object of the value type stored within\n\t */\n\tconstructor(\n\t\tpublic readonly value: IntervalCollection<T>,\n\t\tprivate readonly valueType: IIntervalCollectionType<T>,\n\t) {}\n\n\t/**\n\t * {@inheritDoc ILocalValue.\"type\"}\n\t */\n\tpublic get type(): string {\n\t\treturn this.valueType.name;\n\t}\n\n\t/**\n\t * {@inheritDoc ILocalValue.makeSerialized}\n\t */\n\tpublic makeSerialized(\n\t\tserializer: IFluidSerializer,\n\t\tbind: IFluidHandle,\n\t): ISerializedIntervalCollection {\n\t\tconst storedValueType = this.valueType.factory.store(this.value);\n\t\tconst value = serializeHandles(storedValueType, serializer, bind);\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue,\n\t\t};\n\t}\n\n\t/**\n\t * Get the handler for a given op of this value type.\n\t * @param opName - The name of the operation that needs processing\n\t * @returns The object which can process the given op\n\t */\n\tpublic getOpHandler(opName: IntervalOpType): IIntervalCollectionOperation<T> {\n\t\tconst handler = this.valueType.ops.get(opName);\n\t\tif (!handler) {\n\t\t\tthrow new Error(\"Unknown type message\");\n\t\t}\n\n\t\treturn handler;\n\t}\n}\n"]}
1
+ {"version":3,"file":"IntervalCollectionValues.js","sourceRoot":"","sources":["../src/IntervalCollectionValues.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,0EAA+E;AAkC/E,SAAgB,gBAAgB,CAC/B,UAAuC,EACvC,UAA4B,EAC5B,IAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;KAC7C,CAAC;AACH,CAAC;AAVD,4CAUC;AAED;;GAEG;AACH,MAAa,gCAAgC;IAG5C;;;;OAIG;IACH,YACiB,KAA4B,EAC3B,SAAqC;QADtC,UAAK,GAAL,KAAK,CAAuB;QAC3B,cAAS,GAAT,SAAS,CAA4B;IACpD,CAAC;IAEJ;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,cAAc,CACpB,UAA4B,EAC5B,IAAkB;QAElB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAElE,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;SACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAsB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACxC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAjDD,4EAiDC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { IFluidSerializer } from \"@fluidframework/shared-object-base\";\nimport { serializeHandles } from \"@fluidframework/shared-object-base/internal\";\n\nimport type { IntervalCollection } from \"./intervalCollection.js\";\nimport {\n\tIIntervalCollectionOperation,\n\tIIntervalCollectionType,\n\tISerializableIntervalCollection,\n\tISerializedIntervalCollection,\n} from \"./intervalCollectionMapInterfaces.js\";\nimport { type ISerializableInterval, IntervalOpType } from \"./intervals/index.js\";\n\n/**\n * A local value to be stored in a container type DDS.\n */\nexport interface ILocalIntervalCollection<T extends ISerializableInterval> {\n\t/**\n\t * Type indicator of the value stored within.\n\t */\n\treadonly type: string;\n\n\t/**\n\t * The in-memory value stored within.\n\t */\n\treadonly value: IntervalCollection<T>;\n\n\t/**\n\t * Retrieve the serialized form of the value stored within.\n\t * @param serializer - Data store runtime's serializer\n\t * @param bind - Container type's handle\n\t * @returns The serialized form of the contained value\n\t */\n\tmakeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedIntervalCollection;\n}\n\nexport function makeSerializable<T extends ISerializableInterval>(\n\tlocalValue: ILocalIntervalCollection<T>,\n\tserializer: IFluidSerializer,\n\tbind: IFluidHandle,\n): ISerializableIntervalCollection {\n\tconst value = localValue.makeSerialized(serializer, bind);\n\treturn {\n\t\ttype: value.type,\n\t\tvalue: value.value && JSON.parse(value.value),\n\t};\n}\n\n/**\n * Manages a contained value type.\n */\nexport class IntervalCollectionTypeLocalValue<T extends ISerializableInterval>\n\timplements ILocalIntervalCollection<T>\n{\n\t/**\n\t * Create a new ValueTypeLocalValue.\n\t * @param value - The instance of the value type stored within\n\t * @param valueType - The type object of the value type stored within\n\t */\n\tconstructor(\n\t\tpublic readonly value: IntervalCollection<T>,\n\t\tprivate readonly valueType: IIntervalCollectionType<T>,\n\t) {}\n\n\t/**\n\t * {@inheritDoc ILocalValue.\"type\"}\n\t */\n\tpublic get type(): string {\n\t\treturn this.valueType.name;\n\t}\n\n\t/**\n\t * {@inheritDoc ILocalValue.makeSerialized}\n\t */\n\tpublic makeSerialized(\n\t\tserializer: IFluidSerializer,\n\t\tbind: IFluidHandle,\n\t): ISerializedIntervalCollection {\n\t\tconst storedValueType = this.valueType.factory.store(this.value);\n\t\tconst value = serializeHandles(storedValueType, serializer, bind);\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue,\n\t\t};\n\t}\n\n\t/**\n\t * Get the handler for a given op of this value type.\n\t * @param opName - The name of the operation that needs processing\n\t * @returns The object which can process the given op\n\t */\n\tpublic getOpHandler(opName: IntervalOpType): IIntervalCollectionOperation<T> {\n\t\tconst handler = this.valueType.ops.get(opName);\n\t\tif (!handler) {\n\t\t\tthrow new Error(\"Unknown type message\");\n\t\t}\n\n\t\treturn handler;\n\t}\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -21,8 +21,8 @@ export { IntervalIndex, SequenceIntervalIndexes, IOverlappingIntervalsIndex, cre
21
21
  export { appendAddIntervalToRevertibles, appendChangeIntervalToRevertibles, appendDeleteIntervalToRevertibles, appendIntervalPropertyChangedToRevertibles, appendSharedStringDeltaToRevertibles, discardSharedStringRevertibles, IntervalRevertible, revertSharedStringRevertibles, SharedStringRevertible, } from "./revertibles.js";
22
22
  export { ISharedSegmentSequenceEvents, SharedSegmentSequence } from "./sequence.js";
23
23
  export { ISequenceDeltaRange, SequenceDeltaEvent, SequenceEvent, SequenceMaintenanceEvent, } from "./sequenceDeltaEvent.js";
24
- export { SharedStringFactory } from "./sequenceFactory.js";
25
- export { getTextAndMarkers, ISharedString, SharedString, SharedStringSegment, } from "./sharedString.js";
24
+ export { SharedString } from "./sequenceFactory.js";
25
+ export { getTextAndMarkers, ISharedString, SharedStringSegment, SharedStringClass, } from "./sharedString.js";
26
26
  export { ISharedIntervalCollection, SharedIntervalCollection, SharedIntervalCollectionFactory, } from "./sharedIntervalCollection.js";
27
27
  export { IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence.js";
28
28
  export { ISegment, Marker, BaseSegment, ReferencePosition, ReferenceType, PropertySet, MapLike, TextSegment, MergeTreeDeltaType, reservedMarkerIdKey, reservedTileLabelsKey, reservedRangeLabelsKey, TrackingGroup, LocalReferencePosition, } from "@fluidframework/merge-tree/internal";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,OAAO,EACN,wBAAwB,EACxB,eAAe,EACf,eAAe,GACf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACN,SAAS,EACT,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,2BAA2B,EAC3B,IAAI,EACJ,qBAAqB,EACrB,aAAa,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,uCAAuC,EACvC,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,0CAA0C,EAC1C,oCAAoC,EACpC,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,wBAAwB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACN,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,+BAA+B,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,GACtB,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,OAAO,EACN,wBAAwB,EACxB,eAAe,EACf,eAAe,GACf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACN,SAAS,EACT,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,2BAA2B,EAC3B,IAAI,EACJ,qBAAqB,EACrB,aAAa,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,uCAAuC,EACvC,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,0CAA0C,EAC1C,oCAAoC,EACpC,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,wBAAwB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACN,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,+BAA+B,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,GACtB,MAAM,qCAAqC,CAAC"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.TrackingGroup = exports.reservedRangeLabelsKey = exports.reservedTileLabelsKey = exports.reservedMarkerIdKey = exports.MergeTreeDeltaType = exports.TextSegment = exports.ReferenceType = exports.BaseSegment = exports.Marker = exports.SubSequence = exports.SharedSequence = exports.SharedIntervalCollectionFactory = exports.SharedIntervalCollection = exports.SharedString = exports.getTextAndMarkers = exports.SharedStringFactory = exports.SequenceMaintenanceEvent = exports.SequenceEvent = exports.SequenceDeltaEvent = exports.SharedSegmentSequence = exports.revertSharedStringRevertibles = exports.discardSharedStringRevertibles = exports.appendSharedStringDeltaToRevertibles = exports.appendIntervalPropertyChangedToRevertibles = exports.appendDeleteIntervalToRevertibles = exports.appendChangeIntervalToRevertibles = exports.appendAddIntervalToRevertibles = exports.createEndpointIndex = exports.createIdIntervalIndex = exports.createStartpointInRangeIndex = exports.createEndpointInRangeIndex = exports.createOverlappingSequenceIntervalsIndex = exports.createOverlappingIntervalsIndex = exports.Side = exports.intervalLocatorFromEndpoint = exports.sequenceIntervalHelpers = exports.IntervalStickiness = exports.SequenceInterval = exports.IntervalType = exports.IntervalOpType = exports.Interval = void 0;
7
+ exports.TrackingGroup = exports.reservedRangeLabelsKey = exports.reservedTileLabelsKey = exports.reservedMarkerIdKey = exports.MergeTreeDeltaType = exports.TextSegment = exports.ReferenceType = exports.BaseSegment = exports.Marker = exports.SubSequence = exports.SharedSequence = exports.SharedIntervalCollectionFactory = exports.SharedIntervalCollection = exports.SharedStringClass = exports.getTextAndMarkers = exports.SharedString = exports.SequenceMaintenanceEvent = exports.SequenceEvent = exports.SequenceDeltaEvent = exports.SharedSegmentSequence = exports.revertSharedStringRevertibles = exports.discardSharedStringRevertibles = exports.appendSharedStringDeltaToRevertibles = exports.appendIntervalPropertyChangedToRevertibles = exports.appendDeleteIntervalToRevertibles = exports.appendChangeIntervalToRevertibles = exports.appendAddIntervalToRevertibles = exports.createEndpointIndex = exports.createIdIntervalIndex = exports.createStartpointInRangeIndex = exports.createEndpointInRangeIndex = exports.createOverlappingSequenceIntervalsIndex = exports.createOverlappingIntervalsIndex = exports.Side = exports.intervalLocatorFromEndpoint = exports.sequenceIntervalHelpers = exports.IntervalStickiness = exports.SequenceInterval = exports.IntervalType = exports.IntervalOpType = exports.Interval = void 0;
8
8
  var index_js_1 = require("./intervals/index.js");
9
9
  Object.defineProperty(exports, "Interval", { enumerable: true, get: function () { return index_js_1.Interval; } });
10
10
  Object.defineProperty(exports, "IntervalOpType", { enumerable: true, get: function () { return index_js_1.IntervalOpType; } });
@@ -37,10 +37,10 @@ Object.defineProperty(exports, "SequenceDeltaEvent", { enumerable: true, get: fu
37
37
  Object.defineProperty(exports, "SequenceEvent", { enumerable: true, get: function () { return sequenceDeltaEvent_js_1.SequenceEvent; } });
38
38
  Object.defineProperty(exports, "SequenceMaintenanceEvent", { enumerable: true, get: function () { return sequenceDeltaEvent_js_1.SequenceMaintenanceEvent; } });
39
39
  var sequenceFactory_js_1 = require("./sequenceFactory.js");
40
- Object.defineProperty(exports, "SharedStringFactory", { enumerable: true, get: function () { return sequenceFactory_js_1.SharedStringFactory; } });
40
+ Object.defineProperty(exports, "SharedString", { enumerable: true, get: function () { return sequenceFactory_js_1.SharedString; } });
41
41
  var sharedString_js_1 = require("./sharedString.js");
42
42
  Object.defineProperty(exports, "getTextAndMarkers", { enumerable: true, get: function () { return sharedString_js_1.getTextAndMarkers; } });
43
- Object.defineProperty(exports, "SharedString", { enumerable: true, get: function () { return sharedString_js_1.SharedString; } });
43
+ Object.defineProperty(exports, "SharedStringClass", { enumerable: true, get: function () { return sharedString_js_1.SharedStringClass; } });
44
44
  var sharedIntervalCollection_js_1 = require("./sharedIntervalCollection.js");
45
45
  Object.defineProperty(exports, "SharedIntervalCollection", { enumerable: true, get: function () { return sharedIntervalCollection_js_1.SharedIntervalCollection; } });
46
46
  Object.defineProperty(exports, "SharedIntervalCollectionFactory", { enumerable: true, get: function () { return sharedIntervalCollection_js_1.SharedIntervalCollectionFactory; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmBH,iDAY8B;AAV7B,oGAAA,QAAQ,OAAA;AACR,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AAGZ,4GAAA,gBAAgB,OAAA;AAEhB,8GAAA,kBAAkB,OAAA;AAElB,mHAAA,uBAAuB,OAAA;AAExB,iEASiC;AAJhC,oIAAA,2BAA2B,OAAA;AAC3B,6GAAA,IAAI,OAAA;AAIL,qDAckC;AAVjC,2HAAA,+BAA+B,OAAA;AAC/B,mIAAA,uCAAuC,OAAA;AAGvC,sHAAA,0BAA0B,OAAA;AAC1B,wHAAA,4BAA4B,OAAA;AAE5B,iHAAA,qBAAqB,OAAA;AAErB,+GAAA,mBAAmB,OAAA;AAEpB,mDAU0B;AATzB,gIAAA,8BAA8B,OAAA;AAC9B,mIAAA,iCAAiC,OAAA;AACjC,mIAAA,iCAAiC,OAAA;AACjC,4IAAA,0CAA0C,OAAA;AAC1C,sIAAA,oCAAoC,OAAA;AACpC,gIAAA,8BAA8B,OAAA;AAE9B,+HAAA,6BAA6B,OAAA;AAG9B,6CAAoF;AAA7C,oHAAA,qBAAqB,OAAA;AAC5D,iEAKiC;AAHhC,2HAAA,kBAAkB,OAAA;AAClB,sHAAA,aAAa,OAAA;AACb,iIAAA,wBAAwB,OAAA;AAEzB,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA;AAC5B,qDAK2B;AAJ1B,oHAAA,iBAAiB,OAAA;AAEjB,+GAAA,YAAY,OAAA;AAGb,6EAIuC;AAFtC,uIAAA,wBAAwB,OAAA;AACxB,8IAAA,+BAA+B,OAAA;AAEhC,yDAAmF;AAAzD,mHAAA,cAAc,OAAA;AAAE,gHAAA,WAAW,OAAA;AAErD,gEAe6C;AAb5C,kGAAA,MAAM,OAAA;AACN,uGAAA,WAAW,OAAA;AAEX,yGAAA,aAAa,OAAA;AAGb,uGAAA,WAAW,OAAA;AACX,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,yGAAA,aAAa,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Supports distributed data structures which are list-like.\n *\n * This library's main export is {@link SharedString}, a DDS for storing and simultaneously editing a sequence of\n * text.\n *\n * See the package's README for a high-level introduction to `SharedString`'s feature set.\n * @remarks Note that SharedString is a sequence DDS but it has additional specialized features and behaviors for\n * working with text.\n *\n * @packageDocumentation\n */\nexport {\n\tIMapMessageLocalMetadata,\n\tIValueOpEmitter,\n\tSequenceOptions,\n} from \"./intervalCollectionMapInterfaces.js\";\nexport {\n\tIInterval,\n\tInterval,\n\tIntervalOpType,\n\tIntervalType,\n\tISerializableInterval,\n\tISerializedInterval,\n\tSequenceInterval,\n\tSerializedIntervalDelta,\n\tIntervalStickiness,\n\tIIntervalHelpers,\n\tsequenceIntervalHelpers,\n} from \"./intervals/index.js\";\nexport {\n\tDeserializeCallback,\n\tIIntervalCollectionEvent,\n\tIIntervalCollection,\n\tIntervalLocator,\n\tintervalLocatorFromEndpoint,\n\tSide,\n\tInteriorSequencePlace,\n\tSequencePlace,\n} from \"./intervalCollection.js\";\nexport {\n\tIntervalIndex,\n\tSequenceIntervalIndexes,\n\tIOverlappingIntervalsIndex,\n\tcreateOverlappingIntervalsIndex,\n\tcreateOverlappingSequenceIntervalsIndex,\n\tIEndpointInRangeIndex,\n\tIStartpointInRangeIndex,\n\tcreateEndpointInRangeIndex,\n\tcreateStartpointInRangeIndex,\n\tIIdIntervalIndex,\n\tcreateIdIntervalIndex,\n\tIEndpointIndex,\n\tcreateEndpointIndex,\n} from \"./intervalIndex/index.js\";\nexport {\n\tappendAddIntervalToRevertibles,\n\tappendChangeIntervalToRevertibles,\n\tappendDeleteIntervalToRevertibles,\n\tappendIntervalPropertyChangedToRevertibles,\n\tappendSharedStringDeltaToRevertibles,\n\tdiscardSharedStringRevertibles,\n\tIntervalRevertible,\n\trevertSharedStringRevertibles,\n\tSharedStringRevertible,\n} from \"./revertibles.js\";\nexport { ISharedSegmentSequenceEvents, SharedSegmentSequence } from \"./sequence.js\";\nexport {\n\tISequenceDeltaRange,\n\tSequenceDeltaEvent,\n\tSequenceEvent,\n\tSequenceMaintenanceEvent,\n} from \"./sequenceDeltaEvent.js\";\nexport { SharedStringFactory } from \"./sequenceFactory.js\";\nexport {\n\tgetTextAndMarkers,\n\tISharedString,\n\tSharedString,\n\tSharedStringSegment,\n} from \"./sharedString.js\";\nexport {\n\tISharedIntervalCollection,\n\tSharedIntervalCollection,\n\tSharedIntervalCollectionFactory,\n} from \"./sharedIntervalCollection.js\";\nexport { IJSONRunSegment, SharedSequence, SubSequence } from \"./sharedSequence.js\";\n\nexport {\n\tISegment,\n\tMarker,\n\tBaseSegment,\n\tReferencePosition,\n\tReferenceType,\n\tPropertySet,\n\tMapLike,\n\tTextSegment,\n\tMergeTreeDeltaType,\n\treservedMarkerIdKey,\n\treservedTileLabelsKey,\n\treservedRangeLabelsKey,\n\tTrackingGroup,\n\tLocalReferencePosition,\n} from \"@fluidframework/merge-tree/internal\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmBH,iDAY8B;AAV7B,oGAAA,QAAQ,OAAA;AACR,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AAGZ,4GAAA,gBAAgB,OAAA;AAEhB,8GAAA,kBAAkB,OAAA;AAElB,mHAAA,uBAAuB,OAAA;AAExB,iEASiC;AAJhC,oIAAA,2BAA2B,OAAA;AAC3B,6GAAA,IAAI,OAAA;AAIL,qDAckC;AAVjC,2HAAA,+BAA+B,OAAA;AAC/B,mIAAA,uCAAuC,OAAA;AAGvC,sHAAA,0BAA0B,OAAA;AAC1B,wHAAA,4BAA4B,OAAA;AAE5B,iHAAA,qBAAqB,OAAA;AAErB,+GAAA,mBAAmB,OAAA;AAEpB,mDAU0B;AATzB,gIAAA,8BAA8B,OAAA;AAC9B,mIAAA,iCAAiC,OAAA;AACjC,mIAAA,iCAAiC,OAAA;AACjC,4IAAA,0CAA0C,OAAA;AAC1C,sIAAA,oCAAoC,OAAA;AACpC,gIAAA,8BAA8B,OAAA;AAE9B,+HAAA,6BAA6B,OAAA;AAG9B,6CAAoF;AAA7C,oHAAA,qBAAqB,OAAA;AAC5D,iEAKiC;AAHhC,2HAAA,kBAAkB,OAAA;AAClB,sHAAA,aAAa,OAAA;AACb,iIAAA,wBAAwB,OAAA;AAEzB,2DAAoD;AAA3C,kHAAA,YAAY,OAAA;AACrB,qDAK2B;AAJ1B,oHAAA,iBAAiB,OAAA;AAGjB,oHAAA,iBAAiB,OAAA;AAElB,6EAIuC;AAFtC,uIAAA,wBAAwB,OAAA;AACxB,8IAAA,+BAA+B,OAAA;AAEhC,yDAAmF;AAAzD,mHAAA,cAAc,OAAA;AAAE,gHAAA,WAAW,OAAA;AAErD,gEAe6C;AAb5C,kGAAA,MAAM,OAAA;AACN,uGAAA,WAAW,OAAA;AAEX,yGAAA,aAAa,OAAA;AAGb,uGAAA,WAAW,OAAA;AACX,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,yGAAA,aAAa,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Supports distributed data structures which are list-like.\n *\n * This library's main export is {@link SharedString}, a DDS for storing and simultaneously editing a sequence of\n * text.\n *\n * See the package's README for a high-level introduction to `SharedString`'s feature set.\n * @remarks Note that SharedString is a sequence DDS but it has additional specialized features and behaviors for\n * working with text.\n *\n * @packageDocumentation\n */\nexport {\n\tIMapMessageLocalMetadata,\n\tIValueOpEmitter,\n\tSequenceOptions,\n} from \"./intervalCollectionMapInterfaces.js\";\nexport {\n\tIInterval,\n\tInterval,\n\tIntervalOpType,\n\tIntervalType,\n\tISerializableInterval,\n\tISerializedInterval,\n\tSequenceInterval,\n\tSerializedIntervalDelta,\n\tIntervalStickiness,\n\tIIntervalHelpers,\n\tsequenceIntervalHelpers,\n} from \"./intervals/index.js\";\nexport {\n\tDeserializeCallback,\n\tIIntervalCollectionEvent,\n\tIIntervalCollection,\n\tIntervalLocator,\n\tintervalLocatorFromEndpoint,\n\tSide,\n\tInteriorSequencePlace,\n\tSequencePlace,\n} from \"./intervalCollection.js\";\nexport {\n\tIntervalIndex,\n\tSequenceIntervalIndexes,\n\tIOverlappingIntervalsIndex,\n\tcreateOverlappingIntervalsIndex,\n\tcreateOverlappingSequenceIntervalsIndex,\n\tIEndpointInRangeIndex,\n\tIStartpointInRangeIndex,\n\tcreateEndpointInRangeIndex,\n\tcreateStartpointInRangeIndex,\n\tIIdIntervalIndex,\n\tcreateIdIntervalIndex,\n\tIEndpointIndex,\n\tcreateEndpointIndex,\n} from \"./intervalIndex/index.js\";\nexport {\n\tappendAddIntervalToRevertibles,\n\tappendChangeIntervalToRevertibles,\n\tappendDeleteIntervalToRevertibles,\n\tappendIntervalPropertyChangedToRevertibles,\n\tappendSharedStringDeltaToRevertibles,\n\tdiscardSharedStringRevertibles,\n\tIntervalRevertible,\n\trevertSharedStringRevertibles,\n\tSharedStringRevertible,\n} from \"./revertibles.js\";\nexport { ISharedSegmentSequenceEvents, SharedSegmentSequence } from \"./sequence.js\";\nexport {\n\tISequenceDeltaRange,\n\tSequenceDeltaEvent,\n\tSequenceEvent,\n\tSequenceMaintenanceEvent,\n} from \"./sequenceDeltaEvent.js\";\nexport { SharedString } from \"./sequenceFactory.js\";\nexport {\n\tgetTextAndMarkers,\n\tISharedString,\n\tSharedStringSegment,\n\tSharedStringClass,\n} from \"./sharedString.js\";\nexport {\n\tISharedIntervalCollection,\n\tSharedIntervalCollection,\n\tSharedIntervalCollectionFactory,\n} from \"./sharedIntervalCollection.js\";\nexport { IJSONRunSegment, SharedSequence, SubSequence } from \"./sharedSequence.js\";\n\nexport {\n\tISegment,\n\tMarker,\n\tBaseSegment,\n\tReferencePosition,\n\tReferenceType,\n\tPropertySet,\n\tMapLike,\n\tTextSegment,\n\tMergeTreeDeltaType,\n\treservedMarkerIdKey,\n\treservedTileLabelsKey,\n\treservedRangeLabelsKey,\n\tTrackingGroup,\n\tLocalReferencePosition,\n} from \"@fluidframework/merge-tree/internal\";\n"]}
@@ -593,7 +593,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
593
593
  start: startPos,
594
594
  end: endPos,
595
595
  intervalType: index_js_2.IntervalType.SlideOnRemove,
596
- properties: interval.properties,
596
+ properties: { ...interval.properties },
597
597
  sequenceNumber: this.client?.getCurrentSeq() ?? 0,
598
598
  stickiness,
599
599
  startSide,