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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (695) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +5 -5
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +54 -0
  4. package/README.md +46 -1
  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 +435 -33
  9. package/dist/batchTracker.d.ts +1 -2
  10. package/dist/batchTracker.d.ts.map +1 -1
  11. package/dist/batchTracker.js.map +1 -1
  12. package/dist/blobManager.d.ts +0 -5
  13. package/dist/blobManager.d.ts.map +1 -1
  14. package/dist/blobManager.js +0 -12
  15. package/dist/blobManager.js.map +1 -1
  16. package/dist/channelCollection.d.ts +225 -0
  17. package/dist/channelCollection.d.ts.map +1 -0
  18. package/dist/{dataStores.js → channelCollection.js} +449 -143
  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 +138 -49
  25. package/dist/container-runtime-beta.d.ts +75 -9
  26. package/dist/container-runtime-public.d.ts +75 -9
  27. package/dist/container-runtime-untrimmed.d.ts +717 -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 +84 -64
  32. package/dist/containerRuntime.d.ts.map +1 -1
  33. package/dist/containerRuntime.js +550 -427
  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 -38
  40. package/dist/dataStoreContext.d.ts.map +1 -1
  41. package/dist/dataStoreContext.js +249 -161
  42. package/dist/dataStoreContext.js.map +1 -1
  43. package/dist/dataStoreContexts.d.ts +2 -1
  44. package/dist/dataStoreContexts.d.ts.map +1 -1
  45. package/dist/dataStoreContexts.js +1 -0
  46. package/dist/dataStoreContexts.js.map +1 -1
  47. package/dist/deltaManagerSummarizerProxy.d.ts +29 -4
  48. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  49. package/dist/deltaManagerSummarizerProxy.js +91 -5
  50. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  51. package/dist/gc/garbageCollection.d.ts +29 -7
  52. package/dist/gc/garbageCollection.d.ts.map +1 -1
  53. package/dist/gc/garbageCollection.js +179 -98
  54. package/dist/gc/garbageCollection.js.map +1 -1
  55. package/dist/gc/gcConfigs.d.ts +2 -2
  56. package/dist/gc/gcConfigs.d.ts.map +1 -1
  57. package/dist/gc/gcConfigs.js +30 -23
  58. package/dist/gc/gcConfigs.js.map +1 -1
  59. package/dist/gc/gcDefinitions.d.ts +40 -15
  60. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  61. package/dist/gc/gcDefinitions.js +11 -4
  62. package/dist/gc/gcDefinitions.js.map +1 -1
  63. package/dist/gc/gcHelpers.d.ts +2 -2
  64. package/dist/gc/gcHelpers.d.ts.map +1 -1
  65. package/dist/gc/gcHelpers.js.map +1 -1
  66. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +1 -1
  67. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -1
  68. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  69. package/dist/gc/gcSummaryStateTracker.d.ts +12 -5
  70. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  71. package/dist/gc/gcSummaryStateTracker.js +18 -6
  72. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  73. package/dist/gc/gcTelemetry.d.ts +7 -7
  74. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  75. package/dist/gc/gcTelemetry.js +20 -20
  76. package/dist/gc/gcTelemetry.js.map +1 -1
  77. package/dist/gc/gcUnreferencedStateTracker.d.ts +6 -1
  78. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  79. package/dist/gc/gcUnreferencedStateTracker.js +22 -11
  80. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  81. package/dist/gc/index.d.ts +8 -8
  82. package/dist/gc/index.d.ts.map +1 -1
  83. package/dist/gc/index.js +40 -38
  84. package/dist/gc/index.js.map +1 -1
  85. package/dist/index.d.ts +11 -20
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +36 -40
  88. package/dist/index.js.map +1 -1
  89. package/dist/messageTypes.d.ts +4 -4
  90. package/dist/messageTypes.d.ts.map +1 -1
  91. package/dist/messageTypes.js.map +1 -1
  92. package/dist/opLifecycle/batchManager.d.ts +2 -2
  93. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  94. package/dist/opLifecycle/batchManager.js.map +1 -1
  95. package/dist/opLifecycle/definitions.d.ts +2 -2
  96. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  97. package/dist/opLifecycle/definitions.js.map +1 -1
  98. package/dist/opLifecycle/index.d.ts +8 -8
  99. package/dist/opLifecycle/index.d.ts.map +1 -1
  100. package/dist/opLifecycle/index.js +18 -18
  101. package/dist/opLifecycle/index.js.map +1 -1
  102. package/dist/opLifecycle/opCompressor.d.ts +1 -1
  103. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  104. package/dist/opLifecycle/opCompressor.js +4 -4
  105. package/dist/opLifecycle/opCompressor.js.map +1 -1
  106. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  107. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  108. package/dist/opLifecycle/opDecompressor.js +3 -3
  109. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  110. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  111. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  112. package/dist/opLifecycle/opGroupingManager.js +1 -10
  113. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  114. package/dist/opLifecycle/opSplitter.d.ts +1 -1
  115. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  116. package/dist/opLifecycle/opSplitter.js +5 -5
  117. package/dist/opLifecycle/opSplitter.js.map +1 -1
  118. package/dist/opLifecycle/outbox.d.ts +7 -7
  119. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  120. package/dist/opLifecycle/outbox.js +20 -12
  121. package/dist/opLifecycle/outbox.js.map +1 -1
  122. package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -4
  123. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  124. package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
  125. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  126. package/dist/package.json +3 -0
  127. package/dist/packageVersion.d.ts +1 -1
  128. package/dist/packageVersion.js +1 -1
  129. package/dist/packageVersion.js.map +1 -1
  130. package/dist/pendingStateManager.d.ts +2 -1
  131. package/dist/pendingStateManager.d.ts.map +1 -1
  132. package/dist/pendingStateManager.js +18 -10
  133. package/dist/pendingStateManager.js.map +1 -1
  134. package/dist/scheduleManager.d.ts +1 -2
  135. package/dist/scheduleManager.d.ts.map +1 -1
  136. package/dist/scheduleManager.js +5 -5
  137. package/dist/scheduleManager.js.map +1 -1
  138. package/dist/summary/index.d.ts +12 -12
  139. package/dist/summary/index.d.ts.map +1 -1
  140. package/dist/summary/index.js +43 -43
  141. package/dist/summary/index.js.map +1 -1
  142. package/dist/summary/orderedClientElection.js +8 -8
  143. package/dist/summary/orderedClientElection.js.map +1 -1
  144. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  145. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  146. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  147. package/dist/summary/runningSummarizer.d.ts +11 -10
  148. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  149. package/dist/summary/runningSummarizer.js +114 -81
  150. package/dist/summary/runningSummarizer.js.map +1 -1
  151. package/dist/summary/summarizer.d.ts +4 -4
  152. package/dist/summary/summarizer.d.ts.map +1 -1
  153. package/dist/summary/summarizer.js +6 -6
  154. package/dist/summary/summarizer.js.map +1 -1
  155. package/dist/summary/summarizerClientElection.d.ts +2 -2
  156. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  157. package/dist/summary/summarizerClientElection.js.map +1 -1
  158. package/dist/summary/summarizerHeuristics.d.ts +3 -3
  159. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  160. package/dist/summary/summarizerHeuristics.js.map +1 -1
  161. package/dist/summary/summarizerNode/index.d.ts +3 -3
  162. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  163. package/dist/summary/summarizerNode/index.js +4 -4
  164. package/dist/summary/summarizerNode/index.js.map +1 -1
  165. package/dist/summary/summarizerNode/summarizerNode.d.ts +17 -7
  166. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  167. package/dist/summary/summarizerNode/summarizerNode.js +45 -57
  168. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  169. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +10 -19
  170. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  171. package/dist/summary/summarizerNode/summarizerNodeUtils.js +1 -21
  172. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  173. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +5 -6
  174. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  175. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +16 -16
  176. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  177. package/dist/summary/summarizerTypes.d.ts +10 -21
  178. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  179. package/dist/summary/summarizerTypes.js.map +1 -1
  180. package/dist/summary/summaryFormat.d.ts +15 -2
  181. package/dist/summary/summaryFormat.d.ts.map +1 -1
  182. package/dist/summary/summaryFormat.js.map +1 -1
  183. package/dist/summary/summaryGenerator.d.ts +6 -5
  184. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  185. package/dist/summary/summaryGenerator.js +10 -1
  186. package/dist/summary/summaryGenerator.js.map +1 -1
  187. package/dist/summary/summaryManager.d.ts +5 -6
  188. package/dist/summary/summaryManager.d.ts.map +1 -1
  189. package/dist/summary/summaryManager.js +4 -5
  190. package/dist/summary/summaryManager.js.map +1 -1
  191. package/dist/tsdoc-metadata.json +1 -1
  192. package/lib/{batchTracker.d.mts → batchTracker.d.ts} +2 -3
  193. package/lib/batchTracker.d.ts.map +1 -0
  194. package/lib/{batchTracker.mjs → batchTracker.js} +1 -1
  195. package/lib/batchTracker.js.map +1 -0
  196. package/lib/{blobManager.d.mts → blobManager.d.ts} +1 -6
  197. package/lib/blobManager.d.ts.map +1 -0
  198. package/lib/{blobManager.mjs → blobManager.js} +1 -13
  199. package/lib/blobManager.js.map +1 -0
  200. package/lib/channelCollection.d.ts +225 -0
  201. package/lib/channelCollection.d.ts.map +1 -0
  202. package/lib/{dataStores.mjs → channelCollection.js} +436 -133
  203. package/lib/channelCollection.js.map +1 -0
  204. package/lib/{connectionTelemetry.d.mts → connectionTelemetry.d.ts} +12 -2
  205. package/lib/connectionTelemetry.d.ts.map +1 -0
  206. package/lib/{connectionTelemetry.mjs → connectionTelemetry.js} +43 -5
  207. package/lib/connectionTelemetry.js.map +1 -0
  208. package/lib/{container-runtime-alpha.d.mts → container-runtime-alpha.d.ts} +138 -49
  209. package/lib/{container-runtime-beta.d.mts → container-runtime-beta.d.ts} +75 -9
  210. package/lib/{container-runtime-public.d.mts → container-runtime-public.d.ts} +75 -9
  211. package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +717 -49
  212. package/lib/{containerHandleContext.d.mts → containerHandleContext.d.ts} +2 -2
  213. package/lib/containerHandleContext.d.ts.map +1 -0
  214. package/lib/{containerHandleContext.mjs → containerHandleContext.js} +1 -1
  215. package/lib/containerHandleContext.js.map +1 -0
  216. package/lib/{containerRuntime.d.mts → containerRuntime.d.ts} +89 -65
  217. package/lib/containerRuntime.d.ts.map +1 -0
  218. package/lib/{containerRuntime.mjs → containerRuntime.js} +469 -348
  219. package/lib/containerRuntime.js.map +1 -0
  220. package/lib/{dataStore.d.mts → dataStore.d.ts} +3 -4
  221. package/lib/dataStore.d.ts.map +1 -0
  222. package/lib/{dataStore.mjs → dataStore.js} +13 -12
  223. package/lib/dataStore.js.map +1 -0
  224. package/lib/{dataStoreContext.d.mts → dataStoreContext.d.ts} +119 -39
  225. package/lib/dataStoreContext.d.ts.map +1 -0
  226. package/lib/{dataStoreContext.mjs → dataStoreContext.js} +241 -153
  227. package/lib/dataStoreContext.js.map +1 -0
  228. package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +3 -2
  229. package/lib/dataStoreContexts.d.ts.map +1 -0
  230. package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +2 -1
  231. package/lib/dataStoreContexts.js.map +1 -0
  232. package/lib/{dataStoreRegistry.d.mts → dataStoreRegistry.d.ts} +1 -1
  233. package/lib/dataStoreRegistry.d.ts.map +1 -0
  234. package/lib/{dataStoreRegistry.mjs → dataStoreRegistry.js} +5 -1
  235. package/lib/dataStoreRegistry.js.map +1 -0
  236. package/{dist/deltaManagerProxyBase.d.ts → lib/deltaManagerSummarizerProxy.d.ts} +16 -7
  237. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
  238. package/lib/deltaManagerSummarizerProxy.js +124 -0
  239. package/lib/deltaManagerSummarizerProxy.js.map +1 -0
  240. package/lib/{deltaScheduler.d.mts → deltaScheduler.d.ts} +1 -1
  241. package/lib/deltaScheduler.d.ts.map +1 -0
  242. package/lib/{deltaScheduler.mjs → deltaScheduler.js} +1 -1
  243. package/lib/deltaScheduler.js.map +1 -0
  244. package/lib/{error.d.mts → error.d.ts} +1 -1
  245. package/lib/error.d.ts.map +1 -0
  246. package/lib/{error.mjs → error.js} +1 -1
  247. package/lib/error.js.map +1 -0
  248. package/lib/gc/{garbageCollection.d.mts → garbageCollection.d.ts} +30 -8
  249. package/lib/gc/garbageCollection.d.ts.map +1 -0
  250. package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +149 -68
  251. package/lib/gc/garbageCollection.js.map +1 -0
  252. package/lib/gc/{gcConfigs.d.mts → gcConfigs.d.ts} +3 -3
  253. package/lib/gc/gcConfigs.d.ts.map +1 -0
  254. package/lib/gc/{gcConfigs.mjs → gcConfigs.js} +14 -7
  255. package/lib/gc/gcConfigs.js.map +1 -0
  256. package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +41 -16
  257. package/lib/gc/gcDefinitions.d.ts.map +1 -0
  258. package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +11 -4
  259. package/lib/gc/gcDefinitions.js.map +1 -0
  260. package/lib/gc/{gcHelpers.d.mts → gcHelpers.d.ts} +3 -3
  261. package/lib/gc/{gcHelpers.d.mts.map → gcHelpers.d.ts.map} +1 -1
  262. package/lib/gc/{gcHelpers.mjs → gcHelpers.js} +1 -1
  263. package/lib/gc/gcHelpers.js.map +1 -0
  264. package/lib/gc/{gcReferenceGraphAlgorithm.d.mts → gcReferenceGraphAlgorithm.d.ts} +2 -2
  265. package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  266. package/lib/gc/{gcReferenceGraphAlgorithm.mjs → gcReferenceGraphAlgorithm.js} +1 -1
  267. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
  268. package/lib/gc/{gcSummaryDefinitions.d.mts → gcSummaryDefinitions.d.ts} +1 -1
  269. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
  270. package/lib/gc/{gcSummaryDefinitions.mjs → gcSummaryDefinitions.js} +1 -1
  271. package/lib/gc/gcSummaryDefinitions.js.map +1 -0
  272. package/lib/gc/{gcSummaryStateTracker.d.mts → gcSummaryStateTracker.d.ts} +13 -6
  273. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
  274. package/lib/gc/{gcSummaryStateTracker.mjs → gcSummaryStateTracker.js} +17 -5
  275. package/lib/gc/gcSummaryStateTracker.js.map +1 -0
  276. package/lib/gc/{gcTelemetry.d.mts → gcTelemetry.d.ts} +8 -8
  277. package/lib/gc/gcTelemetry.d.ts.map +1 -0
  278. package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +5 -5
  279. package/lib/gc/gcTelemetry.js.map +1 -0
  280. package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +7 -2
  281. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  282. package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +12 -2
  283. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
  284. package/lib/gc/index.d.ts +13 -0
  285. package/lib/gc/index.d.ts.map +1 -0
  286. package/lib/gc/{index.mjs → index.js} +8 -8
  287. package/lib/gc/index.js.map +1 -0
  288. package/lib/{index.d.mts → index.d.ts} +12 -21
  289. package/lib/index.d.ts.map +1 -0
  290. package/lib/index.js +15 -0
  291. package/lib/index.js.map +1 -0
  292. package/lib/{messageTypes.d.mts → messageTypes.d.ts} +5 -5
  293. package/lib/messageTypes.d.ts.map +1 -0
  294. package/lib/{messageTypes.mjs → messageTypes.js} +1 -1
  295. package/lib/messageTypes.js.map +1 -0
  296. package/lib/{metadata.d.mts → metadata.d.ts} +1 -1
  297. package/lib/metadata.d.ts.map +1 -0
  298. package/lib/{metadata.mjs → metadata.js} +1 -1
  299. package/lib/metadata.js.map +1 -0
  300. package/lib/opLifecycle/{batchManager.d.mts → batchManager.d.ts} +3 -3
  301. package/lib/opLifecycle/batchManager.d.ts.map +1 -0
  302. package/lib/opLifecycle/{batchManager.mjs → batchManager.js} +1 -1
  303. package/lib/opLifecycle/batchManager.js.map +1 -0
  304. package/lib/opLifecycle/{definitions.d.mts → definitions.d.ts} +3 -3
  305. package/lib/opLifecycle/definitions.d.ts.map +1 -0
  306. package/lib/opLifecycle/{definitions.mjs → definitions.js} +1 -1
  307. package/lib/opLifecycle/definitions.js.map +1 -0
  308. package/lib/opLifecycle/index.d.ts +13 -0
  309. package/lib/opLifecycle/index.d.ts.map +1 -0
  310. package/lib/opLifecycle/index.js +12 -0
  311. package/lib/opLifecycle/index.js.map +1 -0
  312. package/lib/opLifecycle/{opCompressor.d.mts → opCompressor.d.ts} +2 -2
  313. package/lib/opLifecycle/opCompressor.d.ts.map +1 -0
  314. package/lib/opLifecycle/{opCompressor.mjs → opCompressor.js} +3 -3
  315. package/lib/opLifecycle/opCompressor.js.map +1 -0
  316. package/lib/opLifecycle/{opDecompressor.d.mts → opDecompressor.d.ts} +2 -2
  317. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -0
  318. package/lib/opLifecycle/{opDecompressor.mjs → opDecompressor.js} +2 -2
  319. package/lib/opLifecycle/opDecompressor.js.map +1 -0
  320. package/lib/opLifecycle/{opGroupingManager.d.mts → opGroupingManager.d.ts} +2 -2
  321. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
  322. package/lib/opLifecycle/{opGroupingManager.mjs → opGroupingManager.js} +2 -11
  323. package/lib/opLifecycle/opGroupingManager.js.map +1 -0
  324. package/lib/opLifecycle/{opSplitter.d.mts → opSplitter.d.ts} +2 -2
  325. package/lib/opLifecycle/opSplitter.d.ts.map +1 -0
  326. package/lib/opLifecycle/{opSplitter.mjs → opSplitter.js} +3 -3
  327. package/lib/opLifecycle/opSplitter.js.map +1 -0
  328. package/lib/opLifecycle/{outbox.d.mts → outbox.d.ts} +8 -8
  329. package/lib/opLifecycle/outbox.d.ts.map +1 -0
  330. package/lib/opLifecycle/{outbox.mjs → outbox.js} +12 -4
  331. package/lib/opLifecycle/outbox.js.map +1 -0
  332. package/lib/opLifecycle/{remoteMessageProcessor.d.mts → remoteMessageProcessor.d.ts} +5 -5
  333. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  334. package/lib/opLifecycle/{remoteMessageProcessor.mjs → remoteMessageProcessor.js} +2 -2
  335. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -0
  336. package/lib/{opProperties.d.mts → opProperties.d.ts} +1 -1
  337. package/lib/opProperties.d.ts.map +1 -0
  338. package/lib/{opProperties.mjs → opProperties.js} +1 -1
  339. package/lib/opProperties.js.map +1 -0
  340. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  341. package/lib/packageVersion.d.ts.map +1 -0
  342. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  343. package/lib/packageVersion.js.map +1 -0
  344. package/lib/{pendingStateManager.d.mts → pendingStateManager.d.ts} +3 -2
  345. package/lib/pendingStateManager.d.ts.map +1 -0
  346. package/lib/{pendingStateManager.mjs → pendingStateManager.js} +18 -10
  347. package/lib/pendingStateManager.js.map +1 -0
  348. package/lib/{scheduleManager.d.mts → scheduleManager.d.ts} +6 -3
  349. package/lib/scheduleManager.d.ts.map +1 -0
  350. package/lib/{scheduleManager.mjs → scheduleManager.js} +3 -3
  351. package/lib/scheduleManager.js.map +1 -0
  352. package/lib/{storageServiceWithAttachBlobs.d.mts → storageServiceWithAttachBlobs.d.ts} +1 -1
  353. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
  354. package/lib/{storageServiceWithAttachBlobs.mjs → storageServiceWithAttachBlobs.js} +1 -1
  355. package/lib/storageServiceWithAttachBlobs.js.map +1 -0
  356. package/lib/summary/{index.d.mts → index.d.ts} +13 -13
  357. package/lib/summary/index.d.ts.map +1 -0
  358. package/lib/summary/{index.mjs → index.js} +12 -12
  359. package/lib/summary/index.js.map +1 -0
  360. package/lib/summary/{orderedClientElection.d.mts → orderedClientElection.d.ts} +5 -1
  361. package/lib/summary/orderedClientElection.d.ts.map +1 -0
  362. package/lib/summary/{orderedClientElection.mjs → orderedClientElection.js} +2 -2
  363. package/lib/summary/orderedClientElection.js.map +1 -0
  364. package/lib/summary/{runWhileConnectedCoordinator.d.mts → runWhileConnectedCoordinator.d.ts} +2 -2
  365. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  366. package/lib/summary/{runWhileConnectedCoordinator.mjs → runWhileConnectedCoordinator.js} +1 -1
  367. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
  368. package/lib/summary/{runningSummarizer.d.mts → runningSummarizer.d.ts} +12 -11
  369. package/lib/summary/runningSummarizer.d.ts.map +1 -0
  370. package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +108 -75
  371. package/lib/summary/runningSummarizer.js.map +1 -0
  372. package/lib/summary/{summarizer.d.mts → summarizer.d.ts} +5 -5
  373. package/lib/summary/summarizer.d.ts.map +1 -0
  374. package/lib/summary/{summarizer.mjs → summarizer.js} +4 -4
  375. package/lib/summary/summarizer.js.map +1 -0
  376. package/lib/summary/{summarizerClientElection.d.mts → summarizerClientElection.d.ts} +3 -3
  377. package/lib/summary/summarizerClientElection.d.ts.map +1 -0
  378. package/lib/summary/{summarizerClientElection.mjs → summarizerClientElection.js} +1 -1
  379. package/lib/summary/summarizerClientElection.js.map +1 -0
  380. package/lib/summary/{summarizerHeuristics.d.mts → summarizerHeuristics.d.ts} +4 -4
  381. package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
  382. package/lib/summary/{summarizerHeuristics.mjs → summarizerHeuristics.js} +1 -1
  383. package/lib/summary/summarizerHeuristics.js.map +1 -0
  384. package/lib/summary/summarizerNode/{index.d.mts → index.d.ts} +4 -4
  385. package/lib/summary/summarizerNode/index.d.ts.map +1 -0
  386. package/lib/summary/summarizerNode/index.js +7 -0
  387. package/lib/summary/summarizerNode/index.js.map +1 -0
  388. package/lib/summary/summarizerNode/{summarizerNode.d.mts → summarizerNode.d.ts} +18 -8
  389. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  390. package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +41 -53
  391. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
  392. package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +11 -20
  393. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  394. package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -20
  395. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
  396. package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +6 -7
  397. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  398. package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +12 -12
  399. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
  400. package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +11 -22
  401. package/lib/summary/summarizerTypes.d.ts.map +1 -0
  402. package/lib/summary/{summarizerTypes.mjs → summarizerTypes.js} +1 -1
  403. package/lib/summary/summarizerTypes.js.map +1 -0
  404. package/lib/summary/{summaryCollection.d.mts → summaryCollection.d.ts} +1 -1
  405. package/lib/summary/summaryCollection.d.ts.map +1 -0
  406. package/lib/summary/{summaryCollection.mjs → summaryCollection.js} +1 -1
  407. package/lib/summary/summaryCollection.js.map +1 -0
  408. package/lib/summary/{summaryFormat.d.mts → summaryFormat.d.ts} +16 -3
  409. package/lib/summary/summaryFormat.d.ts.map +1 -0
  410. package/lib/summary/{summaryFormat.mjs → summaryFormat.js} +1 -1
  411. package/lib/summary/summaryFormat.js.map +1 -0
  412. package/lib/summary/{summaryGenerator.d.mts → summaryGenerator.d.ts} +7 -6
  413. package/lib/summary/summaryGenerator.d.ts.map +1 -0
  414. package/lib/summary/{summaryGenerator.mjs → summaryGenerator.js} +11 -2
  415. package/lib/summary/summaryGenerator.js.map +1 -0
  416. package/lib/summary/{summaryManager.d.mts → summaryManager.d.ts} +6 -7
  417. package/lib/summary/summaryManager.d.ts.map +1 -0
  418. package/lib/summary/{summaryManager.mjs → summaryManager.js} +4 -5
  419. package/lib/summary/summaryManager.js.map +1 -0
  420. package/lib/test/batchTracker.spec.js +88 -0
  421. package/lib/test/batchTracker.spec.js.map +1 -0
  422. package/lib/test/blobManager.spec.js +835 -0
  423. package/lib/test/blobManager.spec.js.map +1 -0
  424. package/lib/test/channelCollection.spec.js +138 -0
  425. package/lib/test/channelCollection.spec.js.map +1 -0
  426. package/lib/test/containerRuntime.spec.js +1748 -0
  427. package/lib/test/containerRuntime.spec.js.map +1 -0
  428. package/lib/test/dataStoreContext.spec.js +771 -0
  429. package/lib/test/dataStoreContext.spec.js.map +1 -0
  430. package/lib/test/dataStoreCreation.spec.js +303 -0
  431. package/lib/test/dataStoreCreation.spec.js.map +1 -0
  432. package/lib/test/dataStoreRegistry.spec.js +26 -0
  433. package/lib/test/dataStoreRegistry.spec.js.map +1 -0
  434. package/lib/test/fuzz/fuzzUtils.js +66 -0
  435. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  436. package/lib/test/fuzz/summarizer.fuzz.spec.js +31 -0
  437. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +1 -0
  438. package/lib/test/fuzz/summarizerFuzzMocks.js +162 -0
  439. package/lib/test/fuzz/summarizerFuzzMocks.js.map +1 -0
  440. package/lib/test/fuzz/summarizerFuzzSuite.js +106 -0
  441. package/lib/test/fuzz/summarizerFuzzSuite.js.map +1 -0
  442. package/lib/test/gc/garbageCollection.spec.js +1464 -0
  443. package/lib/test/gc/garbageCollection.spec.js.map +1 -0
  444. package/lib/test/gc/gcConfigs.spec.js +689 -0
  445. package/lib/test/gc/gcConfigs.spec.js.map +1 -0
  446. package/lib/test/gc/gcHelpers.spec.js +110 -0
  447. package/lib/test/gc/gcHelpers.spec.js.map +1 -0
  448. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +68 -0
  449. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +1 -0
  450. package/lib/test/gc/gcStats.spec.js +390 -0
  451. package/lib/test/gc/gcStats.spec.js.map +1 -0
  452. package/lib/test/gc/gcSummaryStateTracker.spec.js +228 -0
  453. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +1 -0
  454. package/lib/test/gc/gcTelemetry.spec.js +530 -0
  455. package/lib/test/gc/gcTelemetry.spec.js.map +1 -0
  456. package/lib/test/gc/gcUnitTestHelpers.js +29 -0
  457. package/lib/test/gc/gcUnitTestHelpers.js.map +1 -0
  458. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +192 -0
  459. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +1 -0
  460. package/lib/test/getPendingBlobs.spec.js +193 -0
  461. package/lib/test/getPendingBlobs.spec.js.map +1 -0
  462. package/lib/test/hardwareStats.spec.js +93 -0
  463. package/lib/test/hardwareStats.spec.js.map +1 -0
  464. package/lib/test/index.js +6 -0
  465. package/lib/test/index.js.map +1 -0
  466. package/lib/test/opLifecycle/OpGroupingManager.spec.js +225 -0
  467. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +1 -0
  468. package/lib/test/opLifecycle/batchManager.spec.js +189 -0
  469. package/lib/test/opLifecycle/batchManager.spec.js.map +1 -0
  470. package/lib/test/opLifecycle/opCompressor.spec.js +74 -0
  471. package/lib/test/opLifecycle/opCompressor.spec.js.map +1 -0
  472. package/lib/test/opLifecycle/opDecompressor.spec.js +218 -0
  473. package/lib/test/opLifecycle/opDecompressor.spec.js.map +1 -0
  474. package/lib/test/opLifecycle/opSplitter.spec.js +272 -0
  475. package/lib/test/opLifecycle/opSplitter.spec.js.map +1 -0
  476. package/lib/test/opLifecycle/outbox.spec.js +675 -0
  477. package/lib/test/opLifecycle/outbox.spec.js.map +1 -0
  478. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +196 -0
  479. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +1 -0
  480. package/lib/test/pendingStateManager.spec.js +329 -0
  481. package/lib/test/pendingStateManager.spec.js.map +1 -0
  482. package/lib/test/scheduleManager.spec.js +270 -0
  483. package/lib/test/scheduleManager.spec.js.map +1 -0
  484. package/lib/test/summarizerNode.spec.js +326 -0
  485. package/lib/test/summarizerNode.spec.js.map +1 -0
  486. package/lib/test/summarizerNodeWithGc.spec.js +318 -0
  487. package/lib/test/summarizerNodeWithGc.spec.js.map +1 -0
  488. package/lib/test/summary/orderedClientElection.spec.js +535 -0
  489. package/lib/test/summary/orderedClientElection.spec.js.map +1 -0
  490. package/lib/test/summary/runningSummarizer.spec.js +1349 -0
  491. package/lib/test/summary/runningSummarizer.spec.js.map +1 -0
  492. package/lib/test/summary/summarizer.spec.js +29 -0
  493. package/lib/test/summary/summarizer.spec.js.map +1 -0
  494. package/lib/test/summary/summarizerClientElection.spec.js +436 -0
  495. package/lib/test/summary/summarizerClientElection.spec.js.map +1 -0
  496. package/lib/test/summary/summarizerHeuristics.spec.js +289 -0
  497. package/lib/test/summary/summarizerHeuristics.spec.js.map +1 -0
  498. package/lib/test/summary/summaryCollection.spec.js +200 -0
  499. package/lib/test/summary/summaryCollection.spec.js.map +1 -0
  500. package/lib/test/summary/summaryManager.spec.js +430 -0
  501. package/lib/test/summary/summaryManager.spec.js.map +1 -0
  502. package/lib/test/summary/testQuorumClients.js +34 -0
  503. package/lib/test/summary/testQuorumClients.js.map +1 -0
  504. package/lib/test/throttler.spec.js +175 -0
  505. package/lib/test/throttler.spec.js.map +1 -0
  506. package/lib/test/types/validateContainerRuntimePrevious.generated.js +180 -0
  507. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +1 -0
  508. package/lib/{throttler.d.mts → throttler.d.ts} +1 -1
  509. package/lib/throttler.d.ts.map +1 -0
  510. package/lib/{throttler.mjs → throttler.js} +1 -1
  511. package/lib/throttler.js.map +1 -0
  512. package/package.json +106 -87
  513. package/src/batchTracker.ts +1 -1
  514. package/src/blobManager.ts +1 -15
  515. package/src/{dataStores.ts → channelCollection.ts} +622 -170
  516. package/src/connectionTelemetry.ts +42 -3
  517. package/src/containerHandleContext.ts +1 -1
  518. package/src/containerRuntime.ts +683 -483
  519. package/src/dataStore.ts +16 -15
  520. package/src/dataStoreContext.ts +378 -216
  521. package/src/dataStoreContexts.ts +2 -1
  522. package/src/deltaManagerSummarizerProxy.ts +132 -7
  523. package/src/gc/garbageCollection.ts +167 -71
  524. package/src/gc/gcConfigs.ts +17 -7
  525. package/src/gc/gcDefinitions.ts +42 -16
  526. package/src/gc/gcHelpers.ts +2 -2
  527. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  528. package/src/gc/gcSummaryStateTracker.ts +19 -7
  529. package/src/gc/gcTelemetry.ts +10 -9
  530. package/src/gc/gcUnreferencedStateTracker.ts +12 -1
  531. package/src/gc/index.ts +11 -9
  532. package/src/index.ts +29 -26
  533. package/src/messageTypes.ts +4 -4
  534. package/src/opLifecycle/README.md +2 -4
  535. package/src/opLifecycle/batchManager.ts +2 -2
  536. package/src/opLifecycle/definitions.ts +2 -2
  537. package/src/opLifecycle/index.ts +8 -8
  538. package/src/opLifecycle/opCompressor.ts +3 -3
  539. package/src/opLifecycle/opDecompressor.ts +3 -3
  540. package/src/opLifecycle/opGroupingManager.ts +3 -12
  541. package/src/opLifecycle/opSplitter.ts +3 -3
  542. package/src/opLifecycle/outbox.ts +29 -9
  543. package/src/opLifecycle/remoteMessageProcessor.ts +4 -4
  544. package/src/packageVersion.ts +1 -1
  545. package/src/pendingStateManager.ts +19 -13
  546. package/src/scheduleManager.ts +4 -4
  547. package/src/summary/index.ts +13 -12
  548. package/src/summary/orderedClientElection.ts +1 -1
  549. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  550. package/src/summary/runningSummarizer.ts +141 -93
  551. package/src/summary/summarizer.ts +7 -7
  552. package/src/summary/summarizerClientElection.ts +2 -2
  553. package/src/summary/summarizerHeuristics.ts +3 -3
  554. package/src/summary/summarizerNode/index.ts +6 -3
  555. package/src/summary/summarizerNode/summarizerNode.ts +54 -69
  556. package/src/summary/summarizerNode/summarizerNodeUtils.ts +16 -34
  557. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -17
  558. package/src/summary/summarizerTypes.ts +12 -24
  559. package/src/summary/summaryFormat.ts +16 -2
  560. package/src/summary/summaryGenerator.ts +16 -4
  561. package/src/summary/summaryManager.ts +6 -7
  562. package/tsconfig.cjs.json +7 -0
  563. package/tsconfig.json +2 -5
  564. package/dist/dataStores.d.ts +0 -149
  565. package/dist/dataStores.d.ts.map +0 -1
  566. package/dist/dataStores.js.map +0 -1
  567. package/dist/deltaManagerProxyBase.d.ts.map +0 -1
  568. package/dist/deltaManagerProxyBase.js +0 -77
  569. package/dist/deltaManagerProxyBase.js.map +0 -1
  570. package/lib/batchTracker.d.mts.map +0 -1
  571. package/lib/batchTracker.mjs.map +0 -1
  572. package/lib/blobManager.d.mts.map +0 -1
  573. package/lib/blobManager.mjs.map +0 -1
  574. package/lib/connectionTelemetry.d.mts.map +0 -1
  575. package/lib/connectionTelemetry.mjs.map +0 -1
  576. package/lib/containerHandleContext.d.mts.map +0 -1
  577. package/lib/containerHandleContext.mjs.map +0 -1
  578. package/lib/containerRuntime.d.mts.map +0 -1
  579. package/lib/containerRuntime.mjs.map +0 -1
  580. package/lib/dataStore.d.mts.map +0 -1
  581. package/lib/dataStore.mjs.map +0 -1
  582. package/lib/dataStoreContext.d.mts.map +0 -1
  583. package/lib/dataStoreContext.mjs.map +0 -1
  584. package/lib/dataStoreContexts.d.mts.map +0 -1
  585. package/lib/dataStoreContexts.mjs.map +0 -1
  586. package/lib/dataStoreRegistry.d.mts.map +0 -1
  587. package/lib/dataStoreRegistry.mjs.map +0 -1
  588. package/lib/dataStores.d.mts +0 -149
  589. package/lib/dataStores.d.mts.map +0 -1
  590. package/lib/dataStores.mjs.map +0 -1
  591. package/lib/deltaManagerProxyBase.d.mts +0 -35
  592. package/lib/deltaManagerProxyBase.d.mts.map +0 -1
  593. package/lib/deltaManagerProxyBase.mjs +0 -73
  594. package/lib/deltaManagerProxyBase.mjs.map +0 -1
  595. package/lib/deltaManagerSummarizerProxy.d.mts +0 -19
  596. package/lib/deltaManagerSummarizerProxy.d.mts.map +0 -1
  597. package/lib/deltaManagerSummarizerProxy.mjs +0 -38
  598. package/lib/deltaManagerSummarizerProxy.mjs.map +0 -1
  599. package/lib/deltaScheduler.d.mts.map +0 -1
  600. package/lib/deltaScheduler.mjs.map +0 -1
  601. package/lib/error.d.mts.map +0 -1
  602. package/lib/error.mjs.map +0 -1
  603. package/lib/gc/garbageCollection.d.mts.map +0 -1
  604. package/lib/gc/garbageCollection.mjs.map +0 -1
  605. package/lib/gc/gcConfigs.d.mts.map +0 -1
  606. package/lib/gc/gcConfigs.mjs.map +0 -1
  607. package/lib/gc/gcDefinitions.d.mts.map +0 -1
  608. package/lib/gc/gcDefinitions.mjs.map +0 -1
  609. package/lib/gc/gcHelpers.mjs.map +0 -1
  610. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +0 -1
  611. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +0 -1
  612. package/lib/gc/gcSummaryDefinitions.d.mts.map +0 -1
  613. package/lib/gc/gcSummaryDefinitions.mjs.map +0 -1
  614. package/lib/gc/gcSummaryStateTracker.d.mts.map +0 -1
  615. package/lib/gc/gcSummaryStateTracker.mjs.map +0 -1
  616. package/lib/gc/gcTelemetry.d.mts.map +0 -1
  617. package/lib/gc/gcTelemetry.mjs.map +0 -1
  618. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +0 -1
  619. package/lib/gc/gcUnreferencedStateTracker.mjs.map +0 -1
  620. package/lib/gc/index.d.mts +0 -13
  621. package/lib/gc/index.d.mts.map +0 -1
  622. package/lib/gc/index.mjs.map +0 -1
  623. package/lib/index.d.mts.map +0 -1
  624. package/lib/index.mjs +0 -24
  625. package/lib/index.mjs.map +0 -1
  626. package/lib/messageTypes.d.mts.map +0 -1
  627. package/lib/messageTypes.mjs.map +0 -1
  628. package/lib/metadata.d.mts.map +0 -1
  629. package/lib/metadata.mjs.map +0 -1
  630. package/lib/opLifecycle/batchManager.d.mts.map +0 -1
  631. package/lib/opLifecycle/batchManager.mjs.map +0 -1
  632. package/lib/opLifecycle/definitions.d.mts.map +0 -1
  633. package/lib/opLifecycle/definitions.mjs.map +0 -1
  634. package/lib/opLifecycle/index.d.mts +0 -13
  635. package/lib/opLifecycle/index.d.mts.map +0 -1
  636. package/lib/opLifecycle/index.mjs +0 -12
  637. package/lib/opLifecycle/index.mjs.map +0 -1
  638. package/lib/opLifecycle/opCompressor.d.mts.map +0 -1
  639. package/lib/opLifecycle/opCompressor.mjs.map +0 -1
  640. package/lib/opLifecycle/opDecompressor.d.mts.map +0 -1
  641. package/lib/opLifecycle/opDecompressor.mjs.map +0 -1
  642. package/lib/opLifecycle/opGroupingManager.d.mts.map +0 -1
  643. package/lib/opLifecycle/opGroupingManager.mjs.map +0 -1
  644. package/lib/opLifecycle/opSplitter.d.mts.map +0 -1
  645. package/lib/opLifecycle/opSplitter.mjs.map +0 -1
  646. package/lib/opLifecycle/outbox.d.mts.map +0 -1
  647. package/lib/opLifecycle/outbox.mjs.map +0 -1
  648. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +0 -1
  649. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +0 -1
  650. package/lib/opProperties.d.mts.map +0 -1
  651. package/lib/opProperties.mjs.map +0 -1
  652. package/lib/packageVersion.d.mts.map +0 -1
  653. package/lib/packageVersion.mjs.map +0 -1
  654. package/lib/pendingStateManager.d.mts.map +0 -1
  655. package/lib/pendingStateManager.mjs.map +0 -1
  656. package/lib/scheduleManager.d.mts.map +0 -1
  657. package/lib/scheduleManager.mjs.map +0 -1
  658. package/lib/storageServiceWithAttachBlobs.d.mts.map +0 -1
  659. package/lib/storageServiceWithAttachBlobs.mjs.map +0 -1
  660. package/lib/summary/index.d.mts.map +0 -1
  661. package/lib/summary/index.mjs.map +0 -1
  662. package/lib/summary/orderedClientElection.d.mts.map +0 -1
  663. package/lib/summary/orderedClientElection.mjs.map +0 -1
  664. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +0 -1
  665. package/lib/summary/runWhileConnectedCoordinator.mjs.map +0 -1
  666. package/lib/summary/runningSummarizer.d.mts.map +0 -1
  667. package/lib/summary/runningSummarizer.mjs.map +0 -1
  668. package/lib/summary/summarizer.d.mts.map +0 -1
  669. package/lib/summary/summarizer.mjs.map +0 -1
  670. package/lib/summary/summarizerClientElection.d.mts.map +0 -1
  671. package/lib/summary/summarizerClientElection.mjs.map +0 -1
  672. package/lib/summary/summarizerHeuristics.d.mts.map +0 -1
  673. package/lib/summary/summarizerHeuristics.mjs.map +0 -1
  674. package/lib/summary/summarizerNode/index.d.mts.map +0 -1
  675. package/lib/summary/summarizerNode/index.mjs +0 -7
  676. package/lib/summary/summarizerNode/index.mjs.map +0 -1
  677. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +0 -1
  678. package/lib/summary/summarizerNode/summarizerNode.mjs.map +0 -1
  679. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +0 -1
  680. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +0 -1
  681. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +0 -1
  682. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +0 -1
  683. package/lib/summary/summarizerTypes.d.mts.map +0 -1
  684. package/lib/summary/summarizerTypes.mjs.map +0 -1
  685. package/lib/summary/summaryCollection.d.mts.map +0 -1
  686. package/lib/summary/summaryCollection.mjs.map +0 -1
  687. package/lib/summary/summaryFormat.d.mts.map +0 -1
  688. package/lib/summary/summaryFormat.mjs.map +0 -1
  689. package/lib/summary/summaryGenerator.d.mts.map +0 -1
  690. package/lib/summary/summaryGenerator.mjs.map +0 -1
  691. package/lib/summary/summaryManager.d.mts.map +0 -1
  692. package/lib/summary/summaryManager.mjs.map +0 -1
  693. package/lib/throttler.d.mts.map +0 -1
  694. package/lib/throttler.mjs.map +0 -1
  695. package/src/deltaManagerProxyBase.ts +0 -111
