@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.
Files changed (231) hide show
  1. package/DEV.md +2 -2
  2. package/README.md +1 -1
  3. package/REFERENCEPOSITIONS.md +2 -2
  4. package/dist/MergeTreeTextHelper.d.ts +23 -0
  5. package/dist/MergeTreeTextHelper.d.ts.map +1 -0
  6. package/dist/MergeTreeTextHelper.js +136 -0
  7. package/dist/MergeTreeTextHelper.js.map +1 -0
  8. package/dist/base.d.ts +2 -26
  9. package/dist/base.d.ts.map +1 -1
  10. package/dist/base.js.map +1 -1
  11. package/dist/client.d.ts +21 -12
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/client.js +87 -27
  14. package/dist/client.js.map +1 -1
  15. package/dist/collections/heap.d.ts +28 -0
  16. package/dist/collections/heap.d.ts.map +1 -0
  17. package/dist/collections/heap.js +65 -0
  18. package/dist/collections/heap.js.map +1 -0
  19. package/dist/collections/index.d.ts +11 -0
  20. package/dist/collections/index.d.ts.map +1 -0
  21. package/dist/collections/index.js +23 -0
  22. package/dist/collections/index.js.map +1 -0
  23. package/dist/collections/intervalTree.d.ts +60 -0
  24. package/dist/collections/intervalTree.d.ts.map +1 -0
  25. package/dist/collections/intervalTree.js +99 -0
  26. package/dist/collections/intervalTree.js.map +1 -0
  27. package/dist/collections/list.d.ts +39 -0
  28. package/dist/collections/list.d.ts.map +1 -0
  29. package/dist/collections/list.js +155 -0
  30. package/dist/collections/list.js.map +1 -0
  31. package/dist/collections/rbTree.d.ts +154 -0
  32. package/dist/collections/rbTree.d.ts.map +1 -0
  33. package/dist/{collections.js → collections/rbTree.js} +10 -448
  34. package/dist/collections/rbTree.js.map +1 -0
  35. package/dist/collections/stack.d.ts +16 -0
  36. package/dist/collections/stack.d.ts.map +1 -0
  37. package/dist/collections/stack.js +30 -0
  38. package/dist/collections/stack.js.map +1 -0
  39. package/dist/collections/tst.d.ts +55 -0
  40. package/dist/collections/tst.d.ts.map +1 -0
  41. package/dist/collections/tst.js +171 -0
  42. package/dist/collections/tst.js.map +1 -0
  43. package/dist/index.d.ts +3 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +4 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/localReference.d.ts +48 -99
  48. package/dist/localReference.d.ts.map +1 -1
  49. package/dist/localReference.js +132 -169
  50. package/dist/localReference.js.map +1 -1
  51. package/dist/mergeTree.d.ts +38 -299
  52. package/dist/mergeTree.d.ts.map +1 -1
  53. package/dist/mergeTree.js +214 -598
  54. package/dist/mergeTree.js.map +1 -1
  55. package/dist/mergeTreeDeltaCallback.d.ts +1 -1
  56. package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
  57. package/dist/mergeTreeDeltaCallback.js.map +1 -1
  58. package/dist/mergeTreeNodes.d.ts +269 -0
  59. package/dist/mergeTreeNodes.d.ts.map +1 -0
  60. package/dist/mergeTreeNodes.js +383 -0
  61. package/dist/mergeTreeNodes.js.map +1 -0
  62. package/dist/mergeTreeTracking.d.ts +1 -1
  63. package/dist/mergeTreeTracking.d.ts.map +1 -1
  64. package/dist/mergeTreeTracking.js.map +1 -1
  65. package/dist/opBuilder.d.ts +1 -1
  66. package/dist/opBuilder.d.ts.map +1 -1
  67. package/dist/opBuilder.js.map +1 -1
  68. package/dist/partialLengths.d.ts +130 -15
  69. package/dist/partialLengths.d.ts.map +1 -1
  70. package/dist/partialLengths.js +230 -138
  71. package/dist/partialLengths.js.map +1 -1
  72. package/dist/properties.d.ts.map +1 -1
  73. package/dist/properties.js.map +1 -1
  74. package/dist/referencePositions.d.ts +6 -26
  75. package/dist/referencePositions.d.ts.map +1 -1
  76. package/dist/referencePositions.js.map +1 -1
  77. package/dist/segmentGroupCollection.d.ts +2 -1
  78. package/dist/segmentGroupCollection.d.ts.map +1 -1
  79. package/dist/segmentGroupCollection.js +3 -0
  80. package/dist/segmentGroupCollection.js.map +1 -1
  81. package/dist/segmentPropertiesManager.d.ts +10 -1
  82. package/dist/segmentPropertiesManager.d.ts.map +1 -1
  83. package/dist/segmentPropertiesManager.js +41 -6
  84. package/dist/segmentPropertiesManager.js.map +1 -1
  85. package/dist/snapshotLoader.d.ts.map +1 -1
  86. package/dist/snapshotLoader.js.map +1 -1
  87. package/dist/snapshotV1.d.ts +1 -1
  88. package/dist/snapshotV1.d.ts.map +1 -1
  89. package/dist/snapshotV1.js.map +1 -1
  90. package/dist/snapshotlegacy.d.ts +5 -1
  91. package/dist/snapshotlegacy.d.ts.map +1 -1
  92. package/dist/snapshotlegacy.js +4 -0
  93. package/dist/snapshotlegacy.js.map +1 -1
  94. package/dist/sortedSegmentSet.d.ts +1 -1
  95. package/dist/sortedSegmentSet.d.ts.map +1 -1
  96. package/dist/sortedSegmentSet.js.map +1 -1
  97. package/dist/textSegment.d.ts +7 -7
  98. package/dist/textSegment.d.ts.map +1 -1
  99. package/dist/textSegment.js +3 -125
  100. package/dist/textSegment.js.map +1 -1
  101. package/lib/MergeTreeTextHelper.d.ts +23 -0
  102. package/lib/MergeTreeTextHelper.d.ts.map +1 -0
  103. package/lib/MergeTreeTextHelper.js +132 -0
  104. package/lib/MergeTreeTextHelper.js.map +1 -0
  105. package/lib/base.d.ts +2 -26
  106. package/lib/base.d.ts.map +1 -1
  107. package/lib/base.js.map +1 -1
  108. package/lib/client.d.ts +21 -12
  109. package/lib/client.d.ts.map +1 -1
  110. package/lib/client.js +85 -25
  111. package/lib/client.js.map +1 -1
  112. package/lib/collections/heap.d.ts +28 -0
  113. package/lib/collections/heap.d.ts.map +1 -0
  114. package/lib/collections/heap.js +61 -0
  115. package/lib/collections/heap.js.map +1 -0
  116. package/lib/collections/index.d.ts +11 -0
  117. package/lib/collections/index.d.ts.map +1 -0
  118. package/lib/collections/index.js +11 -0
  119. package/lib/collections/index.js.map +1 -0
  120. package/lib/collections/intervalTree.d.ts +60 -0
  121. package/lib/collections/intervalTree.d.ts.map +1 -0
  122. package/lib/collections/intervalTree.js +94 -0
  123. package/lib/collections/intervalTree.js.map +1 -0
  124. package/lib/collections/list.d.ts +39 -0
  125. package/lib/collections/list.d.ts.map +1 -0
  126. package/lib/collections/list.js +149 -0
  127. package/lib/collections/list.js.map +1 -0
  128. package/lib/collections/rbTree.d.ts +154 -0
  129. package/lib/collections/rbTree.d.ts.map +1 -0
  130. package/lib/{collections.js → collections/rbTree.js} +9 -439
  131. package/lib/collections/rbTree.js.map +1 -0
  132. package/lib/collections/stack.d.ts +16 -0
  133. package/lib/collections/stack.d.ts.map +1 -0
  134. package/lib/collections/stack.js +26 -0
  135. package/lib/collections/stack.js.map +1 -0
  136. package/lib/collections/tst.d.ts +55 -0
  137. package/lib/collections/tst.d.ts.map +1 -0
  138. package/lib/collections/tst.js +167 -0
  139. package/lib/collections/tst.js.map +1 -0
  140. package/lib/index.d.ts +3 -1
  141. package/lib/index.d.ts.map +1 -1
  142. package/lib/index.js +3 -1
  143. package/lib/index.js.map +1 -1
  144. package/lib/localReference.d.ts +48 -99
  145. package/lib/localReference.d.ts.map +1 -1
  146. package/lib/localReference.js +132 -170
  147. package/lib/localReference.js.map +1 -1
  148. package/lib/mergeTree.d.ts +38 -299
  149. package/lib/mergeTree.d.ts.map +1 -1
  150. package/lib/mergeTree.js +190 -563
  151. package/lib/mergeTree.js.map +1 -1
  152. package/lib/mergeTreeDeltaCallback.d.ts +1 -1
  153. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
  154. package/lib/mergeTreeDeltaCallback.js.map +1 -1
  155. package/lib/mergeTreeNodes.d.ts +269 -0
  156. package/lib/mergeTreeNodes.d.ts.map +1 -0
  157. package/lib/mergeTreeNodes.js +369 -0
  158. package/lib/mergeTreeNodes.js.map +1 -0
  159. package/lib/mergeTreeTracking.d.ts +1 -1
  160. package/lib/mergeTreeTracking.d.ts.map +1 -1
  161. package/lib/mergeTreeTracking.js.map +1 -1
  162. package/lib/opBuilder.d.ts +1 -1
  163. package/lib/opBuilder.d.ts.map +1 -1
  164. package/lib/opBuilder.js.map +1 -1
  165. package/lib/partialLengths.d.ts +130 -15
  166. package/lib/partialLengths.d.ts.map +1 -1
  167. package/lib/partialLengths.js +227 -135
  168. package/lib/partialLengths.js.map +1 -1
  169. package/lib/properties.d.ts.map +1 -1
  170. package/lib/properties.js.map +1 -1
  171. package/lib/referencePositions.d.ts +6 -26
  172. package/lib/referencePositions.d.ts.map +1 -1
  173. package/lib/referencePositions.js.map +1 -1
  174. package/lib/segmentGroupCollection.d.ts +2 -1
  175. package/lib/segmentGroupCollection.d.ts.map +1 -1
  176. package/lib/segmentGroupCollection.js +3 -0
  177. package/lib/segmentGroupCollection.js.map +1 -1
  178. package/lib/segmentPropertiesManager.d.ts +10 -1
  179. package/lib/segmentPropertiesManager.d.ts.map +1 -1
  180. package/lib/segmentPropertiesManager.js +41 -6
  181. package/lib/segmentPropertiesManager.js.map +1 -1
  182. package/lib/snapshotLoader.d.ts.map +1 -1
  183. package/lib/snapshotLoader.js.map +1 -1
  184. package/lib/snapshotV1.d.ts +1 -1
  185. package/lib/snapshotV1.d.ts.map +1 -1
  186. package/lib/snapshotV1.js.map +1 -1
  187. package/lib/snapshotlegacy.d.ts +5 -1
  188. package/lib/snapshotlegacy.d.ts.map +1 -1
  189. package/lib/snapshotlegacy.js +4 -0
  190. package/lib/snapshotlegacy.js.map +1 -1
  191. package/lib/sortedSegmentSet.d.ts +1 -1
  192. package/lib/sortedSegmentSet.d.ts.map +1 -1
  193. package/lib/sortedSegmentSet.js.map +1 -1
  194. package/lib/textSegment.d.ts +7 -7
  195. package/lib/textSegment.d.ts.map +1 -1
  196. package/lib/textSegment.js +1 -122
  197. package/lib/textSegment.js.map +1 -1
  198. package/package.json +93 -17
  199. package/src/MergeTreeTextHelper.ts +172 -0
  200. package/src/base.ts +2 -35
  201. package/src/client.ts +114 -30
  202. package/src/collections/heap.ts +75 -0
  203. package/src/collections/index.ts +11 -0
  204. package/src/collections/intervalTree.ts +140 -0
  205. package/src/collections/list.ts +165 -0
  206. package/src/{collections.ts → collections/rbTree.ts} +79 -538
  207. package/src/collections/stack.ts +27 -0
  208. package/src/collections/tst.ts +212 -0
  209. package/src/index.ts +8 -2
  210. package/src/localReference.ts +152 -203
  211. package/src/mergeTree.ts +265 -868
  212. package/src/mergeTreeDeltaCallback.ts +1 -1
  213. package/src/mergeTreeNodes.ts +676 -0
  214. package/src/mergeTreeTracking.ts +1 -1
  215. package/src/opBuilder.ts +1 -1
  216. package/src/partialLengths.ts +295 -150
  217. package/src/properties.ts +1 -0
  218. package/src/referencePositions.ts +7 -27
  219. package/src/segmentGroupCollection.ts +5 -1
  220. package/src/segmentPropertiesManager.ts +45 -6
  221. package/src/snapshotLoader.ts +2 -1
  222. package/src/snapshotV1.ts +2 -2
  223. package/src/snapshotlegacy.ts +6 -2
  224. package/src/sortedSegmentSet.ts +1 -1
  225. package/src/textSegment.ts +10 -157
  226. package/dist/collections.d.ts +0 -197
  227. package/dist/collections.d.ts.map +0 -1
  228. package/dist/collections.js.map +0 -1
  229. package/lib/collections.d.ts +0 -197
  230. package/lib/collections.d.ts.map +0 -1
  231. 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 { LocalReference, LocalReferencePosition, LocalReferenceCollection } from "./localReference";
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";
@@ -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,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACpG,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,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"}
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.LocalReference = void 0;
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, "LocalReference", { enumerable: true, get: function () { return localReference_1.LocalReference; } });
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,mDAAoG;AAA3F,gHAAA,cAAc,OAAA;AAA0B,0HAAA,wBAAwB,OAAA;AACzE,8CAA4B;AAC5B,2DAAyC;AACzC,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 { LocalReference, LocalReferencePosition, LocalReferenceCollection } from \"./localReference\";\nexport * from \"./mergeTree\";\nexport * from \"./mergeTreeDeltaCallback\";\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"]}
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"]}
@@ -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 "./mergeTree";
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
- * @deprecated - Use LocalReferencePosition
18
+ * @privateRemarks This should not be exported outside merge tree.
19
+ * @internal
20
20
  */
