@fluidframework/sequence 2.0.0-internal.7.3.0 → 2.0.0-internal.8.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 (222) hide show
  1. package/CHANGELOG.md +168 -0
  2. package/api-extractor-lint.json +13 -0
  3. package/api-extractor.json +8 -3
  4. package/api-report/sequence.api.md +138 -113
  5. package/dist/defaultMap.d.ts +3 -3
  6. package/dist/defaultMap.d.ts.map +1 -1
  7. package/dist/defaultMap.js +7 -2
  8. package/dist/defaultMap.js.map +1 -1
  9. package/dist/defaultMapInterfaces.d.ts +12 -11
  10. package/dist/defaultMapInterfaces.d.ts.map +1 -1
  11. package/dist/defaultMapInterfaces.js.map +1 -1
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +11 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/intervalCollection.d.ts +70 -16
  17. package/dist/intervalCollection.d.ts.map +1 -1
  18. package/dist/intervalCollection.js +50 -45
  19. package/dist/intervalCollection.js.map +1 -1
  20. package/dist/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  21. package/dist/intervalIndex/endpointInRangeIndex.js +1 -1
  22. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  23. package/dist/intervalIndex/endpointIndex.d.ts +2 -2
  24. package/dist/intervalIndex/endpointIndex.js +1 -1
  25. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  26. package/dist/intervalIndex/idIntervalIndex.d.ts +2 -2
  27. package/dist/intervalIndex/idIntervalIndex.js +1 -1
  28. package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
  29. package/dist/intervalIndex/intervalIndex.d.ts +1 -1
  30. package/dist/intervalIndex/intervalIndex.js.map +1 -1
  31. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +2 -2
  32. package/dist/intervalIndex/overlappingIntervalsIndex.js +1 -1
  33. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  34. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +1 -1
  35. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +1 -1
  36. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  37. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -1
  38. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  39. package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  40. package/dist/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  41. package/dist/intervalIndex/startpointInRangeIndex.js +1 -1
  42. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  43. package/dist/intervalTree.d.ts +1 -2
  44. package/dist/intervalTree.d.ts.map +1 -1
  45. package/dist/intervalTree.js +1 -3
  46. package/dist/intervalTree.js.map +1 -1
  47. package/dist/intervals/interval.d.ts +5 -11
  48. package/dist/intervals/interval.d.ts.map +1 -1
  49. package/dist/intervals/interval.js +10 -18
  50. package/dist/intervals/interval.js.map +1 -1
  51. package/dist/intervals/intervalUtils.d.ts +15 -18
  52. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  53. package/dist/intervals/intervalUtils.js +3 -8
  54. package/dist/intervals/intervalUtils.js.map +1 -1
  55. package/dist/intervals/sequenceInterval.d.ts +5 -15
  56. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  57. package/dist/intervals/sequenceInterval.js +12 -28
  58. package/dist/intervals/sequenceInterval.js.map +1 -1
  59. package/dist/localValues.d.ts +2 -1
  60. package/dist/localValues.d.ts.map +1 -1
  61. package/dist/localValues.js.map +1 -1
  62. package/dist/packageVersion.d.ts +1 -1
  63. package/dist/packageVersion.js +1 -1
  64. package/dist/packageVersion.js.map +1 -1
  65. package/dist/revertibles.d.ts +9 -15
  66. package/dist/revertibles.d.ts.map +1 -1
  67. package/dist/revertibles.js +14 -10
  68. package/dist/revertibles.js.map +1 -1
  69. package/dist/sequence-alpha.d.ts +283 -552
  70. package/dist/sequence-beta.d.ts +139 -1373
  71. package/dist/sequence-public.d.ts +139 -1373
  72. package/dist/sequence-untrimmed.d.ts +186 -141
  73. package/dist/sequence.d.ts +26 -24
  74. package/dist/sequence.d.ts.map +1 -1
  75. package/dist/sequence.js +38 -23
  76. package/dist/sequence.js.map +1 -1
  77. package/dist/sequenceDeltaEvent.d.ts +4 -4
  78. package/dist/sequenceDeltaEvent.d.ts.map +1 -1
  79. package/dist/sequenceDeltaEvent.js +14 -7
  80. package/dist/sequenceDeltaEvent.js.map +1 -1
  81. package/dist/sequenceFactory.d.ts +1 -1
  82. package/dist/sequenceFactory.js +1 -1
  83. package/dist/sequenceFactory.js.map +1 -1
  84. package/dist/sharedIntervalCollection.d.ts +3 -3
  85. package/dist/sharedIntervalCollection.js +2 -2
  86. package/dist/sharedIntervalCollection.js.map +1 -1
  87. package/dist/sharedSequence.d.ts +4 -4
  88. package/dist/sharedSequence.d.ts.map +1 -1
  89. package/dist/sharedSequence.js +8 -2
  90. package/dist/sharedSequence.js.map +1 -1
  91. package/dist/sharedString.d.ts +9 -18
  92. package/dist/sharedString.d.ts.map +1 -1
  93. package/dist/sharedString.js +9 -21
  94. package/dist/sharedString.js.map +1 -1
  95. package/lib/defaultMap.d.ts +3 -3
  96. package/lib/defaultMap.d.ts.map +1 -1
  97. package/lib/defaultMap.js +29 -20
  98. package/lib/defaultMap.js.map +1 -1
  99. package/lib/defaultMapInterfaces.d.ts +12 -11
  100. package/lib/defaultMapInterfaces.d.ts.map +1 -1
  101. package/lib/defaultMapInterfaces.js +2 -1
  102. package/lib/defaultMapInterfaces.js.map +1 -1
  103. package/lib/index.d.ts +1 -0
  104. package/lib/index.d.ts.map +1 -1
  105. package/lib/index.js +55 -10
  106. package/lib/index.js.map +1 -1
  107. package/lib/intervalCollection.d.ts +70 -16
  108. package/lib/intervalCollection.d.ts.map +1 -1
  109. package/lib/intervalCollection.js +174 -156
  110. package/lib/intervalCollection.js.map +1 -1
  111. package/lib/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  112. package/lib/intervalIndex/endpointInRangeIndex.js +18 -13
  113. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  114. package/lib/intervalIndex/endpointIndex.d.ts +2 -2
  115. package/lib/intervalIndex/endpointIndex.js +14 -9
  116. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  117. package/lib/intervalIndex/idIntervalIndex.d.ts +2 -2
  118. package/lib/intervalIndex/idIntervalIndex.js +9 -5
  119. package/lib/intervalIndex/idIntervalIndex.js.map +1 -1
  120. package/lib/intervalIndex/index.js +19 -6
  121. package/lib/intervalIndex/index.js.map +1 -1
  122. package/lib/intervalIndex/intervalIndex.d.ts +1 -1
  123. package/lib/intervalIndex/intervalIndex.js +2 -1
  124. package/lib/intervalIndex/intervalIndex.js.map +1 -1
  125. package/lib/intervalIndex/intervalIndexUtils.js +8 -4
  126. package/lib/intervalIndex/intervalIndexUtils.js.map +1 -1
  127. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +2 -2
  128. package/lib/intervalIndex/overlappingIntervalsIndex.js +16 -11
  129. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  130. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +1 -1
  131. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +15 -11
  132. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  133. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts +2 -1
  134. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  135. package/lib/intervalIndex/sequenceIntervalIndexes.js +2 -1
  136. package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  137. package/lib/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  138. package/lib/intervalIndex/startpointInRangeIndex.js +18 -13
  139. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  140. package/lib/intervalTree.d.ts +1 -2
  141. package/lib/intervalTree.d.ts.map +1 -1
  142. package/lib/intervalTree.js +7 -4
  143. package/lib/intervalTree.js.map +1 -1
  144. package/lib/intervals/index.js +18 -3
  145. package/lib/intervals/index.js.map +1 -1
  146. package/lib/intervals/interval.d.ts +5 -11
  147. package/lib/intervals/interval.d.ts.map +1 -1
  148. package/lib/intervals/interval.js +26 -29
  149. package/lib/intervals/interval.js.map +1 -1
  150. package/lib/intervals/intervalUtils.d.ts +15 -18
  151. package/lib/intervals/intervalUtils.d.ts.map +1 -1
  152. package/lib/intervals/intervalUtils.js +21 -21
  153. package/lib/intervals/intervalUtils.js.map +1 -1
  154. package/lib/intervals/sequenceInterval.d.ts +5 -15
  155. package/lib/intervals/sequenceInterval.d.ts.map +1 -1
  156. package/lib/intervals/sequenceInterval.js +72 -82
  157. package/lib/intervals/sequenceInterval.js.map +1 -1
  158. package/lib/localValues.d.ts +2 -1
  159. package/lib/localValues.d.ts.map +1 -1
  160. package/lib/localValues.js +9 -4
  161. package/lib/localValues.js.map +1 -1
  162. package/lib/packageVersion.d.ts +1 -1
  163. package/lib/packageVersion.js +5 -2
  164. package/lib/packageVersion.js.map +1 -1
  165. package/lib/revertibles.d.ts +9 -15
  166. package/lib/revertibles.d.ts.map +1 -1
  167. package/lib/revertibles.js +83 -69
  168. package/lib/revertibles.js.map +1 -1
  169. package/lib/sequence-alpha.d.ts +283 -552
  170. package/lib/sequence-beta.d.ts +139 -1373
  171. package/lib/sequence-public.d.ts +139 -1373
  172. package/lib/sequence-untrimmed.d.ts +186 -141
  173. package/lib/sequence.d.ts +26 -24
  174. package/lib/sequence.d.ts.map +1 -1
  175. package/lib/sequence.js +81 -61
  176. package/lib/sequence.js.map +1 -1
  177. package/lib/sequenceDeltaEvent.d.ts +4 -4
  178. package/lib/sequenceDeltaEvent.d.ts.map +1 -1
  179. package/lib/sequenceDeltaEvent.js +27 -14
  180. package/lib/sequenceDeltaEvent.js.map +1 -1
  181. package/lib/sequenceFactory.d.ts +1 -1
  182. package/lib/sequenceFactory.js +14 -10
  183. package/lib/sequenceFactory.js.map +1 -1
  184. package/lib/sharedIntervalCollection.d.ts +3 -3
  185. package/lib/sharedIntervalCollection.js +20 -15
  186. package/lib/sharedIntervalCollection.js.map +1 -1
  187. package/lib/sharedSequence.d.ts +4 -4
  188. package/lib/sharedSequence.d.ts.map +1 -1
  189. package/lib/sharedSequence.js +19 -8
  190. package/lib/sharedSequence.js.map +1 -1
  191. package/lib/sharedString.d.ts +9 -18
  192. package/lib/sharedString.d.ts.map +1 -1
  193. package/lib/sharedString.js +30 -37
  194. package/lib/sharedString.js.map +1 -1
  195. package/package.json +44 -22
  196. package/sequence.test-files.tar +0 -0
  197. package/src/defaultMap.ts +22 -16
  198. package/src/defaultMapInterfaces.ts +17 -14
  199. package/src/index.ts +17 -0
  200. package/src/intervalCollection.ts +135 -71
  201. package/src/intervalIndex/endpointInRangeIndex.ts +2 -2
  202. package/src/intervalIndex/endpointIndex.ts +2 -2
  203. package/src/intervalIndex/idIntervalIndex.ts +2 -2
  204. package/src/intervalIndex/intervalIndex.ts +1 -1
  205. package/src/intervalIndex/overlappingIntervalsIndex.ts +2 -2
  206. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +1 -1
  207. package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -1
  208. package/src/intervalIndex/startpointInRangeIndex.ts +2 -2
  209. package/src/intervalTree.ts +0 -3
  210. package/src/intervals/interval.ts +7 -26
  211. package/src/intervals/intervalUtils.ts +17 -20
  212. package/src/intervals/sequenceInterval.ts +7 -35
  213. package/src/localValues.ts +2 -1
  214. package/src/packageVersion.ts +1 -1
  215. package/src/revertibles.ts +20 -19
  216. package/src/sequence.ts +61 -43
  217. package/src/sequenceDeltaEvent.ts +12 -6
  218. package/src/sequenceFactory.ts +1 -1
  219. package/src/sharedIntervalCollection.ts +3 -3
  220. package/src/sharedSequence.ts +12 -6
  221. package/src/sharedString.ts +21 -48
  222. package/tsconfig.json +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/sequence",