@@ -8,7 +8,7 @@ import {
8
8
  UsageError,
9
9
  validatePrecondition,
10
10
  } from "@fluidframework/telemetry-utils";
11
- import { IContainerRuntimeMetadata } from "../summary";
11
+ import { IContainerRuntimeMetadata } from "../summary/index.js";
12
12
  import {
13
13
  nextGCVersion,
14
14
  defaultInactiveTimeoutMs,
@@ -32,8 +32,10 @@ import {
32
32
  defaultSweepGracePeriodMs,
33
33
  gcGenerationOptionName,
34
34
  IGCMetadata_Deprecated,
35
- } from "./gcDefinitions";
36
- import { getGCVersion, shouldAllowGcSweep } from "./gcHelpers";
35
+ disableDatastoreSweepKey,
36
+ gcDisableDataStoreSweepOptionName,
37
+ } from "./gcDefinitions.js";
38
+ import { getGCVersion, shouldAllowGcSweep } from "./gcHelpers.js";
37
39
 
38
40
  /**
39
41
  * Generates configurations for the Garbage Collector that it uses to determine what to run and how.
@@ -137,18 +139,26 @@ export function generateGCConfigs(
137
139
  * Whether sweep should run or not. This refers to whether Tombstones should fail on load and whether
138
140
  * sweep-ready nodes should be deleted.
139
141
  *
140
- * Assuming overall GC is enabled and Tombstone timeout is present, the following conditions have to be met to run sweep:
142
+ * Assuming overall GC is enabled and tombstoneTimeout is provided, the following conditions have to be met to run sweep:
141
143
  *
142
- * 1. Sweep should be enabled for this container.
143
- * 2. Sweep should be enabled for this session.
144
+ * 1. Sweep should be allowed in this container.
145
+ * 2. Sweep should be enabled for this session, optionally restricted to attachment blobs only.
144
146
  *
145
147
  * These conditions can be overridden via the RunSweep feature flag.
146
148
  */
