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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (694) hide show
  1. package/.eslintrc.cjs +5 -5
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +54 -0
  4. package/README.md +45 -0
  5. package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
  6. package/api-extractor-lint.json +1 -1
  7. package/api-extractor.json +1 -1
  8. package/api-report/container-runtime.api.md +425 -33
  9. package/dist/batchTracker.d.ts +1 -2
  10. package/dist/batchTracker.d.ts.map +1 -1
  11. package/dist/batchTracker.js.map +1 -1
  12. package/dist/blobManager.d.ts +0 -5
  13. package/dist/blobManager.d.ts.map +1 -1
  14. package/dist/blobManager.js +0 -12
  15. package/dist/blobManager.js.map +1 -1
  16. package/dist/channelCollection.d.ts +225 -0
  17. package/dist/channelCollection.d.ts.map +1 -0
  18. package/dist/{dataStores.js → channelCollection.js} +447 -147
  19. package/dist/channelCollection.js.map +1 -0
  20. package/dist/connectionTelemetry.d.ts +11 -1
  21. package/dist/connectionTelemetry.d.ts.map +1 -1
  22. package/dist/connectionTelemetry.js +42 -4
  23. package/dist/connectionTelemetry.js.map +1 -1
  24. package/dist/container-runtime-alpha.d.ts +129 -48
  25. package/dist/container-runtime-beta.d.ts +68 -9
  26. package/dist/container-runtime-public.d.ts +68 -9
  27. package/dist/container-runtime-untrimmed.d.ts +692 -49
  28. package/dist/containerHandleContext.d.ts +1 -1
  29. package/dist/containerHandleContext.d.ts.map +1 -1
  30. package/dist/containerHandleContext.js.map +1 -1
  31. package/dist/containerRuntime.d.ts +81 -64
  32. package/dist/containerRuntime.d.ts.map +1 -1
  33. package/dist/containerRuntime.js +503 -368
  34. package/dist/containerRuntime.js.map +1 -1
  35. package/dist/dataStore.d.ts +2 -3
  36. package/dist/dataStore.d.ts.map +1 -1
  37. package/dist/dataStore.js +12 -11
  38. package/dist/dataStore.js.map +1 -1
  39. package/dist/dataStoreContext.d.ts +118 -41
  40. package/dist/dataStoreContext.d.ts.map +1 -1
  41. package/dist/dataStoreContext.js +248 -159
  42. package/dist/dataStoreContext.js.map +1 -1
  43. package/dist/dataStoreContexts.d.ts +2 -1
  44. package/dist/dataStoreContexts.d.ts.map +1 -1
  45. package/dist/dataStoreContexts.js +1 -0
  46. package/dist/dataStoreContexts.js.map +1 -1
  47. package/dist/deltaManagerSummarizerProxy.d.ts +29 -4
  48. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  49. package/dist/deltaManagerSummarizerProxy.js +91 -5
  50. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  51. package/dist/gc/garbageCollection.d.ts +12 -6
  52. package/dist/gc/garbageCollection.d.ts.map +1 -1
  53. package/dist/gc/garbageCollection.js +116 -78
  54. package/dist/gc/garbageCollection.js.map +1 -1
  55. package/dist/gc/gcConfigs.d.ts +2 -2
  56. package/dist/gc/gcConfigs.d.ts.map +1 -1
  57. package/dist/gc/gcConfigs.js +30 -23
  58. package/dist/gc/gcConfigs.js.map +1 -1
  59. package/dist/gc/gcDefinitions.d.ts +22 -13
  60. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  61. package/dist/gc/gcDefinitions.js +7 -4
  62. package/dist/gc/gcDefinitions.js.map +1 -1
  63. package/dist/gc/gcHelpers.d.ts +2 -2
  64. package/dist/gc/gcHelpers.d.ts.map +1 -1
  65. package/dist/gc/gcHelpers.js.map +1 -1
  66. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +1 -1
  67. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -1
  68. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  69. package/dist/gc/gcSummaryStateTracker.d.ts +12 -5
  70. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  71. package/dist/gc/gcSummaryStateTracker.js +18 -6
  72. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  73. package/dist/gc/gcTelemetry.d.ts +6 -7
  74. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  75. package/dist/gc/gcTelemetry.js +20 -18
  76. package/dist/gc/gcTelemetry.js.map +1 -1
  77. package/dist/gc/gcUnreferencedStateTracker.d.ts +1 -1
  78. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  79. package/dist/gc/gcUnreferencedStateTracker.js +10 -10
  80. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  81. package/dist/gc/index.d.ts +8 -8
  82. package/dist/gc/index.d.ts.map +1 -1
  83. package/dist/gc/index.js +40 -39
  84. package/dist/gc/index.js.map +1 -1
  85. package/dist/index.d.ts +11 -21
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +36 -42
  88. package/dist/index.js.map +1 -1
  89. package/dist/messageTypes.d.ts +3 -3
  90. package/dist/messageTypes.d.ts.map +1 -1
  91. package/dist/messageTypes.js.map +1 -1
  92. package/dist/opLifecycle/batchManager.d.ts +2 -2
  93. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  94. package/dist/opLifecycle/batchManager.js.map +1 -1
  95. package/dist/opLifecycle/definitions.d.ts +2 -2
  96. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  97. package/dist/opLifecycle/definitions.js.map +1 -1
  98. package/dist/opLifecycle/index.d.ts +8 -8
  99. package/dist/opLifecycle/index.d.ts.map +1 -1
  100. package/dist/opLifecycle/index.js +18 -18
  101. package/dist/opLifecycle/index.js.map +1 -1
  102. package/dist/opLifecycle/opCompressor.d.ts +1 -1
  103. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  104. package/dist/opLifecycle/opCompressor.js +4 -4
  105. package/dist/opLifecycle/opCompressor.js.map +1 -1
  106. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  107. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  108. package/dist/opLifecycle/opDecompressor.js +3 -3
  109. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  110. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  111. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  112. package/dist/opLifecycle/opGroupingManager.js +1 -10
  113. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  114. package/dist/opLifecycle/opSplitter.d.ts +1 -1
  115. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  116. package/dist/opLifecycle/opSplitter.js +5 -5
  117. package/dist/opLifecycle/opSplitter.js.map +1 -1
  118. package/dist/opLifecycle/outbox.d.ts +7 -7
  119. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  120. package/dist/opLifecycle/outbox.js +20 -12
  121. package/dist/opLifecycle/outbox.js.map +1 -1
  122. package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -4
  123. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  124. package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
  125. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  126. package/dist/package.json +3 -0
  127. package/dist/packageVersion.d.ts +1 -1
  128. package/dist/packageVersion.js +1 -1
  129. package/dist/packageVersion.js.map +1 -1
  130. package/dist/pendingStateManager.d.ts +2 -1
  131. package/dist/pendingStateManager.d.ts.map +1 -1
  132. package/dist/pendingStateManager.js +18 -10
  133. package/dist/pendingStateManager.js.map +1 -1
  134. package/dist/scheduleManager.d.ts +1 -2
  135. package/dist/scheduleManager.d.ts.map +1 -1
  136. package/dist/scheduleManager.js +5 -5
  137. package/dist/scheduleManager.js.map +1 -1
  138. package/dist/summary/index.d.ts +12 -12
  139. package/dist/summary/index.d.ts.map +1 -1
  140. package/dist/summary/index.js +43 -43
  141. package/dist/summary/index.js.map +1 -1
  142. package/dist/summary/orderedClientElection.js +8 -8
  143. package/dist/summary/orderedClientElection.js.map +1 -1
  144. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  145. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  146. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  147. package/dist/summary/runningSummarizer.d.ts +5 -4
  148. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  149. package/dist/summary/runningSummarizer.js +47 -32
  150. package/dist/summary/runningSummarizer.js.map +1 -1
  151. package/dist/summary/summarizer.d.ts +4 -4
  152. package/dist/summary/summarizer.d.ts.map +1 -1
  153. package/dist/summary/summarizer.js +6 -6
  154. package/dist/summary/summarizer.js.map +1 -1
  155. package/dist/summary/summarizerClientElection.d.ts +2 -2
  156. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  157. package/dist/summary/summarizerClientElection.js.map +1 -1
  158. package/dist/summary/summarizerHeuristics.d.ts +3 -3
  159. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  160. package/dist/summary/summarizerHeuristics.js.map +1 -1
  161. package/dist/summary/summarizerNode/index.d.ts +3 -3
  162. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  163. package/dist/summary/summarizerNode/index.js +4 -4
  164. package/dist/summary/summarizerNode/index.js.map +1 -1
  165. package/dist/summary/summarizerNode/summarizerNode.d.ts +16 -5
  166. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  167. package/dist/summary/summarizerNode/summarizerNode.js +40 -10
  168. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  169. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +9 -1
  170. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  171. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  172. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +3 -4
  173. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  174. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +12 -12
  175. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  176. package/dist/summary/summarizerTypes.d.ts +9 -20
  177. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  178. package/dist/summary/summarizerTypes.js.map +1 -1
  179. package/dist/summary/summaryFormat.d.ts +15 -2
  180. package/dist/summary/summaryFormat.d.ts.map +1 -1
  181. package/dist/summary/summaryFormat.js.map +1 -1
  182. package/dist/summary/summaryGenerator.d.ts +6 -5
  183. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  184. package/dist/summary/summaryGenerator.js +10 -1
  185. package/dist/summary/summaryGenerator.js.map +1 -1
  186. package/dist/summary/summaryManager.d.ts +5 -6
  187. package/dist/summary/summaryManager.d.ts.map +1 -1
  188. package/dist/summary/summaryManager.js +4 -5
  189. package/dist/summary/summaryManager.js.map +1 -1
  190. package/dist/tsdoc-metadata.json +1 -1
  191. package/lib/{batchTracker.d.mts → batchTracker.d.ts} +2 -3
  192. package/lib/batchTracker.d.ts.map +1 -0
  193. package/lib/{batchTracker.mjs → batchTracker.js} +1 -1
  194. package/lib/batchTracker.js.map +1 -0
  195. package/lib/{blobManager.d.mts → blobManager.d.ts} +1 -6
  196. package/lib/blobManager.d.ts.map +1 -0
  197. package/lib/{blobManager.mjs → blobManager.js} +1 -13
  198. package/lib/blobManager.js.map +1 -0
  199. package/lib/channelCollection.d.ts +225 -0
  200. package/lib/channelCollection.d.ts.map +1 -0
  201. package/lib/{dataStores.mjs → channelCollection.js} +434 -137
  202. package/lib/channelCollection.js.map +1 -0
  203. package/lib/{connectionTelemetry.d.mts → connectionTelemetry.d.ts} +12 -2
  204. package/lib/connectionTelemetry.d.ts.map +1 -0
  205. package/lib/{connectionTelemetry.mjs → connectionTelemetry.js} +43 -5
  206. package/lib/connectionTelemetry.js.map +1 -0
  207. package/lib/{container-runtime-alpha.d.mts → container-runtime-alpha.d.ts} +129 -48
  208. package/lib/{container-runtime-beta.d.mts → container-runtime-beta.d.ts} +68 -9
  209. package/lib/{container-runtime-public.d.mts → container-runtime-public.d.ts} +68 -9
  210. package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +692 -49
  211. package/lib/{containerHandleContext.d.mts → containerHandleContext.d.ts} +2 -2
  212. package/lib/containerHandleContext.d.ts.map +1 -0
  213. package/lib/{containerHandleContext.mjs → containerHandleContext.js} +1 -1
  214. package/lib/containerHandleContext.js.map +1 -0
  215. package/lib/{containerRuntime.d.mts → containerRuntime.d.ts} +86 -65
  216. package/lib/containerRuntime.d.ts.map +1 -0
  217. package/lib/{containerRuntime.mjs → containerRuntime.js} +423 -290
  218. package/lib/containerRuntime.js.map +1 -0
  219. package/lib/{dataStore.d.mts → dataStore.d.ts} +3 -4
  220. package/lib/dataStore.d.ts.map +1 -0
  221. package/lib/{dataStore.mjs → dataStore.js} +13 -12
  222. package/lib/dataStore.js.map +1 -0
  223. package/lib/{dataStoreContext.d.mts → dataStoreContext.d.ts} +119 -42
  224. package/lib/dataStoreContext.d.ts.map +1 -0
  225. package/lib/{dataStoreContext.mjs → dataStoreContext.js} +240 -151
  226. package/lib/dataStoreContext.js.map +1 -0
  227. package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +3 -2
  228. package/lib/dataStoreContexts.d.ts.map +1 -0
  229. package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +2 -1
  230. package/lib/dataStoreContexts.js.map +1 -0
  231. package/lib/{dataStoreRegistry.d.mts → dataStoreRegistry.d.ts} +1 -1
  232. package/lib/dataStoreRegistry.d.ts.map +1 -0
  233. package/lib/{dataStoreRegistry.mjs → dataStoreRegistry.js} +5 -1
  234. package/lib/dataStoreRegistry.js.map +1 -0
  235. package/{dist/deltaManagerProxyBase.d.ts → lib/deltaManagerSummarizerProxy.d.ts} +16 -7
  236. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
  237. package/lib/deltaManagerSummarizerProxy.js +124 -0
  238. package/lib/deltaManagerSummarizerProxy.js.map +1 -0
  239. package/lib/{deltaScheduler.d.mts → deltaScheduler.d.ts} +1 -1
  240. package/lib/deltaScheduler.d.ts.map +1 -0
  241. package/lib/{deltaScheduler.mjs → deltaScheduler.js} +1 -1
  242. package/lib/deltaScheduler.js.map +1 -0
  243. package/lib/{error.d.mts → error.d.ts} +1 -1
  244. package/lib/error.d.ts.map +1 -0
  245. package/lib/{error.mjs → error.js} +1 -1
  246. package/lib/error.js.map +1 -0
  247. package/lib/gc/{garbageCollection.d.mts → garbageCollection.d.ts} +13 -7
  248. package/lib/gc/garbageCollection.d.ts.map +1 -0
  249. package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +79 -41
  250. package/lib/gc/garbageCollection.js.map +1 -0
  251. package/lib/gc/{gcConfigs.d.mts → gcConfigs.d.ts} +3 -3
  252. package/lib/gc/gcConfigs.d.ts.map +1 -0
  253. package/lib/gc/{gcConfigs.mjs → gcConfigs.js} +14 -7
  254. package/lib/gc/gcConfigs.js.map +1 -0
  255. package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +23 -14
  256. package/lib/gc/gcDefinitions.d.ts.map +1 -0
  257. package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +7 -4
  258. package/lib/gc/gcDefinitions.js.map +1 -0
  259. package/lib/gc/{gcHelpers.d.mts → gcHelpers.d.ts} +3 -3
  260. package/lib/gc/{gcHelpers.d.mts.map → gcHelpers.d.ts.map} +1 -1
  261. package/lib/gc/{gcHelpers.mjs → gcHelpers.js} +1 -1
  262. package/lib/gc/gcHelpers.js.map +1 -0
  263. package/lib/gc/{gcReferenceGraphAlgorithm.d.mts → gcReferenceGraphAlgorithm.d.ts} +2 -2
  264. package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  265. package/lib/gc/{gcReferenceGraphAlgorithm.mjs → gcReferenceGraphAlgorithm.js} +1 -1
  266. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
  267. package/lib/gc/{gcSummaryDefinitions.d.mts → gcSummaryDefinitions.d.ts} +1 -1
  268. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
  269. package/lib/gc/{gcSummaryDefinitions.mjs → gcSummaryDefinitions.js} +1 -1
  270. package/lib/gc/gcSummaryDefinitions.js.map +1 -0
  271. package/lib/gc/{gcSummaryStateTracker.d.mts → gcSummaryStateTracker.d.ts} +13 -6
  272. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
  273. package/lib/gc/{gcSummaryStateTracker.mjs → gcSummaryStateTracker.js} +17 -5
  274. package/lib/gc/gcSummaryStateTracker.js.map +1 -0
  275. package/lib/gc/{gcTelemetry.d.mts → gcTelemetry.d.ts} +7 -8
  276. package/lib/gc/gcTelemetry.d.ts.map +1 -0
  277. package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +5 -3
  278. package/lib/gc/gcTelemetry.js.map +1 -0
  279. package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +2 -2
  280. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  281. package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +2 -2
  282. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
  283. package/lib/gc/index.d.ts +13 -0
  284. package/lib/gc/index.d.ts.map +1 -0
  285. package/lib/gc/{index.mjs → index.js} +8 -8
  286. package/lib/gc/index.js.map +1 -0
  287. package/lib/{index.d.mts → index.d.ts} +12 -22
  288. package/lib/index.d.ts.map +1 -0
  289. package/lib/index.js +15 -0
  290. package/lib/index.js.map +1 -0
  291. package/lib/{messageTypes.d.mts → messageTypes.d.ts} +4 -4
  292. package/lib/messageTypes.d.ts.map +1 -0
  293. package/lib/{messageTypes.mjs → messageTypes.js} +1 -1
  294. package/lib/messageTypes.js.map +1 -0
  295. package/lib/{metadata.d.mts → metadata.d.ts} +1 -1
  296. package/lib/metadata.d.ts.map +1 -0
  297. package/lib/{metadata.mjs → metadata.js} +1 -1
  298. package/lib/metadata.js.map +1 -0
  299. package/lib/opLifecycle/{batchManager.d.mts → batchManager.d.ts} +3 -3
  300. package/lib/opLifecycle/batchManager.d.ts.map +1 -0
  301. package/lib/opLifecycle/{batchManager.mjs → batchManager.js} +1 -1
  302. package/lib/opLifecycle/batchManager.js.map +1 -0
  303. package/lib/opLifecycle/{definitions.d.mts → definitions.d.ts} +3 -3
  304. package/lib/opLifecycle/definitions.d.ts.map +1 -0
  305. package/lib/opLifecycle/{definitions.mjs → definitions.js} +1 -1
  306. package/lib/opLifecycle/definitions.js.map +1 -0
  307. package/lib/opLifecycle/index.d.ts +13 -0
  308. package/lib/opLifecycle/index.d.ts.map +1 -0
  309. package/lib/opLifecycle/index.js +12 -0
  310. package/lib/opLifecycle/index.js.map +1 -0
  311. package/lib/opLifecycle/{opCompressor.d.mts → opCompressor.d.ts} +2 -2
  312. package/lib/opLifecycle/opCompressor.d.ts.map +1 -0
  313. package/lib/opLifecycle/{opCompressor.mjs → opCompressor.js} +3 -3
  314. package/lib/opLifecycle/opCompressor.js.map +1 -0
  315. package/lib/opLifecycle/{opDecompressor.d.mts → opDecompressor.d.ts} +2 -2
  316. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -0
  317. package/lib/opLifecycle/{opDecompressor.mjs → opDecompressor.js} +2 -2
  318. package/lib/opLifecycle/opDecompressor.js.map +1 -0
  319. package/lib/opLifecycle/{opGroupingManager.d.mts → opGroupingManager.d.ts} +2 -2
  320. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
  321. package/lib/opLifecycle/{opGroupingManager.mjs → opGroupingManager.js} +2 -11
  322. package/lib/opLifecycle/opGroupingManager.js.map +1 -0
  323. package/lib/opLifecycle/{opSplitter.d.mts → opSplitter.d.ts} +2 -2
  324. package/lib/opLifecycle/opSplitter.d.ts.map +1 -0
  325. package/lib/opLifecycle/{opSplitter.mjs → opSplitter.js} +3 -3
  326. package/lib/opLifecycle/opSplitter.js.map +1 -0
  327. package/lib/opLifecycle/{outbox.d.mts → outbox.d.ts} +8 -8
  328. package/lib/opLifecycle/outbox.d.ts.map +1 -0
  329. package/lib/opLifecycle/{outbox.mjs → outbox.js} +12 -4
  330. package/lib/opLifecycle/outbox.js.map +1 -0
  331. package/lib/opLifecycle/{remoteMessageProcessor.d.mts → remoteMessageProcessor.d.ts} +5 -5
  332. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  333. package/lib/opLifecycle/{remoteMessageProcessor.mjs → remoteMessageProcessor.js} +2 -2
  334. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -0
  335. package/lib/{opProperties.d.mts → opProperties.d.ts} +1 -1
  336. package/lib/opProperties.d.ts.map +1 -0
  337. package/lib/{opProperties.mjs → opProperties.js} +1 -1
  338. package/lib/opProperties.js.map +1 -0
  339. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  340. package/lib/packageVersion.d.ts.map +1 -0
  341. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  342. package/lib/packageVersion.js.map +1 -0
  343. package/lib/{pendingStateManager.d.mts → pendingStateManager.d.ts} +3 -2
  344. package/lib/pendingStateManager.d.ts.map +1 -0
  345. package/lib/{pendingStateManager.mjs → pendingStateManager.js} +18 -10
  346. package/lib/pendingStateManager.js.map +1 -0
  347. package/lib/{scheduleManager.d.mts → scheduleManager.d.ts} +6 -3
  348. package/lib/scheduleManager.d.ts.map +1 -0
  349. package/lib/{scheduleManager.mjs → scheduleManager.js} +3 -3
  350. package/lib/scheduleManager.js.map +1 -0
  351. package/lib/{storageServiceWithAttachBlobs.d.mts → storageServiceWithAttachBlobs.d.ts} +1 -1
  352. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
  353. package/lib/{storageServiceWithAttachBlobs.mjs → storageServiceWithAttachBlobs.js} +1 -1
  354. package/lib/storageServiceWithAttachBlobs.js.map +1 -0
  355. package/lib/summary/{index.d.mts → index.d.ts} +13 -13
  356. package/lib/summary/index.d.ts.map +1 -0
  357. package/lib/summary/{index.mjs → index.js} +12 -12
  358. package/lib/summary/index.js.map +1 -0
  359. package/lib/summary/{orderedClientElection.d.mts → orderedClientElection.d.ts} +5 -1
  360. package/lib/summary/orderedClientElection.d.ts.map +1 -0
  361. package/lib/summary/{orderedClientElection.mjs → orderedClientElection.js} +2 -2
  362. package/lib/summary/orderedClientElection.js.map +1 -0
  363. package/lib/summary/{runWhileConnectedCoordinator.d.mts → runWhileConnectedCoordinator.d.ts} +2 -2
  364. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  365. package/lib/summary/{runWhileConnectedCoordinator.mjs → runWhileConnectedCoordinator.js} +1 -1
  366. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
  367. package/lib/summary/{runningSummarizer.d.mts → runningSummarizer.d.ts} +6 -5
  368. package/lib/summary/runningSummarizer.d.ts.map +1 -0
  369. package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +41 -26
  370. package/lib/summary/runningSummarizer.js.map +1 -0
  371. package/lib/summary/{summarizer.d.mts → summarizer.d.ts} +5 -5
  372. package/lib/summary/summarizer.d.ts.map +1 -0
  373. package/lib/summary/{summarizer.mjs → summarizer.js} +4 -4
  374. package/lib/summary/summarizer.js.map +1 -0
  375. package/lib/summary/{summarizerClientElection.d.mts → summarizerClientElection.d.ts} +3 -3
  376. package/lib/summary/summarizerClientElection.d.ts.map +1 -0
  377. package/lib/summary/{summarizerClientElection.mjs → summarizerClientElection.js} +1 -1
  378. package/lib/summary/summarizerClientElection.js.map +1 -0
  379. package/lib/summary/{summarizerHeuristics.d.mts → summarizerHeuristics.d.ts} +4 -4
  380. package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
  381. package/lib/summary/{summarizerHeuristics.mjs → summarizerHeuristics.js} +1 -1
  382. package/lib/summary/summarizerHeuristics.js.map +1 -0
  383. package/lib/summary/summarizerNode/{index.d.mts → index.d.ts} +4 -4
  384. package/lib/summary/summarizerNode/index.d.ts.map +1 -0
  385. package/lib/summary/summarizerNode/index.js +7 -0
  386. package/lib/summary/summarizerNode/index.js.map +1 -0
  387. package/lib/summary/summarizerNode/{summarizerNode.d.mts → summarizerNode.d.ts} +17 -6
  388. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  389. package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +34 -4
  390. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
  391. package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +10 -2
  392. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  393. package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -1
  394. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
  395. package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +4 -5
  396. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  397. package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +7 -7
  398. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
  399. package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +10 -21
  400. package/lib/summary/summarizerTypes.d.ts.map +1 -0
  401. package/lib/summary/{summarizerTypes.mjs → summarizerTypes.js} +1 -1
  402. package/lib/summary/summarizerTypes.js.map +1 -0
  403. package/lib/summary/{summaryCollection.d.mts → summaryCollection.d.ts} +1 -1
  404. package/lib/summary/summaryCollection.d.ts.map +1 -0
  405. package/lib/summary/{summaryCollection.mjs → summaryCollection.js} +1 -1
  406. package/lib/summary/summaryCollection.js.map +1 -0
  407. package/lib/summary/{summaryFormat.d.mts → summaryFormat.d.ts} +16 -3
  408. package/lib/summary/summaryFormat.d.ts.map +1 -0
  409. package/lib/summary/{summaryFormat.mjs → summaryFormat.js} +1 -1
  410. package/lib/summary/summaryFormat.js.map +1 -0
  411. package/lib/summary/{summaryGenerator.d.mts → summaryGenerator.d.ts} +7 -6
  412. package/lib/summary/summaryGenerator.d.ts.map +1 -0
  413. package/lib/summary/{summaryGenerator.mjs → summaryGenerator.js} +11 -2
  414. package/lib/summary/summaryGenerator.js.map +1 -0
  415. package/lib/summary/{summaryManager.d.mts → summaryManager.d.ts} +6 -7
  416. package/lib/summary/summaryManager.d.ts.map +1 -0
  417. package/lib/summary/{summaryManager.mjs → summaryManager.js} +4 -5
  418. package/lib/summary/summaryManager.js.map +1 -0
  419. package/lib/test/batchTracker.spec.js +88 -0
  420. package/lib/test/batchTracker.spec.js.map +1 -0
  421. package/lib/test/blobManager.spec.js +835 -0
  422. package/lib/test/blobManager.spec.js.map +1 -0
  423. package/lib/test/channelCollection.spec.js +138 -0
  424. package/lib/test/channelCollection.spec.js.map +1 -0
  425. package/lib/test/containerRuntime.spec.js +1748 -0
  426. package/lib/test/containerRuntime.spec.js.map +1 -0
  427. package/lib/test/dataStoreContext.spec.js +771 -0
  428. package/lib/test/dataStoreContext.spec.js.map +1 -0
  429. package/lib/test/dataStoreCreation.spec.js +303 -0
  430. package/lib/test/dataStoreCreation.spec.js.map +1 -0
  431. package/lib/test/dataStoreRegistry.spec.js +26 -0
  432. package/lib/test/dataStoreRegistry.spec.js.map +1 -0
  433. package/lib/test/fuzz/fuzzUtils.js +66 -0
  434. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  435. package/lib/test/fuzz/summarizer.fuzz.spec.js +31 -0
  436. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +1 -0
  437. package/lib/test/fuzz/summarizerFuzzMocks.js +162 -0
  438. package/lib/test/fuzz/summarizerFuzzMocks.js.map +1 -0
  439. package/lib/test/fuzz/summarizerFuzzSuite.js +106 -0
  440. package/lib/test/fuzz/summarizerFuzzSuite.js.map +1 -0
  441. package/lib/test/gc/garbageCollection.spec.js +1464 -0
  442. package/lib/test/gc/garbageCollection.spec.js.map +1 -0
  443. package/lib/test/gc/gcConfigs.spec.js +689 -0
  444. package/lib/test/gc/gcConfigs.spec.js.map +1 -0
  445. package/lib/test/gc/gcHelpers.spec.js +110 -0
  446. package/lib/test/gc/gcHelpers.spec.js.map +1 -0
  447. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +68 -0
  448. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +1 -0
  449. package/lib/test/gc/gcStats.spec.js +390 -0
  450. package/lib/test/gc/gcStats.spec.js.map +1 -0
  451. package/lib/test/gc/gcSummaryStateTracker.spec.js +228 -0
  452. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +1 -0
  453. package/lib/test/gc/gcTelemetry.spec.js +530 -0
  454. package/lib/test/gc/gcTelemetry.spec.js.map +1 -0
  455. package/lib/test/gc/gcUnitTestHelpers.js +29 -0
  456. package/lib/test/gc/gcUnitTestHelpers.js.map +1 -0
  457. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +192 -0
  458. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +1 -0
  459. package/lib/test/getPendingBlobs.spec.js +193 -0
  460. package/lib/test/getPendingBlobs.spec.js.map +1 -0
  461. package/lib/test/hardwareStats.spec.js +93 -0
  462. package/lib/test/hardwareStats.spec.js.map +1 -0
  463. package/lib/test/index.js +6 -0
  464. package/lib/test/index.js.map +1 -0
  465. package/lib/test/opLifecycle/OpGroupingManager.spec.js +225 -0
  466. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +1 -0
  467. package/lib/test/opLifecycle/batchManager.spec.js +189 -0
  468. package/lib/test/opLifecycle/batchManager.spec.js.map +1 -0
  469. package/lib/test/opLifecycle/opCompressor.spec.js +74 -0
  470. package/lib/test/opLifecycle/opCompressor.spec.js.map +1 -0
  471. package/lib/test/opLifecycle/opDecompressor.spec.js +218 -0
  472. package/lib/test/opLifecycle/opDecompressor.spec.js.map +1 -0
  473. package/lib/test/opLifecycle/opSplitter.spec.js +272 -0
  474. package/lib/test/opLifecycle/opSplitter.spec.js.map +1 -0
  475. package/lib/test/opLifecycle/outbox.spec.js +675 -0
  476. package/lib/test/opLifecycle/outbox.spec.js.map +1 -0
  477. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +196 -0
  478. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +1 -0
  479. package/lib/test/pendingStateManager.spec.js +329 -0
  480. package/lib/test/pendingStateManager.spec.js.map +1 -0
  481. package/lib/test/scheduleManager.spec.js +270 -0
  482. package/lib/test/scheduleManager.spec.js.map +1 -0
  483. package/lib/test/summarizerNode.spec.js +326 -0
  484. package/lib/test/summarizerNode.spec.js.map +1 -0
  485. package/lib/test/summarizerNodeWithGc.spec.js +318 -0
  486. package/lib/test/summarizerNodeWithGc.spec.js.map +1 -0
  487. package/lib/test/summary/orderedClientElection.spec.js +535 -0
  488. package/lib/test/summary/orderedClientElection.spec.js.map +1 -0
  489. package/lib/test/summary/runningSummarizer.spec.js +1349 -0
  490. package/lib/test/summary/runningSummarizer.spec.js.map +1 -0
  491. package/lib/test/summary/summarizer.spec.js +29 -0
  492. package/lib/test/summary/summarizer.spec.js.map +1 -0
  493. package/lib/test/summary/summarizerClientElection.spec.js +436 -0
  494. package/lib/test/summary/summarizerClientElection.spec.js.map +1 -0
  495. package/lib/test/summary/summarizerHeuristics.spec.js +289 -0
  496. package/lib/test/summary/summarizerHeuristics.spec.js.map +1 -0
  497. package/lib/test/summary/summaryCollection.spec.js +200 -0
  498. package/lib/test/summary/summaryCollection.spec.js.map +1 -0
  499. package/lib/test/summary/summaryManager.spec.js +430 -0
  500. package/lib/test/summary/summaryManager.spec.js.map +1 -0
  501. package/lib/test/summary/testQuorumClients.js +34 -0
  502. package/lib/test/summary/testQuorumClients.js.map +1 -0
  503. package/lib/test/throttler.spec.js +175 -0
  504. package/lib/test/throttler.spec.js.map +1 -0
  505. package/lib/test/types/validateContainerRuntimePrevious.generated.js +180 -0
  506. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +1 -0
  507. package/lib/{throttler.d.mts → throttler.d.ts} +1 -1
  508. package/lib/throttler.d.ts.map +1 -0
  509. package/lib/{throttler.mjs → throttler.js} +1 -1
  510. package/lib/throttler.js.map +1 -0
  511. package/package.json +101 -88
  512. package/src/batchTracker.ts +1 -1
  513. package/src/blobManager.ts +1 -15
  514. package/src/{dataStores.ts → channelCollection.ts} +620 -175
  515. package/src/connectionTelemetry.ts +42 -3
  516. package/src/containerHandleContext.ts +1 -1
  517. package/src/containerRuntime.ts +604 -415
  518. package/src/dataStore.ts +16 -15
  519. package/src/dataStoreContext.ts +376 -216
  520. package/src/dataStoreContexts.ts +2 -1
  521. package/src/deltaManagerSummarizerProxy.ts +132 -7
  522. package/src/gc/garbageCollection.ts +84 -44
  523. package/src/gc/gcConfigs.ts +17 -7
  524. package/src/gc/gcDefinitions.ts +23 -13
  525. package/src/gc/gcHelpers.ts +2 -2
  526. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  527. package/src/gc/gcSummaryStateTracker.ts +19 -7
  528. package/src/gc/gcTelemetry.ts +9 -7
  529. package/src/gc/gcUnreferencedStateTracker.ts +1 -1
  530. package/src/gc/index.ts +10 -9
  531. package/src/index.ts +28 -27
  532. package/src/messageTypes.ts +3 -3
  533. package/src/opLifecycle/README.md +2 -4
  534. package/src/opLifecycle/batchManager.ts +2 -2
  535. package/src/opLifecycle/definitions.ts +2 -2
  536. package/src/opLifecycle/index.ts +8 -8
  537. package/src/opLifecycle/opCompressor.ts +3 -3
  538. package/src/opLifecycle/opDecompressor.ts +3 -3
  539. package/src/opLifecycle/opGroupingManager.ts +3 -12
  540. package/src/opLifecycle/opSplitter.ts +3 -3
  541. package/src/opLifecycle/outbox.ts +29 -9
  542. package/src/opLifecycle/remoteMessageProcessor.ts +4 -4
  543. package/src/packageVersion.ts +1 -1
  544. package/src/pendingStateManager.ts +19 -13
  545. package/src/scheduleManager.ts +4 -4
  546. package/src/summary/index.ts +13 -12
  547. package/src/summary/orderedClientElection.ts +1 -1
  548. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  549. package/src/summary/runningSummarizer.ts +52 -32
  550. package/src/summary/summarizer.ts +7 -7
  551. package/src/summary/summarizerClientElection.ts +2 -2
  552. package/src/summary/summarizerHeuristics.ts +3 -3
  553. package/src/summary/summarizerNode/index.ts +6 -3
  554. package/src/summary/summarizerNode/summarizerNode.ts +50 -5
  555. package/src/summary/summarizerNode/summarizerNodeUtils.ts +14 -1
  556. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -11
  557. package/src/summary/summarizerTypes.ts +11 -23
  558. package/src/summary/summaryFormat.ts +16 -2
  559. package/src/summary/summaryGenerator.ts +16 -4
  560. package/src/summary/summaryManager.ts +6 -7
  561. package/tsconfig.cjs.json +7 -0
  562. package/tsconfig.json +2 -5
  563. package/dist/dataStores.d.ts +0 -151
  564. package/dist/dataStores.d.ts.map +0 -1
  565. package/dist/dataStores.js.map +0 -1
  566. package/dist/deltaManagerProxyBase.d.ts.map +0 -1
  567. package/dist/deltaManagerProxyBase.js +0 -77
  568. package/dist/deltaManagerProxyBase.js.map +0 -1
  569. package/lib/batchTracker.d.mts.map +0 -1
  570. package/lib/batchTracker.mjs.map +0 -1
  571. package/lib/blobManager.d.mts.map +0 -1
  572. package/lib/blobManager.mjs.map +0 -1
  573. package/lib/connectionTelemetry.d.mts.map +0 -1
  574. package/lib/connectionTelemetry.mjs.map +0 -1
  575. package/lib/containerHandleContext.d.mts.map +0 -1
  576. package/lib/containerHandleContext.mjs.map +0 -1
  577. package/lib/containerRuntime.d.mts.map +0 -1
  578. package/lib/containerRuntime.mjs.map +0 -1
  579. package/lib/dataStore.d.mts.map +0 -1
  580. package/lib/dataStore.mjs.map +0 -1
  581. package/lib/dataStoreContext.d.mts.map +0 -1
  582. package/lib/dataStoreContext.mjs.map +0 -1
  583. package/lib/dataStoreContexts.d.mts.map +0 -1
  584. package/lib/dataStoreContexts.mjs.map +0 -1
  585. package/lib/dataStoreRegistry.d.mts.map +0 -1
  586. package/lib/dataStoreRegistry.mjs.map +0 -1
  587. package/lib/dataStores.d.mts +0 -151
  588. package/lib/dataStores.d.mts.map +0 -1
  589. package/lib/dataStores.mjs.map +0 -1
  590. package/lib/deltaManagerProxyBase.d.mts +0 -35
  591. package/lib/deltaManagerProxyBase.d.mts.map +0 -1
  592. package/lib/deltaManagerProxyBase.mjs +0 -73
  593. package/lib/deltaManagerProxyBase.mjs.map +0 -1
  594. package/lib/deltaManagerSummarizerProxy.d.mts +0 -19
  595. package/lib/deltaManagerSummarizerProxy.d.mts.map +0 -1
  596. package/lib/deltaManagerSummarizerProxy.mjs +0 -38
  597. package/lib/deltaManagerSummarizerProxy.mjs.map +0 -1
  598. package/lib/deltaScheduler.d.mts.map +0 -1
  599. package/lib/deltaScheduler.mjs.map +0 -1
  600. package/lib/error.d.mts.map +0 -1
  601. package/lib/error.mjs.map +0 -1
  602. package/lib/gc/garbageCollection.d.mts.map +0 -1
  603. package/lib/gc/garbageCollection.mjs.map +0 -1
  604. package/lib/gc/gcConfigs.d.mts.map +0 -1
  605. package/lib/gc/gcConfigs.mjs.map +0 -1
  606. package/lib/gc/gcDefinitions.d.mts.map +0 -1
  607. package/lib/gc/gcDefinitions.mjs.map +0 -1
  608. package/lib/gc/gcHelpers.mjs.map +0 -1
  609. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +0 -1
  610. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +0 -1
  611. package/lib/gc/gcSummaryDefinitions.d.mts.map +0 -1
  612. package/lib/gc/gcSummaryDefinitions.mjs.map +0 -1
  613. package/lib/gc/gcSummaryStateTracker.d.mts.map +0 -1
  614. package/lib/gc/gcSummaryStateTracker.mjs.map +0 -1
  615. package/lib/gc/gcTelemetry.d.mts.map +0 -1
  616. package/lib/gc/gcTelemetry.mjs.map +0 -1
  617. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +0 -1
  618. package/lib/gc/gcUnreferencedStateTracker.mjs.map +0 -1
  619. package/lib/gc/index.d.mts +0 -13
  620. package/lib/gc/index.d.mts.map +0 -1
  621. package/lib/gc/index.mjs.map +0 -1
  622. package/lib/index.d.mts.map +0 -1
  623. package/lib/index.mjs +0 -25
  624. package/lib/index.mjs.map +0 -1
  625. package/lib/messageTypes.d.mts.map +0 -1
  626. package/lib/messageTypes.mjs.map +0 -1
  627. package/lib/metadata.d.mts.map +0 -1
  628. package/lib/metadata.mjs.map +0 -1
  629. package/lib/opLifecycle/batchManager.d.mts.map +0 -1
  630. package/lib/opLifecycle/batchManager.mjs.map +0 -1
  631. package/lib/opLifecycle/definitions.d.mts.map +0 -1
  632. package/lib/opLifecycle/definitions.mjs.map +0 -1
  633. package/lib/opLifecycle/index.d.mts +0 -13
  634. package/lib/opLifecycle/index.d.mts.map +0 -1
  635. package/lib/opLifecycle/index.mjs +0 -12
  636. package/lib/opLifecycle/index.mjs.map +0 -1
  637. package/lib/opLifecycle/opCompressor.d.mts.map +0 -1
  638. package/lib/opLifecycle/opCompressor.mjs.map +0 -1
  639. package/lib/opLifecycle/opDecompressor.d.mts.map +0 -1
  640. package/lib/opLifecycle/opDecompressor.mjs.map +0 -1
  641. package/lib/opLifecycle/opGroupingManager.d.mts.map +0 -1
  642. package/lib/opLifecycle/opGroupingManager.mjs.map +0 -1
  643. package/lib/opLifecycle/opSplitter.d.mts.map +0 -1
  644. package/lib/opLifecycle/opSplitter.mjs.map +0 -1
  645. package/lib/opLifecycle/outbox.d.mts.map +0 -1
  646. package/lib/opLifecycle/outbox.mjs.map +0 -1
  647. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +0 -1
  648. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +0 -1
  649. package/lib/opProperties.d.mts.map +0 -1
  650. package/lib/opProperties.mjs.map +0 -1
  651. package/lib/packageVersion.d.mts.map +0 -1
  652. package/lib/packageVersion.mjs.map +0 -1
  653. package/lib/pendingStateManager.d.mts.map +0 -1
  654. package/lib/pendingStateManager.mjs.map +0 -1
  655. package/lib/scheduleManager.d.mts.map +0 -1
  656. package/lib/scheduleManager.mjs.map +0 -1
  657. package/lib/storageServiceWithAttachBlobs.d.mts.map +0 -1
  658. package/lib/storageServiceWithAttachBlobs.mjs.map +0 -1
  659. package/lib/summary/index.d.mts.map +0 -1
  660. package/lib/summary/index.mjs.map +0 -1
  661. package/lib/summary/orderedClientElection.d.mts.map +0 -1
  662. package/lib/summary/orderedClientElection.mjs.map +0 -1
  663. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +0 -1
  664. package/lib/summary/runWhileConnectedCoordinator.mjs.map +0 -1
  665. package/lib/summary/runningSummarizer.d.mts.map +0 -1
  666. package/lib/summary/runningSummarizer.mjs.map +0 -1
  667. package/lib/summary/summarizer.d.mts.map +0 -1
  668. package/lib/summary/summarizer.mjs.map +0 -1
  669. package/lib/summary/summarizerClientElection.d.mts.map +0 -1
  670. package/lib/summary/summarizerClientElection.mjs.map +0 -1
  671. package/lib/summary/summarizerHeuristics.d.mts.map +0 -1
  672. package/lib/summary/summarizerHeuristics.mjs.map +0 -1
  673. package/lib/summary/summarizerNode/index.d.mts.map +0 -1
  674. package/lib/summary/summarizerNode/index.mjs +0 -7
  675. package/lib/summary/summarizerNode/index.mjs.map +0 -1
  676. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +0 -1
  677. package/lib/summary/summarizerNode/summarizerNode.mjs.map +0 -1
  678. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +0 -1
  679. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +0 -1
  680. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +0 -1
  681. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +0 -1
  682. package/lib/summary/summarizerTypes.d.mts.map +0 -1
  683. package/lib/summary/summarizerTypes.mjs.map +0 -1
  684. package/lib/summary/summaryCollection.d.mts.map +0 -1
  685. package/lib/summary/summaryCollection.mjs.map +0 -1
  686. package/lib/summary/summaryFormat.d.mts.map +0 -1
  687. package/lib/summary/summaryFormat.mjs.map +0 -1
  688. package/lib/summary/summaryGenerator.d.mts.map +0 -1
  689. package/lib/summary/summaryGenerator.mjs.map +0 -1
  690. package/lib/summary/summaryManager.d.mts.map +0 -1
  691. package/lib/summary/summaryManager.mjs.map +0 -1
  692. package/lib/throttler.d.mts.map +0 -1
  693. package/lib/throttler.mjs.map +0 -1
  694. package/src/deltaManagerProxyBase.ts +0 -111
