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

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 (694) 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 +425 -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 +225 -0
  17. package/dist/channelCollection.d.ts.map +1 -0
  18. package/dist/{dataStores.js → channelCollection.js} +447 -147
  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 +129 -48
  25. package/dist/container-runtime-beta.d.ts +68 -9
  26. package/dist/container-runtime-public.d.ts +68 -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 +503 -368
  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/deltaManagerSummarizerProxy.d.ts +29 -4
  48. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  49. package/dist/deltaManagerSummarizerProxy.js +91 -5
  50. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  51. package/dist/gc/garbageCollection.d.ts +12 -6
  52. package/dist/gc/garbageCollection.d.ts.map +1 -1
  53. package/dist/gc/garbageCollection.js +116 -78
  54. package/dist/gc/garbageCollection.js.map +1 -1
  55. package/dist/gc/gcConfigs.d.ts +2 -2
  56. package/dist/gc/gcConfigs.d.ts.map +1 -1
  57. package/dist/gc/gcConfigs.js +30 -23
  58. package/dist/gc/gcConfigs.js.map +1 -1
  59. package/dist/gc/gcDefinitions.d.ts +22 -13
  60. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  61. package/dist/gc/gcDefinitions.js +7 -4
  62. package/dist/gc/gcDefinitions.js.map +1 -1
  63. package/dist/gc/gcHelpers.d.ts +2 -2
  64. package/dist/gc/gcHelpers.d.ts.map +1 -1
  65. package/dist/gc/gcHelpers.js.map +1 -1
  66. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +1 -1
  67. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -1
  68. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  69. package/dist/gc/gcSummaryStateTracker.d.ts +12 -5
  70. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  71. package/dist/gc/gcSummaryStateTracker.js +18 -6
  72. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  73. package/dist/gc/gcTelemetry.d.ts +6 -7
  74. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  75. package/dist/gc/gcTelemetry.js +20 -18
  76. package/dist/gc/gcTelemetry.js.map +1 -1
  77. package/dist/gc/gcUnreferencedStateTracker.d.ts +1 -1
  78. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  79. package/dist/gc/gcUnreferencedStateTracker.js +10 -10
  80. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  81. package/dist/gc/index.d.ts +8 -8
  82. package/dist/gc/index.d.ts.map +1 -1
  83. package/dist/gc/index.js +40 -39
  84. package/dist/gc/index.js.map +1 -1
  85. package/dist/index.d.ts +11 -21
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +36 -42
  88. package/dist/index.js.map +1 -1
  89. package/dist/messageTypes.d.ts +3 -3
  90. package/dist/messageTypes.d.ts.map +1 -1
  91. package/dist/messageTypes.js.map +1 -1
  92. package/dist/opLifecycle/batchManager.d.ts +2 -2
  93. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  94. package/dist/opLifecycle/batchManager.js.map +1 -1
  95. package/dist/opLifecycle/definitions.d.ts +2 -2
  96. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  97. package/dist/opLifecycle/definitions.js.map +1 -1
  98. package/dist/opLifecycle/index.d.ts +8 -8
  99. package/dist/opLifecycle/index.d.ts.map +1 -1
  100. package/dist/opLifecycle/index.js +18 -18
  101. package/dist/opLifecycle/index.js.map +1 -1
  102. package/dist/opLifecycle/opCompressor.d.ts +1 -1
  103. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  104. package/dist/opLifecycle/opCompressor.js +4 -4
  105. package/dist/opLifecycle/opCompressor.js.map +1 -1
  106. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  107. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  108. package/dist/opLifecycle/opDecompressor.js +3 -3
  109. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  110. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  111. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  112. package/dist/opLifecycle/opGroupingManager.js +1 -10
  113. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  114. package/dist/opLifecycle/opSplitter.d.ts +1 -1
  115. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  116. package/dist/opLifecycle/opSplitter.js +5 -5
  117. package/dist/opLifecycle/opSplitter.js.map +1 -1
  118. package/dist/opLifecycle/outbox.d.ts +7 -7
  119. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  120. package/dist/opLifecycle/outbox.js +20 -12
  121. package/dist/opLifecycle/outbox.js.map +1 -1
  122. package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -4
  123. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  124. package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
  125. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  126. package/dist/package.json +3 -0
  127. package/dist/packageVersion.d.ts +1 -1
  128. package/dist/packageVersion.js +1 -1
  129. package/dist/packageVersion.js.map +1 -1
  130. package/dist/pendingStateManager.d.ts +2 -1
  131. package/dist/pendingStateManager.d.ts.map +1 -1
  132. package/dist/pendingStateManager.js +18 -10
  133. package/dist/pendingStateManager.js.map +1 -1
  134. package/dist/scheduleManager.d.ts +1 -2
  135. package/dist/scheduleManager.d.ts.map +1 -1
  136. package/dist/scheduleManager.js +5 -5
  137. package/dist/scheduleManager.js.map +1 -1
  138. package/dist/summary/index.d.ts +12 -12
  139. package/dist/summary/index.d.ts.map +1 -1
  140. package/dist/summary/index.js +43 -43
  141. package/dist/summary/index.js.map +1 -1
  142. package/dist/summary/orderedClientElection.js +8 -8
  143. package/dist/summary/orderedClientElection.js.map +1 -1
  144. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  145. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  146. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  147. package/dist/summary/runningSummarizer.d.ts +5 -4
  148. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  149. package/dist/summary/runningSummarizer.js +47 -32
  150. package/dist/summary/runningSummarizer.js.map +1 -1
  151. package/dist/summary/summarizer.d.ts +4 -4
  152. package/dist/summary/summarizer.d.ts.map +1 -1
  153. package/dist/summary/summarizer.js +6 -6
  154. package/dist/summary/summarizer.js.map +1 -1
  155. package/dist/summary/summarizerClientElection.d.ts +2 -2
  156. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  157. package/dist/summary/summarizerClientElection.js.map +1 -1
  158. package/dist/summary/summarizerHeuristics.d.ts +3 -3
  159. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  160. package/dist/summary/summarizerHeuristics.js.map +1 -1
  161. package/dist/summary/summarizerNode/index.d.ts +3 -3
  162. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  163. package/dist/summary/summarizerNode/index.js +4 -4
  164. package/dist/summary/summarizerNode/index.js.map +1 -1
  165. package/dist/summary/summarizerNode/summarizerNode.d.ts +16 -5
  166. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  167. package/dist/summary/summarizerNode/summarizerNode.js +40 -10
  168. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  169. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +9 -1
  170. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  171. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  172. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +3 -4
  173. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  174. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +12 -12
  175. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  176. package/dist/summary/summarizerTypes.d.ts +9 -20
  177. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  178. package/dist/summary/summarizerTypes.js.map +1 -1
  179. package/dist/summary/summaryFormat.d.ts +15 -2
  180. package/dist/summary/summaryFormat.d.ts.map +1 -1
  181. package/dist/summary/summaryFormat.js.map +1 -1
  182. package/dist/summary/summaryGenerator.d.ts +6 -5
  183. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  184. package/dist/summary/summaryGenerator.js +10 -1
  185. package/dist/summary/summaryGenerator.js.map +1 -1
  186. package/dist/summary/summaryManager.d.ts +5 -6
  187. package/dist/summary/summaryManager.d.ts.map +1 -1
  188. package/dist/summary/summaryManager.js +4 -5
  189. package/dist/summary/summaryManager.js.map +1 -1
  190. package/dist/tsdoc-metadata.json +1 -1
  191. package/lib/{batchTracker.d.mts → batchTracker.d.ts} +2 -3
  192. package/lib/batchTracker.d.ts.map +1 -0
  193. package/lib/{batchTracker.mjs → batchTracker.js} +1 -1
  194. package/lib/batchTracker.js.map +1 -0
  195. package/lib/{blobManager.d.mts → blobManager.d.ts} +1 -6
  196. package/lib/blobManager.d.ts.map +1 -0
  197. package/lib/{blobManager.mjs → blobManager.js} +1 -13
  198. package/lib/blobManager.js.map +1 -0
  199. package/lib/channelCollection.d.ts +225 -0
  200. package/lib/channelCollection.d.ts.map +1 -0
  201. package/lib/{dataStores.mjs → channelCollection.js} +434 -137
  202. package/lib/channelCollection.js.map +1 -0
  203. package/lib/{connectionTelemetry.d.mts → connectionTelemetry.d.ts} +12 -2
  204. package/lib/connectionTelemetry.d.ts.map +1 -0
  205. package/lib/{connectionTelemetry.mjs → connectionTelemetry.js} +43 -5
  206. package/lib/connectionTelemetry.js.map +1 -0
  207. package/lib/{container-runtime-alpha.d.mts → container-runtime-alpha.d.ts} +129 -48
  208. package/lib/{container-runtime-beta.d.mts → container-runtime-beta.d.ts} +68 -9
  209. package/lib/{container-runtime-public.d.mts → container-runtime-public.d.ts} +68 -9
  210. package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +692 -49
  211. package/lib/{containerHandleContext.d.mts → containerHandleContext.d.ts} +2 -2
  212. package/lib/containerHandleContext.d.ts.map +1 -0
  213. package/lib/{containerHandleContext.mjs → containerHandleContext.js} +1 -1
  214. package/lib/containerHandleContext.js.map +1 -0
  215. package/lib/{containerRuntime.d.mts → containerRuntime.d.ts} +86 -65
  216. package/lib/containerRuntime.d.ts.map +1 -0
  217. package/lib/{containerRuntime.mjs → containerRuntime.js} +423 -290
  218. package/lib/containerRuntime.js.map +1 -0
  219. package/lib/{dataStore.d.mts → dataStore.d.ts} +3 -4
  220. package/lib/dataStore.d.ts.map +1 -0
  221. package/lib/{dataStore.mjs → dataStore.js} +13 -12
  222. package/lib/dataStore.js.map +1 -0
  223. package/lib/{dataStoreContext.d.mts → dataStoreContext.d.ts} +119 -42
  224. package/lib/dataStoreContext.d.ts.map +1 -0
  225. package/lib/{dataStoreContext.mjs → dataStoreContext.js} +240 -151
  226. package/lib/dataStoreContext.js.map +1 -0
  227. package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +3 -2
  228. package/lib/dataStoreContexts.d.ts.map +1 -0
  229. package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +2 -1
  230. package/lib/dataStoreContexts.js.map +1 -0
  231. package/lib/{dataStoreRegistry.d.mts → dataStoreRegistry.d.ts} +1 -1
  232. package/lib/dataStoreRegistry.d.ts.map +1 -0
  233. package/lib/{dataStoreRegistry.mjs → dataStoreRegistry.js} +5 -1
  234. package/lib/dataStoreRegistry.js.map +1 -0
  235. package/{dist/deltaManagerProxyBase.d.ts → lib/deltaManagerSummarizerProxy.d.ts} +16 -7
  236. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
  237. package/lib/deltaManagerSummarizerProxy.js +124 -0
  238. package/lib/deltaManagerSummarizerProxy.js.map +1 -0
  239. package/lib/{deltaScheduler.d.mts → deltaScheduler.d.ts} +1 -1
  240. package/lib/deltaScheduler.d.ts.map +1 -0
  241. package/lib/{deltaScheduler.mjs → deltaScheduler.js} +1 -1
  242. package/lib/deltaScheduler.js.map +1 -0
  243. package/lib/{error.d.mts → error.d.ts} +1 -1
  244. package/lib/error.d.ts.map +1 -0
  245. package/lib/{error.mjs → error.js} +1 -1
  246. package/lib/error.js.map +1 -0
  247. package/lib/gc/{garbageCollection.d.mts → garbageCollection.d.ts} +13 -7
  248. package/lib/gc/garbageCollection.d.ts.map +1 -0
  249. package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +79 -41
  250. package/lib/gc/garbageCollection.js.map +1 -0
  251. package/lib/gc/{gcConfigs.d.mts → gcConfigs.d.ts} +3 -3
  252. package/lib/gc/gcConfigs.d.ts.map +1 -0
  253. package/lib/gc/{gcConfigs.mjs → gcConfigs.js} +14 -7
  254. package/lib/gc/gcConfigs.js.map +1 -0
  255. package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +23 -14
  256. package/lib/gc/gcDefinitions.d.ts.map +1 -0
  257. package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +7 -4
  258. package/lib/gc/gcDefinitions.js.map +1 -0
  259. package/lib/gc/{gcHelpers.d.mts → gcHelpers.d.ts} +3 -3
  260. package/lib/gc/{gcHelpers.d.mts.map → gcHelpers.d.ts.map} +1 -1
  261. package/lib/gc/{gcHelpers.mjs → gcHelpers.js} +1 -1
  262. package/lib/gc/gcHelpers.js.map +1 -0
  263. package/lib/gc/{gcReferenceGraphAlgorithm.d.mts → gcReferenceGraphAlgorithm.d.ts} +2 -2
  264. package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  265. package/lib/gc/{gcReferenceGraphAlgorithm.mjs → gcReferenceGraphAlgorithm.js} +1 -1
  266. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
  267. package/lib/gc/{gcSummaryDefinitions.d.mts → gcSummaryDefinitions.d.ts} +1 -1
  268. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
  269. package/lib/gc/{gcSummaryDefinitions.mjs → gcSummaryDefinitions.js} +1 -1
  270. package/lib/gc/gcSummaryDefinitions.js.map +1 -0
  271. package/lib/gc/{gcSummaryStateTracker.d.mts → gcSummaryStateTracker.d.ts} +13 -6
  272. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
  273. package/lib/gc/{gcSummaryStateTracker.mjs → gcSummaryStateTracker.js} +17 -5
  274. package/lib/gc/gcSummaryStateTracker.js.map +1 -0
  275. package/lib/gc/{gcTelemetry.d.mts → gcTelemetry.d.ts} +7 -8
  276. package/lib/gc/gcTelemetry.d.ts.map +1 -0
  277. package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +5 -3
  278. package/lib/gc/gcTelemetry.js.map +1 -0
  279. package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +2 -2
  280. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  281. package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +2 -2
  282. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
  283. package/lib/gc/index.d.ts +13 -0
  284. package/lib/gc/index.d.ts.map +1 -0
  285. package/lib/gc/{index.mjs → index.js} +8 -8
  286. package/lib/gc/index.js.map +1 -0
  287. package/lib/{index.d.mts → index.d.ts} +12 -22
  288. package/lib/index.d.ts.map +1 -0
  289. package/lib/index.js +15 -0
  290. package/lib/index.js.map +1 -0
  291. package/lib/{messageTypes.d.mts → messageTypes.d.ts} +4 -4
  292. package/lib/messageTypes.d.ts.map +1 -0
  293. package/lib/{messageTypes.mjs → messageTypes.js} +1 -1
  294. package/lib/messageTypes.js.map +1 -0
  295. package/lib/{metadata.d.mts → metadata.d.ts} +1 -1
  296. package/lib/metadata.d.ts.map +1 -0
  297. package/lib/{metadata.mjs → metadata.js} +1 -1
  298. package/lib/metadata.js.map +1 -0
  299. package/lib/opLifecycle/{batchManager.d.mts → batchManager.d.ts} +3 -3
  300. package/lib/opLifecycle/batchManager.d.ts.map +1 -0
  301. package/lib/opLifecycle/{batchManager.mjs → batchManager.js} +1 -1
  302. package/lib/opLifecycle/batchManager.js.map +1 -0
  303. package/lib/opLifecycle/{definitions.d.mts → definitions.d.ts} +3 -3
  304. package/lib/opLifecycle/definitions.d.ts.map +1 -0
  305. package/lib/opLifecycle/{definitions.mjs → definitions.js} +1 -1
  306. package/lib/opLifecycle/definitions.js.map +1 -0
  307. package/lib/opLifecycle/index.d.ts +13 -0
  308. package/lib/opLifecycle/index.d.ts.map +1 -0
  309. package/lib/opLifecycle/index.js +12 -0
  310. package/lib/opLifecycle/index.js.map +1 -0
  311. package/lib/opLifecycle/{opCompressor.d.mts → opCompressor.d.ts} +2 -2
  312. package/lib/opLifecycle/opCompressor.d.ts.map +1 -0
  313. package/lib/opLifecycle/{opCompressor.mjs → opCompressor.js} +3 -3
  314. package/lib/opLifecycle/opCompressor.js.map +1 -0
  315. package/lib/opLifecycle/{opDecompressor.d.mts → opDecompressor.d.ts} +2 -2
  316. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -0
  317. package/lib/opLifecycle/{opDecompressor.mjs → opDecompressor.js} +2 -2
  318. package/lib/opLifecycle/opDecompressor.js.map +1 -0
  319. package/lib/opLifecycle/{opGroupingManager.d.mts → opGroupingManager.d.ts} +2 -2
  320. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
  321. package/lib/opLifecycle/{opGroupingManager.mjs → opGroupingManager.js} +2 -11
  322. package/lib/opLifecycle/opGroupingManager.js.map +1 -0
  323. package/lib/opLifecycle/{opSplitter.d.mts → opSplitter.d.ts} +2 -2
  324. package/lib/opLifecycle/opSplitter.d.ts.map +1 -0
  325. package/lib/opLifecycle/{opSplitter.mjs → opSplitter.js} +3 -3
  326. package/lib/opLifecycle/opSplitter.js.map +1 -0
  327. package/lib/opLifecycle/{outbox.d.mts → outbox.d.ts} +8 -8
  328. package/lib/opLifecycle/outbox.d.ts.map +1 -0
  329. package/lib/opLifecycle/{outbox.mjs → outbox.js} +12 -4
  330. package/lib/opLifecycle/outbox.js.map +1 -0
  331. package/lib/opLifecycle/{remoteMessageProcessor.d.mts → remoteMessageProcessor.d.ts} +5 -5
  332. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  333. package/lib/opLifecycle/{remoteMessageProcessor.mjs → remoteMessageProcessor.js} +2 -2
  334. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -0
  335. package/lib/{opProperties.d.mts → opProperties.d.ts} +1 -1
  336. package/lib/opProperties.d.ts.map +1 -0
  337. package/lib/{opProperties.mjs → opProperties.js} +1 -1
  338. package/lib/opProperties.js.map +1 -0
  339. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  340. package/lib/packageVersion.d.ts.map +1 -0
  341. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  342. package/lib/packageVersion.js.map +1 -0
  343. package/lib/{pendingStateManager.d.mts → pendingStateManager.d.ts} +3 -2
  344. package/lib/pendingStateManager.d.ts.map +1 -0
  345. package/lib/{pendingStateManager.mjs → pendingStateManager.js} +18 -10
  346. package/lib/pendingStateManager.js.map +1 -0
  347. package/lib/{scheduleManager.d.mts → scheduleManager.d.ts} +6 -3
  348. package/lib/scheduleManager.d.ts.map +1 -0
  349. package/lib/{scheduleManager.mjs → scheduleManager.js} +3 -3
  350. package/lib/scheduleManager.js.map +1 -0
  351. package/lib/{storageServiceWithAttachBlobs.d.mts → storageServiceWithAttachBlobs.d.ts} +1 -1
  352. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
  353. package/lib/{storageServiceWithAttachBlobs.mjs → storageServiceWithAttachBlobs.js} +1 -1
  354. package/lib/storageServiceWithAttachBlobs.js.map +1 -0
  355. package/lib/summary/{index.d.mts → index.d.ts} +13 -13
  356. package/lib/summary/index.d.ts.map +1 -0
  357. package/lib/summary/{index.mjs → index.js} +12 -12
  358. package/lib/summary/index.js.map +1 -0
  359. package/lib/summary/{orderedClientElection.d.mts → orderedClientElection.d.ts} +5 -1
  360. package/lib/summary/orderedClientElection.d.ts.map +1 -0
  361. package/lib/summary/{orderedClientElection.mjs → orderedClientElection.js} +2 -2
  362. package/lib/summary/orderedClientElection.js.map +1 -0
  363. package/lib/summary/{runWhileConnectedCoordinator.d.mts → runWhileConnectedCoordinator.d.ts} +2 -2
  364. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  365. package/lib/summary/{runWhileConnectedCoordinator.mjs → runWhileConnectedCoordinator.js} +1 -1
  366. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
  367. package/lib/summary/{runningSummarizer.d.mts → runningSummarizer.d.ts} +6 -5
  368. package/lib/summary/runningSummarizer.d.ts.map +1 -0
  369. package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +41 -26
  370. package/lib/summary/runningSummarizer.js.map +1 -0
  371. package/lib/summary/{summarizer.d.mts → summarizer.d.ts} +5 -5
  372. package/lib/summary/summarizer.d.ts.map +1 -0
  373. package/lib/summary/{summarizer.mjs → summarizer.js} +4 -4
  374. package/lib/summary/summarizer.js.map +1 -0
  375. package/lib/summary/{summarizerClientElection.d.mts → summarizerClientElection.d.ts} +3 -3
  376. package/lib/summary/summarizerClientElection.d.ts.map +1 -0
  377. package/lib/summary/{summarizerClientElection.mjs → summarizerClientElection.js} +1 -1
  378. package/lib/summary/summarizerClientElection.js.map +1 -0
  379. package/lib/summary/{summarizerHeuristics.d.mts → summarizerHeuristics.d.ts} +4 -4
  380. package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
  381. package/lib/summary/{summarizerHeuristics.mjs → summarizerHeuristics.js} +1 -1
  382. package/lib/summary/summarizerHeuristics.js.map +1 -0
  383. package/lib/summary/summarizerNode/{index.d.mts → index.d.ts} +4 -4
  384. package/lib/summary/summarizerNode/index.d.ts.map +1 -0
  385. package/lib/summary/summarizerNode/index.js +7 -0
  386. package/lib/summary/summarizerNode/index.js.map +1 -0
  387. package/lib/summary/summarizerNode/{summarizerNode.d.mts → summarizerNode.d.ts} +17 -6
  388. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  389. package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +34 -4
  390. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
  391. package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +10 -2
  392. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  393. package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -1
  394. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
  395. package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +4 -5
  396. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  397. package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +7 -7
  398. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
  399. package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +10 -21
  400. package/lib/summary/summarizerTypes.d.ts.map +1 -0
  401. package/lib/summary/{summarizerTypes.mjs → summarizerTypes.js} +1 -1
  402. package/lib/summary/summarizerTypes.js.map +1 -0
  403. package/lib/summary/{summaryCollection.d.mts → summaryCollection.d.ts} +1 -1
  404. package/lib/summary/summaryCollection.d.ts.map +1 -0
  405. package/lib/summary/{summaryCollection.mjs → summaryCollection.js} +1 -1
  406. package/lib/summary/summaryCollection.js.map +1 -0
  407. package/lib/summary/{summaryFormat.d.mts → summaryFormat.d.ts} +16 -3
  408. package/lib/summary/summaryFormat.d.ts.map +1 -0
  409. package/lib/summary/{summaryFormat.mjs → summaryFormat.js} +1 -1
  410. package/lib/summary/summaryFormat.js.map +1 -0
  411. package/lib/summary/{summaryGenerator.d.mts → summaryGenerator.d.ts} +7 -6
  412. package/lib/summary/summaryGenerator.d.ts.map +1 -0
  413. package/lib/summary/{summaryGenerator.mjs → summaryGenerator.js} +11 -2
  414. package/lib/summary/summaryGenerator.js.map +1 -0
  415. package/lib/summary/{summaryManager.d.mts → summaryManager.d.ts} +6 -7
  416. package/lib/summary/summaryManager.d.ts.map +1 -0
  417. package/lib/summary/{summaryManager.mjs → summaryManager.js} +4 -5
  418. package/lib/summary/summaryManager.js.map +1 -0
  419. package/lib/test/batchTracker.spec.js +88 -0
  420. package/lib/test/batchTracker.spec.js.map +1 -0
  421. package/lib/test/blobManager.spec.js +835 -0
  422. package/lib/test/blobManager.spec.js.map +1 -0
  423. package/lib/test/channelCollection.spec.js +138 -0
  424. package/lib/test/channelCollection.spec.js.map +1 -0
  425. package/lib/test/containerRuntime.spec.js +1748 -0
  426. package/lib/test/containerRuntime.spec.js.map +1 -0
  427. package/lib/test/dataStoreContext.spec.js +771 -0
  428. package/lib/test/dataStoreContext.spec.js.map +1 -0
  429. package/lib/test/dataStoreCreation.spec.js +303 -0
  430. package/lib/test/dataStoreCreation.spec.js.map +1 -0
  431. package/lib/test/dataStoreRegistry.spec.js +26 -0
  432. package/lib/test/dataStoreRegistry.spec.js.map +1 -0
  433. package/lib/test/fuzz/fuzzUtils.js +66 -0
  434. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  435. package/lib/test/fuzz/summarizer.fuzz.spec.js +31 -0
  436. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +1 -0
  437. package/lib/test/fuzz/summarizerFuzzMocks.js +162 -0
  438. package/lib/test/fuzz/summarizerFuzzMocks.js.map +1 -0
  439. package/lib/test/fuzz/summarizerFuzzSuite.js +106 -0
  440. package/lib/test/fuzz/summarizerFuzzSuite.js.map +1 -0
  441. package/lib/test/gc/garbageCollection.spec.js +1464 -0
  442. package/lib/test/gc/garbageCollection.spec.js.map +1 -0
  443. package/lib/test/gc/gcConfigs.spec.js +689 -0
  444. package/lib/test/gc/gcConfigs.spec.js.map +1 -0
  445. package/lib/test/gc/gcHelpers.spec.js +110 -0
  446. package/lib/test/gc/gcHelpers.spec.js.map +1 -0
  447. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +68 -0
  448. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +1 -0
  449. package/lib/test/gc/gcStats.spec.js +390 -0
  450. package/lib/test/gc/gcStats.spec.js.map +1 -0
  451. package/lib/test/gc/gcSummaryStateTracker.spec.js +228 -0
  452. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +1 -0
  453. package/lib/test/gc/gcTelemetry.spec.js +530 -0
  454. package/lib/test/gc/gcTelemetry.spec.js.map +1 -0
  455. package/lib/test/gc/gcUnitTestHelpers.js +29 -0
  456. package/lib/test/gc/gcUnitTestHelpers.js.map +1 -0
  457. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +192 -0
  458. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +1 -0
  459. package/lib/test/getPendingBlobs.spec.js +193 -0
  460. package/lib/test/getPendingBlobs.spec.js.map +1 -0
  461. package/lib/test/hardwareStats.spec.js +93 -0
  462. package/lib/test/hardwareStats.spec.js.map +1 -0
  463. package/lib/test/index.js +6 -0
  464. package/lib/test/index.js.map +1 -0
  465. package/lib/test/opLifecycle/OpGroupingManager.spec.js +225 -0
  466. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +1 -0
  467. package/lib/test/opLifecycle/batchManager.spec.js +189 -0
  468. package/lib/test/opLifecycle/batchManager.spec.js.map +1 -0
  469. package/lib/test/opLifecycle/opCompressor.spec.js +74 -0
  470. package/lib/test/opLifecycle/opCompressor.spec.js.map +1 -0
  471. package/lib/test/opLifecycle/opDecompressor.spec.js +218 -0
  472. package/lib/test/opLifecycle/opDecompressor.spec.js.map +1 -0
  473. package/lib/test/opLifecycle/opSplitter.spec.js +272 -0
  474. package/lib/test/opLifecycle/opSplitter.spec.js.map +1 -0
  475. package/lib/test/opLifecycle/outbox.spec.js +675 -0
  476. package/lib/test/opLifecycle/outbox.spec.js.map +1 -0
  477. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +196 -0
  478. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +1 -0
  479. package/lib/test/pendingStateManager.spec.js +329 -0
  480. package/lib/test/pendingStateManager.spec.js.map +1 -0
  481. package/lib/test/scheduleManager.spec.js +270 -0
  482. package/lib/test/scheduleManager.spec.js.map +1 -0
  483. package/lib/test/summarizerNode.spec.js +326 -0
  484. package/lib/test/summarizerNode.spec.js.map +1 -0
  485. package/lib/test/summarizerNodeWithGc.spec.js +318 -0
  486. package/lib/test/summarizerNodeWithGc.spec.js.map +1 -0
  487. package/lib/test/summary/orderedClientElection.spec.js +535 -0
  488. package/lib/test/summary/orderedClientElection.spec.js.map +1 -0
  489. package/lib/test/summary/runningSummarizer.spec.js +1349 -0
  490. package/lib/test/summary/runningSummarizer.spec.js.map +1 -0
  491. package/lib/test/summary/summarizer.spec.js +29 -0
  492. package/lib/test/summary/summarizer.spec.js.map +1 -0
  493. package/lib/test/summary/summarizerClientElection.spec.js +436 -0
  494. package/lib/test/summary/summarizerClientElection.spec.js.map +1 -0
  495. package/lib/test/summary/summarizerHeuristics.spec.js +289 -0
  496. package/lib/test/summary/summarizerHeuristics.spec.js.map +1 -0
  497. package/lib/test/summary/summaryCollection.spec.js +200 -0
  498. package/lib/test/summary/summaryCollection.spec.js.map +1 -0
  499. package/lib/test/summary/summaryManager.spec.js +430 -0
  500. package/lib/test/summary/summaryManager.spec.js.map +1 -0
  501. package/lib/test/summary/testQuorumClients.js +34 -0
  502. package/lib/test/summary/testQuorumClients.js.map +1 -0
  503. package/lib/test/throttler.spec.js +175 -0
  504. package/lib/test/throttler.spec.js.map +1 -0
  505. package/lib/test/types/validateContainerRuntimePrevious.generated.js +180 -0
  506. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +1 -0
  507. package/lib/{throttler.d.mts → throttler.d.ts} +1 -1
  508. package/lib/throttler.d.ts.map +1 -0
  509. package/lib/{throttler.mjs → throttler.js} +1 -1
  510. package/lib/throttler.js.map +1 -0
  511. package/package.json +101 -88
  512. package/src/batchTracker.ts +1 -1
  513. package/src/blobManager.ts +1 -15
  514. package/src/{dataStores.ts → channelCollection.ts} +620 -175
  515. package/src/connectionTelemetry.ts +42 -3
  516. package/src/containerHandleContext.ts +1 -1
  517. package/src/containerRuntime.ts +604 -415
  518. package/src/dataStore.ts +16 -15
  519. package/src/dataStoreContext.ts +376 -216
  520. package/src/dataStoreContexts.ts +2 -1
  521. package/src/deltaManagerSummarizerProxy.ts +132 -7
  522. package/src/gc/garbageCollection.ts +84 -44
  523. package/src/gc/gcConfigs.ts +17 -7
  524. package/src/gc/gcDefinitions.ts +23 -13
  525. package/src/gc/gcHelpers.ts +2 -2
  526. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  527. package/src/gc/gcSummaryStateTracker.ts +19 -7
  528. package/src/gc/gcTelemetry.ts +9 -7
  529. package/src/gc/gcUnreferencedStateTracker.ts +1 -1
  530. package/src/gc/index.ts +10 -9
  531. package/src/index.ts +28 -27
  532. package/src/messageTypes.ts +3 -3
  533. package/src/opLifecycle/README.md +2 -4
  534. package/src/opLifecycle/batchManager.ts +2 -2
  535. package/src/opLifecycle/definitions.ts +2 -2
  536. package/src/opLifecycle/index.ts +8 -8
  537. package/src/opLifecycle/opCompressor.ts +3 -3
  538. package/src/opLifecycle/opDecompressor.ts +3 -3
  539. package/src/opLifecycle/opGroupingManager.ts +3 -12
  540. package/src/opLifecycle/opSplitter.ts +3 -3
  541. package/src/opLifecycle/outbox.ts +29 -9
  542. package/src/opLifecycle/remoteMessageProcessor.ts +4 -4
  543. package/src/packageVersion.ts +1 -1
  544. package/src/pendingStateManager.ts +19 -13
  545. package/src/scheduleManager.ts +4 -4
  546. package/src/summary/index.ts +13 -12
  547. package/src/summary/orderedClientElection.ts +1 -1
  548. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  549. package/src/summary/runningSummarizer.ts +52 -32
  550. package/src/summary/summarizer.ts +7 -7
  551. package/src/summary/summarizerClientElection.ts +2 -2
  552. package/src/summary/summarizerHeuristics.ts +3 -3
  553. package/src/summary/summarizerNode/index.ts +6 -3
  554. package/src/summary/summarizerNode/summarizerNode.ts +50 -5
  555. package/src/summary/summarizerNode/summarizerNodeUtils.ts +14 -1
  556. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -11
  557. package/src/summary/summarizerTypes.ts +11 -23
  558. package/src/summary/summaryFormat.ts +16 -2
  559. package/src/summary/summaryGenerator.ts +16 -4
  560. package/src/summary/summaryManager.ts +6 -7
  561. package/tsconfig.cjs.json +7 -0
  562. package/tsconfig.json +2 -5
  563. package/dist/dataStores.d.ts +0 -151
  564. package/dist/dataStores.d.ts.map +0 -1
  565. package/dist/dataStores.js.map +0 -1
  566. package/dist/deltaManagerProxyBase.d.ts.map +0 -1
  567. package/dist/deltaManagerProxyBase.js +0 -77
  568. package/dist/deltaManagerProxyBase.js.map +0 -1
  569. package/lib/batchTracker.d.mts.map +0 -1
  570. package/lib/batchTracker.mjs.map +0 -1
  571. package/lib/blobManager.d.mts.map +0 -1
  572. package/lib/blobManager.mjs.map +0 -1
  573. package/lib/connectionTelemetry.d.mts.map +0 -1
  574. package/lib/connectionTelemetry.mjs.map +0 -1
  575. package/lib/containerHandleContext.d.mts.map +0 -1
  576. package/lib/containerHandleContext.mjs.map +0 -1
  577. package/lib/containerRuntime.d.mts.map +0 -1
  578. package/lib/containerRuntime.mjs.map +0 -1
  579. package/lib/dataStore.d.mts.map +0 -1
  580. package/lib/dataStore.mjs.map +0 -1
  581. package/lib/dataStoreContext.d.mts.map +0 -1
  582. package/lib/dataStoreContext.mjs.map +0 -1
  583. package/lib/dataStoreContexts.d.mts.map +0 -1
  584. package/lib/dataStoreContexts.mjs.map +0 -1
  585. package/lib/dataStoreRegistry.d.mts.map +0 -1
  586. package/lib/dataStoreRegistry.mjs.map +0 -1
  587. package/lib/dataStores.d.mts +0 -151
  588. package/lib/dataStores.d.mts.map +0 -1
  589. package/lib/dataStores.mjs.map +0 -1
  590. package/lib/deltaManagerProxyBase.d.mts +0 -35
  591. package/lib/deltaManagerProxyBase.d.mts.map +0 -1
  592. package/lib/deltaManagerProxyBase.mjs +0 -73
  593. package/lib/deltaManagerProxyBase.mjs.map +0 -1
  594. package/lib/deltaManagerSummarizerProxy.d.mts +0 -19
  595. package/lib/deltaManagerSummarizerProxy.d.mts.map +0 -1
  596. package/lib/deltaManagerSummarizerProxy.mjs +0 -38
  597. package/lib/deltaManagerSummarizerProxy.mjs.map +0 -1
  598. package/lib/deltaScheduler.d.mts.map +0 -1
  599. package/lib/deltaScheduler.mjs.map +0 -1
  600. package/lib/error.d.mts.map +0 -1
  601. package/lib/error.mjs.map +0 -1
  602. package/lib/gc/garbageCollection.d.mts.map +0 -1
  603. package/lib/gc/garbageCollection.mjs.map +0 -1
  604. package/lib/gc/gcConfigs.d.mts.map +0 -1
  605. package/lib/gc/gcConfigs.mjs.map +0 -1
  606. package/lib/gc/gcDefinitions.d.mts.map +0 -1
  607. package/lib/gc/gcDefinitions.mjs.map +0 -1
  608. package/lib/gc/gcHelpers.mjs.map +0 -1
  609. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +0 -1
  610. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +0 -1
  611. package/lib/gc/gcSummaryDefinitions.d.mts.map +0 -1
  612. package/lib/gc/gcSummaryDefinitions.mjs.map +0 -1
  613. package/lib/gc/gcSummaryStateTracker.d.mts.map +0 -1
  614. package/lib/gc/gcSummaryStateTracker.mjs.map +0 -1
  615. package/lib/gc/gcTelemetry.d.mts.map +0 -1
  616. package/lib/gc/gcTelemetry.mjs.map +0 -1
  617. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +0 -1
  618. package/lib/gc/gcUnreferencedStateTracker.mjs.map +0 -1
  619. package/lib/gc/index.d.mts +0 -13
  620. package/lib/gc/index.d.mts.map +0 -1
  621. package/lib/gc/index.mjs.map +0 -1
  622. package/lib/index.d.mts.map +0 -1
  623. package/lib/index.mjs +0 -25
  624. package/lib/index.mjs.map +0 -1
  625. package/lib/messageTypes.d.mts.map +0 -1
  626. package/lib/messageTypes.mjs.map +0 -1
  627. package/lib/metadata.d.mts.map +0 -1
  628. package/lib/metadata.mjs.map +0 -1
  629. package/lib/opLifecycle/batchManager.d.mts.map +0 -1
  630. package/lib/opLifecycle/batchManager.mjs.map +0 -1
  631. package/lib/opLifecycle/definitions.d.mts.map +0 -1
  632. package/lib/opLifecycle/definitions.mjs.map +0 -1
  633. package/lib/opLifecycle/index.d.mts +0 -13
  634. package/lib/opLifecycle/index.d.mts.map +0 -1
  635. package/lib/opLifecycle/index.mjs +0 -12
  636. package/lib/opLifecycle/index.mjs.map +0 -1
  637. package/lib/opLifecycle/opCompressor.d.mts.map +0 -1
  638. package/lib/opLifecycle/opCompressor.mjs.map +0 -1
  639. package/lib/opLifecycle/opDecompressor.d.mts.map +0 -1
  640. package/lib/opLifecycle/opDecompressor.mjs.map +0 -1
  641. package/lib/opLifecycle/opGroupingManager.d.mts.map +0 -1
  642. package/lib/opLifecycle/opGroupingManager.mjs.map +0 -1
  643. package/lib/opLifecycle/opSplitter.d.mts.map +0 -1
  644. package/lib/opLifecycle/opSplitter.mjs.map +0 -1
  645. package/lib/opLifecycle/outbox.d.mts.map +0 -1
  646. package/lib/opLifecycle/outbox.mjs.map +0 -1
  647. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +0 -1
  648. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +0 -1
  649. package/lib/opProperties.d.mts.map +0 -1
  650. package/lib/opProperties.mjs.map +0 -1
  651. package/lib/packageVersion.d.mts.map +0 -1
  652. package/lib/packageVersion.mjs.map +0 -1
  653. package/lib/pendingStateManager.d.mts.map +0 -1
  654. package/lib/pendingStateManager.mjs.map +0 -1
  655. package/lib/scheduleManager.d.mts.map +0 -1
  656. package/lib/scheduleManager.mjs.map +0 -1
  657. package/lib/storageServiceWithAttachBlobs.d.mts.map +0 -1
  658. package/lib/storageServiceWithAttachBlobs.mjs.map +0 -1
  659. package/lib/summary/index.d.mts.map +0 -1
  660. package/lib/summary/index.mjs.map +0 -1
  661. package/lib/summary/orderedClientElection.d.mts.map +0 -1
  662. package/lib/summary/orderedClientElection.mjs.map +0 -1
  663. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +0 -1
  664. package/lib/summary/runWhileConnectedCoordinator.mjs.map +0 -1
  665. package/lib/summary/runningSummarizer.d.mts.map +0 -1
  666. package/lib/summary/runningSummarizer.mjs.map +0 -1
  667. package/lib/summary/summarizer.d.mts.map +0 -1
  668. package/lib/summary/summarizer.mjs.map +0 -1
  669. package/lib/summary/summarizerClientElection.d.mts.map +0 -1
  670. package/lib/summary/summarizerClientElection.mjs.map +0 -1
  671. package/lib/summary/summarizerHeuristics.d.mts.map +0 -1
  672. package/lib/summary/summarizerHeuristics.mjs.map +0 -1
  673. package/lib/summary/summarizerNode/index.d.mts.map +0 -1
  674. package/lib/summary/summarizerNode/index.mjs +0 -7
  675. package/lib/summary/summarizerNode/index.mjs.map +0 -1
  676. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +0 -1
  677. package/lib/summary/summarizerNode/summarizerNode.mjs.map +0 -1
  678. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +0 -1
  679. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +0 -1
  680. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +0 -1
  681. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +0 -1
  682. package/lib/summary/summarizerTypes.d.mts.map +0 -1
  683. package/lib/summary/summarizerTypes.mjs.map +0 -1
  684. package/lib/summary/summaryCollection.d.mts.map +0 -1
  685. package/lib/summary/summaryCollection.mjs.map +0 -1
  686. package/lib/summary/summaryFormat.d.mts.map +0 -1
  687. package/lib/summary/summaryFormat.mjs.map +0 -1
  688. package/lib/summary/summaryGenerator.d.mts.map +0 -1
  689. package/lib/summary/summaryGenerator.mjs.map +0 -1
  690. package/lib/summary/summaryManager.d.mts.map +0 -1
  691. package/lib/summary/summaryManager.mjs.map +0 -1
  692. package/lib/throttler.d.mts.map +0 -1
  693. package/lib/throttler.mjs.map +0 -1
  694. 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;
