@fluidframework/container-runtime 2.0.0-rc.2.0.2 → 2.0.0-rc.3.0.1

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 (554) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/api-report/container-runtime.api.md +471 -52
  3. package/dist/batchTracker.d.ts +1 -1
  4. package/dist/batchTracker.d.ts.map +1 -1
  5. package/dist/batchTracker.js +4 -4
  6. package/dist/batchTracker.js.map +1 -1
  7. package/dist/blobManager.d.ts +33 -30
  8. package/dist/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager.js +82 -107
  10. package/dist/blobManager.js.map +1 -1
  11. package/dist/channelCollection.d.ts +27 -22
  12. package/dist/channelCollection.d.ts.map +1 -1
  13. package/dist/channelCollection.js +155 -165
  14. package/dist/channelCollection.js.map +1 -1
  15. package/dist/connectionTelemetry.d.ts +3 -3
  16. package/dist/connectionTelemetry.d.ts.map +1 -1
  17. package/dist/connectionTelemetry.js +17 -17
  18. package/dist/connectionTelemetry.js.map +1 -1
  19. package/dist/containerHandleContext.d.ts.map +1 -1
  20. package/dist/containerHandleContext.js +2 -2
  21. package/dist/containerHandleContext.js.map +1 -1
  22. package/dist/containerRuntime.d.ts +42 -39
  23. package/dist/containerRuntime.d.ts.map +1 -1
  24. package/dist/containerRuntime.js +425 -292
  25. package/dist/containerRuntime.js.map +1 -1
  26. package/dist/dataStore.d.ts +1 -1
  27. package/dist/dataStore.d.ts.map +1 -1
  28. package/dist/dataStore.js +8 -8
  29. package/dist/dataStore.js.map +1 -1
  30. package/dist/dataStoreContext.d.ts +58 -19
  31. package/dist/dataStoreContext.d.ts.map +1 -1
  32. package/dist/dataStoreContext.js +169 -114
  33. package/dist/dataStoreContext.js.map +1 -1
  34. package/dist/dataStoreContexts.d.ts +1 -0
  35. package/dist/dataStoreContexts.d.ts.map +1 -1
  36. package/dist/dataStoreContexts.js +12 -11
  37. package/dist/dataStoreContexts.js.map +1 -1
  38. package/dist/dataStoreRegistry.d.ts +5 -1
  39. package/dist/dataStoreRegistry.d.ts.map +1 -1
  40. package/dist/dataStoreRegistry.js +4 -4
  41. package/dist/dataStoreRegistry.js.map +1 -1
  42. package/dist/deltaManagerSummarizerProxy.d.ts +1 -1
  43. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  44. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  45. package/dist/deltaScheduler.d.ts +1 -1
  46. package/dist/deltaScheduler.d.ts.map +1 -1
  47. package/dist/deltaScheduler.js +6 -6
  48. package/dist/deltaScheduler.js.map +1 -1
  49. package/dist/error.d.ts +1 -1
  50. package/dist/error.d.ts.map +1 -1
  51. package/dist/error.js +4 -4
  52. package/dist/error.js.map +1 -1
  53. package/dist/gc/garbageCollection.d.ts +3 -2
  54. package/dist/gc/garbageCollection.d.ts.map +1 -1
  55. package/dist/gc/garbageCollection.js +23 -23
  56. package/dist/gc/garbageCollection.js.map +1 -1
  57. package/dist/gc/gcConfigs.d.ts +2 -2
  58. package/dist/gc/gcConfigs.d.ts.map +1 -1
  59. package/dist/gc/gcConfigs.js +4 -5
  60. package/dist/gc/gcConfigs.js.map +1 -1
  61. package/dist/gc/gcDefinitions.d.ts +4 -5
  62. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  63. package/dist/gc/gcDefinitions.js.map +1 -1
  64. package/dist/gc/gcHelpers.d.ts +5 -1
  65. package/dist/gc/gcHelpers.d.ts.map +1 -1
  66. package/dist/gc/gcHelpers.js +21 -12
  67. package/dist/gc/gcHelpers.js.map +1 -1
  68. package/dist/gc/gcSummaryStateTracker.d.ts +2 -2
  69. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  70. package/dist/gc/gcSummaryStateTracker.js +11 -11
  71. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  72. package/dist/gc/gcTelemetry.d.ts +2 -1
  73. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  74. package/dist/gc/gcTelemetry.js +11 -9
  75. package/dist/gc/gcTelemetry.js.map +1 -1
  76. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  77. package/dist/gc/gcUnreferencedStateTracker.js +6 -6
  78. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  79. package/dist/gc/index.d.ts +1 -1
  80. package/dist/gc/index.d.ts.map +1 -1
  81. package/dist/gc/index.js +2 -1
  82. package/dist/gc/index.js.map +1 -1
  83. package/dist/index.d.ts +5 -2
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +12 -2
  86. package/dist/index.js.map +1 -1
  87. package/dist/legacy.d.ts +91 -0
  88. package/dist/messageTypes.d.ts +11 -5
  89. package/dist/messageTypes.d.ts.map +1 -1
  90. package/dist/messageTypes.js +4 -0
  91. package/dist/messageTypes.js.map +1 -1
  92. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  93. package/dist/opLifecycle/batchManager.js.map +1 -1
  94. package/dist/opLifecycle/definitions.d.ts +2 -20
  95. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  96. package/dist/opLifecycle/definitions.js.map +1 -1
  97. package/dist/opLifecycle/index.d.ts +3 -3
  98. package/dist/opLifecycle/index.d.ts.map +1 -1
  99. package/dist/opLifecycle/index.js +3 -1
  100. package/dist/opLifecycle/index.js.map +1 -1
  101. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  102. package/dist/opLifecycle/opCompressor.js +5 -6
  103. package/dist/opLifecycle/opCompressor.js.map +1 -1
  104. package/dist/opLifecycle/opDecompressor.d.ts +15 -4
  105. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  106. package/dist/opLifecycle/opDecompressor.js +62 -63
  107. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  108. package/dist/opLifecycle/opGroupingManager.d.ts +2 -1
  109. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  110. package/dist/opLifecycle/opGroupingManager.js +14 -16
  111. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  112. package/dist/opLifecycle/opSplitter.d.ts +12 -4
  113. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  114. package/dist/opLifecycle/opSplitter.js +63 -53
  115. package/dist/opLifecycle/opSplitter.js.map +1 -1
  116. package/dist/opLifecycle/outbox.d.ts +2 -1
  117. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  118. package/dist/opLifecycle/outbox.js +30 -29
  119. package/dist/opLifecycle/outbox.js.map +1 -1
  120. package/dist/opLifecycle/remoteMessageProcessor.d.ts +8 -0
  121. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  122. package/dist/opLifecycle/remoteMessageProcessor.js +36 -32
  123. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  124. package/dist/packageVersion.d.ts +1 -1
  125. package/dist/packageVersion.js +1 -1
  126. package/dist/packageVersion.js.map +1 -1
  127. package/dist/pendingStateManager.d.ts +1 -1
  128. package/dist/pendingStateManager.d.ts.map +1 -1
  129. package/dist/pendingStateManager.js +18 -18
  130. package/dist/pendingStateManager.js.map +1 -1
  131. package/dist/public.d.ts +12 -0
  132. package/dist/scheduleManager.d.ts +1 -1
  133. package/dist/scheduleManager.d.ts.map +1 -1
  134. package/dist/scheduleManager.js +28 -24
  135. package/dist/scheduleManager.js.map +1 -1
  136. package/dist/storageServiceWithAttachBlobs.d.ts +2 -2
  137. package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -1
  138. package/dist/storageServiceWithAttachBlobs.js +2 -2
  139. package/dist/storageServiceWithAttachBlobs.js.map +1 -1
  140. package/dist/summary/documentSchema.d.ts +209 -0
  141. package/dist/summary/documentSchema.d.ts.map +1 -0
  142. package/dist/summary/documentSchema.js +390 -0
  143. package/dist/summary/documentSchema.js.map +1 -0
  144. package/dist/summary/index.d.ts +2 -1
  145. package/dist/summary/index.d.ts.map +1 -1
  146. package/dist/summary/index.js +4 -1
  147. package/dist/summary/index.js.map +1 -1
  148. package/dist/summary/orderedClientElection.d.ts +2 -2
  149. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  150. package/dist/summary/orderedClientElection.js +12 -7
  151. package/dist/summary/orderedClientElection.js.map +1 -1
  152. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  153. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  154. package/dist/summary/runWhileConnectedCoordinator.js +3 -3
  155. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  156. package/dist/summary/runningSummarizer.d.ts +3 -3
  157. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  158. package/dist/summary/runningSummarizer.js +16 -16
  159. package/dist/summary/runningSummarizer.js.map +1 -1
  160. package/dist/summary/summarizer.d.ts +3 -2
  161. package/dist/summary/summarizer.d.ts.map +1 -1
  162. package/dist/summary/summarizer.js +13 -13
  163. package/dist/summary/summarizer.js.map +1 -1
  164. package/dist/summary/summarizerClientElection.d.ts +2 -2
  165. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  166. package/dist/summary/summarizerClientElection.js.map +1 -1
  167. package/dist/summary/summarizerHeuristics.d.ts +1 -1
  168. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  169. package/dist/summary/summarizerHeuristics.js +2 -2
  170. package/dist/summary/summarizerHeuristics.js.map +1 -1
  171. package/dist/summary/summarizerNode/summarizerNode.d.ts +3 -2
  172. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  173. package/dist/summary/summarizerNode/summarizerNode.js +28 -28
  174. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  175. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  176. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  177. package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -3
  178. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  179. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
  180. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  181. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +14 -14
  182. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  183. package/dist/summary/summarizerTypes.d.ts +5 -3
  184. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  185. package/dist/summary/summarizerTypes.js.map +1 -1
  186. package/dist/summary/summaryCollection.d.ts +2 -2
  187. package/dist/summary/summaryCollection.d.ts.map +1 -1
  188. package/dist/summary/summaryCollection.js +7 -7
  189. package/dist/summary/summaryCollection.js.map +1 -1
  190. package/dist/summary/summaryFormat.d.ts +6 -17
  191. package/dist/summary/summaryFormat.d.ts.map +1 -1
  192. package/dist/summary/summaryFormat.js +8 -8
  193. package/dist/summary/summaryFormat.js.map +1 -1
  194. package/dist/summary/summaryGenerator.d.ts +4 -3
  195. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  196. package/dist/summary/summaryGenerator.js +17 -17
  197. package/dist/summary/summaryGenerator.js.map +1 -1
  198. package/dist/summary/summaryManager.d.ts +1 -1
  199. package/dist/summary/summaryManager.d.ts.map +1 -1
  200. package/dist/summary/summaryManager.js +15 -14
  201. package/dist/summary/summaryManager.js.map +1 -1
  202. package/internal.d.ts +11 -0
  203. package/legacy.d.ts +11 -0
  204. package/lib/batchTracker.d.ts +1 -1
  205. package/lib/batchTracker.d.ts.map +1 -1
  206. package/lib/batchTracker.js +2 -2
  207. package/lib/batchTracker.js.map +1 -1
  208. package/lib/blobManager.d.ts +33 -30
  209. package/lib/blobManager.d.ts.map +1 -1
  210. package/lib/blobManager.js +48 -73
  211. package/lib/blobManager.js.map +1 -1
  212. package/lib/channelCollection.d.ts +27 -22
  213. package/lib/channelCollection.d.ts.map +1 -1
  214. package/lib/channelCollection.js +96 -106
  215. package/lib/channelCollection.js.map +1 -1
  216. package/lib/connectionTelemetry.d.ts +3 -3
  217. package/lib/connectionTelemetry.d.ts.map +1 -1
  218. package/lib/connectionTelemetry.js +3 -3
  219. package/lib/connectionTelemetry.js.map +1 -1
  220. package/lib/containerHandleContext.d.ts.map +1 -1
  221. package/lib/containerHandleContext.js +1 -1
  222. package/lib/containerHandleContext.js.map +1 -1
  223. package/lib/containerRuntime.d.ts +42 -39
  224. package/lib/containerRuntime.d.ts.map +1 -1
  225. package/lib/containerRuntime.js +276 -141
  226. package/lib/containerRuntime.js.map +1 -1
  227. package/lib/dataStore.d.ts +1 -1
  228. package/lib/dataStore.d.ts.map +1 -1
  229. package/lib/dataStore.js +3 -3
  230. package/lib/dataStore.js.map +1 -1
  231. package/lib/dataStoreContext.d.ts +58 -19
  232. package/lib/dataStoreContext.d.ts.map +1 -1
  233. package/lib/dataStoreContext.js +107 -52
  234. package/lib/dataStoreContext.js.map +1 -1
  235. package/lib/dataStoreContexts.d.ts +1 -0
  236. package/lib/dataStoreContexts.d.ts.map +1 -1
  237. package/lib/dataStoreContexts.js +3 -2
  238. package/lib/dataStoreContexts.js.map +1 -1
  239. package/lib/dataStoreRegistry.d.ts +5 -1
  240. package/lib/dataStoreRegistry.d.ts.map +1 -1
  241. package/lib/dataStoreRegistry.js +1 -1
  242. package/lib/dataStoreRegistry.js.map +1 -1
  243. package/lib/deltaManagerSummarizerProxy.d.ts +1 -1
  244. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -1
  245. package/lib/deltaManagerSummarizerProxy.js.map +1 -1
  246. package/lib/deltaScheduler.d.ts +1 -1
  247. package/lib/deltaScheduler.d.ts.map +1 -1
  248. package/lib/deltaScheduler.js +1 -1
  249. package/lib/deltaScheduler.js.map +1 -1
  250. package/lib/error.d.ts +1 -1
  251. package/lib/error.d.ts.map +1 -1
  252. package/lib/error.js +2 -2
  253. package/lib/error.js.map +1 -1
  254. package/lib/gc/garbageCollection.d.ts +3 -2
  255. package/lib/gc/garbageCollection.d.ts.map +1 -1
  256. package/lib/gc/garbageCollection.js +8 -8
  257. package/lib/gc/garbageCollection.js.map +1 -1
  258. package/lib/gc/gcConfigs.d.ts +2 -2
  259. package/lib/gc/gcConfigs.d.ts.map +1 -1
  260. package/lib/gc/gcConfigs.js +4 -5
  261. package/lib/gc/gcConfigs.js.map +1 -1
  262. package/lib/gc/gcDefinitions.d.ts +4 -5
  263. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  264. package/lib/gc/gcDefinitions.js.map +1 -1
  265. package/lib/gc/gcHelpers.d.ts +5 -1
  266. package/lib/gc/gcHelpers.d.ts.map +1 -1
  267. package/lib/gc/gcHelpers.js +10 -2
  268. package/lib/gc/gcHelpers.js.map +1 -1
  269. package/lib/gc/gcSummaryStateTracker.d.ts +2 -2
  270. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  271. package/lib/gc/gcSummaryStateTracker.js +2 -2
  272. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  273. package/lib/gc/gcTelemetry.d.ts +2 -1
  274. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  275. package/lib/gc/gcTelemetry.js +4 -2
  276. package/lib/gc/gcTelemetry.js.map +1 -1
  277. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  278. package/lib/gc/gcUnreferencedStateTracker.js +2 -2
  279. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  280. package/lib/gc/index.d.ts +1 -1
  281. package/lib/gc/index.d.ts.map +1 -1
  282. package/lib/gc/index.js +1 -1
  283. package/lib/gc/index.js.map +1 -1
  284. package/lib/index.d.ts +5 -2
  285. package/lib/index.d.ts.map +1 -1
  286. package/lib/index.js +5 -2
  287. package/lib/index.js.map +1 -1
  288. package/lib/legacy.d.ts +91 -0
  289. package/lib/messageTypes.d.ts +11 -5
  290. package/lib/messageTypes.d.ts.map +1 -1
  291. package/lib/messageTypes.js +4 -0
  292. package/lib/messageTypes.js.map +1 -1
  293. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  294. package/lib/opLifecycle/batchManager.js.map +1 -1
  295. package/lib/opLifecycle/definitions.d.ts +2 -20
  296. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  297. package/lib/opLifecycle/definitions.js.map +1 -1
  298. package/lib/opLifecycle/index.d.ts +3 -3
  299. package/lib/opLifecycle/index.d.ts.map +1 -1
  300. package/lib/opLifecycle/index.js +2 -2
  301. package/lib/opLifecycle/index.js.map +1 -1
  302. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  303. package/lib/opLifecycle/opCompressor.js +2 -3
  304. package/lib/opLifecycle/opCompressor.js.map +1 -1
  305. package/lib/opLifecycle/opDecompressor.d.ts +15 -4
  306. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  307. package/lib/opLifecycle/opDecompressor.js +61 -62
  308. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  309. package/lib/opLifecycle/opGroupingManager.d.ts +2 -1
  310. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  311. package/lib/opLifecycle/opGroupingManager.js +9 -12
  312. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  313. package/lib/opLifecycle/opSplitter.d.ts +12 -4
  314. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  315. package/lib/opLifecycle/opSplitter.js +47 -38
  316. package/lib/opLifecycle/opSplitter.js.map +1 -1
  317. package/lib/opLifecycle/outbox.d.ts +2 -1
  318. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  319. package/lib/opLifecycle/outbox.js +19 -18
  320. package/lib/opLifecycle/outbox.js.map +1 -1
  321. package/lib/opLifecycle/remoteMessageProcessor.d.ts +8 -0
  322. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  323. package/lib/opLifecycle/remoteMessageProcessor.js +36 -32
  324. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  325. package/lib/packageVersion.d.ts +1 -1
  326. package/lib/packageVersion.js +1 -1
  327. package/lib/packageVersion.js.map +1 -1
  328. package/lib/pendingStateManager.d.ts +1 -1
  329. package/lib/pendingStateManager.d.ts.map +1 -1
  330. package/lib/pendingStateManager.js +2 -2
  331. package/lib/pendingStateManager.js.map +1 -1
  332. package/lib/public.d.ts +12 -0
  333. package/lib/scheduleManager.d.ts +1 -1
  334. package/lib/scheduleManager.d.ts.map +1 -1
  335. package/lib/scheduleManager.js +7 -3
  336. package/lib/scheduleManager.js.map +1 -1
  337. package/lib/storageServiceWithAttachBlobs.d.ts +2 -2
  338. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -1
  339. package/lib/storageServiceWithAttachBlobs.js +1 -1
  340. package/lib/storageServiceWithAttachBlobs.js.map +1 -1
  341. package/lib/summary/documentSchema.d.ts +209 -0
  342. package/lib/summary/documentSchema.d.ts.map +1 -0
  343. package/lib/summary/documentSchema.js +386 -0
  344. package/lib/summary/documentSchema.js.map +1 -0
  345. package/lib/summary/index.d.ts +2 -1
  346. package/lib/summary/index.d.ts.map +1 -1
  347. package/lib/summary/index.js +1 -0
  348. package/lib/summary/index.js.map +1 -1
  349. package/lib/summary/orderedClientElection.d.ts +2 -2
  350. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  351. package/lib/summary/orderedClientElection.js +7 -2
  352. package/lib/summary/orderedClientElection.js.map +1 -1
  353. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -1
  354. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  355. package/lib/summary/runWhileConnectedCoordinator.js +1 -1
  356. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  357. package/lib/summary/runningSummarizer.d.ts +3 -3
  358. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  359. package/lib/summary/runningSummarizer.js +3 -3
  360. package/lib/summary/runningSummarizer.js.map +1 -1
  361. package/lib/summary/summarizer.d.ts +3 -2
  362. package/lib/summary/summarizer.d.ts.map +1 -1
  363. package/lib/summary/summarizer.js +3 -3
  364. package/lib/summary/summarizer.js.map +1 -1
  365. package/lib/summary/summarizerClientElection.d.ts +2 -2
  366. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  367. package/lib/summary/summarizerClientElection.js.map +1 -1
  368. package/lib/summary/summarizerHeuristics.d.ts +1 -1
  369. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  370. package/lib/summary/summarizerHeuristics.js +1 -1
  371. package/lib/summary/summarizerHeuristics.js.map +1 -1
  372. package/lib/summary/summarizerNode/summarizerNode.d.ts +3 -2
  373. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  374. package/lib/summary/summarizerNode/summarizerNode.js +5 -5
  375. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  376. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  377. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  378. package/lib/summary/summarizerNode/summarizerNodeUtils.js +1 -1
  379. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  380. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
  381. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  382. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
  383. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  384. package/lib/summary/summarizerTypes.d.ts +5 -3
  385. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  386. package/lib/summary/summarizerTypes.js.map +1 -1
  387. package/lib/summary/summaryCollection.d.ts +2 -2
  388. package/lib/summary/summaryCollection.d.ts.map +1 -1
  389. package/lib/summary/summaryCollection.js +1 -1
  390. package/lib/summary/summaryCollection.js.map +1 -1
  391. package/lib/summary/summaryFormat.d.ts +6 -17
  392. package/lib/summary/summaryFormat.d.ts.map +1 -1
  393. package/lib/summary/summaryFormat.js +3 -3
  394. package/lib/summary/summaryFormat.js.map +1 -1
  395. package/lib/summary/summaryGenerator.d.ts +4 -3
  396. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  397. package/lib/summary/summaryGenerator.js +4 -4
  398. package/lib/summary/summaryGenerator.js.map +1 -1
  399. package/lib/summary/summaryManager.d.ts +1 -1
  400. package/lib/summary/summaryManager.d.ts.map +1 -1
  401. package/lib/summary/summaryManager.js +9 -8
  402. package/lib/summary/summaryManager.js.map +1 -1
  403. package/package.json +57 -65
  404. package/src/batchTracker.ts +4 -3
  405. package/src/blobManager.ts +100 -77
  406. package/src/channelCollection.ts +180 -165
  407. package/src/connectionTelemetry.ts +12 -12
  408. package/src/containerHandleContext.ts +3 -2
  409. package/src/containerRuntime.ts +481 -277
  410. package/src/dataStore.ts +9 -4
  411. package/src/dataStoreContext.ts +195 -93
  412. package/src/dataStoreContexts.ts +5 -2
  413. package/src/dataStoreRegistry.ts +3 -2
  414. package/src/deltaManagerSummarizerProxy.ts +1 -1
  415. package/src/deltaScheduler.ts +2 -1
  416. package/src/error.ts +2 -2
  417. package/src/gc/garbageCollection.ts +21 -20
  418. package/src/gc/gcConfigs.ts +15 -18
  419. package/src/gc/gcDefinitions.ts +6 -8
  420. package/src/gc/gcHelpers.ts +22 -5
  421. package/src/gc/gcSummaryStateTracker.ts +7 -5
  422. package/src/gc/gcTelemetry.ts +13 -7
  423. package/src/gc/gcUnreferencedStateTracker.ts +3 -2
  424. package/src/gc/index.ts +1 -0
  425. package/src/index.ts +22 -1
  426. package/src/messageTypes.ts +20 -6
  427. package/src/opLifecycle/README.md +89 -0
  428. package/src/opLifecycle/batchManager.ts +1 -0
  429. package/src/opLifecycle/definitions.ts +3 -21
  430. package/src/opLifecycle/index.ts +3 -9
  431. package/src/opLifecycle/opCompressor.ts +6 -5
  432. package/src/opLifecycle/opDecompressor.ts +90 -100
  433. package/src/opLifecycle/opGroupingManager.ts +12 -14
  434. package/src/opLifecycle/opSplitter.ts +76 -48
  435. package/src/opLifecycle/outbox.ts +30 -38
  436. package/src/opLifecycle/remoteMessageProcessor.ts +43 -55
  437. package/src/packageVersion.ts +1 -1
  438. package/src/pendingStateManager.ts +6 -6
  439. package/src/scheduleManager.ts +10 -8
  440. package/src/storageServiceWithAttachBlobs.ts +2 -2
  441. package/src/summary/documentSchema.ts +631 -0
  442. package/src/summary/index.ts +10 -1
  443. package/src/summary/orderedClientElection.ts +7 -7
  444. package/src/summary/runWhileConnectedCoordinator.ts +3 -2
  445. package/src/summary/runningSummarizer.ts +22 -20
  446. package/src/summary/summarizer.ts +17 -15
  447. package/src/summary/summarizerClientElection.ts +3 -2
  448. package/src/summary/summarizerHeuristics.ts +4 -2
  449. package/src/summary/summarizerNode/summarizerNode.ts +20 -18
  450. package/src/summary/summarizerNode/summarizerNodeUtils.ts +3 -2
  451. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +16 -8
  452. package/src/summary/summarizerTypes.ts +7 -3
  453. package/src/summary/summaryCollection.ts +3 -3
  454. package/src/summary/summaryFormat.ts +14 -26
  455. package/src/summary/summaryGenerator.ts +12 -15
  456. package/src/summary/summaryManager.ts +16 -13
  457. package/api-extractor-cjs.json +0 -8
  458. package/dist/container-runtime-alpha.d.ts +0 -1753
  459. package/dist/container-runtime-beta.d.ts +0 -268
  460. package/dist/container-runtime-public.d.ts +0 -268
  461. package/dist/container-runtime-untrimmed.d.ts +0 -1893
  462. package/lib/container-runtime-alpha.d.ts +0 -1753
  463. package/lib/container-runtime-beta.d.ts +0 -268
  464. package/lib/container-runtime-public.d.ts +0 -268
  465. package/lib/container-runtime-untrimmed.d.ts +0 -1893
  466. package/lib/test/batchTracker.spec.js +0 -88
  467. package/lib/test/batchTracker.spec.js.map +0 -1
  468. package/lib/test/blobManager.spec.js +0 -835
  469. package/lib/test/blobManager.spec.js.map +0 -1
  470. package/lib/test/channelCollection.spec.js +0 -141
  471. package/lib/test/channelCollection.spec.js.map +0 -1
  472. package/lib/test/containerRuntime.spec.js +0 -1748
  473. package/lib/test/containerRuntime.spec.js.map +0 -1
  474. package/lib/test/dataStoreContext.spec.js +0 -801
  475. package/lib/test/dataStoreContext.spec.js.map +0 -1
  476. package/lib/test/dataStoreCreation.spec.js +0 -312
  477. package/lib/test/dataStoreCreation.spec.js.map +0 -1
  478. package/lib/test/dataStoreRegistry.spec.js +0 -26
  479. package/lib/test/dataStoreRegistry.spec.js.map +0 -1
  480. package/lib/test/fuzz/fuzzUtils.js +0 -66
  481. package/lib/test/fuzz/fuzzUtils.js.map +0 -1
  482. package/lib/test/fuzz/summarizer.fuzz.spec.js +0 -31
  483. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +0 -1
  484. package/lib/test/fuzz/summarizerFuzzMocks.js +0 -162
  485. package/lib/test/fuzz/summarizerFuzzMocks.js.map +0 -1
  486. package/lib/test/fuzz/summarizerFuzzSuite.js +0 -106
  487. package/lib/test/fuzz/summarizerFuzzSuite.js.map +0 -1
  488. package/lib/test/gc/garbageCollection.spec.js +0 -1465
  489. package/lib/test/gc/garbageCollection.spec.js.map +0 -1
  490. package/lib/test/gc/gcConfigs.spec.js +0 -690
  491. package/lib/test/gc/gcConfigs.spec.js.map +0 -1
  492. package/lib/test/gc/gcHelpers.spec.js +0 -110
  493. package/lib/test/gc/gcHelpers.spec.js.map +0 -1
  494. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +0 -68
  495. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +0 -1
  496. package/lib/test/gc/gcStats.spec.js +0 -391
  497. package/lib/test/gc/gcStats.spec.js.map +0 -1
  498. package/lib/test/gc/gcSummaryStateTracker.spec.js +0 -228
  499. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +0 -1
  500. package/lib/test/gc/gcTelemetry.spec.js +0 -530
  501. package/lib/test/gc/gcTelemetry.spec.js.map +0 -1
  502. package/lib/test/gc/gcUnitTestHelpers.js +0 -29
  503. package/lib/test/gc/gcUnitTestHelpers.js.map +0 -1
  504. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +0 -192
  505. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +0 -1
  506. package/lib/test/getPendingBlobs.spec.js +0 -193
  507. package/lib/test/getPendingBlobs.spec.js.map +0 -1
  508. package/lib/test/hardwareStats.spec.js +0 -93
  509. package/lib/test/hardwareStats.spec.js.map +0 -1
  510. package/lib/test/index.js +0 -6
  511. package/lib/test/index.js.map +0 -1
  512. package/lib/test/opLifecycle/OpGroupingManager.spec.js +0 -225
  513. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +0 -1
  514. package/lib/test/opLifecycle/batchManager.spec.js +0 -189
  515. package/lib/test/opLifecycle/batchManager.spec.js.map +0 -1
  516. package/lib/test/opLifecycle/opCompressor.spec.js +0 -74
  517. package/lib/test/opLifecycle/opCompressor.spec.js.map +0 -1
  518. package/lib/test/opLifecycle/opDecompressor.spec.js +0 -218
  519. package/lib/test/opLifecycle/opDecompressor.spec.js.map +0 -1
  520. package/lib/test/opLifecycle/opSplitter.spec.js +0 -272
  521. package/lib/test/opLifecycle/opSplitter.spec.js.map +0 -1
  522. package/lib/test/opLifecycle/outbox.spec.js +0 -675
  523. package/lib/test/opLifecycle/outbox.spec.js.map +0 -1
  524. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +0 -196
  525. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +0 -1
  526. package/lib/test/pendingStateManager.spec.js +0 -329
  527. package/lib/test/pendingStateManager.spec.js.map +0 -1
  528. package/lib/test/scheduleManager.spec.js +0 -270
  529. package/lib/test/scheduleManager.spec.js.map +0 -1
  530. package/lib/test/summarizerNode.spec.js +0 -326
  531. package/lib/test/summarizerNode.spec.js.map +0 -1
  532. package/lib/test/summarizerNodeWithGc.spec.js +0 -318
  533. package/lib/test/summarizerNodeWithGc.spec.js.map +0 -1
  534. package/lib/test/summary/orderedClientElection.spec.js +0 -535
  535. package/lib/test/summary/orderedClientElection.spec.js.map +0 -1
  536. package/lib/test/summary/runningSummarizer.spec.js +0 -1349
  537. package/lib/test/summary/runningSummarizer.spec.js.map +0 -1
  538. package/lib/test/summary/summarizer.spec.js +0 -29
  539. package/lib/test/summary/summarizer.spec.js.map +0 -1
  540. package/lib/test/summary/summarizerClientElection.spec.js +0 -436
  541. package/lib/test/summary/summarizerClientElection.spec.js.map +0 -1
  542. package/lib/test/summary/summarizerHeuristics.spec.js +0 -289
  543. package/lib/test/summary/summarizerHeuristics.spec.js.map +0 -1
  544. package/lib/test/summary/summaryCollection.spec.js +0 -200
  545. package/lib/test/summary/summaryCollection.spec.js.map +0 -1
  546. package/lib/test/summary/summaryManager.spec.js +0 -430
  547. package/lib/test/summary/summaryManager.spec.js.map +0 -1
  548. package/lib/test/summary/testQuorumClients.js +0 -34
  549. package/lib/test/summary/testQuorumClients.js.map +0 -1
  550. package/lib/test/throttler.spec.js +0 -175
  551. package/lib/test/throttler.spec.js.map +0 -1
  552. package/lib/test/types/validateContainerRuntimePrevious.generated.js +0 -180
  553. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +0 -1
  554. /package/{dist → lib}/tsdoc-metadata.json +0 -0
