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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (700) hide show
  1. package/.eslintrc.cjs +5 -5
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +54 -0
  4. package/README.md +45 -0
  5. package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
  6. package/api-extractor-lint.json +1 -1
  7. package/api-extractor.json +1 -1
  8. package/api-report/container-runtime.api.md +426 -33
  9. package/dist/batchTracker.d.ts +1 -2
  10. package/dist/batchTracker.d.ts.map +1 -1
  11. package/dist/batchTracker.js.map +1 -1
  12. package/dist/blobManager.d.ts +0 -5
  13. package/dist/blobManager.d.ts.map +1 -1
  14. package/dist/blobManager.js +0 -12
  15. package/dist/blobManager.js.map +1 -1
  16. package/dist/channelCollection.d.ts +226 -0
  17. package/dist/channelCollection.d.ts.map +1 -0
  18. package/dist/{dataStores.js → channelCollection.js} +455 -150
  19. package/dist/channelCollection.js.map +1 -0
  20. package/dist/connectionTelemetry.d.ts +11 -1
  21. package/dist/connectionTelemetry.d.ts.map +1 -1
  22. package/dist/connectionTelemetry.js +42 -4
  23. package/dist/connectionTelemetry.js.map +1 -1
  24. package/dist/container-runtime-alpha.d.ts +128 -48
  25. package/dist/container-runtime-beta.d.ts +67 -9
  26. package/dist/container-runtime-public.d.ts +67 -9
  27. package/dist/container-runtime-untrimmed.d.ts +692 -49
  28. package/dist/containerHandleContext.d.ts +1 -1
  29. package/dist/containerHandleContext.d.ts.map +1 -1
  30. package/dist/containerHandleContext.js.map +1 -1
  31. package/dist/containerRuntime.d.ts +81 -64
  32. package/dist/containerRuntime.d.ts.map +1 -1
  33. package/dist/containerRuntime.js +522 -379
  34. package/dist/containerRuntime.js.map +1 -1
  35. package/dist/dataStore.d.ts +2 -3
  36. package/dist/dataStore.d.ts.map +1 -1
  37. package/dist/dataStore.js +12 -11
  38. package/dist/dataStore.js.map +1 -1
  39. package/dist/dataStoreContext.d.ts +118 -41
  40. package/dist/dataStoreContext.d.ts.map +1 -1
  41. package/dist/dataStoreContext.js +248 -159
  42. package/dist/dataStoreContext.js.map +1 -1
  43. package/dist/dataStoreContexts.d.ts +2 -1
  44. package/dist/dataStoreContexts.d.ts.map +1 -1
  45. package/dist/dataStoreContexts.js +1 -0
  46. package/dist/dataStoreContexts.js.map +1 -1
  47. package/dist/dataStoreRegistry.d.ts +4 -0
  48. package/dist/dataStoreRegistry.d.ts.map +1 -1
  49. package/dist/dataStoreRegistry.js +2 -2
  50. package/dist/dataStoreRegistry.js.map +1 -1
  51. package/dist/deltaManagerSummarizerProxy.d.ts +29 -4
  52. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  53. package/dist/deltaManagerSummarizerProxy.js +91 -5
  54. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  55. package/dist/gc/garbageCollection.d.ts +12 -6
  56. package/dist/gc/garbageCollection.d.ts.map +1 -1
  57. package/dist/gc/garbageCollection.js +116 -78
  58. package/dist/gc/garbageCollection.js.map +1 -1
  59. package/dist/gc/gcConfigs.d.ts +2 -2
  60. package/dist/gc/gcConfigs.d.ts.map +1 -1
  61. package/dist/gc/gcConfigs.js +30 -23
  62. package/dist/gc/gcConfigs.js.map +1 -1
  63. package/dist/gc/gcDefinitions.d.ts +22 -13
  64. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  65. package/dist/gc/gcDefinitions.js +7 -4
  66. package/dist/gc/gcDefinitions.js.map +1 -1
  67. package/dist/gc/gcHelpers.d.ts +2 -2
  68. package/dist/gc/gcHelpers.d.ts.map +1 -1
  69. package/dist/gc/gcHelpers.js.map +1 -1
  70. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +1 -1
  71. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -1
  72. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  73. package/dist/gc/gcSummaryStateTracker.d.ts +12 -5
  74. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  75. package/dist/gc/gcSummaryStateTracker.js +18 -6
  76. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  77. package/dist/gc/gcTelemetry.d.ts +6 -7
  78. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  79. package/dist/gc/gcTelemetry.js +20 -18
  80. package/dist/gc/gcTelemetry.js.map +1 -1
  81. package/dist/gc/gcUnreferencedStateTracker.d.ts +1 -1
  82. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  83. package/dist/gc/gcUnreferencedStateTracker.js +10 -10
  84. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  85. package/dist/gc/index.d.ts +8 -8
  86. package/dist/gc/index.d.ts.map +1 -1
  87. package/dist/gc/index.js +40 -39
  88. package/dist/gc/index.js.map +1 -1
  89. package/dist/index.d.ts +11 -21
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +36 -42
  92. package/dist/index.js.map +1 -1
  93. package/dist/messageTypes.d.ts +3 -3
  94. package/dist/messageTypes.d.ts.map +1 -1
  95. package/dist/messageTypes.js.map +1 -1
  96. package/dist/opLifecycle/batchManager.d.ts +2 -2
  97. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  98. package/dist/opLifecycle/batchManager.js.map +1 -1
  99. package/dist/opLifecycle/definitions.d.ts +2 -2
  100. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  101. package/dist/opLifecycle/definitions.js.map +1 -1
  102. package/dist/opLifecycle/index.d.ts +8 -8
  103. package/dist/opLifecycle/index.d.ts.map +1 -1
  104. package/dist/opLifecycle/index.js +18 -18
  105. package/dist/opLifecycle/index.js.map +1 -1
  106. package/dist/opLifecycle/opCompressor.d.ts +1 -1
  107. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  108. package/dist/opLifecycle/opCompressor.js +4 -4
  109. package/dist/opLifecycle/opCompressor.js.map +1 -1
  110. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  111. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  112. package/dist/opLifecycle/opDecompressor.js +3 -3
  113. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  114. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  115. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  116. package/dist/opLifecycle/opGroupingManager.js +1 -10
  117. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  118. package/dist/opLifecycle/opSplitter.d.ts +1 -1
  119. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  120. package/dist/opLifecycle/opSplitter.js +5 -5
  121. package/dist/opLifecycle/opSplitter.js.map +1 -1
  122. package/dist/opLifecycle/outbox.d.ts +7 -7
  123. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  124. package/dist/opLifecycle/outbox.js +32 -18
  125. package/dist/opLifecycle/outbox.js.map +1 -1
  126. package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -4
  127. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  128. package/dist/opLifecycle/remoteMessageProcessor.js +7 -4
  129. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  130. package/dist/package.json +3 -0
  131. package/dist/packageVersion.d.ts +1 -1
  132. package/dist/packageVersion.js +1 -1
  133. package/dist/packageVersion.js.map +1 -1
  134. package/dist/pendingStateManager.d.ts +2 -1
  135. package/dist/pendingStateManager.d.ts.map +1 -1
  136. package/dist/pendingStateManager.js +18 -10
  137. package/dist/pendingStateManager.js.map +1 -1
  138. package/dist/scheduleManager.d.ts +1 -2
  139. package/dist/scheduleManager.d.ts.map +1 -1
  140. package/dist/scheduleManager.js +9 -5
  141. package/dist/scheduleManager.js.map +1 -1
  142. package/dist/summary/index.d.ts +12 -12
  143. package/dist/summary/index.d.ts.map +1 -1
  144. package/dist/summary/index.js +43 -43
  145. package/dist/summary/index.js.map +1 -1
  146. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  147. package/dist/summary/orderedClientElection.js +12 -8
  148. package/dist/summary/orderedClientElection.js.map +1 -1
  149. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  150. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  151. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  152. package/dist/summary/runningSummarizer.d.ts +5 -4
  153. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  154. package/dist/summary/runningSummarizer.js +47 -32
  155. package/dist/summary/runningSummarizer.js.map +1 -1
  156. package/dist/summary/summarizer.d.ts +4 -4
  157. package/dist/summary/summarizer.d.ts.map +1 -1
  158. package/dist/summary/summarizer.js +6 -6
  159. package/dist/summary/summarizer.js.map +1 -1
  160. package/dist/summary/summarizerClientElection.d.ts +2 -2
  161. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  162. package/dist/summary/summarizerClientElection.js.map +1 -1
  163. package/dist/summary/summarizerHeuristics.d.ts +3 -3
  164. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  165. package/dist/summary/summarizerHeuristics.js.map +1 -1
  166. package/dist/summary/summarizerNode/index.d.ts +3 -3
  167. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  168. package/dist/summary/summarizerNode/index.js +4 -4
  169. package/dist/summary/summarizerNode/index.js.map +1 -1
  170. package/dist/summary/summarizerNode/summarizerNode.d.ts +16 -5
  171. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  172. package/dist/summary/summarizerNode/summarizerNode.js +40 -10
  173. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  174. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +9 -1
  175. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  176. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  177. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +3 -4
  178. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  179. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +12 -12
  180. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  181. package/dist/summary/summarizerTypes.d.ts +9 -20
  182. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  183. package/dist/summary/summarizerTypes.js.map +1 -1
  184. package/dist/summary/summaryFormat.d.ts +15 -2
  185. package/dist/summary/summaryFormat.d.ts.map +1 -1
  186. package/dist/summary/summaryFormat.js.map +1 -1
  187. package/dist/summary/summaryGenerator.d.ts +6 -5
  188. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  189. package/dist/summary/summaryGenerator.js +10 -1
  190. package/dist/summary/summaryGenerator.js.map +1 -1
  191. package/dist/summary/summaryManager.d.ts +5 -6
  192. package/dist/summary/summaryManager.d.ts.map +1 -1
  193. package/dist/summary/summaryManager.js +4 -5
  194. package/dist/summary/summaryManager.js.map +1 -1
  195. package/dist/tsdoc-metadata.json +1 -1
  196. package/lib/{batchTracker.d.mts → batchTracker.d.ts} +2 -3
  197. package/lib/batchTracker.d.ts.map +1 -0
  198. package/lib/{batchTracker.mjs → batchTracker.js} +1 -1
  199. package/lib/batchTracker.js.map +1 -0
  200. package/lib/{blobManager.d.mts → blobManager.d.ts} +1 -6
  201. package/lib/blobManager.d.ts.map +1 -0
  202. package/lib/{blobManager.mjs → blobManager.js} +1 -13
  203. package/lib/blobManager.js.map +1 -0
  204. package/lib/channelCollection.d.ts +226 -0
  205. package/lib/channelCollection.d.ts.map +1 -0
  206. package/lib/{dataStores.mjs → channelCollection.js} +442 -140
  207. package/lib/channelCollection.js.map +1 -0
  208. package/lib/{connectionTelemetry.d.mts → connectionTelemetry.d.ts} +12 -2
  209. package/lib/connectionTelemetry.d.ts.map +1 -0
  210. package/lib/{connectionTelemetry.mjs → connectionTelemetry.js} +43 -5
  211. package/lib/connectionTelemetry.js.map +1 -0
  212. package/lib/{container-runtime-alpha.d.mts → container-runtime-alpha.d.ts} +128 -48
  213. package/lib/{container-runtime-beta.d.mts → container-runtime-beta.d.ts} +67 -9
  214. package/lib/{container-runtime-public.d.mts → container-runtime-public.d.ts} +67 -9
  215. package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +692 -49
  216. package/lib/{containerHandleContext.d.mts → containerHandleContext.d.ts} +2 -2
  217. package/lib/containerHandleContext.d.ts.map +1 -0
  218. package/lib/{containerHandleContext.mjs → containerHandleContext.js} +1 -1
  219. package/lib/containerHandleContext.js.map +1 -0
  220. package/lib/{containerRuntime.d.mts → containerRuntime.d.ts} +86 -65
  221. package/lib/containerRuntime.d.ts.map +1 -0
  222. package/lib/{containerRuntime.mjs → containerRuntime.js} +444 -303
  223. package/lib/containerRuntime.js.map +1 -0
  224. package/lib/{dataStore.d.mts → dataStore.d.ts} +3 -4
  225. package/lib/dataStore.d.ts.map +1 -0
  226. package/lib/{dataStore.mjs → dataStore.js} +13 -12
  227. package/lib/dataStore.js.map +1 -0
  228. package/lib/{dataStoreContext.d.mts → dataStoreContext.d.ts} +119 -42
  229. package/lib/dataStoreContext.d.ts.map +1 -0
  230. package/lib/{dataStoreContext.mjs → dataStoreContext.js} +240 -151
  231. package/lib/dataStoreContext.js.map +1 -0
  232. package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +3 -2
  233. package/lib/dataStoreContexts.d.ts.map +1 -0
  234. package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +2 -1
  235. package/lib/dataStoreContexts.js.map +1 -0
  236. package/lib/{dataStoreRegistry.d.mts → dataStoreRegistry.d.ts} +5 -1
  237. package/lib/dataStoreRegistry.d.ts.map +1 -0
  238. package/lib/{dataStoreRegistry.mjs → dataStoreRegistry.js} +5 -1
  239. package/lib/dataStoreRegistry.js.map +1 -0
  240. package/{dist/deltaManagerProxyBase.d.ts → lib/deltaManagerSummarizerProxy.d.ts} +16 -7
  241. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
  242. package/lib/deltaManagerSummarizerProxy.js +124 -0
  243. package/lib/deltaManagerSummarizerProxy.js.map +1 -0
  244. package/lib/{deltaScheduler.d.mts → deltaScheduler.d.ts} +1 -1
  245. package/lib/deltaScheduler.d.ts.map +1 -0
  246. package/lib/{deltaScheduler.mjs → deltaScheduler.js} +1 -1
  247. package/lib/deltaScheduler.js.map +1 -0
  248. package/lib/{error.d.mts → error.d.ts} +1 -1
  249. package/lib/error.d.ts.map +1 -0
  250. package/lib/{error.mjs → error.js} +1 -1
  251. package/lib/error.js.map +1 -0
  252. package/lib/gc/{garbageCollection.d.mts → garbageCollection.d.ts} +13 -7
  253. package/lib/gc/garbageCollection.d.ts.map +1 -0
  254. package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +79 -41
  255. package/lib/gc/garbageCollection.js.map +1 -0
  256. package/lib/gc/{gcConfigs.d.mts → gcConfigs.d.ts} +3 -3
  257. package/lib/gc/gcConfigs.d.ts.map +1 -0
  258. package/lib/gc/{gcConfigs.mjs → gcConfigs.js} +14 -7
  259. package/lib/gc/gcConfigs.js.map +1 -0
  260. package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +23 -14
  261. package/lib/gc/gcDefinitions.d.ts.map +1 -0
  262. package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +7 -4
  263. package/lib/gc/gcDefinitions.js.map +1 -0
  264. package/lib/gc/{gcHelpers.d.mts → gcHelpers.d.ts} +3 -3
  265. package/lib/gc/{gcHelpers.d.mts.map → gcHelpers.d.ts.map} +1 -1
  266. package/lib/gc/{gcHelpers.mjs → gcHelpers.js} +1 -1
  267. package/lib/gc/gcHelpers.js.map +1 -0
  268. package/lib/gc/{gcReferenceGraphAlgorithm.d.mts → gcReferenceGraphAlgorithm.d.ts} +2 -2
  269. package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  270. package/lib/gc/{gcReferenceGraphAlgorithm.mjs → gcReferenceGraphAlgorithm.js} +1 -1
  271. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
  272. package/lib/gc/{gcSummaryDefinitions.d.mts → gcSummaryDefinitions.d.ts} +1 -1
  273. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
  274. package/lib/gc/{gcSummaryDefinitions.mjs → gcSummaryDefinitions.js} +1 -1
  275. package/lib/gc/gcSummaryDefinitions.js.map +1 -0
  276. package/lib/gc/{gcSummaryStateTracker.d.mts → gcSummaryStateTracker.d.ts} +13 -6
  277. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
  278. package/lib/gc/{gcSummaryStateTracker.mjs → gcSummaryStateTracker.js} +17 -5
  279. package/lib/gc/gcSummaryStateTracker.js.map +1 -0
  280. package/lib/gc/{gcTelemetry.d.mts → gcTelemetry.d.ts} +7 -8
  281. package/lib/gc/gcTelemetry.d.ts.map +1 -0
  282. package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +5 -3
  283. package/lib/gc/gcTelemetry.js.map +1 -0
  284. package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +2 -2
  285. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  286. package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +2 -2
  287. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
  288. package/lib/gc/index.d.ts +13 -0
  289. package/lib/gc/index.d.ts.map +1 -0
  290. package/lib/gc/{index.mjs → index.js} +8 -8
  291. package/lib/gc/index.js.map +1 -0
  292. package/lib/{index.d.mts → index.d.ts} +12 -22
  293. package/lib/index.d.ts.map +1 -0
  294. package/lib/index.js +15 -0
  295. package/lib/index.js.map +1 -0
  296. package/lib/{messageTypes.d.mts → messageTypes.d.ts} +4 -4
  297. package/lib/messageTypes.d.ts.map +1 -0
  298. package/lib/{messageTypes.mjs → messageTypes.js} +1 -1
  299. package/lib/messageTypes.js.map +1 -0
  300. package/lib/{metadata.d.mts → metadata.d.ts} +1 -1
  301. package/lib/metadata.d.ts.map +1 -0
  302. package/lib/{metadata.mjs → metadata.js} +1 -1
  303. package/lib/metadata.js.map +1 -0
  304. package/lib/opLifecycle/{batchManager.d.mts → batchManager.d.ts} +3 -3
  305. package/lib/opLifecycle/batchManager.d.ts.map +1 -0
  306. package/lib/opLifecycle/{batchManager.mjs → batchManager.js} +1 -1
  307. package/lib/opLifecycle/batchManager.js.map +1 -0
  308. package/lib/opLifecycle/{definitions.d.mts → definitions.d.ts} +3 -3
  309. package/lib/opLifecycle/definitions.d.ts.map +1 -0
  310. package/lib/opLifecycle/{definitions.mjs → definitions.js} +1 -1
  311. package/lib/opLifecycle/definitions.js.map +1 -0
  312. package/lib/opLifecycle/index.d.ts +13 -0
  313. package/lib/opLifecycle/index.d.ts.map +1 -0
  314. package/lib/opLifecycle/index.js +12 -0
  315. package/lib/opLifecycle/index.js.map +1 -0
  316. package/lib/opLifecycle/{opCompressor.d.mts → opCompressor.d.ts} +2 -2
  317. package/lib/opLifecycle/opCompressor.d.ts.map +1 -0
  318. package/lib/opLifecycle/{opCompressor.mjs → opCompressor.js} +3 -3
  319. package/lib/opLifecycle/opCompressor.js.map +1 -0
  320. package/lib/opLifecycle/{opDecompressor.d.mts → opDecompressor.d.ts} +2 -2
  321. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -0
  322. package/lib/opLifecycle/{opDecompressor.mjs → opDecompressor.js} +2 -2
  323. package/lib/opLifecycle/opDecompressor.js.map +1 -0
  324. package/lib/opLifecycle/{opGroupingManager.d.mts → opGroupingManager.d.ts} +2 -2
  325. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
  326. package/lib/opLifecycle/{opGroupingManager.mjs → opGroupingManager.js} +2 -11
  327. package/lib/opLifecycle/opGroupingManager.js.map +1 -0
  328. package/lib/opLifecycle/{opSplitter.d.mts → opSplitter.d.ts} +2 -2
  329. package/lib/opLifecycle/opSplitter.d.ts.map +1 -0
  330. package/lib/opLifecycle/{opSplitter.mjs → opSplitter.js} +3 -3
  331. package/lib/opLifecycle/opSplitter.js.map +1 -0
  332. package/lib/opLifecycle/{outbox.d.mts → outbox.d.ts} +8 -8
  333. package/lib/opLifecycle/outbox.d.ts.map +1 -0
  334. package/lib/opLifecycle/{outbox.mjs → outbox.js} +24 -10
  335. package/lib/opLifecycle/outbox.js.map +1 -0
  336. package/lib/opLifecycle/{remoteMessageProcessor.d.mts → remoteMessageProcessor.d.ts} +5 -5
  337. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  338. package/lib/opLifecycle/{remoteMessageProcessor.mjs → remoteMessageProcessor.js} +7 -4
  339. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -0
  340. package/lib/{opProperties.d.mts → opProperties.d.ts} +1 -1
  341. package/lib/opProperties.d.ts.map +1 -0
  342. package/lib/{opProperties.mjs → opProperties.js} +1 -1
  343. package/lib/opProperties.js.map +1 -0
  344. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  345. package/lib/packageVersion.d.ts.map +1 -0
  346. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  347. package/lib/packageVersion.js.map +1 -0
  348. package/lib/{pendingStateManager.d.mts → pendingStateManager.d.ts} +3 -2
  349. package/lib/pendingStateManager.d.ts.map +1 -0
  350. package/lib/{pendingStateManager.mjs → pendingStateManager.js} +18 -10
  351. package/lib/pendingStateManager.js.map +1 -0
  352. package/lib/{scheduleManager.d.mts → scheduleManager.d.ts} +6 -3
  353. package/lib/scheduleManager.d.ts.map +1 -0
  354. package/lib/{scheduleManager.mjs → scheduleManager.js} +7 -3
  355. package/lib/scheduleManager.js.map +1 -0
  356. package/lib/{storageServiceWithAttachBlobs.d.mts → storageServiceWithAttachBlobs.d.ts} +1 -1
  357. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
  358. package/lib/{storageServiceWithAttachBlobs.mjs → storageServiceWithAttachBlobs.js} +1 -1
  359. package/lib/storageServiceWithAttachBlobs.js.map +1 -0
  360. package/lib/summary/{index.d.mts → index.d.ts} +13 -13
  361. package/lib/summary/index.d.ts.map +1 -0
  362. package/lib/summary/{index.mjs → index.js} +12 -12
  363. package/lib/summary/index.js.map +1 -0
  364. package/lib/summary/{orderedClientElection.d.mts → orderedClientElection.d.ts} +5 -1
  365. package/lib/summary/orderedClientElection.d.ts.map +1 -0
  366. package/lib/summary/{orderedClientElection.mjs → orderedClientElection.js} +6 -2
  367. package/lib/summary/orderedClientElection.js.map +1 -0
  368. package/lib/summary/{runWhileConnectedCoordinator.d.mts → runWhileConnectedCoordinator.d.ts} +2 -2
  369. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  370. package/lib/summary/{runWhileConnectedCoordinator.mjs → runWhileConnectedCoordinator.js} +1 -1
  371. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
  372. package/lib/summary/{runningSummarizer.d.mts → runningSummarizer.d.ts} +6 -5
  373. package/lib/summary/runningSummarizer.d.ts.map +1 -0
  374. package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +41 -26
  375. package/lib/summary/runningSummarizer.js.map +1 -0
  376. package/lib/summary/{summarizer.d.mts → summarizer.d.ts} +5 -5
  377. package/lib/summary/summarizer.d.ts.map +1 -0
  378. package/lib/summary/{summarizer.mjs → summarizer.js} +4 -4
  379. package/lib/summary/summarizer.js.map +1 -0
  380. package/lib/summary/{summarizerClientElection.d.mts → summarizerClientElection.d.ts} +3 -3
  381. package/lib/summary/summarizerClientElection.d.ts.map +1 -0
  382. package/lib/summary/{summarizerClientElection.mjs → summarizerClientElection.js} +1 -1
  383. package/lib/summary/summarizerClientElection.js.map +1 -0
  384. package/lib/summary/{summarizerHeuristics.d.mts → summarizerHeuristics.d.ts} +4 -4
  385. package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
  386. package/lib/summary/{summarizerHeuristics.mjs → summarizerHeuristics.js} +1 -1
  387. package/lib/summary/summarizerHeuristics.js.map +1 -0
  388. package/lib/summary/summarizerNode/{index.d.mts → index.d.ts} +4 -4
  389. package/lib/summary/summarizerNode/index.d.ts.map +1 -0
  390. package/lib/summary/summarizerNode/index.js +7 -0
  391. package/lib/summary/summarizerNode/index.js.map +1 -0
  392. package/lib/summary/summarizerNode/{summarizerNode.d.mts → summarizerNode.d.ts} +17 -6
  393. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  394. package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +34 -4
  395. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
  396. package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +10 -2
  397. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  398. package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -1
  399. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
  400. package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +4 -5
  401. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  402. package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +7 -7
  403. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
  404. package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +10 -21
  405. package/lib/summary/summarizerTypes.d.ts.map +1 -0
  406. package/lib/summary/{summarizerTypes.mjs → summarizerTypes.js} +1 -1
  407. package/lib/summary/summarizerTypes.js.map +1 -0
  408. package/lib/summary/{summaryCollection.d.mts → summaryCollection.d.ts} +1 -1
  409. package/lib/summary/summaryCollection.d.ts.map +1 -0
  410. package/lib/summary/{summaryCollection.mjs → summaryCollection.js} +1 -1
  411. package/lib/summary/summaryCollection.js.map +1 -0
  412. package/lib/summary/{summaryFormat.d.mts → summaryFormat.d.ts} +16 -3
  413. package/lib/summary/summaryFormat.d.ts.map +1 -0
  414. package/lib/summary/{summaryFormat.mjs → summaryFormat.js} +1 -1
  415. package/lib/summary/summaryFormat.js.map +1 -0
  416. package/lib/summary/{summaryGenerator.d.mts → summaryGenerator.d.ts} +7 -6
  417. package/lib/summary/summaryGenerator.d.ts.map +1 -0
  418. package/lib/summary/{summaryGenerator.mjs → summaryGenerator.js} +11 -2
  419. package/lib/summary/summaryGenerator.js.map +1 -0
  420. package/lib/summary/{summaryManager.d.mts → summaryManager.d.ts} +6 -7
  421. package/lib/summary/summaryManager.d.ts.map +1 -0
  422. package/lib/summary/{summaryManager.mjs → summaryManager.js} +4 -5
  423. package/lib/summary/summaryManager.js.map +1 -0
  424. package/lib/test/batchTracker.spec.js +88 -0
  425. package/lib/test/batchTracker.spec.js.map +1 -0
  426. package/lib/test/blobManager.spec.js +835 -0
  427. package/lib/test/blobManager.spec.js.map +1 -0
  428. package/lib/test/channelCollection.spec.js +138 -0
  429. package/lib/test/channelCollection.spec.js.map +1 -0
  430. package/lib/test/containerRuntime.spec.js +1748 -0
  431. package/lib/test/containerRuntime.spec.js.map +1 -0
  432. package/lib/test/dataStoreContext.spec.js +771 -0
  433. package/lib/test/dataStoreContext.spec.js.map +1 -0
  434. package/lib/test/dataStoreCreation.spec.js +303 -0
  435. package/lib/test/dataStoreCreation.spec.js.map +1 -0
  436. package/lib/test/dataStoreRegistry.spec.js +26 -0
  437. package/lib/test/dataStoreRegistry.spec.js.map +1 -0
  438. package/lib/test/fuzz/fuzzUtils.js +66 -0
  439. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  440. package/lib/test/fuzz/summarizer.fuzz.spec.js +31 -0
  441. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +1 -0
  442. package/lib/test/fuzz/summarizerFuzzMocks.js +162 -0
  443. package/lib/test/fuzz/summarizerFuzzMocks.js.map +1 -0
  444. package/lib/test/fuzz/summarizerFuzzSuite.js +106 -0
  445. package/lib/test/fuzz/summarizerFuzzSuite.js.map +1 -0
  446. package/lib/test/gc/garbageCollection.spec.js +1464 -0
  447. package/lib/test/gc/garbageCollection.spec.js.map +1 -0
  448. package/lib/test/gc/gcConfigs.spec.js +689 -0
  449. package/lib/test/gc/gcConfigs.spec.js.map +1 -0
  450. package/lib/test/gc/gcHelpers.spec.js +110 -0
  451. package/lib/test/gc/gcHelpers.spec.js.map +1 -0
  452. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +68 -0
  453. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +1 -0
  454. package/lib/test/gc/gcStats.spec.js +390 -0
  455. package/lib/test/gc/gcStats.spec.js.map +1 -0
  456. package/lib/test/gc/gcSummaryStateTracker.spec.js +228 -0
  457. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +1 -0
  458. package/lib/test/gc/gcTelemetry.spec.js +530 -0
  459. package/lib/test/gc/gcTelemetry.spec.js.map +1 -0
  460. package/lib/test/gc/gcUnitTestHelpers.js +29 -0
  461. package/lib/test/gc/gcUnitTestHelpers.js.map +1 -0
  462. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +192 -0
  463. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +1 -0
  464. package/lib/test/getPendingBlobs.spec.js +193 -0
  465. package/lib/test/getPendingBlobs.spec.js.map +1 -0
  466. package/lib/test/hardwareStats.spec.js +93 -0
  467. package/lib/test/hardwareStats.spec.js.map +1 -0
  468. package/lib/test/index.js +6 -0
  469. package/lib/test/index.js.map +1 -0
  470. package/lib/test/opLifecycle/OpGroupingManager.spec.js +225 -0
  471. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +1 -0
  472. package/lib/test/opLifecycle/batchManager.spec.js +189 -0
  473. package/lib/test/opLifecycle/batchManager.spec.js.map +1 -0
  474. package/lib/test/opLifecycle/opCompressor.spec.js +74 -0
  475. package/lib/test/opLifecycle/opCompressor.spec.js.map +1 -0
  476. package/lib/test/opLifecycle/opDecompressor.spec.js +218 -0
  477. package/lib/test/opLifecycle/opDecompressor.spec.js.map +1 -0
  478. package/lib/test/opLifecycle/opSplitter.spec.js +272 -0
  479. package/lib/test/opLifecycle/opSplitter.spec.js.map +1 -0
  480. package/lib/test/opLifecycle/outbox.spec.js +675 -0
  481. package/lib/test/opLifecycle/outbox.spec.js.map +1 -0
  482. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +196 -0
  483. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +1 -0
  484. package/lib/test/pendingStateManager.spec.js +329 -0
  485. package/lib/test/pendingStateManager.spec.js.map +1 -0
  486. package/lib/test/scheduleManager.spec.js +270 -0
  487. package/lib/test/scheduleManager.spec.js.map +1 -0
  488. package/lib/test/summarizerNode.spec.js +326 -0
  489. package/lib/test/summarizerNode.spec.js.map +1 -0
  490. package/lib/test/summarizerNodeWithGc.spec.js +318 -0
  491. package/lib/test/summarizerNodeWithGc.spec.js.map +1 -0
  492. package/lib/test/summary/orderedClientElection.spec.js +535 -0
  493. package/lib/test/summary/orderedClientElection.spec.js.map +1 -0
  494. package/lib/test/summary/runningSummarizer.spec.js +1349 -0
  495. package/lib/test/summary/runningSummarizer.spec.js.map +1 -0
  496. package/lib/test/summary/summarizer.spec.js +29 -0
  497. package/lib/test/summary/summarizer.spec.js.map +1 -0
  498. package/lib/test/summary/summarizerClientElection.spec.js +436 -0
  499. package/lib/test/summary/summarizerClientElection.spec.js.map +1 -0
  500. package/lib/test/summary/summarizerHeuristics.spec.js +289 -0
  501. package/lib/test/summary/summarizerHeuristics.spec.js.map +1 -0
  502. package/lib/test/summary/summaryCollection.spec.js +200 -0
  503. package/lib/test/summary/summaryCollection.spec.js.map +1 -0
  504. package/lib/test/summary/summaryManager.spec.js +430 -0
  505. package/lib/test/summary/summaryManager.spec.js.map +1 -0
  506. package/lib/test/summary/testQuorumClients.js +34 -0
  507. package/lib/test/summary/testQuorumClients.js.map +1 -0
  508. package/lib/test/throttler.spec.js +175 -0
  509. package/lib/test/throttler.spec.js.map +1 -0
  510. package/lib/test/types/validateContainerRuntimePrevious.generated.js +180 -0
  511. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +1 -0
  512. package/lib/{throttler.d.mts → throttler.d.ts} +1 -1
  513. package/lib/throttler.d.ts.map +1 -0
  514. package/lib/{throttler.mjs → throttler.js} +1 -1
  515. package/lib/throttler.js.map +1 -0
  516. package/package.json +101 -88
  517. package/src/batchTracker.ts +1 -1
  518. package/src/blobManager.ts +1 -15
  519. package/src/{dataStores.ts → channelCollection.ts} +629 -178
  520. package/src/connectionTelemetry.ts +42 -3
  521. package/src/containerHandleContext.ts +1 -1
  522. package/src/containerRuntime.ts +626 -430
  523. package/src/dataStore.ts +16 -15
  524. package/src/dataStoreContext.ts +376 -216
  525. package/src/dataStoreContexts.ts +2 -1
  526. package/src/dataStoreRegistry.ts +1 -0
  527. package/src/deltaManagerSummarizerProxy.ts +132 -7
  528. package/src/gc/garbageCollection.ts +84 -44
  529. package/src/gc/gcConfigs.ts +17 -7
  530. package/src/gc/gcDefinitions.ts +23 -13
  531. package/src/gc/gcHelpers.ts +2 -2
  532. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  533. package/src/gc/gcSummaryStateTracker.ts +19 -7
  534. package/src/gc/gcTelemetry.ts +9 -7
  535. package/src/gc/gcUnreferencedStateTracker.ts +1 -1
  536. package/src/gc/index.ts +10 -9
  537. package/src/index.ts +28 -27
  538. package/src/messageTypes.ts +3 -3
  539. package/src/opLifecycle/README.md +2 -4
  540. package/src/opLifecycle/batchManager.ts +2 -2
  541. package/src/opLifecycle/definitions.ts +2 -2
  542. package/src/opLifecycle/index.ts +8 -8
  543. package/src/opLifecycle/opCompressor.ts +3 -3
  544. package/src/opLifecycle/opDecompressor.ts +3 -3
  545. package/src/opLifecycle/opGroupingManager.ts +3 -12
  546. package/src/opLifecycle/opSplitter.ts +3 -3
  547. package/src/opLifecycle/outbox.ts +43 -16
  548. package/src/opLifecycle/remoteMessageProcessor.ts +10 -6
  549. package/src/packageVersion.ts +1 -1
  550. package/src/pendingStateManager.ts +19 -13
  551. package/src/scheduleManager.ts +5 -4
  552. package/src/summary/index.ts +13 -12
  553. package/src/summary/orderedClientElection.ts +2 -1
  554. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  555. package/src/summary/runningSummarizer.ts +52 -32
  556. package/src/summary/summarizer.ts +7 -7
  557. package/src/summary/summarizerClientElection.ts +2 -2
  558. package/src/summary/summarizerHeuristics.ts +3 -3
  559. package/src/summary/summarizerNode/index.ts +6 -3
  560. package/src/summary/summarizerNode/summarizerNode.ts +50 -5
  561. package/src/summary/summarizerNode/summarizerNodeUtils.ts +14 -1
  562. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -11
  563. package/src/summary/summarizerTypes.ts +11 -23
  564. package/src/summary/summaryFormat.ts +16 -2
  565. package/src/summary/summaryGenerator.ts +16 -4
  566. package/src/summary/summaryManager.ts +6 -7
  567. package/tsconfig.cjs.json +7 -0
  568. package/tsconfig.json +2 -5
  569. package/dist/dataStores.d.ts +0 -151
  570. package/dist/dataStores.d.ts.map +0 -1
  571. package/dist/dataStores.js.map +0 -1
  572. package/dist/deltaManagerProxyBase.d.ts.map +0 -1
  573. package/dist/deltaManagerProxyBase.js +0 -77
  574. package/dist/deltaManagerProxyBase.js.map +0 -1
  575. package/lib/batchTracker.d.mts.map +0 -1
  576. package/lib/batchTracker.mjs.map +0 -1
  577. package/lib/blobManager.d.mts.map +0 -1
  578. package/lib/blobManager.mjs.map +0 -1
  579. package/lib/connectionTelemetry.d.mts.map +0 -1
  580. package/lib/connectionTelemetry.mjs.map +0 -1
  581. package/lib/containerHandleContext.d.mts.map +0 -1
  582. package/lib/containerHandleContext.mjs.map +0 -1
  583. package/lib/containerRuntime.d.mts.map +0 -1
  584. package/lib/containerRuntime.mjs.map +0 -1
  585. package/lib/dataStore.d.mts.map +0 -1
  586. package/lib/dataStore.mjs.map +0 -1
  587. package/lib/dataStoreContext.d.mts.map +0 -1
  588. package/lib/dataStoreContext.mjs.map +0 -1
  589. package/lib/dataStoreContexts.d.mts.map +0 -1
  590. package/lib/dataStoreContexts.mjs.map +0 -1
  591. package/lib/dataStoreRegistry.d.mts.map +0 -1
  592. package/lib/dataStoreRegistry.mjs.map +0 -1
  593. package/lib/dataStores.d.mts +0 -151
  594. package/lib/dataStores.d.mts.map +0 -1
  595. package/lib/dataStores.mjs.map +0 -1
  596. package/lib/deltaManagerProxyBase.d.mts +0 -35
  597. package/lib/deltaManagerProxyBase.d.mts.map +0 -1
  598. package/lib/deltaManagerProxyBase.mjs +0 -73
  599. package/lib/deltaManagerProxyBase.mjs.map +0 -1
  600. package/lib/deltaManagerSummarizerProxy.d.mts +0 -19
  601. package/lib/deltaManagerSummarizerProxy.d.mts.map +0 -1
  602. package/lib/deltaManagerSummarizerProxy.mjs +0 -38
  603. package/lib/deltaManagerSummarizerProxy.mjs.map +0 -1
  604. package/lib/deltaScheduler.d.mts.map +0 -1
  605. package/lib/deltaScheduler.mjs.map +0 -1
  606. package/lib/error.d.mts.map +0 -1
  607. package/lib/error.mjs.map +0 -1
  608. package/lib/gc/garbageCollection.d.mts.map +0 -1
  609. package/lib/gc/garbageCollection.mjs.map +0 -1
  610. package/lib/gc/gcConfigs.d.mts.map +0 -1
  611. package/lib/gc/gcConfigs.mjs.map +0 -1
  612. package/lib/gc/gcDefinitions.d.mts.map +0 -1
  613. package/lib/gc/gcDefinitions.mjs.map +0 -1
  614. package/lib/gc/gcHelpers.mjs.map +0 -1
  615. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +0 -1
  616. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +0 -1
  617. package/lib/gc/gcSummaryDefinitions.d.mts.map +0 -1
  618. package/lib/gc/gcSummaryDefinitions.mjs.map +0 -1
  619. package/lib/gc/gcSummaryStateTracker.d.mts.map +0 -1
  620. package/lib/gc/gcSummaryStateTracker.mjs.map +0 -1
  621. package/lib/gc/gcTelemetry.d.mts.map +0 -1
  622. package/lib/gc/gcTelemetry.mjs.map +0 -1
  623. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +0 -1
  624. package/lib/gc/gcUnreferencedStateTracker.mjs.map +0 -1
  625. package/lib/gc/index.d.mts +0 -13
  626. package/lib/gc/index.d.mts.map +0 -1
  627. package/lib/gc/index.mjs.map +0 -1
  628. package/lib/index.d.mts.map +0 -1
  629. package/lib/index.mjs +0 -25
  630. package/lib/index.mjs.map +0 -1
  631. package/lib/messageTypes.d.mts.map +0 -1
  632. package/lib/messageTypes.mjs.map +0 -1
  633. package/lib/metadata.d.mts.map +0 -1
  634. package/lib/metadata.mjs.map +0 -1
  635. package/lib/opLifecycle/batchManager.d.mts.map +0 -1
  636. package/lib/opLifecycle/batchManager.mjs.map +0 -1
  637. package/lib/opLifecycle/definitions.d.mts.map +0 -1
  638. package/lib/opLifecycle/definitions.mjs.map +0 -1
  639. package/lib/opLifecycle/index.d.mts +0 -13
  640. package/lib/opLifecycle/index.d.mts.map +0 -1
  641. package/lib/opLifecycle/index.mjs +0 -12
  642. package/lib/opLifecycle/index.mjs.map +0 -1
  643. package/lib/opLifecycle/opCompressor.d.mts.map +0 -1
  644. package/lib/opLifecycle/opCompressor.mjs.map +0 -1
  645. package/lib/opLifecycle/opDecompressor.d.mts.map +0 -1
  646. package/lib/opLifecycle/opDecompressor.mjs.map +0 -1
  647. package/lib/opLifecycle/opGroupingManager.d.mts.map +0 -1
  648. package/lib/opLifecycle/opGroupingManager.mjs.map +0 -1
  649. package/lib/opLifecycle/opSplitter.d.mts.map +0 -1
  650. package/lib/opLifecycle/opSplitter.mjs.map +0 -1
  651. package/lib/opLifecycle/outbox.d.mts.map +0 -1
  652. package/lib/opLifecycle/outbox.mjs.map +0 -1
  653. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +0 -1
  654. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +0 -1
  655. package/lib/opProperties.d.mts.map +0 -1
  656. package/lib/opProperties.mjs.map +0 -1
  657. package/lib/packageVersion.d.mts.map +0 -1
  658. package/lib/packageVersion.mjs.map +0 -1
  659. package/lib/pendingStateManager.d.mts.map +0 -1
  660. package/lib/pendingStateManager.mjs.map +0 -1
  661. package/lib/scheduleManager.d.mts.map +0 -1
  662. package/lib/scheduleManager.mjs.map +0 -1
  663. package/lib/storageServiceWithAttachBlobs.d.mts.map +0 -1
  664. package/lib/storageServiceWithAttachBlobs.mjs.map +0 -1
  665. package/lib/summary/index.d.mts.map +0 -1
  666. package/lib/summary/index.mjs.map +0 -1
  667. package/lib/summary/orderedClientElection.d.mts.map +0 -1
  668. package/lib/summary/orderedClientElection.mjs.map +0 -1
  669. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +0 -1
  670. package/lib/summary/runWhileConnectedCoordinator.mjs.map +0 -1
  671. package/lib/summary/runningSummarizer.d.mts.map +0 -1
  672. package/lib/summary/runningSummarizer.mjs.map +0 -1
  673. package/lib/summary/summarizer.d.mts.map +0 -1
  674. package/lib/summary/summarizer.mjs.map +0 -1
  675. package/lib/summary/summarizerClientElection.d.mts.map +0 -1
  676. package/lib/summary/summarizerClientElection.mjs.map +0 -1
  677. package/lib/summary/summarizerHeuristics.d.mts.map +0 -1
  678. package/lib/summary/summarizerHeuristics.mjs.map +0 -1
  679. package/lib/summary/summarizerNode/index.d.mts.map +0 -1
  680. package/lib/summary/summarizerNode/index.mjs +0 -7
  681. package/lib/summary/summarizerNode/index.mjs.map +0 -1
  682. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +0 -1
  683. package/lib/summary/summarizerNode/summarizerNode.mjs.map +0 -1
  684. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +0 -1
  685. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +0 -1
  686. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +0 -1
  687. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +0 -1
  688. package/lib/summary/summarizerTypes.d.mts.map +0 -1
  689. package/lib/summary/summarizerTypes.mjs.map +0 -1
  690. package/lib/summary/summaryCollection.d.mts.map +0 -1
  691. package/lib/summary/summaryCollection.mjs.map +0 -1
  692. package/lib/summary/summaryFormat.d.mts.map +0 -1
  693. package/lib/summary/summaryFormat.mjs.map +0 -1
  694. package/lib/summary/summaryGenerator.d.mts.map +0 -1
  695. package/lib/summary/summaryGenerator.mjs.map +0 -1
  696. package/lib/summary/summaryManager.d.mts.map +0 -1
  697. package/lib/summary/summaryManager.mjs.map +0 -1
  698. package/lib/throttler.d.mts.map +0 -1
  699. package/lib/throttler.mjs.map +0 -1
  700. package/src/deltaManagerProxyBase.ts +0 -111
