@fluidframework/container-runtime 2.13.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/.eslintrc.cjs +71 -5
  2. package/CHANGELOG.md +84 -0
  3. package/api-report/container-runtime.legacy.alpha.api.md +38 -232
  4. package/dist/batchTracker.d.ts +1 -2
  5. package/dist/batchTracker.d.ts.map +1 -1
  6. package/dist/batchTracker.js +1 -1
  7. package/dist/batchTracker.js.map +1 -1
  8. package/dist/blobManager/blobManager.d.ts +5 -1
  9. package/dist/blobManager/blobManager.d.ts.map +1 -1
  10. package/dist/blobManager/blobManager.js +30 -13
  11. package/dist/blobManager/blobManager.js.map +1 -1
  12. package/dist/blobManager/blobManagerSnapSum.d.ts +1 -0
  13. package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  14. package/dist/blobManager/blobManagerSnapSum.js +7 -5
  15. package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
  16. package/dist/channelCollection.d.ts +23 -12
  17. package/dist/channelCollection.d.ts.map +1 -1
  18. package/dist/channelCollection.js +85 -53
  19. package/dist/channelCollection.js.map +1 -1
  20. package/dist/connectionTelemetry.d.ts +2 -2
  21. package/dist/connectionTelemetry.d.ts.map +1 -1
  22. package/dist/connectionTelemetry.js +10 -6
  23. package/dist/connectionTelemetry.js.map +1 -1
  24. package/dist/containerHandleContext.d.ts +1 -1
  25. package/dist/containerHandleContext.d.ts.map +1 -1
  26. package/dist/containerHandleContext.js.map +1 -1
  27. package/dist/containerRuntime.d.ts +87 -94
  28. package/dist/containerRuntime.d.ts.map +1 -1
  29. package/dist/containerRuntime.js +312 -226
  30. package/dist/containerRuntime.js.map +1 -1
  31. package/dist/dataStore.d.ts +7 -3
  32. package/dist/dataStore.d.ts.map +1 -1
  33. package/dist/dataStore.js +8 -4
  34. package/dist/dataStore.js.map +1 -1
  35. package/dist/dataStoreContext.d.ts +41 -25
  36. package/dist/dataStoreContext.d.ts.map +1 -1
  37. package/dist/dataStoreContext.js +47 -29
  38. package/dist/dataStoreContext.js.map +1 -1
  39. package/dist/dataStoreContexts.d.ts +6 -2
  40. package/dist/dataStoreContexts.d.ts.map +1 -1
  41. package/dist/dataStoreContexts.js +7 -2
  42. package/dist/dataStoreContexts.js.map +1 -1
  43. package/dist/dataStoreRegistry.d.ts +1 -1
  44. package/dist/dataStoreRegistry.d.ts.map +1 -1
  45. package/dist/dataStoreRegistry.js.map +1 -1
  46. package/dist/deltaManagerProxies.d.ts +1 -17
  47. package/dist/deltaManagerProxies.d.ts.map +1 -1
  48. package/dist/deltaManagerProxies.js.map +1 -1
  49. package/dist/deltaScheduler.d.ts +9 -6
  50. package/dist/deltaScheduler.d.ts.map +1 -1
  51. package/dist/deltaScheduler.js +95 -89
  52. package/dist/deltaScheduler.js.map +1 -1
  53. package/dist/gc/garbageCollection.d.ts +21 -7
  54. package/dist/gc/garbageCollection.d.ts.map +1 -1
  55. package/dist/gc/garbageCollection.js +48 -19
  56. package/dist/gc/garbageCollection.js.map +1 -1
  57. package/dist/gc/gcConfigs.d.ts +11 -0
  58. package/dist/gc/gcConfigs.d.ts.map +1 -1
  59. package/dist/gc/gcConfigs.js +5 -2
  60. package/dist/gc/gcConfigs.js.map +1 -1
  61. package/dist/gc/gcDefinitions.d.ts +218 -70
  62. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  63. package/dist/gc/gcDefinitions.js +40 -13
  64. package/dist/gc/gcDefinitions.js.map +1 -1
  65. package/dist/gc/gcHelpers.d.ts +6 -2
  66. package/dist/gc/gcHelpers.d.ts.map +1 -1
  67. package/dist/gc/gcHelpers.js +14 -7
  68. package/dist/gc/gcHelpers.js.map +1 -1
  69. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  70. package/dist/gc/gcSummaryDefinitions.d.ts +18 -6
  71. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
  72. package/dist/gc/gcSummaryDefinitions.js.map +1 -1
  73. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  74. package/dist/gc/gcSummaryStateTracker.js +2 -1
  75. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  76. package/dist/gc/gcTelemetry.d.ts +33 -11
  77. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  78. package/dist/gc/gcTelemetry.js +35 -17
  79. package/dist/gc/gcTelemetry.js.map +1 -1
  80. package/dist/gc/gcUnreferencedStateTracker.d.ts +42 -13
  81. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  82. package/dist/gc/gcUnreferencedStateTracker.js +27 -9
  83. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  84. package/dist/gc/index.d.ts +1 -0
  85. package/dist/gc/index.d.ts.map +1 -1
  86. package/dist/gc/index.js +3 -1
  87. package/dist/gc/index.js.map +1 -1
  88. package/dist/inboundBatchAggregator.d.ts +34 -0
  89. package/dist/inboundBatchAggregator.d.ts.map +1 -0
  90. package/dist/inboundBatchAggregator.js +185 -0
  91. package/dist/inboundBatchAggregator.js.map +1 -0
  92. package/dist/index.d.ts +1 -1
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js.map +1 -1
  95. package/dist/layerCompatState.d.ts +19 -0
  96. package/dist/layerCompatState.d.ts.map +1 -0
  97. package/dist/layerCompatState.js +64 -0
  98. package/dist/layerCompatState.js.map +1 -0
  99. package/dist/legacy.d.ts +0 -4
  100. package/dist/messageTypes.d.ts +14 -5
  101. package/dist/messageTypes.d.ts.map +1 -1
  102. package/dist/messageTypes.js.map +1 -1
  103. package/dist/metadata.d.ts +12 -4
  104. package/dist/metadata.d.ts.map +1 -1
  105. package/dist/metadata.js +6 -2
  106. package/dist/metadata.js.map +1 -1
  107. package/dist/opLifecycle/batchManager.d.ts +9 -3
  108. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  109. package/dist/opLifecycle/batchManager.js +3 -1
  110. package/dist/opLifecycle/batchManager.js.map +1 -1
  111. package/dist/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  112. package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  113. package/dist/opLifecycle/duplicateBatchDetector.js +11 -5
  114. package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
  115. package/dist/opLifecycle/opCompressor.d.ts +3 -2
  116. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  117. package/dist/opLifecycle/opCompressor.js +13 -19
  118. package/dist/opLifecycle/opCompressor.js.map +1 -1
  119. package/dist/opLifecycle/opDecompressor.d.ts +6 -1
  120. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  121. package/dist/opLifecycle/opDecompressor.js +16 -8
  122. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  123. package/dist/opLifecycle/opGroupingManager.d.ts +1 -2
  124. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  125. package/dist/opLifecycle/opGroupingManager.js +9 -6
  126. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  127. package/dist/opLifecycle/opSplitter.d.ts +13 -10
  128. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  129. package/dist/opLifecycle/opSplitter.js +16 -11
  130. package/dist/opLifecycle/opSplitter.js.map +1 -1
  131. package/dist/opLifecycle/outbox.d.ts +4 -4
  132. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  133. package/dist/opLifecycle/outbox.js +17 -16
  134. package/dist/opLifecycle/outbox.js.map +1 -1
  135. package/dist/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  136. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  137. package/dist/opLifecycle/remoteMessageProcessor.js +3 -1
  138. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  139. package/dist/package.json +2 -1
  140. package/dist/packageVersion.d.ts +1 -1
  141. package/dist/packageVersion.js +1 -1
  142. package/dist/packageVersion.js.map +1 -1
  143. package/dist/pendingStateManager.d.ts +22 -11
  144. package/dist/pendingStateManager.d.ts.map +1 -1
  145. package/dist/pendingStateManager.js +24 -15
  146. package/dist/pendingStateManager.js.map +1 -1
  147. package/dist/summary/documentSchema.d.ts +7 -0
  148. package/dist/summary/documentSchema.d.ts.map +1 -1
  149. package/dist/summary/documentSchema.js +8 -4
  150. package/dist/summary/documentSchema.js.map +1 -1
  151. package/dist/summary/index.d.ts +1 -1
  152. package/dist/summary/index.d.ts.map +1 -1
  153. package/dist/summary/index.js.map +1 -1
  154. package/dist/summary/orderedClientElection.d.ts +94 -31
  155. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  156. package/dist/summary/orderedClientElection.js +28 -16
  157. package/dist/summary/orderedClientElection.js.map +1 -1
  158. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
  159. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  160. package/dist/summary/runWhileConnectedCoordinator.js +7 -2
  161. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  162. package/dist/summary/runningSummarizer.d.ts +17 -6
  163. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  164. package/dist/summary/runningSummarizer.js +48 -19
  165. package/dist/summary/runningSummarizer.js.map +1 -1
  166. package/dist/summary/summarizer.d.ts +10 -5
  167. package/dist/summary/summarizer.d.ts.map +1 -1
  168. package/dist/summary/summarizer.js +26 -11
  169. package/dist/summary/summarizer.js.map +1 -1
  170. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  171. package/dist/summary/summarizerClientElection.js +1 -0
  172. package/dist/summary/summarizerClientElection.js.map +1 -1
  173. package/dist/summary/summarizerHeuristics.d.ts +6 -2
  174. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  175. package/dist/summary/summarizerHeuristics.js +13 -5
  176. package/dist/summary/summarizerHeuristics.js.map +1 -1
  177. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  178. package/dist/summary/summarizerNode/index.js.map +1 -1
  179. package/dist/summary/summarizerNode/summarizerNode.d.ts +24 -8
  180. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  181. package/dist/summary/summarizerNode/summarizerNode.js +45 -36
  182. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  183. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  184. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  185. package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  186. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  187. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
  188. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  189. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
  190. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  191. package/dist/summary/summarizerTypes.d.ts +253 -135
  192. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  193. package/dist/summary/summarizerTypes.js.map +1 -1
  194. package/dist/summary/summaryCollection.d.ts +3 -4
  195. package/dist/summary/summaryCollection.d.ts.map +1 -1
  196. package/dist/summary/summaryCollection.js +10 -8
  197. package/dist/summary/summaryCollection.js.map +1 -1
  198. package/dist/summary/summaryFormat.d.ts +28 -9
  199. package/dist/summary/summaryFormat.d.ts.map +1 -1
  200. package/dist/summary/summaryFormat.js +3 -2
  201. package/dist/summary/summaryFormat.js.map +1 -1
  202. package/dist/summary/summaryGenerator.d.ts +9 -3
  203. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  204. package/dist/summary/summaryGenerator.js +22 -9
  205. package/dist/summary/summaryGenerator.js.map +1 -1
  206. package/dist/summary/summaryManager.d.ts +8 -4
  207. package/dist/summary/summaryManager.d.ts.map +1 -1
  208. package/dist/summary/summaryManager.js +20 -9
  209. package/dist/summary/summaryManager.js.map +1 -1
  210. package/dist/throttler.d.ts +26 -10
  211. package/dist/throttler.d.ts.map +1 -1
  212. package/dist/throttler.js +12 -4
  213. package/dist/throttler.js.map +1 -1
  214. package/lib/batchTracker.d.ts +1 -2
  215. package/lib/batchTracker.d.ts.map +1 -1
  216. package/lib/batchTracker.js +2 -2
  217. package/lib/batchTracker.js.map +1 -1
  218. package/lib/blobManager/blobManager.d.ts +5 -1
  219. package/lib/blobManager/blobManager.d.ts.map +1 -1
  220. package/lib/blobManager/blobManager.js +30 -13
  221. package/lib/blobManager/blobManager.js.map +1 -1
  222. package/lib/blobManager/blobManagerSnapSum.d.ts +1 -0
  223. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  224. package/lib/blobManager/blobManagerSnapSum.js +7 -5
  225. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  226. package/lib/channelCollection.d.ts +23 -12
  227. package/lib/channelCollection.d.ts.map +1 -1
  228. package/lib/channelCollection.js +88 -54
  229. package/lib/channelCollection.js.map +1 -1
  230. package/lib/connectionTelemetry.d.ts +2 -2
  231. package/lib/connectionTelemetry.d.ts.map +1 -1
  232. package/lib/connectionTelemetry.js +11 -7
  233. package/lib/connectionTelemetry.js.map +1 -1
  234. package/lib/containerHandleContext.d.ts +1 -1
  235. package/lib/containerHandleContext.d.ts.map +1 -1
  236. package/lib/containerHandleContext.js.map +1 -1
  237. package/lib/containerRuntime.d.ts +87 -94
  238. package/lib/containerRuntime.d.ts.map +1 -1
  239. package/lib/containerRuntime.js +319 -228
  240. package/lib/containerRuntime.js.map +1 -1
  241. package/lib/dataStore.d.ts +7 -3
  242. package/lib/dataStore.d.ts.map +1 -1
  243. package/lib/dataStore.js +8 -4
  244. package/lib/dataStore.js.map +1 -1
  245. package/lib/dataStoreContext.d.ts +41 -25
  246. package/lib/dataStoreContext.d.ts.map +1 -1
  247. package/lib/dataStoreContext.js +47 -29
  248. package/lib/dataStoreContext.js.map +1 -1
  249. package/lib/dataStoreContexts.d.ts +6 -2
  250. package/lib/dataStoreContexts.d.ts.map +1 -1
  251. package/lib/dataStoreContexts.js +7 -2
  252. package/lib/dataStoreContexts.js.map +1 -1
  253. package/lib/dataStoreRegistry.d.ts +1 -1
  254. package/lib/dataStoreRegistry.d.ts.map +1 -1
  255. package/lib/dataStoreRegistry.js.map +1 -1
  256. package/lib/deltaManagerProxies.d.ts +1 -17
  257. package/lib/deltaManagerProxies.d.ts.map +1 -1
  258. package/lib/deltaManagerProxies.js.map +1 -1
  259. package/lib/deltaScheduler.d.ts +9 -6
  260. package/lib/deltaScheduler.d.ts.map +1 -1
  261. package/lib/deltaScheduler.js +96 -90
  262. package/lib/deltaScheduler.js.map +1 -1
  263. package/lib/gc/garbageCollection.d.ts +21 -7
  264. package/lib/gc/garbageCollection.d.ts.map +1 -1
  265. package/lib/gc/garbageCollection.js +51 -20
  266. package/lib/gc/garbageCollection.js.map +1 -1
  267. package/lib/gc/gcConfigs.d.ts +11 -0
  268. package/lib/gc/gcConfigs.d.ts.map +1 -1
  269. package/lib/gc/gcConfigs.js +4 -2
  270. package/lib/gc/gcConfigs.js.map +1 -1
  271. package/lib/gc/gcDefinitions.d.ts +218 -70
  272. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  273. package/lib/gc/gcDefinitions.js +40 -13
  274. package/lib/gc/gcDefinitions.js.map +1 -1
  275. package/lib/gc/gcHelpers.d.ts +6 -2
  276. package/lib/gc/gcHelpers.d.ts.map +1 -1
  277. package/lib/gc/gcHelpers.js +14 -7
  278. package/lib/gc/gcHelpers.js.map +1 -1
  279. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  280. package/lib/gc/gcSummaryDefinitions.d.ts +18 -6
  281. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
  282. package/lib/gc/gcSummaryDefinitions.js.map +1 -1
  283. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  284. package/lib/gc/gcSummaryStateTracker.js +2 -1
  285. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  286. package/lib/gc/gcTelemetry.d.ts +33 -11
  287. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  288. package/lib/gc/gcTelemetry.js +38 -18
  289. package/lib/gc/gcTelemetry.js.map +1 -1
  290. package/lib/gc/gcUnreferencedStateTracker.d.ts +42 -13
  291. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  292. package/lib/gc/gcUnreferencedStateTracker.js +27 -9
  293. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  294. package/lib/gc/index.d.ts +1 -0
  295. package/lib/gc/index.d.ts.map +1 -1
  296. package/lib/gc/index.js +1 -0
  297. package/lib/gc/index.js.map +1 -1
  298. package/lib/inboundBatchAggregator.d.ts +34 -0
  299. package/lib/inboundBatchAggregator.d.ts.map +1 -0
  300. package/lib/inboundBatchAggregator.js +181 -0
  301. package/lib/inboundBatchAggregator.js.map +1 -0
  302. package/lib/index.d.ts +1 -1
  303. package/lib/index.d.ts.map +1 -1
  304. package/lib/index.js.map +1 -1
  305. package/lib/layerCompatState.d.ts +19 -0
  306. package/lib/layerCompatState.d.ts.map +1 -0
  307. package/lib/layerCompatState.js +60 -0
  308. package/lib/layerCompatState.js.map +1 -0
  309. package/lib/legacy.d.ts +0 -4
  310. package/lib/messageTypes.d.ts +14 -5
  311. package/lib/messageTypes.d.ts.map +1 -1
  312. package/lib/messageTypes.js.map +1 -1
  313. package/lib/metadata.d.ts +12 -4
  314. package/lib/metadata.d.ts.map +1 -1
  315. package/lib/metadata.js +6 -2
  316. package/lib/metadata.js.map +1 -1
  317. package/lib/opLifecycle/batchManager.d.ts +9 -3
  318. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  319. package/lib/opLifecycle/batchManager.js +3 -1
  320. package/lib/opLifecycle/batchManager.js.map +1 -1
  321. package/lib/opLifecycle/duplicateBatchDetector.d.ts +9 -3
  322. package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  323. package/lib/opLifecycle/duplicateBatchDetector.js +11 -5
  324. package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
  325. package/lib/opLifecycle/opCompressor.d.ts +3 -2
  326. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  327. package/lib/opLifecycle/opCompressor.js +14 -20
  328. package/lib/opLifecycle/opCompressor.js.map +1 -1
  329. package/lib/opLifecycle/opDecompressor.d.ts +6 -1
  330. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  331. package/lib/opLifecycle/opDecompressor.js +17 -9
  332. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  333. package/lib/opLifecycle/opGroupingManager.d.ts +1 -2
  334. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  335. package/lib/opLifecycle/opGroupingManager.js +10 -7
  336. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  337. package/lib/opLifecycle/opSplitter.d.ts +13 -10
  338. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  339. package/lib/opLifecycle/opSplitter.js +16 -11
  340. package/lib/opLifecycle/opSplitter.js.map +1 -1
  341. package/lib/opLifecycle/outbox.d.ts +4 -4
  342. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  343. package/lib/opLifecycle/outbox.js +17 -16
  344. package/lib/opLifecycle/outbox.js.map +1 -1
  345. package/lib/opLifecycle/remoteMessageProcessor.d.ts +9 -3
  346. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  347. package/lib/opLifecycle/remoteMessageProcessor.js +3 -1
  348. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  349. package/lib/packageVersion.d.ts +1 -1
  350. package/lib/packageVersion.js +1 -1
  351. package/lib/packageVersion.js.map +1 -1
  352. package/lib/pendingStateManager.d.ts +22 -11
  353. package/lib/pendingStateManager.d.ts.map +1 -1
  354. package/lib/pendingStateManager.js +25 -16
  355. package/lib/pendingStateManager.js.map +1 -1
  356. package/lib/summary/documentSchema.d.ts +7 -0
  357. package/lib/summary/documentSchema.d.ts.map +1 -1
  358. package/lib/summary/documentSchema.js +8 -4
  359. package/lib/summary/documentSchema.js.map +1 -1
  360. package/lib/summary/index.d.ts +1 -1
  361. package/lib/summary/index.d.ts.map +1 -1
  362. package/lib/summary/index.js.map +1 -1
  363. package/lib/summary/orderedClientElection.d.ts +94 -31
  364. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  365. package/lib/summary/orderedClientElection.js +28 -16
  366. package/lib/summary/orderedClientElection.js.map +1 -1
  367. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
  368. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  369. package/lib/summary/runWhileConnectedCoordinator.js +7 -2
  370. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  371. package/lib/summary/runningSummarizer.d.ts +17 -6
  372. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  373. package/lib/summary/runningSummarizer.js +48 -19
  374. package/lib/summary/runningSummarizer.js.map +1 -1
  375. package/lib/summary/summarizer.d.ts +10 -5
  376. package/lib/summary/summarizer.d.ts.map +1 -1
  377. package/lib/summary/summarizer.js +26 -11
  378. package/lib/summary/summarizer.js.map +1 -1
  379. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  380. package/lib/summary/summarizerClientElection.js +1 -0
  381. package/lib/summary/summarizerClientElection.js.map +1 -1
  382. package/lib/summary/summarizerHeuristics.d.ts +6 -2
  383. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  384. package/lib/summary/summarizerHeuristics.js +13 -5
  385. package/lib/summary/summarizerHeuristics.js.map +1 -1
  386. package/lib/summary/summarizerNode/index.d.ts.map +1 -1
  387. package/lib/summary/summarizerNode/index.js.map +1 -1
  388. package/lib/summary/summarizerNode/summarizerNode.d.ts +24 -8
  389. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  390. package/lib/summary/summarizerNode/summarizerNode.js +45 -36
  391. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  392. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
  393. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  394. package/lib/summary/summarizerNode/summarizerNodeUtils.js +3 -1
  395. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  396. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
  397. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  398. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
  399. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  400. package/lib/summary/summarizerTypes.d.ts +253 -135
  401. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  402. package/lib/summary/summarizerTypes.js.map +1 -1
  403. package/lib/summary/summaryCollection.d.ts +3 -4
  404. package/lib/summary/summaryCollection.d.ts.map +1 -1
  405. package/lib/summary/summaryCollection.js +10 -8
  406. package/lib/summary/summaryCollection.js.map +1 -1
  407. package/lib/summary/summaryFormat.d.ts +28 -9
  408. package/lib/summary/summaryFormat.d.ts.map +1 -1
  409. package/lib/summary/summaryFormat.js +2 -2
  410. package/lib/summary/summaryFormat.js.map +1 -1
  411. package/lib/summary/summaryGenerator.d.ts +9 -3
  412. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  413. package/lib/summary/summaryGenerator.js +22 -9
  414. package/lib/summary/summaryGenerator.js.map +1 -1
  415. package/lib/summary/summaryManager.d.ts +8 -4
  416. package/lib/summary/summaryManager.d.ts.map +1 -1
  417. package/lib/summary/summaryManager.js +20 -9
  418. package/lib/summary/summaryManager.js.map +1 -1
  419. package/lib/throttler.d.ts +26 -10
  420. package/lib/throttler.d.ts.map +1 -1
  421. package/lib/throttler.js +12 -4
  422. package/lib/throttler.js.map +1 -1
  423. package/package.json +22 -31
  424. package/src/batchTracker.ts +34 -36
  425. package/src/blobManager/blobManager.ts +54 -33
  426. package/src/blobManager/blobManagerSnapSum.ts +10 -10
  427. package/src/channelCollection.ts +108 -82
  428. package/src/connectionTelemetry.ts +43 -19
  429. package/src/containerHandleContext.ts +2 -2
  430. package/src/containerRuntime.ts +492 -364
  431. package/src/dataStore.ts +17 -9
  432. package/src/dataStoreContext.ts +94 -73
  433. package/src/dataStoreContexts.ts +17 -12
  434. package/src/dataStoreRegistry.ts +1 -1
  435. package/src/deltaManagerProxies.ts +5 -5
  436. package/src/deltaScheduler.ts +24 -18
  437. package/src/gc/garbageCollection.ts +89 -40
  438. package/src/gc/gcConfigs.ts +13 -5
  439. package/src/gc/gcDefinitions.ts +224 -70
  440. package/src/gc/gcHelpers.ts +22 -11
  441. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  442. package/src/gc/gcSummaryDefinitions.ts +18 -6
  443. package/src/gc/gcSummaryStateTracker.ts +7 -3
  444. package/src/gc/gcTelemetry.ts +73 -30
  445. package/src/gc/gcUnreferencedStateTracker.ts +40 -16
  446. package/src/gc/index.ts +1 -0
  447. package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +55 -122
  448. package/src/index.ts +0 -3
  449. package/src/layerCompatState.ts +75 -0
  450. package/src/messageTypes.ts +16 -5
  451. package/src/metadata.ts +12 -4
  452. package/src/opLifecycle/README.md +43 -34
  453. package/src/opLifecycle/batchManager.ts +12 -6
  454. package/src/opLifecycle/duplicateBatchDetector.ts +12 -6
  455. package/src/opLifecycle/opCompressor.ts +22 -25
  456. package/src/opLifecycle/opDecompressor.ts +23 -11
  457. package/src/opLifecycle/opGroupingManager.ts +16 -11
  458. package/src/opLifecycle/opSplitter.ts +24 -18
  459. package/src/opLifecycle/outbox.ts +35 -33
  460. package/src/opLifecycle/remoteMessageProcessor.ts +13 -5
  461. package/src/packageVersion.ts +1 -1
  462. package/src/pendingStateManager.ts +49 -26
  463. package/src/summary/documentSchema.ts +41 -22
  464. package/src/summary/index.ts +0 -3
  465. package/src/summary/orderedClientElection.ts +114 -49
  466. package/src/summary/runWhileConnectedCoordinator.ts +12 -3
  467. package/src/summary/runningSummarizer.ts +79 -36
  468. package/src/summary/summarizer.ts +51 -25
  469. package/src/summary/summarizerClientElection.ts +4 -2
  470. package/src/summary/summarizerHeuristics.ts +23 -12
  471. package/src/summary/summarizerNode/index.ts +1 -0
  472. package/src/summary/summarizerNode/summarizerNode.ts +54 -43
  473. package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
  474. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +25 -15
  475. package/src/summary/summarizerTypes.ts +253 -139
  476. package/src/summary/summaryCollection.ts +41 -31
  477. package/src/summary/summaryFormat.ts +34 -13
  478. package/src/summary/summaryGenerator.ts +39 -18
  479. package/src/summary/summaryManager.ts +36 -24
  480. package/src/throttler.ts +23 -11
  481. package/container-runtime.test-files.tar +0 -0
  482. package/dist/scheduleManager.d.ts +0 -28
  483. package/dist/scheduleManager.d.ts.map +0 -1
  484. package/dist/scheduleManager.js +0 -233
  485. package/dist/scheduleManager.js.map +0 -1
  486. package/lib/scheduleManager.d.ts +0 -28
  487. package/lib/scheduleManager.d.ts.map +0 -1
  488. package/lib/scheduleManager.js +0 -229
  489. package/lib/scheduleManager.js.map +0 -1