@@ -7,35 +7,34 @@ import {
7
7
  MonitoringContext,
8
8
  UsageError,
9
9
  validatePrecondition,
10
- } from "@fluidframework/telemetry-utils";
10
+ } from "@fluidframework/telemetry-utils/internal";
11
+
11
12
  import { IContainerRuntimeMetadata } from "../summary/index.js";
13
+
12
14
  import {
13
- nextGCVersion,
15
+ GCFeatureMatrix,
16
+ GCVersion,
17
+ IGCMetadata_Deprecated,
18
+ IGCRuntimeOptions,
19
+ IGarbageCollectorConfigs,
14
20
  defaultInactiveTimeoutMs,
15
21
  defaultSessionExpiryDurationMs,
22
+ defaultSweepGracePeriodMs,
23
+ disableDatastoreSweepKey,
16
24
  disableTombstoneKey,
17
- GCFeatureMatrix,
25
+ gcDisableDataStoreSweepOptionName,
26
+ gcDisableThrowOnTombstoneLoadOptionName,
27
+ gcGenerationOptionName,
18
28
  gcTestModeKey,
19
- GCVersion,
20
- gcVersionUpgradeToV4Key,
21
- IGarbageCollectorConfigs,
22
- IGCRuntimeOptions,
23
29
  maxSnapshotCacheExpiryMs,
24
30
  oneDayMs,
25
31
  runGCKey,
26
32
  runSessionExpiryKey,
27
33
  runSweepKey,
28
- stableGCVersion,
29
34
  throwOnTombstoneLoadOverrideKey,
30
35
  throwOnTombstoneUsageKey,
31
- gcDisableThrowOnTombstoneLoadOptionName,
32
- defaultSweepGracePeriodMs,
33
- gcGenerationOptionName,
34
- IGCMetadata_Deprecated,
35
- disableDatastoreSweepKey,
36
- gcDisableDataStoreSweepOptionName,
37
36
  } from "./gcDefinitions.js";