3
- "version": "2.0.0-internal.7.3.0",
3
+ "version": "2.0.0-internal.8.0.0",
4
4
  "description": "Distributed sequence",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -35,34 +35,35 @@
35
35
  "temp-directory": "nyc/.nyc_output"
36
36
  },
37
37
  "dependencies": {
38
- "@fluid-internal/client-utils": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
39
- "@fluidframework/core-interfaces": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
40
- "@fluidframework/core-utils": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
41
- "@fluidframework/datastore-definitions": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
42
- "@fluidframework/merge-tree": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
38
+ "@fluid-internal/client-utils": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
39
+ "@fluidframework/core-interfaces": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
40
+ "@fluidframework/core-utils": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
41
+ "@fluidframework/datastore-definitions": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
42
+ "@fluidframework/merge-tree": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
43
43
  "@fluidframework/protocol-definitions": "^3.0.0",
44
- "@fluidframework/runtime-definitions": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
45
- "@fluidframework/runtime-utils": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
46
- "@fluidframework/shared-object-base": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
47
- "@fluidframework/telemetry-utils": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
44
+ "@fluidframework/runtime-definitions": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
45
+ "@fluidframework/runtime-utils": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
46
+ "@fluidframework/shared-object-base": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
47
+ "@fluidframework/telemetry-utils": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
48
48
  "uuid": "^9.0.0"
49
49
  },