@@ -10,28 +10,28 @@ export {
10
10
  ITrackedClient,
11
11
  OrderedClientCollection,
12
12
  OrderedClientElection,
13
- } from "./orderedClientElection";
14
- export { defaultMaxAttemptsForSubmitFailures, RunningSummarizer } from "./runningSummarizer";
13
+ } from "./orderedClientElection.js";
14
+ export { defaultMaxAttemptsForSubmitFailures, RunningSummarizer } from "./runningSummarizer.js";
15
15
  export {
16
16
  ICancellableSummarizerController,
17
17
  neverCancelledSummaryToken,
18
18
  RunWhileConnectedCoordinator,
19
- } from "./runWhileConnectedCoordinator";
20
- export { Summarizer } from "./summarizer";
19
+ } from "./runWhileConnectedCoordinator.js";
20
+ export { Summarizer } from "./summarizer.js";
21
21
  export {
22
22
  ISummarizerClientElection,
23
23
  ISummarizerClientElectionEvents,
24
24
  SummarizerClientElection,
25
25
  summarizerClientType,
26
- } from "./summarizerClientElection";
27
- export { SummarizeHeuristicData, SummarizeHeuristicRunner } from "./summarizerHeuristics";
26
+ } from "./summarizerClientElection.js";
27
+ export { SummarizeHeuristicData, SummarizeHeuristicRunner } from "./summarizerHeuristics.js";
28
28
  export {
29
29
  createRootSummarizerNode,
30
30
  createRootSummarizerNodeWithGC,
31
31
  IRefreshSummaryResult,
32
32
  IRootSummarizerNode,
33
33
  IRootSummarizerNodeWithGC,
34
- } from "./summarizerNode";
34
+ } from "./summarizerNode/index.js";
35
35
  export {
36
36
  IConnectableRuntime,
37
37
  IGeneratedSummaryStats,
@@ -65,7 +65,7 @@ export {
65
65
  SummaryStage,
66
66
  IRetriableFailureResult,
67
67
  ISummarizeEventProps,
68
- } from "./summarizerTypes";
68
+ } from "./summarizerTypes.js";
69
69
  export {
70
70
  IAckedSummary,
71
71
  ISummaryCollectionOpEvents,
@@ -77,7 +77,7 @@ export {
77
77
  ISummaryNackMessage,
78
78
  OpActionEventListener,
79
79
  OpActionEventName,
80
- } from "./summaryCollection";
80
+ } from "./summaryCollection.js";
81
81
  export {
82
82
  aliasBlobName,
83
83
  blobsTreeName,
@@ -98,12 +98,13 @@ export {
98
98
  WriteFluidDataStoreAttributes,
99
99
  wrapSummaryInChannelsTree,
100
100
  idCompressorBlobName,
101
- } from "./summaryFormat";
102
- export { getFailMessage, RetriableSummaryError, SummarizeReason } from "./summaryGenerator";
101
+ IdCompressorMode,
102
+ } from "./summaryFormat.js";
103
+ export { getFailMessage, RetriableSummaryError, SummarizeReason } from "./summaryGenerator.js";
103
104
  export {
104
105
  IConnectedEvents,
105
106
  IConnectedState,
106
107
  ISummaryManagerConfig,
107
108
  SummaryManager,
108
109
  SummaryManagerState,
109
- } from "./summaryManager";
110
+ } from "./summaryManager.js";
@@ -13,7 +13,7 @@ import { assert } from "@fluidframework/core-utils";
13
13
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
14
14
  import { IDeltaManager } from "@fluidframework/container-definitions";