147
- const shouldRunSweep =
149
+ const sweepEnabled: boolean =
148
150
  !shouldRunGC || tombstoneTimeoutMs === undefined
149
151
  ? false
150
152
  : mc.config.getBoolean(runSweepKey) ??
151
153
  (sweepAllowed && createParams.gcOptions.enableGCSweep === true);
154
+ const disableDatastoreSweep =
155
+ mc.config.getBoolean(disableDatastoreSweepKey) === true ||
156
+ createParams.gcOptions[gcDisableDataStoreSweepOptionName] === true;
157
+ const shouldRunSweep: IGarbageCollectorConfigs["shouldRunSweep"] = sweepEnabled
158
+ ? disableDatastoreSweep
159
+ ? "ONLY_BLOBS"
160
+ : "YES"
161
+ : "NO";
152
162
 
153
163
  // Override inactive timeout if test config or gc options to override it is set.
154
164
  const inactiveTimeoutMs =
@@ -18,9 +18,9 @@ import {
18
18
  IContainerRuntimeMetadata,
19
19
  ICreateContainerMetadata,
20
20
  IRefreshSummaryResult,
21
- } from "../summary";
22
- import { RuntimeHeaderData } from "../containerRuntime";
23
- import { ContainerRuntimeGCMessage } from "../messageTypes";
21
+ } from "../summary/index.js";
22
+ import { RuntimeHeaderData } from "../containerRuntime.js";
23
+ import { ContainerRuntimeGCMessage } from "../messageTypes.js";
24
24
 
