@fluidframework/sequence 2.0.0-internal.7.4.0 → 2.0.0-internal.7.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/{defaultMap.js → defaultMap.cjs} +2 -2
  2. package/dist/defaultMap.cjs.map +1 -0
  3. package/{lib/intervalIndex/intervalIndex.js → dist/defaultMapInterfaces.cjs} +1 -1
  4. package/dist/defaultMapInterfaces.cjs.map +1 -0
  5. package/dist/{index.js → index.cjs} +11 -11
  6. package/dist/index.cjs.map +1 -0
  7. package/dist/{intervalCollection.js → intervalCollection.cjs} +3 -3
  8. package/dist/intervalCollection.cjs.map +1 -0
  9. package/dist/intervalIndex/{endpointInRangeIndex.js → endpointInRangeIndex.cjs} +3 -3
  10. package/dist/intervalIndex/endpointInRangeIndex.cjs.map +1 -0
  11. package/{lib/intervalIndex/endpointIndex.js → dist/intervalIndex/endpointIndex.cjs} +2 -2
  12. package/dist/intervalIndex/endpointIndex.cjs.map +1 -0
  13. package/dist/intervalIndex/{idIntervalIndex.js → idIntervalIndex.cjs} +1 -1
  14. package/dist/intervalIndex/idIntervalIndex.cjs.map +1 -0
  15. package/{lib/intervalIndex/index.js → dist/intervalIndex/index.cjs} +7 -7
  16. package/dist/intervalIndex/index.cjs.map +1 -0
  17. package/dist/intervalIndex/{intervalIndex.js → intervalIndex.cjs} +1 -1
  18. package/dist/intervalIndex/intervalIndex.cjs.map +1 -0
  19. package/{lib/intervalIndex/intervalIndexUtils.js → dist/intervalIndex/intervalIndexUtils.cjs} +1 -1
  20. package/dist/intervalIndex/intervalIndexUtils.cjs.map +1 -0
  21. package/{lib/intervalIndex/overlappingIntervalsIndex.js → dist/intervalIndex/overlappingIntervalsIndex.cjs} +4 -4
  22. package/dist/intervalIndex/overlappingIntervalsIndex.cjs.map +1 -0
  23. package/{lib/intervalIndex/overlappingSequenceIntervalsIndex.js → dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs} +3 -3
  24. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs.map +1 -0
  25. package/dist/intervalIndex/{sequenceIntervalIndexes.js → sequenceIntervalIndexes.cjs} +1 -1
  26. package/dist/intervalIndex/sequenceIntervalIndexes.cjs.map +1 -0
  27. package/{lib/intervalIndex/startpointInRangeIndex.js → dist/intervalIndex/startpointInRangeIndex.cjs} +3 -3
  28. package/dist/intervalIndex/startpointInRangeIndex.cjs.map +1 -0
  29. package/{lib/intervalTree.js → dist/intervalTree.cjs} +1 -1
  30. package/dist/intervalTree.cjs.map +1 -0
  31. package/{lib/intervals/index.js → dist/intervals/index.cjs} +4 -4
  32. package/dist/intervals/index.cjs.map +1 -0
  33. package/{lib/intervals/interval.js → dist/intervals/interval.cjs} +1 -1
  34. package/dist/intervals/interval.cjs.map +1 -0
  35. package/{lib/intervals/intervalUtils.js → dist/intervals/intervalUtils.cjs} +1 -1
  36. package/dist/intervals/intervalUtils.cjs.map +1 -0
  37. package/{lib/intervals/sequenceInterval.js → dist/intervals/sequenceInterval.cjs} +3 -3
  38. package/dist/intervals/sequenceInterval.cjs.map +1 -0
  39. package/dist/{localValues.js → localValues.cjs} +1 -1
  40. package/dist/localValues.cjs.map +1 -0
  41. package/{lib/packageVersion.js → dist/packageVersion.cjs} +2 -2
  42. package/dist/packageVersion.cjs.map +1 -0
  43. package/dist/packageVersion.d.ts +1 -1
  44. package/{lib/revertibles.js → dist/revertibles.cjs} +3 -3
  45. package/dist/revertibles.cjs.map +1 -0
  46. package/dist/{sequence.js → sequence.cjs} +4 -4
  47. package/dist/sequence.cjs.map +1 -0
  48. package/{lib/sequenceDeltaEvent.js → dist/sequenceDeltaEvent.cjs} +1 -1
  49. package/dist/sequenceDeltaEvent.cjs.map +1 -0
  50. package/dist/{sequenceFactory.js → sequenceFactory.cjs} +3 -3
  51. package/dist/sequenceFactory.cjs.map +1 -0
  52. package/{lib/sharedIntervalCollection.js → dist/sharedIntervalCollection.cjs} +4 -4
  53. package/dist/sharedIntervalCollection.cjs.map +1 -0
  54. package/{lib/sharedSequence.js → dist/sharedSequence.cjs} +2 -2
  55. package/dist/sharedSequence.cjs.map +1 -0
  56. package/{lib/sharedString.js → dist/sharedString.cjs} +3 -3
  57. package/dist/sharedString.cjs.map +1 -0
  58. package/lib/{defaultMap.d.ts → defaultMap.d.mts} +1 -1
  59. package/lib/defaultMap.d.mts.map +1 -0
  60. package/lib/{defaultMap.js → defaultMap.mjs} +19 -23
  61. package/lib/defaultMap.mjs.map +1 -0
  62. package/lib/{defaultMapInterfaces.d.ts → defaultMapInterfaces.d.mts} +1 -1
  63. package/lib/defaultMapInterfaces.d.mts.map +1 -0
  64. package/lib/defaultMapInterfaces.mjs +6 -0
  65. package/lib/{defaultMapInterfaces.js.map → defaultMapInterfaces.mjs.map} +1 -1
  66. package/lib/{index.d.ts → index.d.mts} +11 -23
  67. package/lib/index.d.mts.map +1 -0
  68. package/lib/index.mjs +15 -0
  69. package/lib/index.mjs.map +1 -0
  70. package/lib/{intervalCollection.d.ts → intervalCollection.d.mts} +3 -3
  71. package/lib/intervalCollection.d.mts.map +1 -0
  72. package/lib/{intervalCollection.js → intervalCollection.mjs} +118 -133
  73. package/lib/intervalCollection.mjs.map +1 -0
  74. package/lib/intervalIndex/{endpointInRangeIndex.d.ts → endpointInRangeIndex.d.mts} +3 -3
  75. package/lib/intervalIndex/endpointInRangeIndex.d.mts.map +1 -0
  76. package/lib/intervalIndex/{endpointInRangeIndex.js → endpointInRangeIndex.mjs} +13 -18
  77. package/lib/intervalIndex/endpointInRangeIndex.mjs.map +1 -0
  78. package/lib/intervalIndex/{endpointIndex.d.ts → endpointIndex.d.mts} +3 -3
  79. package/lib/intervalIndex/endpointIndex.d.mts.map +1 -0
  80. package/{dist/intervalIndex/endpointIndex.js → lib/intervalIndex/endpointIndex.mjs} +9 -14
  81. package/lib/intervalIndex/endpointIndex.mjs.map +1 -0
  82. package/lib/intervalIndex/{idIntervalIndex.d.ts → idIntervalIndex.d.mts} +2 -2
  83. package/lib/intervalIndex/idIntervalIndex.d.mts.map +1 -0
  84. package/lib/intervalIndex/{idIntervalIndex.js → idIntervalIndex.mjs} +5 -9
  85. package/lib/intervalIndex/idIntervalIndex.mjs.map +1 -0
  86. package/lib/intervalIndex/{index.d.ts → index.d.mts} +8 -8
  87. package/lib/intervalIndex/index.d.mts.map +1 -0
  88. package/lib/intervalIndex/index.mjs +11 -0
  89. package/{dist/intervalIndex/index.js.map → lib/intervalIndex/index.mjs.map} +1 -1
  90. package/lib/intervalIndex/{intervalIndex.d.ts → intervalIndex.d.mts} +1 -1
  91. package/lib/intervalIndex/intervalIndex.d.mts.map +1 -0
  92. package/lib/intervalIndex/intervalIndex.mjs +6 -0
  93. package/{dist/intervalIndex/intervalIndex.js.map → lib/intervalIndex/intervalIndex.mjs.map} +1 -1
  94. package/{dist/intervalIndex/intervalIndexUtils.js → lib/intervalIndex/intervalIndexUtils.mjs} +5 -9
  95. package/lib/intervalIndex/intervalIndexUtils.mjs.map +1 -0
  96. package/lib/intervalIndex/{overlappingIntervalsIndex.d.ts → overlappingIntervalsIndex.d.mts} +5 -5
  97. package/lib/intervalIndex/overlappingIntervalsIndex.d.mts.map +1 -0
  98. package/{dist/intervalIndex/overlappingIntervalsIndex.js → lib/intervalIndex/overlappingIntervalsIndex.mjs} +11 -16
  99. package/lib/intervalIndex/overlappingIntervalsIndex.mjs.map +1 -0
  100. package/lib/intervalIndex/{overlappingSequenceIntervalsIndex.d.ts → overlappingSequenceIntervalsIndex.d.mts} +2 -2
  101. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts.map +1 -0
  102. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs +37 -0
  103. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs.map +1 -0
  104. package/lib/intervalIndex/{sequenceIntervalIndexes.d.ts → sequenceIntervalIndexes.d.mts} +2 -2
  105. package/lib/intervalIndex/sequenceIntervalIndexes.d.mts.map +1 -0
  106. package/lib/intervalIndex/sequenceIntervalIndexes.mjs +6 -0
  107. package/{dist/intervalIndex/sequenceIntervalIndexes.js.map → lib/intervalIndex/sequenceIntervalIndexes.mjs.map} +1 -1
  108. package/lib/intervalIndex/{startpointInRangeIndex.d.ts → startpointInRangeIndex.d.mts} +3 -3
  109. package/lib/intervalIndex/startpointInRangeIndex.d.mts.map +1 -0
  110. package/{dist/intervalIndex/startpointInRangeIndex.js → lib/intervalIndex/startpointInRangeIndex.mjs} +13 -18
  111. package/lib/intervalIndex/startpointInRangeIndex.mjs.map +1 -0
  112. package/lib/{intervalTree.d.ts → intervalTree.d.mts} +1 -1
  113. package/lib/intervalTree.d.mts.map +1 -0
  114. package/{dist/intervalTree.js → lib/intervalTree.mjs} +5 -10
  115. package/lib/intervalTree.mjs.map +1 -0
  116. package/lib/intervals/{index.d.ts → index.d.mts} +3 -3
  117. package/lib/intervals/index.d.mts.map +1 -0
  118. package/lib/intervals/index.mjs +8 -0
  119. package/lib/intervals/index.mjs.map +1 -0
  120. package/lib/intervals/{interval.d.ts → interval.d.mts} +2 -2
  121. package/lib/intervals/{interval.d.ts.map → interval.d.mts.map} +1 -1
  122. package/{dist/intervals/interval.js → lib/intervals/interval.mjs} +14 -19
  123. package/lib/intervals/interval.mjs.map +1 -0
  124. package/lib/intervals/{intervalUtils.d.ts → intervalUtils.d.mts} +1 -1
  125. package/lib/intervals/intervalUtils.d.mts.map +1 -0
  126. package/{dist/intervals/intervalUtils.js → lib/intervals/intervalUtils.mjs} +14 -21
  127. package/lib/intervals/intervalUtils.mjs.map +1 -0
  128. package/lib/intervals/{sequenceInterval.d.ts → sequenceInterval.d.mts} +2 -2
  129. package/lib/intervals/sequenceInterval.d.mts.map +1 -0
  130. package/{dist/intervals/sequenceInterval.js → lib/intervals/sequenceInterval.mjs} +60 -68
  131. package/lib/intervals/sequenceInterval.mjs.map +1 -0
  132. package/lib/{localValues.d.ts → localValues.d.mts} +2 -2
  133. package/lib/localValues.d.mts.map +1 -0
  134. package/lib/{localValues.js → localValues.mjs} +5 -10
  135. package/lib/localValues.mjs.map +1 -0
  136. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
  137. package/lib/packageVersion.mjs +9 -0
  138. package/lib/packageVersion.mjs.map +1 -0
  139. package/lib/{revertibles.d.ts → revertibles.d.mts} +3 -3
  140. package/lib/revertibles.d.mts.map +1 -0
  141. package/{dist/revertibles.js → lib/revertibles.mjs} +60 -72
  142. package/lib/revertibles.mjs.map +1 -0
  143. package/lib/{sequence.d.ts → sequence.d.mts} +4 -4
  144. package/lib/sequence.d.mts.map +1 -0
  145. package/lib/{sequence.js → sequence.mjs} +40 -46
  146. package/lib/sequence.mjs.map +1 -0
  147. package/lib/sequenceDeltaEvent.d.mts.map +1 -0
  148. package/{dist/sequenceDeltaEvent.js → lib/sequenceDeltaEvent.mjs} +8 -15
  149. package/lib/sequenceDeltaEvent.mjs.map +1 -0
  150. package/lib/{sequenceFactory.d.ts → sequenceFactory.d.mts} +1 -1
  151. package/lib/sequenceFactory.d.mts.map +1 -0
  152. package/lib/{sequenceFactory.js → sequenceFactory.mjs} +10 -14
  153. package/lib/sequenceFactory.mjs.map +1 -0
  154. package/lib/{sharedIntervalCollection.d.ts → sharedIntervalCollection.d.mts} +2 -2
  155. package/lib/sharedIntervalCollection.d.mts.map +1 -0
  156. package/{dist/sharedIntervalCollection.js → lib/sharedIntervalCollection.mjs} +14 -19
  157. package/lib/sharedIntervalCollection.mjs.map +1 -0
  158. package/lib/{sharedSequence.d.ts → sharedSequence.d.mts} +1 -1
  159. package/lib/sharedSequence.d.mts.map +1 -0
  160. package/{dist/sharedSequence.js → lib/sharedSequence.mjs} +7 -12
  161. package/lib/sharedSequence.mjs.map +1 -0
  162. package/lib/{sharedString.d.ts → sharedString.d.mts} +2 -2
  163. package/lib/sharedString.d.mts.map +1 -0
  164. package/{dist/sharedString.js → lib/sharedString.mjs} +17 -22
  165. package/lib/sharedString.mjs.map +1 -0
  166. package/package.json +38 -23
  167. package/sequence.test-files.tar +0 -0
  168. package/src/packageVersion.ts +1 -1
  169. package/tsc-multi.test.json +10 -0
  170. package/dist/defaultMap.js.map +0 -1
  171. package/dist/defaultMapInterfaces.js +0 -7
  172. package/dist/defaultMapInterfaces.js.map +0 -1
  173. package/dist/index.js.map +0 -1
  174. package/dist/intervalCollection.js.map +0 -1
  175. package/dist/intervalIndex/endpointInRangeIndex.js.map +0 -1
  176. package/dist/intervalIndex/endpointIndex.js.map +0 -1
  177. package/dist/intervalIndex/idIntervalIndex.js.map +0 -1
  178. package/dist/intervalIndex/index.js +0 -24
  179. package/dist/intervalIndex/intervalIndexUtils.js.map +0 -1
  180. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +0 -1
  181. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -41
  182. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +0 -1
  183. package/dist/intervalIndex/startpointInRangeIndex.js.map +0 -1
  184. package/dist/intervalTree.js.map +0 -1
  185. package/dist/intervals/index.js +0 -23
  186. package/dist/intervals/index.js.map +0 -1
  187. package/dist/intervals/interval.js.map +0 -1
  188. package/dist/intervals/intervalUtils.js.map +0 -1
  189. package/dist/intervals/sequenceInterval.js.map +0 -1
  190. package/dist/localValues.js.map +0 -1
  191. package/dist/packageVersion.js +0 -12
  192. package/dist/packageVersion.js.map +0 -1
  193. package/dist/revertibles.js.map +0 -1
  194. package/dist/sequence.js.map +0 -1
  195. package/dist/sequenceDeltaEvent.js.map +0 -1
  196. package/dist/sequenceFactory.js.map +0 -1
  197. package/dist/sharedIntervalCollection.js.map +0 -1
  198. package/dist/sharedSequence.js.map +0 -1
  199. package/dist/sharedString.js.map +0 -1
  200. package/lib/defaultMap.d.ts.map +0 -1
  201. package/lib/defaultMap.js.map +0 -1
  202. package/lib/defaultMapInterfaces.d.ts.map +0 -1
  203. package/lib/defaultMapInterfaces.js +0 -7
  204. package/lib/index.d.ts.map +0 -1
  205. package/lib/index.js +0 -50
  206. package/lib/index.js.map +0 -1
  207. package/lib/intervalCollection.d.ts.map +0 -1
  208. package/lib/intervalCollection.js.map +0 -1
  209. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +0 -1
  210. package/lib/intervalIndex/endpointInRangeIndex.js.map +0 -1
  211. package/lib/intervalIndex/endpointIndex.d.ts.map +0 -1
  212. package/lib/intervalIndex/endpointIndex.js.map +0 -1
  213. package/lib/intervalIndex/idIntervalIndex.d.ts.map +0 -1
  214. package/lib/intervalIndex/idIntervalIndex.js.map +0 -1
  215. package/lib/intervalIndex/index.d.ts.map +0 -1
  216. package/lib/intervalIndex/index.js.map +0 -1
  217. package/lib/intervalIndex/intervalIndex.d.ts.map +0 -1
  218. package/lib/intervalIndex/intervalIndex.js.map +0 -1
  219. package/lib/intervalIndex/intervalIndexUtils.js.map +0 -1
  220. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +0 -1
  221. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +0 -1
  222. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +0 -1
  223. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +0 -1
  224. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +0 -1
  225. package/lib/intervalIndex/sequenceIntervalIndexes.js +0 -7
  226. package/lib/intervalIndex/sequenceIntervalIndexes.js.map +0 -1
  227. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +0 -1
  228. package/lib/intervalIndex/startpointInRangeIndex.js.map +0 -1
  229. package/lib/intervalTree.d.ts.map +0 -1
  230. package/lib/intervalTree.js.map +0 -1
  231. package/lib/intervals/index.d.ts.map +0 -1
  232. package/lib/intervals/index.js.map +0 -1
  233. package/lib/intervals/interval.js.map +0 -1
  234. package/lib/intervals/intervalUtils.d.ts.map +0 -1
  235. package/lib/intervals/intervalUtils.js.map +0 -1
  236. package/lib/intervals/sequenceInterval.d.ts.map +0 -1
  237. package/lib/intervals/sequenceInterval.js.map +0 -1
  238. package/lib/localValues.d.ts.map +0 -1
  239. package/lib/localValues.js.map +0 -1
  240. package/lib/packageVersion.js.map +0 -1
  241. package/lib/revertibles.d.ts.map +0 -1
  242. package/lib/revertibles.js.map +0 -1
  243. package/lib/sequence.d.ts.map +0 -1
  244. package/lib/sequence.js.map +0 -1
  245. package/lib/sequenceDeltaEvent.d.ts.map +0 -1
  246. package/lib/sequenceDeltaEvent.js.map +0 -1
  247. package/lib/sequenceFactory.d.ts.map +0 -1
  248. package/lib/sequenceFactory.js.map +0 -1
  249. package/lib/sharedIntervalCollection.d.ts.map +0 -1
  250. package/lib/sharedIntervalCollection.js.map +0 -1
  251. package/lib/sharedSequence.d.ts.map +0 -1
  252. package/lib/sharedSequence.js.map +0 -1
  253. package/lib/sharedString.d.ts.map +0 -1
  254. package/lib/sharedString.js.map +0 -1
  255. package/tsconfig.esnext.json +0 -6
  256. /package/lib/intervalIndex/{intervalIndexUtils.d.ts → intervalIndexUtils.d.mts} +0 -0
  257. /package/lib/intervalIndex/{intervalIndexUtils.d.ts.map → intervalIndexUtils.d.mts.map} +0 -0
  258. /package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +0 -0
  259. /package/lib/{sequence-alpha.d.ts → sequence-alpha.d.mts} +0 -0
  260. /package/lib/{sequence-beta.d.ts → sequence-beta.d.mts} +0 -0
  261. /package/lib/{sequence-public.d.ts → sequence-public.d.mts} +0 -0
  262. /package/lib/{sequence-untrimmed.d.ts → sequence-untrimmed.d.mts} +0 -0
  263. /package/lib/{sequenceDeltaEvent.d.ts → sequenceDeltaEvent.d.mts} +0 -0