@@ -10,11 +10,14 @@ import { CreateSummarizerNodeSource, channelsTreeName, gcDataBlobKey, } from "@f
10
10
  import { GCDataBuilder, RequestParser, SummaryTreeBuilder, addBlobToSummary, convertSnapshotTreeToSummaryTree, convertSummaryTreeToITree, create404Response, createResponseError, encodeCompactIdToString, isSerializedHandle, processAttachMessageGCData, responseToException, unpackChildNodesUsedRoutes, } from "@fluidframework/runtime-utils/internal";
11
11
  import { DataCorruptionError, DataProcessingError, LoggingError, createChildLogger, createChildMonitoringContext, extractSafePropertiesFromMessage, tagCodeArtifacts, } from "@fluidframework/telemetry-utils/internal";
12
12
  import { v4 as uuid } from "uuid";
13
- import { DeletedResponseHeaderKey, defaultRuntimeHeaderData, } from "./containerRuntime.js";
13
+ import {
14
+ // eslint-disable-next-line import/no-deprecated
15
+ DeletedResponseHeaderKey, defaultRuntimeHeaderData, } from "./containerRuntime.js";
14
16
  import { channelToDataStore, isDataStoreAliasMessage, } from "./dataStore.js";
15
17
  import { LocalDetachedFluidDataStoreContext, LocalFluidDataStoreContext, RemoteFluidDataStoreContext, createAttributesBlob, } from "./dataStoreContext.js";