@@ -9,17 +9,17 @@ const core_utils_1 = require("@fluidframework/core-utils");
9
9
  const runtime_definitions_1 = require("@fluidframework/runtime-definitions");
10
10
  const runtime_utils_1 = require("@fluidframework/runtime-utils");
11
11
  const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
12
- const blobManager_1 = require("../blobManager");
13
- const containerRuntime_1 = require("../containerRuntime");
14
- const error_1 = require("../error");
15
- const messageTypes_1 = require("../messageTypes");
16
- const gcConfigs_1 = require("./gcConfigs");
17
- const gcDefinitions_1 = require("./gcDefinitions");
18
- const gcHelpers_1 = require("./gcHelpers");
19
- const gcReferenceGraphAlgorithm_1 = require("./gcReferenceGraphAlgorithm");
20
- const gcSummaryStateTracker_1 = require("./gcSummaryStateTracker");
21
- const gcUnreferencedStateTracker_1 = require("./gcUnreferencedStateTracker");
22
- const gcTelemetry_1 = require("./gcTelemetry");
12
+ const blobManager_js_1 = require("../blobManager.js");
13
+ const containerRuntime_js_1 = require("../containerRuntime.js");
14
+ const error_js_1 = require("../error.js");
15
+ const messageTypes_js_1 = require("../messageTypes.js");
16
+ const gcConfigs_js_1 = require("./gcConfigs.js");
17
+ const gcDefinitions_js_1 = require("./gcDefinitions.js");
18
+ const gcHelpers_js_1 = require("./gcHelpers.js");
19
+ const gcReferenceGraphAlgorithm_js_1 = require("./gcReferenceGraphAlgorithm.js");
20
+ const gcSummaryStateTracker_js_1 = require("./gcSummaryStateTracker.js");
21
+ const gcUnreferencedStateTracker_js_1 = require("./gcUnreferencedStateTracker.js");
22
+ const gcTelemetry_js_1 = require("./gcTelemetry.js");
23
23
  /**
24
24
  * The garbage collector for the container runtime. It consolidates the garbage collection functionality and maintains
25
25
  * its state across summaries.
@@ -81,7 +81,7 @@ class GarbageCollector {
81
81
  * NOTE: The set of keys in this map is considered as the set of unreferenced nodes
82
82
  * as of the last GC run. So in between runs, nothing should be added or removed.
83
83
  */
