@fluidframework/container-runtime 2.0.0-dev-rc.1.0.0.232845 → 2.0.0-dev-rc.2.0.0.246488

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 (700) hide show
  1. package/.eslintrc.cjs +5 -5
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +54 -0
  4. package/README.md +45 -0
  5. package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
  6. package/api-extractor-lint.json +1 -1
  7. package/api-extractor.json +1 -1
  8. package/api-report/container-runtime.api.md +426 -33
  9. package/dist/batchTracker.d.ts +1 -2
  10. package/dist/batchTracker.d.ts.map +1 -1
  11. package/dist/batchTracker.js.map +1 -1
  12. package/dist/blobManager.d.ts +0 -5
  13. package/dist/blobManager.d.ts.map +1 -1
  14. package/dist/blobManager.js +0 -12
  15. package/dist/blobManager.js.map +1 -1
  16. package/dist/channelCollection.d.ts +226 -0
  17. package/dist/channelCollection.d.ts.map +1 -0
  18. package/dist/{dataStores.js → channelCollection.js} +455 -150
  19. package/dist/channelCollection.js.map +1 -0
  20. package/dist/connectionTelemetry.d.ts +11 -1
  21. package/dist/connectionTelemetry.d.ts.map +1 -1
  22. package/dist/connectionTelemetry.js +42 -4
  23. package/dist/connectionTelemetry.js.map +1 -1
  24. package/dist/container-runtime-alpha.d.ts +128 -48
  25. package/dist/container-runtime-beta.d.ts +67 -9
  26. package/dist/container-runtime-public.d.ts +67 -9
  27. package/dist/container-runtime-untrimmed.d.ts +692 -49
  28. package/dist/containerHandleContext.d.ts +1 -1
  29. package/dist/containerHandleContext.d.ts.map +1 -1
  30. package/dist/containerHandleContext.js.map +1 -1
  31. package/dist/containerRuntime.d.ts +81 -64
  32. package/dist/containerRuntime.d.ts.map +1 -1
  33. package/dist/containerRuntime.js +522 -379
  34. package/dist/containerRuntime.js.map +1 -1
  35. package/dist/dataStore.d.ts +2 -3
  36. package/dist/dataStore.d.ts.map +1 -1
  37. package/dist/dataStore.js +12 -11
  38. package/dist/dataStore.js.map +1 -1
  39. package/dist/dataStoreContext.d.ts +118 -41
  40. package/dist/dataStoreContext.d.ts.map +1 -1
  41. package/dist/dataStoreContext.js +248 -159
  42. package/dist/dataStoreContext.js.map +1 -1
  43. package/dist/dataStoreContexts.d.ts +2 -1
  44. package/dist/dataStoreContexts.d.ts.map +1 -1
  45. package/dist/dataStoreContexts.js +1 -0
  46. package/dist/dataStoreContexts.js.map +1 -1
  47. package/dist/dataStoreRegistry.d.ts +4 -0
  48. package/dist/dataStoreRegistry.d.ts.map +1 -1
  49. package/dist/dataStoreRegistry.js +2 -2
  50. package/dist/dataStoreRegistry.js.map +1 -1
  51. package/dist/deltaManagerSummarizerProxy.d.ts +29 -4
  52. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  53. package/dist/deltaManagerSummarizerProxy.js +91 -5
  54. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  55. package/dist/gc/garbageCollection.d.ts +12 -6
  56. package/dist/gc/garbageCollection.d.ts.map +1 -1
  57. package/dist/gc/garbageCollection.js +116 -78
  58. package/dist/gc/garbageCollection.js.map +1 -1
  59. package/dist/gc/gcConfigs.d.ts +2 -2
  60. package/dist/gc/gcConfigs.d.ts.map +1 -1
  61. package/dist/gc/gcConfigs.js +30 -23
  62. package/dist/gc/gcConfigs.js.map +1 -1
  63. package/dist/gc/gcDefinitions.d.ts +22 -13
  64. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  65. package/dist/gc/gcDefinitions.js +7 -4
  66. package/dist/gc/gcDefinitions.js.map +1 -1
  67. package/dist/gc/gcHelpers.d.ts +2 -2
  68. package/dist/gc/gcHelpers.d.ts.map +1 -1
  69. package/dist/gc/gcHelpers.js.map +1 -1
  70. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +1 -1
  71. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -1
  72. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  73. package/dist/gc/gcSummaryStateTracker.d.ts +12 -5
  74. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  75. package/dist/gc/gcSummaryStateTracker.js +18 -6
  76. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  77. package/dist/gc/gcTelemetry.d.ts +6 -7
  78. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  79. package/dist/gc/gcTelemetry.js +20 -18
  80. package/dist/gc/gcTelemetry.js.map +1 -1
  81. package/dist/gc/gcUnreferencedStateTracker.d.ts +1 -1
  82. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  83. package/dist/gc/gcUnreferencedStateTracker.js +10 -10
  84. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  85. package/dist/gc/index.d.ts +8 -8
  86. package/dist/gc/index.d.ts.map +1 -1
  87. package/dist/gc/index.js +40 -39
  88. package/dist/gc/index.js.map +1 -1
  89. package/dist/index.d.ts +11 -21
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +36 -42
  92. package/dist/index.js.map +1 -1
  93. package/dist/messageTypes.d.ts +3 -3
  94. package/dist/messageTypes.d.ts.map +1 -1
  95. package/dist/messageTypes.js.map +1 -1
  96. package/dist/opLifecycle/batchManager.d.ts +2 -2
  97. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  98. package/dist/opLifecycle/batchManager.js.map +1 -1
  99. package/dist/opLifecycle/definitions.d.ts +2 -2
  100. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  101. package/dist/opLifecycle/definitions.js.map +1 -1
  102. package/dist/opLifecycle/index.d.ts +8 -8
  103. package/dist/opLifecycle/index.d.ts.map +1 -1
  104. package/dist/opLifecycle/index.js +18 -18
  105. package/dist/opLifecycle/index.js.map +1 -1
  106. package/dist/opLifecycle/opCompressor.d.ts +1 -1
  107. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  108. package/dist/opLifecycle/opCompressor.js +4 -4
  109. package/dist/opLifecycle/opCompressor.js.map +1 -1
  110. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  111. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  112. package/dist/opLifecycle/opDecompressor.js +3 -3
  113. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  114. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  115. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  116. package/dist/opLifecycle/opGroupingManager.js +1 -10
  117. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  118. package/dist/opLifecycle/opSplitter.d.ts +1 -1
  119. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  120. package/dist/opLifecycle/opSplitter.js +5 -5
  121. package/dist/opLifecycle/opSplitter.js.map +1 -1
  122. package/dist/opLifecycle/outbox.d.ts +7 -7
  123. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  124. package/dist/opLifecycle/outbox.js +32 -18
  125. package/dist/opLifecycle/outbox.js.map +1 -1
  126. package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -4
  127. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  128. package/dist/opLifecycle/remoteMessageProcessor.js +7 -4
  129. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  130. package/dist/package.json +3 -0
  131. package/dist/packageVersion.d.ts +1 -1
  132. package/dist/packageVersion.js +1 -1
  133. package/dist/packageVersion.js.map +1 -1
  134. package/dist/pendingStateManager.d.ts +2 -1
  135. package/dist/pendingStateManager.d.ts.map +1 -1
  136. package/dist/pendingStateManager.js +18 -10
  137. package/dist/pendingStateManager.js.map +1 -1
  138. package/dist/scheduleManager.d.ts +1 -2
  139. package/dist/scheduleManager.d.ts.map +1 -1
  140. package/dist/scheduleManager.js +9 -5
  141. package/dist/scheduleManager.js.map +1 -1
  142. package/dist/summary/index.d.ts +12 -12
  143. package/dist/summary/index.d.ts.map +1 -1
  144. package/dist/summary/index.js +43 -43
  145. package/dist/summary/index.js.map +1 -1
  146. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  147. package/dist/summary/orderedClientElection.js +12 -8
  148. package/dist/summary/orderedClientElection.js.map +1 -1
  149. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  150. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  151. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  152. package/dist/summary/runningSummarizer.d.ts +5 -4
  153. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  154. package/dist/summary/runningSummarizer.js +47 -32
  155. package/dist/summary/runningSummarizer.js.map +1 -1
  156. package/dist/summary/summarizer.d.ts +4 -4
  157. package/dist/summary/summarizer.d.ts.map +1 -1
  158. package/dist/summary/summarizer.js +6 -6
  159. package/dist/summary/summarizer.js.map +1 -1
  160. package/dist/summary/summarizerClientElection.d.ts +2 -2
  161. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  162. package/dist/summary/summarizerClientElection.js.map +1 -1
  163. package/dist/summary/summarizerHeuristics.d.ts +3 -3
  164. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  165. package/dist/summary/summarizerHeuristics.js.map +1 -1
  166. package/dist/summary/summarizerNode/index.d.ts +3 -3
  167. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  168. package/dist/summary/summarizerNode/index.js +4 -4
  169. package/dist/summary/summarizerNode/index.js.map +1 -1
  170. package/dist/summary/summarizerNode/summarizerNode.d.ts +16 -5
  171. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  172. package/dist/summary/summarizerNode/summarizerNode.js +40 -10
  173. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  174. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +9 -1
  175. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  176. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  177. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +3 -4
  178. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  179. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +12 -12
  180. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  181. package/dist/summary/summarizerTypes.d.ts +9 -20
  182. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  183. package/dist/summary/summarizerTypes.js.map +1 -1
  184. package/dist/summary/summaryFormat.d.ts +15 -2
  185. package/dist/summary/summaryFormat.d.ts.map +1 -1
  186. package/dist/summary/summaryFormat.js.map +1 -1
  187. package/dist/summary/summaryGenerator.d.ts +6 -5
  188. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  189. package/dist/summary/summaryGenerator.js +10 -1
  190. package/dist/summary/summaryGenerator.js.map +1 -1
  191. package/dist/summary/summaryManager.d.ts +5 -6
  192. package/dist/summary/summaryManager.d.ts.map +1 -1
  193. package/dist/summary/summaryManager.js +4 -5
  194. package/dist/summary/summaryManager.js.map +1 -1
  195. package/dist/tsdoc-metadata.json +1 -1
  196. package/lib/{batchTracker.d.mts → batchTracker.d.ts} +2 -3
  197. package/lib/batchTracker.d.ts.map +1 -0
  198. package/lib/{batchTracker.mjs → batchTracker.js} +1 -1
  199. package/lib/batchTracker.js.map +1 -0
  200. package/lib/{blobManager.d.mts → blobManager.d.ts} +1 -6
  201. package/lib/blobManager.d.ts.map +1 -0
  202. package/lib/{blobManager.mjs → blobManager.js} +1 -13
  203. package/lib/blobManager.js.map +1 -0
  204. package/lib/channelCollection.d.ts +226 -0
  205. package/lib/channelCollection.d.ts.map +1 -0
  206. package/lib/{dataStores.mjs → channelCollection.js} +442 -140
  207. package/lib/channelCollection.js.map +1 -0
  208. package/lib/{connectionTelemetry.d.mts → connectionTelemetry.d.ts} +12 -2
  209. package/lib/connectionTelemetry.d.ts.map +1 -0
  210. package/lib/{connectionTelemetry.mjs → connectionTelemetry.js} +43 -5
  211. package/lib/connectionTelemetry.js.map +1 -0
  212. package/lib/{container-runtime-alpha.d.mts → container-runtime-alpha.d.ts} +128 -48
  213. package/lib/{container-runtime-beta.d.mts → container-runtime-beta.d.ts} +67 -9
  214. package/lib/{container-runtime-public.d.mts → container-runtime-public.d.ts} +67 -9
  215. package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +692 -49
  216. package/lib/{containerHandleContext.d.mts → containerHandleContext.d.ts} +2 -2
  217. package/lib/containerHandleContext.d.ts.map +1 -0
  218. package/lib/{containerHandleContext.mjs → containerHandleContext.js} +1 -1
  219. package/lib/containerHandleContext.js.map +1 -0
  220. package/lib/{containerRuntime.d.mts → containerRuntime.d.ts} +86 -65
  221. package/lib/containerRuntime.d.ts.map +1 -0
  222. package/lib/{containerRuntime.mjs → containerRuntime.js} +444 -303
  223. package/lib/containerRuntime.js.map +1 -0
  224. package/lib/{dataStore.d.mts → dataStore.d.ts} +3 -4
  225. package/lib/dataStore.d.ts.map +1 -0
  226. package/lib/{dataStore.mjs → dataStore.js} +13 -12
  227. package/lib/dataStore.js.map +1 -0
  228. package/lib/{dataStoreContext.d.mts → dataStoreContext.d.ts} +119 -42
  229. package/lib/dataStoreContext.d.ts.map +1 -0
  230. package/lib/{dataStoreContext.mjs → dataStoreContext.js} +240 -151
  231. package/lib/dataStoreContext.js.map +1 -0
  232. package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +3 -2
  233. package/lib/dataStoreContexts.d.ts.map +1 -0
  234. package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +2 -1
  235. package/lib/dataStoreContexts.js.map +1 -0
  236. package/lib/{dataStoreRegistry.d.mts → dataStoreRegistry.d.ts} +5 -1
  237. package/lib/dataStoreRegistry.d.ts.map +1 -0
  238. package/lib/{dataStoreRegistry.mjs → dataStoreRegistry.js} +5 -1
  239. package/lib/dataStoreRegistry.js.map +1 -0
  240. package/{dist/deltaManagerProxyBase.d.ts → lib/deltaManagerSummarizerProxy.d.ts} +16 -7
  241. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
  242. package/lib/deltaManagerSummarizerProxy.js +124 -0
  243. package/lib/deltaManagerSummarizerProxy.js.map +1 -0
  244. package/lib/{deltaScheduler.d.mts → deltaScheduler.d.ts} +1 -1
  245. package/lib/deltaScheduler.d.ts.map +1 -0
  246. package/lib/{deltaScheduler.mjs → deltaScheduler.js} +1 -1
  247. package/lib/deltaScheduler.js.map +1 -0
  248. package/lib/{error.d.mts → error.d.ts} +1 -1
  249. package/lib/error.d.ts.map +1 -0
  250. package/lib/{error.mjs → error.js} +1 -1
  251. package/lib/error.js.map +1 -0
  252. package/lib/gc/{garbageCollection.d.mts → garbageCollection.d.ts} +13 -7
  253. package/lib/gc/garbageCollection.d.ts.map +1 -0
  254. package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +79 -41
  255. package/lib/gc/garbageCollection.js.map +1 -0
  256. package/lib/gc/{gcConfigs.d.mts → gcConfigs.d.ts} +3 -3
  257. package/lib/gc/gcConfigs.d.ts.map +1 -0
  258. package/lib/gc/{gcConfigs.mjs → gcConfigs.js} +14 -7
  259. package/lib/gc/gcConfigs.js.map +1 -0
  260. package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +23 -14
  261. package/lib/gc/gcDefinitions.d.ts.map +1 -0
  262. package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +7 -4
  263. package/lib/gc/gcDefinitions.js.map +1 -0
  264. package/lib/gc/{gcHelpers.d.mts → gcHelpers.d.ts} +3 -3
  265. package/lib/gc/{gcHelpers.d.mts.map → gcHelpers.d.ts.map} +1 -1
  266. package/lib/gc/{gcHelpers.mjs → gcHelpers.js} +1 -1
  267. package/lib/gc/gcHelpers.js.map +1 -0
  268. package/lib/gc/{gcReferenceGraphAlgorithm.d.mts → gcReferenceGraphAlgorithm.d.ts} +2 -2
  269. package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  270. package/lib/gc/{gcReferenceGraphAlgorithm.mjs → gcReferenceGraphAlgorithm.js} +1 -1
  271. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
  272. package/lib/gc/{gcSummaryDefinitions.d.mts → gcSummaryDefinitions.d.ts} +1 -1
  273. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
  274. package/lib/gc/{gcSummaryDefinitions.mjs → gcSummaryDefinitions.js} +1 -1
  275. package/lib/gc/gcSummaryDefinitions.js.map +1 -0
  276. package/lib/gc/{gcSummaryStateTracker.d.mts → gcSummaryStateTracker.d.ts} +13 -6
  277. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
  278. package/lib/gc/{gcSummaryStateTracker.mjs → gcSummaryStateTracker.js} +17 -5
  279. package/lib/gc/gcSummaryStateTracker.js.map +1 -0
  280. package/lib/gc/{gcTelemetry.d.mts → gcTelemetry.d.ts} +7 -8
  281. package/lib/gc/gcTelemetry.d.ts.map +1 -0
  282. package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +5 -3
  283. package/lib/gc/gcTelemetry.js.map +1 -0
  284. package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +2 -2
  285. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  286. package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +2 -2
  287. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
  288. package/lib/gc/index.d.ts +13 -0
  289. package/lib/gc/index.d.ts.map +1 -0
  290. package/lib/gc/{index.mjs → index.js} +8 -8
  291. package/lib/gc/index.js.map +1 -0
  292. package/lib/{index.d.mts → index.d.ts} +12 -22
  293. package/lib/index.d.ts.map +1 -0
  294. package/lib/index.js +15 -0
  295. package/lib/index.js.map +1 -0
  296. package/lib/{messageTypes.d.mts → messageTypes.d.ts} +4 -4
  297. package/lib/messageTypes.d.ts.map +1 -0
  298. package/lib/{messageTypes.mjs → messageTypes.js} +1 -1
  299. package/lib/messageTypes.js.map +1 -0
  300. package/lib/{metadata.d.mts → metadata.d.ts} +1 -1
  301. package/lib/metadata.d.ts.map +1 -0
  302. package/lib/{metadata.mjs → metadata.js} +1 -1
  303. package/lib/metadata.js.map +1 -0
  304. package/lib/opLifecycle/{batchManager.d.mts → batchManager.d.ts} +3 -3
  305. package/lib/opLifecycle/batchManager.d.ts.map +1 -0
  306. package/lib/opLifecycle/{batchManager.mjs → batchManager.js} +1 -1
  307. package/lib/opLifecycle/batchManager.js.map +1 -0
  308. package/lib/opLifecycle/{definitions.d.mts → definitions.d.ts} +3 -3
  309. package/lib/opLifecycle/definitions.d.ts.map +1 -0
  310. package/lib/opLifecycle/{definitions.mjs → definitions.js} +1 -1
  311. package/lib/opLifecycle/definitions.js.map +1 -0
  312. package/lib/opLifecycle/index.d.ts +13 -0
  313. package/lib/opLifecycle/index.d.ts.map +1 -0
  314. package/lib/opLifecycle/index.js +12 -0
  315. package/lib/opLifecycle/index.js.map +1 -0
  316. package/lib/opLifecycle/{opCompressor.d.mts → opCompressor.d.ts} +2 -2
  317. package/lib/opLifecycle/opCompressor.d.ts.map +1 -0
  318. package/lib/opLifecycle/{opCompressor.mjs → opCompressor.js} +3 -3
  319. package/lib/opLifecycle/opCompressor.js.map +1 -0
  320. package/lib/opLifecycle/{opDecompressor.d.mts → opDecompressor.d.ts} +2 -2
  321. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -0
  322. package/lib/opLifecycle/{opDecompressor.mjs → opDecompressor.js} +2 -2
  323. package/lib/opLifecycle/opDecompressor.js.map +1 -0
  324. package/lib/opLifecycle/{opGroupingManager.d.mts → opGroupingManager.d.ts} +2 -2
  325. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
  326. package/lib/opLifecycle/{opGroupingManager.mjs → opGroupingManager.js} +2 -11
  327. package/lib/opLifecycle/opGroupingManager.js.map +1 -0
  328. package/lib/opLifecycle/{opSplitter.d.mts → opSplitter.d.ts} +2 -2
  329. package/lib/opLifecycle/opSplitter.d.ts.map +1 -0
  330. package/lib/opLifecycle/{opSplitter.mjs → opSplitter.js} +3 -3
  331. package/lib/opLifecycle/opSplitter.js.map +1 -0
  332. package/lib/opLifecycle/{outbox.d.mts → outbox.d.ts} +8 -8
  333. package/lib/opLifecycle/outbox.d.ts.map +1 -0
  334. package/lib/opLifecycle/{outbox.mjs → outbox.js} +24 -10
  335. package/lib/opLifecycle/outbox.js.map +1 -0
  336. package/lib/opLifecycle/{remoteMessageProcessor.d.mts → remoteMessageProcessor.d.ts} +5 -5
  337. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  338. package/lib/opLifecycle/{remoteMessageProcessor.mjs → remoteMessageProcessor.js} +7 -4
  339. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -0
  340. package/lib/{opProperties.d.mts → opProperties.d.ts} +1 -1
  341. package/lib/opProperties.d.ts.map +1 -0
  342. package/lib/{opProperties.mjs → opProperties.js} +1 -1
  343. package/lib/opProperties.js.map +1 -0
  344. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  345. package/lib/packageVersion.d.ts.map +1 -0
  346. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  347. package/lib/packageVersion.js.map +1 -0
  348. package/lib/{pendingStateManager.d.mts → pendingStateManager.d.ts} +3 -2
  349. package/lib/pendingStateManager.d.ts.map +1 -0
  350. package/lib/{pendingStateManager.mjs → pendingStateManager.js} +18 -10
  351. package/lib/pendingStateManager.js.map +1 -0
  352. package/lib/{scheduleManager.d.mts → scheduleManager.d.ts} +6 -3
  353. package/lib/scheduleManager.d.ts.map +1 -0
  354. package/lib/{scheduleManager.mjs → scheduleManager.js} +7 -3
  355. package/lib/scheduleManager.js.map +1 -0
  356. package/lib/{storageServiceWithAttachBlobs.d.mts → storageServiceWithAttachBlobs.d.ts} +1 -1
  357. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
  358. package/lib/{storageServiceWithAttachBlobs.mjs → storageServiceWithAttachBlobs.js} +1 -1
  359. package/lib/storageServiceWithAttachBlobs.js.map +1 -0
  360. package/lib/summary/{index.d.mts → index.d.ts} +13 -13
  361. package/lib/summary/index.d.ts.map +1 -0
  362. package/lib/summary/{index.mjs → index.js} +12 -12
  363. package/lib/summary/index.js.map +1 -0
  364. package/lib/summary/{orderedClientElection.d.mts → orderedClientElection.d.ts} +5 -1
  365. package/lib/summary/orderedClientElection.d.ts.map +1 -0
  366. package/lib/summary/{orderedClientElection.mjs → orderedClientElection.js} +6 -2
  367. package/lib/summary/orderedClientElection.js.map +1 -0
  368. package/lib/summary/{runWhileConnectedCoordinator.d.mts → runWhileConnectedCoordinator.d.ts} +2 -2
  369. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  370. package/lib/summary/{runWhileConnectedCoordinator.mjs → runWhileConnectedCoordinator.js} +1 -1
  371. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
  372. package/lib/summary/{runningSummarizer.d.mts → runningSummarizer.d.ts} +6 -5
  373. package/lib/summary/runningSummarizer.d.ts.map +1 -0
  374. package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +41 -26
  375. package/lib/summary/runningSummarizer.js.map +1 -0
  376. package/lib/summary/{summarizer.d.mts → summarizer.d.ts} +5 -5
  377. package/lib/summary/summarizer.d.ts.map +1 -0
  378. package/lib/summary/{summarizer.mjs → summarizer.js} +4 -4
  379. package/lib/summary/summarizer.js.map +1 -0
  380. package/lib/summary/{summarizerClientElection.d.mts → summarizerClientElection.d.ts} +3 -3
  381. package/lib/summary/summarizerClientElection.d.ts.map +1 -0
  382. package/lib/summary/{summarizerClientElection.mjs → summarizerClientElection.js} +1 -1
  383. package/lib/summary/summarizerClientElection.js.map +1 -0
  384. package/lib/summary/{summarizerHeuristics.d.mts → summarizerHeuristics.d.ts} +4 -4
  385. package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
  386. package/lib/summary/{summarizerHeuristics.mjs → summarizerHeuristics.js} +1 -1
  387. package/lib/summary/summarizerHeuristics.js.map +1 -0
  388. package/lib/summary/summarizerNode/{index.d.mts → index.d.ts} +4 -4
  389. package/lib/summary/summarizerNode/index.d.ts.map +1 -0
  390. package/lib/summary/summarizerNode/index.js +7 -0
  391. package/lib/summary/summarizerNode/index.js.map +1 -0
  392. package/lib/summary/summarizerNode/{summarizerNode.d.mts → summarizerNode.d.ts} +17 -6
  393. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  394. package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +34 -4
  395. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
  396. package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +10 -2
  397. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  398. package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -1
  399. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
  400. package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +4 -5
  401. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  402. package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +7 -7
  403. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
  404. package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +10 -21
  405. package/lib/summary/summarizerTypes.d.ts.map +1 -0
  406. package/lib/summary/{summarizerTypes.mjs → summarizerTypes.js} +1 -1
  407. package/lib/summary/summarizerTypes.js.map +1 -0
  408. package/lib/summary/{summaryCollection.d.mts → summaryCollection.d.ts} +1 -1
  409. package/lib/summary/summaryCollection.d.ts.map +1 -0
  410. package/lib/summary/{summaryCollection.mjs → summaryCollection.js} +1 -1
  411. package/lib/summary/summaryCollection.js.map +1 -0
  412. package/lib/summary/{summaryFormat.d.mts → summaryFormat.d.ts} +16 -3
  413. package/lib/summary/summaryFormat.d.ts.map +1 -0
  414. package/lib/summary/{summaryFormat.mjs → summaryFormat.js} +1 -1
  415. package/lib/summary/summaryFormat.js.map +1 -0
  416. package/lib/summary/{summaryGenerator.d.mts → summaryGenerator.d.ts} +7 -6
  417. package/lib/summary/summaryGenerator.d.ts.map +1 -0
  418. package/lib/summary/{summaryGenerator.mjs → summaryGenerator.js} +11 -2
  419. package/lib/summary/summaryGenerator.js.map +1 -0
  420. package/lib/summary/{summaryManager.d.mts → summaryManager.d.ts} +6 -7
  421. package/lib/summary/summaryManager.d.ts.map +1 -0
  422. package/lib/summary/{summaryManager.mjs → summaryManager.js} +4 -5
  423. package/lib/summary/summaryManager.js.map +1 -0
  424. package/lib/test/batchTracker.spec.js +88 -0
  425. package/lib/test/batchTracker.spec.js.map +1 -0
  426. package/lib/test/blobManager.spec.js +835 -0
  427. package/lib/test/blobManager.spec.js.map +1 -0
  428. package/lib/test/channelCollection.spec.js +138 -0
  429. package/lib/test/channelCollection.spec.js.map +1 -0
  430. package/lib/test/containerRuntime.spec.js +1748 -0
  431. package/lib/test/containerRuntime.spec.js.map +1 -0
  432. package/lib/test/dataStoreContext.spec.js +771 -0
  433. package/lib/test/dataStoreContext.spec.js.map +1 -0
  434. package/lib/test/dataStoreCreation.spec.js +303 -0
  435. package/lib/test/dataStoreCreation.spec.js.map +1 -0
  436. package/lib/test/dataStoreRegistry.spec.js +26 -0
  437. package/lib/test/dataStoreRegistry.spec.js.map +1 -0
  438. package/lib/test/fuzz/fuzzUtils.js +66 -0
  439. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  440. package/lib/test/fuzz/summarizer.fuzz.spec.js +31 -0
  441. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +1 -0
  442. package/lib/test/fuzz/summarizerFuzzMocks.js +162 -0
  443. package/lib/test/fuzz/summarizerFuzzMocks.js.map +1 -0
  444. package/lib/test/fuzz/summarizerFuzzSuite.js +106 -0
  445. package/lib/test/fuzz/summarizerFuzzSuite.js.map +1 -0
  446. package/lib/test/gc/garbageCollection.spec.js +1464 -0
  447. package/lib/test/gc/garbageCollection.spec.js.map +1 -0
  448. package/lib/test/gc/gcConfigs.spec.js +689 -0
  449. package/lib/test/gc/gcConfigs.spec.js.map +1 -0
  450. package/lib/test/gc/gcHelpers.spec.js +110 -0
  451. package/lib/test/gc/gcHelpers.spec.js.map +1 -0
  452. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +68 -0
  453. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +1 -0
  454. package/lib/test/gc/gcStats.spec.js +390 -0
  455. package/lib/test/gc/gcStats.spec.js.map +1 -0
  456. package/lib/test/gc/gcSummaryStateTracker.spec.js +228 -0
  457. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +1 -0
  458. package/lib/test/gc/gcTelemetry.spec.js +530 -0
  459. package/lib/test/gc/gcTelemetry.spec.js.map +1 -0
  460. package/lib/test/gc/gcUnitTestHelpers.js +29 -0
  461. package/lib/test/gc/gcUnitTestHelpers.js.map +1 -0
  462. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +192 -0
  463. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +1 -0
  464. package/lib/test/getPendingBlobs.spec.js +193 -0
  465. package/lib/test/getPendingBlobs.spec.js.map +1 -0
  466. package/lib/test/hardwareStats.spec.js +93 -0
  467. package/lib/test/hardwareStats.spec.js.map +1 -0
  468. package/lib/test/index.js +6 -0
  469. package/lib/test/index.js.map +1 -0
  470. package/lib/test/opLifecycle/OpGroupingManager.spec.js +225 -0
  471. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +1 -0
  472. package/lib/test/opLifecycle/batchManager.spec.js +189 -0
  473. package/lib/test/opLifecycle/batchManager.spec.js.map +1 -0
  474. package/lib/test/opLifecycle/opCompressor.spec.js +74 -0
  475. package/lib/test/opLifecycle/opCompressor.spec.js.map +1 -0
  476. package/lib/test/opLifecycle/opDecompressor.spec.js +218 -0
  477. package/lib/test/opLifecycle/opDecompressor.spec.js.map +1 -0
  478. package/lib/test/opLifecycle/opSplitter.spec.js +272 -0
  479. package/lib/test/opLifecycle/opSplitter.spec.js.map +1 -0
  480. package/lib/test/opLifecycle/outbox.spec.js +675 -0
  481. package/lib/test/opLifecycle/outbox.spec.js.map +1 -0
  482. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +196 -0
  483. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +1 -0
  484. package/lib/test/pendingStateManager.spec.js +329 -0
  485. package/lib/test/pendingStateManager.spec.js.map +1 -0
  486. package/lib/test/scheduleManager.spec.js +270 -0
  487. package/lib/test/scheduleManager.spec.js.map +1 -0
  488. package/lib/test/summarizerNode.spec.js +326 -0
  489. package/lib/test/summarizerNode.spec.js.map +1 -0
  490. package/lib/test/summarizerNodeWithGc.spec.js +318 -0
  491. package/lib/test/summarizerNodeWithGc.spec.js.map +1 -0
  492. package/lib/test/summary/orderedClientElection.spec.js +535 -0
  493. package/lib/test/summary/orderedClientElection.spec.js.map +1 -0
  494. package/lib/test/summary/runningSummarizer.spec.js +1349 -0
  495. package/lib/test/summary/runningSummarizer.spec.js.map +1 -0
  496. package/lib/test/summary/summarizer.spec.js +29 -0
  497. package/lib/test/summary/summarizer.spec.js.map +1 -0
  498. package/lib/test/summary/summarizerClientElection.spec.js +436 -0
  499. package/lib/test/summary/summarizerClientElection.spec.js.map +1 -0
  500. package/lib/test/summary/summarizerHeuristics.spec.js +289 -0
  501. package/lib/test/summary/summarizerHeuristics.spec.js.map +1 -0
  502. package/lib/test/summary/summaryCollection.spec.js +200 -0
  503. package/lib/test/summary/summaryCollection.spec.js.map +1 -0
  504. package/lib/test/summary/summaryManager.spec.js +430 -0
  505. package/lib/test/summary/summaryManager.spec.js.map +1 -0
  506. package/lib/test/summary/testQuorumClients.js +34 -0
  507. package/lib/test/summary/testQuorumClients.js.map +1 -0
  508. package/lib/test/throttler.spec.js +175 -0
  509. package/lib/test/throttler.spec.js.map +1 -0
  510. package/lib/test/types/validateContainerRuntimePrevious.generated.js +180 -0
  511. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +1 -0
  512. package/lib/{throttler.d.mts → throttler.d.ts} +1 -1
  513. package/lib/throttler.d.ts.map +1 -0
  514. package/lib/{throttler.mjs → throttler.js} +1 -1
  515. package/lib/throttler.js.map +1 -0
  516. package/package.json +101 -88
  517. package/src/batchTracker.ts +1 -1
  518. package/src/blobManager.ts +1 -15
  519. package/src/{dataStores.ts → channelCollection.ts} +629 -178
  520. package/src/connectionTelemetry.ts +42 -3
  521. package/src/containerHandleContext.ts +1 -1
  522. package/src/containerRuntime.ts +626 -430
  523. package/src/dataStore.ts +16 -15
  524. package/src/dataStoreContext.ts +376 -216
  525. package/src/dataStoreContexts.ts +2 -1
  526. package/src/dataStoreRegistry.ts +1 -0
  527. package/src/deltaManagerSummarizerProxy.ts +132 -7
  528. package/src/gc/garbageCollection.ts +84 -44
  529. package/src/gc/gcConfigs.ts +17 -7
  530. package/src/gc/gcDefinitions.ts +23 -13
  531. package/src/gc/gcHelpers.ts +2 -2
  532. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  533. package/src/gc/gcSummaryStateTracker.ts +19 -7
  534. package/src/gc/gcTelemetry.ts +9 -7
  535. package/src/gc/gcUnreferencedStateTracker.ts +1 -1
  536. package/src/gc/index.ts +10 -9
  537. package/src/index.ts +28 -27
  538. package/src/messageTypes.ts +3 -3
  539. package/src/opLifecycle/README.md +2 -4
  540. package/src/opLifecycle/batchManager.ts +2 -2
  541. package/src/opLifecycle/definitions.ts +2 -2
  542. package/src/opLifecycle/index.ts +8 -8
  543. package/src/opLifecycle/opCompressor.ts +3 -3
  544. package/src/opLifecycle/opDecompressor.ts +3 -3
  545. package/src/opLifecycle/opGroupingManager.ts +3 -12
  546. package/src/opLifecycle/opSplitter.ts +3 -3
  547. package/src/opLifecycle/outbox.ts +43 -16
  548. package/src/opLifecycle/remoteMessageProcessor.ts +10 -6
  549. package/src/packageVersion.ts +1 -1
  550. package/src/pendingStateManager.ts +19 -13
  551. package/src/scheduleManager.ts +5 -4
  552. package/src/summary/index.ts +13 -12
  553. package/src/summary/orderedClientElection.ts +2 -1
  554. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  555. package/src/summary/runningSummarizer.ts +52 -32
  556. package/src/summary/summarizer.ts +7 -7
  557. package/src/summary/summarizerClientElection.ts +2 -2
  558. package/src/summary/summarizerHeuristics.ts +3 -3
  559. package/src/summary/summarizerNode/index.ts +6 -3
  560. package/src/summary/summarizerNode/summarizerNode.ts +50 -5
  561. package/src/summary/summarizerNode/summarizerNodeUtils.ts +14 -1
  562. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -11
  563. package/src/summary/summarizerTypes.ts +11 -23
  564. package/src/summary/summaryFormat.ts +16 -2
  565. package/src/summary/summaryGenerator.ts +16 -4
  566. package/src/summary/summaryManager.ts +6 -7
  567. package/tsconfig.cjs.json +7 -0
  568. package/tsconfig.json +2 -5
  569. package/dist/dataStores.d.ts +0 -151
  570. package/dist/dataStores.d.ts.map +0 -1
  571. package/dist/dataStores.js.map +0 -1
  572. package/dist/deltaManagerProxyBase.d.ts.map +0 -1
  573. package/dist/deltaManagerProxyBase.js +0 -77
  574. package/dist/deltaManagerProxyBase.js.map +0 -1
  575. package/lib/batchTracker.d.mts.map +0 -1
  576. package/lib/batchTracker.mjs.map +0 -1
  577. package/lib/blobManager.d.mts.map +0 -1
  578. package/lib/blobManager.mjs.map +0 -1
  579. package/lib/connectionTelemetry.d.mts.map +0 -1
  580. package/lib/connectionTelemetry.mjs.map +0 -1
  581. package/lib/containerHandleContext.d.mts.map +0 -1
  582. package/lib/containerHandleContext.mjs.map +0 -1
  583. package/lib/containerRuntime.d.mts.map +0 -1
  584. package/lib/containerRuntime.mjs.map +0 -1
  585. package/lib/dataStore.d.mts.map +0 -1
  586. package/lib/dataStore.mjs.map +0 -1
  587. package/lib/dataStoreContext.d.mts.map +0 -1
  588. package/lib/dataStoreContext.mjs.map +0 -1
  589. package/lib/dataStoreContexts.d.mts.map +0 -1
  590. package/lib/dataStoreContexts.mjs.map +0 -1
  591. package/lib/dataStoreRegistry.d.mts.map +0 -1
  592. package/lib/dataStoreRegistry.mjs.map +0 -1
  593. package/lib/dataStores.d.mts +0 -151
  594. package/lib/dataStores.d.mts.map +0 -1
  595. package/lib/dataStores.mjs.map +0 -1
  596. package/lib/deltaManagerProxyBase.d.mts +0 -35
  597. package/lib/deltaManagerProxyBase.d.mts.map +0 -1
  598. package/lib/deltaManagerProxyBase.mjs +0 -73
  599. package/lib/deltaManagerProxyBase.mjs.map +0 -1
  600. package/lib/deltaManagerSummarizerProxy.d.mts +0 -19
  601. package/lib/deltaManagerSummarizerProxy.d.mts.map +0 -1
  602. package/lib/deltaManagerSummarizerProxy.mjs +0 -38
  603. package/lib/deltaManagerSummarizerProxy.mjs.map +0 -1
  604. package/lib/deltaScheduler.d.mts.map +0 -1
  605. package/lib/deltaScheduler.mjs.map +0 -1
  606. package/lib/error.d.mts.map +0 -1
  607. package/lib/error.mjs.map +0 -1
  608. package/lib/gc/garbageCollection.d.mts.map +0 -1
  609. package/lib/gc/garbageCollection.mjs.map +0 -1
  610. package/lib/gc/gcConfigs.d.mts.map +0 -1
  611. package/lib/gc/gcConfigs.mjs.map +0 -1
  612. package/lib/gc/gcDefinitions.d.mts.map +0 -1
  613. package/lib/gc/gcDefinitions.mjs.map +0 -1
  614. package/lib/gc/gcHelpers.mjs.map +0 -1
  615. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +0 -1
  616. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +0 -1
  617. package/lib/gc/gcSummaryDefinitions.d.mts.map +0 -1
  618. package/lib/gc/gcSummaryDefinitions.mjs.map +0 -1
  619. package/lib/gc/gcSummaryStateTracker.d.mts.map +0 -1
  620. package/lib/gc/gcSummaryStateTracker.mjs.map +0 -1
  621. package/lib/gc/gcTelemetry.d.mts.map +0 -1
  622. package/lib/gc/gcTelemetry.mjs.map +0 -1
  623. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +0 -1
  624. package/lib/gc/gcUnreferencedStateTracker.mjs.map +0 -1
  625. package/lib/gc/index.d.mts +0 -13
  626. package/lib/gc/index.d.mts.map +0 -1
  627. package/lib/gc/index.mjs.map +0 -1
  628. package/lib/index.d.mts.map +0 -1
  629. package/lib/index.mjs +0 -25
  630. package/lib/index.mjs.map +0 -1
  631. package/lib/messageTypes.d.mts.map +0 -1
  632. package/lib/messageTypes.mjs.map +0 -1
  633. package/lib/metadata.d.mts.map +0 -1
  634. package/lib/metadata.mjs.map +0 -1
  635. package/lib/opLifecycle/batchManager.d.mts.map +0 -1
  636. package/lib/opLifecycle/batchManager.mjs.map +0 -1
  637. package/lib/opLifecycle/definitions.d.mts.map +0 -1
  638. package/lib/opLifecycle/definitions.mjs.map +0 -1
  639. package/lib/opLifecycle/index.d.mts +0 -13
  640. package/lib/opLifecycle/index.d.mts.map +0 -1
  641. package/lib/opLifecycle/index.mjs +0 -12
  642. package/lib/opLifecycle/index.mjs.map +0 -1
  643. package/lib/opLifecycle/opCompressor.d.mts.map +0 -1
  644. package/lib/opLifecycle/opCompressor.mjs.map +0 -1
  645. package/lib/opLifecycle/opDecompressor.d.mts.map +0 -1
  646. package/lib/opLifecycle/opDecompressor.mjs.map +0 -1
  647. package/lib/opLifecycle/opGroupingManager.d.mts.map +0 -1
  648. package/lib/opLifecycle/opGroupingManager.mjs.map +0 -1
  649. package/lib/opLifecycle/opSplitter.d.mts.map +0 -1
  650. package/lib/opLifecycle/opSplitter.mjs.map +0 -1
  651. package/lib/opLifecycle/outbox.d.mts.map +0 -1
  652. package/lib/opLifecycle/outbox.mjs.map +0 -1
  653. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +0 -1
  654. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +0 -1
  655. package/lib/opProperties.d.mts.map +0 -1
  656. package/lib/opProperties.mjs.map +0 -1
  657. package/lib/packageVersion.d.mts.map +0 -1
  658. package/lib/packageVersion.mjs.map +0 -1
  659. package/lib/pendingStateManager.d.mts.map +0 -1
  660. package/lib/pendingStateManager.mjs.map +0 -1
  661. package/lib/scheduleManager.d.mts.map +0 -1
  662. package/lib/scheduleManager.mjs.map +0 -1
  663. package/lib/storageServiceWithAttachBlobs.d.mts.map +0 -1
  664. package/lib/storageServiceWithAttachBlobs.mjs.map +0 -1
  665. package/lib/summary/index.d.mts.map +0 -1
  666. package/lib/summary/index.mjs.map +0 -1
  667. package/lib/summary/orderedClientElection.d.mts.map +0 -1
  668. package/lib/summary/orderedClientElection.mjs.map +0 -1
  669. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +0 -1
  670. package/lib/summary/runWhileConnectedCoordinator.mjs.map +0 -1
  671. package/lib/summary/runningSummarizer.d.mts.map +0 -1
  672. package/lib/summary/runningSummarizer.mjs.map +0 -1
  673. package/lib/summary/summarizer.d.mts.map +0 -1
  674. package/lib/summary/summarizer.mjs.map +0 -1
  675. package/lib/summary/summarizerClientElection.d.mts.map +0 -1
  676. package/lib/summary/summarizerClientElection.mjs.map +0 -1
  677. package/lib/summary/summarizerHeuristics.d.mts.map +0 -1
  678. package/lib/summary/summarizerHeuristics.mjs.map +0 -1
  679. package/lib/summary/summarizerNode/index.d.mts.map +0 -1
  680. package/lib/summary/summarizerNode/index.mjs +0 -7
  681. package/lib/summary/summarizerNode/index.mjs.map +0 -1
  682. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +0 -1
  683. package/lib/summary/summarizerNode/summarizerNode.mjs.map +0 -1
  684. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +0 -1
  685. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +0 -1
  686. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +0 -1
  687. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +0 -1
  688. package/lib/summary/summarizerTypes.d.mts.map +0 -1
  689. package/lib/summary/summarizerTypes.mjs.map +0 -1
  690. package/lib/summary/summaryCollection.d.mts.map +0 -1
  691. package/lib/summary/summaryCollection.mjs.map +0 -1
  692. package/lib/summary/summaryFormat.d.mts.map +0 -1
  693. package/lib/summary/summaryFormat.mjs.map +0 -1
  694. package/lib/summary/summaryGenerator.d.mts.map +0 -1
  695. package/lib/summary/summaryGenerator.mjs.map +0 -1
  696. package/lib/summary/summaryManager.d.mts.map +0 -1
  697. package/lib/summary/summaryManager.mjs.map +0 -1
  698. package/lib/throttler.d.mts.map +0 -1
  699. package/lib/throttler.mjs.map +0 -1
  700. package/src/deltaManagerProxyBase.ts +0 -111