21
- export declare class LocalReference implements LocalReferencePosition {
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
- * @deprecated - use properties to store pair
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
- * @deprecated - use createReferencePosition
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 ReferencePosition}s associated with one segment in a merge-tree.
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 - this method should only be called by mergeTree
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 - this method should only be called by mergeTree
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 - this method should only be called by mergeTree
66
+ * @remarks This method should only be called by mergeTree.
67
+ * @internal
129
68
  */
130
69
  [Symbol.iterator](): {
131
- next(): IteratorResult<LocalReference>;
70
+ next(): IteratorResult<LocalReferencePosition>;
132
71
  [Symbol.iterator](): any;
133
72
  };
134
73
  /**
135
- *
136
- * @internal - this method should only be called by mergeTree
74
+ * @remarks This method should only be called by mergeTree.
75
+ * @internal
137
76
  */
138
77
  clear(): void;
139
78
  /**
140
- *
141
- * @internal - this method should only be called by mergeTree
79
+ * @remarks This method should only be called by mergeTree.
80
+ * @internal
142
81
  */
143
82
  get empty(): boolean;
144
83
  /**
145
- *
146
- * @internal - this method should only be called by mergeTree
84
+ * @remarks This method should only be called by mergeTree.
85
+ * @internal
147
86
  */
