@fluidframework/merge-tree 0.59.4002 → 1.0.2

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 (80) hide show
  1. package/.eslintrc.js +1 -1
  2. package/README.md +1 -1
  3. package/REFERENCEPOSITIONS.md +127 -0
  4. package/dist/client.d.ts +17 -0
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +47 -41
  7. package/dist/client.js.map +1 -1
  8. package/dist/collections.d.ts +5 -4
  9. package/dist/collections.d.ts.map +1 -1
  10. package/dist/collections.js +17 -18
  11. package/dist/collections.js.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +4 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/localReference.d.ts +4 -0
  17. package/dist/localReference.d.ts.map +1 -1
  18. package/dist/localReference.js +24 -3
  19. package/dist/localReference.js.map +1 -1
  20. package/dist/mergeTree.d.ts +20 -0
  21. package/dist/mergeTree.d.ts.map +1 -1
  22. package/dist/mergeTree.js +139 -48
  23. package/dist/mergeTree.js.map +1 -1
  24. package/dist/mergeTreeDeltaCallback.d.ts +8 -10
  25. package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
  26. package/dist/mergeTreeDeltaCallback.js +6 -10
  27. package/dist/mergeTreeDeltaCallback.js.map +1 -1
  28. package/dist/opBuilder.js +6 -5
  29. package/dist/opBuilder.js.map +1 -1
  30. package/dist/ops.d.ts +12 -10
  31. package/dist/ops.d.ts.map +1 -1
  32. package/dist/ops.js +7 -7
  33. package/dist/ops.js.map +1 -1
  34. package/dist/referencePositions.d.ts +1 -1
  35. package/dist/referencePositions.d.ts.map +1 -1
  36. package/dist/referencePositions.js +3 -2
  37. package/dist/referencePositions.js.map +1 -1
  38. package/lib/client.d.ts +17 -0
  39. package/lib/client.d.ts.map +1 -1
  40. package/lib/client.js +47 -41
  41. package/lib/client.js.map +1 -1
  42. package/lib/collections.d.ts +5 -4
  43. package/lib/collections.d.ts.map +1 -1
  44. package/lib/collections.js +17 -18
  45. package/lib/collections.js.map +1 -1
  46. package/lib/index.d.ts +1 -1
  47. package/lib/index.d.ts.map +1 -1
  48. package/lib/index.js +1 -1
  49. package/lib/index.js.map +1 -1
  50. package/lib/localReference.d.ts +4 -0
  51. package/lib/localReference.d.ts.map +1 -1
  52. package/lib/localReference.js +22 -2
  53. package/lib/localReference.js.map +1 -1
  54. package/lib/mergeTree.d.ts +20 -0
  55. package/lib/mergeTree.d.ts.map +1 -1
  56. package/lib/mergeTree.js +140 -49
  57. package/lib/mergeTree.js.map +1 -1
  58. package/lib/mergeTreeDeltaCallback.d.ts +8 -10
  59. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
  60. package/lib/mergeTreeDeltaCallback.js +6 -10
  61. package/lib/mergeTreeDeltaCallback.js.map +1 -1
  62. package/lib/opBuilder.js +6 -5
  63. package/lib/opBuilder.js.map +1 -1
  64. package/lib/ops.d.ts +12 -10
  65. package/lib/ops.d.ts.map +1 -1
  66. package/lib/ops.js +7 -7
  67. package/lib/ops.js.map +1 -1
  68. package/lib/referencePositions.d.ts +1 -1
  69. package/lib/referencePositions.d.ts.map +1 -1
  70. package/lib/referencePositions.js +3 -2
  71. package/lib/referencePositions.js.map +1 -1
  72. package/package.json +69 -74
  73. package/src/client.ts +27 -18
  74. package/src/collections.ts +5 -4
  75. package/src/index.ts +1 -1
  76. package/src/localReference.ts +24 -2
  77. package/src/mergeTree.ts +133 -39
  78. package/src/mergeTreeDeltaCallback.ts +8 -10
  79. package/src/ops.ts +13 -10
  80. package/src/referencePositions.ts +3 -2
@@ -6,26 +6,24 @@ import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions"
6
6
  import { IMergeTreeGroupMsg, IMergeTreeOp, MergeTreeDeltaType } from "./ops";
7
7
  import { PropertySet } from "./properties";
8
8
  import { ISegment } from "./mergeTree";
9
- export declare type MergeTreeDeltaOperationType = MergeTreeDeltaType.ANNOTATE | MergeTreeDeltaType.INSERT | MergeTreeDeltaType.REMOVE;
10
- export declare const enum MergeTreeMaintenanceType {
11
- APPEND = -1,
12
- SPLIT = -2,
9
+ export declare type MergeTreeDeltaOperationType = typeof MergeTreeDeltaType.ANNOTATE | typeof MergeTreeDeltaType.INSERT | typeof MergeTreeDeltaType.REMOVE;
10
+ export declare const MergeTreeMaintenanceType: {
11
+ readonly APPEND: -1;
12
+ readonly SPLIT: -2;
13
13
  /**
14
14
  * Notification that a segment has been unlinked from the MergeTree. This occurs during
15
15
  * Zamboni when:
16
16
  *
17
- * a) The minSeq has moved past the segment's removeSeq, in which case the segment
18
- * can no longer be referenced by incoming remote ops, and...
19
- *
20
17
  * b) The segment's tracking collection is empty (e.g., not being tracked for undo/redo).
21
18
  */
22
- UNLINK = -3,
19
+ readonly UNLINK: -3;
23
20
  /**
24
21
  * Notification that a local change has been acknowledged by the server.
25
22
  * This means that it has made the round trip to the server and has had a sequence number assigned.
26
23
  */
27
- ACKNOWLEDGED = -4
28
- }
24
+ readonly ACKNOWLEDGED: -4;
25
+ };
26
+ export declare type MergeTreeMaintenanceType = typeof MergeTreeMaintenanceType[keyof typeof MergeTreeMaintenanceType];
29
27
  export declare type MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType | MergeTreeMaintenanceType;