38
- import { getGCVersion, shouldAllowGcSweep } from "./gcHelpers.js";
37
+ import { getGCVersion, getGCVersionInEffect, shouldAllowGcSweep } from "./gcHelpers.js";
39
38
 
40
39
  /**
41
40
  * Generates configurations for the Garbage Collector that it uses to determine what to run and how.
@@ -113,9 +112,7 @@ export function generateGCConfigs(
113
112
  createParams.gcOptions[gcGenerationOptionName] /* currentGeneration */,
114
113
  );
115
114
 
116
- // If version upgrade is not enabled, fall back to the stable GC version.
117
- const gcVersionInEffect =
118
- mc.config.getBoolean(gcVersionUpgradeToV4Key) === true ? nextGCVersion : stableGCVersion;
115
+ const gcVersionInEffect = getGCVersionInEffect(mc.config);
119
116
 
120
117
  // The GC version is up-to-date if the GC version in effect is at least equal to the GC version in base snapshot.
121
118
  // If it is not up-to-date, there is a newer version of GC out there which is more reliable than this. So, GC
@@ -6,21 +6,21 @@
6
6
  import { ICriticalContainerError } from "@fluidframework/container-definitions";
7
7
  import { IRequest } from "@fluidframework/core-interfaces";
8
8
  import { ISnapshotTree } from "@fluidframework/protocol-definitions";
