@fluidframework/container-runtime 2.0.0-rc.4.0.6 → 2.0.0-rc.5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/api-extractor/api-extractor-lint-bundle.json +5 -0
  3. package/api-extractor/api-extractor-lint-legacy.cjs.json +5 -0
  4. package/api-extractor/api-extractor-lint-legacy.esm.json +5 -0
  5. package/api-extractor/api-extractor-lint-public.cjs.json +5 -0
  6. package/api-extractor/api-extractor-lint-public.esm.json +5 -0
  7. package/api-extractor.json +1 -1
  8. package/api-report/{container-runtime.api.md → container-runtime.alpha.api.md} +33 -516
  9. package/api-report/container-runtime.beta.api.md +73 -0
  10. package/api-report/container-runtime.public.api.md +73 -0
  11. package/biome.jsonc +4 -0
  12. package/container-runtime.test-files.tar +0 -0
  13. package/dist/batchTracker.d.ts.map +1 -1
  14. package/dist/batchTracker.js.map +1 -1
  15. package/dist/blobManager.d.ts +3 -20
  16. package/dist/blobManager.d.ts.map +1 -1
  17. package/dist/blobManager.js +1 -35
  18. package/dist/blobManager.js.map +1 -1
  19. package/dist/channelCollection.d.ts +21 -12
  20. package/dist/channelCollection.d.ts.map +1 -1
  21. package/dist/channelCollection.js +113 -110
  22. package/dist/channelCollection.js.map +1 -1
  23. package/dist/connectionTelemetry.d.ts +1 -1
  24. package/dist/connectionTelemetry.d.ts.map +1 -1
  25. package/dist/connectionTelemetry.js +14 -14
  26. package/dist/connectionTelemetry.js.map +1 -1
  27. package/dist/containerHandleContext.d.ts +2 -1
  28. package/dist/containerHandleContext.d.ts.map +1 -1
  29. package/dist/containerHandleContext.js.map +1 -1
  30. package/dist/containerRuntime.d.ts +17 -34
  31. package/dist/containerRuntime.d.ts.map +1 -1
  32. package/dist/containerRuntime.js +109 -145
  33. package/dist/containerRuntime.js.map +1 -1
  34. package/dist/dataStore.d.ts.map +1 -1
  35. package/dist/dataStore.js.map +1 -1
  36. package/dist/dataStoreContext.d.ts +30 -44
  37. package/dist/dataStoreContext.d.ts.map +1 -1
  38. package/dist/dataStoreContext.js +26 -40
  39. package/dist/dataStoreContext.js.map +1 -1
  40. package/dist/dataStoreContexts.d.ts.map +1 -1
  41. package/dist/dataStoreContexts.js.map +1 -1
  42. package/dist/dataStoreRegistry.js.map +1 -1
  43. package/dist/deltaManagerProxies.d.ts +4 -3
  44. package/dist/deltaManagerProxies.d.ts.map +1 -1
  45. package/dist/deltaManagerProxies.js.map +1 -1
  46. package/dist/deltaScheduler.d.ts +1 -1
  47. package/dist/deltaScheduler.d.ts.map +1 -1
  48. package/dist/deltaScheduler.js +1 -3
  49. package/dist/deltaScheduler.js.map +1 -1
  50. package/dist/gc/garbageCollection.d.ts +5 -5
  51. package/dist/gc/garbageCollection.d.ts.map +1 -1
  52. package/dist/gc/garbageCollection.js +29 -30
  53. package/dist/gc/garbageCollection.js.map +1 -1
  54. package/dist/gc/gcConfigs.d.ts.map +1 -1
  55. package/dist/gc/gcConfigs.js +12 -31
  56. package/dist/gc/gcConfigs.js.map +1 -1
  57. package/dist/gc/gcDefinitions.d.ts +10 -38
  58. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  59. package/dist/gc/gcDefinitions.js +1 -5
  60. package/dist/gc/gcDefinitions.js.map +1 -1
  61. package/dist/gc/gcHelpers.d.ts +2 -3
  62. package/dist/gc/gcHelpers.d.ts.map +1 -1
  63. package/dist/gc/gcHelpers.js.map +1 -1
  64. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  65. package/dist/gc/gcSummaryDefinitions.d.ts +1 -1
  66. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
  67. package/dist/gc/gcSummaryDefinitions.js.map +1 -1
  68. package/dist/gc/gcSummaryStateTracker.d.ts +2 -35
  69. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  70. package/dist/gc/gcSummaryStateTracker.js +9 -62
  71. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  72. package/dist/gc/gcTelemetry.d.ts +2 -2
  73. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  74. package/dist/gc/gcTelemetry.js +3 -9
  75. package/dist/gc/gcTelemetry.js.map +1 -1
  76. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  77. package/dist/gc/index.d.ts +1 -1
  78. package/dist/gc/index.d.ts.map +1 -1
  79. package/dist/gc/index.js +1 -3
  80. package/dist/gc/index.js.map +1 -1
  81. package/dist/index.d.ts +2 -2
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js.map +1 -1
  84. package/dist/legacy.d.ts +1 -1
  85. package/dist/messageTypes.d.ts +6 -22
  86. package/dist/messageTypes.d.ts.map +1 -1
  87. package/dist/messageTypes.js.map +1 -1
  88. package/dist/opLifecycle/batchManager.js.map +1 -1
  89. package/dist/opLifecycle/definitions.d.ts +2 -2
  90. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  91. package/dist/opLifecycle/definitions.js.map +1 -1
  92. package/dist/opLifecycle/index.d.ts +1 -1
  93. package/dist/opLifecycle/index.d.ts.map +1 -1
  94. package/dist/opLifecycle/index.js.map +1 -1
  95. package/dist/opLifecycle/opCompressor.d.ts +11 -1
  96. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  97. package/dist/opLifecycle/opCompressor.js +13 -2
  98. package/dist/opLifecycle/opCompressor.js.map +1 -1
  99. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  100. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  101. package/dist/opLifecycle/opDecompressor.js +1 -2
  102. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  103. package/dist/opLifecycle/opGroupingManager.d.ts +10 -3
  104. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  105. package/dist/opLifecycle/opGroupingManager.js +7 -0
  106. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  107. package/dist/opLifecycle/opSplitter.d.ts +4 -2
  108. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  109. package/dist/opLifecycle/opSplitter.js +13 -8
  110. package/dist/opLifecycle/opSplitter.js.map +1 -1
  111. package/dist/opLifecycle/outbox.d.ts +10 -0
  112. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  113. package/dist/opLifecycle/outbox.js +13 -18
  114. package/dist/opLifecycle/outbox.js.map +1 -1
  115. package/dist/opLifecycle/remoteMessageProcessor.d.ts +1 -1
  116. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  117. package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
  118. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  119. package/dist/opProperties.d.ts +1 -1
  120. package/dist/opProperties.d.ts.map +1 -1
  121. package/dist/opProperties.js.map +1 -1
  122. package/dist/packageVersion.d.ts +1 -1
  123. package/dist/packageVersion.js +1 -1
  124. package/dist/packageVersion.js.map +1 -1
  125. package/dist/pendingStateManager.d.ts.map +1 -1
  126. package/dist/pendingStateManager.js +15 -5
  127. package/dist/pendingStateManager.js.map +1 -1
  128. package/dist/scheduleManager.d.ts +1 -1
  129. package/dist/scheduleManager.d.ts.map +1 -1
  130. package/dist/scheduleManager.js.map +1 -1
  131. package/dist/storageServiceWithAttachBlobs.js.map +1 -1
  132. package/dist/summary/documentSchema.d.ts.map +1 -1
  133. package/dist/summary/documentSchema.js +2 -3
  134. package/dist/summary/documentSchema.js.map +1 -1
  135. package/dist/summary/index.d.ts +2 -2
  136. package/dist/summary/index.d.ts.map +1 -1
  137. package/dist/summary/index.js.map +1 -1
  138. package/dist/summary/orderedClientElection.d.ts +4 -2
  139. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  140. package/dist/summary/orderedClientElection.js +35 -13
  141. package/dist/summary/orderedClientElection.js.map +1 -1
  142. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  143. package/dist/summary/runningSummarizer.d.ts +1 -6
  144. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  145. package/dist/summary/runningSummarizer.js +23 -110
  146. package/dist/summary/runningSummarizer.js.map +1 -1
  147. package/dist/summary/summarizer.d.ts +1 -1
  148. package/dist/summary/summarizer.d.ts.map +1 -1
  149. package/dist/summary/summarizer.js +4 -1
  150. package/dist/summary/summarizer.js.map +1 -1
  151. package/dist/summary/summarizerClientElection.d.ts +1 -1
  152. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  153. package/dist/summary/summarizerClientElection.js +2 -2
  154. package/dist/summary/summarizerClientElection.js.map +1 -1
  155. package/dist/summary/summarizerHeuristics.js.map +1 -1
  156. package/dist/summary/summarizerNode/summarizerNode.d.ts +2 -3
  157. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  158. package/dist/summary/summarizerNode/summarizerNode.js +16 -16
  159. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  160. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  161. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  162. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  163. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -3
  164. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  165. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +5 -2
  166. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  167. package/dist/summary/summarizerTypes.d.ts +17 -29
  168. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  169. package/dist/summary/summarizerTypes.js.map +1 -1
  170. package/dist/summary/summaryCollection.d.ts +1 -1
  171. package/dist/summary/summaryCollection.d.ts.map +1 -1
  172. package/dist/summary/summaryCollection.js +11 -11
  173. package/dist/summary/summaryCollection.js.map +1 -1
  174. package/dist/summary/summaryFormat.d.ts +2 -3
  175. package/dist/summary/summaryFormat.d.ts.map +1 -1
  176. package/dist/summary/summaryFormat.js +2 -2
  177. package/dist/summary/summaryFormat.js.map +1 -1
  178. package/dist/summary/summaryGenerator.d.ts +7 -8
  179. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  180. package/dist/summary/summaryGenerator.js +27 -24
  181. package/dist/summary/summaryGenerator.js.map +1 -1
  182. package/dist/summary/summaryManager.d.ts.map +1 -1
  183. package/dist/summary/summaryManager.js +1 -2
  184. package/dist/summary/summaryManager.js.map +1 -1
  185. package/dist/throttler.d.ts.map +1 -1
  186. package/dist/throttler.js +3 -1
  187. package/dist/throttler.js.map +1 -1
  188. package/lib/batchTracker.d.ts.map +1 -1
  189. package/lib/batchTracker.js +1 -1
  190. package/lib/batchTracker.js.map +1 -1
  191. package/lib/blobManager.d.ts +3 -20
  192. package/lib/blobManager.d.ts.map +1 -1
  193. package/lib/blobManager.js +2 -36
  194. package/lib/blobManager.js.map +1 -1
  195. package/lib/channelCollection.d.ts +21 -12
  196. package/lib/channelCollection.d.ts.map +1 -1
  197. package/lib/channelCollection.js +114 -112
  198. package/lib/channelCollection.js.map +1 -1
  199. package/lib/connectionTelemetry.d.ts +1 -1
  200. package/lib/connectionTelemetry.d.ts.map +1 -1
  201. package/lib/connectionTelemetry.js +2 -2
  202. package/lib/connectionTelemetry.js.map +1 -1
  203. package/lib/containerHandleContext.d.ts +2 -1
  204. package/lib/containerHandleContext.d.ts.map +1 -1
  205. package/lib/containerHandleContext.js.map +1 -1
  206. package/lib/containerRuntime.d.ts +17 -34
  207. package/lib/containerRuntime.d.ts.map +1 -1
  208. package/lib/containerRuntime.js +106 -142
  209. package/lib/containerRuntime.js.map +1 -1
  210. package/lib/dataStore.d.ts.map +1 -1
  211. package/lib/dataStore.js.map +1 -1
  212. package/lib/dataStoreContext.d.ts +30 -44
  213. package/lib/dataStoreContext.d.ts.map +1 -1
  214. package/lib/dataStoreContext.js +29 -43
  215. package/lib/dataStoreContext.js.map +1 -1
  216. package/lib/dataStoreContexts.d.ts.map +1 -1
  217. package/lib/dataStoreContexts.js +1 -1
  218. package/lib/dataStoreContexts.js.map +1 -1
  219. package/lib/dataStoreRegistry.js.map +1 -1
  220. package/lib/deltaManagerProxies.d.ts +4 -3
  221. package/lib/deltaManagerProxies.d.ts.map +1 -1
  222. package/lib/deltaManagerProxies.js.map +1 -1
  223. package/lib/deltaScheduler.d.ts +1 -1
  224. package/lib/deltaScheduler.d.ts.map +1 -1
  225. package/lib/deltaScheduler.js +1 -3
  226. package/lib/deltaScheduler.js.map +1 -1
  227. package/lib/gc/garbageCollection.d.ts +5 -5
  228. package/lib/gc/garbageCollection.d.ts.map +1 -1
  229. package/lib/gc/garbageCollection.js +30 -31
  230. package/lib/gc/garbageCollection.js.map +1 -1
  231. package/lib/gc/gcConfigs.d.ts.map +1 -1
  232. package/lib/gc/gcConfigs.js +13 -32
  233. package/lib/gc/gcConfigs.js.map +1 -1
  234. package/lib/gc/gcDefinitions.d.ts +10 -38
  235. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  236. package/lib/gc/gcDefinitions.js +0 -4
  237. package/lib/gc/gcDefinitions.js.map +1 -1
  238. package/lib/gc/gcHelpers.d.ts +2 -3
  239. package/lib/gc/gcHelpers.d.ts.map +1 -1
  240. package/lib/gc/gcHelpers.js.map +1 -1
  241. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  242. package/lib/gc/gcSummaryDefinitions.d.ts +1 -1
  243. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
  244. package/lib/gc/gcSummaryDefinitions.js.map +1 -1
  245. package/lib/gc/gcSummaryStateTracker.d.ts +2 -35
  246. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  247. package/lib/gc/gcSummaryStateTracker.js +4 -57
  248. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  249. package/lib/gc/gcTelemetry.d.ts +2 -2
  250. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  251. package/lib/gc/gcTelemetry.js +3 -9
  252. package/lib/gc/gcTelemetry.js.map +1 -1
  253. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  254. package/lib/gc/index.d.ts +1 -1
  255. package/lib/gc/index.d.ts.map +1 -1
  256. package/lib/gc/index.js +1 -1
  257. package/lib/gc/index.js.map +1 -1
  258. package/lib/index.d.ts +2 -2
  259. package/lib/index.d.ts.map +1 -1
  260. package/lib/index.js.map +1 -1
  261. package/lib/legacy.d.ts +1 -1
  262. package/lib/messageTypes.d.ts +6 -22
  263. package/lib/messageTypes.d.ts.map +1 -1
  264. package/lib/messageTypes.js.map +1 -1
  265. package/lib/opLifecycle/batchManager.js.map +1 -1
  266. package/lib/opLifecycle/definitions.d.ts +2 -2
  267. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  268. package/lib/opLifecycle/definitions.js.map +1 -1
  269. package/lib/opLifecycle/index.d.ts +1 -1
  270. package/lib/opLifecycle/index.d.ts.map +1 -1
  271. package/lib/opLifecycle/index.js +1 -1
  272. package/lib/opLifecycle/index.js.map +1 -1
  273. package/lib/opLifecycle/opCompressor.d.ts +11 -1
  274. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  275. package/lib/opLifecycle/opCompressor.js +13 -2
  276. package/lib/opLifecycle/opCompressor.js.map +1 -1
  277. package/lib/opLifecycle/opDecompressor.d.ts +1 -1
  278. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  279. package/lib/opLifecycle/opDecompressor.js +1 -2
  280. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  281. package/lib/opLifecycle/opGroupingManager.d.ts +10 -3
  282. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  283. package/lib/opLifecycle/opGroupingManager.js +7 -0
  284. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  285. package/lib/opLifecycle/opSplitter.d.ts +4 -2
  286. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  287. package/lib/opLifecycle/opSplitter.js +13 -8
  288. package/lib/opLifecycle/opSplitter.js.map +1 -1
  289. package/lib/opLifecycle/outbox.d.ts +10 -0
  290. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  291. package/lib/opLifecycle/outbox.js +13 -18
  292. package/lib/opLifecycle/outbox.js.map +1 -1
  293. package/lib/opLifecycle/remoteMessageProcessor.d.ts +1 -1
  294. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  295. package/lib/opLifecycle/remoteMessageProcessor.js +1 -1
  296. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  297. package/lib/opProperties.d.ts +1 -1
  298. package/lib/opProperties.d.ts.map +1 -1
  299. package/lib/opProperties.js.map +1 -1
  300. package/lib/packageVersion.d.ts +1 -1
  301. package/lib/packageVersion.js +1 -1
  302. package/lib/packageVersion.js.map +1 -1
  303. package/lib/pendingStateManager.d.ts.map +1 -1
  304. package/lib/pendingStateManager.js +15 -5
  305. package/lib/pendingStateManager.js.map +1 -1
  306. package/lib/scheduleManager.d.ts +1 -1
  307. package/lib/scheduleManager.d.ts.map +1 -1
  308. package/lib/scheduleManager.js.map +1 -1
  309. package/lib/storageServiceWithAttachBlobs.js.map +1 -1
  310. package/lib/summary/documentSchema.d.ts.map +1 -1
  311. package/lib/summary/documentSchema.js +2 -3
  312. package/lib/summary/documentSchema.js.map +1 -1
  313. package/lib/summary/index.d.ts +2 -2
  314. package/lib/summary/index.d.ts.map +1 -1
  315. package/lib/summary/index.js +1 -1
  316. package/lib/summary/index.js.map +1 -1
  317. package/lib/summary/orderedClientElection.d.ts +4 -2
  318. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  319. package/lib/summary/orderedClientElection.js +35 -13
  320. package/lib/summary/orderedClientElection.js.map +1 -1
  321. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  322. package/lib/summary/runningSummarizer.d.ts +1 -6
  323. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  324. package/lib/summary/runningSummarizer.js +22 -109
  325. package/lib/summary/runningSummarizer.js.map +1 -1
  326. package/lib/summary/summarizer.d.ts +1 -1
  327. package/lib/summary/summarizer.d.ts.map +1 -1
  328. package/lib/summary/summarizer.js +4 -1
  329. package/lib/summary/summarizer.js.map +1 -1
  330. package/lib/summary/summarizerClientElection.d.ts +1 -1
  331. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  332. package/lib/summary/summarizerClientElection.js +1 -1
  333. package/lib/summary/summarizerClientElection.js.map +1 -1
  334. package/lib/summary/summarizerHeuristics.js.map +1 -1
  335. package/lib/summary/summarizerNode/summarizerNode.d.ts +2 -3
  336. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  337. package/lib/summary/summarizerNode/summarizerNode.js +14 -14
  338. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  339. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  340. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  341. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  342. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -3
  343. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  344. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +5 -2
  345. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  346. package/lib/summary/summarizerTypes.d.ts +17 -29
  347. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  348. package/lib/summary/summarizerTypes.js.map +1 -1
  349. package/lib/summary/summaryCollection.d.ts +1 -1
  350. package/lib/summary/summaryCollection.d.ts.map +1 -1
  351. package/lib/summary/summaryCollection.js +3 -3
  352. package/lib/summary/summaryCollection.js.map +1 -1
  353. package/lib/summary/summaryFormat.d.ts +2 -3
  354. package/lib/summary/summaryFormat.d.ts.map +1 -1
  355. package/lib/summary/summaryFormat.js +2 -2
  356. package/lib/summary/summaryFormat.js.map +1 -1
  357. package/lib/summary/summaryGenerator.d.ts +7 -8
  358. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  359. package/lib/summary/summaryGenerator.js +26 -23
  360. package/lib/summary/summaryGenerator.js.map +1 -1
  361. package/lib/summary/summaryManager.d.ts.map +1 -1
  362. package/lib/summary/summaryManager.js +1 -2
  363. package/lib/summary/summaryManager.js.map +1 -1
  364. package/lib/throttler.d.ts.map +1 -1
  365. package/lib/throttler.js +3 -1
  366. package/lib/throttler.js.map +1 -1
  367. package/lib/tsdoc-metadata.json +1 -1
  368. package/package.json +92 -28
  369. package/src/batchTracker.ts +5 -2
  370. package/src/blobManager.ts +21 -61
  371. package/src/channelCollection.ts +179 -186
  372. package/src/connectionTelemetry.ts +18 -12
  373. package/src/containerHandleContext.ts +2 -1
  374. package/src/containerRuntime.ts +166 -214
  375. package/src/dataStore.ts +2 -1
  376. package/src/dataStoreContext.ts +79 -98
  377. package/src/dataStoreContexts.ts +7 -2
  378. package/src/deltaManagerProxies.ts +15 -6
  379. package/src/deltaScheduler.ts +5 -4
  380. package/src/gc/garbageCollection.md +0 -8
  381. package/src/gc/garbageCollection.ts +66 -57
  382. package/src/gc/gcConfigs.ts +15 -37
  383. package/src/gc/gcDefinitions.ts +20 -39
  384. package/src/gc/gcHelpers.ts +8 -4
  385. package/src/gc/gcSummaryDefinitions.ts +1 -1
  386. package/src/gc/gcSummaryStateTracker.ts +11 -74
  387. package/src/gc/gcTelemetry.ts +4 -11
  388. package/src/gc/index.ts +0 -2
  389. package/src/index.ts +1 -2
  390. package/src/messageTypes.ts +8 -24
  391. package/src/opLifecycle/README.md +120 -160
  392. package/src/opLifecycle/definitions.ts +2 -2
  393. package/src/opLifecycle/index.ts +5 -1
  394. package/src/opLifecycle/opCompressor.ts +13 -2
  395. package/src/opLifecycle/opDecompressor.ts +3 -7
  396. package/src/opLifecycle/opGroupingManager.ts +12 -8
  397. package/src/opLifecycle/opSplitter.ts +22 -11
  398. package/src/opLifecycle/outbox.ts +14 -32
  399. package/src/opLifecycle/remoteMessageProcessor.ts +4 -1
  400. package/src/opProperties.ts +2 -2
  401. package/src/packageVersion.ts +1 -1
  402. package/src/pendingStateManager.ts +20 -7
  403. package/src/scheduleManager.ts +4 -1
  404. package/src/summary/documentSchema.ts +4 -7
  405. package/src/summary/images/appTree.png +0 -0
  406. package/src/summary/images/protocolAndAppTree.png +0 -0
  407. package/src/summary/images/summaryTree.png +0 -0
  408. package/src/summary/index.ts +5 -2
  409. package/src/summary/orderedClientElection.ts +100 -22
  410. package/src/summary/runningSummarizer.ts +54 -124
  411. package/src/summary/summarizer.ts +5 -2
  412. package/src/summary/summarizerClientElection.ts +4 -2
  413. package/src/summary/summarizerNode/summarizerNode.ts +23 -30
  414. package/src/summary/summarizerNode/summarizerNodeUtils.ts +9 -3
  415. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -11
  416. package/src/summary/summarizerTypes.ts +32 -33
  417. package/src/summary/summaryCollection.ts +6 -3
  418. package/src/summary/summaryFormat.ts +18 -10
  419. package/src/summary/summaryFormats.md +160 -0
  420. package/src/summary/summaryGenerator.ts +47 -30
  421. package/src/summary/summaryManager.ts +6 -9
  422. package/src/throttler.ts +3 -1
  423. package/tsconfig.json +2 -0
  424. package/tsdoc.json +4 -0