16
18
  import { DataStoreContexts } from "./dataStoreContexts.js";
17
19
  import { FluidDataStoreRegistry } from "./dataStoreRegistry.js";
20
+ // eslint-disable-next-line import/no-deprecated
18
21
  import { GCNodeType, urlToGCNodePath } from "./gc/index.js";
19
22
  import { ContainerMessageType } from "./messageTypes.js";
20
23
  import { StorageServiceWithAttachBlobs } from "./storageServiceWithAttachBlobs.js";
@@ -25,12 +28,17 @@ import { nonDataStorePaths, rootHasIsolatedChannels, } from "./summary/index.js"
25
28
  */
26
29
  export var RuntimeHeaders;
27
30
  (function (RuntimeHeaders) {
28
- /** True to wait for a data store to be created and loaded before returning it. */
31
+ /**
32
+ * True to wait for a data store to be created and loaded before returning it.
33
+ */
29
34
  RuntimeHeaders["wait"] = "wait";
30
- /** True if the request is coming from an IFluidHandle. */
35
+ /**
36
+ * True if the request is coming from an IFluidHandle.
37
+ */
31
38
  RuntimeHeaders["viaHandle"] = "viaHandle";
32
39
  })(RuntimeHeaders || (RuntimeHeaders = {}));
33
- /** True if a tombstoned object should be returned without erroring
40
+ /**
41
+ * True if a tombstoned object should be returned without erroring
34
42
  * @legacy
35
43
  * @alpha
36
44
  */
