@fluidframework/merge-tree 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/index.d.ts +1 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -7
  5. package/dist/index.js.map +1 -1
  6. package/dist/referencePositions.d.ts +0 -10
  7. package/dist/referencePositions.d.ts.map +1 -1
  8. package/dist/referencePositions.js +0 -16
  9. package/dist/referencePositions.js.map +1 -1
  10. package/dist/test/index.d.ts +1 -1
  11. package/dist/test/index.d.ts.map +1 -1
  12. package/dist/test/index.js +2 -5
  13. package/dist/test/index.js.map +1 -1
  14. package/lib/index.d.ts +1 -2
  15. package/lib/index.d.ts.map +1 -1
  16. package/lib/index.js +1 -2
  17. package/lib/index.js.map +1 -1
  18. package/lib/referencePositions.d.ts +0 -10
  19. package/lib/referencePositions.d.ts.map +1 -1
  20. package/lib/referencePositions.js +0 -14
  21. package/lib/referencePositions.js.map +1 -1
  22. package/lib/test/index.d.ts +1 -1
  23. package/lib/test/index.d.ts.map +1 -1
  24. package/lib/test/index.js +1 -1
  25. package/lib/test/index.js.map +1 -1
  26. package/package.json +16 -16
  27. package/src/index.ts +0 -17
  28. package/src/referencePositions.ts +0 -16
  29. package/dist/collections/index.d.ts +0 -6
  30. package/dist/collections/index.d.ts.map +0 -1
  31. package/dist/collections/index.js +0 -11
  32. package/dist/collections/index.js.map +0 -1
  33. package/dist/collections/rbTree.d.ts +0 -160
  34. package/dist/collections/rbTree.d.ts.map +0 -1
  35. package/dist/collections/rbTree.js +0 -496
  36. package/dist/collections/rbTree.js.map +0 -1
  37. package/lib/collections/index.d.ts +0 -6
  38. package/lib/collections/index.d.ts.map +0 -1
  39. package/lib/collections/index.js +0 -6
  40. package/lib/collections/index.js.map +0 -1
  41. package/lib/collections/rbTree.d.ts +0 -160
  42. package/lib/collections/rbTree.d.ts.map +0 -1
  43. package/lib/collections/rbTree.js +0 -492
  44. package/lib/collections/rbTree.js.map +0 -1
  45. package/src/collections/index.ts +0 -20
  46. package/src/collections/rbTree.ts +0 -721
package/src/index.ts CHANGED
@@ -16,21 +16,6 @@ export {
16
16
  createPropertyTrackingAndInsertionAttributionPolicyFactory,
17
17
  } from "./attributionPolicy.js";
18
18
  export { Client, type IClientEvents } from "./client.js";
19
- export {
20
- type ConflictAction,
21
- type Dictionary,
22
- type IRBAugmentation,
23
- type IRBMatcher,
24
- type KeyComparer,
25
- type Property,
26
- type PropertyAction,
27
- type QProperty,
28
- RBColor,
29
- type RBNode,
30
- type RBNodeActions,
31
- RedBlackTree,
32
- type SortedDictionary,
33
- } from "./collections/index.js";
34
19
  export { UnassignedSequenceNumber, UniversalSequenceNumber } from "./constants.js";
