@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
@@ -3,48 +3,163 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { RedBlackTree } from "./collections";
6
- import { CollaborationWindow, IMergeBlock, MergeTree } from "./mergeTree";
6
+ import { CollaborationWindow, IMergeBlock } from "./mergeTreeNodes";
7
7
  interface IOverlapClient {
8
8
  clientId: number;
9
9
  seglen: number;
10
10
  }
11
+ /**
12
+ * Tracks length information for a part of a MergeTree (block) at a given time (seq).
13
+ * These objects are associated with internal nodes (i.e. blocks).
14
+ */
11
15
  export interface PartialSequenceLength {
16
+ /**
17
+ * Sequence number
18
+ */
12
19
  seq: number;
20
+ /**
21
+ * The length of the associated block.
22
+ */
13
23
  len: number;
24
+ /**
25
+ * The delta between the current length of the associated block and its length at the previous seq number.
26
+ */
14
27
  seglen: number;
28
+ /**
29
+ * clientId for the client that submitted the op with sequence number `seq`.
30
+ */
15
31
  clientId?: number;
32
+ /**
33
+ * This field maps each client to the size of the intersection between segments deleted at this seq
34
+ * and segments concurrently deleted by that client.
35
+ *
36
+ * For example, this PartialSequenceLength:
37
+ * ```typescript
38
+ * {
39
+ * seq: 5,
40
+ * len: 100,
41
+ * seglen: -10,
42
+ * clientId: 0,
43
+ * overlapRemoveClients: <RedBlack tree with key-values expressed by>{
44
+ * 1: { clientId: 1, seglen: -5 },
45
+ * 3: { clientId: 3, seglen: -10 }
46
+ * }
47
+ * }
48
+ * ```
49
+ *
50
+ * corresponds to an op submitted by client 0 which:
51
+ * - reduces the length of this block by 10 (it may have deleted a single segment of length 10,
52
+ * several segments totalling length 10, or even delete and add content for a total reduction of 10 length)
53
+ * - was concurrent to an op submitted by client 1 that also removed some of the same segments,
54
+ * whose length totalled 5
55
+ * - was concurrent to an op submitted by client 3 that removed some of the same segments,
56
+ * whose length totalled 10
57
+ */
16
58
  overlapRemoveClients?: RedBlackTree<number, IOverlapClient>;
17
59
  }
18
60
  /**
19
- * Keep track of partial sums of segment lengths for all sequence numbers
20
- * in the current collaboration window (if any). Only used during active
21
- * collaboration.
61
+ * Keeps track of partial sums of segment lengths for all sequence numbers in the current collaboration window.
62
+ * Only used during active collaboration.
63
+ *
64
+ * This class is associated with an internal node (block) of a MergeTree. It efficiently answers queries of the form
65
+ * "What is the length of `block` from the perspective of some particular seq and clientId?".
66
+ *
67
+ * It also supports incremental updating of state for newly-sequenced ops that don't affect the structure of the
68
+ * MergeTree.
69
+ *
70
+ * To answer these queries, it pre-builds several lists which track the length of the block at a per-sequence-number
71
+ * level. These lists are:
72
+ *
73
+ * 1. (`partialLengths`): Stores the total length of the block.
74
+ * 2. (`clientSeqNumbers[clientId]`): Stores only the total lengths of segments submitted by `clientId`. [see footnote]
75
+ *
76
+ * The reason both lists are necessary is that resolving the length of the block from the perspective of
77
+ * (clientId, refSeq) requires including both of the following types of segments:
78
+ * 1. Segments sequenced before `refSeq`
79
+ * 2. Segments submitted by `clientId`
80
+ *
81
+ * This is possible with the above bookkeeping, using:
82
+ *
83
+ * (length of the block at the minimum sequence number)
84
+ * + (partialLengths total length at refSeq)
85
+ * + (clientSeqNumbers total length at most recent op)
86
+ * - (clientSeqNumbers total length at refSeq)
87
+ *
88
+ * where the subtraction avoids double-counting segments submitted by clientId sequenced within the collab window.
89
+ *
90
+ * This algorithm scales roughly linearly with number of editing clients and the size of the collab window.
91
+ * (certain unlikely sequences of operations may introduce log factors on those variables)
92
+ *
93
+ * Note: there is some slight complication with clientSeqNumbers resulting from the possibility of different clients
94
+ * concurrently removing the same segment. See the field's documentation for more details.
22
95
  */