30
28
  export interface IMergeTreeDeltaCallbackArgs<TOperationType extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType> {
31
29
  readonly operation: TOperationType;
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTreeDeltaCallback.d.ts","sourceRoot":"","sources":["../src/mergeTreeDeltaCallback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACH,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACrB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,oBAAY,2BAA2B,GACnC,kBAAkB,CAAC,QAAQ,GAAG,kBAAkB,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAGxF,0BAAkB,wBAAwB;IACtC,MAAM,KAAK;IACX,KAAK,KAAK;IACV;;;;;;;;OAQG;IACH,MAAM,KAAK;IACX;;;OAGG;IACH,YAAY,KAAK;CACpB;AAED,oBAAY,4BAA4B,GAAG,2BAA2B,GAAG,wBAAwB,CAAC;AAGlG,MAAM,WAAW,2BAA2B,CAAC,cAAc,SAAS,4BAA4B,GAAG,2BAA2B;IAC1H,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,QAAQ,CAAC;IAClB,cAAc,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;CACzD;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACnC;AAED,oBAAY,sBAAsB,GAC9B,CAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAGpF,MAAM,WAAW,iCAAkC,SAAQ,2BAA2B,CAAC,wBAAwB,CAAC;CAAI;AAEpH,oBAAY,4BAA4B,GACpC,CAAC,eAAe,EAAE,iCAAiC,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"mergeTreeDeltaCallback.d.ts","sourceRoot":"","sources":["../src/mergeTreeDeltaCallback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACH,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACrB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,oBAAY,2BAA2B,GACnC,OAAO,kBAAkB,CAAC,QAAQ,GAAG,OAAO,kBAAkB,CAAC,MAAM,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC;AAG7G,eAAO,MAAM,wBAAwB;;;IAGjC;;;;;OAKG;;IAEH;;;OAGG;;CAEG,CAAC;AACX,oBAAY,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE9G,oBAAY,4BAA4B,GAAG,2BAA2B,GAAG,wBAAwB,CAAC;AAGlG,MAAM,WAAW,2BAA2B,CAAC,cAAc,SAAS,4BAA4B,GAAG,2BAA2B;IAC1H,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,QAAQ,CAAC;IAClB,cAAc,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;CACzD;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACnC;AAED,oBAAY,sBAAsB,GAC9B,CAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAGpF,MAAM,WAAW,iCAAkC,SAAQ,2BAA2B,CAAC,wBAAwB,CAAC;CAAI;AAEpH,oBAAY,4BAA4B,GACpC,CAAC,eAAe,EAAE,iCAAiC,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,KAAK,IAAI,CAAC"}
@@ -3,24 +3,20 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  // Note: Assigned negative integers to avoid clashing with MergeTreeDeltaType
6
- export var MergeTreeMaintenanceType;
7
- (function (MergeTreeMaintenanceType) {
8
- MergeTreeMaintenanceType[MergeTreeMaintenanceType["APPEND"] = -1] = "APPEND";
9
- MergeTreeMaintenanceType[MergeTreeMaintenanceType["SPLIT"] = -2] = "SPLIT";
6
+ export const MergeTreeMaintenanceType = {
7
+ APPEND: -1,
8
+ SPLIT: -2,
10
9
  /**
11
10
  * Notification that a segment has been unlinked from the MergeTree. This occurs during
12
11
  * Zamboni when:
13
12
  *
14
- * a) The minSeq has moved past the segment's removeSeq, in which case the segment
15
- * can no longer be referenced by incoming remote ops, and...
16
- *
17
13
  * b) The segment's tracking collection is empty (e.g., not being tracked for undo/redo).
18
14
  */
19
- MergeTreeMaintenanceType[MergeTreeMaintenanceType["UNLINK"] = -3] = "UNLINK";
15
+ UNLINK: -3,
20
16
  /**
21
17
  * Notification that a local change has been acknowledged by the server.
22
18
  * This means that it has made the round trip to the server and has had a sequence number assigned.
23
19
  */
24
- MergeTreeMaintenanceType[MergeTreeMaintenanceType["ACKNOWLEDGED"] = -4] = "ACKNOWLEDGED";
25
- })(MergeTreeMaintenanceType || (MergeTreeMaintenanceType = {}));
20
+ ACKNOWLEDGED: -4,
21
+ };
26
22
  //# sourceMappingURL=mergeTreeDeltaCallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTreeDeltaCallback.js","sourceRoot":"","sources":["../src/mergeTreeDeltaCallback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,6EAA6E;AAC7E,MAAM,CAAN,IAAkB,wBAkBjB;AAlBD,WAAkB,wBAAwB;IACtC,4EAAW,CAAA;IACX,0EAAU,CAAA;IACV;;;;;;;;OAQG;IACH,4EAAW,CAAA;IACX;;;OAGG;IACH,wFAAiB,CAAA;AACrB,CAAC,EAlBiB,wBAAwB,KAAxB,wBAAwB,QAkBzC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport {\n IMergeTreeGroupMsg,\n IMergeTreeOp,\n MergeTreeDeltaType,\n} from \"./ops\";\nimport { PropertySet } from \"./properties\";\nimport { ISegment } from \"./mergeTree\";\n\nexport type MergeTreeDeltaOperationType =\n MergeTreeDeltaType.ANNOTATE | MergeTreeDeltaType.INSERT | MergeTreeDeltaType.REMOVE;\n\n// Note: Assigned negative integers to avoid clashing with MergeTreeDeltaType\nexport const enum MergeTreeMaintenanceType {\n APPEND = -1,\n SPLIT = -2,\n /**\n * Notification that a segment has been unlinked from the MergeTree. This occurs during\n * Zamboni when:\n *\n * a) The minSeq has moved past the segment's removeSeq, in which case the segment\n * can no longer be referenced by incoming remote ops, and...\n *\n * b) The segment's tracking collection is empty (e.g., not being tracked for undo/redo).\n */\n UNLINK = -3,\n /**\n * Notification that a local change has been acknowledged by the server.\n * This means that it has made the round trip to the server and has had a sequence number assigned.\n */\n ACKNOWLEDGED = -4,\n}\n\nexport type MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType | MergeTreeMaintenanceType;\n\n// eslint-disable-next-line max-len\nexport interface IMergeTreeDeltaCallbackArgs<TOperationType extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType> {\n readonly operation: TOperationType;\n readonly deltaSegments: IMergeTreeSegmentDelta[];\n}\n\nexport interface IMergeTreeSegmentDelta {\n segment: ISegment;\n propertyDeltas?: PropertySet;\n}\n\nexport interface IMergeTreeDeltaOpArgs {\n /**\n * The group op which contains the operation\n * if there operation is part of a group op.\n */\n readonly groupOp?: IMergeTreeGroupMsg;\n /**\n * The merge tree operation\n */\n readonly op: IMergeTreeOp;\n /**\n * Get the sequence message, should only be null if the\n * Delta op args are for an unacked local change\n */\n readonly sequencedMessage?: ISequencedDocumentMessage;\n}\n\nexport interface IMergeTreeClientSequenceArgs {\n readonly clientId: number;\n readonly referenceSequenceNumber: number;\n readonly sequenceNumber: number;\n}\n\nexport type MergeTreeDeltaCallback =\n (opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs) => void;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IMergeTreeMaintenanceCallbackArgs extends IMergeTreeDeltaCallbackArgs<MergeTreeMaintenanceType> { }\n\nexport type MergeTreeMaintenanceCallback =\n (MaintenanceArgs: IMergeTreeMaintenanceCallbackArgs, opArgs: IMergeTreeDeltaOpArgs | undefined) => void;\n"]}
1
+ {"version":3,"file":"mergeTreeDeltaCallback.js","sourceRoot":"","sources":["../src/mergeTreeDeltaCallback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,CAAC,CAAC;IACT;;;;;OAKG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC;CACV,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport {\n IMergeTreeGroupMsg,\n IMergeTreeOp,\n MergeTreeDeltaType,\n} from \"./ops\";\nimport { PropertySet } from \"./properties\";\nimport { ISegment } from \"./mergeTree\";\n\nexport type MergeTreeDeltaOperationType =\n typeof MergeTreeDeltaType.ANNOTATE | typeof MergeTreeDeltaType.INSERT | typeof MergeTreeDeltaType.REMOVE;\n\n// Note: Assigned negative integers to avoid clashing with MergeTreeDeltaType\nexport const MergeTreeMaintenanceType = {\n APPEND: -1,\n SPLIT: -2,\n /**\n * Notification that a segment has been unlinked from the MergeTree. This occurs during\n * Zamboni when:\n *\n * b) The segment's tracking collection is empty (e.g., not being tracked for undo/redo).\n */\n UNLINK: -3,\n /**\n * Notification that a local change has been acknowledged by the server.\n * This means that it has made the round trip to the server and has had a sequence number assigned.\n */\n ACKNOWLEDGED: -4,\n} as const;\nexport type MergeTreeMaintenanceType = typeof MergeTreeMaintenanceType[keyof typeof MergeTreeMaintenanceType];\n\nexport type MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType | MergeTreeMaintenanceType;\n\n// eslint-disable-next-line max-len\nexport interface IMergeTreeDeltaCallbackArgs<TOperationType extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType> {\n readonly operation: TOperationType;\n readonly deltaSegments: IMergeTreeSegmentDelta[];\n}\n\nexport interface IMergeTreeSegmentDelta {\n segment: ISegment;\n propertyDeltas?: PropertySet;\n}\n\nexport interface IMergeTreeDeltaOpArgs {\n /**\n * The group op which contains the operation\n * if there operation is part of a group op.\n */\n readonly groupOp?: IMergeTreeGroupMsg;\n /**\n * The merge tree operation\n */\n readonly op: IMergeTreeOp;\n /**\n * Get the sequence message, should only be null if the\n * Delta op args are for an unacked local change\n */\n readonly sequencedMessage?: ISequencedDocumentMessage;\n}\n\nexport interface IMergeTreeClientSequenceArgs {\n readonly clientId: number;\n readonly referenceSequenceNumber: number;\n readonly sequenceNumber: number;\n}\n\nexport type MergeTreeDeltaCallback =\n (opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs) => void;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IMergeTreeMaintenanceCallbackArgs extends IMergeTreeDeltaCallbackArgs<MergeTreeMaintenanceType> { }\n\nexport type MergeTreeMaintenanceCallback =\n (MaintenanceArgs: IMergeTreeMaintenanceCallbackArgs, opArgs: IMergeTreeDeltaOpArgs | undefined) => void;\n"]}
package/lib/opBuilder.js CHANGED
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
+ import { MergeTreeDeltaType, } from "./ops";
5
6
  /**
6
7
  * Creates the op for annotating the markers with the provided properties
7
8
  * @param marker - The marker to annotate
@@ -19,7 +20,7 @@ export function createAnnotateMarkerOp(marker, props, combiningOp) {
19
20
  props,
20
21
  relativePos1: { id, before: true },
21
22
  relativePos2: { id },
22
- type: 2 /* ANNOTATE */,
23
+ type: MergeTreeDeltaType.ANNOTATE,
23
24
  };