148
- createLocalRef(offset: number | undefined, refType: ReferenceType, properties: PropertySet | undefined, client: Client): ReferencePosition;
87
+ createLocalRef(offset: number, refType: ReferenceType, properties: PropertySet | undefined): LocalReferencePosition;
149
88
  /**
150
- *
151
- * @internal - this method should only be called by mergeTree
89
+ * @remarks This method should only be called by mergeTree.
90
+ * @internal
152
91
  */
153
- addLocalRef(lref: LocalReference | ReferencePosition): void;
92
+ addLocalRef(lref: LocalReferencePosition, offset: number): void;
154
93
  /**
155
- *
156
- * @internal - this method should only be called by mergeTree
94
+ * @remarks This method should only be called by mergeTree.
95
+ * @internal
157
96
  */
158
- removeLocalRef(lref: LocalReference | ReferencePosition): LocalReference | undefined;
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
- * but before 'this' segment's cachedLength has changed, or the adjustment to the local refs
167
- * will be incorrect.
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
- * @internal - this method should only be called by mergeTree
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<LocalReference | ReferencePosition>[]): void;
183
- addAfterTombstones(...refs: Iterable<LocalReference | ReferencePosition>[]): void;
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":"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"}
1
+ {"version":3,"file":"localReference.d.ts","sourceRoot":"","sources":["../src/localReference.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,IAAI,EAAiC,MAAM,eAAe,CAAC;AACpE,OAAO,EACH,QAAQ,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAiB,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAGH,iBAAiB,EAEpB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,QAe5D;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;CACzE;AAED;;;GAGG;AACH,cAAM,cAAe,YAAW,sBAAsB;IAUvC,OAAO;IATX,UAAU,EAAE,WAAW,GAAG,SAAS,CAAC;IAE3C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAmC;IAE5C,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;gBAG9E,OAAO,gBAAuB,EACrC,UAAU,CAAC,EAAE,WAAW;IAMrB,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS;IAU9F,MAAM;IAIN,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY;IAItD,UAAU;IAIV,SAAS;IAIT,WAAW;IAIX,aAAa;CAGvB;AAED,wBAAgB,oCAAoC,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,sBAAsB,CAEpG;AAED,UAAU,aAAa;IACnB,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9B,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;CAChC;AAED,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,IAAI,cAAc,CAEhC;AAED;;GAEG;AACH,qBAAa,wBAAwB;IA6B7B,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO;WA7Bd,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;IAenD;;;OAGG;IACI,YAAY,EAAE,MAAM,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAa;IAE7B;;;OAGG;;IAEC,gEAAgE;IAC/C,OAAO,EAAE,QAAQ,EAClC,oBAAoB,gCAA6D;IAOrF;;;OAGG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAiBR,eAAe,sBAAsB,CAAC;;;IAmBtD;;;OAGG;IACI,KAAK;IAqBZ;;;OAGG;IACH,IAAW,KAAK,YAEf;IAED;;;OAGG;IACI,cAAc,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,WAAW,GAAG,SAAS,GAAG,sBAAsB;IAYhE;;;OAGG;IACI,WAAW,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM;IAqB/D;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,SAAS;IAiBvF;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,KAAK,EAAE,wBAAwB;IAiB7C;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAoC5C;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IA2BxC,mBAAmB,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IA2B/D,kBAAkB,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE;CA2BxE"}