84
- this.unreferencedNodesState = new gcUnreferencedStateTracker_1.UnreferencedStateTrackerMap();
84
+ this.unreferencedNodesState = new gcUnreferencedStateTracker_js_1.UnreferencedStateTrackerMap();
85
85
  // The number of times GC has successfully completed on this instance of GarbageCollector.
86
86
  this.completedRuns = 0;
87
87
  this.runtime = createParams.runtime;
@@ -91,6 +91,7 @@ class GarbageCollector {
91
91
  this.submitMessage = createParams.submitMessage;
92
92
  const baseSnapshot = createParams.baseSnapshot;
93
93
  const readAndParseBlob = createParams.readAndParseBlob;
94
+ const pendingSessionExpiryTimerStarted = createParams.sessionExpiryTimerStarted;
94
95
  this.mc = (0, telemetry_utils_1.createChildMonitoringContext)({
95
96
  logger: createParams.baseLogger,
96
97
  namespace: "GarbageCollector",
@@ -98,19 +99,29 @@ class GarbageCollector {
98
99
  all: { completedGCRuns: () => this.completedRuns },
99
100
  },
100
101
  });
101
- this.configs = (0, gcConfigs_1.generateGCConfigs)(this.mc, createParams);
102
+ this.configs = (0, gcConfigs_js_1.generateGCConfigs)(this.mc, createParams);
102
103
  // If session expiry is enabled, we need to close the container when the session expiry timeout expires.
103
104
  if (this.configs.sessionExpiryTimeoutMs !== undefined) {
104
105
  // If Test Override config is set, override Session Expiry timeout.
105
106
  const overrideSessionExpiryTimeoutMs = this.mc.config.getNumber("Fluid.GarbageCollection.TestOverride.SessionExpiryMs");
106
- const timeoutMs = overrideSessionExpiryTimeoutMs ?? this.configs.sessionExpiryTimeoutMs;
107
+ let timeoutMs = this.configs.sessionExpiryTimeoutMs;
108
+ if (pendingSessionExpiryTimerStarted) {
109
+ // NOTE: This assumes the client clock hasn't been tampered with since the original session
110
+ const timeLapsedSincePendingTimer = Date.now() - pendingSessionExpiryTimerStarted;
111
+ timeoutMs -= timeLapsedSincePendingTimer;
112
+ }
113
+ timeoutMs = overrideSessionExpiryTimeoutMs ?? timeoutMs;
114
+ if (timeoutMs <= 0) {
115
+ this.runtime.closeFn(new error_js_1.ClientSessionExpiredError(`Client session expired.`, timeoutMs));
116
+ }
107
117
  this.sessionExpiryTimer = new core_utils_1.Timer(timeoutMs, () => {
108
- this.runtime.closeFn(new error_1.ClientSessionExpiredError(`Client session expired.`, timeoutMs));
118
+ this.runtime.closeFn(new error_js_1.ClientSessionExpiredError(`Client session expired.`, timeoutMs));
109
119
  });
110
120
  this.sessionExpiryTimer.start();
121
+ this.sessionExpiryTimerStarted = Date.now();
111
122
  }
112
- this.summaryStateTracker = new gcSummaryStateTracker_1.GCSummaryStateTracker(this.configs, baseSnapshot?.trees[runtime_definitions_1.gcTreeKey] !== undefined /* wasGCRunInBaseSnapshot */);
113
- this.telemetryTracker = new gcTelemetry_1.GCTelemetryTracker(this.mc, this.configs, this.isSummarizerClient, createParams.createContainerMetadata, (nodeId) => this.runtime.getNodeType(nodeId), (nodeId) => this.unreferencedNodesState.get(nodeId), this.getNodePackagePath);
123
+ this.summaryStateTracker = new gcSummaryStateTracker_js_1.GCSummaryStateTracker(this.configs, baseSnapshot?.trees[runtime_definitions_1.gcTreeKey] !== undefined /* wasGCRunInBaseSnapshot */);
124
+ this.telemetryTracker = new gcTelemetry_js_1.GCTelemetryTracker(this.mc, this.configs, this.isSummarizerClient, createParams.createContainerMetadata, (nodeId) => this.runtime.getNodeType(nodeId), (nodeId) => this.unreferencedNodesState.get(nodeId), this.getNodePackagePath);
114
125
  // Get the GC data from the base snapshot. Use LazyPromise because we only want to do this once since it
115
126
  // it involves fetching blobs from storage which is expensive.
116
127
  this.baseSnapshotDataP = new core_utils_1.LazyPromise(async () => {
@@ -125,7 +136,7 @@ class GarbageCollector {
125
136
  // incremental gc summary will not work with older gc data as well
126
137
  return undefined;
127
138
  }
128
- const snapshotData = await (0, gcHelpers_1.getGCDataFromSnapshot)(gcSnapshotTree, readAndParseBlob);
139
+ const snapshotData = await (0, gcHelpers_js_1.getGCDataFromSnapshot)(gcSnapshotTree, readAndParseBlob);
129
140
  // If the GC version in base snapshot does not match the GC version currently in effect, the GC data
130
141
  // in the snapshot cannot be interpreted correctly. Set everything to undefined except for
131
142
  // deletedNodes because irrespective of GC versions, these nodes have been deleted and cannot be
@@ -172,7 +183,7 @@ class GarbageCollector {
172
183
  const gcNodes = {};
173
184
  for (const [nodeId, nodeData] of Object.entries(baseSnapshotData.gcState.gcNodes)) {
174
185
  if (nodeData.unreferencedTimestampMs !== undefined) {
175
- this.unreferencedNodesState.set(nodeId, new gcUnreferencedStateTracker_1.UnreferencedStateTracker(nodeData.unreferencedTimestampMs, this.configs.inactiveTimeoutMs, currentReferenceTimestampMs, this.configs.tombstoneTimeoutMs, this.configs.sweepGracePeriodMs));
186
+ this.unreferencedNodesState.set(nodeId, new gcUnreferencedStateTracker_js_1.UnreferencedStateTracker(nodeData.unreferencedTimestampMs, this.configs.inactiveTimeoutMs, currentReferenceTimestampMs, this.configs.tombstoneTimeoutMs, this.configs.sweepGracePeriodMs));
176
187
  }
177
188
  gcNodes[nodeId] = Array.from(nodeData.outboundRoutes);
178
189
  }
@@ -192,7 +203,7 @@ class GarbageCollector {
192
203
  // Run GC on the nodes in the base summary to get the routes used in each node in the container.
193
204
  // This is an optimization for space (vs performance) wherein we don't need to store the used routes of
194
205
  // each node in the summary.
195
- const usedRoutes = (0, gcReferenceGraphAlgorithm_1.runGarbageCollection)(gcNodes, ["/"]).referencedNodeIds;
206
+ const usedRoutes = (0, gcReferenceGraphAlgorithm_js_1.runGarbageCollection)(gcNodes, ["/"]).referencedNodeIds;
196
207
  return { gcData: { gcNodes }, usedRoutes };
197
208
  });
198
209
  // Log all the GC options and the state determined by the garbage collector.
@@ -294,7 +305,9 @@ class GarbageCollector {
294
305
  */
295
306
  async collectGarbage(options, telemetryContext) {
296
307
  const fullGC = options.fullGC ??
297
- (this.configs.runFullGC === true || this.summaryStateTracker.doesSummaryStateNeedReset);
308
+ (this.configs.runFullGC === true ||
309
+ this.summaryStateTracker.autoRecovery.fullGCRequested() ||
310
+ this.summaryStateTracker.doesSummaryStateNeedReset);
298
311
  // Add the options that are used to run GC to the telemetry context.
299
312
  telemetryContext?.setMultiple("fluid_GC", "Options", {
300
313
  fullGC,
@@ -370,7 +383,7 @@ class GarbageCollector {
370
383
  // 1. Generate / analyze the runtime's reference graph.
371
384
  // Get the reference graph (gcData) and run GC algorithm to get referenced / unreferenced nodes.
372
385
  const gcData = await this.runtime.getGCData(fullGC);
373
- const gcResult = (0, gcReferenceGraphAlgorithm_1.runGarbageCollection)(gcData.gcNodes, ["/"]);
386
+ const gcResult = (0, gcReferenceGraphAlgorithm_js_1.runGarbageCollection)(gcData.gcNodes, ["/"]);
374
387
  // Get all referenced nodes - References in this run + references between the previous and current runs.
375
388
  const allReferencedNodeIds = this.findAllNodesReferencedBetweenGCs(gcData, this.gcDataFromLastRun, logger) ??
376
389
  gcResult.referencedNodeIds;
@@ -381,10 +394,11 @@ class GarbageCollector {
381
394
  // It will mark nodes as referenced / unreferenced and return lists of tombstone-ready and sweep-ready nodes.
382
395
  const { tombstoneReadyNodeIds, sweepReadyNodeIds } = this.runMarkPhase(gcResult, allReferencedNodeIds, currentReferenceTimestampMs);
383
396
  // 4. Run the Sweep phase.
384
- // It will tombstone any tombstone-ready nodes, and initiate the deletion of sweep-ready nodes by sending a
385
- // sweep op. All clients, including this one, will delete these nodes once it processes the op.
397
+ // It will initiate the deletion (sending the GC Sweep op) of any sweep-ready nodes that are
398
+ // allowed to be deleted per config, and tombstone the rest along with the tombstone-ready nodes.
399
+ // Note that no nodes will be deleted until the GC Sweep op is processed.
386
400
  this.runSweepPhase(gcResult, tombstoneReadyNodeIds, sweepReadyNodeIds);
387
- this.gcDataFromLastRun = (0, gcHelpers_1.cloneGCData)(gcData);
401
+ this.gcDataFromLastRun = (0, gcHelpers_js_1.cloneGCData)(gcData);
388
402
  // 5. Get the sweep phase stats.
389
403
  const sweepPhaseStats = this.getSweepPhaseStats(this.deletedNodes, sweepReadyNodeIds, markPhaseStats);
390
404
  return { ...markPhaseStats, ...sweepPhaseStats };
@@ -414,17 +428,17 @@ class GarbageCollector {
414
428
  for (const nodeId of gcResult.deletedNodeIds) {
415
429
  const nodeStateTracker = this.unreferencedNodesState.get(nodeId);
416
430
  if (nodeStateTracker === undefined) {
417
- this.unreferencedNodesState.set(nodeId, new gcUnreferencedStateTracker_1.UnreferencedStateTracker(currentReferenceTimestampMs, this.configs.inactiveTimeoutMs, currentReferenceTimestampMs, this.configs.tombstoneTimeoutMs, this.configs.sweepGracePeriodMs));
431
+ this.unreferencedNodesState.set(nodeId, new gcUnreferencedStateTracker_js_1.UnreferencedStateTracker(currentReferenceTimestampMs, this.configs.inactiveTimeoutMs, currentReferenceTimestampMs, this.configs.tombstoneTimeoutMs, this.configs.sweepGracePeriodMs));
418
432
  }
419
433
  else {
420
434
  // If a node was already unreferenced, update its tracking information. Since the current reference time
421
435
  // is from the ops seen, this will ensure that we keep updating unreferenced state as time moves forward.
422
436
  nodeStateTracker.updateTracking(currentReferenceTimestampMs);
423
437
  // If a node is tombstone or sweep-ready, store it so it can be returned.
424
- if (nodeStateTracker.state === gcDefinitions_1.UnreferencedState.TombstoneReady) {
438
+ if (nodeStateTracker.state === gcDefinitions_js_1.UnreferencedState.TombstoneReady) {
425
439
  tombstoneReadyNodeIds.add(nodeId);
426
440
  }
427
- if (nodeStateTracker.state === gcDefinitions_1.UnreferencedState.SweepReady) {
441
+ if (nodeStateTracker.state === gcDefinitions_js_1.UnreferencedState.SweepReady) {
428
442
  sweepReadyNodeIds.add(nodeId);
429
443
  }
430
444
  }
@@ -452,45 +466,61 @@ class GarbageCollector {
452
466
  * marked as Tombstone, or deleted by Sweep.
453
467
  */
454
468
  if (this.configs.testMode) {
455
- // If we are running in GC test mode, unreferenced nodes (gcResult.deletedNodeIds) are deleted.
456
- this.runtime.updateUnusedRoutes(gcResult.deletedNodeIds);
469
+ // If we are running in GC test mode, unreferenced nodes (gcResult.deletedNodeIds) are deleted immediately.
470
+ this.runtime.deleteSweepReadyNodes(gcResult.deletedNodeIds);
457
471
  return;
458
472
  }
459
- // If sweep is disabled, we'll tombstone both tombstone-ready and sweep-ready nodes.
473
+ // We'll build up the lists of nodes to be either Tombstoned or Deleted
474
+ // based on the configuration and the nodes' current state.
475
+ // We must Tombstone any sweep-ready node that Sweep won't run for.
460
476
  // This is important because a container may never load during a node's Sweep Grace Period,
461
477
  // so that node would directly become sweep-ready skipping over tombstone-ready state,
462
478
  // but should be Tombstoned since Sweep is disabled.
463
- const { nodesToTombstone, nodesToDelete } = this.configs.shouldRunSweep
464
- ? {
465
- nodesToTombstone: [...tombstoneReadyNodes],
466
- nodesToDelete: [...sweepReadyNodes],
467
- }
468
- : {
469
- nodesToTombstone: [...tombstoneReadyNodes, ...sweepReadyNodes],
470
- nodesToDelete: [],
471
- };
479
+ const { nodesToTombstone, nodesToDelete } = {
480
+ nodesToTombstone: [...tombstoneReadyNodes],
481
+ nodesToDelete: [],
482
+ };
483
+ switch (this.configs.shouldRunSweep) {
484
+ case "YES":
485
+ nodesToDelete.push(...sweepReadyNodes);
486
+ break;
487
+ case "ONLY_BLOBS":
488
+ sweepReadyNodes.forEach((nodeId) => {
489
+ const nodeType = this.runtime.getNodeType(nodeId);
490
+ if (nodeType === gcDefinitions_js_1.GCNodeType.Blob) {
491
+ nodesToDelete.push(nodeId);
492
+ }
493
+ else {
494
+ nodesToTombstone.push(nodeId);
495
+ }
496
+ });
497
+ break;
498
+ default: // case "NO":
499
+ nodesToTombstone.push(...sweepReadyNodes);
500
+ break;
501
+ }
472
502
  if (this.configs.tombstoneMode) {
473
503
  this.tombstones = nodesToTombstone;
474
504
  // If we are running in GC tombstone mode, update tombstoned routes.
475
505
  this.runtime.updateTombstonedRoutes(this.tombstones);
476
506
  }
477
- if (this.configs.shouldRunSweep && nodesToDelete.length > 0) {
507
+ if (nodesToDelete.length > 0) {
478
508
  // Do not send DDS node ids in the GC op. This is an optimization to reduce its size. Since GC applies to
479
509
  // to data store only, all its DDSes are deleted along with it. The DDS ids will be retrieved from the
480
510
  // local state when processing the op.
481
511
  const sweepReadyDSAndBlobs = nodesToDelete.filter((nodeId) => {
482
512
  const nodeType = this.runtime.getNodeType(nodeId);
483
- return nodeType === gcDefinitions_1.GCNodeType.DataStore || nodeType === gcDefinitions_1.GCNodeType.Blob;
513
+ return nodeType === gcDefinitions_js_1.GCNodeType.DataStore || nodeType === gcDefinitions_js_1.GCNodeType.Blob;
484
514
  });
485
515
  const contents = {
486
- type: gcDefinitions_1.GarbageCollectionMessageType.Sweep,
516
+ type: gcDefinitions_js_1.GarbageCollectionMessageType.Sweep,
487
517
  deletedNodeIds: sweepReadyDSAndBlobs,
488
518
  };
489
519
  // Its fine for older clients to ignore this op because it doesn't have any functional impact. This op
490
520
  // is an optimization to ensure that all clients are in sync when it comes to deleted nodes to prevent their
491
521
  // accidental usage. The clients will sync without the delete op too but it may take longer.
492
522
  const containerGCMessage = {
493
- type: messageTypes_1.ContainerMessageType.GC,
523
+ type: messageTypes_js_1.ContainerMessageType.GC,
494
524
  contents,
495
525
  compatDetails: { behavior: "Ignore" },
496
526
  };
@@ -545,7 +575,7 @@ class GarbageCollector {
545
575
  * - We don't require DDSes handles to be stored in a referenced DDS.
546
576
  * - A new data store may have "root" DDSes already created and we don't detect them today.
547
577
  */
548
- const gcDataSuperSet = (0, gcHelpers_1.concatGarbageCollectionData)(previousGCData, currentGCData);
578
+ const gcDataSuperSet = (0, gcHelpers_js_1.concatGarbageCollectionData)(previousGCData, currentGCData);
549
579
  const newOutboundRoutesSinceLastRun = [];
550
580
  this.newReferencesSinceLastRun.forEach((outboundRoutes, sourceNodeId) => {
551
581
  if (gcDataSuperSet.gcNodes[sourceNodeId] === undefined) {
@@ -563,7 +593,7 @@ class GarbageCollector {
563
593
  * Note that some of these nodes may be unreferenced now and if so, the current run will mark them as
564
594
  * unreferenced and add unreferenced state.
565
595
  */
566
- const gcResult = (0, gcReferenceGraphAlgorithm_1.runGarbageCollection)(gcDataSuperSet.gcNodes, [
596
+ const gcResult = (0, gcReferenceGraphAlgorithm_js_1.runGarbageCollection)(gcDataSuperSet.gcNodes, [
567
597
  "/",
568
598
  ...newOutboundRoutesSinceLastRun,
569
599
  ]);
@@ -585,7 +615,7 @@ class GarbageCollector {
585
615
  unreferencedTimestampMs: this.unreferencedNodesState.get(nodeId)?.unreferencedTimestampMs,
586
616
  };
587
617
  }
588
- return this.summaryStateTracker.summarize(fullTree, trackState, gcState, this.deletedNodes, this.tombstones);
618
+ return this.summaryStateTracker.summarize(trackState && !fullTree, gcState, this.deletedNodes, this.tombstones);
589
619
  }
590
620
  getMetadata() {
591
621
  return {
@@ -614,22 +644,25 @@ class GarbageCollector {
614
644
  processMessage(message, local) {
615
645
  const gcMessageType = message.contents.type;
616
646
  switch (gcMessageType) {
617
- case gcDefinitions_1.GarbageCollectionMessageType.Sweep: {
647
+ case gcDefinitions_js_1.GarbageCollectionMessageType.Sweep: {
618
648
  // Delete the nodes whose ids are present in the contents.
619
649
  this.deleteSweepReadyNodes(message.contents.deletedNodeIds);
620
650
  break;
621
651
  }
622
- case gcDefinitions_1.GarbageCollectionMessageType.TombstoneLoaded: {
623
- if (this.mc.config.getBoolean(gcDefinitions_1.disableAutoRecoveryKey) === true) {
652
+ case gcDefinitions_js_1.GarbageCollectionMessageType.TombstoneLoaded: {
653
+ if (this.mc.config.getBoolean(gcDefinitions_js_1.disableAutoRecoveryKey) === true) {
624
654
  break;
625
655
  }
626
656
  // Mark the node as referenced to ensure it isn't Swept
627
657
  const tombstonedNodePath = message.contents.nodePath;
628
- this.addedOutboundReference("/", tombstonedNodePath);
658
+ this.addedOutboundReference("/", tombstonedNodePath, true /* autorecovery */);
659
+ // In case the cause of the TombstoneLoaded event is incorrect GC Data (i.e. the object is actually reachable),
660
+ // do fullGC on the next run to get a chance to repair (in the likely case the bug is not deterministic)
661
+ this.summaryStateTracker.autoRecovery.requestFullGCOnNextRun();
629
662
  break;
630
663
  }
631
664
  default: {
632
- if (!(0, gcHelpers_1.compatBehaviorAllowsGCMessageType)(gcMessageType, message.compatDetails?.behavior)) {
665
+ if (!(0, gcHelpers_js_1.compatBehaviorAllowsGCMessageType)(gcMessageType, message.compatDetails?.behavior)) {
633
666
  const error = telemetry_utils_1.DataProcessingError.create(`Garbage collection message of unknown type ${gcMessageType}`, "processMessage");
634
667
  throw error;
635
668
  }
@@ -640,6 +673,10 @@ class GarbageCollector {
640
673
  /**
641
674
  * Delete nodes that are sweep-ready. Call the runtime to delete these nodes and clear the unreferenced state
642
675
  * tracking for nodes that are actually deleted by the runtime.
676
+ *
677
+ * Note that this doesn't check any configuration around whether Sweep is enabled.
678
+ * That happens before the op is submitted, and from that point, any client should execute the delete.
679
+ *
643
680
  * @param sweepReadyNodeIds - The ids of nodes that are ready to be deleted.
644
681
  */
645
682
  deleteSweepReadyNodes(sweepReadyNodeIds) {
@@ -707,14 +744,14 @@ class GarbageCollector {
707
744
  }
708
745
  const nodeType = this.runtime.getNodeType(nodePath);
709
746
  // Unless this is a Loaded event for a Blob or DataStore, we're done after telemetry tracking
710
- if (reason !== "Loaded" || ![gcDefinitions_1.GCNodeType.Blob, gcDefinitions_1.GCNodeType.DataStore].includes(nodeType)) {
747
+ if (reason !== "Loaded" || ![gcDefinitions_js_1.GCNodeType.Blob, gcDefinitions_js_1.GCNodeType.DataStore].includes(nodeType)) {
711
748
  return;
712
749
  }
713
750
  const errorRequest = request ?? { url: nodePath };
714
751
  if (isTombstoned && this.throwOnTombstoneLoad && headerData?.allowTombstone !== true) {
715
752
  // The requested data store is removed by gc. Create a 404 gc response exception.
716
753
  throw (0, runtime_utils_1.responseToException)((0, runtime_utils_1.createResponseError)(404, `${nodeType} was tombstoned`, errorRequest, {
717
- [containerRuntime_1.TombstoneResponseHeaderKey]: true,
754
+ [containerRuntime_js_1.TombstoneResponseHeaderKey]: true,
718
755
  }), errorRequest);
719
756
  }
720
757
  // If the object is inactive and inactive enforcement is configured, throw an error.
@@ -724,7 +761,7 @@ class GarbageCollector {
724
761
  headerData?.allowInactive !== true;
725
762
  if (shouldThrowOnInactiveLoad) {
726
763
  throw (0, runtime_utils_1.responseToException)((0, runtime_utils_1.createResponseError)(404, `${nodeType} is inactive`, errorRequest, {
727
- [containerRuntime_1.InactiveResponseHeaderKey]: true,
764
+ [containerRuntime_js_1.InactiveResponseHeaderKey]: true,
728
765
  }), errorRequest);
729
766
  }
730
767
  }
@@ -739,15 +776,15 @@ class GarbageCollector {
739
776
  * before runnint GC next.
740
777
  */
741
778
  triggerAutoRecovery(nodePath) {
742
- if (this.mc.config.getBoolean(gcDefinitions_1.disableAutoRecoveryKey) === true) {
779
+ if (this.mc.config.getBoolean(gcDefinitions_js_1.disableAutoRecoveryKey) === true) {
743
780
  return;
744
781
  }
745
782
  // Use compat behavior "Ignore" since this is an optimization to opportunistically protect
746
783
  // objects from deletion, so it's fine for older clients to ignore this op.
747
784
  const containerGCMessage = {
748
- type: messageTypes_1.ContainerMessageType.GC,
785
+ type: messageTypes_js_1.ContainerMessageType.GC,
749
786
  contents: {
750
- type: "TombstoneLoaded",
787
+ type: gcDefinitions_js_1.GarbageCollectionMessageType.TombstoneLoaded,
751
788
  nodePath,
752
789
  },
753
790
  compatDetails: { behavior: "Ignore" },
@@ -836,7 +873,7 @@ class GarbageCollector {
836
873
  if (!isReferenced) {
837
874
  markPhaseStats.unrefNodeCount++;
838
875
  }
839
- if (this.runtime.getNodeType(nodeId) === gcDefinitions_1.GCNodeType.DataStore) {
876
+ if (this.runtime.getNodeType(nodeId) === gcDefinitions_js_1.GCNodeType.DataStore) {
840
877
  markPhaseStats.dataStoreCount++;
841
878
  if (stateUpdated) {
842
879
  markPhaseStats.updatedDataStoreCount++;
@@ -845,7 +882,7 @@ class GarbageCollector {
845
882
  markPhaseStats.unrefDataStoreCount++;
846
883
  }
847
884
  }
848
- if (this.runtime.getNodeType(nodeId) === gcDefinitions_1.GCNodeType.Blob) {
885
+ if (this.runtime.getNodeType(nodeId) === gcDefinitions_js_1.GCNodeType.Blob) {
849
886
  markPhaseStats.attachmentBlobCount++;
850
887
  if (stateUpdated) {
851
888
  markPhaseStats.updatedAttachmentBlobCount++;
@@ -865,8 +902,9 @@ class GarbageCollector {
865
902
  }
866
903
  /**
867
904
  * Generates the stats of a garbage collection sweep phase run.
868
- * @param deletedNodes - The nodes that have been deleted until this run.
869
- * @param sweepReadyNodes - The nodes that are sweep-ready in this GC run.
905
+ * @param deletedNodes - The nodes that have already been deleted even before this run.
906
+ * @param sweepReadyNodes - The nodes that are sweep-ready in this GC run. These will be deleted but are not deleted yet,
907
+ * due to either sweep not being enabled or the Sweep Op needing to roundtrip before the delete is executed.
870
908
  * @param markPhaseStats - The stats of the mark phase run.
871
909
  * @returns the stats of the sweep phase run.
872
910
  */
@@ -885,45 +923,45 @@ class GarbageCollector {
885
923
  // be good enough because the only types that participate in GC today are data stores, DDSes and blobs.
886
924
  const getDeletedNodeType = (nodeId) => {
887
925
  const pathParts = nodeId.split("/");
888
- if (pathParts[1] === blobManager_1.BlobManager.basePath) {
889
- return gcDefinitions_1.GCNodeType.Blob;
926
+ if (pathParts[1] === blobManager_js_1.BlobManager.basePath) {
927
+ return gcDefinitions_js_1.GCNodeType.Blob;
890
928
  }
891
929
  if (pathParts.length === 2) {
892
- return gcDefinitions_1.GCNodeType.DataStore;
930
+ return gcDefinitions_js_1.GCNodeType.DataStore;
893
931
  }
894
932
  if (pathParts.length === 3) {
895
- return gcDefinitions_1.GCNodeType.SubDataStore;
933
+ return gcDefinitions_js_1.GCNodeType.SubDataStore;
896
934
  }
897
- return gcDefinitions_1.GCNodeType.Other;
935
+ return gcDefinitions_js_1.GCNodeType.Other;
898
936
  };
899
937
  for (const nodeId of deletedNodes) {
900
938
  sweepPhaseStats.deletedNodeCount++;
901
939
  const nodeType = getDeletedNodeType(nodeId);
902
- if (nodeType === gcDefinitions_1.GCNodeType.DataStore) {
940
+ if (nodeType === gcDefinitions_js_1.GCNodeType.DataStore) {
903
941
  sweepPhaseStats.deletedDataStoreCount++;
904
942
  }
905
- else if (nodeType === gcDefinitions_1.GCNodeType.Blob) {
943
+ else if (nodeType === gcDefinitions_js_1.GCNodeType.Blob) {
906
944
  sweepPhaseStats.deletedAttachmentBlobCount++;
907
945
  }
908
946
  }
909
- // If sweep is enabled, the counts from the mark phase stats do not include nodes that have been
947
+ // The counts from the mark phase stats do not include nodes that were
910
948
  // deleted in previous runs. So, add the deleted node counts to life time stats.
911
949
  sweepPhaseStats.lifetimeNodeCount += sweepPhaseStats.deletedNodeCount;
912
950
  sweepPhaseStats.lifetimeDataStoreCount += sweepPhaseStats.deletedDataStoreCount;
913
951
  sweepPhaseStats.lifetimeAttachmentBlobCount += sweepPhaseStats.deletedAttachmentBlobCount;
914
- if (this.configs.shouldRunSweep) {
915
- return sweepPhaseStats;
916
- }
917
- // If sweep is not enabled, the current sweep-ready node stats should be added to deleted stats since this
918
- // is the final state the node will be in.
919
- // If sweep is enabled, this will happen in the run after the GC op round trips back.
952
+ // These stats are used to estimate the impact of GC in terms of how much garbage is/will be cleaned up.
953
+ // So we include the current sweep-ready node stats since these nodes will be deleted eventually.
954
+ // - If sweep is enabled, this will happen in the run after the GC op round trips back
955
+ // (they'll be in deletedNodes that time).
956
+ // - If sweep is not enabled, we still want to include these nodes since they
957
+ // _will be_ deleted once it is enabled.
920
958
  for (const nodeId of sweepReadyNodes) {
921
959
  sweepPhaseStats.deletedNodeCount++;
922
960
  const nodeType = this.runtime.getNodeType(nodeId);
923
- if (nodeType === gcDefinitions_1.GCNodeType.DataStore) {
961
+ if (nodeType === gcDefinitions_js_1.GCNodeType.DataStore) {
924
962
  sweepPhaseStats.deletedDataStoreCount++;
925
963
  }
926
- else if (nodeType === gcDefinitions_1.GCNodeType.Blob) {
964
+ else if (nodeType === gcDefinitions_js_1.GCNodeType.Blob) {
927
965
  sweepPhaseStats.deletedAttachmentBlobCount++;
928
966
  }
929
967
  }