24
25
  }
25
26
  /**
@@ -36,7 +37,7 @@ export function createAnnotateRangeOp(start, end, props, combiningOp) {
36
37
  pos1: start,
37
38
  pos2: end,
38
39
  props,
39
- type: 2 /* ANNOTATE */,
40
+ type: MergeTreeDeltaType.ANNOTATE,
40
41
  };
41
42
  }
42
43
  /**
@@ -49,7 +50,7 @@ export function createRemoveRangeOp(start, end) {
49
50
  return {
50
51
  pos1: start,
51
52
  pos2: end,
52
- type: 1 /* REMOVE */,
53
+ type: MergeTreeDeltaType.REMOVE,
53
54
  };
54
55
  }
55
56
  /**
@@ -64,7 +65,7 @@ export function createInsertOp(pos, segSpec) {
64
65
  return {
65
66
  pos1: pos,
66
67
  seg: segSpec,
67
- type: 0 /* INSERT */,
68
+ type: MergeTreeDeltaType.INSERT,
68
69
  };
69
70
  }
70
71
  /**
@@ -74,7 +75,7 @@ export function createInsertOp(pos, segSpec) {
74
75
  export function createGroupOp(...ops) {
75
76
  return {
76
77
  ops,
77
- type: 3 /* GROUP */,
78
+ type: MergeTreeDeltaType.GROUP,
78
79
  };
79
80
  }
80
81
  //# sourceMappingURL=opBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opBuilder.js","sourceRoot":"","sources":["../src/opBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAClC,MAAc,EAAE,KAAkB,EAAE,WAA0B;IAC9D,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,EAAE;QACL,OAAO,SAAS,CAAC;KACpB;IAED,OAAO;QACH,WAAW;QACX,KAAK;QACL,YAAY,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAClC,YAAY,EAAE,EAAE,EAAE,EAAE;QACpB,IAAI,kBAA6B;KACpC,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACjC,KAAa,EAAE,GAAW,EAAE,KAAkB,EAAE,WAAqC;IACrF,OAAO;QACH,WAAW;QACX,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,KAAK;QACL,IAAI,kBAA6B;KACpC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW;IAC1D,OAAO;QACH,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,IAAI,gBAA2B;KAClC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,OAAiB;IAChE,OAAO,cAAc,CACjB,GAAG,EACH,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,OAAY;IACpD,OAAO;QACH,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,OAAO;QACZ,IAAI,gBAA2B;KAClC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CACzB,GAAG,GAAwB;IAC3B,OAAO;QACH,GAAG;QACH,IAAI,eAA0B;KACjC,CAAC;AACN,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISegment, Marker } from \"./mergeTree\";\nimport {\n ICombiningOp,\n IMergeTreeAnnotateMsg,\n IMergeTreeGroupMsg,\n IMergeTreeInsertMsg,\n IMergeTreeRemoveMsg,\n MergeTreeDeltaType,\n IMergeTreeDeltaOp,\n} from \"./ops\";\nimport { PropertySet } from \"./properties\";\n\n/**\n * Creates the op for annotating the markers with the provided properties\n * @param marker - The marker to annotate\n * @param props - The properties to annotate the marker with\n * @param combiningOp - Optional. Specifies how to combine values for the property, such as \"incr\" for increment.\n * @returns The annotate op\n */\nexport function createAnnotateMarkerOp(\n marker: Marker, props: PropertySet, combiningOp?: ICombiningOp): IMergeTreeAnnotateMsg | undefined {\n const id = marker.getId();\n if (!id) {\n return undefined;\n }\n\n return {\n combiningOp,\n props,\n relativePos1: { id, before: true },\n relativePos2: { id },\n type: MergeTreeDeltaType.ANNOTATE,\n };\n}\n\n/**\n * Creates the op for annotating the range with the provided properties\n * @param start - The inclusive start position of the range to annotate\n * @param end - The exclusive end position of the range to annotate\n * @param props - The properties to annotate the range with\n * @param combiningOp - Optional. Specifies how to combine values for the property, such as \"incr\" for increment.\n * @returns The annotate op\n */\nexport function createAnnotateRangeOp(\n start: number, end: number, props: PropertySet, combiningOp: ICombiningOp | undefined): IMergeTreeAnnotateMsg {\n return {\n combiningOp,\n pos1: start,\n pos2: end,\n props,\n type: MergeTreeDeltaType.ANNOTATE,\n };\n}\n\n/**\n * Creates the op to remove a range\n *\n * @param start - The inclusive start of the range to remove\n * @param end - The exclusive end of the range to remove\n */\nexport function createRemoveRangeOp(start: number, end: number): IMergeTreeRemoveMsg {\n return {\n pos1: start,\n pos2: end,\n type: MergeTreeDeltaType.REMOVE,\n };\n}\n\n/**\n *\n * @param pos - The position to insert the segment at\n * @param segment - The segment to insert\n */\nexport function createInsertSegmentOp(pos: number, segment: ISegment): IMergeTreeInsertMsg {\n return createInsertOp(\n pos,\n segment.toJSONObject());\n}\n\nexport function createInsertOp(pos: number, segSpec: any): IMergeTreeInsertMsg {\n return {\n pos1: pos,\n seg: segSpec,\n type: MergeTreeDeltaType.INSERT,\n };\n}\n\n/**\n *\n * @param ops - The ops to group\n */\nexport function createGroupOp(\n ...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg {\n return {\n ops,\n type: MergeTreeDeltaType.GROUP,\n };\n}\n"]}