50
50
  "devDependencies": {
51
- "@fluid-private/stochastic-test-utils": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
52
- "@fluid-private/test-dds-utils": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
51
+ "@arethetypeswrong/cli": "^0.13.3",
52
+ "@fluid-private/stochastic-test-utils": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
53
+ "@fluid-private/test-dds-utils": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
53
54
  "@fluid-tools/benchmark": "^0.48.0",
54
55
  "@fluid-tools/build-cli": "^0.28.0",
55
56
  "@fluidframework/build-common": "^2.0.3",
56
57
  "@fluidframework/build-tools": "^0.28.0",
57
58
  "@fluidframework/eslint-config-fluid": "^3.1.0",
58
- "@fluidframework/mocha-test-setup": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
59
+ "@fluidframework/mocha-test-setup": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
59
60
  "@fluidframework/sequence-previous": "npm:@fluidframework/sequence@2.0.0-internal.7.2.0",
60
- "@fluidframework/test-runtime-utils": ">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0",
61
+ "@fluidframework/test-runtime-utils": ">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0",
61
62
  "@microsoft/api-extractor": "^7.38.3",
62
63
  "@types/diff": "^3.5.1",
63
64
  "@types/mocha": "^9.1.1",
64
- "@types/node": "^16.18.38",
65
- "@types/random-js": "^1.0.31",
65
+ "@types/node": "^18.19.0",
66
+ "@types/uuid": "^9.0.2",
66
67
  "c8": "^7.7.1",
67
68
  "copyfiles": "^2.4.1",
68
69
  "cross-env": "^7.0.3",
@@ -73,7 +74,7 @@
73
74
  "mocha-multi-reporters": "^1.5.1",
74
75
  "moment": "^2.21.0",
75
76
  "prettier": "~3.0.3",
76
- "random-js": "^1.0.8",
77
+ "random-js": "^2.1.0",
77
78
  "rimraf": "^4.4.0",
78
79
  "typescript": "~5.1.6"
79
80
  },
