@fluidframework/merge-tree 1.2.1 → 2.0.0-internal.1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEV.md +2 -2
- package/README.md +1 -1
- package/REFERENCEPOSITIONS.md +2 -2
- package/dist/MergeTreeTextHelper.d.ts +23 -0
- package/dist/MergeTreeTextHelper.d.ts.map +1 -0
- package/dist/MergeTreeTextHelper.js +136 -0
- package/dist/MergeTreeTextHelper.js.map +1 -0
- package/dist/base.d.ts +2 -26
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js.map +1 -1
- package/dist/client.d.ts +21 -12
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +87 -27
- package/dist/client.js.map +1 -1
- package/dist/collections/heap.d.ts +28 -0
- package/dist/collections/heap.d.ts.map +1 -0
- package/dist/collections/heap.js +65 -0
- package/dist/collections/heap.js.map +1 -0
- package/dist/collections/index.d.ts +11 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +23 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/intervalTree.d.ts +60 -0
- package/dist/collections/intervalTree.d.ts.map +1 -0
- package/dist/collections/intervalTree.js +99 -0
- package/dist/collections/intervalTree.js.map +1 -0
- package/dist/collections/list.d.ts +39 -0
- package/dist/collections/list.d.ts.map +1 -0
- package/dist/collections/list.js +155 -0
- package/dist/collections/list.js.map +1 -0
- package/dist/collections/rbTree.d.ts +154 -0
- package/dist/collections/rbTree.d.ts.map +1 -0
- package/dist/{collections.js → collections/rbTree.js} +10 -448
- package/dist/collections/rbTree.js.map +1 -0
- package/dist/collections/stack.d.ts +16 -0
- package/dist/collections/stack.d.ts.map +1 -0
- package/dist/collections/stack.js +30 -0
- package/dist/collections/stack.js.map +1 -0
- package/dist/collections/tst.d.ts +55 -0
- package/dist/collections/tst.d.ts.map +1 -0
- package/dist/collections/tst.js +171 -0
- package/dist/collections/tst.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/localReference.d.ts +48 -99
- package/dist/localReference.d.ts.map +1 -1
- package/dist/localReference.js +132 -169
- package/dist/localReference.js.map +1 -1
- package/dist/mergeTree.d.ts +38 -299
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +214 -598
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/dist/mergeTreeDeltaCallback.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +269 -0
- package/dist/mergeTreeNodes.d.ts.map +1 -0
- package/dist/mergeTreeNodes.js +383 -0
- package/dist/mergeTreeNodes.js.map +1 -0
- package/dist/mergeTreeTracking.d.ts +1 -1
- package/dist/mergeTreeTracking.d.ts.map +1 -1
- package/dist/mergeTreeTracking.js.map +1 -1
- package/dist/opBuilder.d.ts +1 -1
- package/dist/opBuilder.d.ts.map +1 -1
- package/dist/opBuilder.js.map +1 -1
- package/dist/partialLengths.d.ts +130 -15
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +230 -138
- package/dist/partialLengths.js.map +1 -1
- package/dist/properties.d.ts.map +1 -1
- package/dist/properties.js.map +1 -1
- package/dist/referencePositions.d.ts +6 -26
- package/dist/referencePositions.d.ts.map +1 -1
- package/dist/referencePositions.js.map +1 -1
- package/dist/segmentGroupCollection.d.ts +2 -1
- package/dist/segmentGroupCollection.d.ts.map +1 -1
- package/dist/segmentGroupCollection.js +3 -0
- package/dist/segmentGroupCollection.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts +10 -1
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +41 -6
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/snapshotV1.d.ts +1 -1
- package/dist/snapshotV1.d.ts.map +1 -1
- package/dist/snapshotV1.js.map +1 -1
- package/dist/snapshotlegacy.d.ts +5 -1
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js +4 -0
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/sortedSegmentSet.d.ts +1 -1
- package/dist/sortedSegmentSet.d.ts.map +1 -1
- package/dist/sortedSegmentSet.js.map +1 -1
- package/dist/textSegment.d.ts +7 -7
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js +3 -125
- package/dist/textSegment.js.map +1 -1
- package/lib/MergeTreeTextHelper.d.ts +23 -0
- package/lib/MergeTreeTextHelper.d.ts.map +1 -0
- package/lib/MergeTreeTextHelper.js +132 -0
- package/lib/MergeTreeTextHelper.js.map +1 -0
- package/lib/base.d.ts +2 -26
- package/lib/base.d.ts.map +1 -1
- package/lib/base.js.map +1 -1
- package/lib/client.d.ts +21 -12
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +85 -25
- package/lib/client.js.map +1 -1
- package/lib/collections/heap.d.ts +28 -0
- package/lib/collections/heap.d.ts.map +1 -0
- package/lib/collections/heap.js +61 -0
- package/lib/collections/heap.js.map +1 -0
- package/lib/collections/index.d.ts +11 -0
- package/lib/collections/index.d.ts.map +1 -0
- package/lib/collections/index.js +11 -0
- package/lib/collections/index.js.map +1 -0
- package/lib/collections/intervalTree.d.ts +60 -0
- package/lib/collections/intervalTree.d.ts.map +1 -0
- package/lib/collections/intervalTree.js +94 -0
- package/lib/collections/intervalTree.js.map +1 -0
- package/lib/collections/list.d.ts +39 -0
- package/lib/collections/list.d.ts.map +1 -0
- package/lib/collections/list.js +149 -0
- package/lib/collections/list.js.map +1 -0
- package/lib/collections/rbTree.d.ts +154 -0
- package/lib/collections/rbTree.d.ts.map +1 -0
- package/lib/{collections.js → collections/rbTree.js} +9 -439
- package/lib/collections/rbTree.js.map +1 -0
- package/lib/collections/stack.d.ts +16 -0
- package/lib/collections/stack.d.ts.map +1 -0
- package/lib/collections/stack.js +26 -0
- package/lib/collections/stack.js.map +1 -0
- package/lib/collections/tst.d.ts +55 -0
- package/lib/collections/tst.d.ts.map +1 -0
- package/lib/collections/tst.js +167 -0
- package/lib/collections/tst.js.map +1 -0
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/localReference.d.ts +48 -99
- package/lib/localReference.d.ts.map +1 -1
- package/lib/localReference.js +132 -170
- package/lib/localReference.js.map +1 -1
- package/lib/mergeTree.d.ts +38 -299
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +190 -563
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/lib/mergeTreeDeltaCallback.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +269 -0
- package/lib/mergeTreeNodes.d.ts.map +1 -0
- package/lib/mergeTreeNodes.js +369 -0
- package/lib/mergeTreeNodes.js.map +1 -0
- package/lib/mergeTreeTracking.d.ts +1 -1
- package/lib/mergeTreeTracking.d.ts.map +1 -1
- package/lib/mergeTreeTracking.js.map +1 -1
- package/lib/opBuilder.d.ts +1 -1
- package/lib/opBuilder.d.ts.map +1 -1
- package/lib/opBuilder.js.map +1 -1
- package/lib/partialLengths.d.ts +130 -15
- package/lib/partialLengths.d.ts.map +1 -1
- package/lib/partialLengths.js +227 -135
- package/lib/partialLengths.js.map +1 -1
- package/lib/properties.d.ts.map +1 -1
- package/lib/properties.js.map +1 -1
- package/lib/referencePositions.d.ts +6 -26
- package/lib/referencePositions.d.ts.map +1 -1
- package/lib/referencePositions.js.map +1 -1
- package/lib/segmentGroupCollection.d.ts +2 -1
- package/lib/segmentGroupCollection.d.ts.map +1 -1
- package/lib/segmentGroupCollection.js +3 -0
- package/lib/segmentGroupCollection.js.map +1 -1
- package/lib/segmentPropertiesManager.d.ts +10 -1
- package/lib/segmentPropertiesManager.d.ts.map +1 -1
- package/lib/segmentPropertiesManager.js +41 -6
- package/lib/segmentPropertiesManager.js.map +1 -1
- package/lib/snapshotLoader.d.ts.map +1 -1
- package/lib/snapshotLoader.js.map +1 -1
- package/lib/snapshotV1.d.ts +1 -1
- package/lib/snapshotV1.d.ts.map +1 -1
- package/lib/snapshotV1.js.map +1 -1
- package/lib/snapshotlegacy.d.ts +5 -1
- package/lib/snapshotlegacy.d.ts.map +1 -1
- package/lib/snapshotlegacy.js +4 -0
- package/lib/snapshotlegacy.js.map +1 -1
- package/lib/sortedSegmentSet.d.ts +1 -1
- package/lib/sortedSegmentSet.d.ts.map +1 -1
- package/lib/sortedSegmentSet.js.map +1 -1
- package/lib/textSegment.d.ts +7 -7
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js +1 -122
- package/lib/textSegment.js.map +1 -1
- package/package.json +93 -17
- package/src/MergeTreeTextHelper.ts +172 -0
- package/src/base.ts +2 -35
- package/src/client.ts +114 -30
- package/src/collections/heap.ts +75 -0
- package/src/collections/index.ts +11 -0
- package/src/collections/intervalTree.ts +140 -0
- package/src/collections/list.ts +165 -0
- package/src/{collections.ts → collections/rbTree.ts} +79 -538
- package/src/collections/stack.ts +27 -0
- package/src/collections/tst.ts +212 -0
- package/src/index.ts +8 -2
- package/src/localReference.ts +152 -203
- package/src/mergeTree.ts +265 -868
- package/src/mergeTreeDeltaCallback.ts +1 -1
- package/src/mergeTreeNodes.ts +676 -0
- package/src/mergeTreeTracking.ts +1 -1
- package/src/opBuilder.ts +1 -1
- package/src/partialLengths.ts +295 -150
- package/src/properties.ts +1 -0
- package/src/referencePositions.ts +7 -27
- package/src/segmentGroupCollection.ts +5 -1
- package/src/segmentPropertiesManager.ts +45 -6
- package/src/snapshotLoader.ts +2 -1
- package/src/snapshotV1.ts +2 -2
- package/src/snapshotlegacy.ts +6 -2
- package/src/sortedSegmentSet.ts +1 -1
- package/src/textSegment.ts +10 -157
- package/dist/collections.d.ts +0 -197
- package/dist/collections.d.ts.map +0 -1
- package/dist/collections.js.map +0 -1
- package/lib/collections.d.ts +0 -197
- package/lib/collections.d.ts.map +0 -1
- package/lib/collections.js.map +0 -1
|
@@ -0,0 +1,171 @@
|
|
|
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.TST = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated for internal use only. public export will be removed.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
class TST {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.n = 0;
|
|
15
|
+
}
|
|
16
|
+
size() {
|
|
17
|
+
return this.n;
|
|
18
|
+
}
|
|
19
|
+
contains(key) {
|
|
20
|
+
return this.get(key);
|
|
21
|
+
}
|
|
22
|
+
get(key) {
|
|
23
|
+
const x = this.nodeGet(this.root, key, 0);
|
|
24
|
+
if (x === undefined) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
return x.val;
|
|
28
|
+
}
|
|
29
|
+
nodeGet(x, key, d) {
|
|
30
|
+
if (x === undefined) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
const c = key.charAt(d);
|
|
34
|
+
if (c < x.c) {
|
|
35
|
+
return this.nodeGet(x.left, key, d);
|
|
36
|
+
}
|
|
37
|
+
else if (c > x.c) {
|
|
38
|
+
return this.nodeGet(x.right, key, d);
|
|
39
|
+
}
|
|
40
|
+
else if (d < (key.length - 1)) {
|
|
41
|
+
return this.nodeGet(x.mid, key, d + 1);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return x;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
put(key, val) {
|
|
48
|
+
if (!this.contains(key)) {
|
|
49
|
+
this.n++;
|
|
50
|
+
}
|
|
51
|
+
this.root = this.nodePut(this.root, key, val, 0);
|
|
52
|
+
}
|
|
53
|
+
nodePut(x, key, val, d) {
|
|
54
|
+
let _x = x;
|
|
55
|
+
const c = key.charAt(d);
|
|
56
|
+
if (_x === undefined) {
|
|
57
|
+
_x = { c };
|
|
58
|
+
}
|
|
59
|
+
if (c < _x.c) {
|
|
60
|
+
_x.left = this.nodePut(_x.left, key, val, d);
|
|
61
|
+
}
|
|
62
|
+
else if (c > _x.c) {
|
|
63
|
+
_x.right = this.nodePut(_x.right, key, val, d);
|
|
64
|
+
}
|
|
65
|
+
else if (d < (key.length - 1)) {
|
|
66
|
+
_x.mid = this.nodePut(_x.mid, key, val, d + 1);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
_x.val = val;
|
|
70
|
+
}
|
|
71
|
+
return _x;
|
|
72
|
+
}
|
|
73
|
+
neighbors(text, distance = 2) {
|
|
74
|
+
let q = [];
|
|
75
|
+
this.nodeProximity(this.root, { text: "" }, 0, text, distance, q);
|
|
76
|
+
q = q.filter((value) => (value.text.length > 0));
|
|
77
|
+
return q;
|
|
78
|
+
}
|
|
79
|
+
keysWithPrefix(text) {
|
|
80
|
+
const q = [];
|
|
81
|
+
const x = this.nodeGet(this.root, text, 0);
|
|
82
|
+
if (x === undefined) {
|
|
83
|
+
return q;
|
|
84
|
+
}
|
|
85
|
+
if (x.val !== undefined) {
|
|
86
|
+
q.push(text);
|
|
87
|
+
}
|
|
88
|
+
this.collect(x.mid, { text }, q);
|
|
89
|
+
return q;
|
|
90
|
+
}
|
|
91
|
+
collect(x, prefix, q) {
|
|
92
|
+
if (x === undefined) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this.collect(x.left, prefix, q);
|
|
96
|
+
if (x.val !== undefined) {
|
|
97
|
+
q.push(prefix.text + x.c);
|
|
98
|
+
}
|
|
99
|
+
this.collect(x.mid, { text: prefix.text + x.c }, q);
|
|
100
|
+
this.collect(x.right, prefix, q);
|
|
101
|
+
}
|
|
102
|
+
mapNode(x, prefix, fn) {
|
|
103
|
+
if (x === undefined) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const key = prefix.text + x.c;
|
|
107
|
+
this.mapNode(x.left, prefix, fn);
|
|
108
|
+
if (x.val) {
|
|
109
|
+
fn(key, x.val);
|
|
110
|
+
}
|
|
111
|
+
this.mapNode(x.mid, { text: key }, fn);
|
|
112
|
+
this.mapNode(x.right, prefix, fn);
|
|
113
|
+
}
|
|
114
|
+
map(fn) {
|
|
115
|
+
this.mapNode(this.root, { text: "" }, fn);
|
|
116
|
+
}
|
|
117
|
+
pairsWithPrefix(text) {
|
|
118
|
+
const q = [];
|
|
119
|
+
const x = this.nodeGet(this.root, text, 0);
|
|
120
|
+
if (x === undefined) {
|
|
121
|
+
return q;
|
|
122
|
+
}
|
|
123
|
+
if (x.val !== undefined) {
|
|
124
|
+
q.push({ key: text, val: x.val });
|
|
125
|
+
}
|
|
126
|
+
this.collectPairs(x.mid, { text }, q);
|
|
127
|
+
return q;
|
|
128
|
+
}
|
|
129
|
+
collectPairs(x, prefix, q) {
|
|
130
|
+
if (x === undefined) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
this.collectPairs(x.left, prefix, q);
|
|
134
|
+
if (x.val !== undefined) {
|
|
135
|
+
q.push({ key: prefix.text + x.c, val: x.val });
|
|
136
|
+
}
|
|
137
|
+
this.collectPairs(x.mid, { text: prefix.text + x.c }, q);
|
|
138
|
+
this.collectPairs(x.right, prefix, q);
|
|
139
|
+
}
|
|
140
|
+
nodeProximity(x, prefix, d, pattern, distance, q) {
|
|
141
|
+
if ((x === undefined) || (distance < 0)) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const c = pattern.charAt(d);
|
|
145
|
+
if ((distance > 0) || (c < x.c)) {
|
|
146
|
+
this.nodeProximity(x.left, prefix, d, pattern, distance, q);
|
|
147
|
+
}
|
|
148
|
+
if (x.val !== undefined) {
|
|
149
|
+
const remD = distance - (pattern.length - d);
|
|
150
|
+
if (remD >= 0) {
|
|
151
|
+
let invD = distance;
|
|
152
|
+
if (c !== x.c) {
|
|
153
|
+
invD--;
|
|
154
|
+
}
|
|
155
|
+
q.push({ text: prefix.text + x.c, val: x.val, invDistance: invD });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const recurD = (d < (pattern.length - 1)) ? d + 1 : d;
|
|
159
|
+
if (c === x.c) {
|
|
160
|
+
this.nodeProximity(x.mid, { text: prefix.text + x.c }, recurD, pattern, distance, q);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
this.nodeProximity(x.mid, { text: prefix.text + x.c }, recurD, pattern, distance - 1, q);
|
|
164
|
+
}
|
|
165
|
+
if ((distance > 0) || (c > x.c)) {
|
|
166
|
+
this.nodeProximity(x.right, prefix, d, pattern, distance, q);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.TST = TST;
|
|
171
|
+
//# sourceMappingURL=tst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tst.js","sourceRoot":"","sources":["../../src/collections/tst.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\n/**\n * @deprecated for internal use only. public export will be removed.\n * @internal\n */\n export interface TSTResult<T> {\n key: string;\n val: T;\n}\n\n/**\n * @deprecated for internal use only. public export will be removed.\n * @internal\n */\nexport interface TSTNode<T> {\n c: string;\n left?: TSTNode<T>;\n mid?: TSTNode<T>;\n right?: TSTNode<T>;\n val?: T;\n}\n\ninterface TSTPrefix {\n text: string;\n}\n\n/**\n * @deprecated for internal use only. public export will be removed.\n * @internal\n */\nexport interface ProxString<T> {\n text: string;\n invDistance: number;\n val: T;\n}\n\n/**\n * @deprecated for internal use only. public export will be removed.\n * @internal\n */\nexport class TST<T> {\n private n = 0;\n private root: TSTNode<T> | undefined;\n\n public size() {\n return this.n;\n }\n\n private contains(key: string) {\n return this.get(key);\n }\n\n public get(key: string) {\n const x = this.nodeGet(this.root, key, 0);\n if (x === undefined) {\n return undefined;\n }\n return x.val;\n }\n\n private nodeGet(x: TSTNode<T> | undefined, key: string, d: number): TSTNode<T> | undefined {\n if (x === undefined) {\n return undefined;\n }\n const c = key.charAt(d);\n if (c < x.c) {\n return this.nodeGet(x.left, key, d);\n } else if (c > x.c) {\n return this.nodeGet(x.right, key, d);\n } else if (d < (key.length - 1)) {\n return this.nodeGet(x.mid, key, d + 1);\n } else { return x; }\n }\n\n public put(key: string, val: T) {\n if (!this.contains(key)) {\n this.n++;\n }\n this.root = this.nodePut(this.root, key, val, 0);\n }\n\n private nodePut(x: TSTNode<T> | undefined, key: string, val: T, d: number) {\n let _x = x;\n const c = key.charAt(d);\n if (_x === undefined) {\n _x = { c };\n }\n if (c < _x.c) {\n _x.left = this.nodePut(_x.left, key, val, d);\n } else if (c > _x.c) {\n _x.right = this.nodePut(_x.right, key, val, d);\n } else if (d < (key.length - 1)) {\n _x.mid = this.nodePut(_x.mid, key, val, d + 1);\n } else {\n _x.val = val;\n }\n return _x;\n }\n\n public neighbors(text: string, distance = 2) {\n let q: ProxString<T>[] = [];\n this.nodeProximity(this.root, { text: \"\" }, 0, text, distance, q);\n q = q.filter((value) => (value.text.length > 0));\n return q;\n }\n\n public keysWithPrefix(text: string) {\n const q: string[] = [];\n const x = this.nodeGet(this.root, text, 0);\n if (x === undefined) {\n return q;\n }\n if (x.val !== undefined) {\n q.push(text);\n }\n this.collect(x.mid, { text }, q);\n return q;\n }\n\n private collect(x: TSTNode<T> | undefined, prefix: TSTPrefix, q: string[]) {\n if (x === undefined) {\n return;\n }\n this.collect(x.left, prefix, q);\n if (x.val !== undefined) {\n q.push(prefix.text + x.c);\n }\n this.collect(x.mid, { text: prefix.text + x.c }, q);\n this.collect(x.right, prefix, q);\n }\n\n private mapNode(x: TSTNode<T> | undefined, prefix: TSTPrefix, fn: (key: string, val: T) => void) {\n if (x === undefined) {\n return;\n }\n const key = prefix.text + x.c;\n this.mapNode(x.left, prefix, fn);\n if (x.val) {\n fn(key, x.val);\n }\n this.mapNode(x.mid, { text: key }, fn);\n this.mapNode(x.right, prefix, fn);\n }\n\n public map(fn: (key: string, val: T) => void) {\n this.mapNode(this.root, { text: \"\" }, fn);\n }\n\n public pairsWithPrefix(text: string) {\n const q: TSTResult<T>[] = [];\n const x = this.nodeGet(this.root, text, 0);\n if (x === undefined) {\n return q;\n }\n if (x.val !== undefined) {\n q.push({ key: text, val: x.val });\n }\n this.collectPairs(x.mid, { text }, q);\n return q;\n }\n\n private collectPairs(x: TSTNode<T> | undefined, prefix: TSTPrefix, q: TSTResult<T>[]) {\n if (x === undefined) {\n return;\n }\n this.collectPairs(x.left, prefix, q);\n if (x.val !== undefined) {\n q.push({ key: prefix.text + x.c, val: x.val });\n }\n this.collectPairs(x.mid, { text: prefix.text + x.c }, q);\n this.collectPairs(x.right, prefix, q);\n }\n\n private nodeProximity(\n x: TSTNode<T> | undefined,\n prefix: TSTPrefix,\n d: number,\n pattern: string,\n distance: number,\n q: ProxString<T>[]) {\n if ((x === undefined) || (distance < 0)) {\n return;\n }\n const c = pattern.charAt(d);\n if ((distance > 0) || (c < x.c)) {\n this.nodeProximity(x.left, prefix, d, pattern, distance, q);\n }\n if (x.val !== undefined) {\n const remD = distance - (pattern.length - d);\n if (remD >= 0) {\n let invD = distance;\n if (c !== x.c) {\n invD--;\n }\n q.push({ text: prefix.text + x.c, val: x.val, invDistance: invD });\n }\n }\n const recurD = (d < (pattern.length - 1)) ? d + 1 : d;\n if (c === x.c) {\n this.nodeProximity(x.mid, { text: prefix.text + x.c }, recurD, pattern, distance, q);\n } else {\n this.nodeProximity(x.mid, { text: prefix.text + x.c }, recurD, pattern, distance - 1, q);\n }\n if ((distance > 0) || (c > x.c)) {\n this.nodeProximity(x.right, prefix, d, pattern, distance, q);\n }\n }\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,9 +6,11 @@ export * from "./base";
|
|
|
6
6
|
export * from "./client";
|
|
7
7
|
export * from "./collections";
|
|
8
8
|
export * from "./constants";
|
|
9
|
-
export {
|
|
9
|
+
export { createDetachedLocalReferencePosition, LocalReferencePosition, LocalReferenceCollection, } from "./localReference";
|
|
10
10
|
export * from "./mergeTree";
|
|
11
|
+
export * from "./mergeTreeNodes";
|
|
11
12
|
export * from "./mergeTreeDeltaCallback";
|
|
13
|
+
export * from "./MergeTreeTextHelper";
|
|
12
14
|
export * from "./mergeTreeTracking";
|
|
13
15
|
export * from "./opBuilder";
|
|
14
16
|
export * from "./ops";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACH,oCAAoC,EACpC,sBAAsB,EACtB,wBAAwB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,16 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.LocalReferenceCollection = exports.
|
|
17
|
+
exports.LocalReferenceCollection = exports.createDetachedLocalReferencePosition = void 0;
|
|
18
18
|
__exportStar(require("./base"), exports);
|
|
19
19
|
__exportStar(require("./client"), exports);
|
|
20
20
|
__exportStar(require("./collections"), exports);
|
|
21
21
|
__exportStar(require("./constants"), exports);
|
|
22
22
|
var localReference_1 = require("./localReference");
|
|
23
|
-
Object.defineProperty(exports, "
|
|
23
|
+
Object.defineProperty(exports, "createDetachedLocalReferencePosition", { enumerable: true, get: function () { return localReference_1.createDetachedLocalReferencePosition; } });
|
|
24
24
|
Object.defineProperty(exports, "LocalReferenceCollection", { enumerable: true, get: function () { return localReference_1.LocalReferenceCollection; } });
|
|
25
25
|
__exportStar(require("./mergeTree"), exports);
|
|
26
|
+
__exportStar(require("./mergeTreeNodes"), exports);
|
|
26
27
|
__exportStar(require("./mergeTreeDeltaCallback"), exports);
|
|
28
|
+
__exportStar(require("./MergeTreeTextHelper"), exports);
|
|
27
29
|
__exportStar(require("./mergeTreeTracking"), exports);
|
|
28
30
|
__exportStar(require("./opBuilder"), exports);
|
|
29
31
|
__exportStar(require("./ops"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH,yCAAuB;AACvB,2CAAyB;AACzB,gDAA8B;AAC9B,8CAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH,yCAAuB;AACvB,2CAAyB;AACzB,gDAA8B;AAC9B,8CAA4B;AAC5B,mDAI2B;AAHvB,sIAAA,oCAAoC,OAAA;AAEpC,0HAAA,wBAAwB,OAAA;AAE3B,8CAA4B;AAC7B,mDAAiC;AACjC,2DAAyC;AACzC,wDAAsC;AACtC,sDAAoC;AACpC,8CAA4B;AAC5B,wCAAsB;AACtB,+CAA6B;AAC7B,2DAAyC;AACzC,6DAA2C;AAC3C,mDAAiC;AACjC,qDAAmC;AACnC,gDAA8B;AAC9B,uDAAqC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport * from \"./base\";\nexport * from \"./client\";\nexport * from \"./collections\";\nexport * from \"./constants\";\nexport {\n createDetachedLocalReferencePosition,\n LocalReferencePosition,\n LocalReferenceCollection,\n } from \"./localReference\";\n export * from \"./mergeTree\";\nexport * from \"./mergeTreeNodes\";\nexport * from \"./mergeTreeDeltaCallback\";\nexport * from \"./MergeTreeTextHelper\";\nexport * from \"./mergeTreeTracking\";\nexport * from \"./opBuilder\";\nexport * from \"./ops\";\nexport * from \"./properties\";\nexport * from \"./segmentGroupCollection\";\nexport * from \"./segmentPropertiesManager\";\nexport * from \"./snapshotlegacy\";\nexport * from \"./sortedSegmentSet\";\nexport * from \"./textSegment\";\nexport * from \"./referencePositions\";\n"]}
|
package/dist/localReference.d.ts
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { Client } from "./client";
|
|
6
5
|
import { List } from "./collections";
|
|
7
|
-
import { ISegment } from "./
|
|
6
|
+
import { ISegment } from "./mergeTreeNodes";
|
|
8
7
|
import { ICombiningOp, ReferenceType } from "./ops";
|
|
9
8
|
import { PropertySet } from "./properties";
|
|
10
9
|
import { ReferencePosition } from "./referencePositions";
|
|
@@ -16,160 +15,107 @@ export interface LocalReferencePosition extends ReferencePosition {
|
|
|
16
15
|
callbacks?: Partial<Record<"beforeSlide" | "afterSlide", () => void>>;
|
|
17
16
|
}
|
|
18
17
|
/**
|
|
19
|
-
* @
|
|
18
|
+
* @privateRemarks This should not be exported outside merge tree.
|
|
19
|
+
* @internal
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
|
-
private readonly client;
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated - use getOffset
|
|
25
|
-
*/
|
|
26
|
-
offset: number;
|
|
21
|
+
declare class LocalReference implements LocalReferencePosition {
|
|
27
22
|
refType: ReferenceType;
|
|
28
|
-
/**
|
|
29
|
-
* @deprecated - use DetachedReferencePosition
|
|
30
|
-
*/
|
|
31
|
-
static readonly DetachedPosition: number;
|
|
32
23
|
properties: PropertySet | undefined;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
pairedRef?: LocalReference;
|
|
37
|
-
/**
|
|
38
|
-
* @deprecated - use getSegment
|
|
39
|
-
*/
|
|
40
|
-
segment: ISegment | undefined;
|
|
24
|
+
private segment;
|
|
25
|
+
private offset;
|
|
26
|
+
private listNode;
|
|
41
27
|
callbacks?: Partial<Record<"beforeSlide" | "afterSlide", () => void>> | undefined;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*/
|
|
45
|
-
constructor(client: Client, initSegment: ISegment,
|
|
46
|
-
/**
|
|
47
|
-
* @deprecated - use getOffset
|
|
48
|
-
*/
|
|
49
|
-
offset?: number, refType?: ReferenceType, properties?: PropertySet);
|
|
50
|
-
/**
|
|
51
|
-
* @deprecated - use minReferencePosition
|
|
52
|
-
*/
|
|
53
|
-
min(b: LocalReference): LocalReference;
|
|
54
|
-
/**
|
|
55
|
-
* @deprecated - use maxReferencePosition
|
|
56
|
-
*/
|
|
57
|
-
max(b: LocalReference): LocalReference;
|
|
58
|
-
/**
|
|
59
|
-
* @deprecated - use compareReferencePositions
|
|
60
|
-
*/
|
|
61
|
-
compare(b: LocalReference): number;
|
|
62
|
-
/**
|
|
63
|
-
* @deprecated - use getLocalReferencePosition
|
|
64
|
-
*/
|
|
65
|
-
toPosition(): number;
|
|
66
|
-
/**
|
|
67
|
-
* @deprecated - use refHasTileLabels
|
|
68
|
-
*/
|
|
69
|
-
hasTileLabels(): boolean;
|
|
70
|
-
/**
|
|
71
|
-
* @deprecated - use refHasRangeLabels
|
|
72
|
-
*/
|
|
73
|
-
hasRangeLabels(): boolean;
|
|
74
|
-
/**
|
|
75
|
-
* @deprecated - use refHasTileLabel
|
|
76
|
-
*/
|
|
77
|
-
hasTileLabel(label: string): boolean;
|
|
78
|
-
/**
|
|
79
|
-
* @deprecated - use refHasRangeLabel
|
|
80
|
-
*/
|
|
81
|
-
hasRangeLabel(label: string): boolean;
|
|
82
|
-
/**
|
|
83
|
-
* @deprecated - use refGetTileLabels
|
|
84
|
-
*/
|
|
85
|
-
getTileLabels(): string[] | undefined;
|
|
86
|
-
/**
|
|
87
|
-
* @deprecated - use refGetRangeLabels
|
|
88
|
-
*/
|
|
89
|
-
getRangeLabels(): string[] | undefined;
|
|
28
|
+
constructor(refType?: ReferenceType, properties?: PropertySet);
|
|
29
|
+
link(segment: ISegment | undefined, offset: number, listNode: List<LocalReference> | undefined): void;
|
|
90
30
|
isLeaf(): boolean;
|
|
91
31
|
addProperties(newProps: PropertySet, op?: ICombiningOp): void;
|
|
92
|
-
/**
|
|
93
|
-
* @deprecated - no longer supported
|
|
94
|
-
*/
|
|
95
|
-
getClient(): Client;
|
|
96
32
|
getSegment(): ISegment | undefined;
|
|
97
33
|
getOffset(): number;
|
|
34
|
+
getListNode(): List<LocalReference> | undefined;
|
|
98
35
|
getProperties(): PropertySet | undefined;
|
|
99
36
|
}
|
|
37
|
+
export declare function createDetachedLocalReferencePosition(refType?: ReferenceType): LocalReferencePosition;
|
|
100
38
|
interface IRefsAtOffset {
|
|
101
39
|
before?: List<LocalReference>;
|
|
102
40
|
at?: List<LocalReference>;
|
|
103
41
|
after?: List<LocalReference>;
|
|
104
42
|
}
|
|
43
|
+
export declare function assertLocalReferences(lref: any): asserts lref is LocalReference;
|
|
105
44
|
/**
|
|
106
|
-
* Represents a collection of {@link
|
|
45
|
+
* Represents a collection of {@link LocalReferencePosition}s associated with one segment in a merge-tree.
|
|
107
46
|
*/
|
|
108
47
|
export declare class LocalReferenceCollection {
|
|
109
48
|
/** Segment this `LocalReferenceCollection` is associated to. */
|
|
110
49
|
private readonly segment;
|
|
111
50
|
static append(seg1: ISegment, seg2: ISegment): void;
|
|
112
51
|
/**
|
|
113
|
-
*
|
|
114
|
-
* @internal
|
|
52
|
+
* @remarks This method should only be called by mergeTree.
|
|
53
|
+
* @internal
|
|
115
54
|
*/
|
|
116
55
|
hierRefCount: number;
|
|
117
56
|
private readonly refsByOffset;
|
|
118
57
|
private refCount;
|
|
119
58
|
/**
|
|
120
59
|
*
|
|
121
|
-
* @internal
|
|
60
|
+
* @internal
|
|
122
61
|
*/
|
|
123
62
|
constructor(
|
|
124
63
|
/** Segment this `LocalReferenceCollection` is associated to. */
|
|
125
64
|
segment: ISegment, initialRefsByfOffset?: (IRefsAtOffset | undefined)[]);
|
|
126
65
|
/**
|
|
127
|
-
*
|
|
128
|
-
* @internal
|
|
66
|
+
* @remarks This method should only be called by mergeTree.
|
|
67
|
+
* @internal
|
|
129
68
|
*/
|
|
130
69
|
[Symbol.iterator](): {
|
|
131
|
-
next(): IteratorResult<
|
|
70
|
+
next(): IteratorResult<LocalReferencePosition>;
|
|
132
71
|
[Symbol.iterator](): any;
|
|
133
72
|
};
|
|
134
73
|
/**
|
|
135
|
-
*
|
|
136
|
-
* @internal
|
|
74
|
+
* @remarks This method should only be called by mergeTree.
|
|
75
|
+
* @internal
|
|
137
76
|
*/
|
|
138
77
|
clear(): void;
|
|
139
78
|
/**
|
|
140
|
-
*
|
|
141
|
-
* @internal
|
|
79
|
+
* @remarks This method should only be called by mergeTree.
|
|
80
|
+
* @internal
|
|
142
81
|
*/
|
|
143
82
|
get empty(): boolean;
|
|
144
83
|
/**
|
|
145
|
-
*
|
|
146
|
-
* @internal
|
|
84
|
+
* @remarks This method should only be called by mergeTree.
|
|
85
|
+
* @internal
|
|
147
86
|
*/
|
|
148
|
-
createLocalRef(offset: number
|
|
87
|
+
createLocalRef(offset: number, refType: ReferenceType, properties: PropertySet | undefined): LocalReferencePosition;
|
|
149
88
|
/**
|
|
150
|
-
*
|
|
151
|
-
* @internal
|
|
89
|
+
* @remarks This method should only be called by mergeTree.
|
|
90
|
+
* @internal
|
|
152
91
|
*/
|
|
153
|
-
addLocalRef(lref:
|
|
92
|
+
addLocalRef(lref: LocalReferencePosition, offset: number): void;
|
|
154
93
|
/**
|
|
155
|
-
*
|
|
156
|
-
* @internal
|
|
94
|
+
* @remarks This method should only be called by mergeTree.
|
|
95
|
+
* @internal
|
|
157
96
|
*/
|
|
158
|
-
removeLocalRef(lref:
|
|
97
|
+
removeLocalRef(lref: LocalReferencePosition): LocalReferencePosition | undefined;
|
|
159
98
|
/**
|
|
160
|
-
* @internal - this method should only be called by mergeTree
|
|
161
99
|
*
|
|
162
100
|
* Called by 'append()' implementations to append local refs from the given 'other' segment to the
|
|
163
101
|
* end of 'this' segment.
|
|
164
102
|
*
|
|
165
103
|
* Note: This method should be invoked after the caller has ensured that segments can be merged,
|
|
166
|
-
*
|
|
167
|
-
*
|
|
104
|
+
* but before 'this' segment's cachedLength has changed, or the adjustment to the local refs
|
|
105
|
+
* will be incorrect.
|
|
106
|
+
*
|
|
107
|
+
* @remarks This method should only be called by mergeTree.
|
|
108
|
+
* @internal
|
|
168
109
|
*/
|
|
169
110
|
append(other: LocalReferenceCollection): void;
|
|
170
111
|
/**
|
|
171
|
-
*
|
|
112
|
+
* Returns true of the local reference is in the collection, otherwise false.
|
|
172
113
|
*
|
|
114
|
+
* @remarks This method should only be called by mergeTree.
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
has(lref: ReferencePosition): boolean;
|
|
118
|
+
/**
|
|
173
119
|
* Splits this `LocalReferenceCollection` into the intervals [0, offset) and [offset, originalLength).
|
|
174
120
|
* Local references in the former half of this split will remain associated with the segment used on construction.
|
|
175
121
|
* Local references in the latter half of this split will be transferred to `splitSeg`,
|
|
@@ -177,10 +123,13 @@ export declare class LocalReferenceCollection {
|
|
|
177
123
|
* @param offset - Offset into the original segment at which the collection should be split
|
|
178
124
|
* @param splitSeg - Split segment which originally corresponded to the indices [offset, originalLength)
|
|
179
125
|
* before splitting.
|
|
126
|
+
*
|
|
127
|
+
* @remarks This method should only be called by mergeTree.
|
|
128
|
+
* @internal
|
|
180
129
|
*/
|
|
181
130
|
split(offset: number, splitSeg: ISegment): void;
|
|
182
|
-
addBeforeTombstones(...refs: Iterable<
|
|
183
|
-
addAfterTombstones(...refs: Iterable<
|
|
131
|
+
addBeforeTombstones(...refs: Iterable<LocalReferencePosition>[]): void;
|
|
132
|
+
addAfterTombstones(...refs: Iterable<LocalReferencePosition>[]): void;
|
|
184
133
|
}
|
|
185
134
|
export {};
|
|
186
135
|
//# sourceMappingURL=localReference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localReference.d.ts","sourceRoot":"","sources":["../src/localReference.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"localReference.d.ts","sourceRoot":"","sources":["../src/localReference.ts"],"names":[],"mappings":"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"}
|