@@ -3,9 +3,9 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { SummaryType } from "@fluidframework/protocol-definitions";
7
- import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
6
+ import { SummaryType } from "@fluidframework/driver-definitions";
8
7
  import {
8
+ ISummaryTreeWithStats,
9
9
  ISummarizeResult,
10
10
  gcBlobPrefix,
11
11
  gcDeletedBlobKey,
@@ -16,9 +16,12 @@ import { SummaryTreeBuilder, mergeStats } from "@fluidframework/runtime-utils/in
16
16
 
17
17
  import { IRefreshSummaryResult } from "../summary/index.js";
18
18
 
19
- import { GCVersion, IGCStats, IGarbageCollectorConfigs } from "./gcDefinitions.js";
19
+ import { IGCStats, IGarbageCollectorConfigs } from "./gcDefinitions.js";
20
20
  import { generateSortedGCState } from "./gcHelpers.js";
21
- import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions.js";
21
+ import {
22
+ IGarbageCollectionSnapshotData,
23
+ IGarbageCollectionState,
24
+ } from "./gcSummaryDefinitions.js";
22
25
 
23
26
  export const gcStateBlobKey = `${gcBlobPrefix}_root`;
24
27
 
@@ -38,17 +41,11 @@ export interface IGCSummaryTrackingData {
38
41
  * On summarize, it decides whether to write new state or re-use previous summary's state.
39
42
  */
40
43
  export class GCSummaryStateTracker {
41
- // This is the version of GC data in the latest summary being tracked.
42
- private latestSummaryGCVersion: GCVersion;
43
-
44
44
  // Keeps track of the GC data from the latest summary successfully acked by the server.
45
45
  private latestSummaryData: IGCSummaryTrackingData | undefined;
46
46
  // Keeps track of the GC data from the last summary submitted to the server but not yet acked.
47
47
  private pendingSummaryData: IGCSummaryTrackingData | undefined;
48
48
 
49
- // Tracks whether there was GC was run in latest summary being tracked.
50
- private wasGCRunInLatestSummary: boolean;
51
-
52
49
  // Tracks the count of data stores whose state updated since the last summary, i.e., they went from referenced
53
50
  // to unreferenced or vice-versa.
54
51
  public updatedDSCountSinceLastSummary: number = 0;
@@ -69,58 +66,9 @@ export class GCSummaryStateTracker {
69
66
  // Tells whether GC should run or not.
70
67
  private readonly configs: Pick<
71
68
  IGarbageCollectorConfigs,
72
- "shouldRunGC" | "tombstoneMode" | "gcVersionInBaseSnapshot" | "gcVersionInEffect"
69
+ "gcEnabled" | "tombstoneMode" | "gcVersionInBaseSnapshot" | "gcVersionInEffect"
73
70
  >,
74
- // Tells whether GC was run in the base snapshot this container loaded from.
75
- wasGCRunInBaseSnapshot: boolean,
76
- ) {
77
- this.wasGCRunInLatestSummary = wasGCRunInBaseSnapshot;
78
- // For existing document, the latest summary is the one that we loaded from. So, use its GC version as the
79
- // latest tracked GC version. For new documents, we will be writing the first summary with the current version.
80
- this.latestSummaryGCVersion =
81
- this.configs.gcVersionInBaseSnapshot ?? this.configs.gcVersionInEffect;
82
- }
83
-
84
- /**
85
- * Tells whether the GC state needs to be reset. This can happen under 3 conditions:
86
- *
87
- * 1. The base snapshot contains GC state but GC is disabled. This will happen the first time GC is disabled after
88
- * it was enabled before. GC state needs to be removed from summary and all nodes should be marked referenced.
89
- *
90
- * 2. The base snapshot does not have GC state but GC is enabled. This will happen the very first time GC runs on
91
- * a document and the first time GC is enabled after is was disabled before.
92
- *
93
- * 3. GC is enabled and the latest summary state is refreshed from a snapshot that had GC disabled and vice-versa.
94
- *
95
- * Note that the state will be reset only once for the first summary generated after this returns true. After that,
96
- * this will return false.
97
- */
98
- public get doesGCStateNeedReset(): boolean {
99
- return this.wasGCRunInLatestSummary !== this.configs.shouldRunGC;
100
- }
101
-
102
- /**
103
- * Tells whether the GC state needs to be reset in the next summary. We need to do this if:
104
- *
105
- * 1. GC was enabled and is now disabled. The GC state needs to be removed and everything becomes referenced.
106
- *
107
- * 2. GC was disabled and is now enabled. The GC state needs to be regenerated and added to summary.
108
- *
109
- * 3. GC is enabled and the latest summary state is refreshed from a snapshot that had GC disabled and vice-versa.
110
- *
111
- * 4. The GC version in the latest summary is different from the current GC version. This can happen if:
112
- *
113
- * 4.1. The summary this client loaded with has data from a different GC version.
114
- *
115
- * 4.2. This client's latest summary was updated from a snapshot that has a different GC version.
116
- */
117
- public get doesSummaryStateNeedReset(): boolean {
118
- return (
119
- this.doesGCStateNeedReset ||
120
- (this.configs.shouldRunGC &&
121
- this.latestSummaryGCVersion !== this.configs.gcVersionInEffect)
122
- );
123
- }
71
+ ) {}
124
72
 
125
73
  /**
126
74
  * Called during GC initialization. Initialize the latest summary data from the base snapshot data.
@@ -152,7 +100,7 @@ export class GCSummaryStateTracker {
152
100
  deletedNodes: Set<string>,
153
101
  tombstones: string[],
154
102
  ): ISummarizeResult | undefined {
155
- if (!this.configs.shouldRunGC) {
103
+ if (!this.configs.gcEnabled) {
156
104
  return;
157
105
  }
158
106
 
@@ -283,25 +231,14 @@ export class GCSummaryStateTracker {
283
231
  * Called to refresh the latest summary state. This happens when a pending summary is acked.
284
232
  */
285
233
  public async refreshLatestSummary(result: IRefreshSummaryResult): Promise<void> {
286
- if (!result.isSummaryTracked) {
287
- return;
288
- }
289
-
290
- // If the summary is tracked, this client is the one that generated it. So, update wasGCRunInLatestSummary.
291
- // Note that this has to be updated if GC did not run too. Otherwise, `gcStateNeedsReset` will always return
292
- // true in scenarios where GC is currently disabled but enabled in the snapshot we loaded from.
293
- this.wasGCRunInLatestSummary = this.configs.shouldRunGC;
294
-
295
- if (!this.configs.shouldRunGC) {
234
+ if (!this.configs.gcEnabled || !result.isSummaryTracked) {
296
235
  return;
297
236
  }
298
237
 
299
- this.latestSummaryGCVersion = this.configs.gcVersionInEffect;
300
238
  this.latestSummaryData = this.pendingSummaryData;
301
239
  this.pendingSummaryData = undefined;
302
240
  this.updatedDSCountSinceLastSummary = 0;
303
241
  this.fullGCModeForAutoRecovery = false;
304
- return;
305
242
  }
306
243
 
307
244
  /**
@@ -3,7 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
6
+ import type { Tagged } from "@fluidframework/core-interfaces";
7
+ import { IGarbageCollectionData } from "@fluidframework/runtime-definitions/internal";
7
8
  import {
8
9
  ITelemetryLoggerExt,
9
10
  MonitoringContext,
@@ -12,7 +13,6 @@ import {
12
13
  type ITelemetryGenericEventExt,
13
14
  } from "@fluidframework/telemetry-utils/internal";
14
15
 
15
- import type { Tagged } from "@fluidframework/core-interfaces";
16
16
  import { RuntimeHeaderData } from "../containerRuntime.js";
17
17
  import { ICreateContainerMetadata } from "../summary/index.js";
18
18
 
@@ -63,7 +63,7 @@ interface INodeUsageProps extends ICommonProps {
63
63
  /** The full path (in GC Path format) to the node in question */
64
64
  id: string;
65
65
  /** Latest timestamp received from the server, as a baseline for computing GC state/age */
66
- currentReferenceTimestampMs: number | undefined;
66
+ currentReferenceTimestampMs: number;
67
67
  /** The package path of the node. This may not be available if the node hasn't been loaded yet */
68
68
  packagePath: readonly string[] | undefined;
69
69
  /** In case of Revived - what node added the reference? */
@@ -165,12 +165,6 @@ export class GCTelemetryTracker {
165
165
  ...otherNodeUsageProps
166
166
  }: INodeUsageProps,
167
167
  ) {
168
- // If there is no reference timestamp to work with, no ops have been processed after creation. If so, skip
169
- // logging as nothing interesting would have happened worth logging.
170
- if (currentReferenceTimestampMs === undefined) {
171
- return;
172
- }
173
-
174
168
  // Note: For SubDataStore Load usage, trackedId will be the DataStore's id, not the full path in question.
175
169
  // This is necessary because the SubDataStore path may be unrecognized by GC (if suited for a custom request handler)
176
170
  const nodeStateTracker = this.getNodeStateTracker(trackedId);
@@ -390,8 +384,7 @@ export class GCTelemetryTracker {
390
384
  */
391
385
  const nodeStateTracker = this.getNodeStateTracker(detailedProps.trackedId); // Note: This is never SubDataStore path
392
386
  const active =
393
- nodeStateTracker === undefined ||
394
- nodeStateTracker.state === UnreferencedState.Active;
387
+ nodeStateTracker === undefined || nodeStateTracker.state === UnreferencedState.Active;
395
388
  if ((usageType === "Revived") === active) {
396
389
  const pkg = await this.getNodePackagePath(eventProps.id.value);
397
390
  const fromPkg = eventProps.fromId
package/src/gc/index.ts CHANGED
@@ -30,13 +30,11 @@ export {
30
30
  ISweepPhaseStats,
31
31
  IGCStats,
32
32
  oneDayMs,
33
- runGCKey,
34
33
  runSessionExpiryKey,
35
34
  runSweepKey,
36
35
  stableGCVersion,
37
36
  disableAutoRecoveryKey,
38
37
  disableDatastoreSweepKey,
39
- detectOutboundRoutesViaDDSKey,
40
38
  UnreferencedState,
41
39
  throwOnTombstoneLoadOverrideKey,
42
40
  GarbageCollectionMessage,
package/src/index.ts CHANGED
@@ -25,7 +25,6 @@ export {
25
25
  } from "./containerRuntime.js";
26
26
  export {
27
27
  ContainerMessageType,
28
- ContainerRuntimeMessage,
29
28
  IContainerRuntimeMessageCompatDetails,
30
29
  CompatModeBehavior,
31
30
  RecentlyAddedContainerRuntimeMessageDetails,
@@ -97,7 +96,7 @@ export {
97
96
  ICancellableSummarizerController,
98
97
  SubmitSummaryFailureData,
99
98
  SummaryStage,
100
- IRetriableFailureResult,
99
+ IRetriableFailureError,
101
100
  ISummarizeEventProps,
102
101
  IdCompressorMode,
103
102
  IDocumentSchema,
@@ -3,8 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
6
7
  import type { IdCreationRange } from "@fluidframework/id-compressor/internal";
7
- import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
8
8
  import {
9
9
  IAttachMessage,
10
10
  IEnvelope,
@@ -60,6 +60,7 @@ export enum ContainerMessageType {
60
60
  /**
61
61
  * How should an older client handle an unrecognized remote op type?
62
62
  *
63
+ * @deprecated The utility of a mechanism to handle unknown messages is outweighed by the nuance required to get it right.
63
64
  * @internal
64
65
  */
65
66
  export type CompatModeBehavior =
@@ -71,6 +72,7 @@ export type CompatModeBehavior =
71
72
  /**
72
73
  * All the info an older client would need to know how to handle an unrecognized remote op type
73
74
  *
75
+ * @deprecated The utility of a mechanism to handle unknown messages is outweighed by the nuance required to get it right.
74
76
  * @internal
75
77
  */
76
78
  export interface IContainerRuntimeMessageCompatDetails {
@@ -85,8 +87,7 @@ export interface IContainerRuntimeMessageCompatDetails {
85
87
  * IMPORTANT: when creating one to be serialized, set the properties in the order they appear here.
86
88
  * This way stringified values can be compared.
87
89
  */
88
- interface TypedContainerRuntimeMessage<TType extends ContainerMessageType, TContents>
89
- extends Partial<RecentlyAddedContainerRuntimeMessageDetails> {
90
+ interface TypedContainerRuntimeMessage<TType extends ContainerMessageType, TContents> {
90
91
  /** Type of the op, within the ContainerRuntime's domain */
91
92
  type: TType;
92
93
  /** Domain-specific contents, interpreted according to the type */
@@ -95,6 +96,7 @@ interface TypedContainerRuntimeMessage<TType extends ContainerMessageType, TCont
95
96
 
96
97
  /**
97
98
  * Additional details expected for any recently added message.
99
+ * @deprecated The utility of a mechanism to handle unknown messages is outweighed by the nuance required to get it right.
98
100
  * @internal
99
101
  */
100
102
  export interface RecentlyAddedContainerRuntimeMessageDetails {
@@ -137,7 +139,9 @@ export type ContainerRuntimeIdAllocationMessage = TypedContainerRuntimeMessage<
137
139
  export type ContainerRuntimeGCMessage = TypedContainerRuntimeMessage<
138
140
  ContainerMessageType.GC,
139
141
  GarbageCollectionMessage
140
- >;
142
+ > &
143
+ // While deprecating: GC messages may still contain compat details for now
144
+ Partial<RecentlyAddedContainerRuntimeMessageDetails>;
141
145
  export type ContainerRuntimeDocumentSchemaMessage = TypedContainerRuntimeMessage<
142
146
  ContainerMessageType.DocumentSchemaChange,
143
147
  IDocumentSchemaChangeMessage
@@ -232,23 +236,3 @@ export type InboundSequencedContainerRuntimeMessageOrSystemMessage =
232
236
  */
233
237
  export type InboundSequencedRecentlyAddedContainerRuntimeMessage = ISequencedDocumentMessage &
234
238
  Partial<RecentlyAddedContainerRuntimeMessageDetails>;
235
-
236
- /**
237
- * The unpacked runtime message / details to be handled or dispatched by the ContainerRuntime
238
- *
239
- * IMPORTANT: when creating one to be serialized, set the properties in the order they appear here.
240
- * This way stringified values can be compared.
241
- *
242
- * @deprecated this is an internal type which should not be used outside of the package.
243
- * Internally, it is superseded by `TypedContainerRuntimeMessage`.
244
- *
245
- * @internal
246
- */
247
- export interface ContainerRuntimeMessage {
248
- /** Type of the op, within the ContainerRuntime's domain */
249
- type: ContainerMessageType;
250
- /** Domain-specific contents, interpreted according to the type */
251
- contents: any;
252
- /** Info describing how to handle this op in case the type is unrecognized (default: fail to process) */
253
- compatDetails?: IContainerRuntimeMessageCompatDetails;
254
- }