@@ -13,10 +13,10 @@ import {
13
13
  ISummaryTreeWithStats,
14
14
  } from "@fluidframework/runtime-definitions";
15
15
  import { mergeStats, SummaryTreeBuilder } from "@fluidframework/runtime-utils";
16
- import { IRefreshSummaryResult } from "../summary";
17
- import { GCVersion, IGarbageCollectorConfigs, IGCStats } from "./gcDefinitions";
18
- import { generateSortedGCState } from "./gcHelpers";
19
- import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions";
16
+ import { IRefreshSummaryResult } from "../summary/index.js";
17
+ import { GCVersion, IGarbageCollectorConfigs, IGCStats } from "./gcDefinitions.js";
18
+ import { generateSortedGCState } from "./gcHelpers.js";
19
+ import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions.js";
20
20
 
21
21
  export const gcStateBlobKey = `${gcBlobPrefix}_root`;
22
22
 
@@ -51,6 +51,18 @@ export class GCSummaryStateTracker {
51
51
  // to unreferenced or vice-versa.
52
52
  public updatedDSCountSinceLastSummary: number = 0;
53
53
 
54
+ /** API for ensuring the correct auto-recovery mitigations */
55
+ public autoRecovery = {
56
+ requestFullGCOnNextRun: () => {
57
+ this.fullGCModeForAutoRecovery = true;
58
+ },
59
+ fullGCRequested: () => {
60
+ return this.fullGCModeForAutoRecovery;
61
+ },
62
+ };
63
+ /** If true, the next GC run will do fullGC mode to regenerate the GC data for each node */
64
+ private fullGCModeForAutoRecovery: boolean = false;
65
+
54
66
  constructor(
55
67
  // Tells whether GC should run or not.
56
68
  private readonly configs: Pick<
@@ -133,7 +145,6 @@ export class GCSummaryStateTracker {
133
145
  * If none of the components changed, it returns a summary handle for the entire GC data.
134
146
  */
135
147
  public summarize(
136
- fullTree: boolean,
137
148
  trackState: boolean,
138
149
  gcState: IGarbageCollectionState,
139
150
  deletedNodes: Set<string>,
@@ -167,7 +178,7 @@ export class GCSummaryStateTracker {
167
178
  serializedDeletedNodes,
168
179
  };
169
180
 
170
- if (trackState && !fullTree && this.latestSummaryData !== undefined) {
181
+ if (trackState && this.latestSummaryData !== undefined) {
171
182
  // If nothing changed since last summary, send a summary handle for the entire GC data.
172
183
  if (
173
184
  this.latestSummaryData.serializedGCState === serializedGCState &&
@@ -267,7 +278,7 @@ export class GCSummaryStateTracker {
267
278
  }
268
279
 
269
280
  /**
270
- * Called to refresh the latest summary state. This happens when either a pending summary is acked.
281
+ * Called to refresh the latest summary state. This happens when a pending summary is acked.
271
282
  */
272
283
  public async refreshLatestSummary(result: IRefreshSummaryResult): Promise<void> {
273
284
  if (!result.isSummaryTracked) {
@@ -287,6 +298,7 @@ export class GCSummaryStateTracker {
287
298
  this.latestSummaryData = this.pendingSummaryData;
288
299
  this.pendingSummaryData = undefined;
289
300
  this.updatedDSCountSinceLastSummary = 0;
301
+ this.fullGCModeForAutoRecovery = false;
290
302
  return;
291
303
  }
292
304
 
@@ -3,16 +3,16 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryGenericEvent } from "@fluidframework/core-interfaces";
7
6
  import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
8
7
  import {
9
8
  generateStack,
10
9
  ITelemetryLoggerExt,
11
10
  MonitoringContext,
12
11
  tagCodeArtifacts,
12
+ type ITelemetryGenericEventExt,
13
13
  } from "@fluidframework/telemetry-utils";
14
- import { RuntimeHeaderData } from "../containerRuntime";
15
- import { ICreateContainerMetadata } from "../summary";
14
+ import { RuntimeHeaderData } from "../containerRuntime.js";
15
+ import { ICreateContainerMetadata } from "../summary/index.js";
16
16
  import {
17
17
  GCNodeType,
18
18
  UnreferencedState,
@@ -22,8 +22,8 @@ import {
22
22
  throwOnTombstoneLoadOverrideKey,
23
23
  runSweepKey,
24
24
  GCFeatureMatrix,
25
- } from "./gcDefinitions";
26
- import { UnreferencedStateTracker } from "./gcUnreferencedStateTracker";
25
+ } from "./gcDefinitions.js";
26
+ import { UnreferencedStateTracker } from "./gcUnreferencedStateTracker.js";
27
27
 
28
28
  type NodeUsageType = "Changed" | "Loaded" | "Revived";
29
29
 
@@ -343,7 +343,9 @@ export class GCTelemetryTracker {
343
343
  }
344
344
 
345
345
  if (missingExplicitRoutes.length > 0) {
346
- logger.sendErrorEvent({
346
+ // Send as Generic not Error since there are known corner cases where this will fire.
347
+ // E.g. If an old client re-references a node via an attach op (that doesn't include GC Data)
348
+ logger.sendTelemetryEvent({
347
349
  eventName: "gcUnknownOutboundReferences",
348
350
  ...tagCodeArtifacts({
349
351
  id: nodeId,
@@ -411,7 +413,7 @@ export class GCTelemetryTracker {
411
413
  */
412
414
  export function sendGCUnexpectedUsageEvent(
413
415
  mc: MonitoringContext,
414
- event: ITelemetryGenericEvent & {
416
+ event: ITelemetryGenericEventExt & {
415
417
  category: "error" | "generic";
416
418
  gcTombstoneEnforcementAllowed: boolean | undefined;
417
419
  },
@@ -5,7 +5,7 @@
5
5
 
6
6
  import { assert, Timer } from "@fluidframework/core-utils";
7
7
  import { validatePrecondition } from "@fluidframework/telemetry-utils";
8
- import { UnreferencedState } from "./gcDefinitions";
8
+ import { UnreferencedState } from "./gcDefinitions.js";
9
9
 
10
10
  /** A wrapper around common-utils Timer that requires the timeout when calling start/restart */
11
11
  class TimerWithNoDefaultTimeout extends Timer {
package/src/gc/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- export { GarbageCollector } from "./garbageCollection";
6
+ export { GarbageCollector } from "./garbageCollection.js";
7
7
  export {
8
8
  nextGCVersion,
9
9
  defaultInactiveTimeoutMs,
@@ -11,6 +11,7 @@ export {
11
11
  defaultSessionExpiryDurationMs,
12
12
  GCNodeType,
13
13
  gcTestModeKey,
14
+ gcDisableDataStoreSweepOptionName,
14
15
  gcDisableThrowOnTombstoneLoadOptionName,
15
16
  gcGenerationOptionName,
16
17
  GCFeatureMatrix,
@@ -32,32 +33,32 @@ export {
32
33
  runSessionExpiryKey,
33
34
  runSweepKey,
34
35
  stableGCVersion,
35
- disableAttachmentBlobSweepKey,
36
36
  disableAutoRecoveryKey,
37
37
  disableDatastoreSweepKey,
38
38
  detectOutboundRoutesViaDDSKey,
39
39
  UnreferencedState,
40
40
  throwOnTombstoneLoadOverrideKey,
41
41
  GarbageCollectionMessage,
42
+ GarbageCollectionMessageType,
42
43
  ISweepMessage,
43
- } from "./gcDefinitions";
44
+ } from "./gcDefinitions.js";
44
45
  export {
45
46
  cloneGCData,
46
47
  concatGarbageCollectionStates,
47
48
  trimLeadingAndTrailingSlashes,
48
49
  unpackChildNodesGCDetails,
49
- } from "./gcHelpers";
50
- export { runGarbageCollection } from "./gcReferenceGraphAlgorithm";
50
+ } from "./gcHelpers.js";
51
+ export { runGarbageCollection } from "./gcReferenceGraphAlgorithm.js";
51
52
  export {
52
53
  IGarbageCollectionNodeData,
53
54
  IGarbageCollectionSnapshotData,
54
55
  IGarbageCollectionState,
55
56
  IGarbageCollectionSummaryDetailsLegacy,
56
- } from "./gcSummaryDefinitions";
57
+ } from "./gcSummaryDefinitions.js";
57
58
  export {
58
59
  gcStateBlobKey,
59
60
  GCSummaryStateTracker,
60
61
  IGCSummaryTrackingData,
61
- } from "./gcSummaryStateTracker";
62
- export { GCTelemetryTracker, sendGCUnexpectedUsageEvent } from "./gcTelemetry";
63
- export { UnreferencedStateTracker } from "./gcUnreferencedStateTracker";
62
+ } from "./gcSummaryStateTracker.js";
63
+ export { GCTelemetryTracker, sendGCUnexpectedUsageEvent } from "./gcTelemetry.js";
64
+ export { UnreferencedStateTracker } from "./gcUnreferencedStateTracker.js";
package/src/index.ts CHANGED
@@ -14,16 +14,14 @@ export {
14
14
  RuntimeMessage,
15
15
  agentSchedulerId,
16
16
  ContainerRuntime,
17
- RuntimeHeaders,
18
- AllowTombstoneRequestHeaderKey,
19
- AllowInactiveRequestHeaderKey,
20
17
  TombstoneResponseHeaderKey,
21
18
  InactiveResponseHeaderKey,
22
19
  ISummaryConfiguration,
23
20
  DefaultSummaryConfiguration,
24
21
  ICompressionRuntimeOptions,
25
22
  CompressionAlgorithms,
26
- } from "./containerRuntime";
23
+ RuntimeHeaderData,
24
+ } from "./containerRuntime.js";
27
25
  export {
28
26
  ContainerMessageType,
29
27
  ContainerRuntimeMessage,
@@ -31,10 +29,16 @@ export {
31
29
  CompatModeBehavior,
32
30
  RecentlyAddedContainerRuntimeMessageDetails,
33
31
  UnknownContainerRuntimeMessage,
34
- } from "./messageTypes";
35
- export { IBlobManagerLoadInfo } from "./blobManager";
36
- export { FluidDataStoreRegistry } from "./dataStoreRegistry";
37
- export { detectOutboundReferences } from "./dataStores";
32
+ } from "./messageTypes.js";
33
+ export { IBlobManagerLoadInfo } from "./blobManager.js";
34
+ export { FluidDataStoreRegistry } from "./dataStoreRegistry.js";
35
+ export {
36
+ detectOutboundReferences,
37
+ RuntimeHeaders,
38
+ ChannelCollectionFactory,
39
+ AllowTombstoneRequestHeaderKey,
40
+ AllowInactiveRequestHeaderKey,
41
+ } from "./channelCollection.js";
38
42
  export {
39
43
  GCNodeType,
40
44
  IGCMetadata,
@@ -44,7 +48,7 @@ export {
44
48
  IMarkPhaseStats,
45
49
  ISweepPhaseStats,
46
50
  IGCStats,
47
- } from "./gc";
51
+ } from "./gc/index.js";
48
52
  export {
49
53
  IAckedSummary,
50
54
  ISummarizer,
@@ -93,22 +97,19 @@ export {
93
97
  SummaryStage,
94
98
  IRetriableFailureResult,
95
99
  ISummarizeEventProps,
96
- } from "./summary";
97
- export { IChunkedOp, unpackRuntimeMessage } from "./opLifecycle";
98
-
99
- // Re-exports for backwards compatibility.
100
- // Will be removed in the future.
100
+ IdCompressorMode,
101
+ } from "./summary/index.js";
102
+ export { IChunkedOp, unpackRuntimeMessage } from "./opLifecycle/index.js";
103
+ export { ChannelCollection } from "./channelCollection.js";
101
104
  export {
102
- /**
103
- * @deprecated Import from `@fluidframework/id-compressor` instead.
104
- */
105
- assertIsStableId,
106
- /**
107
- * @deprecated Import from `@fluidframework/id-compressor` instead.
108
- */
109
- generateStableId,
110
- /**
111
- * @deprecated Import from `@fluidframework/id-compressor` instead.
112
- */
113
- isStableId,
114
- } from "@fluidframework/id-compressor";
105
+ IFluidDataStoreContextInternal,
106
+ ISnapshotDetails,
107
+ LocalFluidDataStoreContext,
108
+ LocalFluidDataStoreContextBase,
109
+ FluidDataStoreContext,
110
+ IFluidDataStoreContextProps,
111
+ ILocalFluidDataStoreContextProps,
112
+ ILocalDetachedFluidDataStoreContextProps,
113
+ IFluidDataStoreContextEvents,
114
+ } from "./dataStoreContext.js";
115
+ export { DataStoreContexts } from "./dataStoreContexts.js";
@@ -10,9 +10,9 @@ import {
10
10
  IAttachMessage,
11
11
  } from "@fluidframework/runtime-definitions";
12
12
  import type { IdCreationRange } from "@fluidframework/id-compressor";
13
- import { IDataStoreAliasMessage } from "./dataStore";
14
- import { GarbageCollectionMessage } from "./gc";
15
- import { IChunkedOp } from "./opLifecycle";
13
+ import { IDataStoreAliasMessage } from "./dataStore.js";
14
+ import { GarbageCollectionMessage } from "./gc/index.js";
15
+ import { IChunkedOp } from "./opLifecycle/index.js";
16
16
 
17
17
  /**
18
18
  * @alpha
@@ -65,8 +65,6 @@ Compression is relevant for both `FlushMode.TurnBased` and `FlushMode.Immediate`
65
65
 
66
66
  ## Grouped batching
67
67
 
68
- **Note: This feature is currently considered experimental and is not ready for production usage.**
69
-
70
68
  The `IContainerRuntimeOptions.enableGroupedBatching` option has been added to the container runtime layer and is **off by default**. This option will group all batch messages under a new "grouped" message to be sent to the service. Upon receiving this new "grouped" message, the batch messages will be extracted and given the sequence number of the parent "grouped" message.
71
69
 
72
70
  The purpose for enabling grouped batching on top of compression is that regular compression won't include the empty messages in the chunks. Thus, if we have batches with many messages (i.e. more than 4k), we will go over the batch size limit just on empty op envelopes alone.
@@ -75,7 +73,7 @@ See [below](#how-grouped-batching-works) for an example.
75
73
 
76
74
  ### Risks
77
75
 
78
- This option is experimental and should not be enabled yet in production. This option should **ONLY** be enabled after observing that 99.9% of your application sessions contains these changes (runtime version "2.0.0-internal.4.1.0" or later). Containers created with this option may not open in future versions of the framework.
76
+ This option should **ONLY** be enabled after observing that 99.9% of your application sessions contains these changes (runtime version "2.0.0-internal.7.0.0" or later). Containers created with this option may not open in future versions of the framework.
79
77
 
80
78
  This option will change a couple of expectations around message structure and runtime layer expectations. Only enable this option after testing
81
79
  and verifying that the following expectation changes won't have any effects:
@@ -91,7 +89,7 @@ Therefore, when grouped batching is enabled, all batches with reentrant ops are
91
89
 
92
90
  ### How to enable
93
91
 
94
- **This feature is disabled by default, currently considered experimental and not ready for production usage.**
92
+ **This feature is disabled by default**
95
93
 
96
94
  If all prerequisites in the previous section are met, enabling the feature can be done via the `IContainerRuntimeOptions` as following:
97
95
 
@@ -3,8 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ICompressionRuntimeOptions } from "../containerRuntime";
7
- import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions";
6
+ import { ICompressionRuntimeOptions } from "../containerRuntime.js";
7
+ import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions.js";
8
8
 
9
9
  export interface IBatchManagerOptions {
10
10
  readonly hardLimit: number;
@@ -5,8 +5,8 @@
5
5
 
6
6
  import { IBatchMessage } from "@fluidframework/container-definitions";
7
7
  import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
8
- import { CompressionAlgorithms } from "../containerRuntime";
9
- import { ContainerMessageType } from "../messageTypes";
8
+ import { CompressionAlgorithms } from "../containerRuntime.js";
9
+ import { ContainerMessageType } from "../messageTypes.js";
10
10
 
11
11
  /**
12
12
  * Batch message type used internally by the runtime
@@ -3,17 +3,17 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- export { BatchManager, estimateSocketSize, BatchSequenceNumbers } from "./batchManager";
6
+ export { BatchManager, estimateSocketSize, BatchSequenceNumbers } from "./batchManager.js";
7
7
  export {
8
8
  BatchMessage,
9
9
  IBatch,
10
10
  IBatchCheckpoint,
11
11
  IChunkedOp,
12
12
  IMessageProcessingResult,
13
- } from "./definitions";
14
- export { Outbox, getLongStack } from "./outbox";
15
- export { OpCompressor } from "./opCompressor";
16
- export { OpDecompressor } from "./opDecompressor";
17
- export { OpSplitter, splitOp } from "./opSplitter";
18
- export { RemoteMessageProcessor, unpackRuntimeMessage } from "./remoteMessageProcessor";
19
- export { OpGroupingManager } from "./opGroupingManager";
13
+ } from "./definitions.js";
14
+ export { Outbox, getLongStack } from "./outbox.js";
15
+ export { OpCompressor } from "./opCompressor.js";
16
+ export { OpDecompressor } from "./opDecompressor.js";
17
+ export { OpSplitter, splitOp } from "./opSplitter.js";
18
+ export { RemoteMessageProcessor, unpackRuntimeMessage } from "./remoteMessageProcessor.js";
19
+ export { OpGroupingManager } from "./opGroupingManager.js";
@@ -8,9 +8,9 @@ import { assert } from "@fluidframework/core-utils";
8
8
  import { IsoBuffer } from "@fluid-internal/client-utils";
9
9
  import { compress } from "lz4js";
10
10
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
11
- import { CompressionAlgorithms } from "../containerRuntime";
12
- import { estimateSocketSize } from "./batchManager";
13
- import { IBatch, BatchMessage } from "./definitions";
11
+ import { CompressionAlgorithms } from "../containerRuntime.js";
12
+ import { estimateSocketSize } from "./batchManager.js";
13
+ import { IBatch, BatchMessage } from "./definitions.js";
14
14
 
15
15
  /**
16
16
  * Compresses batches of ops. It generates a single compressed op that contains
@@ -9,9 +9,9 @@ import { assert } from "@fluidframework/core-utils";
9
9
  import { IsoBuffer, Uint8ArrayToString } from "@fluid-internal/client-utils";
10
10
  import { createChildLogger } from "@fluidframework/telemetry-utils";
11
11
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
12
- import { CompressionAlgorithms } from "../containerRuntime";
13
- import { IBatchMetadata } from "../metadata";
14
- import { IMessageProcessingResult } from "./definitions";
12
+ import { CompressionAlgorithms } from "../containerRuntime.js";
13
+ import { IBatchMetadata } from "../metadata.js";
14
+ import { IMessageProcessingResult } from "./definitions.js";
15
15
 
16
16
  /**
17
17
  * Compression makes assumptions about the shape of message contents. This interface codifies those assumptions, but does not validate them.
@@ -7,8 +7,8 @@ import { assert } from "@fluidframework/core-utils";
7
7
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
8
8
  import { createChildLogger } from "@fluidframework/telemetry-utils";
9
9
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
10
- import { ContainerMessageType } from "../messageTypes";
11
- import { IBatch } from "./definitions";
10
+ import { ContainerMessageType } from "../messageTypes.js";
11
+ import { IBatch } from "./definitions.js";
12
12
 
13
13
  /**
14
14
  * Grouping makes assumptions about the shape of message contents. This interface codifies those assumptions, but does not validate them.
@@ -96,21 +96,12 @@ export class OpGroupingManager {
96
96
  }
97
97
 
98
98
  public ungroupOp(op: ISequencedDocumentMessage): ISequencedDocumentMessage[] {
99
- let fakeCsn = 1;
100
99
  if (!isGroupContents(op.contents)) {
101
- // Align the worlds of what clientSequenceNumber represents when grouped batching is enabled
102
- if (this.config.groupedBatchingEnabled) {
103
- return [
104
- {
105
- ...op,
106
- clientSequenceNumber: fakeCsn,
107
- },
108
- ];
109
- }
110
100
  return [op];
111
101
  }
112
102
 
113
103
  const messages = op.contents.contents;
104
+ let fakeCsn = 1;
114
105
  return messages.map((subMessage) => ({
115
106
  ...op,
116
107
  clientSequenceNumber: fakeCsn++,
@@ -12,9 +12,9 @@ import { assert } from "@fluidframework/core-utils";
12
12
  import { IBatchMessage } from "@fluidframework/container-definitions";
13
13
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
14
14
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
15
- import { ContainerMessageType, ContainerRuntimeChunkedOpMessage } from "../messageTypes";
16
- import { estimateSocketSize } from "./batchManager";
17
- import { BatchMessage, IBatch, IChunkedOp, IMessageProcessingResult } from "./definitions";
15
+ import { ContainerMessageType, ContainerRuntimeChunkedOpMessage } from "../messageTypes.js";
16
+ import { estimateSocketSize } from "./batchManager.js";
17
+ import { BatchMessage, IBatch, IChunkedOp, IMessageProcessingResult } from "./definitions.js";
18
18
 
19
19
  /**
20
20
  * Responsible for creating and reconstructing chunked messages.
@@ -12,18 +12,19 @@ import {
12
12
  import { assert } from "@fluidframework/core-utils";
13
13
  import { IBatchMessage, ICriticalContainerError } from "@fluidframework/container-definitions";
14
14
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
15
- import { ICompressionRuntimeOptions } from "../containerRuntime";
16
- import { IPendingBatchMessage, PendingStateManager } from "../pendingStateManager";
15
+ import { ICompressionRuntimeOptions } from "../containerRuntime.js";
16
+ import { IPendingBatchMessage, PendingStateManager } from "../pendingStateManager.js";
17
+ import { ContainerMessageType } from "../messageTypes.js";
17
18
  import {
18
19
  BatchManager,
19
20
  BatchSequenceNumbers,
20
21
  estimateSocketSize,
21
22
  sequenceNumbersMatch,
22
- } from "./batchManager";
23
- import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions";
24
- import { OpCompressor } from "./opCompressor";
25
- import { OpGroupingManager } from "./opGroupingManager";
26
- import { OpSplitter } from "./opSplitter";
23
+ } from "./batchManager.js";
24
+ import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions.js";
25
+ import { OpCompressor } from "./opCompressor.js";
26
+ import { OpGroupingManager } from "./opGroupingManager.js";
27
+ import { OpSplitter } from "./opSplitter.js";
27
28
 
28
29
  export interface IOutboxConfig {
29
30
  readonly compressionOptions: ICompressionRuntimeOptions;
@@ -119,7 +120,12 @@ export class Outbox {
119
120
  }
120
121
 
121
122
  public get messageCount(): number {
122
- return this.attachFlowBatch.length + this.mainBatch.length + this.blobAttachBatch.length;
123
+ return (
124
+ this.attachFlowBatch.length +
125
+ this.mainBatch.length +
126
+ this.blobAttachBatch.length +
127
+ this.idAllocationBatch.length
128
+ );
123
129
  }
124
130
 
125
131
  public get isEmpty(): boolean {
@@ -136,10 +142,12 @@ export class Outbox {
136
142
  const mainBatchSeqNums = this.mainBatch.sequenceNumbers;
137
143
  const attachFlowBatchSeqNums = this.attachFlowBatch.sequenceNumbers;
138
144
  const blobAttachSeqNums = this.blobAttachBatch.sequenceNumbers;
145
+ const idAllocSeqNums = this.idAllocationBatch.sequenceNumbers;
139
146
  assert(
140
147
  this.params.config.disablePartialFlush ||
141
148
  (sequenceNumbersMatch(mainBatchSeqNums, attachFlowBatchSeqNums) &&
142
- sequenceNumbersMatch(mainBatchSeqNums, blobAttachSeqNums)),
149
+ sequenceNumbersMatch(mainBatchSeqNums, blobAttachSeqNums) &&
150
+ sequenceNumbersMatch(mainBatchSeqNums, idAllocSeqNums)),
143
151
  0x58d /* Reference sequence numbers from both batches must be in sync */,
144
152
  );
145
153
 
@@ -148,7 +156,8 @@ export class Outbox {
148
156
  if (
149
157
  sequenceNumbersMatch(mainBatchSeqNums, currentSequenceNumbers) &&
150
158
  sequenceNumbersMatch(attachFlowBatchSeqNums, currentSequenceNumbers) &&
151
- sequenceNumbersMatch(blobAttachSeqNums, currentSequenceNumbers)
159
+ sequenceNumbersMatch(blobAttachSeqNums, currentSequenceNumbers) &&
160
+ sequenceNumbersMatch(idAllocSeqNums, currentSequenceNumbers)
152
161
  ) {
153
162
  // The reference sequence numbers are stable, there is nothing to do
154
163
  return;
@@ -178,12 +187,20 @@ export class Outbox {
178
187
  }
179
188
 
180
189
  public submit(message: BatchMessage) {
190
+ assert(
191
+ message.type !== ContainerMessageType.IdAllocation,
192
+ 0x8f8 /* Allocation message submitted to mainBatch. */,
193
+ );
181
194
  this.maybeFlushPartialBatch();
182
195
 
183
196
  this.addMessageToBatchManager(this.mainBatch, message);
184
197
  }
185
198
 
186
199
  public submitAttach(message: BatchMessage) {
200
+ assert(
201
+ message.type === ContainerMessageType.Attach,
202
+ 0x8f9 /* Non attach message submitted to attachFlowBatch. */,
203
+ );
187
204
  this.maybeFlushPartialBatch();
188
205
 
189
206
  if (
@@ -215,6 +232,10 @@ export class Outbox {
215
232
  }
216
233
 
217
234
  public submitBlobAttach(message: BatchMessage) {
235
+ assert(
236
+ message.type === ContainerMessageType.BlobAttach,
237
+ 0x8fa /* Non blobAttach message submitted to blobAttachBatch. */,
238
+ );
218
239
  this.maybeFlushPartialBatch();
219
240
 
220
241
  this.addMessageToBatchManager(this.blobAttachBatch, message);
@@ -233,6 +254,10 @@ export class Outbox {
233
254
  }
234
255
 
235
256
  public submitIdAllocation(message: BatchMessage) {
257
+ assert(
258
+ message.type === ContainerMessageType.IdAllocation,
259
+ 0x8fb /* Non allocation message submitted to idAllocationBatch. */,
260
+ );
236
261
  this.maybeFlushPartialBatch();
237
262
 
238
263
  if (
@@ -315,8 +340,13 @@ export class Outbox {
315
340
  return;
316
341
  }
317
342
 
318
- const processedBatch = this.compressBatch(rawBatch, disableGroupedBatching);
319
- this.sendBatch(processedBatch);
343
+ // Did we disconnect?
344
+ // If so, do nothing, as pending state manager will resubmit it correctly on reconnect.
345
+ // Because flush() is a task that executes async (on clean stack), we can get here in disconnected state.
346
+ if (this.params.shouldSend()) {
347
+ const processedBatch = this.compressBatch(rawBatch, disableGroupedBatching);
348
+ this.sendBatch(processedBatch);
349
+ }
320
350
 
321
351
  this.persistBatch(rawBatch.content);
322
352
  }
@@ -404,10 +434,7 @@ export class Outbox {
404
434
  */
405
435
  private sendBatch(batch: IBatch) {
406
436
  const length = batch.content.length;
407
-
408
- // Did we disconnect in the middle of turn-based batch?
409
- // If so, do nothing, as pending state manager will resubmit it correctly on reconnect.
410
- if (length === 0 || !this.params.shouldSend()) {
437
+ if (length === 0) {
411
438
  return;
412
439
  }
413
440
 
@@ -10,10 +10,10 @@ import {
10
10
  type InboundSequencedContainerRuntimeMessage,
11
11
  type InboundSequencedContainerRuntimeMessageOrSystemMessage,
12
12
  type InboundSequencedRecentlyAddedContainerRuntimeMessage,
13
- } from "../messageTypes";
14
- import { OpDecompressor } from "./opDecompressor";
15
- import { OpGroupingManager } from "./opGroupingManager";
16
- import { OpSplitter } from "./opSplitter";
13
+ } from "../messageTypes.js";
14
+ import { OpDecompressor } from "./opDecompressor.js";
15
+ import { OpGroupingManager } from "./opGroupingManager.js";
16
+ import { OpSplitter } from "./opSplitter.js";
17
17
 
18
18
  /**
19
19
  * Stateful class for processing incoming remote messages as the virtualization measures are unwrapped,
@@ -66,9 +66,13 @@ export class RemoteMessageProcessor {
66
66
  this.opSplitter.processRemoteMessage(ungroupedMessage2);
67
67
  ungroupedMessage2 = chunkProcessingResult.message;
68
68
 
69
+ // if the splitter is still rebuilding the original message, there is no need to continue processing
70
+ if (chunkProcessingResult.state === "Accepted") {
71
+ continue;
72
+ }
73
+
74
+ // If the message is not chunked there is no need to continue processing
69
75
  if (chunkProcessingResult.state !== "Processed") {
70
- // If the message is not chunked or if the splitter is still rebuilding the original message,
71
- // there is no need to continue processing
72
76
  result.push(
73
77
  ungroupedMessage2 as InboundSequencedContainerRuntimeMessageOrSystemMessage,
74
78
  );
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.0.0-dev-rc.1.0.0.232845";
9
+ export const pkgVersion = "2.0.0-dev-rc.2.0.0.246488";