9
+ import { IGarbageCollectionData, ITelemetryContext } from "@fluidframework/runtime-definitions";
9
10
  import {
10
- IGarbageCollectionData,
11
11
  IGarbageCollectionDetailsBase,
12
12
  ISummarizeResult,
13
- ITelemetryContext,
14
- } from "@fluidframework/runtime-definitions";
15
- import { ReadAndParseBlob } from "@fluidframework/runtime-utils";
13
+ } from "@fluidframework/runtime-definitions/internal";
14
+ import { ReadAndParseBlob } from "@fluidframework/runtime-utils/internal";
16
15
  import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
16
+
17
+ import { RuntimeHeaderData } from "../containerRuntime.js";
18
+ import { ContainerRuntimeGCMessage } from "../messageTypes.js";
17
19
  import {
18
20
  IContainerRuntimeMetadata,
19
21
  ICreateContainerMetadata,
20
22
  IRefreshSummaryResult,
21
23
  } from "../summary/index.js";
22
- import { RuntimeHeaderData } from "../containerRuntime.js";
23
- import { ContainerRuntimeGCMessage } from "../messageTypes.js";
24
24
 
25
25
  /**
26
26
  * @alpha
@@ -307,8 +307,6 @@ export interface IGarbageCollectionRuntime {
307
307
  getGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;
308
308
  /** After GC has run, called to notify the runtime of routes that are used in it. */