15
15
  import { IClient, IQuorumClients, ISequencedClient } from "@fluidframework/protocol-definitions";
16
- import { summarizerClientType } from "./summarizerClientElection";
16
+ import { summarizerClientType } from "./summarizerClientElection.js";
17
17
 
18
18
  // helper types for recursive readonly.
19
19
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -8,7 +8,7 @@ import {
8
8
  SummarizerStopReason,
9
9
  IConnectableRuntime,
10
10
  ISummaryCancellationToken,
11
- } from "./summarizerTypes";
11
+ } from "./summarizerTypes.js";
12
12
 
13
13
  /**
14
14
  * Similar to AbortController, but using promise instead of events
@@ -15,9 +15,9 @@ import { assert, delay, Deferred, PromiseTimer } from "@fluidframework/core-util
15
15
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
16
16
  import { DriverErrorTypes } from "@fluidframework/driver-definitions";
17
17
  import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
18
- import { ISummaryConfiguration } from "../containerRuntime";
19
- import { opSize } from "../opProperties";
20
- import { SummarizeHeuristicRunner } from "./summarizerHeuristics";
18
+ import { ISummaryConfiguration } from "../containerRuntime.js";
19
+ import { opSize } from "../opProperties.js";
20
+ import { SummarizeHeuristicRunner } from "./summarizerHeuristics.js";
21
21
  import {
22
22
  IEnqueueSummarizeOptions,
23
23
  ISummarizeOptions,
@@ -36,14 +36,14 @@ import {
36
36
  IRefreshSummaryAckOptions,
37
37
  ISummarizerEvents,
38
38
  ISummarizeEventProps,
39
- } from "./summarizerTypes";
40
- import { IAckedSummary, IClientSummaryWatcher, SummaryCollection } from "./summaryCollection";
39
+ } from "./summarizerTypes.js";
40
+ import { IAckedSummary, IClientSummaryWatcher, SummaryCollection } from "./summaryCollection.js";
41
41
  import {
42
42
  raceTimer,
43
43
  SummarizeReason,
44
44
  SummarizeResultBuilder,
45
45
  SummaryGenerator,
46
- } from "./summaryGenerator";
46
+ } from "./summaryGenerator.js";
47
47
 
48
48
  const maxSummarizeAckWaitTime = 10 * 60 * 1000; // 10 minutes
49
49
 
@@ -254,6 +254,9 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
254
254
  }
255
255
  });
256
256
 
257
+ const immediatelyRefreshLatestSummaryAck =
258
+ this.mc.config.getBoolean("Fluid.Summarizer.immediatelyRefreshLatestSummaryAck") ??
259
+ true;
257
260
  this.generator = new SummaryGenerator(
258
261
  this.pendingAckTimer,
259
262
  this.heuristicData,
@@ -261,6 +264,11 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
261
264
  () => {
262
265
  this.totalSuccessfulAttempts++;
263
266
  },
267
+ async (options: IRefreshSummaryAckOptions) => {
268
+ if (immediatelyRefreshLatestSummaryAck) {
269
+ await this.refreshLatestSummaryAckAndHandleError(options);
270
+ }
271
+ },
264
272
  this.summaryWatcher,
265
273
  this.mc.logger,
266
274
  );
@@ -303,40 +311,48 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
303
311
  // https://dev.azure.com/fluidframework/internal/_workitems/edit/779
304
312
  await this.lockedSummaryAction(
305
313
  () => {},
306
- async () =>
307
- this.refreshLatestSummaryAckCallback({
314
+ async () => {
315
+ const options: IRefreshSummaryAckOptions = {
308
316
  proposalHandle: summaryOpHandle,
309
317
  ackHandle: summaryAckHandle,
310
318
  summaryRefSeq: refSequenceNumber,
311
319
  summaryLogger,
312
- }).catch(async (error) => {
313
- // If the error is 404, so maybe the fetched version no longer exists on server. We just
314
- // ignore this error in that case, as that means we will have another summaryAck for the
315
- // latest version with which we will refresh the state. However in case of single commit
316
- // summary, we might me missing a summary ack, so in that case we are still fine as the
317
- // code in `submitSummary` function in container runtime, will refresh the latest state
318
- // by calling `prefetchLatestSummaryThenClose`. We will load the next summarizer from the
319
- // updated state and be fine.
320
- const isIgnoredError =
321
- isFluidError(error) &&
322
- error.errorType === DriverErrorTypes.fileNotFoundOrAccessDeniedError;
323
-
324
- summaryLogger.sendTelemetryEvent(
325
- {
326
- eventName: isIgnoredError
327
- ? "HandleSummaryAckErrorIgnored"
328
- : "HandleLastSummaryAckError",
329
- referenceSequenceNumber: refSequenceNumber,
330
- proposalHandle: summaryOpHandle,
331
- ackHandle: summaryAckHandle,
332
- },
333
- error,
334
- );
335
- }),
320
+ };
321
+ await this.refreshLatestSummaryAckAndHandleError(options);
322
+ },
336
323
  () => {},
337
324
  );
338
325
  }
339
326
 
327
+ private readonly refreshLatestSummaryAckAndHandleError = async (
328
+ options: IRefreshSummaryAckOptions,
329
+ ) => {
330
+ return this.refreshLatestSummaryAckCallback(options).catch(async (error) => {
331
+ // If the error is 404, so maybe the fetched version no longer exists on server. We just
332
+ // ignore this error in that case, as that means we will have another summaryAck for the
333
+ // latest version with which we will refresh the state. However in case of single commit
334
+ // summary, we might be missing a summary ack, so in that case we are still fine as the
335
+ // code in `submitSummary` function in container runtime, will refresh the latest state
336
+ // by calling `prefetchLatestSummaryThenClose`. We will load the next summarizer from the
337
+ // updated state and be fine.
338
+ const isIgnoredError =
339
+ isFluidError(error) &&
340
+ error.errorType === DriverErrorTypes.fileNotFoundOrAccessDeniedError;
341
+
342
+ options.summaryLogger.sendTelemetryEvent(
343
+ {
344
+ eventName: isIgnoredError
345
+ ? "HandleSummaryAckErrorIgnored"
346
+ : "HandleLastSummaryAckError",
347
+ referenceSequenceNumber: options.summaryRefSeq,
348
+ proposalHandle: options.proposalHandle,
349
+ ackHandle: options.ackHandle,
350
+ },
351
+ error,
352
+ );
353
+ });
354
+ };
355
+
340
356
  /**
341
357
  * Responsible for receiving and processing all the summary acks.
342
358
  * It starts processing ACKs after the one for the summary this client loaded from (initialSequenceNumber). Any
@@ -565,6 +581,8 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
565
581
  ...options,
566
582
  summaryLogger,
567
583
  cancellationToken: this.cancellationToken,
584
+ latestSummaryRefSeqNum:
585
+ this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
568
586
  };
569
587
  const summarizeResult = this.generator.summarize(summaryOptions, resultsBuilder);
570
588
  // ensure we wait till the end of the process
@@ -660,6 +678,7 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
660
678
  ...summarizeOptions,
661
679
  summaryLogger,
662
680
  cancellationToken: this.cancellationToken,
681
+ latestSummaryRefSeqNum: this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
663
682
  };
664
683
 
665
684
  // Note: no need to account for cancellationToken.waitCancelled here, as
@@ -731,6 +750,7 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
731
750
  summaryLogger,
732
751
  cancellationToken: this.cancellationToken,
733
752
  finalAttempt,
753
+ latestSummaryRefSeqNum: this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
734
754
  };
735
755
  const summarizeResult = this.generator.summarize(summaryOptions);
736
756
  return { summarizeProps, summarizeResult };
@@ -14,10 +14,10 @@ import {
14
14
  wrapErrorAndLog,
15
15
  } from "@fluidframework/telemetry-utils";
16
16
  import { IFluidHandleContext } from "@fluidframework/core-interfaces";
17
- import { ISummaryConfiguration } from "../containerRuntime";
18
- import { ICancellableSummarizerController } from "./runWhileConnectedCoordinator";
19
- import { SummaryCollection } from "./summaryCollection";
20
- import { RunningSummarizer } from "./runningSummarizer";
17
+ import { ISummaryConfiguration } from "../containerRuntime.js";
18
+ import { ICancellableSummarizerController } from "./runWhileConnectedCoordinator.js";
19
+ import { SummaryCollection } from "./summaryCollection.js";
20
+ import { RunningSummarizer } from "./runningSummarizer.js";
21
21
  import {
22
22
  IConnectableRuntime,
23
23
  ISummarizer,
@@ -32,9 +32,9 @@ import {
32
32
  EnqueueSummarizeResult,
33
33
  ISummarizerEvents,
34
34
  ISummarizeEventProps,
35
- } from "./summarizerTypes";
36
- import { SummarizeHeuristicData } from "./summarizerHeuristics";
37
- import { SummarizeResultBuilder } from "./summaryGenerator";
35
+ } from "./summarizerTypes.js";
36
+ import { SummarizeHeuristicData } from "./summarizerHeuristics.js";
37
+ import { SummarizeResultBuilder } from "./summaryGenerator.js";
38
38
 
39
39
  const summarizingError = "summarizingError";
40
40
 
@@ -11,8 +11,8 @@ import {
11
11
  IOrderedClientElection,
12
12
  ISerializedElection,
13
13
  ITrackedClient,
14
- } from "./orderedClientElection";
15
- import { ISummaryCollectionOpEvents } from "./summaryCollection";
14
+ } from "./orderedClientElection.js";
15
+ import { ISummaryCollectionOpEvents } from "./summaryCollection.js";
16
16
 
17
17
  export const summarizerClientType = "summarizer";
18
18
 
@@ -5,14 +5,14 @@
5
5
 
6
6
  import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
7
7
  import { Timer } from "@fluidframework/core-utils";
8
- import { ISummaryConfigurationHeuristics } from "../containerRuntime";
8
+ import { ISummaryConfigurationHeuristics } from "../containerRuntime.js";
9
9
  import {
10
10
  ISummarizeHeuristicData,
11
11
  ISummarizeHeuristicRunner,
12
12
  ISummarizeAttempt,
13
13
  ISummaryHeuristicStrategy,
14
- } from "./summarizerTypes";
15
- import { SummarizeReason } from "./summaryGenerator";
14
+ } from "./summarizerTypes.js";
15
+ import { SummarizeReason } from "./summaryGenerator.js";
16
16
 
17
17
  /** Simple implementation of class for tracking summarize heuristic data. */