@@ -136,10 +137,12 @@ export class Outbox {
136
137
  const mainBatchSeqNums = this.mainBatch.sequenceNumbers;
137
138
  const attachFlowBatchSeqNums = this.attachFlowBatch.sequenceNumbers;
138
139
  const blobAttachSeqNums = this.blobAttachBatch.sequenceNumbers;
140
+ const idAllocSeqNums = this.idAllocationBatch.sequenceNumbers;
139
141
  assert(
140
142
  this.params.config.disablePartialFlush ||
141
143
  (sequenceNumbersMatch(mainBatchSeqNums, attachFlowBatchSeqNums) &&
142
- sequenceNumbersMatch(mainBatchSeqNums, blobAttachSeqNums)),
144
+ sequenceNumbersMatch(mainBatchSeqNums, blobAttachSeqNums) &&
145
+ sequenceNumbersMatch(mainBatchSeqNums, idAllocSeqNums)),
143
146
  0x58d /* Reference sequence numbers from both batches must be in sync */,
144
147
  );
145
148
 
@@ -148,7 +151,8 @@ export class Outbox {
148
151
  if (
149
152
  sequenceNumbersMatch(mainBatchSeqNums, currentSequenceNumbers) &&
150
153
  sequenceNumbersMatch(attachFlowBatchSeqNums, currentSequenceNumbers) &&
151
- sequenceNumbersMatch(blobAttachSeqNums, currentSequenceNumbers)
154
+ sequenceNumbersMatch(blobAttachSeqNums, currentSequenceNumbers) &&
155
+ sequenceNumbersMatch(idAllocSeqNums, currentSequenceNumbers)
152
156
  ) {
153
157
  // The reference sequence numbers are stable, there is nothing to do
154
158
  return;
@@ -178,12 +182,20 @@ export class Outbox {
178
182
  }
179
183
 
180
184
  public submit(message: BatchMessage) {
185
+ assert(
186
+ message.type !== ContainerMessageType.IdAllocation,
187
+ 0x8f8 /* Allocation message submitted to mainBatch. */,
188
+ );
181
189
  this.maybeFlushPartialBatch();
182
190
 
183
191
  this.addMessageToBatchManager(this.mainBatch, message);
184
192
  }
185
193
 
186
194
  public submitAttach(message: BatchMessage) {
195
+ assert(
196
+ message.type === ContainerMessageType.Attach,
197
+ 0x8f9 /* Non attach message submitted to attachFlowBatch. */,
198
+ );
187
199
  this.maybeFlushPartialBatch();
188
200
 
189
201
  if (
@@ -215,6 +227,10 @@ export class Outbox {
215
227
  }
216
228
 
217
229
  public submitBlobAttach(message: BatchMessage) {
230
+ assert(
231
+ message.type === ContainerMessageType.BlobAttach,
232
+ 0x8fa /* Non blobAttach message submitted to blobAttachBatch. */,
233
+ );
218
234
  this.maybeFlushPartialBatch();
219
235
 
220
236
  this.addMessageToBatchManager(this.blobAttachBatch, message);
@@ -233,6 +249,10 @@ export class Outbox {
233
249
  }
234
250
 
235
251
  public submitIdAllocation(message: BatchMessage) {
252
+ assert(
253
+ message.type === ContainerMessageType.IdAllocation,
254
+ 0x8fb /* Non allocation message submitted to idAllocationBatch. */,
255
+ );
236
256
  this.maybeFlushPartialBatch();
237
257
 
238
258
  if (
@@ -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,
@@ -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.245554";
@@ -11,9 +11,9 @@ import { ICriticalContainerError } from "@fluidframework/container-definitions";
11
11
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
12
12
  import { DataProcessingError, ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
13
13
 
14
- import { InboundSequencedContainerRuntimeMessage } from "./messageTypes";
15
- import { pkgVersion } from "./packageVersion";
16
- import { IBatchMetadata } from "./metadata";
14
+ import { InboundSequencedContainerRuntimeMessage } from "./messageTypes.js";
15
+ import { pkgVersion } from "./packageVersion.js";
16
+ import { IBatchMetadata } from "./metadata.js";
17
17
 
18
18
  /**
19
19
  * This represents a message that has been submitted and is added to the pending queue when `submit` is called on the
@@ -48,6 +48,7 @@ export interface IRuntimeStateHandler {
48
48
  reSubmit(message: IPendingBatchMessage): void;
49
49
  reSubmitBatch(batch: IPendingBatchMessage[]): void;
50
50
  isActiveConnection: () => boolean;
51
+ isAttached: () => boolean;
51
52
  }
52
53
 
53
54
  /** Union of keys of T */
@@ -182,28 +183,33 @@ export class PendingStateManager implements IDisposable {
182
183
  public async applyStashedOpsAt(seqNum?: number) {
183
184
  // apply stashed ops at sequence number
184
185
  while (!this.initialMessages.isEmpty()) {
185
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
186
- const nextMessage = this.initialMessages.peekFront()!;
187
186
  if (seqNum !== undefined) {
188
- if (nextMessage.referenceSequenceNumber > seqNum) {
187
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
188
+ const peekMessage = this.initialMessages.peekFront()!;
189
+ if (peekMessage.referenceSequenceNumber > seqNum) {
189
190
  break; // nothing left to do at this sequence number
190
191
  }
191
- if (nextMessage.referenceSequenceNumber < seqNum) {
192
+ if (peekMessage.referenceSequenceNumber < seqNum) {
192
193
  throw new Error("loaded from snapshot too recent to apply stashed ops");
193
194
  }
194
195
  }
195
-
196
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
197
+ const nextMessage = this.initialMessages.shift()!;
196
198
  try {
197
199
  // applyStashedOp will cause the DDS to behave as if it has sent the op but not actually send it
198
200
  const localOpMetadata = await this.stateHandler.applyStashedOp(nextMessage.content);
199
- nextMessage.localOpMetadata = localOpMetadata;
201
+ if (!this.stateHandler.isAttached()) {
202
+ if (localOpMetadata !== undefined) {
203
+ throw new Error("Local Op Metadata must be undefined when not attached");
204
+ }
205
+ } else {
206
+ nextMessage.localOpMetadata = localOpMetadata;
207
+ // then we push onto pendingMessages which will cause PendingStateManager to resubmit when we connect
208
+ this.pendingMessages.push(nextMessage);
209
+ }
200
210
  } catch (error) {
201
211
  throw DataProcessingError.wrapIfUnrecognized(error, "applyStashedOp", nextMessage);
202
212
  }
203
-
204
- // then we push onto pendingMessages which will cause PendingStateManager to resubmit when we connect
205
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
206
- this.pendingMessages.push(this.initialMessages.shift()!);
207
213
  }
208
214
  }
209
215
 
@@ -2,7 +2,6 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { EventEmitter } from "events";
6
5
  import { IDeltaManager } from "@fluidframework/container-definitions";
7
6
  import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
8
7
  import {
@@ -13,11 +12,12 @@ import {
13
12
  ITelemetryLoggerExt,
14
13
  } from "@fluidframework/telemetry-utils";
15
14
  import { assert } from "@fluidframework/core-utils";
15
+ import type { EventEmitter } from "@fluid-internal/client-utils";
16
16
  import { performance } from "@fluid-internal/client-utils";
17
17
  import { isRuntimeMessage } from "@fluidframework/driver-utils";
18
- import { DeltaScheduler } from "./deltaScheduler";
19
- import { pkgVersion } from "./packageVersion";
20
- import { IBatchMetadata } from "./metadata";
18
+ import { DeltaScheduler } from "./deltaScheduler.js";
19
+ import { pkgVersion } from "./packageVersion.js";
20
+ import { IBatchMetadata } from "./metadata.js";
21
21
 
22
22
  type IRuntimeMessageMetadata =
23
23
  | undefined