@@ -1,18 +1,13 @@
1
- "use strict";
2
1
  /*!
3
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
3
  * Licensed under the MIT License.
5
4
  */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.endReferenceSlidingPreference = exports.startReferenceSlidingPreference = exports.IntervalStickiness = exports.IntervalType = exports.IntervalOpType = void 0;
8
- /* eslint-disable import/no-deprecated */
9
- /* eslint-disable no-bitwise */
10
- const merge_tree_1 = require("@fluidframework/merge-tree");
5
+ import { SlidingPreference, } from "@fluidframework/merge-tree";
11
6
  /**
12
7
  * Values are used in persisted formats (ops) and revertibles.
13
8
  * @internal
14
9
  */
15
- exports.IntervalOpType = {
10
+ export const IntervalOpType = {
16
11
  ADD: "add",
17
12
  DELETE: "delete",
18
13
  CHANGE: "change",
@@ -22,7 +17,7 @@ exports.IntervalOpType = {
22
17
  /**
23
18
  * @alpha
24
19
  */
25
- var IntervalType;
20
+ export var IntervalType;
26
21
  (function (IntervalType) {
27
22
  IntervalType[IntervalType["Simple"] = 0] = "Simple";
28
23
  /**
@@ -41,7 +36,7 @@ var IntervalType;
41
36
  * @internal
42
37
  */
43
38
  IntervalType[IntervalType["Transient"] = 4] = "Transient";
44
- })(IntervalType || (exports.IntervalType = IntervalType = {}));
39
+ })(IntervalType || (IntervalType = {}));
45
40
  /**
46
41
  * Determines how an interval should expand when segments are inserted adjacent
47
42
  * to the range it spans
@@ -51,7 +46,7 @@ var IntervalType;
51
46
  *
52
47
  * @alpha
53
48
  */
54
- exports.IntervalStickiness = {
49
+ export const IntervalStickiness = {
55
50
  /**
56
51
  * Interval does not expand to include adjacent segments
57
52
  */
@@ -71,18 +66,16 @@ exports.IntervalStickiness = {
71
66
  */
72
67
  FULL: 0b11,
73
68
  };
74
- function startReferenceSlidingPreference(stickiness) {
69
+ export function startReferenceSlidingPreference(stickiness) {
75
70
  // if any start stickiness, prefer sliding backwards
76
- return (stickiness & exports.IntervalStickiness.START) === 0
77
- ? merge_tree_1.SlidingPreference.FORWARD
78
- : merge_tree_1.SlidingPreference.BACKWARD;
71
+ return (stickiness & IntervalStickiness.START) === 0
72
+ ? SlidingPreference.FORWARD
73
+ : SlidingPreference.BACKWARD;
79
74
  }
80
- exports.startReferenceSlidingPreference = startReferenceSlidingPreference;
81
- function endReferenceSlidingPreference(stickiness) {
75
+ export function endReferenceSlidingPreference(stickiness) {
82
76
  // if any end stickiness, prefer sliding forwards
83
- return (stickiness & exports.IntervalStickiness.END) === 0
84
- ? merge_tree_1.SlidingPreference.BACKWARD
85
- : merge_tree_1.SlidingPreference.FORWARD;
77
+ return (stickiness & IntervalStickiness.END) === 0
78
+ ? SlidingPreference.BACKWARD
79
+ : SlidingPreference.FORWARD;
86
80
  }
87
- exports.endReferenceSlidingPreference = endReferenceSlidingPreference;
88
- //# sourceMappingURL=intervalUtils.js.map
81
+ //# sourceMappingURL=intervalUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intervalUtils.mjs","sourceRoot":"","sources":["../../src/intervals/intervalUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAKI,EAIN,iBAAiB,GACjB,MAAM,4BAA4B;AAyDnC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,iBAAiB;IACnC,eAAe,EAAE,gBAAgB;CACxB,CAAC;AAKX;;GAEG;AACH,MAAM,CAAN,IAAY,YAoBX;AApBD,WAAY,YAAY;IACvB,mDAAY,CAAA;IACZ;;OAEG;IACH,+CAAU,CAAA;IAEV;;;;;OAKG;IACH,iEAAmB,CAAA;IAEnB;;;OAGG;IACH,yDAAe,CAAA;AAChB,CAAC,EApBW,YAAY,KAAZ,YAAY,QAoBvB;AA+HD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC;;OAEG;IACH,IAAI,EAAE,IAAI;IAEV;;OAEG;IACH,KAAK,EAAE,IAAI;IAEX;;;;OAIG;IACH,GAAG,EAAE,IAAI;IAET;;OAEG;IACH,IAAI,EAAE,IAAI;CACD,CAAC;AAYX,MAAM,UAAU,+BAA+B,CAAC,UAA8B;IAC7E,oDAAoD;IACpD,OAAO,CAAC,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;QACnD,CAAC,CAAC,iBAAiB,CAAC,OAAO;QAC3B,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,UAA8B;IAC3E,iDAAiD;IACjD,OAAO,CAAC,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;QACjD,CAAC,CAAC,iBAAiB,CAAC,QAAQ;QAC5B,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAC9B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable import/no-deprecated */\n/* eslint-disable no-bitwise */\n\nimport {\n\tClient,\n\tPropertiesManager,\n\tPropertySet,\n\tSlidingPreference,\n} from \"@fluidframework/merge-tree\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { SequencePlace, Side } from \"../intervalCollection\";\n\n/**\n * Basic interval abstraction\n * @alpha\n */\nexport interface IInterval {\n\t/**\n\t * @returns a new interval object with identical semantics.\n\t */\n\tclone(): IInterval;\n\t/**\n\t * Compares this interval to `b` with standard comparator semantics:\n\t * - returns -1 if this is less than `b`\n\t * - returns 1 if this is greater than `b`\n\t * - returns 0 if this is equivalent to `b`\n\t * @param b - Interval to compare against\n\t */\n\tcompare(b: IInterval): number;\n\t/**\n\t * Compares the start endpoint of this interval to `b`'s start endpoint.\n\t * Standard comparator semantics apply.\n\t * @param b - Interval to compare against\n\t */\n\tcompareStart(b: IInterval): number;\n\t/**\n\t * Compares the end endpoint of this interval to `b`'s end endpoint.\n\t * Standard comparator semantics apply.\n\t * @param b - Interval to compare against\n\t */\n\tcompareEnd(b: IInterval): number;\n\t/**\n\t * Modifies one or more of the endpoints of this interval, returning a new interval representing the result.\n\t */\n\tmodify(\n\t\tlabel: string,\n\t\tstart: SequencePlace | undefined,\n\t\tend: SequencePlace | undefined,\n\t\top?: ISequencedDocumentMessage,\n\t\tlocalSeq?: number,\n\t\tuseNewSlidingBehavior?: boolean,\n\t): IInterval | undefined;\n\t/**\n\t * @returns whether this interval overlaps with `b`.\n\t * Intervals are considered to overlap if their intersection is non-empty.\n\t */\n\toverlaps(b: IInterval): boolean;\n\t/**\n\t * Unions this interval with `b`, returning a new interval.\n\t * The union operates as a convex hull, i.e. if the two intervals are disjoint, the return value includes\n\t * intermediate values between the two intervals.\n\t */\n\tunion(b: IInterval): IInterval;\n}\n\n/**\n * Values are used in persisted formats (ops) and revertibles.\n * @internal\n */\nexport const IntervalOpType = {\n\tADD: \"add\",\n\tDELETE: \"delete\",\n\tCHANGE: \"change\",\n\tPROPERTY_CHANGED: \"propertyChanged\",\n\tPOSITION_REMOVE: \"positionRemove\",\n} as const;\n/**\n * @internal\n */\nexport type IntervalOpType = (typeof IntervalOpType)[keyof typeof IntervalOpType];\n/**\n * @alpha\n */\nexport enum IntervalType {\n\tSimple = 0x0,\n\t/**\n\t * @deprecated this functionality is no longer supported and will be removed\n\t */\n\tNest = 0x1,\n\n\t/**\n\t * SlideOnRemove indicates that the ends of the interval will slide if the segment\n\t * they reference is removed and acked.\n\t * See `packages\\dds\\merge-tree\\docs\\REFERENCEPOSITIONS.md` for details\n\t * SlideOnRemove is the default interval behavior and does not need to be specified.\n\t */\n\tSlideOnRemove = 0x2, // SlideOnRemove is default behavior - all intervals are SlideOnRemove\n\n\t/**\n\t * A temporary interval, used internally\n\t * @internal\n\t */\n\tTransient = 0x4,\n}\n\n/**\n * Serialized object representation of an interval.\n * This representation is used for ops that create or change intervals.\n * @alpha\n */\nexport interface ISerializedInterval {\n\t/**\n\t * Sequence number at which `start` and `end` should be interpreted\n\t *\n\t * @remarks It's unclear that this is necessary to store here.\n\t * This should just be the refSeq on the op that modified the interval, which should be available via other means.\n\t * At the time of writing, it's not plumbed through to the reconnect/rebase code, however, which does need it.\n\t */\n\tsequenceNumber: number;\n\t/** Start position of the interval */\n\tstart: number | \"start\" | \"end\";\n\t/** End position of the interval */\n\tend: number | \"start\" | \"end\";\n\t/** Interval type to create */\n\tintervalType: IntervalType;\n\t/**\n\t * The stickiness of this interval\n\t */\n\tstickiness?: IntervalStickiness;\n\tstartSide?: Side;\n\tendSide?: Side;\n\t/** Any properties the interval has */\n\tproperties?: PropertySet;\n}\n\n/**\n * @alpha\n */\nexport interface ISerializableInterval extends IInterval {\n\t/** Serializable bag of properties associated with the interval. */\n\tproperties: PropertySet;\n\t/***/\n\tpropertyManager: PropertiesManager;\n\t/***/\n\tserialize(): ISerializedInterval;\n\t/***/\n\taddProperties(\n\t\tprops: PropertySet,\n\t\tcollaborating?: boolean,\n\t\tseq?: number,\n\t): PropertySet | undefined;\n\t/**\n\t * Gets the id associated with this interval.\n\t * When the interval is used as part of an interval collection, this id can be used to modify or remove the\n\t * interval.\n\t * @remarks This signature includes `undefined` strictly for backwards-compatibility reasons, as older versions\n\t * of Fluid didn't always write interval ids.\n\t */\n\tgetIntervalId(): string | undefined;\n}\n\n/**\n * Represents a change that should be applied to an existing interval.\n * Changes can modify any of start/end/properties, with `undefined` signifying no change should be made.\n * @internal\n */\nexport type SerializedIntervalDelta = Omit<ISerializedInterval, \"start\" | \"end\" | \"properties\"> &\n\tPartial<Pick<ISerializedInterval, \"start\" | \"end\" | \"properties\">>;\n\n/**\n * A size optimization to avoid redundantly storing keys when serializing intervals\n * as JSON for summaries.\n *\n * Intervals are of the format:\n *\n * [\n * start,\n * end,\n * sequenceNumber,\n * intervalType,\n * properties,\n * stickiness?,\n * startSide?,\n * endSide?,\n * ]\n */\nexport type CompressedSerializedInterval =\n\t| [\n\t\t\tnumber | \"start\" | \"end\",\n\t\t\tnumber | \"start\" | \"end\",\n\t\t\tnumber,\n\t\t\tIntervalType,\n\t\t\tPropertySet,\n\t\t\tIntervalStickiness,\n\t ]\n\t| [number | \"start\" | \"end\", number | \"start\" | \"end\", number, IntervalType, PropertySet];\n\n/**\n * @sealed\n * @deprecated The methods within have substitutions\n * @internal\n */\nexport interface IIntervalHelpers<TInterval extends ISerializableInterval> {\n\t/**\n\t *\n\t * @param label - label of the interval collection this interval is being added to. This parameter is\n\t * irrelevant for transient intervals.\n\t * @param start - numerical start position of the interval\n\t * @param end - numerical end position of the interval\n\t * @param client - client creating the interval\n\t * @param intervalType - Type of interval to create. Default is SlideOnRemove\n\t * @param op - If this create came from a remote client, op that created it. Default is undefined (i.e. local)\n\t * @param fromSnapshot - If this create came from loading a snapshot. Default is false.\n\t * @param startSide - The side on which the start position lays. See\n\t * {@link SequencePlace} for additional context\n\t * @param endSide - The side on which the end position lays. See\n\t * {@link SequencePlace} for additional context\n\t */\n\tcreate(\n\t\tlabel: string,\n\t\tstart: SequencePlace | undefined,\n\t\tend: SequencePlace | undefined,\n\t\tclient: Client | undefined,\n\t\tintervalType: IntervalType,\n\t\top?: ISequencedDocumentMessage,\n\t\tfromSnapshot?: boolean,\n\t\tuseNewSlidingBehavior?: boolean,\n\t): TInterval;\n}\n\n/**\n * Determines how an interval should expand when segments are inserted adjacent\n * to the range it spans\n *\n * Note that interval stickiness is currently an experimental feature and must\n * be explicitly enabled with the `intervalStickinessEnabled` flag\n *\n * @alpha\n */\nexport const IntervalStickiness = {\n\t/**\n\t * Interval does not expand to include adjacent segments\n\t */\n\tNONE: 0b00,\n\n\t/**\n\t * Interval expands to include segments inserted adjacent to the start\n\t */\n\tSTART: 0b01,\n\n\t/**\n\t * Interval expands to include segments inserted adjacent to the end\n\t *\n\t * This is the default stickiness\n\t */\n\tEND: 0b10,\n\n\t/**\n\t * Interval expands to include all segments inserted adjacent to it\n\t */\n\tFULL: 0b11,\n} as const;\n\n/**\n * Determines how an interval should expand when segments are inserted adjacent\n * to the range it spans\n *\n * Note that interval stickiness is currently an experimental feature and must\n * be explicitly enabled with the `intervalStickinessEnabled` flag\n * @alpha\n */\nexport type IntervalStickiness = (typeof IntervalStickiness)[keyof typeof IntervalStickiness];\n\nexport function startReferenceSlidingPreference(stickiness: IntervalStickiness): SlidingPreference {\n\t// if any start stickiness, prefer sliding backwards\n\treturn (stickiness & IntervalStickiness.START) === 0\n\t\t? SlidingPreference.FORWARD\n\t\t: SlidingPreference.BACKWARD;\n}\n\nexport function endReferenceSlidingPreference(stickiness: IntervalStickiness): SlidingPreference {\n\t// if any end stickiness, prefer sliding forwards\n\treturn (stickiness & IntervalStickiness.END) === 0\n\t\t? SlidingPreference.BACKWARD\n\t\t: SlidingPreference.FORWARD;\n}\n"]}
@@ -4,8 +4,8 @@
4
4
  */
5
5
  import { Client, ICombiningOp, ISegment, LocalReferencePosition, PropertiesManager, PropertySet, ReferenceType, SlidingPreference } from "@fluidframework/merge-tree";
6
6
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
7
- import { SequencePlace, Side } from "../intervalCollection";
8
- import { IIntervalHelpers, ISerializableInterval, ISerializedInterval, IntervalStickiness, IntervalType } from "./intervalUtils";
7
+ import { SequencePlace, Side } from "../intervalCollection.mjs";
8
+ import { IIntervalHelpers, ISerializableInterval, ISerializedInterval, IntervalStickiness, IntervalType } from "./intervalUtils.mjs";
9
9
  /**
10
10
  * Interval implementation whose ends are associated with positions in a mutatable sequence.
11
11
  * As such, when content is inserted into the middle of the interval, the interval expands to
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequenceInterval.d.ts","sourceRoot":"","sources":["../../src/intervals/sequenceInterval.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,33 @@
1
- "use strict";
2
1
  /*!
3
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
3
  * Licensed under the MIT License.
5
4
  */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.sequenceIntervalHelpers = exports.createSequenceInterval = exports.createPositionReferenceFromSegoff = exports.SequenceInterval = void 0;
8
- /* eslint-disable no-bitwise */
9
- /* eslint-disable import/no-deprecated */
10
- const merge_tree_1 = require("@fluidframework/merge-tree");
11
- const core_utils_1 = require("@fluidframework/core-utils");
12
- const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
13
- const intervalCollection_1 = require("../intervalCollection");
14
- const intervalUtils_1 = require("./intervalUtils");
5
+ import { PropertiesManager, ReferenceType, SlidingPreference, compareReferencePositions, createDetachedLocalReferencePosition, createMap, getSlideToSegoff, maxReferencePosition, minReferencePosition, refTypeIncludesFlag, reservedRangeLabelsKey, } from "@fluidframework/merge-tree";
6
+ import { assert } from "@fluidframework/core-utils";
7
+ import { UsageError } from "@fluidframework/telemetry-utils";
8
+ import { Side, computeStickinessFromSide, endpointPosAndSide, sidesFromStickiness, } from "../intervalCollection.mjs";
9
+ import { IntervalType, endReferenceSlidingPreference, startReferenceSlidingPreference, } from "./intervalUtils.mjs";
15
10
  const reservedIntervalIdKey = "intervalId";
16
11
  function compareSides(sideA, sideB) {
17
12
  if (sideA === sideB) {
18
13
  return 0;
19
14
  }
20
- if (sideA === intervalCollection_1.Side.Before) {
15
+ if (sideA === Side.Before) {
21
16
  return 1;
22
17
  }
23
18
  return -1;
24
19
  }
25
20
  function minSide(sideA, sideB) {
26
- if (sideA === intervalCollection_1.Side.After && sideB === intervalCollection_1.Side.After) {
27
- return intervalCollection_1.Side.After;
21
+ if (sideA === Side.After && sideB === Side.After) {
22
+ return Side.After;
28
23
  }
29
- return intervalCollection_1.Side.Before;
24
+ return Side.Before;
30
25
  }
31
26
  function maxSide(sideA, sideB) {
32
- if (sideA === intervalCollection_1.Side.Before && sideB === intervalCollection_1.Side.Before) {
33
- return intervalCollection_1.Side.Before;
27
+ if (sideA === Side.Before && sideB === Side.Before) {
28
+ return Side.Before;
34
29
  }
35
- return intervalCollection_1.Side.After;
30
+ return Side.After;
36
31
  }
37
32
  /**
38
33
  * Interval implementation whose ends are associated with positions in a mutatable sequence.
@@ -62,12 +57,12 @@ function maxSide(sideA, sideB) {
62
57
  * special endpoint segments.
63
58
  * @alpha
64
59
  */
65
- class SequenceInterval {
60
+ export class SequenceInterval {
66
61
  /***/
67
62
  get stickiness() {
68
63
  const startSegment = this.start.getSegment();
69
64
  const endSegment = this.end.getSegment();
70
- return (0, intervalCollection_1.computeStickinessFromSide)(startSegment?.endpointType, this.startSide, endSegment?.endpointType, this.endSide);
65
+ return computeStickinessFromSide(startSegment?.endpointType, this.startSide, endSegment?.endpointType, this.endSide);
71
66
  }
72
67
  constructor(client,
73
68
  /**
@@ -79,14 +74,14 @@ class SequenceInterval {
79
74
  * End endpoint of this interval.
80
75
  * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.
81
76
  */
82
- end, intervalType, props, startSide = intervalCollection_1.Side.Before, endSide = intervalCollection_1.Side.Before) {
77
+ end, intervalType, props, startSide = Side.Before, endSide = Side.Before) {
83
78
  this.client = client;
84
79
  this.start = start;
85
80
  this.end = end;
86
81
  this.intervalType = intervalType;
87
82
  this.startSide = startSide;
88
83
  this.endSide = endSide;
89
- this.propertyManager = new merge_tree_1.PropertiesManager();
84
+ this.propertyManager = new PropertiesManager();
90
85
  this.properties = {};
91
86
  if (props) {
92
87
  this.addProperties(props);
@@ -124,7 +119,7 @@ class SequenceInterval {
124
119
  serialize() {
125
120
  const startPosition = this.client.localReferencePositionToPosition(this.start);
126
121
  const endPosition = this.client.localReferencePositionToPosition(this.end);
127
- const { startSide, endSide } = (0, intervalCollection_1.sidesFromStickiness)(this.stickiness);
122
+ const { startSide, endSide } = sidesFromStickiness(this.stickiness);
128
123
  const serializedInterval = {
129
124
  end: endPosition,
130
125
  intervalType: this.intervalType,
@@ -175,7 +170,7 @@ class SequenceInterval {
175
170
  * {@inheritDoc IInterval.compareStart}
176
171
  */
177
172
  compareStart(b) {
178
- const dist = (0, merge_tree_1.compareReferencePositions)(this.start, b.start);
173
+ const dist = compareReferencePositions(this.start, b.start);
179
174
  if (dist === 0) {
180
175
  return compareSides(this.startSide, b.startSide);
181
176
  }
@@ -185,7 +180,7 @@ class SequenceInterval {
185
180
  * {@inheritDoc IInterval.compareEnd}
186
181
  */
187
182
  compareEnd(b) {
188
- const dist = (0, merge_tree_1.compareReferencePositions)(this.end, b.end);
183
+ const dist = compareReferencePositions(this.end, b.end);
189
184
  if (dist === 0) {
190
185
  return compareSides(b.endSide, this.endSide);
191
186
  }
@@ -195,8 +190,8 @@ class SequenceInterval {
195
190
  * {@inheritDoc IInterval.overlaps}
196
191
  */
197
192
  overlaps(b) {
198
- const result = (0, merge_tree_1.compareReferencePositions)(this.start, b.end) <= 0 &&
199
- (0, merge_tree_1.compareReferencePositions)(this.end, b.start) >= 0;
193
+ const result = compareReferencePositions(this.start, b.end) <= 0 &&
194
+ compareReferencePositions(this.end, b.start) >= 0;
200
195
  return result;
201
196
  }
202
197
  /**
@@ -204,15 +199,15 @@ class SequenceInterval {
204
199
  */
205
200
  getIntervalId() {
206
201
  const id = this.properties?.[reservedIntervalIdKey];
207
- (0, core_utils_1.assert)(id !== undefined, 0x5e2 /* interval ID should not be undefined */);
202
+ assert(id !== undefined, 0x5e2 /* interval ID should not be undefined */);
208
203
  return `${id}`;
209
204
  }
210
205
  /**
211
206
  * {@inheritDoc IInterval.union}
212
207
  */
213
208
  union(b) {
214
- const newStart = (0, merge_tree_1.minReferencePosition)(this.start, b.start);
215
- const newEnd = (0, merge_tree_1.maxReferencePosition)(this.end, b.end);
209
+ const newStart = minReferencePosition(this.start, b.start);
210
+ const newEnd = maxReferencePosition(this.end, b.end);
216
211
  let startSide;
217
212
  if (this.start === b.start) {
218
213
  startSide = minSide(this.startSide, b.startSide);
@@ -248,26 +243,26 @@ class SequenceInterval {
248
243
  * {@inheritDoc IInterval.modify}
249
244
  */
250
245
  modify(label, start, end, op, localSeq, useNewSlidingBehavior = false) {
251
- const { startSide, endSide, startPos, endPos } = (0, intervalCollection_1.endpointPosAndSide)(start, end);
252
- const stickiness = (0, intervalCollection_1.computeStickinessFromSide)(startPos ?? this.start.getSegment()?.endpointType, startSide ?? this.startSide, endPos ?? this.end.getSegment()?.endpointType, endSide ?? this.endSide);
246
+ const { startSide, endSide, startPos, endPos } = endpointPosAndSide(start, end);
247
+ const stickiness = computeStickinessFromSide(startPos ?? this.start.getSegment()?.endpointType, startSide ?? this.startSide, endPos ?? this.end.getSegment()?.endpointType, endSide ?? this.endSide);
253
248
  const getRefType = (baseType) => {
254
249
  let refType = baseType;
255
250
  if (op === undefined) {
256
- refType &= ~merge_tree_1.ReferenceType.SlideOnRemove;
257
- refType |= merge_tree_1.ReferenceType.StayOnRemove;
251
+ refType &= ~ReferenceType.SlideOnRemove;
252
+ refType |= ReferenceType.StayOnRemove;
258
253
  }
259
254
  return refType;
260
255
  };
261
256
  let startRef = this.start;
262
257
  if (startPos !== undefined) {
263
- startRef = createPositionReference(this.client, startPos, getRefType(this.start.refType), op, undefined, localSeq, (0, intervalUtils_1.startReferenceSlidingPreference)(stickiness), (0, intervalUtils_1.startReferenceSlidingPreference)(stickiness) === merge_tree_1.SlidingPreference.BACKWARD, useNewSlidingBehavior);
258
+ startRef = createPositionReference(this.client, startPos, getRefType(this.start.refType), op, undefined, localSeq, startReferenceSlidingPreference(stickiness), startReferenceSlidingPreference(stickiness) === SlidingPreference.BACKWARD, useNewSlidingBehavior);
264
259
  if (this.start.properties) {
265
260
  startRef.addProperties(this.start.properties);
266
261
  }
267
262
  }
268
263
  let endRef = this.end;
269
264
  if (endPos !== undefined) {
270
- endRef = createPositionReference(this.client, endPos, getRefType(this.end.refType), op, undefined, localSeq, (0, intervalUtils_1.endReferenceSlidingPreference)(stickiness), (0, intervalUtils_1.endReferenceSlidingPreference)(stickiness) === merge_tree_1.SlidingPreference.FORWARD, useNewSlidingBehavior);
265
+ endRef = createPositionReference(this.client, endPos, getRefType(this.end.refType), op, undefined, localSeq, endReferenceSlidingPreference(stickiness), endReferenceSlidingPreference(stickiness) === SlidingPreference.FORWARD, useNewSlidingBehavior);
271
266
  if (this.end.properties) {
272
267
  endRef.addProperties(this.end.properties);
273
268
  }
@@ -281,15 +276,14 @@ class SequenceInterval {
281
276
  }
282
277
  initializeProperties() {
283
278
  if (!this.propertyManager) {
284
- this.propertyManager = new merge_tree_1.PropertiesManager();
279
+ this.propertyManager = new PropertiesManager();
285
280
  }
286
281
  if (!this.properties) {
287
- this.properties = (0, merge_tree_1.createMap)();
282
+ this.properties = createMap();
288
283
  }
289
284
  }
290
285
  }
291
- exports.SequenceInterval = SequenceInterval;
292
- function createPositionReferenceFromSegoff(client, segoff, refType, op, localSeq, fromSnapshot, slidingPreference, canSlideToEndpoint) {
286
+ export function createPositionReferenceFromSegoff(client, segoff, refType, op, localSeq, fromSnapshot, slidingPreference, canSlideToEndpoint) {
293
287
  if (segoff === "start" || segoff === "end") {
294
288
  return client.createLocalReferencePosition(segoff, undefined, refType, undefined, slidingPreference, canSlideToEndpoint);
295
289
  }
@@ -305,16 +299,15 @@ function createPositionReferenceFromSegoff(client, segoff, refType, op, localSeq
305
299
  if (!op &&
306
300
  !localSeq &&
307
301
  !fromSnapshot &&
308
- !(0, merge_tree_1.refTypeIncludesFlag)(refType, merge_tree_1.ReferenceType.Transient)) {
309
- throw new telemetry_utils_1.UsageError("Non-transient references need segment");
302
+ !refTypeIncludesFlag(refType, ReferenceType.Transient)) {
303
+ throw new UsageError("Non-transient references need segment");
310
304
  }
311
- return (0, merge_tree_1.createDetachedLocalReferencePosition)(refType);
305
+ return createDetachedLocalReferencePosition(refType);
312
306
  }
313
- exports.createPositionReferenceFromSegoff = createPositionReferenceFromSegoff;
314
307
  function createPositionReference(client, pos, refType, op, fromSnapshot, localSeq, slidingPreference, exclusive = false, useNewSlidingBehavior = false) {
315
308
  let segoff;
316
309
  if (op) {
317
- (0, core_utils_1.assert)((refType & merge_tree_1.ReferenceType.SlideOnRemove) !== 0, 0x2f5 /* op create references must be SlideOnRemove */);
310
+ assert((refType & ReferenceType.SlideOnRemove) !== 0, 0x2f5 /* op create references must be SlideOnRemove */);
318
311
  if (pos === "start" || pos === "end") {
319
312
  segoff = pos;
320
313
  }
@@ -323,11 +316,11 @@ function createPositionReference(client, pos, refType, op, fromSnapshot, localSe
323
316
  referenceSequenceNumber: op.referenceSequenceNumber,
324
317
  clientId: op.clientId,
325
318
  });
326
- segoff = (0, merge_tree_1.getSlideToSegoff)(segoff, undefined, useNewSlidingBehavior);
319
+ segoff = getSlideToSegoff(segoff, undefined, useNewSlidingBehavior);
327
320
  }
328
321
  }
329
322
  else {
330
- (0, core_utils_1.assert)((refType & merge_tree_1.ReferenceType.SlideOnRemove) === 0 || !!fromSnapshot, 0x2f6 /* SlideOnRemove references must be op created */);
323
+ assert((refType & ReferenceType.SlideOnRemove) === 0 || !!fromSnapshot, 0x2f6 /* SlideOnRemove references must be op created */);
331
324
  segoff =
332
325
  pos === "start" || pos === "end"
333
326
  ? pos
@@ -335,52 +328,51 @@ function createPositionReference(client, pos, refType, op, fromSnapshot, localSe
335
328
  }
336
329
  return createPositionReferenceFromSegoff(client, segoff, refType, op, localSeq, fromSnapshot, slidingPreference, exclusive);
337
330
  }
338
- function createSequenceInterval(label, start, end, client, intervalType, op, fromSnapshot, useNewSlidingBehavior = false) {
339
- const { startPos, startSide, endPos, endSide } = (0, intervalCollection_1.endpointPosAndSide)(start ?? "start", end ?? "end");
340
- (0, core_utils_1.assert)(startPos !== undefined &&
331
+ export function createSequenceInterval(label, start, end, client, intervalType, op, fromSnapshot, useNewSlidingBehavior = false) {
332
+ const { startPos, startSide, endPos, endSide } = endpointPosAndSide(start ?? "start", end ?? "end");
333
+ assert(startPos !== undefined &&
341
334
  endPos !== undefined &&
342
335
  startSide !== undefined &&
343
336
  endSide !== undefined, 0x794 /* start and end cannot be undefined because they were not passed in as undefined */);
344
- const stickiness = (0, intervalCollection_1.computeStickinessFromSide)(startPos, startSide, endPos, endSide);
345
- let beginRefType = merge_tree_1.ReferenceType.RangeBegin;
346
- let endRefType = merge_tree_1.ReferenceType.RangeEnd;
347
- if (intervalType === intervalUtils_1.IntervalType.Transient) {
348
- beginRefType = merge_tree_1.ReferenceType.Transient;
349
- endRefType = merge_tree_1.ReferenceType.Transient;
337
+ const stickiness = computeStickinessFromSide(startPos, startSide, endPos, endSide);
338
+ let beginRefType = ReferenceType.RangeBegin;
339
+ let endRefType = ReferenceType.RangeEnd;
340
+ if (intervalType === IntervalType.Transient) {
341
+ beginRefType = ReferenceType.Transient;
342
+ endRefType = ReferenceType.Transient;
350
343
  }
351
344
  else {
352
- if (intervalType === intervalUtils_1.IntervalType.Nest) {
353
- beginRefType = merge_tree_1.ReferenceType.NestBegin;
354
- endRefType = merge_tree_1.ReferenceType.NestEnd;
345
+ if (intervalType === IntervalType.Nest) {
346
+ beginRefType = ReferenceType.NestBegin;
347
+ endRefType = ReferenceType.NestEnd;
355
348
  }
356
349
  // All non-transient interval references must eventually be SlideOnRemove
357
350
  // To ensure eventual consistency, they must start as StayOnRemove when
358
351
  // pending (created locally and creation op is not acked)
359
352
  if (op ?? fromSnapshot) {
360
- beginRefType |= merge_tree_1.ReferenceType.SlideOnRemove;
361
- endRefType |= merge_tree_1.ReferenceType.SlideOnRemove;
353
+ beginRefType |= ReferenceType.SlideOnRemove;
354
+ endRefType |= ReferenceType.SlideOnRemove;
362
355
  }
363
356
  else {
364
- beginRefType |= merge_tree_1.ReferenceType.StayOnRemove;
365
- endRefType |= merge_tree_1.ReferenceType.StayOnRemove;
357
+ beginRefType |= ReferenceType.StayOnRemove;
358
+ endRefType |= ReferenceType.StayOnRemove;
366
359
  }
367
360
  }
368
- const startLref = createPositionReference(client, startPos, beginRefType, op, fromSnapshot, undefined, (0, intervalUtils_1.startReferenceSlidingPreference)(stickiness), (0, intervalUtils_1.startReferenceSlidingPreference)(stickiness) === merge_tree_1.SlidingPreference.BACKWARD, useNewSlidingBehavior);
369
- const endLref = createPositionReference(client, endPos, endRefType, op, fromSnapshot, undefined, (0, intervalUtils_1.endReferenceSlidingPreference)(stickiness), (0, intervalUtils_1.endReferenceSlidingPreference)(stickiness) === merge_tree_1.SlidingPreference.FORWARD, useNewSlidingBehavior);
361
+ const startLref = createPositionReference(client, startPos, beginRefType, op, fromSnapshot, undefined, startReferenceSlidingPreference(stickiness), startReferenceSlidingPreference(stickiness) === SlidingPreference.BACKWARD, useNewSlidingBehavior);
362
+ const endLref = createPositionReference(client, endPos, endRefType, op, fromSnapshot, undefined, endReferenceSlidingPreference(stickiness), endReferenceSlidingPreference(stickiness) === SlidingPreference.FORWARD, useNewSlidingBehavior);
370
363
  const rangeProp = {
371
- [merge_tree_1.reservedRangeLabelsKey]: [label],
364
+ [reservedRangeLabelsKey]: [label],
372
365
  };
373
366
  startLref.addProperties(rangeProp);
374
367
  endLref.addProperties(rangeProp);
375
368
  const ival = new SequenceInterval(client, startLref, endLref, intervalType, rangeProp, startSide, endSide);
376
369
  return ival;
377
370
  }
378
- exports.createSequenceInterval = createSequenceInterval;
379
371
  /**
380
372
  * @deprecated The methods within have substitutions
381
373
  * @internal
382
374
  */
383
- exports.sequenceIntervalHelpers = {
375
+ export const sequenceIntervalHelpers = {
384
376
  create: createSequenceInterval,
385
377
  };
386
- //# sourceMappingURL=sequenceInterval.js.map
378
+ //# sourceMappingURL=sequenceInterval.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequenceInterval.mjs","sourceRoot":"","sources":["../../src/intervals/sequenceInterval.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/* eslint-disable no-bitwise */\n/* eslint-disable import/no-deprecated */\n\nimport {\n\tClient,\n\tICombiningOp,\n\tISegment,\n\tLocalReferencePosition,\n\tPropertiesManager,\n\tPropertySet,\n\tReferenceType,\n\tSlidingPreference,\n\tcompareReferencePositions,\n\tcreateDetachedLocalReferencePosition,\n\tcreateMap,\n\tgetSlideToSegoff,\n\tmaxReferencePosition,\n\tminReferencePosition,\n\trefTypeIncludesFlag,\n\treservedRangeLabelsKey,\n} from \"@fluidframework/merge-tree\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { UsageError } from \"@fluidframework/telemetry-utils\";\nimport {\n\tSequencePlace,\n\tSide,\n\tcomputeStickinessFromSide,\n\tendpointPosAndSide,\n\tsidesFromStickiness,\n} from \"../intervalCollection\";\nimport {\n\tIIntervalHelpers,\n\tISerializableInterval,\n\tISerializedInterval,\n\tIntervalStickiness,\n\tIntervalType,\n\tendReferenceSlidingPreference,\n\tstartReferenceSlidingPreference,\n} from \"./intervalUtils\";\n\nconst reservedIntervalIdKey = \"intervalId\";\n\nfunction compareSides(sideA: Side, sideB: Side): number {\n\tif (sideA === sideB) {\n\t\treturn 0;\n\t}\n\n\tif (sideA === Side.Before) {\n\t\treturn 1;\n\t}\n\n\treturn -1;\n}\n\nfunction minSide(sideA: Side, sideB: Side): Side {\n\tif (sideA === Side.After && sideB === Side.After) {\n\t\treturn Side.After;\n\t}\n\n\treturn Side.Before;\n}\n\nfunction maxSide(sideA: Side, sideB: Side): Side {\n\tif (sideA === Side.Before && sideB === Side.Before) {\n\t\treturn Side.Before;\n\t}\n\n\treturn Side.After;\n}\n\n/**\n * Interval implementation whose ends are associated with positions in a mutatable sequence.\n * As such, when content is inserted into the middle of the interval, the interval expands to\n * include that content.\n *\n * @remarks The endpoints' positions should be treated exclusively to get\n * reasonable behavior. E.g., an interval referring to \"hello\" in \"hello world\"\n * should have a start position of 0 and an end position of 5.\n *\n * To see why, consider what happens if \"llo wor\" is removed from the string to make \"held\".\n * The interval's startpoint remains on the \"h\" (it isn't altered), but the interval's endpoint\n * slides forward to the next unremoved position, which is the \"l\" in \"held\".\n * Users would generally expect the interval to now refer to \"he\" (as it is the subset of content\n * remaining after the removal), hence the \"l\" should be excluded.\n * If the interval endpoint was treated inclusively, the interval would now refer to \"hel\", which\n * is undesirable.\n *\n * Since the endpoints of an interval are treated exclusively but cannot be greater\n * than or equal to the length of the associated sequence, there exist special\n * endpoint segments, \"start\" and \"end\", which represent the position immediately\n * before or immediately after the string respectively.\n *\n * If a `SequenceInterval` is created on a sequence with the\n * `mergeTreeReferencesCanSlideToEndpoint` feature flag set to true, the endpoints\n * of the interval that are exclusive will have the ability to slide to these\n * special endpoint segments.\n * @alpha\n */\nexport class SequenceInterval implements ISerializableInterval {\n\t/**\n\t * {@inheritDoc ISerializableInterval.properties}\n\t */\n\tpublic properties: PropertySet;\n\t/**\n\t * {@inheritDoc ISerializableInterval.propertyManager}\n\t */\n\tpublic propertyManager: PropertiesManager;\n\n\t/***/\n\tpublic get stickiness(): IntervalStickiness {\n\t\tconst startSegment = this.start.getSegment();\n\t\tconst endSegment = this.end.getSegment();\n\t\treturn computeStickinessFromSide(\n\t\t\tstartSegment?.endpointType,\n\t\t\tthis.startSide,\n\t\t\tendSegment?.endpointType,\n\t\t\tthis.endSide,\n\t\t);\n\t}\n\n\tconstructor(\n\t\tprivate readonly client: Client,\n\t\t/**\n\t\t * Start endpoint of this interval.\n\t\t * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.\n\t\t */\n\t\tpublic start: LocalReferencePosition,\n\t\t/**\n\t\t * End endpoint of this interval.\n\t\t * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.\n\t\t */\n\t\tpublic end: LocalReferencePosition,\n\t\tpublic intervalType: IntervalType,\n\t\tprops?: PropertySet,\n\t\tpublic readonly startSide: Side = Side.Before,\n\t\tpublic readonly endSide: Side = Side.Before,\n\t) {\n\t\tthis.propertyManager = new PropertiesManager();\n\t\tthis.properties = {};\n\n\t\tif (props) {\n\t\t\tthis.addProperties(props);\n\t\t}\n\t}\n\n\tprivate callbacks?: Record<\"beforePositionChange\" | \"afterPositionChange\", () => void>;\n\n\t/**\n\t * Subscribes to position change events on this interval if there are no current listeners.\n\t */\n\tpublic addPositionChangeListeners(\n\t\tbeforePositionChange: () => void,\n\t\tafterPositionChange: () => void,\n\t): void {\n\t\tif (this.callbacks === undefined) {\n\t\t\tthis.callbacks = {\n\t\t\t\tbeforePositionChange,\n\t\t\t\tafterPositionChange,\n\t\t\t};\n\n\t\t\tconst startCbs = (this.start.callbacks ??= {});\n\t\t\tconst endCbs = (this.end.callbacks ??= {});\n\t\t\tstartCbs.beforeSlide = endCbs.beforeSlide = beforePositionChange;\n\t\t\tstartCbs.afterSlide = endCbs.afterSlide = afterPositionChange;\n\t\t}\n\t}\n\n\t/**\n\t * Removes the currently subscribed position change listeners.\n\t */\n\tpublic removePositionChangeListeners(): void {\n\t\tif (this.callbacks) {\n\t\t\tthis.callbacks = undefined;\n\t\t\tthis.start.callbacks = undefined;\n\t\t\tthis.end.callbacks = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.serialize}\n\t */\n\tpublic serialize(): ISerializedInterval {\n\t\tconst startPosition = this.client.localReferencePositionToPosition(this.start);\n\t\tconst endPosition = this.client.localReferencePositionToPosition(this.end);\n\t\tconst { startSide, endSide } = sidesFromStickiness(this.stickiness);\n\t\tconst serializedInterval: ISerializedInterval = {\n\t\t\tend: endPosition,\n\t\t\tintervalType: this.intervalType,\n\t\t\tsequenceNumber: this.client.getCurrentSeq(),\n\t\t\tstart: startPosition,\n\t\t\tstickiness: this.stickiness,\n\t\t\tstartSide,\n\t\t\tendSide,\n\t\t};\n\n\t\tif (this.properties) {\n\t\t\tserializedInterval.properties = this.properties;\n\t\t}\n\n\t\treturn serializedInterval;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.clone}\n\t */\n\tpublic clone() {\n\t\treturn new SequenceInterval(\n\t\t\tthis.client,\n\t\t\tthis.start,\n\t\t\tthis.end,\n\t\t\tthis.intervalType,\n\t\t\tthis.properties,\n\t\t\tthis.startSide,\n\t\t\tthis.endSide,\n\t\t);\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compare}\n\t */\n\tpublic compare(b: SequenceInterval) {\n\t\tconst startResult = this.compareStart(b);\n\t\tif (startResult === 0) {\n\t\t\tconst endResult = this.compareEnd(b);\n\t\t\tif (endResult === 0) {\n\t\t\t\tconst thisId = this.getIntervalId();\n\t\t\t\tif (thisId) {\n\t\t\t\t\tconst bId = b.getIntervalId();\n\t\t\t\t\tif (bId) {\n\t\t\t\t\t\treturn thisId > bId ? 1 : thisId < bId ? -1 : 0;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t} else {\n\t\t\t\treturn endResult;\n\t\t\t}\n\t\t} else {\n\t\t\treturn startResult;\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compareStart}\n\t */\n\tpublic compareStart(b: SequenceInterval) {\n\t\tconst dist = compareReferencePositions(this.start, b.start);\n\n\t\tif (dist === 0) {\n\t\t\treturn compareSides(this.startSide, b.startSide);\n\t\t}\n\n\t\treturn dist;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compareEnd}\n\t */\n\tpublic compareEnd(b: SequenceInterval): number {\n\t\tconst dist = compareReferencePositions(this.end, b.end);\n\n\t\tif (dist === 0) {\n\t\t\treturn compareSides(b.endSide, this.endSide);\n\t\t}\n\n\t\treturn dist;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.overlaps}\n\t */\n\tpublic overlaps(b: SequenceInterval) {\n\t\tconst result =\n\t\t\tcompareReferencePositions(this.start, b.end) <= 0 &&\n\t\t\tcompareReferencePositions(this.end, b.start) >= 0;\n\t\treturn result;\n\t}\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.getIntervalId}\n\t */\n\tpublic getIntervalId(): string {\n\t\tconst id = this.properties?.[reservedIntervalIdKey];\n\t\tassert(id !== undefined, 0x5e2 /* interval ID should not be undefined */);\n\t\treturn `${id}`;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.union}\n\t */\n\tpublic union(b: SequenceInterval) {\n\t\tconst newStart = minReferencePosition(this.start, b.start);\n\t\tconst newEnd = maxReferencePosition(this.end, b.end);\n\n\t\tlet startSide: Side;\n\n\t\tif (this.start === b.start) {\n\t\t\tstartSide = minSide(this.startSide, b.startSide);\n\t\t} else {\n\t\t\tstartSide = this.start === newStart ? this.startSide : b.startSide;\n\t\t}\n\n\t\tlet endSide: Side;\n\n\t\tif (this.end === b.end) {\n\t\t\tendSide = maxSide(this.endSide, b.endSide);\n\t\t} else {\n\t\t\tendSide = this.end === newEnd ? this.endSide : b.endSide;\n\t\t}\n\n\t\treturn new SequenceInterval(\n\t\t\tthis.client,\n\t\t\tnewStart,\n\t\t\tnewEnd,\n\t\t\tthis.intervalType,\n\t\t\tundefined,\n\t\t\tstartSide,\n\t\t\tendSide,\n\t\t);\n\t}\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.addProperties}\n\t */\n\tpublic addProperties(\n\t\tnewProps: PropertySet,\n\t\tcollab: boolean = false,\n\t\tseq?: number,\n\t\top?: ICombiningOp,\n\t): PropertySet | undefined {\n\t\tthis.initializeProperties();\n\t\treturn this.propertyManager.addProperties(this.properties, newProps, op, seq, collab);\n\t}\n\n\t/**\n\t * @returns whether this interval overlaps two numerical positions.\n\t */\n\tpublic overlapsPos(bstart: number, bend: number) {\n\t\tconst startPos = this.client.localReferencePositionToPosition(this.start);\n\t\tconst endPos = this.client.localReferencePositionToPosition(this.end);\n\t\treturn endPos > bstart && startPos < bend;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.modify}\n\t */\n\tpublic modify(\n\t\tlabel: string,\n\t\tstart: SequencePlace | undefined,\n\t\tend: SequencePlace | undefined,\n\t\top?: ISequencedDocumentMessage,\n\t\tlocalSeq?: number,\n\t\tuseNewSlidingBehavior: boolean = false,\n\t) {\n\t\tconst { startSide, endSide, startPos, endPos } = endpointPosAndSide(start, end);\n\t\tconst stickiness = computeStickinessFromSide(\n\t\t\tstartPos ?? this.start.getSegment()?.endpointType,\n\t\t\tstartSide ?? this.startSide,\n\t\t\tendPos ?? this.end.getSegment()?.endpointType,\n\t\t\tendSide ?? this.endSide,\n\t\t);\n\t\tconst getRefType = (baseType: ReferenceType): ReferenceType => {\n\t\t\tlet refType = baseType;\n\t\t\tif (op === undefined) {\n\t\t\t\trefType &= ~ReferenceType.SlideOnRemove;\n\t\t\t\trefType |= ReferenceType.StayOnRemove;\n\t\t\t}\n\t\t\treturn refType;\n\t\t};\n\n\t\tlet startRef = this.start;\n\t\tif (startPos !== undefined) {\n\t\t\tstartRef = createPositionReference(\n\t\t\t\tthis.client,\n\t\t\t\tstartPos,\n\t\t\t\tgetRefType(this.start.refType),\n\t\t\t\top,\n\t\t\t\tundefined,\n\t\t\t\tlocalSeq,\n\t\t\t\tstartReferenceSlidingPreference(stickiness),\n\t\t\t\tstartReferenceSlidingPreference(stickiness) === SlidingPreference.BACKWARD,\n\t\t\t\tuseNewSlidingBehavior,\n\t\t\t);\n\t\t\tif (this.start.properties) {\n\t\t\t\tstartRef.addProperties(this.start.properties);\n\t\t\t}\n\t\t}\n\n\t\tlet endRef = this.end;\n\t\tif (endPos !== undefined) {\n\t\t\tendRef = createPositionReference(\n\t\t\t\tthis.client,\n\t\t\t\tendPos,\n\t\t\t\tgetRefType(this.end.refType),\n\t\t\t\top,\n\t\t\t\tundefined,\n\t\t\t\tlocalSeq,\n\t\t\t\tendReferenceSlidingPreference(stickiness),\n\t\t\t\tendReferenceSlidingPreference(stickiness) === SlidingPreference.FORWARD,\n\t\t\t\tuseNewSlidingBehavior,\n\t\t\t);\n\t\t\tif (this.end.properties) {\n\t\t\t\tendRef.addProperties(this.end.properties);\n\t\t\t}\n\t\t}\n\n\t\tconst newInterval = new SequenceInterval(\n\t\t\tthis.client,\n\t\t\tstartRef,\n\t\t\tendRef,\n\t\t\tthis.intervalType,\n\t\t\tundefined,\n\t\t\tstartSide ?? this.startSide,\n\t\t\tendSide ?? this.endSide,\n\t\t);\n\t\tif (this.properties) {\n\t\t\tnewInterval.initializeProperties();\n\t\t\tthis.propertyManager.copyTo(\n\t\t\t\tthis.properties,\n\t\t\t\tnewInterval.properties,\n\t\t\t\tnewInterval.propertyManager,\n\t\t\t);\n\t\t}\n\t\treturn newInterval;\n\t}\n\n\tprivate initializeProperties(): void {\n\t\tif (!this.propertyManager) {\n\t\t\tthis.propertyManager = new PropertiesManager();\n\t\t}\n\t\tif (!this.properties) {\n\t\t\tthis.properties = createMap<any>();\n\t\t}\n\t}\n}\n\nexport function createPositionReferenceFromSegoff(\n\tclient: Client,\n\tsegoff: { segment: ISegment | undefined; offset: number | undefined } | \"start\" | \"end\",\n\trefType: ReferenceType,\n\top?: ISequencedDocumentMessage,\n\tlocalSeq?: number,\n\tfromSnapshot?: boolean,\n\tslidingPreference?: SlidingPreference,\n\tcanSlideToEndpoint?: boolean,\n): LocalReferencePosition {\n\tif (segoff === \"start\" || segoff === \"end\") {\n\t\treturn client.createLocalReferencePosition(\n\t\t\tsegoff,\n\t\t\tundefined,\n\t\t\trefType,\n\t\t\tundefined,\n\t\t\tslidingPreference,\n\t\t\tcanSlideToEndpoint,\n\t\t);\n\t}\n\n\tif (segoff.segment) {\n\t\tconst ref = client.createLocalReferencePosition(\n\t\t\tsegoff.segment,\n\t\t\tsegoff.offset,\n\t\t\trefType,\n\t\t\tundefined,\n\t\t\tslidingPreference,\n\t\t\tcanSlideToEndpoint,\n\t\t);\n\t\treturn ref;\n\t}\n\n\t// Creating references on detached segments is allowed for:\n\t// - Transient segments\n\t// - References coming from a remote client (location may have been concurrently removed)\n\t// - References being rebased to a new sequence number\n\t// (segment they originally referred to may have been removed with no suitable replacement)\n\tif (\n\t\t!op &&\n\t\t!localSeq &&\n\t\t!fromSnapshot &&\n\t\t!refTypeIncludesFlag(refType, ReferenceType.Transient)\n\t) {\n\t\tthrow new UsageError(\"Non-transient references need segment\");\n\t}\n\n\treturn createDetachedLocalReferencePosition(refType);\n}\n\nfunction createPositionReference(\n\tclient: Client,\n\tpos: number | \"start\" | \"end\",\n\trefType: ReferenceType,\n\top?: ISequencedDocumentMessage,\n\tfromSnapshot?: boolean,\n\tlocalSeq?: number,\n\tslidingPreference?: SlidingPreference,\n\texclusive: boolean = false,\n\tuseNewSlidingBehavior: boolean = false,\n): LocalReferencePosition {\n\tlet segoff;\n\n\tif (op) {\n\t\tassert(\n\t\t\t(refType & ReferenceType.SlideOnRemove) !== 0,\n\t\t\t0x2f5 /* op create references must be SlideOnRemove */,\n\t\t);\n\t\tif (pos === \"start\" || pos === \"end\") {\n\t\t\tsegoff = pos;\n\t\t} else {\n\t\t\tsegoff = client.getContainingSegment(pos, {\n\t\t\t\treferenceSequenceNumber: op.referenceSequenceNumber,\n\t\t\t\tclientId: op.clientId,\n\t\t\t});\n\t\t\tsegoff = getSlideToSegoff(segoff, undefined, useNewSlidingBehavior);\n\t\t}\n\t} else {\n\t\tassert(\n\t\t\t(refType & ReferenceType.SlideOnRemove) === 0 || !!fromSnapshot,\n\t\t\t0x2f6 /* SlideOnRemove references must be op created */,\n\t\t);\n\t\tsegoff =\n\t\t\tpos === \"start\" || pos === \"end\"\n\t\t\t\t? pos\n\t\t\t\t: client.getContainingSegment(pos, undefined, localSeq);\n\t}\n\n\treturn createPositionReferenceFromSegoff(\n\t\tclient,\n\t\tsegoff,\n\t\trefType,\n\t\top,\n\t\tlocalSeq,\n\t\tfromSnapshot,\n\t\tslidingPreference,\n\t\texclusive,\n\t);\n}\n\nexport function createSequenceInterval(\n\tlabel: string,\n\tstart: SequencePlace | undefined,\n\tend: SequencePlace | undefined,\n\tclient: Client,\n\tintervalType: IntervalType,\n\top?: ISequencedDocumentMessage,\n\tfromSnapshot?: boolean,\n\tuseNewSlidingBehavior: boolean = false,\n): SequenceInterval {\n\tconst { startPos, startSide, endPos, endSide } = endpointPosAndSide(\n\t\tstart ?? \"start\",\n\t\tend ?? \"end\",\n\t);\n\tassert(\n\t\tstartPos !== undefined &&\n\t\t\tendPos !== undefined &&\n\t\t\tstartSide !== undefined &&\n\t\t\tendSide !== undefined,\n\t\t0x794 /* start and end cannot be undefined because they were not passed in as undefined */,\n\t);\n\tconst stickiness = computeStickinessFromSide(startPos, startSide, endPos, endSide);\n\tlet beginRefType = ReferenceType.RangeBegin;\n\tlet endRefType = ReferenceType.RangeEnd;\n\tif (intervalType === IntervalType.Transient) {\n\t\tbeginRefType = ReferenceType.Transient;\n\t\tendRefType = ReferenceType.Transient;\n\t} else {\n\t\tif (intervalType === IntervalType.Nest) {\n\t\t\tbeginRefType = ReferenceType.NestBegin;\n\t\t\tendRefType = ReferenceType.NestEnd;\n\t\t}\n\t\t// All non-transient interval references must eventually be SlideOnRemove\n\t\t// To ensure eventual consistency, they must start as StayOnRemove when\n\t\t// pending (created locally and creation op is not acked)\n\t\tif (op ?? fromSnapshot) {\n\t\t\tbeginRefType |= ReferenceType.SlideOnRemove;\n\t\t\tendRefType |= ReferenceType.SlideOnRemove;\n\t\t} else {\n\t\t\tbeginRefType |= ReferenceType.StayOnRemove;\n\t\t\tendRefType |= ReferenceType.StayOnRemove;\n\t\t}\n\t}\n\n\tconst startLref = createPositionReference(\n\t\tclient,\n\t\tstartPos,\n\t\tbeginRefType,\n\t\top,\n\t\tfromSnapshot,\n\t\tundefined,\n\t\tstartReferenceSlidingPreference(stickiness),\n\t\tstartReferenceSlidingPreference(stickiness) === SlidingPreference.BACKWARD,\n\t\tuseNewSlidingBehavior,\n\t);\n\n\tconst endLref = createPositionReference(\n\t\tclient,\n\t\tendPos,\n\t\tendRefType,\n\t\top,\n\t\tfromSnapshot,\n\t\tundefined,\n\t\tendReferenceSlidingPreference(stickiness),\n\t\tendReferenceSlidingPreference(stickiness) === SlidingPreference.FORWARD,\n\t\tuseNewSlidingBehavior,\n\t);\n\n\tconst rangeProp = {\n\t\t[reservedRangeLabelsKey]: [label],\n\t};\n\tstartLref.addProperties(rangeProp);\n\tendLref.addProperties(rangeProp);\n\n\tconst ival = new SequenceInterval(\n\t\tclient,\n\t\tstartLref,\n\t\tendLref,\n\t\tintervalType,\n\t\trangeProp,\n\t\tstartSide,\n\t\tendSide,\n\t);\n\treturn ival;\n}\n\n/**\n * @deprecated The methods within have substitutions\n * @internal\n */\nexport const sequenceIntervalHelpers: IIntervalHelpers<SequenceInterval> = {\n\tcreate: createSequenceInterval,\n};\n"]}
@@ -4,8 +4,8 @@
4
4
  */
5
5
  import { IFluidHandle } from "@fluidframework/core-interfaces";
6
6
  import { IFluidSerializer } from "@fluidframework/shared-object-base";
7
- import { ISerializableValue, ISerializedValue, IValueOperation, IValueType } from "./defaultMapInterfaces";
8
- import { IntervalOpType } from "./intervals";
7
+ import { ISerializableValue, ISerializedValue, IValueOperation, IValueType } from "./defaultMapInterfaces.mjs";
8
+ import { IntervalOpType } from "./intervals/index.mjs";
9
9
  /**
10
10
  * A local value to be stored in a container type DDS.
11
11
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localValues.d.ts","sourceRoot":"","sources":["../src/localValues.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAE,YAAY,EAAE,MAAM,iCAAiC;OACvD,EAAE,gBAAgB,EAAoB,MAAM,oCAAoC;OAChF,EACN,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV;OACM,EAAE,cAAc,EAAE;AAEzB;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IACnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAElB;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAAC;CACnF;AAED,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,YAAY,GAChB,kBAAkB,CAMpB;AAED;;;;GAIG;AACH,qBAAa,mBAAmB,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;aAO3C,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP3B;;;;OAIG;gBAEc,KAAK,EAAE,CAAC,EACP,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAG1C;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACI,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB;IAUzF;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC;CAQ/D"}
@@ -1,25 +1,21 @@
1
- "use strict";
2
1
  /*!
3
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
3
  * Licensed under the MIT License.
5
4
  */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ValueTypeLocalValue = exports.makeSerializable = void 0;
8
- const shared_object_base_1 = require("@fluidframework/shared-object-base");
9
- function makeSerializable(localValue, serializer, bind) {
5
+ import { serializeHandles } from "@fluidframework/shared-object-base";
6
+ export function makeSerializable(localValue, serializer, bind) {
10
7
  const value = localValue.makeSerialized(serializer, bind);
11
8
  return {
12
9
  type: value.type,
13
10
  value: value.value && JSON.parse(value.value),
14
11
  };
15
12
  }
16
- exports.makeSerializable = makeSerializable;
17
13
  /**
18
14
  * Manages a contained value type.
19
15
  *
20
16
  * @alpha
21
17
  */
22
- class ValueTypeLocalValue {
18
+ export class ValueTypeLocalValue {
23
19
  /**
24
20
  * Create a new ValueTypeLocalValue.
25
21
  * @param value - The instance of the value type stored within
@@ -40,7 +36,7 @@ class ValueTypeLocalValue {
40
36
  */
41
37
  makeSerialized(serializer, bind) {
42
38
  const storedValueType = this.valueType.factory.store(this.value);
43
- const value = (0, shared_object_base_1.serializeHandles)(storedValueType, serializer, bind);
39
+ const value = serializeHandles(storedValueType, serializer, bind);
44
40
  return {
45
41
  type: this.type,
46
42
  value,
@@ -59,5 +55,4 @@ class ValueTypeLocalValue {
59
55
  return handler;
60
56
  }
61
57
  }
62
- exports.ValueTypeLocalValue = ValueTypeLocalValue;
63
- //# sourceMappingURL=localValues.js.map
58
+ //# sourceMappingURL=localValues.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localValues.mjs","sourceRoot":"","sources":["../src/localValues.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAoB,gBAAgB,EAAE,MAAM,oCAAoC;AAgCvF,MAAM,UAAU,gBAAgB,CAC/B,UAAuB,EACvB,UAA4B,EAC5B,IAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;KAC7C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAC/B;;;;OAIG;IACH,YACiB,KAAQ,EACP,SAAwB;QADzB,UAAK,GAAL,KAAK,CAAG;QACP,cAAS,GAAT,SAAS,CAAe;IACvC,CAAC;IAEJ;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,UAA4B,EAAE,IAAkB;QACrE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAElE,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;SACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAsB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACxC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { IFluidSerializer, serializeHandles } from \"@fluidframework/shared-object-base\";\nimport {\n\tISerializableValue,\n\tISerializedValue,\n\tIValueOperation,\n\tIValueType,\n} from \"./defaultMapInterfaces\";\nimport { IntervalOpType } from \"./intervals\";\n\n/**\n * A local value to be stored in a container type DDS.\n */\nexport interface ILocalValue<T = any> {\n\t/**\n\t * Type indicator of the value stored within.\n\t */\n\treadonly type: string;\n\n\t/**\n\t * The in-memory value stored within.\n\t */\n\treadonly value: T;\n\n\t/**\n\t * Retrieve the serialized form of the value stored within.\n\t * @param serializer - Data store runtime's serializer\n\t * @param bind - Container type's handle\n\t * @returns The serialized form of the contained value\n\t */\n\tmakeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedValue;\n}\n\nexport function makeSerializable(\n\tlocalValue: ILocalValue,\n\tserializer: IFluidSerializer,\n\tbind: IFluidHandle,\n): ISerializableValue {\n\tconst value = localValue.makeSerialized(serializer, bind);\n\treturn {\n\t\ttype: value.type,\n\t\tvalue: value.value && JSON.parse(value.value),\n\t};\n}\n\n/**\n * Manages a contained value type.\n *\n * @alpha\n */\nexport class ValueTypeLocalValue<T> implements ILocalValue<T> {\n\t/**\n\t * Create a new ValueTypeLocalValue.\n\t * @param value - The instance of the value type stored within\n\t * @param valueType - The type object of the value type stored within\n\t */\n\tconstructor(\n\t\tpublic readonly value: T,\n\t\tprivate readonly valueType: IValueType<T>,\n\t) {}\n\n\t/**\n\t * {@inheritDoc ILocalValue.\"type\"}\n\t */\n\tpublic get type(): string {\n\t\treturn this.valueType.name;\n\t}\n\n\t/**\n\t * {@inheritDoc ILocalValue.makeSerialized}\n\t */\n\tpublic makeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedValue {\n\t\tconst storedValueType = this.valueType.factory.store(this.value);\n\t\tconst value = serializeHandles(storedValueType, serializer, bind);\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue,\n\t\t};\n\t}\n\n\t/**\n\t * Get the handler for a given op of this value type.\n\t * @param opName - The name of the operation that needs processing\n\t * @returns The object which can process the given op\n\t */\n\tpublic getOpHandler(opName: IntervalOpType): IValueOperation<T> {\n\t\tconst handler = this.valueType.ops.get(opName);\n\t\tif (!handler) {\n\t\t\tthrow new Error(\"Unknown type message\");\n\t\t}\n\n\t\treturn handler;\n\t}\n}\n"]}
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export declare const pkgName = "@fluidframework/sequence";
8
- export declare const pkgVersion = "2.0.0-internal.7.4.0";
8
+ export declare const pkgVersion = "2.0.0-internal.7.4.2";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ *
5
+ * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
+ */
7
+ export const pkgName = "@fluidframework/sequence";
8
+ export const pkgVersion = "2.0.0-internal.7.4.2";
9
+ //# sourceMappingURL=packageVersion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageVersion.mjs","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAClD,MAAM,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/sequence\";\nexport const pkgVersion = \"2.0.0-internal.7.4.2\";\n"]}
@@ -3,9 +3,9 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { LocalReferencePosition, MergeTreeDeltaRevertible, PropertySet } from "@fluidframework/merge-tree";
6
- import { IntervalOpType, SequenceInterval } from "./intervals";
7
- import { SharedString } from "./sharedString";
8
- import { SequenceDeltaEvent } from "./sequenceDeltaEvent";
6
+ import { IntervalOpType, SequenceInterval } from "./intervals/index.mjs";
7
+ import { SharedString } from "./sharedString.mjs";
8
+ import { SequenceDeltaEvent } from "./sequenceDeltaEvent.mjs";
9
9
  /**
10
10
  * Data for undoing edits on SharedStrings and Intervals.
11
11
  * @internal
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revertibles.d.ts","sourceRoot":"","sources":["../src/revertibles.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAMI,EAIN,sBAAsB,EAEtB,wBAAwB,EAExB,WAAW,EAOX,MAAM,4BAA4B;OAE5B,EAAE,cAAc,EAAE,gBAAgB,EAAE;OACpC,EAAE,YAAY,EAAuB;OACrC,EAAuB,kBAAkB,EAAE;AAElD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,GAAG,kBAAkB,CAAC;AAInF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC3B;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,GAAG,EAAE,sBAAsB,CAAC;CAC3B,GACD;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC;IACjC,QAAQ,EAAE,gBAAgB,CAAC;CAC1B,GACD;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,GAAG,EAAE,sBAAsB,CAAC;CAC3B,GACD;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC9C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,EAAE,WAAW,CAAC;CAC3B,GACD;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,eAAe,CAAC;IAC7C,SAAS,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IAEJ,cAAc,EAAE;QACf,UAAU,EAAE,kBAAkB,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KACjB,EAAE,CAAC;IACJ,mBAAmB,EAAE,wBAAwB,CAAC;CAC7C,CAAC;AAaL;;;GAGG;AACH,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,sBAAsB,EAAE,4BAQrC;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAChD,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,sBAAsB,EAAE,4BAqCrC;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAChD,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,gBAAgB,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,sBAAsB,EAAE,4BAwCrC;AAED;;;GAGG;AACH,wBAAgB,0CAA0C,CACzD,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,sBAAsB,EAAE,4BASrC;AA2CD;;;;GAIG;AACH,wBAAgB,oCAAoC,CACnD,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,sBAAsB,EAAE,QAoFrC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC7C,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,sBAAsB,EAAE,QAUrC;AAoRD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC5C,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,sBAAsB,EAAE,QA8BrC"}