25
25
  /**
26
26
  * @alpha
@@ -40,6 +40,12 @@ export const nextGCVersion: GCVersion = 4;
40
40
  */
41
41
  export const gcDisableThrowOnTombstoneLoadOptionName = "gcDisableThrowOnTombstoneLoad";
42
42
 
43
+ /**
44
+ * This undocumented GC Option (on ContainerRuntime Options) allows an app to enable Sweep for blobs only.
45
+ * Only applies if enableGCSweep option is set to true.
46
+ */
47
+ export const gcDisableDataStoreSweepOptionName = "disableDataStoreSweep";
48
+
43
49
  /**
44
50
  * This undocumented GC Option (on ContainerRuntime Options) allows configuring which documents can have Sweep enabled.
45
51
  * This provides a way to disable both Tombstone Enforcement and Sweep.
@@ -70,12 +76,12 @@ export const throwOnTombstoneLoadOverrideKey =
70
76
  export const throwOnTombstoneUsageKey = "Fluid.GarbageCollection.ThrowOnTombstoneUsage";
71
77
  /** Config key to enable GC version upgrade. */
72
78
  export const gcVersionUpgradeToV4Key = "Fluid.GarbageCollection.GCVersionUpgradeToV4";
73
- /** Config key to disable GC sweep for datastores. */
79
+ /** Config key to disable GC sweep for datastores. They'll merely be Tombstoned. */
74
80
  export const disableDatastoreSweepKey = "Fluid.GarbageCollection.DisableDataStoreSweep";