1
+ {"version":3,"file":"opBuilder.js","sourceRoot":"","sources":["../src/opBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAMH,kBAAkB,GAErB,MAAM,OAAO,CAAC;AAGf;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAClC,MAAc,EAAE,KAAkB,EAAE,WAA0B;IAC9D,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,EAAE;QACL,OAAO,SAAS,CAAC;KACpB;IAED,OAAO;QACH,WAAW;QACX,KAAK;QACL,YAAY,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAClC,YAAY,EAAE,EAAE,EAAE,EAAE;QACpB,IAAI,EAAE,kBAAkB,CAAC,QAAQ;KACpC,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACjC,KAAa,EAAE,GAAW,EAAE,KAAkB,EAAE,WAAqC;IACrF,OAAO;QACH,WAAW;QACX,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,KAAK;QACL,IAAI,EAAE,kBAAkB,CAAC,QAAQ;KACpC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW;IAC1D,OAAO;QACH,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,kBAAkB,CAAC,MAAM;KAClC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,OAAiB;IAChE,OAAO,cAAc,CACjB,GAAG,EACH,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,OAAY;IACpD,OAAO;QACH,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,kBAAkB,CAAC,MAAM;KAClC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CACzB,GAAG,GAAwB;IAC3B,OAAO;QACH,GAAG;QACH,IAAI,EAAE,kBAAkB,CAAC,KAAK;KACjC,CAAC;AACN,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISegment, Marker } from \"./mergeTree\";\nimport {\n ICombiningOp,\n IMergeTreeAnnotateMsg,\n IMergeTreeGroupMsg,\n IMergeTreeInsertMsg,\n IMergeTreeRemoveMsg,\n MergeTreeDeltaType,\n IMergeTreeDeltaOp,\n} from \"./ops\";\nimport { PropertySet } from \"./properties\";\n\n/**\n * Creates the op for annotating the markers with the provided properties\n * @param marker - The marker to annotate\n * @param props - The properties to annotate the marker with\n * @param combiningOp - Optional. Specifies how to combine values for the property, such as \"incr\" for increment.\n * @returns The annotate op\n */\nexport function createAnnotateMarkerOp(\n marker: Marker, props: PropertySet, combiningOp?: ICombiningOp): IMergeTreeAnnotateMsg | undefined {\n const id = marker.getId();\n if (!id) {\n return undefined;\n }\n\n return {\n combiningOp,\n props,\n relativePos1: { id, before: true },\n relativePos2: { id },\n type: MergeTreeDeltaType.ANNOTATE,\n };\n}\n\n/**\n * Creates the op for annotating the range with the provided properties\n * @param start - The inclusive start position of the range to annotate\n * @param end - The exclusive end position of the range to annotate\n * @param props - The properties to annotate the range with\n * @param combiningOp - Optional. Specifies how to combine values for the property, such as \"incr\" for increment.\n * @returns The annotate op\n */\nexport function createAnnotateRangeOp(\n start: number, end: number, props: PropertySet, combiningOp: ICombiningOp | undefined): IMergeTreeAnnotateMsg {\n return {\n combiningOp,\n pos1: start,\n pos2: end,\n props,\n type: MergeTreeDeltaType.ANNOTATE,\n };\n}\n\n/**\n * Creates the op to remove a range\n *\n * @param start - The inclusive start of the range to remove\n * @param end - The exclusive end of the range to remove\n */\nexport function createRemoveRangeOp(start: number, end: number): IMergeTreeRemoveMsg {\n return {\n pos1: start,\n pos2: end,\n type: MergeTreeDeltaType.REMOVE,\n };\n}\n\n/**\n *\n * @param pos - The position to insert the segment at\n * @param segment - The segment to insert\n */\nexport function createInsertSegmentOp(pos: number, segment: ISegment): IMergeTreeInsertMsg {\n return createInsertOp(\n pos,\n segment.toJSONObject());\n}\n\nexport function createInsertOp(pos: number, segSpec: any): IMergeTreeInsertMsg {\n return {\n pos1: pos,\n seg: segSpec,\n type: MergeTreeDeltaType.INSERT,\n };\n}\n\n/**\n *\n * @param ops - The ops to group\n */\nexport function createGroupOp(\n ...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg {\n return {\n ops,\n type: MergeTreeDeltaType.GROUP,\n };\n}\n"]}
package/lib/ops.d.ts CHANGED
@@ -10,17 +10,19 @@ export declare enum ReferenceType {
10
10
  RangeBegin = 16,
11
11
  RangeEnd = 32,
12
12
  SlideOnRemove = 64,
13
+ StayOnRemove = 128,
13
14
  Transient = 256
14
15
  }
15
16
  export interface IMarkerDef {
16
17
  refType?: ReferenceType;
17
18
  }