35
20
  export {
36
21
  createDetachedLocalReferencePosition,
@@ -108,8 +93,6 @@ export {
108
93
  export {
109
94
  compareReferencePositions,
110
95
  DetachedReferencePosition,
111
- maxReferencePosition,
112
- minReferencePosition,
113
96
  type ReferencePosition,
114
97
  refGetTileLabels,
115
98
  refHasTileLabel,
@@ -103,22 +103,6 @@ export interface ReferencePosition {
103
103
  */
104
104
  export const DetachedReferencePosition = -1;
105
105
 
106
- /**
107
- * Finds the minimum reference position.
108
- * @internal
109
- */
110
- export function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T {
111
- return compareReferencePositions(a, b) < 0 ? a : b;
112
- }
113
-
114
- /**
115
- * Finds the maximum reference position.
116
- * @internal
117
- */
118
- export function maxReferencePosition<T extends ReferencePosition>(a: T, b: T): T {
119
- return compareReferencePositions(a, b) > 0 ? a : b;
120
- }
121
-
122
106
  /**
123
107
  * Compares two reference positions.
124
108
  * @internal
@@ -1,6 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- export { type ConflictAction, type Dictionary, type IRBAugmentation, type IRBMatcher, type KeyComparer, type Property, type PropertyAction, type QProperty, RBColor, type RBNode, type RBNodeActions, RedBlackTree, type SortedDictionary, } from "./rbTree.js";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,OAAO,EACP,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,gBAAgB,GACrB,MAAM,aAAa,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
- * Licensed under the MIT License.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.RedBlackTree = exports.RBColor = void 0;
8
- var rbTree_js_1 = require("./rbTree.js");
9
- Object.defineProperty(exports, "RBColor", { enumerable: true, get: function () { return rbTree_js_1.RBColor; } });
10
- Object.defineProperty(exports, "RedBlackTree", { enumerable: true, get: function () { return rbTree_js_1.RedBlackTree; } });
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,yCAcqB;AALpB,oGAAA,OAAO,OAAA;AAGP,yGAAA,YAAY,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport {\n\ttype ConflictAction,\n\ttype Dictionary,\n\ttype IRBAugmentation,\n\ttype IRBMatcher,\n\ttype KeyComparer,\n\ttype Property,\n\ttype PropertyAction,\n\ttype QProperty,\n\tRBColor,\n\ttype RBNode,\n\ttype RBNodeActions,\n\tRedBlackTree,\n\ttype SortedDictionary,\n} from \"./rbTree.js\";\n"]}
@@ -1,160 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- /**
6
- * @internal
7
- */
8
- export declare const RBColor: {
9
- readonly RED: 0;
10
- readonly BLACK: 1;
11
- };
12
- /**
13
- * @internal
14
- */
15
- export type RBColor = (typeof RBColor)[keyof typeof RBColor];
16
- /**
17
- * @internal
18
- */
19
- export interface RBNode<TKey, TData> {
20
- key: TKey;
21
- data: TData;
22
- left: RBNode<TKey, TData> | undefined;
23
- right: RBNode<TKey, TData> | undefined;
24
- color: RBColor;
25
- size: number;
26
- }
27
- /**
28
- * @internal
29
- */
30
- export interface IRBAugmentation<TKey, TData> {
31
- update(node: RBNode<TKey, TData>): void;
32
- }
33
- /**
34
- * @internal
35
- */
36
- export interface IRBMatcher<TKey, TData> {
37
- continueSubtree(node: RBNode<TKey, TData> | undefined, key: TKey): boolean;
38
- matchNode(node: RBNode<TKey, TData> | undefined, key: TKey): boolean;
39
- }
40
- /**
41
- * @internal
42
- */
43
- export interface RBNodeActions<TKey, TData> {
44
- infix?(node: RBNode<TKey, TData>): boolean;
45
- pre?(node: RBNode<TKey, TData>): boolean;
46
- post?(node: RBNode<TKey, TData>): boolean;
47
- showStructure?: boolean;
48
- }
49
- /**
50
- * @internal
51
- */
52
- export interface KeyComparer<TKey> {
53
- (a: TKey, b: TKey): number;
54
- }
55
- /**
56
- * @internal
57
- */
58
- export interface Property<TKey, TData> {
59
- key: TKey;
60
- data: TData;
61
- }
62
- /**
63
- * @internal
64
- */
65
- export interface PropertyAction<TKey, TData> {
66
- <TAccum>(p: Property<TKey, TData>, accum?: TAccum): boolean;
67
- }
68
- /**
69
- * @internal
70
- */
71
- export interface QProperty<TKey, TData> {
72
- key?: TKey;
73
- data?: TData;
74
- }
75
- /**
76
- * @internal
77
- */
78
- export type ConflictAction<TKey, TData> = (key: TKey, currentKey: TKey, data: TData, currentData: TData) => QProperty<TKey, TData>;
79
- /**
80
- * @internal
81
- */
82
- export interface SortedDictionary<TKey, TData> extends Dictionary<TKey, TData> {
83
- max(): Property<TKey, TData> | undefined;
84
- min(): Property<TKey, TData> | undefined;
85
- mapRange<TAccum>(action: PropertyAction<TKey, TData>, accum?: TAccum, start?: TKey, end?: TKey): void;
86
- }
87
- /**
88
- * @internal
89
- */
90
- export interface Dictionary<TKey, TData> {
91
- get(key: TKey): Property<TKey, TData> | undefined;
92
- put(key: TKey, data: TData, conflict?: ConflictAction<TKey, TData>): void;
93
- remove(key: TKey): void;
94
- map<TAccum>(action: PropertyAction<TKey, TData>, accum?: TAccum): void;
95
- }
96
- /**
97
- * @internal
98
- */
99
- export declare class RedBlackTree<TKey, TData> implements SortedDictionary<TKey, TData> {
100
- private readonly compareKeys;
101
- private readonly aug?;
102
- private root;
103
- constructor(compareKeys: KeyComparer<TKey>, aug?: IRBAugmentation<TKey, TData> | undefined);
104
- private makeNode;
105
- private isRed;
106
- private nodeSize;
107
- size(): number;
108
- isEmpty(): boolean;
109
- get(key: TKey): RBNode<TKey, TData> | undefined;
110
- private nodeGet;
111
- private contains;
112
- gather(key: TKey, matcher: IRBMatcher<TKey, TData>): RBNode<TKey, TData>[];
113
- private nodeGather;
114
- walkExactMatchesForward(compareFn: (node: RBNode<TKey, TData>) => number, actionFn: (node: RBNode<TKey, TData>) => void, continueLeftFn: (number: number) => boolean, continueRightFn: (number: number) => boolean): void;
115
- private nodeWalkExactMatchesForward;
116
- walkExactMatchesBackward(compareFn: (node: RBNode<TKey, TData>) => number, actionFn: (node: RBNode<TKey, TData>) => void, continueLeftFn: (number: number) => boolean, continueRightFn: (number: number) => boolean): void;
117
- private nodeWalkExactMatchesBackward;
118
- put(key: TKey, data: TData, conflict?: ConflictAction<TKey, TData>): void;
119
- private nodePut;
120
- private updateLocal;
121
- private nodeRemoveMin;
122
- remove(key: TKey): void;
123
- removeExisting(key: TKey): void;
124
- private nodeRemove;
125
- /**
126
- * Finds the largest node that is less than or equal to a given key.
127
- */
128
- floor(key: TKey): RBNode<TKey, TData> | undefined;
129
- private nodeFloor;
130
- /**
131
- * Finds the smallest node that is greater than or equal to a given key.
132
- */
133
- ceil(key: TKey): RBNode<TKey, TData> | undefined;
134
- private nodeCeil;
135
- min(): RBNode<TKey, TData> | undefined;
136
- private nodeMin;
137
- max(): RBNode<TKey, TData> | undefined;
138
- private nodeMax;
139
- private rotateRight;
140
- private rotateLeft;
141
- private oppositeColor;
142
- private flipColors;
143
- private moveRedLeft;
144
- private moveRedRight;
145
- private balance;
146
- mapRange<TAccum>(action: PropertyAction<TKey, TData>, accum?: TAccum, start?: TKey, end?: TKey): void;
147
- map<TAccum>(action: PropertyAction<TKey, TData>, accum?: TAccum): void;
148
- keys(): TKey[];
149
- /**
150
- * Depth-first traversal with custom action; if action returns
151
- * false, traversal is halted.
152
- * @param action - action to apply to each node
153
- */
154
- walk(actions: RBNodeActions<TKey, TData>): void;
155
- walkBackward(actions: RBNodeActions<TKey, TData>): void;
156
- private nodeWalk;
157
- private nodeWalkBackward;
158
- private nodeMap;
159
- }
160
- //# sourceMappingURL=rbTree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rbTree.d.ts","sourceRoot":"","sources":["../../src/collections/rbTree.ts"],"names":[],"mappings":"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"}