309
309
  updateUsedRoutes(usedRoutes: readonly string[]): void;
310
- /** After GC has run, called to notify the runtime of routes that are unused in it. */
311
- updateUnusedRoutes(unusedRoutes: readonly string[]): void;
312
310
  /**
313
311
  * After GC has run and identified nodes that are sweep ready, called to delete the sweep ready nodes. The runtime
314
312
  * should return the routes of nodes that were deleted.
@@ -3,16 +3,25 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { assert } from "@fluidframework/core-utils";
6
+ import { assert } from "@fluidframework/core-utils/internal";
7
7
  import { ISnapshotTree } from "@fluidframework/protocol-definitions";
8
+ import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
8
9
  import {
10
+ IGarbageCollectionDetailsBase,
9
11
  gcBlobPrefix,
10
12
  gcDeletedBlobKey,
11
13
  gcTombstoneBlobKey,
12
- IGarbageCollectionData,
13
- IGarbageCollectionDetailsBase,
14
- } from "@fluidframework/runtime-definitions";
15
- import { GCFeatureMatrix, GCVersion, IGCMetadata } from "./gcDefinitions.js";
14
+ } from "@fluidframework/runtime-definitions/internal";
15
+ import type { IConfigProvider } from "@fluidframework/telemetry-utils/internal";
16
+
17
+ import {
18
+ GCFeatureMatrix,
19
+ GCVersion,
20
+ IGCMetadata,
21
+ gcVersionUpgradeToV4Key,
22
+ nextGCVersion,
23
+ stableGCVersion,
24
+ } from "./gcDefinitions.js";
16
25
  import {
17
26
  IGarbageCollectionNodeData,
18
27
  IGarbageCollectionSnapshotData,
@@ -27,6 +36,14 @@ export function getGCVersion(metadata?: IGCMetadata): GCVersion {
27
36
  return metadata.gcFeature ?? 0;
28
37
  }
29
38
 
39
+ /** Indicates what GC version is in effect for new GC data being written in this session */
40
+ export function getGCVersionInEffect(configProvider: IConfigProvider): number {
41
+ // If version upgrade is not enabled, fall back to the stable GC version.
42
+ return configProvider.getBoolean(gcVersionUpgradeToV4Key) === true
43
+ ? nextGCVersion
44
+ : stableGCVersion;
45
+ }
46
+
30
47
  /**
31
48
  * Indicates whether Sweep is allowed for this document based on the persisted GC Feature Matrix and current gcGeneration.
32
49
  * This applies to the entire Sweep Phase the same - both Tombstone Enforcement (i.e. should loading a Tombstone fail?) and Deletion.
@@ -4,17 +4,19 @@
4
4
  */