18
- export declare const enum MergeTreeDeltaType {
19
- INSERT = 0,
20
- REMOVE = 1,
21
- ANNOTATE = 2,
22
- GROUP = 3
23
- }
19
+ export declare const MergeTreeDeltaType: {
20
+ readonly INSERT: 0;
21
+ readonly REMOVE: 1;
22
+ readonly ANNOTATE: 2;
23
+ readonly GROUP: 3;
24
+ };
25
+ export declare type MergeTreeDeltaType = typeof MergeTreeDeltaType[keyof typeof MergeTreeDeltaType];
24
26
  export interface IMergeTreeDelta {
25
27
  /**
26
28
  * Type of this change.
@@ -47,7 +49,7 @@ export interface IRelativePosition {
47
49
  offset?: number;
48
50
  }
49
51
  export interface IMergeTreeInsertMsg extends IMergeTreeDelta {
50
- type: MergeTreeDeltaType.INSERT;
52
+ type: typeof MergeTreeDeltaType.INSERT;
51
53
  pos1?: number;
52
54
  relativePos1?: IRelativePosition;
53
55
  pos2?: number;
@@ -55,7 +57,7 @@ export interface IMergeTreeInsertMsg extends IMergeTreeDelta {
55
57
  seg?: any;
56
58
  }
57
59
  export interface IMergeTreeRemoveMsg extends IMergeTreeDelta {
58
- type: MergeTreeDeltaType.REMOVE;
60
+ type: typeof MergeTreeDeltaType.REMOVE;
59
61
  pos1?: number;
60
62
  relativePos1?: IRelativePosition;
61
63
  pos2?: number;
@@ -68,7 +70,7 @@ export interface ICombiningOp {
68
70
  maxValue?: any;
69
71
  }
70
72
  export interface IMergeTreeAnnotateMsg extends IMergeTreeDelta {
71
- type: MergeTreeDeltaType.ANNOTATE;
73
+ type: typeof MergeTreeDeltaType.ANNOTATE;
72
74
  pos1?: number;
73
75
  relativePos1?: IRelativePosition;
74
76
  pos2?: number;
@@ -77,7 +79,7 @@ export interface IMergeTreeAnnotateMsg extends IMergeTreeDelta {
77
79
  combiningOp?: ICombiningOp;
78
80
  }
79
81
  export interface IMergeTreeGroupMsg extends IMergeTreeDelta {
80
- type: MergeTreeDeltaType.GROUP;
82
+ type: typeof MergeTreeDeltaType.GROUP;
81
83
  ops: IMergeTreeDeltaOp[];
82
84
  }
83
85
  export interface IJSONSegment {
package/lib/ops.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,aAAa;IACrB,MAAM,IAAM;IACZ,IAAI,IAAM;IACV,SAAS,IAAM;IACf,OAAO,IAAM;IACb,UAAU,KAAO;IACjB,QAAQ,KAAO;IACf,aAAa,KAAO;IACpB,SAAS,MAAQ;CACpB;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;CAC3B;AAGD,0BAAkB,kBAAkB;IAChC,MAAM,IAAI;IACV,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,KAAK,IAAI;CACZ;AAED,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IACxD,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IACxD,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC1D,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACvD,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC;IAC/B,GAAG,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,oBAAY,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAElG,oBAAY,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,aAAa;IACrB,MAAM,IAAM;IACZ,IAAI,IAAM;IACV,SAAS,IAAM;IACf,OAAO,IAAM;IACb,UAAU,KAAO;IACjB,QAAQ,KAAO;IACf,aAAa,KAAO;IACpB,YAAY,MAAO;IACnB,SAAS,MAAQ;CACpB;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;CAC3B;AAGD,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,oBAAY,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IACxD,IAAI,EAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IACxD,IAAI,EAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC1D,IAAI,EAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACvD,IAAI,EAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC;IACtC,GAAG,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,oBAAY,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAElG,oBAAY,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,CAAC"}
package/lib/ops.js CHANGED
@@ -11,14 +11,14 @@ export var ReferenceType;
11
11
  ReferenceType[ReferenceType["RangeBegin"] = 16] = "RangeBegin";
12
12
  ReferenceType[ReferenceType["RangeEnd"] = 32] = "RangeEnd";
13
13
  ReferenceType[ReferenceType["SlideOnRemove"] = 64] = "SlideOnRemove";
14
+ ReferenceType[ReferenceType["StayOnRemove"] = 128] = "StayOnRemove";
14
15
  ReferenceType[ReferenceType["Transient"] = 256] = "Transient";
15
16
  })(ReferenceType || (ReferenceType = {}));
16
17
  // Note: Assigned positive integers to avoid clashing with MergeTreeMaintenanceType
17
- export var MergeTreeDeltaType;
18
- (function (MergeTreeDeltaType) {
19
- MergeTreeDeltaType[MergeTreeDeltaType["INSERT"] = 0] = "INSERT";
20
- MergeTreeDeltaType[MergeTreeDeltaType["REMOVE"] = 1] = "REMOVE";
21
- MergeTreeDeltaType[MergeTreeDeltaType["ANNOTATE"] = 2] = "ANNOTATE";
22
- MergeTreeDeltaType[MergeTreeDeltaType["GROUP"] = 3] = "GROUP";
23
- })(MergeTreeDeltaType || (MergeTreeDeltaType = {}));
18
+ export const MergeTreeDeltaType = {
19
+ INSERT: 0,
20
+ REMOVE: 1,
21
+ ANNOTATE: 2,
22
+ GROUP: 3,
23
+ };
24
24
  //# sourceMappingURL=ops.js.map
package/lib/ops.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ops.js","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACrB,qDAAY,CAAA;IACZ,iDAAU,CAAA;IACV,2DAAe,CAAA;IACf,uDAAa,CAAA;IACb,8DAAiB,CAAA;IACjB,0DAAe,CAAA;IACf,oEAAoB,CAAA;IACpB,6DAAiB,CAAA;AACrB,CAAC,EATW,aAAa,KAAb,aAAa,QASxB;AAMD,mFAAmF;AACnF,MAAM,CAAN,IAAkB,kBAKjB;AALD,WAAkB,kBAAkB;IAChC,+DAAU,CAAA;IACV,+DAAU,CAAA;IACV,mEAAY,CAAA;IACZ,6DAAS,CAAA;AACb,CAAC,EALiB,kBAAkB,KAAlB,kBAAkB,QAKnC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport enum ReferenceType {\n Simple = 0x0,\n Tile = 0x1,\n NestBegin = 0x2,\n NestEnd = 0x4,\n RangeBegin = 0x10,\n RangeEnd = 0x20,\n SlideOnRemove = 0x40,\n Transient = 0x100,\n}\n\nexport interface IMarkerDef {\n refType?: ReferenceType;\n}\n\n// Note: Assigned positive integers to avoid clashing with MergeTreeMaintenanceType\nexport const enum MergeTreeDeltaType {\n INSERT = 0,\n REMOVE = 1,\n ANNOTATE = 2,\n GROUP = 3,\n}\n\nexport interface IMergeTreeDelta {\n /**\n * Type of this change.\n */\n type: MergeTreeDeltaType;\n}\n\n/**\n * A position specified relative to a segment.\n */\nexport interface IRelativePosition {\n /**\n * String identifier specifying a segment.\n */\n id?: string;\n /**\n * If true, insert before the specified segment. If false or not defined,\n * insert after the specified segment.\n */\n before?: boolean;\n /**\n * A positive number \\>= 1. If before is false, offset is added to the position.\n * If before is true, offset is subtracted from the position.\n */\n offset?: number;\n}\n\nexport interface IMergeTreeInsertMsg extends IMergeTreeDelta {\n type: MergeTreeDeltaType.INSERT;\n pos1?: number;\n relativePos1?: IRelativePosition;\n pos2?: number;\n relativePos2?: IRelativePosition;\n seg?: any;\n}\n\nexport interface IMergeTreeRemoveMsg extends IMergeTreeDelta {\n type: MergeTreeDeltaType.REMOVE;\n pos1?: number;\n relativePos1?: IRelativePosition;\n pos2?: number;\n relativePos2?: IRelativePosition;\n}\n\nexport interface ICombiningOp {\n name: string;\n defaultValue?: any;\n minValue?: any;\n maxValue?: any;\n}\n\nexport interface IMergeTreeAnnotateMsg extends IMergeTreeDelta {\n type: MergeTreeDeltaType.ANNOTATE;\n pos1?: number;\n relativePos1?: IRelativePosition;\n pos2?: number;\n relativePos2?: IRelativePosition;\n props: Record<string, any>;\n combiningOp?: ICombiningOp;\n}\n\nexport interface IMergeTreeGroupMsg extends IMergeTreeDelta {\n type: MergeTreeDeltaType.GROUP;\n ops: IMergeTreeDeltaOp[];\n}\n\nexport interface IJSONSegment {\n props?: Record<string, any>;\n}\n\nexport type IMergeTreeDeltaOp = IMergeTreeInsertMsg | IMergeTreeRemoveMsg | IMergeTreeAnnotateMsg;\n\nexport type IMergeTreeOp = IMergeTreeDeltaOp | IMergeTreeGroupMsg;\n"]}
1
+ {"version":3,"file":"ops.js","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAN,IAAY,aAUX;AAVD,WAAY,aAAa;IACrB,qDAAY,CAAA;IACZ,iDAAU,CAAA;IACV,2DAAe,CAAA;IACf,uDAAa,CAAA;IACb,8DAAiB,CAAA;IACjB,0DAAe,CAAA;IACf,oEAAoB,CAAA;IACpB,mEAAmB,CAAA;IACnB,6DAAiB,CAAA;AACrB,CAAC,EAVW,aAAa,KAAb,aAAa,QAUxB;AAMD,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;CACF,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport enum ReferenceType {\n Simple = 0x0,\n Tile = 0x1,\n NestBegin = 0x2,\n NestEnd = 0x4,\n RangeBegin = 0x10,\n RangeEnd = 0x20,\n SlideOnRemove = 0x40,\n StayOnRemove = 0x80,\n Transient = 0x100,\n}\n\nexport interface IMarkerDef {\n refType?: ReferenceType;\n}\n\n// Note: Assigned positive integers to avoid clashing with MergeTreeMaintenanceType\nexport const MergeTreeDeltaType = {\n INSERT: 0,\n REMOVE: 1,\n ANNOTATE: 2,\n GROUP: 3,\n} as const;\n\nexport type MergeTreeDeltaType = typeof MergeTreeDeltaType[keyof typeof MergeTreeDeltaType];\n\nexport interface IMergeTreeDelta {\n /**\n * Type of this change.\n */\n type: MergeTreeDeltaType;\n}\n\n/**\n * A position specified relative to a segment.\n */\nexport interface IRelativePosition {\n /**\n * String identifier specifying a segment.\n */\n id?: string;\n /**\n * If true, insert before the specified segment. If false or not defined,\n * insert after the specified segment.\n */\n before?: boolean;\n /**\n * A positive number \\>= 1. If before is false, offset is added to the position.\n * If before is true, offset is subtracted from the position.\n */\n offset?: number;\n}\n\nexport interface IMergeTreeInsertMsg extends IMergeTreeDelta {\n type: typeof MergeTreeDeltaType.INSERT;\n pos1?: number;\n relativePos1?: IRelativePosition;\n pos2?: number;\n relativePos2?: IRelativePosition;\n seg?: any;\n}\n\nexport interface IMergeTreeRemoveMsg extends IMergeTreeDelta {\n type: typeof MergeTreeDeltaType.REMOVE;\n pos1?: number;\n relativePos1?: IRelativePosition;\n pos2?: number;\n relativePos2?: IRelativePosition;\n}\n\nexport interface ICombiningOp {\n name: string;\n defaultValue?: any;\n minValue?: any;\n maxValue?: any;\n}\n\nexport interface IMergeTreeAnnotateMsg extends IMergeTreeDelta {\n type: typeof MergeTreeDeltaType.ANNOTATE;\n pos1?: number;\n relativePos1?: IRelativePosition;\n pos2?: number;\n relativePos2?: IRelativePosition;\n props: Record<string, any>;\n combiningOp?: ICombiningOp;\n}\n\nexport interface IMergeTreeGroupMsg extends IMergeTreeDelta {\n type: typeof MergeTreeDeltaType.GROUP;\n ops: IMergeTreeDeltaOp[];\n}\n\nexport interface IJSONSegment {\n props?: Record<string, any>;\n}\n\nexport type IMergeTreeDeltaOp = IMergeTreeInsertMsg | IMergeTreeRemoveMsg | IMergeTreeAnnotateMsg;\n\nexport type IMergeTreeOp = IMergeTreeDeltaOp | IMergeTreeGroupMsg;\n"]}
@@ -8,7 +8,7 @@ import { ReferenceType, ICombiningOp } from "./ops";
8
8
  import { PropertySet, MapLike } from "./properties";