75
- /** Config key to disable GC sweep for attachment blobs. */
76
- export const disableAttachmentBlobSweepKey = "Fluid.GarbageCollection.DisableAttachmentBlobSweep";
77
81
  /** Config key to revert new paradigm of detecting outbound routes in ContainerRuntime layer (use true) */
78
82
  export const detectOutboundRoutesViaDDSKey = "Fluid.GarbageCollection.DetectOutboundRoutesViaDDS";
83
+ /** Config key to disable auto-recovery mechanism that protects Tombstones that are loaded from being swept (use true) */
84
+ export const disableAutoRecoveryKey = "Fluid.GarbageCollection.DisableAutoRecovery";
79
85
 
80
86
  // One day in milliseconds.
81
87
  export const oneDayMs = 1 * 24 * 60 * 60 * 1000;
@@ -253,6 +259,8 @@ export type GCNodeType = (typeof GCNodeType)[keyof typeof GCNodeType];
253
259
  export const GarbageCollectionMessageType = {
254
260
  /** Message sent directing GC to delete the given nodes */
255
261
  Sweep: "Sweep",
262
+ /** Message sent notifying GC that a Tombstoned object was Loaded */
263
+ TombstoneLoaded: "TombstoneLoaded",
256
264
  } as const;
257
265
 