@@ -155,9 +163,12 @@ export class ChannelCollection {
155
163
  this.pendingAttach = new Map();
156
164
  // 0.24 back-compat attachingBeforeSummary
157
165
  this.attachOpFiredForDataStore = new Set();
166
+ // eslint-disable-next-line unicorn/consistent-function-scoping -- Property is defined once; no need to extract inner lambda
158
167
  this.disposeOnce = new Lazy(() => this.contexts.dispose());
159
168
  this.pendingAliasMap = new Map();
160
- /** For sampling. Only log once per container */
169
+ /**
170
+ * For sampling. Only log once per container
171
+ */
161
172
  this.shouldSendAttachLog = true;
162
173
  this.dispose = () => this.disposeOnce.value;
163
174
  this.mc = createChildMonitoringContext({ logger: baseLogger });
@@ -181,42 +192,42 @@ export class ChannelCollection {
181
192
  unreferencedDataStoreCount++;
182
193
  }
183
194
  // If we have a detached container, then create local data store contexts.
184
- if (this.parentContext.attachState !== AttachState.Detached) {
185
- let snapshotForRemoteFluidDatastoreContext = value;
186
- if (isInstanceOfISnapshot(baseSnapshot)) {
187
- snapshotForRemoteFluidDatastoreContext = {
188
- ...baseSnapshot,
189
- snapshotTree: value,
190
- };
195
+ if (this.parentContext.attachState === AttachState.Detached) {
196
+ if (typeof value !== "object") {
197
+ throw new LoggingError("Snapshot should be there to load from!!");
191
198
  }
192
- dataStoreContext = new RemoteFluidDataStoreContext({
199
+ const snapshotTree = value;
200
+ dataStoreContext = new LocalFluidDataStoreContext({
193
201
  id: key,
194
- snapshot: snapshotForRemoteFluidDatastoreContext,
202
+ pkg: undefined,
195
203
  parentContext: this.wrapContextForInnerChannel(key),
196
204
  storage: this.parentContext.storage,
197
205
  scope: this.parentContext.scope,
198
206
  createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
199
207
  type: CreateSummarizerNodeSource.FromSummary,
200
208
  }),
201
- loadingGroupId: value.groupId,
209
+ makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(key),
210
+ snapshotTree,
202
211
  });
203
212
  }
204
213
  else {
205
- if (typeof value !== "object") {
206
- throw new LoggingError("Snapshot should be there to load from!!");
214
+ let snapshotForRemoteFluidDatastoreContext = value;
215
+ if (isInstanceOfISnapshot(baseSnapshot)) {
216
+ snapshotForRemoteFluidDatastoreContext = {
217
+ ...baseSnapshot,
218
+ snapshotTree: value,
219
+ };
207
220
  }
208
- const snapshotTree = value;
209
- dataStoreContext = new LocalFluidDataStoreContext({
221
+ dataStoreContext = new RemoteFluidDataStoreContext({
210
222
  id: key,
211
- pkg: undefined,
223
+ snapshot: snapshotForRemoteFluidDatastoreContext,
212
224
  parentContext: this.wrapContextForInnerChannel(key),
213
225
  storage: this.parentContext.storage,
214
226
  scope: this.parentContext.scope,
215
227
  createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
216
228
  type: CreateSummarizerNodeSource.FromSummary,
217
229
  }),
218
- makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(key),
219
- snapshotTree,
230
+ loadingGroupId: value.groupId,
220
231
  });
221
232
  }
222
233
  this.contexts.addBoundOrRemoted(dataStoreContext);
@@ -366,7 +377,9 @@ export class ChannelCollection {
366
377
  alreadyProcessed(id) {
367
378
  return this.aliasMap.get(id) !== undefined || this.contexts.get(id) !== undefined;
368
379
  }
369
- /** Package up the context's attach summary etc into an IAttachMessage */
380
+ /**
381
+ * Package up the context's attach summary etc into an IAttachMessage
382
+ */
370
383
  generateAttachMessage(localContext) {
371
384
  // Get the attach summary.
372
385
  const attachSummary = localContext.getAttachSummary();
@@ -447,13 +460,12 @@ export class ChannelCollection {
447
460
  return uuid();
448
461
  }
449
462
  createDetachedDataStore(pkg, loadingGroupId) {
450
- return this.createContext(this.createDataStoreId(), pkg, LocalDetachedFluidDataStoreContext, undefined, // props
451
- loadingGroupId);
463
+ return this.createContext(this.createDataStoreId(), pkg, LocalDetachedFluidDataStoreContext, loadingGroupId);
452
464
  }
453
- createDataStoreContext(pkg, props, loadingGroupId) {
454
- return this.createContext(this.createDataStoreId(), pkg, LocalFluidDataStoreContext, props, loadingGroupId);
465
+ createDataStoreContext(pkg, loadingGroupId) {
466
+ return this.createContext(this.createDataStoreId(), pkg, LocalFluidDataStoreContext, loadingGroupId);
455
467
  }
456
- createContext(id, pkg, contextCtor, createProps, loadingGroupId) {
468
+ createContext(id, pkg, contextCtor, loadingGroupId) {
457
469
  assert(loadingGroupId !== "", 0x974 /* loadingGroupId should not be the empty string */);
458
470
  const context = new contextCtor({
459
471
  id,
@@ -466,7 +478,6 @@ export class ChannelCollection {
466
478
  }),
467
479
  makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(id),
468
480
  snapshotTree: undefined,
469
- createProps,
470
481
  loadingGroupId,
471
482
  channelToDataStoreFn: (channel) => channelToDataStore(channel, id, this, createChildLogger({ logger: this.parentContext.baseLogger })),
472
483
  });
@@ -479,13 +490,16 @@ export class ChannelCollection {
479
490
  reSubmit(type, content, localOpMetadata) {
480
491
  switch (type) {
481
492
  case ContainerMessageType.Attach:
482
- case ContainerMessageType.Alias:
493
+ case ContainerMessageType.Alias: {
483
494
  this.parentContext.submitMessage(type, content, localOpMetadata);
484
495
  return;
485
- case ContainerMessageType.FluidDataStoreOp:
496
+ }
497
+ case ContainerMessageType.FluidDataStoreOp: {
486
498
  return this.reSubmitChannelOp(type, content, localOpMetadata);
487
- default:
499
+ }
500
+ default: {
488
501
  assert(false, 0x907 /* unknown op type */);
502
+ }
489
503
  }
490
504
  }
491
505
  reSubmitChannelOp(type, content, localOpMetadata) {
@@ -522,14 +536,18 @@ export class ChannelCollection {
522
536
  async applyStashedOp(content) {
523
537
  const opContents = content;
524
538
  switch (opContents.type) {
525
- case ContainerMessageType.Attach:
539
+ case ContainerMessageType.Attach: {
526
540
  return this.applyStashedAttachOp(opContents.contents);
527
- case ContainerMessageType.Alias:
541
+ }
542
+ case ContainerMessageType.Alias: {
528
543
  return;
529
- case ContainerMessageType.FluidDataStoreOp:
544
+ }
545
+ case ContainerMessageType.FluidDataStoreOp: {
530
546
  return this.applyStashedChannelChannelOp(opContents.contents);
531
- default:
547
+ }
548
+ default: {
532
549
  assert(false, 0x908 /* unknon type of op */);
550
+ }
533
551
  }
534
552
  }
535
553
  async applyStashedChannelChannelOp(envelope) {
@@ -577,7 +595,7 @@ export class ChannelCollection {
577
595
  // if the client is not detached put in the pending attach list
578
596
  // so that on ack of the stashed op, the context is found.
579
597
  // detached client don't send ops, so should not expect and ack.
580
- this.pendingAttach.set(message.id, message);
598
+ this.pendingAttach.set(id, message);
581
599
  }
582
600
  }
583
601
  /**
@@ -586,17 +604,21 @@ export class ChannelCollection {
586
604
  */
587
605
  processMessages(messageCollection) {
588
606
  switch (messageCollection.envelope.type) {
589
- case ContainerMessageType.FluidDataStoreOp:
607
+ case ContainerMessageType.FluidDataStoreOp: {
590
608
  this.processChannelMessages(messageCollection);
591
609
  break;
592
- case ContainerMessageType.Attach:
610
+ }
611
+ case ContainerMessageType.Attach: {
593
612
  this.processAttachMessages(messageCollection);
594
613
  break;
595
- case ContainerMessageType.Alias:
614
+ }
615
+ case ContainerMessageType.Alias: {
596
616
  this.processAliasMessages(messageCollection);
597
617
  break;
598
- default:
618
+ }
619
+ default: {
599
620
  assert(false, 0x8e9 /* unreached */);
621
+ }
600
622
  }
601
623
  }
602
624
  /**
@@ -623,7 +645,7 @@ export class ChannelCollection {
623
645
  * @param messageCollection - The collection of messages to process.
624
646
  */
625
647
  processChannelMessages(messageCollection) {
626
- const { messagesContent, local } = messageCollection;
648
+ const { envelope, messagesContent, local } = messageCollection;
627
649
  let currentMessageState;
628
650
  let currentMessagesContent = [];
629
651
  // Helper that sends the current bunch of messages to the data store. It validates that the data stores exists.
@@ -635,7 +657,7 @@ export class ChannelCollection {
635
657
  const currentContext = this.contexts.get(currentMessageState.address);
636
658
  assert(!!currentContext, 0xa66 /* Context not found */);
637
659
  currentContext.processMessages({
638
- envelope: { ...messageCollection.envelope, type: currentMessageState.type },
660
+ envelope: { ...envelope, type: currentMessageState.type },
639
661
  messagesContent: currentMessagesContent,
640
662
  local,
641
663
  });
@@ -657,10 +679,10 @@ export class ChannelCollection {
657
679
  }
658
680
  if (context === undefined) {
659
681
  // Former assert 0x162
660
- throw DataProcessingError.create("No context for op", "processFluidDataStoreOp", messageCollection.envelope, {
682
+ throw DataProcessingError.create("No context for op", "processFluidDataStoreOp", envelope, {
661
683
  local,
662
684
  messageDetails: JSON.stringify({
663
- type: messageCollection.envelope.type,
685
+ type: envelope.type,
664
686
  contentType: typeof contents,
665
687
  }),
666
688
  ...tagCodeArtifacts({ address }),
@@ -682,10 +704,10 @@ export class ChannelCollection {
682
704
  this.gcNodeUpdated({
683
705
  node: { type: "DataStore", path: `/${address}` },
684
706
  reason: "Changed",
685
- timestampMs: messageCollection.envelope.timestamp,
707
+ timestampMs: envelope.timestamp,
686
708
  packagePath: context.isLoaded ? context.packagePath : undefined,
687
709
  });
688
- detectOutboundReferences(address, contextContents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath, messageCollection.envelope.timestamp));
710
+ detectOutboundReferences(address, contextContents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath, envelope.timestamp));
689
711
  }
690
712
  // Process the last bunch of messages, if any. Note that there may not be any messages in case all of them are
691
713
  // ignored because the data store is deleted.
@@ -696,6 +718,7 @@ export class ChannelCollection {
696
718
  if (this.checkAndLogIfDeleted(id, this.contexts.get(id), "Requested", "getDataStore", requestHeaderData, originalRequest)) {
697
719
  // The requested data store has been deleted by gc. Create a 404 response exception.
698
720
  throw responseToException(createResponseError(404, "DataStore was deleted", originalRequest, {
721
+ // eslint-disable-next-line import/no-deprecated
699
722
  [DeletedResponseHeaderKey]: true,
700
723
  }), originalRequest);
701
724
  }
@@ -737,7 +760,7 @@ export class ChannelCollection {
737
760
  if (!this.isDataStoreDeleted(dataStoreNodePath)) {
738
761
  return false;
739
762
  }
740
- const idToLog = originalRequest !== undefined ? urlToGCNodePath(originalRequest.url) : dataStoreNodePath;
763
+ const idToLog = originalRequest === undefined ? dataStoreNodePath : urlToGCNodePath(originalRequest.url);
741
764
  // Log the package details asynchronously since getInitialSnapshotDetails is async
742
765
  const recentlyDeletedContext = this.contexts.getRecentlyDeletedContext(id);
743
766
  if (recentlyDeletedContext !== undefined) {
@@ -776,6 +799,7 @@ export class ChannelCollection {
776
799
  processSignal(messageArg, local) {
777
800
  const envelope = messageArg.content;
778
801
  const fluidDataStoreId = envelope.address;
802
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
779
803
  const message = { ...messageArg, content: envelope.contents };
780
804
  const context = this.contexts.get(fluidDataStoreId);
781
805
  // If the data store has been deleted, log an error and ignore this message. This helps prevent document
@@ -859,7 +883,7 @@ export class ChannelCollection {
859
883
  builder.prefixAndAddNodes(contextId, contextGCData.gcNodes);
860
884
  });
861
885
  // Get the outbound routes (aliased data stores) and add a GC node for this channel.
862
- builder.addNode("/", Array.from(this.aliasedDataStores));
886
+ builder.addNode("/", [...this.aliasedDataStores]);
863
887
  return builder.getGCData();
864
888
  }
865
889
  /**
@@ -1024,7 +1048,7 @@ export class ChannelCollection {
1024
1048
  }
1025
1049
  this.deleteChild(dataStoreId);
1026
1050
  }
1027
- return Array.from(sweepReadyDataStoreRoutes);
1051
+ return [...sweepReadyDataStoreRoutes];
1028
1052
  }
1029
1053
  /**
1030
1054
  * This is called to update objects whose routes are tombstones.
@@ -1073,12 +1097,14 @@ export class ChannelCollection {
1073
1097
  // If the node belongs to a data store, return its package path. For DDSes, we return the package path of the
1074
1098
  // data store that contains it.
1075
1099
  const context = this.contexts.get(nodePath.split("/")[1]);
1076
- return (await context?.getInitialSnapshotDetails())?.pkg;
1100
+ const initialSnapshotDetails = await context?.getInitialSnapshotDetails();
1101
+ return initialSnapshotDetails?.pkg;
1077
1102
  }
1078
1103
  /**
1079
1104
  * Called by GC to determine if a node is for a data store or for an object within a data store (for e.g. DDS).
1080
1105
  * @returns the GC node type if the node belongs to a data store or object within data store, undefined otherwise.
1081
1106
  */
1107
+ // eslint-disable-next-line import/no-deprecated
1082
1108
  getGCNodeType(nodePath) {
1083
1109
  const pathParts = nodePath.split("/");
1084
1110
  if (!this.contexts.has(pathParts[1])) {
@@ -1087,8 +1113,10 @@ export class ChannelCollection {
1087
1113
  // Data stores paths are of the format "/dataStoreId".
1088
1114
  // Sub data store paths are of the format "/dataStoreId/subPath/...".
1089
1115
  if (pathParts.length === 2) {
1116
+ // eslint-disable-next-line import/no-deprecated
1090
1117
  return GCNodeType.DataStore;
1091
1118
  }
1119
+ // eslint-disable-next-line import/no-deprecated
1092
1120
  return GCNodeType.SubDataStore;
1093
1121
  }
1094
1122
  internalId(maybeAlias) {
@@ -1136,7 +1164,9 @@ export class ChannelCollection {
1136
1164
  return dataStore.request(subRequest);
1137
1165
  }
1138
1166
  }
1139
- export function getSummaryForDatastores(snapshot, metadata) {
1167
+ export function getSummaryForDatastores(snapshot,
1168
+ // eslint-disable-next-line import/no-deprecated
1169
+ metadata) {
1140
1170
  if (!snapshot) {
1141
1171
  return undefined;
1142
1172
  }
@@ -1189,9 +1219,13 @@ export function detectOutboundReferences(address, contents, addedOutboundReferen
1189
1219
  // GC node paths are all absolute paths, hence the "" prefix.
1190
1220
  // e.g. this will yield "/dataStoreId/ddsId"
1191
1221
  const fromPath = ["", address, ddsAddress].join("/");
1192
- outboundPaths.forEach((toPath) => addedOutboundReference(fromPath, toPath));
1222
+ for (const toPath of outboundPaths) {
1223
+ addedOutboundReference(fromPath, toPath);
1224
+ }
1193
1225
  }
1194
- /** @internal */
1226
+ /**
1227
+ * @internal
1228
+ */
1195
1229
  export class ChannelCollectionFactory {
1196
1230
  constructor(registryEntries,
1197
1231
  // ADO:7302 We need a better type here