23
96
  export declare class PartialSequenceLengths {
97
+ /**
98
+ * The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
99
+ * or if no such calls have been made, the one used on construction.
100
+ */
24
101
  minSeq: number;
25
102
  static options: {
26
103
  verify: boolean;
27
104
  zamboni: boolean;
28
105
  };
29
- static combine(mergeTree: MergeTree, block: IMergeBlock, collabWindow: CollaborationWindow, recur?: boolean): PartialSequenceLengths;
30
106
  /**
31
107
  * Combine the partial lengths of block's children
32
- * @param block - an interior node; it is assumed that each interior node child of this block
33
- * has its partials up to date
34
- * @param collabWindow - segment window of the segment tree containing textSegmentBlock
108
+ * @param block - an interior node. If `recur` is false, it is assumed that each interior node child of this block
109
+ * has its partials up to date.
110
+ * @param collabWindow - segment window of the segment tree containing `block`.
111
+ * @param recur - whether to recursively compute partial lengths for internal children of `block`.
112
+ * This incurs more work, but gives correct bookkeeping in the case that a descendant in the merge tree has been
113
+ * modified without bubbling up the resulting partial length change to this block's partials.
114
+ */
115
+ static combine(block: IMergeBlock, collabWindow: CollaborationWindow, recur?: boolean): PartialSequenceLengths;
116
+ /**
117
+ * @returns a PartialSequenceLengths structure which tracks only lengths of leaf children of the provided
118
+ * IMergeBlock.
35
119
  */
36
- private static combineBranch;
37
120
  private static fromLeaves;
38
121
  private static getOverlapClients;
39
122
  private static accumulateRemoveClientOverlap;
123
+ /**
124
+ * Inserts length information about the insertion of `segment` into `combinedPartialLengths.partialLengths`.
125
+ * Does not update the clientSeqNumbers field to account for this segment.
126
+ * If `removalInfo` is defined, this operation updates the bookkeeping to account for the removal of this
127
+ * segment at the removedSeq instead.
128
+ */
40
129
  private static insertSegment;
41
130
  private static addSeq;
42
- minLength: number;
43
- segmentCount: number;
44
- partialLengths: PartialSequenceLength[];
45
- clientSeqNumbers: PartialSequenceLength[][];
46
- constructor(minSeq: number);
47
- update(mergeTree: MergeTree, node: IMergeBlock, seq: number, clientId: number, collabWindow: CollaborationWindow): void;
131
+ /**
132
+ * Length of the block this PartialSequenceLength corresponds to when viewed at `minSeq`.
133
+ */
134
+ private minLength;
135
+ /**
136
+ * Total number of segments in the subtree rooted at the block this PartialSequenceLength corresponds to.
137
+ */
138
+ private segmentCount;
139
+ /**
140
+ * List of PartialSequenceLength objects--ordered by increasing seq--giving length information about
141
+ * the block associated with this PartialSequenceLengths object.
142
+ *
143
+ * `partialLengths[i].len` contains the length of this block considering only sequenced segments with
144
+ * `sequenceNumber <= partialLengths[i].seq`.
145
+ */
146
+ private readonly partialLengths;
147
+ /**
148
+ * clientSeqNumbers[clientId] is a list of partial lengths for sequenced ops which either:
149
+ * - were submitted by `clientId`.
150
+ * - deleted a range containing segments that were concurrently deleted by `clientId`
151
+ *
152
+ * The second case is referred to as the "overlapping delete" case. It is necessary to avoid double-counting
153
+ * the removal of those segments in queries including clientId.
154
+ */
155
+ private readonly clientSeqNumbers;
156
+ constructor(
157
+ /**
158
+ * The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
159
+ * or if no such calls have been made, the one used on construction.
160
+ */
161
+ minSeq: number);
162
+ update(node: IMergeBlock, seq: number, clientId: number, collabWindow: CollaborationWindow): void;
48
163
  getPartialLength(refSeq: number, clientId: number): number;
49
164
  toString(glc?: (id: number) => string, indentCount?: number): string;
50
165
  private zamboni;
@@ -1 +1 @@
1
- {"version":3,"file":"partialLengths.d.ts","sourceRoot":"","sources":["../src/partialLengths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACH,mBAAmB,EAEnB,WAAW,EAGX,SAAS,EAEZ,MAAM,aAAa,CAAC;AAErB,UAAU,cAAc;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAClB;AA2BD,MAAM,WAAW,qBAAqB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC/D;AAED;;;;GAIG;AACH,qBAAa,sBAAsB;IAyUZ,MAAM,EAAE,MAAM;IAxUjC,OAAc,OAAO;;;MAGnB;WAEY,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,UAAQ;IAIhH;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAqI5B,OAAO,CAAC,MAAM,CAAC,UAAU;IAoDzB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAmB5C,OAAO,CAAC,MAAM,CAAC,aAAa;IA6D5B,OAAO,CAAC,MAAM,CAAC,MAAM;IAmCd,SAAS,SAAK;IACd,YAAY,SAAK;IACjB,cAAc,EAAE,qBAAqB,EAAE,CAAM;IAC7C,gBAAgB,EAAE,qBAAqB,EAAE,EAAE,CAAM;gBAErC,MAAM,EAAE,MAAM;IAM1B,MAAM,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,mBAAmB;IAkD9B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAgCjD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,EAAE,WAAW,SAAI;IA2B7D,OAAO,CAAC,OAAO;IA8Bf,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,oBAAoB;IAqD5B,OAAO,CAAC,MAAM;CAqBjB"}
1
+ {"version":3,"file":"partialLengths.d.ts","sourceRoot":"","sources":["../src/partialLengths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAY,YAAY,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EACH,mBAAmB,EAEnB,WAAW,EAId,MAAM,kBAAkB,CAAC;AAE1B,UAAU,cAAc;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAClB;AA2BD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,oBAAoB,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,sBAAsB;IAkT3B;;;MAGE;IACK,MAAM,EAAE,MAAM;IArTzB,OAAc,OAAO;;;MAGnB;IAEF;;;;;;;;OAQG;WACW,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,UAAQ;IA4E1F;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAmDzB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAmB5C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAiE5B,OAAO,CAAC,MAAM,CAAC,MAAM;IAgCrB;;OAEG;IACH,OAAO,CAAC,SAAS,CAAK;IAEtB;;OAEG;IACH,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAE9D;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;;IAG9D;;;MAGE;IACK,MAAM,EAAE,MAAM;IAMlB,MAAM,CACT,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,mBAAmB;IAkD9B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAkCjD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,EAAE,WAAW,SAAI;IA2B7D,OAAO,CAAC,OAAO;IA+Bf,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,oBAAoB;IAqD5B,OAAO,CAAC,MAAM;CAqBjB"}