258
266
  /**
@@ -266,16 +274,28 @@ export type GarbageCollectionMessageType =
266
274
  * @internal
267
275
  */
268
276
  export interface ISweepMessage {
269
- type: "Sweep";
270
- // The ids of nodes that are deleted.
277
+ /** @see GarbageCollectionMessageType.Sweep */
278
+ type: typeof GarbageCollectionMessageType.Sweep;
279
+ /** The ids of nodes that are deleted. */
271
280
  deletedNodeIds: string[];
272
281
  }
273
282
 
283
+ /**
284
+ * The GC TombstoneLoaded message.
285
+ * @internal
286
+ */
287
+ export interface ITombstoneLoadedMessage {
288
+ /** @see GarbageCollectionMessageType.TombstoneLoaded */
289
+ type: typeof GarbageCollectionMessageType.TombstoneLoaded;
290
+ /** The id of Tombstoned node that was loaded. */
291
+ nodePath: string;
292
+ }
293
+
274
294
  /**
275
295
  * Type for a message to be used for sending / received garbage collection messages.
276
296
  * @internal
277
297
  */
278
- export type GarbageCollectionMessage = ISweepMessage;
298
+ export type GarbageCollectionMessage = ISweepMessage | ITombstoneLoadedMessage;
279
299
 
280
300
  /**
281
301
  * Defines the APIs for the runtime object to be passed to the garbage collector.
@@ -287,8 +307,6 @@ export interface IGarbageCollectionRuntime {
287
307
  getGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;
288
308
  /** After GC has run, called to notify the runtime of routes that are used in it. */
289
309
  updateUsedRoutes(usedRoutes: readonly string[]): void;
290
- /** After GC has run, called to notify the runtime of routes that are unused in it. */
291
- updateUnusedRoutes(unusedRoutes: readonly string[]): void;
292
310
  /**
293
311
  * After GC has run and identified nodes that are sweep ready, called to delete the sweep ready nodes. The runtime
294
312
  * should return the routes of nodes that were deleted.
@@ -307,6 +325,12 @@ export interface IGarbageCollectionRuntime {
307
325
 
308
326
  /** Defines the contract for the garbage collector. */