9
9
  export declare const reservedTileLabelsKey = "referenceTileLabels";
10
10
  export declare const reservedRangeLabelsKey = "referenceRangeLabels";
11
- export declare function refTypeIncludesFlag(refPos: ReferencePosition, flags: ReferenceType): boolean;
11
+ export declare function refTypeIncludesFlag(refPosOrType: ReferencePosition | ReferenceType, flags: ReferenceType): boolean;
12
12
  export declare const refGetTileLabels: (refPos: ReferencePosition) => string[] | undefined;
13
13
  export declare const refGetRangeLabels: (refPos: ReferencePosition) => string[] | undefined;
14
14
  export declare function refHasTileLabel(refPos: ReferencePosition, label: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"referencePositions.d.ts","sourceRoot":"","sources":["../src/referencePositions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAE7D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAG5F;AAED,eAAO,MAAM,gBAAgB,WAAY,iBAAiB,KAAG,MAAM,EAAE,GAAG,SAEuB,CAAC;AAEhG,eAAO,MAAM,iBAAiB,WAAY,iBAAiB,KAAG,MAAM,EAAE,GAAG,SAGuB,CAAC;AAEjG,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAUjF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAUlF;AACD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEnE;AACD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEpE;AAED,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IAEvB,UAAU,IAAI,QAAQ,GAAG,SAAS,CAAC;IACnC,SAAS,IAAI,MAAM,CAAC;IACpB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9D,MAAM,IAAI,OAAO,CAAC;IAElB;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC;IACzB;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC;IAC1B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;CAC1C;AAED,oBAAY,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC9D,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAM/E;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAM/E;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAc5F"}
1
+ {"version":3,"file":"referencePositions.d.ts","sourceRoot":"","sources":["../src/referencePositions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAE7D,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,GAAG,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAIlH;AAED,eAAO,MAAM,gBAAgB,WAAY,iBAAiB,KAAG,MAAM,EAAE,GAAG,SAEuB,CAAC;AAEhG,eAAO,MAAM,iBAAiB,WAAY,iBAAiB,KAAG,MAAM,EAAE,GAAG,SAGuB,CAAC;AAEjG,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAUjF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAUlF;AACD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEnE;AACD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEpE;AAED,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IAEvB,UAAU,IAAI,QAAQ,GAAG,SAAS,CAAC;IACnC,SAAS,IAAI,MAAM,CAAC;IACpB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9D,MAAM,IAAI,OAAO,CAAC;IAElB;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC;IACzB;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC;IAC1B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;CAC1C;AAED,oBAAY,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC9D,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAM/E;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAM/E;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAc5F"}
@@ -5,9 +5,10 @@
5
5
  import { ReferenceType } from "./ops";
6
6
  export const reservedTileLabelsKey = "referenceTileLabels";
7
7
  export const reservedRangeLabelsKey = "referenceRangeLabels";
8
- export function refTypeIncludesFlag(refPos, flags) {
8
+ export function refTypeIncludesFlag(refPosOrType, flags) {
9
+ const refType = typeof refPosOrType === "number" ? refPosOrType : refPosOrType.refType;
9
10
  // eslint-disable-next-line no-bitwise
10
- return (refPos.refType & flags) !== 0;
11
+ return (refType & flags) !== 0;
11
12
  }
12
13
  export const refGetTileLabels = (refPos) => refTypeIncludesFlag(refPos, ReferenceType.Tile)
13
14
  && refPos.properties ? refPos.properties[reservedTileLabelsKey] : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"referencePositions.js","sourceRoot":"","sources":["../src/referencePositions.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 { Stack } from \"./collections\";\nimport { ISegment } from \"./mergeTree\";\nimport { ReferenceType, ICombiningOp } from \"./ops\";\nimport { PropertySet, MapLike } from \"./properties\";\n\nexport const reservedTileLabelsKey = \"referenceTileLabels\";\nexport const reservedRangeLabelsKey = \"referenceRangeLabels\";\n\nexport function refTypeIncludesFlag(refPos: ReferencePosition, flags: ReferenceType): boolean {\n // eslint-disable-next-line no-bitwise\n return (refPos.refType & flags) !== 0;\n}\n\nexport const refGetTileLabels = (refPos: ReferencePosition): string[] | undefined =>\n refTypeIncludesFlag(refPos, ReferenceType.Tile)\n && refPos.properties ? refPos.properties[reservedTileLabelsKey] as string[] : undefined;\n\nexport const refGetRangeLabels = (refPos: ReferencePosition): string[] | undefined =>\n // eslint-disable-next-line no-bitwise\n (refTypeIncludesFlag(refPos, ReferenceType.NestBegin | ReferenceType.NestEnd))\n && refPos.properties ? refPos.properties[reservedRangeLabelsKey] as string[] : undefined;\n\nexport function refHasTileLabel(refPos: ReferencePosition, label: string): boolean {\n const tileLabels = refGetTileLabels(refPos);\n if (tileLabels) {\n for (const refLabel of tileLabels) {\n if (label === refLabel) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function refHasRangeLabel(refPos: ReferencePosition, label: string): boolean {\n const rangeLabels = refGetRangeLabels(refPos);\n if (rangeLabels) {\n for (const refLabel of rangeLabels) {\n if (label === refLabel) {\n return true;\n }\n }\n }\n return false;\n}\nexport function refHasTileLabels(refPos: ReferencePosition): boolean {\n return refGetTileLabels(refPos) !== undefined;\n}\nexport function refHasRangeLabels(refPos: ReferencePosition): boolean {\n return refGetRangeLabels(refPos) !== undefined;\n}\n\nexport interface ReferencePosition {\n properties?: PropertySet;\n refType: ReferenceType;\n\n getSegment(): ISegment | undefined;\n getOffset(): number;\n addProperties(newProps: PropertySet, op?: ICombiningOp): void;\n isLeaf(): boolean;\n\n /**\n * @deprecated - use refHasTileLabels\n */\n hasTileLabels(): boolean;\n /**\n * @deprecated - use refHasRangeLabels\n */\n hasRangeLabels(): boolean;\n /**\n * @deprecated - use refHasTileLabel\n */\n hasTileLabel(label: string): boolean;\n /**\n * @deprecated - use refHasRangeLabel\n */\n hasRangeLabel(label: string): boolean;\n /**\n * @deprecated - use refGetTileLabels\n */\n getTileLabels(): string[] | undefined;\n /**\n * @deprecated - use refGetRangeLabels\n */\n getRangeLabels(): string[] | undefined;\n}\n\nexport type RangeStackMap = MapLike<Stack<ReferencePosition>>;\nexport const DetachedReferencePosition = -1;\n\nexport function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T {\n if (compareReferencePositions(a, b) < 0) {\n return a;\n } else {\n return b;\n }\n}\n\nexport function maxReferencePosition<T extends ReferencePosition>(a: T, b: T): T {\n if (compareReferencePositions(a, b) > 0) {\n return a;\n } else {\n return b;\n }\n}\n\nexport function compareReferencePositions(a: ReferencePosition, b: ReferencePosition): number {\n const aSeg = a.getSegment();\n const bSeg = b.getSegment();\n if (aSeg === bSeg) {\n return a.getOffset() - b.getOffset();\n } else {\n if (aSeg === undefined\n || (bSeg !== undefined &&\n aSeg.ordinal < bSeg.ordinal)) {\n return -1;\n } else {\n return 1;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"referencePositions.js","sourceRoot":"","sources":["../src/referencePositions.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 { Stack } from \"./collections\";\nimport { ISegment } from \"./mergeTree\";\nimport { ReferenceType, ICombiningOp } from \"./ops\";\nimport { PropertySet, MapLike } from \"./properties\";\n\nexport const reservedTileLabelsKey = \"referenceTileLabels\";\nexport const reservedRangeLabelsKey = \"referenceRangeLabels\";\n\nexport function refTypeIncludesFlag(refPosOrType: ReferencePosition | ReferenceType, flags: ReferenceType): boolean {\n const refType = typeof refPosOrType === \"number\" ? refPosOrType : refPosOrType.refType;\n // eslint-disable-next-line no-bitwise\n return (refType & flags) !== 0;\n}\n\nexport const refGetTileLabels = (refPos: ReferencePosition): string[] | undefined =>\n refTypeIncludesFlag(refPos, ReferenceType.Tile)\n && refPos.properties ? refPos.properties[reservedTileLabelsKey] as string[] : undefined;\n\nexport const refGetRangeLabels = (refPos: ReferencePosition): string[] | undefined =>\n // eslint-disable-next-line no-bitwise\n (refTypeIncludesFlag(refPos, ReferenceType.NestBegin | ReferenceType.NestEnd))\n && refPos.properties ? refPos.properties[reservedRangeLabelsKey] as string[] : undefined;\n\nexport function refHasTileLabel(refPos: ReferencePosition, label: string): boolean {\n const tileLabels = refGetTileLabels(refPos);\n if (tileLabels) {\n for (const refLabel of tileLabels) {\n if (label === refLabel) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function refHasRangeLabel(refPos: ReferencePosition, label: string): boolean {\n const rangeLabels = refGetRangeLabels(refPos);\n if (rangeLabels) {\n for (const refLabel of rangeLabels) {\n if (label === refLabel) {\n return true;\n }\n }\n }\n return false;\n}\nexport function refHasTileLabels(refPos: ReferencePosition): boolean {\n return refGetTileLabels(refPos) !== undefined;\n}\nexport function refHasRangeLabels(refPos: ReferencePosition): boolean {\n return refGetRangeLabels(refPos) !== undefined;\n}\n\nexport interface ReferencePosition {\n properties?: PropertySet;\n refType: ReferenceType;\n\n getSegment(): ISegment | undefined;\n getOffset(): number;\n addProperties(newProps: PropertySet, op?: ICombiningOp): void;\n isLeaf(): boolean;\n\n /**\n * @deprecated - use refHasTileLabels\n */\n hasTileLabels(): boolean;\n /**\n * @deprecated - use refHasRangeLabels\n */\n hasRangeLabels(): boolean;\n /**\n * @deprecated - use refHasTileLabel\n */\n hasTileLabel(label: string): boolean;\n /**\n * @deprecated - use refHasRangeLabel\n */\n hasRangeLabel(label: string): boolean;\n /**\n * @deprecated - use refGetTileLabels\n */\n getTileLabels(): string[] | undefined;\n /**\n * @deprecated - use refGetRangeLabels\n */\n getRangeLabels(): string[] | undefined;\n}\n\nexport type RangeStackMap = MapLike<Stack<ReferencePosition>>;\nexport const DetachedReferencePosition = -1;\n\nexport function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T {\n if (compareReferencePositions(a, b) < 0) {\n return a;\n } else {\n return b;\n }\n}\n\nexport function maxReferencePosition<T extends ReferencePosition>(a: T, b: T): T {\n if (compareReferencePositions(a, b) > 0) {\n return a;\n } else {\n return b;\n }\n}\n\nexport function compareReferencePositions(a: ReferencePosition, b: ReferencePosition): number {\n const aSeg = a.getSegment();\n const bSeg = b.getSegment();\n if (aSeg === bSeg) {\n return a.getOffset() - b.getOffset();\n } else {\n if (aSeg === undefined\n || (bSeg !== undefined &&\n aSeg.ordinal < bSeg.ordinal)) {\n return -1;\n } else {\n return 1;\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/merge-tree",
3
- "version": "0.59.4002",
3
+ "version": "1.0.2",
4
4
  "description": "Merge tree",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -61,46 +61,34 @@
61
61
  "dependencies": {
62
62
  "@fluidframework/common-definitions": "^0.20.1",
63
63
  "@fluidframework/common-utils": "^0.32.1",
64
- "@fluidframework/container-definitions": "^0.48.2000",
65
- "@fluidframework/core-interfaces": "^0.43.1000",
66
- "@fluidframework/datastore-definitions": "^0.59.4002",
64
+ "@fluidframework/container-definitions": "^1.0.2",
65
+ "@fluidframework/container-utils": "^1.0.2",
66
+ "@fluidframework/core-interfaces": "^1.0.2",
67
+ "@fluidframework/datastore-definitions": "^1.0.2",
67
68
  "@fluidframework/protocol-definitions": "^0.1028.2000",
68
- "@fluidframework/runtime-definitions": "^0.59.4002",
69
- "@fluidframework/runtime-utils": "^0.59.4002",
70
- "@fluidframework/shared-object-base": "^0.59.4002",
71
- "@fluidframework/telemetry-utils": "^0.59.4002"
69
+ "@fluidframework/runtime-definitions": "^1.0.2",
70
+ "@fluidframework/runtime-utils": "^1.0.2",
71
+ "@fluidframework/shared-object-base": "^1.0.2",
72
+ "@fluidframework/telemetry-utils": "^1.0.2"
72
73
  },
73
74
  "devDependencies": {
74
75
  "@fluidframework/build-common": "^0.23.0",
75
- "@fluidframework/build-tools": "^0.2.70857",
76
+ "@fluidframework/build-tools": "^0.2.71273",
76
77
  "@fluidframework/eslint-config-fluid": "^0.28.2000",
77
- "@fluidframework/merge-tree-previous": "npm:@fluidframework/merge-tree@0.59.4001",
78
- "@fluidframework/mocha-test-setup": "^0.59.4002",
79
- "@fluidframework/test-runtime-utils": "^0.59.4002",
78
+ "@fluidframework/merge-tree-previous": "npm:@fluidframework/merge-tree@^0.58.0",
79
+ "@fluidframework/mocha-test-setup": "^1.0.2",
80
+ "@fluidframework/test-runtime-utils": "^1.0.2",
80
81
  "@microsoft/api-extractor": "^7.22.2",
81
82
  "@rushstack/eslint-config": "^2.5.1",
82
83
  "@types/diff": "^3.5.1",
83
84
  "@types/mocha": "^9.1.1",
84
85
  "@types/node": "^14.18.0",
85
86
  "@types/random-js": "^1.0.31",
86
- "@typescript-eslint/eslint-plugin": "~5.9.0",
87
- "@typescript-eslint/parser": "~5.9.0",
88
87
  "concurrently": "^6.2.0",
89
88
  "copyfiles": "^2.1.0",
90
89
  "cross-env": "^7.0.2",
91
90
  "diff": "^3.5.0",
92
91
  "eslint": "~8.6.0",
93
- "eslint-plugin-editorconfig": "~3.2.0",
94
- "eslint-plugin-eslint-comments": "~3.2.0",
95
- "eslint-plugin-import": "~2.25.4",
96
- "eslint-plugin-jest": "~26.1.3",
97
- "eslint-plugin-jsdoc": "~39.3.0",
98
- "eslint-plugin-mocha": "~10.0.3",
99
- "eslint-plugin-promise": "~6.0.0",
100
- "eslint-plugin-react": "~7.28.0",
101
- "eslint-plugin-tsdoc": "~0.2.14",
102
- "eslint-plugin-unicorn": "~40.0.0",
103
- "eslint-plugin-unused-imports": "~2.0.0",
104
92
  "mocha": "^10.0.0",
105
93
  "nyc": "^15.0.0",
106
94
  "random-js": "^1.0.8",
@@ -110,74 +98,81 @@
110
98
  "typescript-formatter": "7.1.0"
111
99
  },
112
100
  "typeValidation": {
113
- "version": "0.59.4002",
101
+ "version": "1.0.0",
114
102
  "broken": {
115
- "InterfaceDeclaration_IMergeTreeAnnotateMsg": {
116
- "forwardCompat": false,
117
- "backCompat": false
103
+ "ClassDeclaration_BaseSegment": {
104
+ "forwardCompat": false
118
105
  },
119
- "InterfaceDeclaration_IMergeTreeDelta": {
120
- "forwardCompat": false,
121
- "backCompat": false
106
+ "ClassDeclaration_Client": {
107
+ "forwardCompat": false
122
108
  },
123
- "InterfaceDeclaration_IMergeTreeDeltaCallbackArgs": {
124
- "forwardCompat": false,
125
- "backCompat": false
109
+ "InterfaceDeclaration_IConsensusInfo": {
110
+ "backCompat": false,
111
+ "forwardCompat": false
126
112
  },
127
- "TypeAliasDeclaration_IMergeTreeDeltaOp": {
128
- "forwardCompat": false,
129
- "backCompat": false
113
+ "InterfaceDeclaration_IHierBlock": {
114
+ "forwardCompat": false
130
115
  },
131
- "InterfaceDeclaration_IMergeTreeDeltaOpArgs": {
132
- "forwardCompat": false,
133
- "backCompat": false
116
+ "InterfaceDeclaration_IMergeBlock": {
117
+ "forwardCompat": false
134
118
  },
135
- "InterfaceDeclaration_IMergeTreeGroupMsg": {
136
- "forwardCompat": false,
137
- "backCompat": false
119
+ "TypeAliasDeclaration_IMergeNode": {
120
+ "forwardCompat": false
138
121
  },
139
- "InterfaceDeclaration_IMergeTreeInsertMsg": {
140
- "forwardCompat": false,
141
- "backCompat": false
122
+ "InterfaceDeclaration_IMergeNodeCommon": {
123
+ "forwardCompat": false
142
124
  },
143
- "InterfaceDeclaration_IMergeTreeMaintenanceCallbackArgs": {
144
- "forwardCompat": false,
145
- "backCompat": false
125
+ "ClassDeclaration_IncrementalMapState": {
126
+ "forwardCompat": false
146
127
  },
147
- "TypeAliasDeclaration_IMergeTreeOp": {
148
- "forwardCompat": false,
149
- "backCompat": false
128
+ "InterfaceDeclaration_InsertContext": {
129
+ "forwardCompat": false
150
130
  },
151
- "InterfaceDeclaration_IMergeTreeRemoveMsg": {
152
- "forwardCompat": false,
153
- "backCompat": false
131
+ "InterfaceDeclaration_IRemovalInfo": {
132
+ "forwardCompat": false
154
133
  },
155
- "TypeAliasDeclaration_IntervalNode": {
156
- "forwardCompat": false,
157
- "backCompat": false
134
+ "InterfaceDeclaration_ISegmentChanges": {
135
+ "forwardCompat": false
158
136
  },
159
- "TypeAliasDeclaration_MergeTreeDeltaOperationType": {
160
- "forwardCompat": false,
161
- "backCompat": false
137
+ "ClassDeclaration_LocalReference": {
138
+ "backCompat": false,
139
+ "forwardCompat": false
162
140
  },
163
- "TypeAliasDeclaration_MergeTreeDeltaOperationTypes": {
164
- "forwardCompat": false,
165
- "backCompat": false
141
+ "ClassDeclaration_LocalReferenceCollection": {
142
+ "forwardCompat": false
166
143
  },
167
- "EnumDeclaration_MergeTreeDeltaType": {
168
- "forwardCompat": false,
169
- "backCompat": false
144
+ "InterfaceDeclaration_LRUSegment": {
145
+ "forwardCompat": false
146
+ },
147
+ "ClassDeclaration_Marker": {
148
+ "backCompat": false,
149
+ "forwardCompat": false
150
+ },
151
+ "ClassDeclaration_MergeBlock": {
152
+ "forwardCompat": false
153
+ },
154
+ "ClassDeclaration_MergeNode": {
155
+ "forwardCompat": false
156
+ },
157
+ "ClassDeclaration_MergeTree": {
158
+ "forwardCompat": false
159
+ },
160
+ "ClassDeclaration_SnapshotLegacy": {
161
+ "forwardCompat": false
162
+ },
163
+ "ClassDeclaration_TextSegment": {
164
+ "forwardCompat": false
165
+ },
166
+ "ClassDeclaration_List": {
167
+ "forwardCompat": false
170
168
  },
171
- "EnumDeclaration_MergeTreeMaintenanceType": {
172
- "forwardCompat": false,
169
+ "InterfaceDeclaration_IJSONMarkerSegment": {
173
170
  "backCompat": false
174
171
  },
175
- "EnumDeclaration_RBColor": {
176
- "forwardCompat": false,
172
+ "InterfaceDeclaration_IMarkerDef": {
177
173
  "backCompat": false
178
174
  },
179
- "InterfaceDeclaration_RBNode": {
180
- "forwardCompat": false,
175
+ "EnumDeclaration_ReferenceType": {
181
176
  "backCompat": false
182
177
  }
183
178
  }