18
18
  export class SummarizeHeuristicData implements ISummarizeHeuristicData {
@@ -7,6 +7,9 @@ export {
7
7
  IRefreshSummaryResult,
8
8
  ISummarizerNodeRootContract,
9
9
  ValidateSummaryResult,
10
- } from "./summarizerNodeUtils";
11
- export { IRootSummarizerNode, createRootSummarizerNode } from "./summarizerNode";
12
- export { IRootSummarizerNodeWithGC, createRootSummarizerNodeWithGC } from "./summarizerNodeWithGc";
10
+ } from "./summarizerNodeUtils.js";
11
+ export { IRootSummarizerNode, createRootSummarizerNode } from "./summarizerNode.js";
12
+ export {
13
+ IRootSummarizerNodeWithGC,
14
+ createRootSummarizerNodeWithGC,
15
+ } from "./summarizerNodeWithGc.js";
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryBaseLogger, ITelemetryErrorEvent } from "@fluidframework/core-interfaces";
6
+ import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
7
7
  import {
8
8
  ISummarizerNode,
9
9
  ISummarizerNodeConfig,
@@ -26,6 +26,7 @@ import {
26
26
  PerformanceEvent,
27
27
  TelemetryDataTag,
28
28
  tagCodeArtifacts,
29
+ type ITelemetryErrorEventExt,
29
30
  } from "@fluidframework/telemetry-utils";
30
31
  import { assert, unreachableCase } from "@fluidframework/core-utils";
31
32
  import { mergeStats } from "@fluidframework/runtime-utils";
@@ -33,11 +34,12 @@ import {
33
34
  EscapedPath,
34
35
  ICreateChildDetails,
35
36
  IRefreshSummaryResult,
37
+ IStartSummaryResult,
36
38
  ISummarizerNodeRootContract,
37
39
  parseSummaryForSubtrees,
38
40
  SummaryNode,
39
41
  ValidateSummaryResult,
40
- } from "./summarizerNodeUtils";
42
+ } from "./summarizerNodeUtils.js";
41
43
 