@@ -94,7 +95,27 @@
94
95
  }
95
96
  },
96
97
  "typeValidation": {
97
- "broken": {}
98
+ "broken": {
99
+ "InterfaceDeclaration_ISharedString": {
100
+ "forwardCompat": false,
101
+ "backCompat": false
102
+ },
103
+ "ClassDeclaration_SharedSegmentSequence": {
104
+ "forwardCompat": false,
105
+ "backCompat": false
106
+ },
107
+ "ClassDeclaration_SharedSequence": {
108
+ "forwardCompat": false,
109
+ "backCompat": false
110
+ },
111
+ "ClassDeclaration_SharedString": {
112
+ "forwardCompat": false,
113
+ "backCompat": false
114
+ },
115
+ "TypeAliasDeclaration_SharedStringSegment": {
116
+ "backCompat": false
117
+ }
118
+ }
98
119
  },
99
120
  "scripts": {
100
121
  "api": "fluid-build . --task api",
@@ -107,17 +128,19 @@
107
128
  "build:esnext": "tsc --project ./tsconfig.esnext.json",
108
129
  "build:genver": "gen-version",
109
130
  "build:test": "tsc --project ./src/test/tsconfig.json",
131
+ "check:are-the-types-wrong": "attw --pack",
132
+ "check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
110
133
  "ci:build:docs": "api-extractor run",
111
134
  "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
112
135
  "eslint": "eslint --format stylish src",
113
136
  "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
114
137
  "format": "npm run prettier:fix",
115
- "lint": "npm run prettier && npm run eslint",
138
+ "lint": "npm run prettier && npm run check:release-tags && npm run eslint",
116
139
  "lint:fix": "npm run prettier:fix && npm run eslint:fix",
117
140
  "perf": "cross-env FLUID_TEST_VERBOSE=1 mocha \"dist/**/*.spec.js\" --node-option unhandled-rejections=strict,expose-gc --exit -r node_modules/@fluidframework/mocha-test-setup --perfMode --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 30000",
118
141
  "perf:measure": "npm run perf -- --fgrep @Measurement",
119
- "prettier": "prettier --check . --ignore-path ../../../.prettierignore",
120
- "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
142
+ "prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
143
+ "prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore",
121
144
  "test": "npm run test:mocha",
122
145
  "test:benchmark:report": "mocha \"dist/test/*.perf.spec.js\" --node-option unhandled-rejections=strict,expose-gc --exit --perfMode --fgrep @Benchmark -r @fluidframework/mocha-test-setup --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 60000",
123
146
  "test:coverage": "c8 npm test",
@@ -127,7 +150,6 @@
127
150
  "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
128
151
  "test:newsnapfiles": "node dist/test/createSnapshotFiles.js",
129
152
  "test:stress": "cross-env FUZZ_TEST_COUNT=100 FUZZ_STRESS_RUN=true mocha --ignore \"dist/test/memory/**/*\" --recursive \"dist/test/**/*.fuzz.spec.js\" -r @fluidframework/mocha-test-setup",
130
- "testfarm": "node dist/test/testFarm.js",
131
153
  "tsc": "tsc",
132
154
  "typetests:gen": "fluid-type-test-generator",
133
155
  "typetests:prepare": "flub typetests --dir . --reset --previous --normalize"
Binary file
package/src/defaultMap.ts CHANGED
@@ -18,6 +18,7 @@ import {
18
18
  ISerializableValue,
19
19
  ISerializedValue,
20
20
  IValueChanged,
21
+ // eslint-disable-next-line import/no-deprecated
21
22
  IValueOpEmitter,
22
23
  IValueType,
23
24
  IValueTypeOperationValue,
@@ -25,6 +26,7 @@ import {
25
26
  IMapMessageLocalMetadata,
26
27
  SequenceOptions,
27
28
  } from "./defaultMapInterfaces";
29
+ import { IntervalOpType, SerializedIntervalDelta } from "./intervals";
28
30
 
29
31
  /**
30
32
  * Defines the means to process and submit a given op on a map.
@@ -131,7 +133,7 @@ export class DefaultMap<T> {
131
133
  private readonly serializer: IFluidSerializer,
132
134
  private readonly handle: IFluidHandle,
133
135
  private readonly submitMessage: (
134
- op: any,
136
+ op: IMapValueTypeOperation,
135
137
  localOpMetadata: IMapMessageLocalMetadata,
136
138
  ) => void,
137
139
  private readonly type: IValueType<T>,
@@ -292,21 +294,24 @@ export class DefaultMap<T> {
292
294
  * also sent if we are asked to resubmit the message.
293
295
  * @returns True if the operation was submitted, false otherwise.
294
296
  */
295
- public tryResubmitMessage(op: any, localOpMetadata: IMapMessageLocalMetadata): boolean {
297
+ public tryResubmitMessage(
298
+ op: IMapOperation,
299
+ localOpMetadata: IMapMessageLocalMetadata,
300
+ ): boolean {
296
301
  const type: string = op.type;
297
302
  const handler = this.messageHandlers.get(type);
298
303
  if (handler !== undefined) {
299
- handler.resubmit(op as IMapOperation, localOpMetadata);
304
+ handler.resubmit(op, localOpMetadata);
300
305
  return true;
301
306
  }
302
307
  return false;
303
308
  }
304
309
 
305
- public tryGetStashedOpLocalMetadata(op: any): unknown {
310
+ public tryGetStashedOpLocalMetadata(op: IMapOperation): unknown {
306
311
  const type: string = op.type;
307
312
  if (this.messageHandlers.has(type)) {
308
313
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
309
- return this.messageHandlers.get(type)!.getStashedOpLocalMetadata(op as IMapOperation);
314
+ return this.messageHandlers.get(type)!.getStashedOpLocalMetadata(op);
310
315
  }
311
316
  throw new Error("no apply stashed op handler");
312
317
  }
@@ -406,12 +411,11 @@ export class DefaultMap<T> {
406
411
  assert(localValue !== undefined, 0x3f8 /* Local value expected on resubmission */);
407
412
 
408
413
  const handler = localValue.getOpHandler(op.value.opName);
409
- const { rebasedOp, rebasedLocalOpMetadata } = handler.rebase(
410
- localValue.value,
411
- op.value,
412
- localOpMetadata,
413
- );
414
- this.submitMessage({ ...op, value: rebasedOp }, rebasedLocalOpMetadata);
414
+ const rebased = handler.rebase(localValue.value, op.value, localOpMetadata);
415
+ if (rebased !== undefined) {
416
+ const { rebasedOp, rebasedLocalOpMetadata } = rebased;
417
+ this.submitMessage({ ...op, value: rebasedOp }, rebasedLocalOpMetadata);
418
+ }
415
419
  },
416
420
  getStashedOpLocalMetadata: (op: IMapValueTypeOperation) => {
417
421
  assert(
@@ -430,13 +434,15 @@ export class DefaultMap<T> {
430
434
  * @param key - The key of the map that the value type will be stored on
431
435
  * @returns A value op emitter for the given key
432
436
  */
437
+ // eslint-disable-next-line import/no-deprecated
433
438
  private makeMapValueOpEmitter(key: string): IValueOpEmitter {
434
- const emit = (
435
- opName: string,
436
- previousValue: any,
437
- params: any,
439
+ // eslint-disable-next-line import/no-deprecated
440
+ const emit: IValueOpEmitter["emit"] = (
441
+ opName: IntervalOpType,
442
+ previousValue: unknown,
443
+ params: SerializedIntervalDelta,
438
444
  localOpMetadata: IMapMessageLocalMetadata,
439
- ) => {
445
+ ): void => {
440
446
  const translatedParams = makeHandlesSerializable(params, this.serializer, this.handle);
441
447
 
442
448
  const op: IMapValueTypeOperation = {
@@ -6,6 +6,7 @@
6
6
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
7
7
  import { ISharedObjectEvents } from "@fluidframework/shared-object-base";
8
8
  import { IEventThisPlaceHolder } from "@fluidframework/core-interfaces";
9
+ import { ISerializedInterval, IntervalOpType, SerializedIntervalDelta } from "./intervals";
9
10
 
10
11
  /**
11
12
  * Type of "valueChanged" event parameter.
@@ -25,20 +26,20 @@ export interface IValueChanged {
25
26
  /**
26
27
  * Value types are given an IValueOpEmitter to emit their ops through the container type that holds them.
27
28
  * @internal
29
+ * @deprecated - will be remove from public api as there is no public used of this type
28
30
  */
29
31
  export interface IValueOpEmitter {
30
32
  /**
31
33
  * Called by the value type to emit a value type operation through the container type holding it.
32
34
  * @param opName - Name of the emitted operation
33
- * @param previousValue - JSONable previous value as defined by the value type
35
+ * @param previousValue - JSONable previous value as defined by the value type @deprecated unused
34
36
  * @param params - JSONable params for the operation as defined by the value type
35
37
  * @param localOpMetadata - JSONable local metadata which should be submitted with the op
36
- * @internal
37
38
  */
38
39
  emit(
39
- opName: string,
40
- previousValue: any,
41
- params: any,
40
+ opName: IntervalOpType,
41
+ previousValue: undefined,
42
+ params: SerializedIntervalDelta,
42
43
  localOpMetadata: IMapMessageLocalMetadata,
43
44
  ): void;
44
45
  }
@@ -52,7 +53,7 @@ export interface IMapMessageLocalMetadata {
52
53
 
53
54
  /**
54
55
  * Optional flags that configure options for sequence DDSs
55
- * @public
56
+ * @internal
56
57
  */
57
58
  export interface SequenceOptions {
58
59
  /**
@@ -123,11 +124,11 @@ export interface IValueOperation<T> {
123
124
  */
124
125
  process(
125
126
  value: T,
126
- params: any,
127
+ params: ISerializedInterval,
127
128
  local: boolean,
128
129
  message: ISequencedDocumentMessage | undefined,
129
130
  localOpMetadata: IMapMessageLocalMetadata | undefined,
130
- );
131
+ ): void;
131
132
 
132
133
  /**
133
134
  * Rebases an `op` on `value` from its original perspective (ref/local seq) to the current
@@ -141,7 +142,9 @@ export interface IValueOperation<T> {
141
142
  value: T,
142
143
  op: IValueTypeOperationValue,
143
144
  localOpMetadata: IMapMessageLocalMetadata,
144
- ): { rebasedOp: IValueTypeOperationValue; rebasedLocalOpMetadata: IMapMessageLocalMetadata };
145
+ ):
146
+ | { rebasedOp: IValueTypeOperationValue; rebasedLocalOpMetadata: IMapMessageLocalMetadata }
147
+ | undefined;
145
148
  }
146
149
 
147
150
  /**
@@ -164,14 +167,14 @@ export interface IValueType<T> {
164
167
  * Operations that can be applied to the value type.
165
168
  * @alpha
166
169
  */
167
- ops: Map<string, IValueOperation<T>>;
170
+ ops: Map<IntervalOpType, IValueOperation<T>>;
168
171
  }
169
172
 
170
173
  export interface ISharedDefaultMapEvents extends ISharedObjectEvents {
171
174
  (
172
175
  event: "valueChanged" | "create",
173
176
  listener: (changed: IValueChanged, local: boolean, target: IEventThisPlaceHolder) => void,
174
- );
177
+ ): void;
175
178
  }
176
179
 
177
180
  /**
@@ -182,7 +185,7 @@ export interface ISharedDefaultMapEvents extends ISharedObjectEvents {
182
185
  * JSON.stringify and comes out of JSON.parse. This format is used both for snapshots (loadCore/populate)
183
186
  * and ops (set).
184
187
  *
185
- * The DefaultMap impelmentation for sequence has been specialized to only support a single ValueType, which serializes
188
+ * The DefaultMap implementation for sequence has been specialized to only support a single ValueType, which serializes
186
189
  * and deserializes via .store() and .load().
187
190
  */
188
191
  export interface ISerializableValue {
@@ -222,10 +225,10 @@ export interface IValueTypeOperationValue {
222
225
  /**
223
226
  * The name of the operation.
224
227
  */
225
- opName: string;
228
+ opName: IntervalOpType;
226
229
 
227
230
  /**
228
231
  * The payload that is submitted along with the operation.
229
232
  */
230
- value: any;
233
+ value: SerializedIntervalDelta;
231
234
  }
package/src/index.ts CHANGED
@@ -85,3 +85,20 @@ export {
85
85
  SharedIntervalCollectionFactory,
86
86
  } from "./sharedIntervalCollection";
87
87
  export { IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence";
88
+
89
+ export {
90
+ ISegment,
91
+ Marker,
92
+ BaseSegment,
93
+ ReferencePosition,
94
+ ReferenceType,
95
+ PropertySet,
96
+ MapLike,
97
+ TextSegment,
98
+ MergeTreeDeltaType,
99
+ reservedMarkerIdKey,
100
+ reservedTileLabelsKey,
101
+ reservedRangeLabelsKey,
102
+ TrackingGroup,
103
+ LocalReferencePosition,
104
+ } from "@fluidframework/merge-tree";