5
5
 
6
6
  import { SummaryType } from "@fluidframework/protocol-definitions";
7
+ import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
7
8
  import {
9
+ ISummarizeResult,
8
10
  gcBlobPrefix,
9
11
  gcDeletedBlobKey,
10
12
  gcTombstoneBlobKey,
11
13
  gcTreeKey,
12
- ISummarizeResult,
13
- ISummaryTreeWithStats,
14
- } from "@fluidframework/runtime-definitions";
15
- import { mergeStats, SummaryTreeBuilder } from "@fluidframework/runtime-utils";
14
+ } from "@fluidframework/runtime-definitions/internal";
15
+ import { SummaryTreeBuilder, mergeStats } from "@fluidframework/runtime-utils/internal";
16
+
16
17
  import { IRefreshSummaryResult } from "../summary/index.js";
17
- import { GCVersion, IGarbageCollectorConfigs, IGCStats } from "./gcDefinitions.js";
18
+
19
+ import { GCVersion, IGCStats, IGarbageCollectorConfigs } from "./gcDefinitions.js";
18
20
  import { generateSortedGCState } from "./gcHelpers.js";
19
21
  import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions.js";
20
22
 
@@ -5,24 +5,29 @@
5
5
 
6
6
  import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
7
7
  import {
8
- generateStack,
8
+ type ITelemetryGenericEventExt,
9
9
  ITelemetryLoggerExt,
10
+ } from "@fluidframework/telemetry-utils";
11
+ import {
10
12
  MonitoringContext,
13
+ generateStack,
11
14
  tagCodeArtifacts,
12
- type ITelemetryGenericEventExt,
13
- } from "@fluidframework/telemetry-utils";
15
+ } from "@fluidframework/telemetry-utils/internal";
16
+
14
17
  import { RuntimeHeaderData } from "../containerRuntime.js";
15
18
  import { ICreateContainerMetadata } from "../summary/index.js";
19
+
16
20
  import {
21
+ GCFeatureMatrix,
17
22
  GCNodeType,
18
- UnreferencedState,
19
23
  IGarbageCollectorConfigs,
24
+ UnreferencedState,
20
25
  disableTombstoneKey,
21
- throwOnTombstoneUsageKey,
22
- throwOnTombstoneLoadOverrideKey,
23
26
  runSweepKey,
24
- GCFeatureMatrix,
27
+ throwOnTombstoneLoadOverrideKey,
28
+ throwOnTombstoneUsageKey,
25
29
  } from "./gcDefinitions.js";
30
+ import { getGCVersionInEffect } from "./gcHelpers.js";
26
31
  import { UnreferencedStateTracker } from "./gcUnreferencedStateTracker.js";
27
32
 
28
33
  type NodeUsageType = "Changed" | "Loaded" | "Revived";
@@ -429,6 +434,7 @@ export function sendGCUnexpectedUsageEvent(
429
434
  event.sweepFlags = JSON.stringify({
430
435
  EnableSweepFlag: mc.config.getBoolean(runSweepKey),
431
436
  });
437
+ event.gcVersion = getGCVersionInEffect(mc.config);
432
438
 
433
439
  mc.logger.sendTelemetryEvent(event, error);
434
440
  }
@@ -3,8 +3,9 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { assert, Timer } from "@fluidframework/core-utils";
7
- import { validatePrecondition } from "@fluidframework/telemetry-utils";
6
+ import { assert, Timer } from "@fluidframework/core-utils/internal";
7
+ import { validatePrecondition } from "@fluidframework/telemetry-utils/internal";
8
+
8
9
  import { UnreferencedState } from "./gcDefinitions.js";
9
10
 
10
11
  /** A wrapper around common-utils Timer that requires the timeout when calling start/restart */