309
327
  export interface IGarbageCollector {
328
+ /**
329
+ * Tells the time at which session expiry timer started in a previous container.
330
+ * This is only set when loading from a stashed container and will be equal to the
331
+ * original container's local client time when it was loaded (and started the session expiry timer).
332
+ */
333
+ readonly sessionExpiryTimerStarted: number | undefined;
310
334
  /** Tells whether GC should run or not. */
311
335
  readonly shouldRunGC: boolean;
312
336
  /** Tells whether the GC state in summary needs to be reset in the next summary. */
@@ -355,7 +379,7 @@ export interface IGarbageCollector {
355
379
  headerData?: RuntimeHeaderData,
356
380
  ): void;
357
381
  /** Called when a reference is added to a node. Used to identify nodes that were referenced between summaries. */
358
- addedOutboundReference(fromNodePath: string, toNodePath: string): void;
382
+ addedOutboundReference(fromNodePath: string, toNodePath: string, autorecovery?: true): void;
359
383
  /** Called to process a garbage collection message. */
360
384
  processMessage(message: ContainerRuntimeGCMessage, local: boolean): void;
361
385
  /** Returns true if this node has been deleted by GC during sweep phase. */
@@ -378,6 +402,7 @@ export interface IGarbageCollectorCreateParams {
378
402
  readonly getLastSummaryTimestampMs: () => number | undefined;
379
403
  readonly readAndParseBlob: ReadAndParseBlob;
380
404
  readonly submitMessage: (message: ContainerRuntimeGCMessage) => void;
405
+ readonly sessionExpiryTimerStarted?: number | undefined;
381
406
  }
382
407
 
383
408
  /**
@@ -449,7 +474,7 @@ export interface IGarbageCollectorConfigs {
449
474
  */
450
475
  readonly gcEnabled: boolean;
451
476
  /**
452
- * Tracks if sweep phase is enabled for this document. This is specified during document creation and doesn't change
477
+ * Tracks if sweep phase is allowed for this document. This is specified during document creation and doesn't change
453
478
  * throughout its lifetime.
454
479
  */
455
480
  readonly sweepEnabled: boolean;
@@ -459,10 +484,11 @@ export interface IGarbageCollectorConfigs {
459
484
  */
460
485
  readonly shouldRunGC: boolean;
461
486
  /**
462
- * Tracks if sweep phase should run or not. Even if the sweep phase is enabled for a document (see sweepEnabled), it
463
- * can be explicitly disabled via feature flags. It also won't run if session expiry is not enabled.
487
+ * Tracks if sweep phase should run or not, or if it should run only for attachment blobs.
488
+ * Even if the sweep phase is allowed for a document (see sweepEnabled), it may be disabled or partially enabled
489
+ * for the session, depending on a variety of other configurations present.
464
490
  */
465
- readonly shouldRunSweep: boolean;
491
+ readonly shouldRunSweep: "YES" | "ONLY_BLOBS" | "NO";
466
492
  /**
467
493
  * If true, bypass optimizations and generate GC data for all nodes irrespective of whether a node changed or not.
468
494
  */
@@ -12,12 +12,12 @@ import {
12
12
  IGarbageCollectionData,
13
13
  IGarbageCollectionDetailsBase,
14
14
  } from "@fluidframework/runtime-definitions";
15
- import { GCFeatureMatrix, GCVersion, IGCMetadata } from "./gcDefinitions";
15
+ import { GCFeatureMatrix, GCVersion, IGCMetadata } from "./gcDefinitions.js";
16
16
  import {
17
17
  IGarbageCollectionNodeData,
18
18
  IGarbageCollectionSnapshotData,
19
19
  IGarbageCollectionState,
20
- } from "./gcSummaryDefinitions";
20
+ } from "./gcSummaryDefinitions.js";
21
21
 
22
22
  export function getGCVersion(metadata?: IGCMetadata): GCVersion {
23
23
  if (!metadata) {
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { IGCResult } from "./gcDefinitions";
6
+ import { IGCResult } from "./gcDefinitions.js";
7
7
 
8
8
  /**
9
9
  * Runs garbage collection on the given reference graph.
@@ -13,10 +13,10 @@ import {
13
13
  ISummaryTreeWithStats,
14
14
  } from "@fluidframework/runtime-definitions";
15
15
  import { mergeStats, SummaryTreeBuilder } from "@fluidframework/runtime-utils";
16
- import { IRefreshSummaryResult } from "../summary";
17
- import { GCVersion, IGarbageCollectorConfigs, IGCStats } from "./gcDefinitions";
18
- import { generateSortedGCState } from "./gcHelpers";
19
- import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions";
16
+ import { IRefreshSummaryResult } from "../summary/index.js";
17
+ import { GCVersion, IGarbageCollectorConfigs, IGCStats } from "./gcDefinitions.js";
18
+ import { generateSortedGCState } from "./gcHelpers.js";
19
+ import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions.js";
20
20
 
21
21
  export const gcStateBlobKey = `${gcBlobPrefix}_root`;
22
22
 
@@ -51,6 +51,18 @@ export class GCSummaryStateTracker {
51
51
  // to unreferenced or vice-versa.
52
52
  public updatedDSCountSinceLastSummary: number = 0;
53
53
 
54
+ /** API for ensuring the correct auto-recovery mitigations */
55
+ public autoRecovery = {
56
+ requestFullGCOnNextRun: () => {
57
+ this.fullGCModeForAutoRecovery = true;
58
+ },
59
+ fullGCRequested: () => {
60
+ return this.fullGCModeForAutoRecovery;
61
+ },
62
+ };
63
+ /** If true, the next GC run will do fullGC mode to regenerate the GC data for each node */
64
+ private fullGCModeForAutoRecovery: boolean = false;
65
+
54
66
  constructor(
55
67
  // Tells whether GC should run or not.
56
68
  private readonly configs: Pick<
@@ -133,7 +145,6 @@ export class GCSummaryStateTracker {
133
145
  * If none of the components changed, it returns a summary handle for the entire GC data.
134
146
  */
135
147
  public summarize(
136
- fullTree: boolean,
137
148
  trackState: boolean,
138
149
  gcState: IGarbageCollectionState,
139
150
  deletedNodes: Set<string>,
@@ -167,7 +178,7 @@ export class GCSummaryStateTracker {
167
178
  serializedDeletedNodes,
168
179
  };
169
180
 
170
- if (trackState && !fullTree && this.latestSummaryData !== undefined) {
181
+ if (trackState && this.latestSummaryData !== undefined) {
171
182
  // If nothing changed since last summary, send a summary handle for the entire GC data.
172
183
  if (
173
184
  this.latestSummaryData.serializedGCState === serializedGCState &&
@@ -267,7 +278,7 @@ export class GCSummaryStateTracker {
267
278
  }
268
279
 
269
280
  /**
270
- * Called to refresh the latest summary state. This happens when either a pending summary is acked.
281
+ * Called to refresh the latest summary state. This happens when a pending summary is acked.
271
282
  */
272
283
  public async refreshLatestSummary(result: IRefreshSummaryResult): Promise<void> {
273
284
  if (!result.isSummaryTracked) {
@@ -287,6 +298,7 @@ export class GCSummaryStateTracker {
287
298
  this.latestSummaryData = this.pendingSummaryData;
288
299
  this.pendingSummaryData = undefined;
289
300
  this.updatedDSCountSinceLastSummary = 0;
301
+ this.fullGCModeForAutoRecovery = false;
290
302
  return;
291
303
  }
292
304
 
@@ -3,16 +3,16 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryGenericEvent } from "@fluidframework/core-interfaces";
7
6
  import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
8
7
  import {
9
8
  generateStack,
10
9
  ITelemetryLoggerExt,
11
10
  MonitoringContext,
12
11
  tagCodeArtifacts,
12
+ type ITelemetryGenericEventExt,
13
13
  } from "@fluidframework/telemetry-utils";
14
- import { RuntimeHeaderData } from "../containerRuntime";
15
- import { ICreateContainerMetadata } from "../summary";
14
+ import { RuntimeHeaderData } from "../containerRuntime.js";
15
+ import { ICreateContainerMetadata } from "../summary/index.js";
16
16
  import {
17
17
  GCNodeType,
18
18
  UnreferencedState,
@@ -22,8 +22,8 @@ import {
22
22
  throwOnTombstoneLoadOverrideKey,
23
23
  runSweepKey,
24
24
  GCFeatureMatrix,
25
- } from "./gcDefinitions";
26
- import { UnreferencedStateTracker } from "./gcUnreferencedStateTracker";
25
+ } from "./gcDefinitions.js";
26
+ import { UnreferencedStateTracker } from "./gcUnreferencedStateTracker.js";
27
27
 
28
28
  type NodeUsageType = "Changed" | "Loaded" | "Revived";
29
29
 
@@ -63,6 +63,7 @@ interface INodeUsageProps extends ICommonProps {
63
63
  currentReferenceTimestampMs: number | undefined;
64
64
  packagePath: readonly string[] | undefined;
65
65
  fromId?: string;
66
+ autorecovery?: true;
66
67
  }
67
68
 
68
69
  /**
@@ -189,8 +190,6 @@ export class GCTelemetryTracker {
189
190
  };
190
191
 
191
192
  // If the node that is used is tombstoned, log a tombstone telemetry.
192
- // Note that this is done before checking if "nodeStateTracker" is undefined below because unreferenced
193
- // tracking may not have yet been enabled. That happens only after the client transitions to write mode.
194
193
  if (nodeUsageProps.isTombstoned) {
195
194
  this.logTombstoneUsageTelemetry(nodeUsageProps, unrefEventProps, nodeType, usageType);
196
195
  }
@@ -344,7 +343,9 @@ export class GCTelemetryTracker {
344
343
  }
345
344
 
346
345
  if (missingExplicitRoutes.length > 0) {
347
- logger.sendErrorEvent({
346
+ // Send as Generic not Error since there are known corner cases where this will fire.
347
+ // E.g. If an old client re-references a node via an attach op (that doesn't include GC Data)
348
+ logger.sendTelemetryEvent({
348
349
  eventName: "gcUnknownOutboundReferences",
349
350
  ...tagCodeArtifacts({
350
351
  id: nodeId,
@@ -412,7 +413,7 @@ export class GCTelemetryTracker {
412
413
  */
413
414
  export function sendGCUnexpectedUsageEvent(
414
415
  mc: MonitoringContext,
415
- event: ITelemetryGenericEvent & {
416
+ event: ITelemetryGenericEventExt & {
416
417
  category: "error" | "generic";
417
418
  gcTombstoneEnforcementAllowed: boolean | undefined;
418
419
  },
@@ -5,7 +5,7 @@
5
5
 
6
6
  import { assert, Timer } from "@fluidframework/core-utils";
7
7
  import { validatePrecondition } from "@fluidframework/telemetry-utils";
8
- import { UnreferencedState } from "./gcDefinitions";
8
+ import { UnreferencedState } from "./gcDefinitions.js";
9
9
 
10
10
  /** A wrapper around common-utils Timer that requires the timeout when calling start/restart */
11
11
  class TimerWithNoDefaultTimeout extends Timer {
@@ -25,6 +25,17 @@ class TimerWithNoDefaultTimeout extends Timer {
25
25
  }
26
26
  }
27
27
 
28
+ /** The collection of UnreferencedStateTrackers for all unreferenced nodes. Ensures stopTracking is called when deleting */
29
+ export class UnreferencedStateTrackerMap extends Map<string, UnreferencedStateTracker> {
30
+ /** Delete the given key, and stop tracking if that node was actually unreferenced */
31
+ delete(key: string): boolean {
32
+ // Stop tracking so as to clear out any running timers.
33
+ this.get(key)?.stopTracking();
34
+ // Delete the node as we don't need to track it any more.
35
+ return super.delete(key);
36
+ }
37
+ }
38
+
28
39
  /**
29
40
  * Helper class that tracks the state of an unreferenced node such as the time it was unreferenced and if it can
30
41
  * be tombstoned or deleted by the sweep phase.
package/src/gc/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- export { GarbageCollector } from "./garbageCollection";
6
+ export { GarbageCollector } from "./garbageCollection.js";
7
7
  export {
8
8
  nextGCVersion,
9
9
  defaultInactiveTimeoutMs,
@@ -11,6 +11,7 @@ export {
11
11
  defaultSessionExpiryDurationMs,
12
12
  GCNodeType,
13
13
  gcTestModeKey,
14
+ gcDisableDataStoreSweepOptionName,
14
15
  gcDisableThrowOnTombstoneLoadOptionName,
15
16
  gcGenerationOptionName,
16
17
  GCFeatureMatrix,
@@ -32,31 +33,32 @@ export {
32
33
  runSessionExpiryKey,
33
34
  runSweepKey,
34
35
  stableGCVersion,
35
- disableAttachmentBlobSweepKey,
36
+ disableAutoRecoveryKey,
36
37
  disableDatastoreSweepKey,
37
38
  detectOutboundRoutesViaDDSKey,
38
39
  UnreferencedState,
39
40
  throwOnTombstoneLoadOverrideKey,
40
41
  GarbageCollectionMessage,
42
+ GarbageCollectionMessageType,
41
43
  ISweepMessage,
42
- } from "./gcDefinitions";
44
+ } from "./gcDefinitions.js";
43
45
  export {
44
46
  cloneGCData,
45
47
  concatGarbageCollectionStates,
46
48
  trimLeadingAndTrailingSlashes,
47
49
  unpackChildNodesGCDetails,
48
- } from "./gcHelpers";
49
- export { runGarbageCollection } from "./gcReferenceGraphAlgorithm";
50
+ } from "./gcHelpers.js";
51
+ export { runGarbageCollection } from "./gcReferenceGraphAlgorithm.js";
50
52
  export {
51
53
  IGarbageCollectionNodeData,
52
54
  IGarbageCollectionSnapshotData,
53
55
  IGarbageCollectionState,
54
56
  IGarbageCollectionSummaryDetailsLegacy,
55
- } from "./gcSummaryDefinitions";
57
+ } from "./gcSummaryDefinitions.js";
56
58
  export {
57
59
  gcStateBlobKey,
58
60
  GCSummaryStateTracker,
59
61
  IGCSummaryTrackingData,
60
- } from "./gcSummaryStateTracker";
61
- export { GCTelemetryTracker, sendGCUnexpectedUsageEvent } from "./gcTelemetry";
62
- export { UnreferencedStateTracker } from "./gcUnreferencedStateTracker";
62
+ } from "./gcSummaryStateTracker.js";
63
+ export { GCTelemetryTracker, sendGCUnexpectedUsageEvent } from "./gcTelemetry.js";
64
+ export { UnreferencedStateTracker } from "./gcUnreferencedStateTracker.js";
package/src/index.ts CHANGED
@@ -14,25 +14,31 @@ export {
14
14
  RuntimeMessage,
15
15
  agentSchedulerId,
16
16
  ContainerRuntime,
17
- RuntimeHeaders,
18
- AllowTombstoneRequestHeaderKey,
19
- AllowInactiveRequestHeaderKey,
20
17
  TombstoneResponseHeaderKey,
21
18
  InactiveResponseHeaderKey,
22
19
  ISummaryConfiguration,
23
20
  DefaultSummaryConfiguration,
24
21
  ICompressionRuntimeOptions,
25
22
  CompressionAlgorithms,
26
- } from "./containerRuntime";
23
+ RuntimeHeaderData,
24
+ } from "./containerRuntime.js";
27
25
  export {
28
26
  ContainerMessageType,
29
27
  ContainerRuntimeMessage,
30
28
  IContainerRuntimeMessageCompatDetails,
31
29
  CompatModeBehavior,
32
30
  RecentlyAddedContainerRuntimeMessageDetails,
33
- } from "./messageTypes";
34
- export { IBlobManagerLoadInfo } from "./blobManager";
35
- export { FluidDataStoreRegistry } from "./dataStoreRegistry";
31
+ UnknownContainerRuntimeMessage,
32
+ } from "./messageTypes.js";
33
+ export { IBlobManagerLoadInfo } from "./blobManager.js";
34
+ export { FluidDataStoreRegistry } from "./dataStoreRegistry.js";
35
+ export {
36
+ detectOutboundReferences,
37
+ RuntimeHeaders,
38
+ ChannelCollectionFactory,
39
+ AllowTombstoneRequestHeaderKey,
40
+ AllowInactiveRequestHeaderKey,
41
+ } from "./channelCollection.js";
36
42
  export {
37
43
  GCNodeType,
38
44
  IGCMetadata,
@@ -42,7 +48,7 @@ export {
42
48
  IMarkPhaseStats,
43
49
  ISweepPhaseStats,
44
50
  IGCStats,
45
- } from "./gc";
51
+ } from "./gc/index.js";
46
52
  export {
47
53
  IAckedSummary,
48
54
  ISummarizer,
@@ -91,22 +97,19 @@ export {
91
97
  SummaryStage,
92
98
  IRetriableFailureResult,
93
99
  ISummarizeEventProps,
94
- } from "./summary";
95
- export { IChunkedOp, unpackRuntimeMessage } from "./opLifecycle";
96
-
97
- // Re-exports for backwards compatibility.
98
- // Will be removed in the future.
100
+ IdCompressorMode,
101
+ } from "./summary/index.js";
102
+ export { IChunkedOp, unpackRuntimeMessage } from "./opLifecycle/index.js";
103
+ export { ChannelCollection } from "./channelCollection.js";
99
104
  export {
100
- /**
101
- * @deprecated Import from `@fluidframework/id-compressor` instead.
102
- */
103
- assertIsStableId,
104
- /**
105
- * @deprecated Import from `@fluidframework/id-compressor` instead.
106
- */
107
- generateStableId,
108
- /**
109
- * @deprecated Import from `@fluidframework/id-compressor` instead.
110
- */
111
- isStableId,
112
- } from "@fluidframework/id-compressor";
105
+ IFluidDataStoreContextInternal,
106
+ ISnapshotDetails,
107
+ LocalFluidDataStoreContext,
108
+ LocalFluidDataStoreContextBase,
109
+ FluidDataStoreContext,
110
+ IFluidDataStoreContextProps,
111
+ ILocalFluidDataStoreContextProps,
112
+ ILocalDetachedFluidDataStoreContextProps,
113
+ IFluidDataStoreContextEvents,
114
+ } from "./dataStoreContext.js";
115
+ export { DataStoreContexts } from "./dataStoreContexts.js";
@@ -10,9 +10,9 @@ import {
10
10
  IAttachMessage,
11
11
  } from "@fluidframework/runtime-definitions";
12
12
  import type { IdCreationRange } from "@fluidframework/id-compressor";
13
- import { IDataStoreAliasMessage } from "./dataStore";
14
- import { GarbageCollectionMessage } from "./gc";
15
- import { IChunkedOp } from "./opLifecycle";
13
+ import { IDataStoreAliasMessage } from "./dataStore.js";
14
+ import { GarbageCollectionMessage } from "./gc/index.js";
15
+ import { IChunkedOp } from "./opLifecycle/index.js";
16
16
 
17
17
  /**
18
18
  * @alpha
@@ -133,7 +133,7 @@ export type ContainerRuntimeGCMessage = TypedContainerRuntimeMessage<
133
133
  >;
134
134
 
135
135
  /**
136
- * Represents an unrecognized {@link TypedContainerRuntimeMessage}, e.g. a message from a future version of the container runtime.
136
+ * Represents an unrecognized TypedContainerRuntimeMessage, e.g. a message from a future version of the container runtime.
137
137
  * @internal
138
138
  */
139
139
  export interface UnknownContainerRuntimeMessage
@@ -65,8 +65,6 @@ Compression is relevant for both `FlushMode.TurnBased` and `FlushMode.Immediate`
65
65
 
66
66
  ## Grouped batching
67
67
 
68
- **Note: This feature is currently considered experimental and is not ready for production usage.**
69
-
70
68
  The `IContainerRuntimeOptions.enableGroupedBatching` option has been added to the container runtime layer and is **off by default**. This option will group all batch messages under a new "grouped" message to be sent to the service. Upon receiving this new "grouped" message, the batch messages will be extracted and given the sequence number of the parent "grouped" message.
71
69
 
72
70
  The purpose for enabling grouped batching on top of compression is that regular compression won't include the empty messages in the chunks. Thus, if we have batches with many messages (i.e. more than 4k), we will go over the batch size limit just on empty op envelopes alone.
@@ -75,7 +73,7 @@ See [below](#how-grouped-batching-works) for an example.
75
73
 
76
74
  ### Risks
77
75
 
78
- This option is experimental and should not be enabled yet in production. This option should **ONLY** be enabled after observing that 99.9% of your application sessions contains these changes (runtime version "2.0.0-internal.4.1.0" or later). Containers created with this option may not open in future versions of the framework.
76
+ This option should **ONLY** be enabled after observing that 99.9% of your application sessions contains these changes (runtime version "2.0.0-internal.7.0.0" or later). Containers created with this option may not open in future versions of the framework.
79
77
 
80
78
  This option will change a couple of expectations around message structure and runtime layer expectations. Only enable this option after testing
81
79
  and verifying that the following expectation changes won't have any effects:
@@ -91,7 +89,7 @@ Therefore, when grouped batching is enabled, all batches with reentrant ops are
91
89
 
92
90
  ### How to enable
93
91
 
94
- **This feature is disabled by default, currently considered experimental and not ready for production usage.**
92
+ **This feature is disabled by default**
95
93
 
96
94
  If all prerequisites in the previous section are met, enabling the feature can be done via the `IContainerRuntimeOptions` as following:
97
95
 
@@ -3,8 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ICompressionRuntimeOptions } from "../containerRuntime";
7
- import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions";
6
+ import { ICompressionRuntimeOptions } from "../containerRuntime.js";
7
+ import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions.js";
8
8
 
9
9
  export interface IBatchManagerOptions {
10
10
  readonly hardLimit: number;
@@ -5,8 +5,8 @@
5
5
 
6
6
  import { IBatchMessage } from "@fluidframework/container-definitions";
7
7
  import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
8
- import { CompressionAlgorithms } from "../containerRuntime";
9
- import { ContainerMessageType } from "../messageTypes";
8
+ import { CompressionAlgorithms } from "../containerRuntime.js";
9
+ import { ContainerMessageType } from "../messageTypes.js";
10
10
 
11
11
  /**
12
12
  * Batch message type used internally by the runtime
@@ -3,17 +3,17 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- export { BatchManager, estimateSocketSize, BatchSequenceNumbers } from "./batchManager";
6
+ export { BatchManager, estimateSocketSize, BatchSequenceNumbers } from "./batchManager.js";
7
7
  export {
8
8
  BatchMessage,
9
9
  IBatch,
10
10
  IBatchCheckpoint,
11
11
  IChunkedOp,
12
12
  IMessageProcessingResult,
13
- } from "./definitions";
14
- export { Outbox, getLongStack } from "./outbox";
15
- export { OpCompressor } from "./opCompressor";
16
- export { OpDecompressor } from "./opDecompressor";
17
- export { OpSplitter, splitOp } from "./opSplitter";
18
- export { RemoteMessageProcessor, unpackRuntimeMessage } from "./remoteMessageProcessor";
19
- export { OpGroupingManager } from "./opGroupingManager";
13
+ } from "./definitions.js";
14
+ export { Outbox, getLongStack } from "./outbox.js";
15
+ export { OpCompressor } from "./opCompressor.js";
16
+ export { OpDecompressor } from "./opDecompressor.js";
17
+ export { OpSplitter, splitOp } from "./opSplitter.js";
18
+ export { RemoteMessageProcessor, unpackRuntimeMessage } from "./remoteMessageProcessor.js";
19
+ export { OpGroupingManager } from "./opGroupingManager.js";
@@ -8,9 +8,9 @@ import { assert } from "@fluidframework/core-utils";
8
8
  import { IsoBuffer } from "@fluid-internal/client-utils";
9
9
  import { compress } from "lz4js";
10
10
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
11
- import { CompressionAlgorithms } from "../containerRuntime";
12
- import { estimateSocketSize } from "./batchManager";
13
- import { IBatch, BatchMessage } from "./definitions";
11
+ import { CompressionAlgorithms } from "../containerRuntime.js";
12
+ import { estimateSocketSize } from "./batchManager.js";
13
+ import { IBatch, BatchMessage } from "./definitions.js";
14
14
 
15
15
  /**
16
16
  * Compresses batches of ops. It generates a single compressed op that contains
@@ -9,9 +9,9 @@ import { assert } from "@fluidframework/core-utils";
9
9
  import { IsoBuffer, Uint8ArrayToString } from "@fluid-internal/client-utils";
10
10
  import { createChildLogger } from "@fluidframework/telemetry-utils";
11
11
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
12
- import { CompressionAlgorithms } from "../containerRuntime";
13
- import { IBatchMetadata } from "../metadata";
14
- import { IMessageProcessingResult } from "./definitions";
12
+ import { CompressionAlgorithms } from "../containerRuntime.js";
13
+ import { IBatchMetadata } from "../metadata.js";
14
+ import { IMessageProcessingResult } from "./definitions.js";
15
15
 
16
16
  /**
17
17
  * Compression makes assumptions about the shape of message contents. This interface codifies those assumptions, but does not validate them.