42
44
  export interface IRootSummarizerNode extends ISummarizerNode, ISummarizerNodeRootContract {}
43
45
 
@@ -96,7 +98,22 @@ export class SummarizerNode implements IRootSummarizerNode {
96
98
  });
97
99
  }
98
100
 
99
- public startSummary(referenceSequenceNumber: number, summaryLogger: ITelemetryBaseLogger) {
101
+ /**
102
+ * In order to produce a summary with a summarizer node, the summarizer node system must be notified a summary has
103
+ * started. This is done by calling startSummary. This will track the reference sequence number of the summary and
104
+ * run some validation checks to ensure the summary is correct.
105
+ * @param referenceSequenceNumber - the number of ops processed up to this point
106
+ * @param summaryLogger - the logger to use for the summary
107
+ * @param latestSummaryRefSeqNum - the reference sequence number of the latest summary. Another way to think about
108
+ * it is the reference sequence number of the previous summary.
109
+ * @returns the number of nodes in the tree, the number of nodes that are invalid, and the different types of
110
+ * sequence number mismatches
111
+ */
112
+ public startSummary(
113
+ referenceSequenceNumber: number,
114
+ summaryLogger: ITelemetryBaseLogger,
115
+ latestSummaryRefSeqNum: number,
116
+ ): IStartSummaryResult {
100
117
  assert(
101
118
  this.wipSummaryLogger === undefined,
102
119
  0x19f /* "wipSummaryLogger should not be set yet in startSummary" */,
@@ -106,12 +123,40 @@ export class SummarizerNode implements IRootSummarizerNode {
106
123
  0x1a0 /* "Already tracking a summary" */,
107
124
  );
108
125
 
126
+ let nodes = 1;
127
+ let invalidNodes = 0;
128
+ const sequenceNumberMismatchKeySet = new Set<string>();
129
+ const nodeLatestSummaryRefSeqNum = this._latestSummary?.referenceSequenceNumber;
130
+ if (
131
+ nodeLatestSummaryRefSeqNum !== undefined &&
132
+ latestSummaryRefSeqNum !== nodeLatestSummaryRefSeqNum
133
+ ) {
134
+ invalidNodes++;
135
+ sequenceNumberMismatchKeySet.add(
136
+ `${latestSummaryRefSeqNum}-${nodeLatestSummaryRefSeqNum}`,
137
+ );
138
+ }
139
+
109
140
  this.wipSummaryLogger = summaryLogger;
110
141
 
111
142
  for (const child of this.children.values()) {
112
- child.startSummary(referenceSequenceNumber, this.wipSummaryLogger);
143
+ const childStartSummaryResult = child.startSummary(
144
+ referenceSequenceNumber,
145
+ this.wipSummaryLogger,
146
+ latestSummaryRefSeqNum,
147
+ );
148
+ nodes += childStartSummaryResult.nodes;
149
+ invalidNodes += childStartSummaryResult.invalidNodes;
150
+ for (const invalidSequenceNumber of childStartSummaryResult.mismatchNumbers) {
151
+ sequenceNumberMismatchKeySet.add(invalidSequenceNumber);
152
+ }
113
153
  }
114
154
  this.wipReferenceSequenceNumber = referenceSequenceNumber;
155
+ return {
156
+ nodes,
157
+ invalidNodes,
158
+ mismatchNumbers: sequenceNumberMismatchKeySet,
159
+ };
115
160
  }
116
161
 
117
162
  public async summarize(
@@ -623,7 +668,7 @@ export class SummarizerNode implements IRootSummarizerNode {
623
668
  /**
624
669
  * Creates and throws an error due to unexpected conditions.
625
670
  */
626
- protected throwUnexpectedError(eventProps: ITelemetryErrorEvent): never {
671
+ protected throwUnexpectedError(eventProps: ITelemetryErrorEventExt): never {
627
672
  const error = new LoggingError(eventProps.eventName, {
628
673
  ...eventProps,
629
674
  referenceSequenceNumber: this.wipReferenceSequenceNumber,
@@ -14,6 +14,15 @@ export interface IRefreshSummaryResult {
14
14
  isSummaryNewer: boolean;
15
15
  }
16
16
 
17
+ export interface IStartSummaryResult {
18
+ /** The number of summarizerNodes at the start of the summary. */
19
+ nodes: number;
20
+ /** The number of summarizerNodes in the wrong state. */
21
+ invalidNodes: number;
22
+ /** The invalid sequence numbers and their values. It should be in the format of validateSequenceNumber-nodeSequenceNumber */
23
+ mismatchNumbers: Set<string>;
24
+ }
25
+
17
26
  /**
18
27
  * Return type of validateSummary function. In case of success, the object returned should have success: true.
19
28
  * In case of failure, the object returned should have success: false and additional properties to indicate what
@@ -37,7 +46,11 @@ export type ValidateSummaryResult =
37
46
  };
38
47
 
39
48
  export interface ISummarizerNodeRootContract {
40
- startSummary(referenceSequenceNumber: number, summaryLogger: ITelemetryLoggerExt): void;
49
+ startSummary(
50
+ referenceSequenceNumber: number,
51
+ summaryLogger: ITelemetryLoggerExt,
52
+ latestSummaryRefSeqNum: number,
53
+ ): IStartSummaryResult;
41
54
  validateSummary(): ValidateSummaryResult;
42
55
  completeSummary(proposalHandle: string, validate: boolean): void;
43
56
  clearSummary(): void;
@@ -3,12 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import {
7
- ITelemetryLoggerExt,
8
- LoggingError,
9
- TelemetryDataTag,
10
- tagCodeArtifacts,
11
- } from "@fluidframework/telemetry-utils";
6
+ import { LoggingError, TelemetryDataTag, tagCodeArtifacts } from "@fluidframework/telemetry-utils";
12
7
  import { assert, LazyPromise } from "@fluidframework/core-utils";
13
8
  import {
14
9
  CreateChildSummarizerNodeParam,
@@ -24,15 +19,16 @@ import {
24
19
  } from "@fluidframework/runtime-definitions";
25
20
  import { unpackChildNodesUsedRoutes } from "@fluidframework/runtime-utils";
26
21
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
27
- import { cloneGCData, unpackChildNodesGCDetails } from "../../gc";
28
- import { SummarizerNode } from "./summarizerNode";
22
+ import { cloneGCData, unpackChildNodesGCDetails } from "../../gc/index.js";
23
+ import { SummarizerNode } from "./summarizerNode.js";
29
24
  import {
30
25
  EscapedPath,
31
26
  ICreateChildDetails,
27
+ IStartSummaryResult,
32
28
  ISummarizerNodeRootContract,
33
29
  SummaryNode,
34
30
  ValidateSummaryResult,
35
- } from "./summarizerNodeUtils";
31
+ } from "./summarizerNodeUtils.js";
36
32
 
37
33
  export interface IRootSummarizerNodeWithGC
38
34
  extends ISummarizerNodeWithGC,
@@ -236,7 +232,11 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
236
232
  /**
237
233
  * Called during the start of a summary. Updates the work-in-progress used routes.
238
234
  */
239
- public startSummary(referenceSequenceNumber: number, summaryLogger: ITelemetryLoggerExt) {
235
+ public startSummary(
236
+ referenceSequenceNumber: number,
237
+ summaryLogger: ITelemetryBaseLogger,
238
+ latestSummaryRefSeqNum: number,
239
+ ): IStartSummaryResult {
240
240
  // If GC is disabled, skip setting wip used routes since we should not track GC state.
241
241
  if (!this.gcDisabled) {
242
242
  assert(
@@ -244,7 +244,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
244
244
  0x1b4 /* "We should not already be tracking used routes when to track a new summary" */,
245
245
  );
246
246
  }
247
- super.startSummary(referenceSequenceNumber, summaryLogger);
247
+ return super.startSummary(referenceSequenceNumber, summaryLogger, latestSummaryRefSeqNum);
248
248
  }
249
249
 
250
250
  /**
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { IEvent, IEventProvider, ITelemetryProperties } from "@fluidframework/core-interfaces";
6
+ import { IEvent, IEventProvider, ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
7
7
  import { ITelemetryLoggerExt, ITelemetryLoggerPropertyBag } from "@fluidframework/telemetry-utils";
8
8
  import { ContainerWarning, IDeltaManager } from "@fluidframework/container-definitions";
9
9
  import {
@@ -12,9 +12,9 @@ import {
12
12
  IDocumentMessage,
13
13
  } from "@fluidframework/protocol-definitions";
14
14
  import { ISummaryStats } from "@fluidframework/runtime-definitions";
15
- import { ISummaryConfigurationHeuristics } from "../containerRuntime";
16
- import { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from "./summaryCollection";
17
- import { SummarizeReason } from "./summaryGenerator";
15
+ import { ISummaryConfigurationHeuristics } from "../containerRuntime.js";
16
+ import { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from "./summaryCollection.js";
17
+ import { SummarizeReason } from "./summaryGenerator.js";
18
18
 
19
19
  /**
20
20
  * Similar to AbortSignal, but using promise instead of events
@@ -63,20 +63,6 @@ export interface ISummarizerInternalsProvider {
63
63
  refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;
64
64
  }
65
65
 
66
- /**
67
- * @deprecated Options that control the behavior of a running summarizer.
68
- * @public
69
- * */
70
- export interface ISummarizerOptions {
71
- /**
72
- * Set to true to disable the default heuristics from running; false by default.
73
- * This affects only the heuristics around when a summarizer should
74
- * submit summaries. So when it is disabled, summarizer clients should
75
- * not be expected to summarize unless an on-demand summary is requested.
76
- */
77
- disableHeuristics: boolean;
78
- }
79
-
80
66
  /**
81
67
  * @internal
82
68
  */
@@ -141,6 +127,8 @@ export interface ISubmitSummaryOptions extends ISummarizeOptions {
141
127
  readonly cancellationToken: ISummaryCancellationToken;
142
128
  /** Summarization may be attempted multiple times. This tells whether this is the final summarization attempt. */
143
129
  readonly finalAttempt?: boolean;
130
+ /** The sequence number of the latest summary used to validate if summary state is correct before summarizing */
131
+ readonly latestSummaryRefSeqNum: number;
144
132
  }
145
133
 
146
134
  /**
@@ -438,7 +426,7 @@ export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
438
426
  /* Closes summarizer. Any pending processes (summary in flight) are abandoned. */
439
427
  close(): void;
440
428
 
441
- run(onBehalfOf: string, disableHeuristics?: boolean): Promise<SummarizerStopReason>;
429
+ run(onBehalfOf: string): Promise<SummarizerStopReason>;
442
430
 
443
431
  /**
444
432
  * Attempts to generate a summary on demand. If already running, takes no action.
@@ -551,10 +539,10 @@ type ISummarizeTelemetryOptionalProperties =
551
539
  | keyof ISummarizeOptions;
552
540
 
553
541
  export type ISummarizeTelemetryProperties = Pick<
554
- ITelemetryProperties,
542
+ ITelemetryBaseProperties,
555
543
  ISummarizeTelemetryRequiredProperties
556
544
  > &
557
- Partial<Pick<ITelemetryProperties, ISummarizeTelemetryOptionalProperties>>;
545
+ Partial<Pick<ITelemetryBaseProperties, ISummarizeTelemetryOptionalProperties>>;
558
546
 
559
547
  /** Strategy used to heuristically determine when we should run a summary */
560
548
  export interface ISummaryHeuristicStrategy {
@@ -620,10 +608,10 @@ type SummaryGeneratorOptionalTelemetryProperties =
620
608
  | "stage";
621
609
 
622
610
  export type SummaryGeneratorTelemetry = Pick<
623
- ITelemetryProperties,
611
+ ITelemetryBaseProperties,
624
612
  SummaryGeneratorRequiredTelemetryProperties
625
613
  > &
626
- Partial<Pick<ITelemetryProperties, SummaryGeneratorOptionalTelemetryProperties>>;
614
+ Partial<Pick<ITelemetryBaseProperties, SummaryGeneratorOptionalTelemetryProperties>>;
627
615
 
628
616
  export interface ISummarizeRunnerTelemetry extends ITelemetryLoggerPropertyBag {
629
617
  /** Number of times the summarizer run. */
@@ -19,7 +19,7 @@ import {
19
19
  gcTreeKey,
20
20
  ISummaryTreeWithStats,
21
21
  } from "@fluidframework/runtime-definitions";
22
- import { IGCMetadata } from "../gc";
22
+ import { IGCMetadata } from "../gc/index.js";
23
23
 
24
24
  type OmitAttributesVersions<T> = Omit<T, "snapshotFormatVersion" | "summaryFormatVersion">;
25
25
  interface IFluidDataStoreAttributes0 {
@@ -85,6 +85,20 @@ export function hasIsolatedChannels(attributes: ReadFluidDataStoreAttributes): b
85
85
  return !!attributes.summaryFormatVersion && !attributes.disableIsolatedChannels;
86
86
  }
87
87
 
88
+ /**
89
+ * ID Compressor mode.
90
+ * "on" - compressor is On. It's loaded as part of container load. This mode is sticky - once on, compressor is On for all
91
+ * sessions for a given document. This results in IContainerRuntime.idCompressor to be always available.
92
+ * "delayed" - ID compressor bundle is loaded only on establishing of first delta connection, i.e. it does not impact boot of cotnainer.
93
+ * In such mode IContainerRuntime.idCompressor is not made available (unless previous sessions of same document had it "On").
94
+ * The only thing that is available is IContainerRuntime.generateDocumentUniqueId() that provides opportunistically short IDs.
95
+ * "off" - ID compressor is not laoded (unless it is "on" due to previous session for same document having it "on").
96
+ * While IContainerRuntime.generateDocumentUniqueId() is available, it will produce long IDs that are do not compress well.
97
+ *
98
+ * @alpha
99
+ */
100
+ export type IdCompressorMode = "on" | "delayed" | "off";
101
+
88
102
  /**
89
103
  * @alpha
90
104
  */
@@ -99,7 +113,7 @@ export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGC
99
113
  /** GUID to identify a document in telemetry */
100
114
  readonly telemetryDocumentId?: string;
101
115
  /** True if the runtime IdCompressor is enabled */
102
- readonly idCompressorEnabled?: boolean;
116
+ readonly idCompressorMode?: IdCompressorMode;
103
117
  }
104
118
 
105
119
  /**