package/src/gc/index.ts CHANGED
@@ -45,6 +45,7 @@ export {
45
45
  export {
46
46
  cloneGCData,
47
47
  concatGarbageCollectionStates,
48
+ getGCVersionInEffect,
48
49
  trimLeadingAndTrailingSlashes,
49
50
  unpackChildNodesGCDetails,
50
51
  } from "./gcHelpers.js";
package/src/index.ts CHANGED
@@ -11,7 +11,6 @@ export {
11
11
  ISummaryConfigurationDisableHeuristics,
12
12
  IContainerRuntimeOptions,
13
13
  isRuntimeMessage,
14
- RuntimeMessage,
15
14
  agentSchedulerId,
16
15
  ContainerRuntime,
17
16
  TombstoneResponseHeaderKey,
@@ -20,6 +19,8 @@ export {
20
19
  DefaultSummaryConfiguration,
21
20
  ICompressionRuntimeOptions,
22
21
  CompressionAlgorithms,
22
+ RuntimeHeaderData,
23
+ disabledCompressionConfig,
23
24
  } from "./containerRuntime.js";
24
25
  export {
25
26
  ContainerMessageType,
@@ -97,5 +98,25 @@ export {
97
98
  IRetriableFailureResult,
98
99
  ISummarizeEventProps,
99
100
  IdCompressorMode,
101
+ IDocumentSchema,
102
+ DocumentSchemaValueType,
103
+ IDocumentSchemaCurrent,
104
+ currentDocumentVersionSchema,
105
+ DocumentsSchemaController,
106
+ IDocumentSchemaChangeMessage,
107
+ IDocumentSchemaFeatures,
100
108
  } from "./summary/index.js";
101
109
  export { IChunkedOp, unpackRuntimeMessage } from "./opLifecycle/index.js";
110
+ export { ChannelCollection } from "./channelCollection.js";
111
+ export {
112
+ IFluidDataStoreContextInternal,
113
+ ISnapshotDetails,
114
+ LocalFluidDataStoreContext,
115
+ LocalFluidDataStoreContextBase,
116
+ FluidDataStoreContext,
117
+ IFluidDataStoreContextProps,
118
+ ILocalFluidDataStoreContextProps,
119
+ ILocalDetachedFluidDataStoreContextProps,
120
+ IFluidDataStoreContextEvents,
121
+ } from "./dataStoreContext.js";
122
+ export { DataStoreContexts } from "./dataStoreContexts.js";
@@ -3,16 +3,18 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ import type { IdCreationRange } from "@fluidframework/id-compressor/internal";
6
7
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
7
8
  import {
9
+ IAttachMessage,
8
10
  IEnvelope,
9
11
  InboundAttachMessage,
10
- IAttachMessage,
11
- } from "@fluidframework/runtime-definitions";
12
- import type { IdCreationRange } from "@fluidframework/id-compressor";
12
+ } from "@fluidframework/runtime-definitions/internal";
13
+
13
14
  import { IDataStoreAliasMessage } from "./dataStore.js";
14
15
  import { GarbageCollectionMessage } from "./gc/index.js";
15
16
  import { IChunkedOp } from "./opLifecycle/index.js";
17
+ import { IDocumentSchemaChangeMessage } from "./summary/index.js";
16
18
 
17
19
  /**
18
20
  * @alpha
@@ -43,6 +45,11 @@ export enum ContainerMessageType {
43
45
  */
44
46
  IdAllocation = "idAllocation",
45
47
 
48
+ /**
49
+ * An op that changes document schema
50
+ */
51
+ DocumentSchemaChange = "schema",
52
+
46
53
  /**
47
54
  * Garbage collection specific op. This is sent by the summarizer client when GC runs. It's used to synchronize GC
48
55
  * state across all clients.
@@ -131,6 +138,10 @@ export type ContainerRuntimeGCMessage = TypedContainerRuntimeMessage<
131
138
  ContainerMessageType.GC,
132
139
  GarbageCollectionMessage
133
140
  >;
141
+ export type ContainerRuntimeDocumentSchemaMessage = TypedContainerRuntimeMessage<
142
+ ContainerMessageType.DocumentSchemaChange,
143
+ IDocumentSchemaChangeMessage
144
+ >;
134
145
 
135
146
  /**
136
147
  * Represents an unrecognized TypedContainerRuntimeMessage, e.g. a message from a future version of the container runtime.
@@ -161,7 +172,8 @@ export type InboundContainerRuntimeMessage =
161
172
  | ContainerRuntimeIdAllocationMessage
162
173
  | ContainerRuntimeGCMessage
163
174
  // Inbound messages may include unknown types from other clients, so we include that as a special case here
164
- | UnknownContainerRuntimeMessage;
175
+ | UnknownContainerRuntimeMessage
176
+ | ContainerRuntimeDocumentSchemaMessage;
165
177
 
166
178
  /** A {@link TypedContainerRuntimeMessage} that has been generated by the container runtime but is not yet being sent to the server. */
167
179
  export type LocalContainerRuntimeMessage =
@@ -174,7 +186,8 @@ export type LocalContainerRuntimeMessage =
174
186
  | ContainerRuntimeIdAllocationMessage
175
187
  | ContainerRuntimeGCMessage
176
188
  // In rare cases (e.g. related to stashed ops) we could have a local message of an unknown type
177
- | UnknownContainerRuntimeMessage;
189
+ | UnknownContainerRuntimeMessage
190
+ | ContainerRuntimeDocumentSchemaMessage;
178
191
 
179
192
  /** A {@link TypedContainerRuntimeMessage} that is being sent to the server from the container runtime. */
180
193
  export type OutboundContainerRuntimeMessage =
@@ -185,7 +198,8 @@ export type OutboundContainerRuntimeMessage =
185
198
  | ContainerRuntimeRejoinMessage
186
199
  | ContainerRuntimeAliasMessage
187
200
  | ContainerRuntimeIdAllocationMessage
188
- | ContainerRuntimeGCMessage;
201
+ | ContainerRuntimeGCMessage
202
+ | ContainerRuntimeDocumentSchemaMessage;
189
203
 
190
204
  /**
191
205
  * An unpacked ISequencedDocumentMessage with the inner TypedContainerRuntimeMessage type/contents/etc
@@ -13,6 +13,9 @@
13
13
  - [Note about performance and latency](#note-about-performance-and-latency)
14
14
  - [How it works](#how-it-works)
15
15
  - [How grouped batching works](#how-grouped-batching-works)
16
+ - [How the overall op flow works](#How-the-overall-op-flow-works)
17
+ - [Outbound](#outbound)
18
+ - [Inbound](#inbound)
16
19
 
17
20
  ## Introduction
18
21
 
@@ -317,3 +320,89 @@ Ungrouped batch:
317
320
  | ClientSeqNum: 1 | ClientSeqNum: 2 | ClientSeqNum: 3 | ClientSeqNum: 4 | ClientSeqNum: 5 |
318
321
  +-----------------+-----------------+-----------------+-----------------+-----------------+
319
322
  ```
323
+
324
+ ## How the overall op flow works
325
+
326
+ ### Outbound
327
+
328
+ The outbound view is how ops are accumulated and sent by the runtime with `FlushMode.TurnBased` (default).
329
+
330
+ ```mermaid
331
+ stateDiagram-v2
332
+ state "* End of JS turn *" as jsTurn
333
+ state "opGroupingManager.groupBatch" as groupBatch
334
+ state "opCompressor.compress" as compress
335
+ state "outbox.flush" as flush
336
+ state "outbox.flushInternal" as flushInternal
337
+ state "Send batch over the wire" as post
338
+ state "Send chunks (partial ops) over the wire" as postChunks
339
+ state "Store original (uncompressed, unchunked, ungrouped) batch locally" as store
340
+ state if_compression <<choice>>
341
+ [*] --> ContainerRuntime.submit
342
+ ContainerRuntime.submit --> outbox.submitAttach
343
+ ContainerRuntime.submit --> outbox.submitBlobAttach
344
+ ContainerRuntime.submit --> outbox.submit
345
+ outbox.submit --> scheduleFlush
346
+ outbox.submitAttach --> scheduleFlush
347
+ outbox.submitBlobAttach --> scheduleFlush
348
+ scheduleFlush --> jsTurn
349
+ jsTurn --> flush
350
+ flush --> outbox.flushInternalMain
351
+ flush --> outbox.flushInternalAttach
352
+ flush --> outbox.flushInternalBlobAttach
353
+ outbox.flushInternalMain --> flushInternal
354
+ outbox.flushInternalAttach --> flushInternal
355
+ outbox.flushInternalBlobAttach --> flushInternal
356
+ flushInternal --> ContainerRuntime.reSubmit: if batch has reentrant ops and should group
357
+ ContainerRuntime.reSubmit --> flushInternal
358
+ flushInternal --> groupBatch: if should group
359
+ groupBatch --> if_compression
360
+ flushInternal --> if_compression
361
+ if_compression --> post
362
+ if_compression --> compress: if compression is enabled
363
+ compress --> post
364
+ compress --> opSplitter.split: if the compressed payload is larger than the chunk size
365
+ opSplitter.split --> post
366
+ opSplitter.split --> postChunks
367
+ post --> store
368
+ ```
369
+
370
+ With `FlushMode.Immediate`(deprecated) the difference is that ops are no longer accumulated in batches, but flushed as they are submitted, instead of waiting for the end of the JS turn. All the other components work in the exact same manner with the difference that they operate on batches with length 1.
371
+
372
+ ### Inbound
373
+
374
+ There is no concept of batch in the inbound view when we receive the ops. Ops are being received and processed one-by-one and the batch is reconstructed in the runtime layer. This requires individual components to maintain their own internal state in order to keep track of the batch.
375
+
376
+ ```mermaid
377
+ stateDiagram-v2
378
+ [*] --> ContainerRuntime.process
379
+ ContainerRuntime.process --> remoteMessageProcessor
380
+ state remoteMessageProcessor {
381
+ state "process chunk" as processChunk
382
+ state "return nothing" as returnNothing
383
+ state "decompress and store" as decompress
384
+ state if_chunk <<choice>>
385
+ state if_compressed <<choice>>
386
+ state if_unrolling <<choice>>
387
+ state if_grouped <<choice>>
388
+ [*] --> if_chunk
389
+ if_chunk --> if_compressed
390
+ if_chunk --> processChunk: is chunk
391
+ processChunk --> returnNothing
392
+ processChunk --> if_compressed: is final chunk
393
+ if_compressed --> if_unrolling
394
+ if_compressed --> decompress: is compressed
395
+ decompress --> if_unrolling
396
+ if_unrolling --> if_grouped
397
+ if_unrolling --> unroll: if currently unrolling
398
+ unroll --> if_grouped
399
+ if_grouped --> return
400
+ if_grouped --> ungroup: is grouped batch
401
+ ungroup --> return
402
+ return --> [*]
403
+ returnNothing --> [*]
404
+ }
405
+ remoteMessageProcessor --> ContainerRuntime.procesCore
406
+ ```
407
+
408
+ Note that a "system op" originating outside the ContainerRuntime will pass through this flow entirely.
@@ -4,6 +4,7 @@
4
4
  */
5
5
 
6
6
  import { ICompressionRuntimeOptions } from "../containerRuntime.js";
7
+
7
8
  import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions.js";
8
9
 
9
10
  export interface IBatchManagerOptions {
@@ -3,17 +3,15 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { IBatchMessage } from "@fluidframework/container-definitions";
7
- import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
6
+ import { IBatchMessage } from "@fluidframework/container-definitions/internal";
7
+
8
8
  import { CompressionAlgorithms } from "../containerRuntime.js";
9
- import { ContainerMessageType } from "../messageTypes.js";
10
9
 
11
10
  /**
12
11
  * Batch message type used internally by the runtime
13
12
  */
14
13
  export type BatchMessage = IBatchMessage & {
15
- localOpMetadata: unknown;
16
- type: ContainerMessageType;
14
+ localOpMetadata?: unknown;
17
15
  referenceSequenceNumber: number;
18
16
  compression?: CompressionAlgorithms;
19
17
  };
@@ -59,7 +57,6 @@ export interface IChunkedOp {
59
57
  chunkId: number;
60
58
  totalChunks: number;
61
59
  contents: string;
62
- originalType: MessageType | ContainerMessageType;
63
60
  originalMetadata?: Record<string, unknown>;
64
61
  originalCompression?: string;
65
62
  }
@@ -72,18 +69,3 @@ export interface IChunkedOp {
72
69
  * will make the processor return `Processed`.
73
70
  */
74
71
  export type ProcessingState = "Processed" | "Skipped" | "Accepted";
75
-
76
- /**
77
- * Return type for functions which process remote messages
78
- */
79
- export interface IMessageProcessingResult {
80
- /**
81
- * A shallow copy of the input message if processing happened, or
82
- * the original message otherwise
83
- */
84
- readonly message: ISequencedDocumentMessage;
85
- /**
86
- * Processing result of the input message.
87
- */
88
- readonly state: ProcessingState;
89
- }
@@ -4,16 +4,10 @@
4
4
  */
5
5
 
6
6
  export { BatchManager, estimateSocketSize, BatchSequenceNumbers } from "./batchManager.js";
7
- export {
8
- BatchMessage,
9
- IBatch,
10
- IBatchCheckpoint,
11
- IChunkedOp,
12
- IMessageProcessingResult,
13
- } from "./definitions.js";
7
+ export { BatchMessage, IBatch, IBatchCheckpoint, IChunkedOp } from "./definitions.js";
14
8
  export { Outbox, getLongStack } from "./outbox.js";
15
9
  export { OpCompressor } from "./opCompressor.js";
16
10
  export { OpDecompressor } from "./opDecompressor.js";
17
- export { OpSplitter, splitOp } from "./opSplitter.js";
11
+ export { OpSplitter, splitOp, isChunkedMessage } from "./opSplitter.js";
18
12
  export { RemoteMessageProcessor, unpackRuntimeMessage } from "./remoteMessageProcessor.js";
19
- export { OpGroupingManager } from "./opGroupingManager.js";
13
+ export { OpGroupingManager, OpGroupingManagerConfig, isGroupedBatch } from "./opGroupingManager.js";
@@ -3,14 +3,16 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { createChildLogger, UsageError } from "@fluidframework/telemetry-utils";
7
- import { assert } from "@fluidframework/core-utils";
8
6
  import { IsoBuffer } from "@fluid-internal/client-utils";
9
- import { compress } from "lz4js";
10
7
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
8
+ import { assert } from "@fluidframework/core-utils/internal";
9
+ import { UsageError, createChildLogger } from "@fluidframework/telemetry-utils/internal";
10
+ import { compress } from "lz4js";
11
+
11
12
  import { CompressionAlgorithms } from "../containerRuntime.js";
13
+
12
14
  import { estimateSocketSize } from "./batchManager.js";
13
- import { IBatch, BatchMessage } from "./definitions.js";
15
+ import { BatchMessage, IBatch } from "./definitions.js";
14
16
 
15
17
  /**
16
18
  * Compresses batches of ops. It generates a single compressed op that contains
@@ -47,7 +49,6 @@ export class OpCompressor {
47
49
  // Add empty placeholder messages to reserve the sequence numbers
48
50
  for (const message of batch.content.slice(1)) {
49
51
  messages.push({
50
- type: message.type,
51
52
  localOpMetadata: message.localOpMetadata,
52
53
  metadata: message.metadata,
53
54
  referenceSequenceNumber: message.referenceSequenceNumber,