@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.
- package/.eslintrc.js +1 -1
- package/README.md +1 -1
- package/REFERENCEPOSITIONS.md +127 -0
- package/dist/client.d.ts +17 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +47 -41
- package/dist/client.js.map +1 -1
- package/dist/collections.d.ts +5 -4
- package/dist/collections.d.ts.map +1 -1
- package/dist/collections.js +17 -18
- package/dist/collections.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/localReference.d.ts +4 -0
- package/dist/localReference.d.ts.map +1 -1
- package/dist/localReference.js +24 -3
- package/dist/localReference.js.map +1 -1
- package/dist/mergeTree.d.ts +20 -0
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +139 -48
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts +8 -10
- package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/dist/mergeTreeDeltaCallback.js +6 -10
- package/dist/mergeTreeDeltaCallback.js.map +1 -1
- package/dist/opBuilder.js +6 -5
- package/dist/opBuilder.js.map +1 -1
- package/dist/ops.d.ts +12 -10
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +7 -7
- package/dist/ops.js.map +1 -1
- package/dist/referencePositions.d.ts +1 -1
- package/dist/referencePositions.d.ts.map +1 -1
- package/dist/referencePositions.js +3 -2
- package/dist/referencePositions.js.map +1 -1
- package/lib/client.d.ts +17 -0
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +47 -41
- package/lib/client.js.map +1 -1
- package/lib/collections.d.ts +5 -4
- package/lib/collections.d.ts.map +1 -1
- package/lib/collections.js +17 -18
- package/lib/collections.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/localReference.d.ts +4 -0
- package/lib/localReference.d.ts.map +1 -1
- package/lib/localReference.js +22 -2
- package/lib/localReference.js.map +1 -1
- package/lib/mergeTree.d.ts +20 -0
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +140 -49
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts +8 -10
- package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/lib/mergeTreeDeltaCallback.js +6 -10
- package/lib/mergeTreeDeltaCallback.js.map +1 -1
- package/lib/opBuilder.js +6 -5
- package/lib/opBuilder.js.map +1 -1
- package/lib/ops.d.ts +12 -10
- package/lib/ops.d.ts.map +1 -1
- package/lib/ops.js +7 -7
- package/lib/ops.js.map +1 -1
- package/lib/referencePositions.d.ts +1 -1
- package/lib/referencePositions.d.ts.map +1 -1
- package/lib/referencePositions.js +3 -2
- package/lib/referencePositions.js.map +1 -1
- package/package.json +69 -74
- package/src/client.ts +27 -18
- package/src/collections.ts +5 -4
- package/src/index.ts +1 -1
- package/src/localReference.ts +24 -2
- package/src/mergeTree.ts +133 -39
- package/src/mergeTreeDeltaCallback.ts +8 -10
- package/src/ops.ts +13 -10
- 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
|
|
11
|
-
APPEND
|
|
12
|
-
SPLIT
|
|
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
|
|
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
|
|
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;
|
|
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
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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
|
-
|
|
25
|
-
}
|
|
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,
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
78
|
+
type: MergeTreeDeltaType.GROUP,
|
|
78
79
|
};
|
|
79
80
|
}
|
|
80
81
|
//# sourceMappingURL=opBuilder.js.map
|
package/lib/opBuilder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opBuilder.js","sourceRoot":"","sources":["../src/opBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
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
|
|
19
|
-
INSERT
|
|
20
|
-
REMOVE
|
|
21
|
-
ANNOTATE
|
|
22
|
-
GROUP
|
|
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,
|
|
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
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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,
|
|
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(
|
|
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,
|
|
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(
|
|
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 (
|
|
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":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAgB,MAAM,OAAO,CAAC;AAGpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAE7D,MAAM,UAAU,mBAAmB,CAAC,
|
|
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.
|
|
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.
|
|
65
|
-
"@fluidframework/
|
|
66
|
-
"@fluidframework/
|
|
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.
|
|
69
|
-
"@fluidframework/runtime-utils": "^0.
|
|
70
|
-
"@fluidframework/shared-object-base": "^0.
|
|
71
|
-
"@fluidframework/telemetry-utils": "^0.
|
|
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.
|
|
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
|
|
78
|
-
"@fluidframework/mocha-test-setup": "^0.
|
|
79
|
-
"@fluidframework/test-runtime-utils": "^0.
|
|
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.
|
|
101
|
+
"version": "1.0.0",
|
|
114
102
|
"broken": {
|
|
115
|
-
"
|
|
116
|
-
"forwardCompat": false
|
|
117
|
-
"backCompat": false
|
|
103
|
+
"ClassDeclaration_BaseSegment": {
|
|
104
|
+
"forwardCompat": false
|
|
118
105
|
},
|
|
119
|
-
"
|
|
120
|
-
"forwardCompat": false
|
|
121
|
-
"backCompat": false
|
|
106
|
+
"ClassDeclaration_Client": {
|
|
107
|
+
"forwardCompat": false
|
|
122
108
|
},
|
|
123
|
-
"
|
|
124
|
-
"
|
|
125
|
-
"
|
|
109
|
+
"InterfaceDeclaration_IConsensusInfo": {
|
|
110
|
+
"backCompat": false,
|
|
111
|
+
"forwardCompat": false
|
|
126
112
|
},
|
|
127
|
-
"
|
|
128
|
-
"forwardCompat": false
|
|
129
|
-
"backCompat": false
|
|
113
|
+
"InterfaceDeclaration_IHierBlock": {
|
|
114
|
+
"forwardCompat": false
|
|
130
115
|
},
|
|
131
|
-
"
|
|
132
|
-
"forwardCompat": false
|
|
133
|
-
"backCompat": false
|
|
116
|
+
"InterfaceDeclaration_IMergeBlock": {
|
|
117
|
+
"forwardCompat": false
|
|
134
118
|
},
|
|
135
|
-
"
|
|
136
|
-
"forwardCompat": false
|
|
137
|
-
"backCompat": false
|
|
119
|
+
"TypeAliasDeclaration_IMergeNode": {
|
|
120
|
+
"forwardCompat": false
|
|
138
121
|
},
|
|
139
|
-
"
|
|
140
|
-
"forwardCompat": false
|
|
141
|
-
"backCompat": false
|
|
122
|
+
"InterfaceDeclaration_IMergeNodeCommon": {
|
|
123
|
+
"forwardCompat": false
|
|
142
124
|
},
|
|
143
|
-
"
|
|
144
|
-
"forwardCompat": false
|
|
145
|
-
"backCompat": false
|
|
125
|
+
"ClassDeclaration_IncrementalMapState": {
|
|
126
|
+
"forwardCompat": false
|
|
146
127
|
},
|
|
147
|
-
"
|
|
148
|
-
"forwardCompat": false
|
|
149
|
-
"backCompat": false
|
|
128
|
+
"InterfaceDeclaration_InsertContext": {
|
|
129
|
+
"forwardCompat": false
|
|
150
130
|
},
|
|
151
|
-
"
|
|
152
|
-
"forwardCompat": false
|
|
153
|
-
"backCompat": false
|
|
131
|
+
"InterfaceDeclaration_IRemovalInfo": {
|
|
132
|
+
"forwardCompat": false
|
|
154
133
|
},
|
|
155
|
-
"
|
|
156
|
-
"forwardCompat": false
|
|
157
|
-
"backCompat": false
|
|
134
|
+
"InterfaceDeclaration_ISegmentChanges": {
|
|
135
|
+
"forwardCompat": false
|
|
158
136
|
},
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
"
|
|
137
|
+
"ClassDeclaration_LocalReference": {
|
|
138
|
+
"backCompat": false,
|
|
139
|
+
"forwardCompat": false
|
|
162
140
|
},
|
|
163
|
-
"
|
|
164
|
-
"forwardCompat": false
|
|
165
|
-
"backCompat": false
|
|
141
|
+
"ClassDeclaration_LocalReferenceCollection": {
|
|
142
|
+
"forwardCompat": false
|
|
166
143
|
},
|
|
167
|
-
"
|
|
168
|
-
"forwardCompat": false
|
|
169
|
-
|
|
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
|
-
"
|
|
172
|
-
"forwardCompat": false,
|
|
169
|
+
"InterfaceDeclaration_IJSONMarkerSegment": {
|
|
173
170
|
"backCompat": false
|
|
174
171
|
},
|
|
175
|
-
"
|
|
176
|
-
"forwardCompat": false,
|
|
172
|
+
"InterfaceDeclaration_IMarkerDef": {
|
|
177
173
|
"backCompat": false
|
|
178
174
|
},
|
|
179
|
-
"
|
|
180
|
-
"forwardCompat": false,
|
|
175
|
+
"EnumDeclaration_ReferenceType": {
|
|
181
176
|
"backCompat": false
|
|
182
177
|
}
|
|
183
178
|
}
|