@fluidframework/container-runtime 2.0.0-rc.1.0.3 → 2.0.0-rc.2.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 (690) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +5 -5
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +54 -0
  4. package/README.md +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 +68 -30
  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.js.map +1 -1
  13. package/dist/channelCollection.d.ts +223 -0
  14. package/dist/channelCollection.d.ts.map +1 -0
  15. package/dist/{dataStores.js → channelCollection.js} +399 -83
  16. package/dist/channelCollection.js.map +1 -0
  17. package/dist/connectionTelemetry.d.ts +11 -1
  18. package/dist/connectionTelemetry.d.ts.map +1 -1
  19. package/dist/connectionTelemetry.js +42 -4
  20. package/dist/connectionTelemetry.js.map +1 -1
  21. package/dist/container-runtime-alpha.d.ts +98 -40
  22. package/dist/container-runtime-beta.d.ts +27 -9
  23. package/dist/container-runtime-public.d.ts +27 -9
  24. package/dist/container-runtime-untrimmed.d.ts +123 -40
  25. package/dist/containerHandleContext.d.ts +1 -1
  26. package/dist/containerHandleContext.d.ts.map +1 -1
  27. package/dist/containerHandleContext.js.map +1 -1
  28. package/dist/containerRuntime.d.ts +79 -55
  29. package/dist/containerRuntime.d.ts.map +1 -1
  30. package/dist/containerRuntime.js +541 -411
  31. package/dist/containerRuntime.js.map +1 -1
  32. package/dist/dataStore.d.ts +2 -3
  33. package/dist/dataStore.d.ts.map +1 -1
  34. package/dist/dataStore.js +12 -11
  35. package/dist/dataStore.js.map +1 -1
  36. package/dist/dataStoreContext.d.ts +71 -30
  37. package/dist/dataStoreContext.d.ts.map +1 -1
  38. package/dist/dataStoreContext.js +182 -141
  39. package/dist/dataStoreContext.js.map +1 -1
  40. package/dist/dataStoreContexts.d.ts +1 -1
  41. package/dist/dataStoreContexts.d.ts.map +1 -1
  42. package/dist/dataStoreContexts.js.map +1 -1
  43. package/dist/deltaManagerSummarizerProxy.d.ts +29 -4
  44. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  45. package/dist/deltaManagerSummarizerProxy.js +91 -5
  46. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  47. package/dist/gc/garbageCollection.d.ts +22 -5
  48. package/dist/gc/garbageCollection.d.ts.map +1 -1
  49. package/dist/gc/garbageCollection.js +134 -75
  50. package/dist/gc/garbageCollection.js.map +1 -1
  51. package/dist/gc/gcConfigs.d.ts +2 -2
  52. package/dist/gc/gcConfigs.d.ts.map +1 -1
  53. package/dist/gc/gcConfigs.js +21 -21
  54. package/dist/gc/gcConfigs.js.map +1 -1
  55. package/dist/gc/gcDefinitions.d.ts +29 -6
  56. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  57. package/dist/gc/gcDefinitions.js +5 -1
  58. package/dist/gc/gcDefinitions.js.map +1 -1
  59. package/dist/gc/gcHelpers.d.ts +2 -2
  60. package/dist/gc/gcHelpers.d.ts.map +1 -1
  61. package/dist/gc/gcHelpers.js.map +1 -1
  62. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +1 -1
  63. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -1
  64. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  65. package/dist/gc/gcSummaryStateTracker.d.ts +12 -5
  66. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  67. package/dist/gc/gcSummaryStateTracker.js +18 -6
  68. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  69. package/dist/gc/gcTelemetry.d.ts +7 -7
  70. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  71. package/dist/gc/gcTelemetry.js +20 -20
  72. package/dist/gc/gcTelemetry.js.map +1 -1
  73. package/dist/gc/gcUnreferencedStateTracker.d.ts +6 -1
  74. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  75. package/dist/gc/gcUnreferencedStateTracker.js +22 -11
  76. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  77. package/dist/gc/index.d.ts +8 -8
  78. package/dist/gc/index.d.ts.map +1 -1
  79. package/dist/gc/index.js +40 -38
  80. package/dist/gc/index.js.map +1 -1
  81. package/dist/index.d.ts +8 -20
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +28 -40
  84. package/dist/index.js.map +1 -1
  85. package/dist/messageTypes.d.ts +4 -4
  86. package/dist/messageTypes.d.ts.map +1 -1
  87. package/dist/messageTypes.js.map +1 -1
  88. package/dist/opLifecycle/batchManager.d.ts +2 -2
  89. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  90. package/dist/opLifecycle/batchManager.js.map +1 -1
  91. package/dist/opLifecycle/definitions.d.ts +2 -2
  92. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  93. package/dist/opLifecycle/definitions.js.map +1 -1
  94. package/dist/opLifecycle/index.d.ts +8 -8
  95. package/dist/opLifecycle/index.d.ts.map +1 -1
  96. package/dist/opLifecycle/index.js +18 -18
  97. package/dist/opLifecycle/index.js.map +1 -1
  98. package/dist/opLifecycle/opCompressor.d.ts +1 -1
  99. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  100. package/dist/opLifecycle/opCompressor.js +4 -4
  101. package/dist/opLifecycle/opCompressor.js.map +1 -1
  102. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  103. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  104. package/dist/opLifecycle/opDecompressor.js +3 -3
  105. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  106. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  107. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  108. package/dist/opLifecycle/opGroupingManager.js +1 -10
  109. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  110. package/dist/opLifecycle/opSplitter.d.ts +1 -1
  111. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  112. package/dist/opLifecycle/opSplitter.js +5 -5
  113. package/dist/opLifecycle/opSplitter.js.map +1 -1
  114. package/dist/opLifecycle/outbox.d.ts +7 -7
  115. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  116. package/dist/opLifecycle/outbox.js +20 -12
  117. package/dist/opLifecycle/outbox.js.map +1 -1
  118. package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -4
  119. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  120. package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
  121. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  122. package/dist/package.json +3 -0
  123. package/dist/packageVersion.d.ts +1 -1
  124. package/dist/packageVersion.js +1 -1
  125. package/dist/packageVersion.js.map +1 -1
  126. package/dist/pendingStateManager.d.ts +2 -1
  127. package/dist/pendingStateManager.d.ts.map +1 -1
  128. package/dist/pendingStateManager.js +18 -10
  129. package/dist/pendingStateManager.js.map +1 -1
  130. package/dist/scheduleManager.d.ts +1 -2
  131. package/dist/scheduleManager.d.ts.map +1 -1
  132. package/dist/scheduleManager.js +5 -5
  133. package/dist/scheduleManager.js.map +1 -1
  134. package/dist/summary/index.d.ts +12 -12
  135. package/dist/summary/index.d.ts.map +1 -1
  136. package/dist/summary/index.js +43 -43
  137. package/dist/summary/index.js.map +1 -1
  138. package/dist/summary/orderedClientElection.js +8 -8
  139. package/dist/summary/orderedClientElection.js.map +1 -1
  140. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  141. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  142. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  143. package/dist/summary/runningSummarizer.d.ts +11 -10
  144. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  145. package/dist/summary/runningSummarizer.js +114 -81
  146. package/dist/summary/runningSummarizer.js.map +1 -1
  147. package/dist/summary/summarizer.d.ts +4 -4
  148. package/dist/summary/summarizer.d.ts.map +1 -1
  149. package/dist/summary/summarizer.js +6 -6
  150. package/dist/summary/summarizer.js.map +1 -1
  151. package/dist/summary/summarizerClientElection.d.ts +2 -2
  152. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  153. package/dist/summary/summarizerClientElection.js.map +1 -1
  154. package/dist/summary/summarizerHeuristics.d.ts +3 -3
  155. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  156. package/dist/summary/summarizerHeuristics.js.map +1 -1
  157. package/dist/summary/summarizerNode/index.d.ts +3 -3
  158. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  159. package/dist/summary/summarizerNode/index.js +4 -4
  160. package/dist/summary/summarizerNode/index.js.map +1 -1
  161. package/dist/summary/summarizerNode/summarizerNode.d.ts +17 -7
  162. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  163. package/dist/summary/summarizerNode/summarizerNode.js +45 -57
  164. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  165. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +10 -19
  166. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  167. package/dist/summary/summarizerNode/summarizerNodeUtils.js +1 -21
  168. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  169. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +5 -6
  170. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  171. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +16 -16
  172. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  173. package/dist/summary/summarizerTypes.d.ts +10 -21
  174. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  175. package/dist/summary/summarizerTypes.js.map +1 -1
  176. package/dist/summary/summaryFormat.d.ts +15 -2
  177. package/dist/summary/summaryFormat.d.ts.map +1 -1
  178. package/dist/summary/summaryFormat.js.map +1 -1
  179. package/dist/summary/summaryGenerator.d.ts +6 -5
  180. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  181. package/dist/summary/summaryGenerator.js +10 -1
  182. package/dist/summary/summaryGenerator.js.map +1 -1
  183. package/dist/summary/summaryManager.d.ts +5 -6
  184. package/dist/summary/summaryManager.d.ts.map +1 -1
  185. package/dist/summary/summaryManager.js +4 -5
  186. package/dist/summary/summaryManager.js.map +1 -1
  187. package/dist/tsdoc-metadata.json +1 -1
  188. package/lib/{batchTracker.d.mts → batchTracker.d.ts} +2 -3
  189. package/lib/batchTracker.d.ts.map +1 -0
  190. package/lib/{batchTracker.mjs → batchTracker.js} +1 -1
  191. package/lib/batchTracker.js.map +1 -0
  192. package/lib/{blobManager.d.mts → blobManager.d.ts} +1 -1
  193. package/lib/blobManager.d.ts.map +1 -0
  194. package/lib/{blobManager.mjs → blobManager.js} +1 -1
  195. package/lib/blobManager.js.map +1 -0
  196. package/lib/channelCollection.d.ts +223 -0
  197. package/lib/channelCollection.d.ts.map +1 -0
  198. package/lib/{dataStores.mjs → channelCollection.js} +384 -71
  199. package/lib/channelCollection.js.map +1 -0
  200. package/lib/{connectionTelemetry.d.mts → connectionTelemetry.d.ts} +12 -2
  201. package/lib/connectionTelemetry.d.ts.map +1 -0
  202. package/lib/{connectionTelemetry.mjs → connectionTelemetry.js} +43 -5
  203. package/lib/connectionTelemetry.js.map +1 -0
  204. package/lib/{container-runtime-alpha.d.mts → container-runtime-alpha.d.ts} +98 -40
  205. package/lib/{container-runtime-public.d.mts → container-runtime-beta.d.ts} +27 -9
  206. package/lib/{container-runtime-beta.d.mts → container-runtime-public.d.ts} +27 -9
  207. package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +123 -40
  208. package/lib/{containerHandleContext.d.mts → containerHandleContext.d.ts} +2 -2
  209. package/lib/containerHandleContext.d.ts.map +1 -0
  210. package/lib/{containerHandleContext.mjs → containerHandleContext.js} +1 -1
  211. package/lib/containerHandleContext.js.map +1 -0
  212. package/lib/{containerRuntime.d.mts → containerRuntime.d.ts} +84 -56
  213. package/lib/containerRuntime.d.ts.map +1 -0
  214. package/lib/{containerRuntime.mjs → containerRuntime.js} +460 -332
  215. package/lib/containerRuntime.js.map +1 -0
  216. package/lib/{dataStore.d.mts → dataStore.d.ts} +3 -4
  217. package/lib/dataStore.d.ts.map +1 -0
  218. package/lib/{dataStore.mjs → dataStore.js} +13 -12
  219. package/lib/dataStore.js.map +1 -0
  220. package/lib/{dataStoreContext.d.mts → dataStoreContext.d.ts} +72 -31
  221. package/lib/dataStoreContext.d.ts.map +1 -0
  222. package/lib/{dataStoreContext.mjs → dataStoreContext.js} +174 -133
  223. package/lib/dataStoreContext.js.map +1 -0
  224. package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +2 -2
  225. package/lib/dataStoreContexts.d.ts.map +1 -0
  226. package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +1 -1
  227. package/lib/dataStoreContexts.js.map +1 -0
  228. package/lib/{dataStoreRegistry.d.mts → dataStoreRegistry.d.ts} +1 -1
  229. package/lib/dataStoreRegistry.d.ts.map +1 -0
  230. package/lib/{dataStoreRegistry.mjs → dataStoreRegistry.js} +5 -1
  231. package/lib/dataStoreRegistry.js.map +1 -0
  232. package/{dist/deltaManagerProxyBase.d.ts → lib/deltaManagerSummarizerProxy.d.ts} +16 -7
  233. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
  234. package/lib/deltaManagerSummarizerProxy.js +124 -0
  235. package/lib/deltaManagerSummarizerProxy.js.map +1 -0
  236. package/lib/{deltaScheduler.d.mts → deltaScheduler.d.ts} +1 -1
  237. package/lib/deltaScheduler.d.ts.map +1 -0
  238. package/lib/{deltaScheduler.mjs → deltaScheduler.js} +1 -1
  239. package/lib/deltaScheduler.js.map +1 -0
  240. package/lib/{error.d.mts → error.d.ts} +1 -1
  241. package/lib/error.d.ts.map +1 -0
  242. package/lib/{error.mjs → error.js} +1 -1
  243. package/lib/error.js.map +1 -0
  244. package/lib/gc/{garbageCollection.d.mts → garbageCollection.d.ts} +23 -6
  245. package/lib/gc/garbageCollection.d.ts.map +1 -0
  246. package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +103 -44
  247. package/lib/gc/garbageCollection.js.map +1 -0
  248. package/lib/gc/{gcConfigs.d.mts → gcConfigs.d.ts} +3 -3
  249. package/lib/gc/gcConfigs.d.ts.map +1 -0
  250. package/lib/gc/{gcConfigs.mjs → gcConfigs.js} +3 -3
  251. package/lib/gc/gcConfigs.js.map +1 -0
  252. package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +30 -7
  253. package/lib/gc/gcDefinitions.d.ts.map +1 -0
  254. package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +5 -1
  255. package/lib/gc/gcDefinitions.js.map +1 -0
  256. package/lib/gc/{gcHelpers.d.mts → gcHelpers.d.ts} +3 -3
  257. package/lib/gc/{gcHelpers.d.mts.map → gcHelpers.d.ts.map} +1 -1
  258. package/lib/gc/{gcHelpers.mjs → gcHelpers.js} +1 -1
  259. package/lib/gc/gcHelpers.js.map +1 -0
  260. package/lib/gc/{gcReferenceGraphAlgorithm.d.mts → gcReferenceGraphAlgorithm.d.ts} +2 -2
  261. package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  262. package/lib/gc/{gcReferenceGraphAlgorithm.mjs → gcReferenceGraphAlgorithm.js} +1 -1
  263. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
  264. package/lib/gc/{gcSummaryDefinitions.d.mts → gcSummaryDefinitions.d.ts} +1 -1
  265. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
  266. package/lib/gc/{gcSummaryDefinitions.mjs → gcSummaryDefinitions.js} +1 -1
  267. package/lib/gc/gcSummaryDefinitions.js.map +1 -0
  268. package/lib/gc/{gcSummaryStateTracker.d.mts → gcSummaryStateTracker.d.ts} +13 -6
  269. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
  270. package/lib/gc/{gcSummaryStateTracker.mjs → gcSummaryStateTracker.js} +17 -5
  271. package/lib/gc/gcSummaryStateTracker.js.map +1 -0
  272. package/lib/gc/{gcTelemetry.d.mts → gcTelemetry.d.ts} +8 -8
  273. package/lib/gc/gcTelemetry.d.ts.map +1 -0
  274. package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +5 -5
  275. package/lib/gc/gcTelemetry.js.map +1 -0
  276. package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +7 -2
  277. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  278. package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +12 -2
  279. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
  280. package/lib/gc/{index.d.mts → index.d.ts} +9 -9
  281. package/lib/gc/index.d.ts.map +1 -0
  282. package/lib/gc/{index.mjs → index.js} +8 -8
  283. package/lib/gc/index.js.map +1 -0
  284. package/lib/{index.d.mts → index.d.ts} +9 -21
  285. package/lib/index.d.ts.map +1 -0
  286. package/lib/index.js +12 -0
  287. package/lib/index.js.map +1 -0
  288. package/lib/{messageTypes.d.mts → messageTypes.d.ts} +5 -5
  289. package/lib/messageTypes.d.ts.map +1 -0
  290. package/lib/{messageTypes.mjs → messageTypes.js} +1 -1
  291. package/lib/messageTypes.js.map +1 -0
  292. package/lib/{metadata.d.mts → metadata.d.ts} +1 -1
  293. package/lib/metadata.d.ts.map +1 -0
  294. package/lib/{metadata.mjs → metadata.js} +1 -1
  295. package/lib/metadata.js.map +1 -0
  296. package/lib/opLifecycle/{batchManager.d.mts → batchManager.d.ts} +3 -3
  297. package/lib/opLifecycle/batchManager.d.ts.map +1 -0
  298. package/lib/opLifecycle/{batchManager.mjs → batchManager.js} +1 -1
  299. package/lib/opLifecycle/batchManager.js.map +1 -0
  300. package/lib/opLifecycle/{definitions.d.mts → definitions.d.ts} +3 -3
  301. package/lib/opLifecycle/definitions.d.ts.map +1 -0
  302. package/lib/opLifecycle/{definitions.mjs → definitions.js} +1 -1
  303. package/lib/opLifecycle/definitions.js.map +1 -0
  304. package/lib/opLifecycle/index.d.ts +13 -0
  305. package/lib/opLifecycle/index.d.ts.map +1 -0
  306. package/lib/opLifecycle/index.js +12 -0
  307. package/lib/opLifecycle/index.js.map +1 -0
  308. package/lib/opLifecycle/{opCompressor.d.mts → opCompressor.d.ts} +2 -2
  309. package/lib/opLifecycle/opCompressor.d.ts.map +1 -0
  310. package/lib/opLifecycle/{opCompressor.mjs → opCompressor.js} +3 -3
  311. package/lib/opLifecycle/opCompressor.js.map +1 -0
  312. package/lib/opLifecycle/{opDecompressor.d.mts → opDecompressor.d.ts} +2 -2
  313. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -0
  314. package/lib/opLifecycle/{opDecompressor.mjs → opDecompressor.js} +2 -2
  315. package/lib/opLifecycle/opDecompressor.js.map +1 -0
  316. package/lib/opLifecycle/{opGroupingManager.d.mts → opGroupingManager.d.ts} +2 -2
  317. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
  318. package/lib/opLifecycle/{opGroupingManager.mjs → opGroupingManager.js} +2 -11
  319. package/lib/opLifecycle/opGroupingManager.js.map +1 -0
  320. package/lib/opLifecycle/{opSplitter.d.mts → opSplitter.d.ts} +2 -2
  321. package/lib/opLifecycle/opSplitter.d.ts.map +1 -0
  322. package/lib/opLifecycle/{opSplitter.mjs → opSplitter.js} +3 -3
  323. package/lib/opLifecycle/opSplitter.js.map +1 -0
  324. package/lib/opLifecycle/{outbox.d.mts → outbox.d.ts} +8 -8
  325. package/lib/opLifecycle/outbox.d.ts.map +1 -0
  326. package/lib/opLifecycle/{outbox.mjs → outbox.js} +12 -4
  327. package/lib/opLifecycle/outbox.js.map +1 -0
  328. package/lib/opLifecycle/{remoteMessageProcessor.d.mts → remoteMessageProcessor.d.ts} +5 -5
  329. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  330. package/lib/opLifecycle/{remoteMessageProcessor.mjs → remoteMessageProcessor.js} +2 -2
  331. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -0
  332. package/lib/{opProperties.d.mts → opProperties.d.ts} +1 -1
  333. package/lib/opProperties.d.ts.map +1 -0
  334. package/lib/{opProperties.mjs → opProperties.js} +1 -1
  335. package/lib/opProperties.js.map +1 -0
  336. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  337. package/lib/packageVersion.d.ts.map +1 -0
  338. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  339. package/lib/packageVersion.js.map +1 -0
  340. package/lib/{pendingStateManager.d.mts → pendingStateManager.d.ts} +3 -2
  341. package/lib/pendingStateManager.d.ts.map +1 -0
  342. package/lib/{pendingStateManager.mjs → pendingStateManager.js} +18 -10
  343. package/lib/pendingStateManager.js.map +1 -0
  344. package/lib/{scheduleManager.d.mts → scheduleManager.d.ts} +6 -3
  345. package/lib/scheduleManager.d.ts.map +1 -0
  346. package/lib/{scheduleManager.mjs → scheduleManager.js} +3 -3
  347. package/lib/scheduleManager.js.map +1 -0
  348. package/lib/{storageServiceWithAttachBlobs.d.mts → storageServiceWithAttachBlobs.d.ts} +1 -1
  349. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
  350. package/lib/{storageServiceWithAttachBlobs.mjs → storageServiceWithAttachBlobs.js} +1 -1
  351. package/lib/storageServiceWithAttachBlobs.js.map +1 -0
  352. package/lib/summary/{index.d.mts → index.d.ts} +13 -13
  353. package/lib/summary/index.d.ts.map +1 -0
  354. package/lib/summary/{index.mjs → index.js} +12 -12
  355. package/lib/summary/index.js.map +1 -0
  356. package/lib/summary/{orderedClientElection.d.mts → orderedClientElection.d.ts} +5 -1
  357. package/lib/summary/orderedClientElection.d.ts.map +1 -0
  358. package/lib/summary/{orderedClientElection.mjs → orderedClientElection.js} +2 -2
  359. package/lib/summary/orderedClientElection.js.map +1 -0
  360. package/lib/summary/{runWhileConnectedCoordinator.d.mts → runWhileConnectedCoordinator.d.ts} +2 -2
  361. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  362. package/lib/summary/{runWhileConnectedCoordinator.mjs → runWhileConnectedCoordinator.js} +1 -1
  363. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
  364. package/lib/summary/{runningSummarizer.d.mts → runningSummarizer.d.ts} +12 -11
  365. package/lib/summary/runningSummarizer.d.ts.map +1 -0
  366. package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +108 -75
  367. package/lib/summary/runningSummarizer.js.map +1 -0
  368. package/lib/summary/{summarizer.d.mts → summarizer.d.ts} +5 -5
  369. package/lib/summary/summarizer.d.ts.map +1 -0
  370. package/lib/summary/{summarizer.mjs → summarizer.js} +4 -4
  371. package/lib/summary/summarizer.js.map +1 -0
  372. package/lib/summary/{summarizerClientElection.d.mts → summarizerClientElection.d.ts} +3 -3
  373. package/lib/summary/summarizerClientElection.d.ts.map +1 -0
  374. package/lib/summary/{summarizerClientElection.mjs → summarizerClientElection.js} +1 -1
  375. package/lib/summary/summarizerClientElection.js.map +1 -0
  376. package/lib/summary/{summarizerHeuristics.d.mts → summarizerHeuristics.d.ts} +4 -4
  377. package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
  378. package/lib/summary/{summarizerHeuristics.mjs → summarizerHeuristics.js} +1 -1
  379. package/lib/summary/summarizerHeuristics.js.map +1 -0
  380. package/lib/summary/summarizerNode/{index.d.mts → index.d.ts} +4 -4
  381. package/lib/summary/summarizerNode/index.d.ts.map +1 -0
  382. package/lib/summary/summarizerNode/index.js +7 -0
  383. package/lib/summary/summarizerNode/index.js.map +1 -0
  384. package/lib/summary/summarizerNode/{summarizerNode.d.mts → summarizerNode.d.ts} +18 -8
  385. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  386. package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +41 -53
  387. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
  388. package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +11 -20
  389. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  390. package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -20
  391. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
  392. package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +6 -7
  393. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  394. package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +12 -12
  395. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
  396. package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +11 -22
  397. package/lib/summary/summarizerTypes.d.ts.map +1 -0
  398. package/lib/summary/{summarizerTypes.mjs → summarizerTypes.js} +1 -1
  399. package/lib/summary/summarizerTypes.js.map +1 -0
  400. package/lib/summary/{summaryCollection.d.mts → summaryCollection.d.ts} +1 -1
  401. package/lib/summary/summaryCollection.d.ts.map +1 -0
  402. package/lib/summary/{summaryCollection.mjs → summaryCollection.js} +1 -1
  403. package/lib/summary/summaryCollection.js.map +1 -0
  404. package/lib/summary/{summaryFormat.d.mts → summaryFormat.d.ts} +16 -3
  405. package/lib/summary/summaryFormat.d.ts.map +1 -0
  406. package/lib/summary/{summaryFormat.mjs → summaryFormat.js} +1 -1
  407. package/lib/summary/summaryFormat.js.map +1 -0
  408. package/lib/summary/{summaryGenerator.d.mts → summaryGenerator.d.ts} +7 -6
  409. package/lib/summary/summaryGenerator.d.ts.map +1 -0
  410. package/lib/summary/{summaryGenerator.mjs → summaryGenerator.js} +11 -2
  411. package/lib/summary/summaryGenerator.js.map +1 -0
  412. package/lib/summary/{summaryManager.d.mts → summaryManager.d.ts} +6 -7
  413. package/lib/summary/summaryManager.d.ts.map +1 -0
  414. package/lib/summary/{summaryManager.mjs → summaryManager.js} +4 -5
  415. package/lib/summary/summaryManager.js.map +1 -0
  416. package/lib/test/batchTracker.spec.js +88 -0
  417. package/lib/test/batchTracker.spec.js.map +1 -0
  418. package/lib/test/blobManager.spec.js +835 -0
  419. package/lib/test/blobManager.spec.js.map +1 -0
  420. package/lib/test/channelCollection.spec.js +141 -0
  421. package/lib/test/channelCollection.spec.js.map +1 -0
  422. package/lib/test/containerRuntime.spec.js +1748 -0
  423. package/lib/test/containerRuntime.spec.js.map +1 -0
  424. package/lib/test/dataStoreContext.spec.js +801 -0
  425. package/lib/test/dataStoreContext.spec.js.map +1 -0
  426. package/lib/test/dataStoreCreation.spec.js +312 -0
  427. package/lib/test/dataStoreCreation.spec.js.map +1 -0
  428. package/lib/test/dataStoreRegistry.spec.js +26 -0
  429. package/lib/test/dataStoreRegistry.spec.js.map +1 -0
  430. package/lib/test/fuzz/fuzzUtils.js +66 -0
  431. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  432. package/lib/test/fuzz/summarizer.fuzz.spec.js +31 -0
  433. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +1 -0
  434. package/lib/test/fuzz/summarizerFuzzMocks.js +162 -0
  435. package/lib/test/fuzz/summarizerFuzzMocks.js.map +1 -0
  436. package/lib/test/fuzz/summarizerFuzzSuite.js +106 -0
  437. package/lib/test/fuzz/summarizerFuzzSuite.js.map +1 -0
  438. package/lib/test/gc/garbageCollection.spec.js +1465 -0
  439. package/lib/test/gc/garbageCollection.spec.js.map +1 -0
  440. package/lib/test/gc/gcConfigs.spec.js +690 -0
  441. package/lib/test/gc/gcConfigs.spec.js.map +1 -0
  442. package/lib/test/gc/gcHelpers.spec.js +110 -0
  443. package/lib/test/gc/gcHelpers.spec.js.map +1 -0
  444. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +68 -0
  445. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +1 -0
  446. package/lib/test/gc/gcStats.spec.js +391 -0
  447. package/lib/test/gc/gcStats.spec.js.map +1 -0
  448. package/lib/test/gc/gcSummaryStateTracker.spec.js +228 -0
  449. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +1 -0
  450. package/lib/test/gc/gcTelemetry.spec.js +530 -0
  451. package/lib/test/gc/gcTelemetry.spec.js.map +1 -0
  452. package/lib/test/gc/gcUnitTestHelpers.js +29 -0
  453. package/lib/test/gc/gcUnitTestHelpers.js.map +1 -0
  454. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +192 -0
  455. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +1 -0
  456. package/lib/test/getPendingBlobs.spec.js +193 -0
  457. package/lib/test/getPendingBlobs.spec.js.map +1 -0
  458. package/lib/test/hardwareStats.spec.js +93 -0
  459. package/lib/test/hardwareStats.spec.js.map +1 -0
  460. package/lib/test/index.js +6 -0
  461. package/lib/test/index.js.map +1 -0
  462. package/lib/test/opLifecycle/OpGroupingManager.spec.js +225 -0
  463. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +1 -0
  464. package/lib/test/opLifecycle/batchManager.spec.js +189 -0
  465. package/lib/test/opLifecycle/batchManager.spec.js.map +1 -0
  466. package/lib/test/opLifecycle/opCompressor.spec.js +74 -0
  467. package/lib/test/opLifecycle/opCompressor.spec.js.map +1 -0
  468. package/lib/test/opLifecycle/opDecompressor.spec.js +218 -0
  469. package/lib/test/opLifecycle/opDecompressor.spec.js.map +1 -0
  470. package/lib/test/opLifecycle/opSplitter.spec.js +272 -0
  471. package/lib/test/opLifecycle/opSplitter.spec.js.map +1 -0
  472. package/lib/test/opLifecycle/outbox.spec.js +675 -0
  473. package/lib/test/opLifecycle/outbox.spec.js.map +1 -0
  474. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +196 -0
  475. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +1 -0
  476. package/lib/test/pendingStateManager.spec.js +329 -0
  477. package/lib/test/pendingStateManager.spec.js.map +1 -0
  478. package/lib/test/scheduleManager.spec.js +270 -0
  479. package/lib/test/scheduleManager.spec.js.map +1 -0
  480. package/lib/test/summarizerNode.spec.js +326 -0
  481. package/lib/test/summarizerNode.spec.js.map +1 -0
  482. package/lib/test/summarizerNodeWithGc.spec.js +318 -0
  483. package/lib/test/summarizerNodeWithGc.spec.js.map +1 -0
  484. package/lib/test/summary/orderedClientElection.spec.js +535 -0
  485. package/lib/test/summary/orderedClientElection.spec.js.map +1 -0
  486. package/lib/test/summary/runningSummarizer.spec.js +1349 -0
  487. package/lib/test/summary/runningSummarizer.spec.js.map +1 -0
  488. package/lib/test/summary/summarizer.spec.js +29 -0
  489. package/lib/test/summary/summarizer.spec.js.map +1 -0
  490. package/lib/test/summary/summarizerClientElection.spec.js +436 -0
  491. package/lib/test/summary/summarizerClientElection.spec.js.map +1 -0
  492. package/lib/test/summary/summarizerHeuristics.spec.js +289 -0
  493. package/lib/test/summary/summarizerHeuristics.spec.js.map +1 -0
  494. package/lib/test/summary/summaryCollection.spec.js +200 -0
  495. package/lib/test/summary/summaryCollection.spec.js.map +1 -0
  496. package/lib/test/summary/summaryManager.spec.js +430 -0
  497. package/lib/test/summary/summaryManager.spec.js.map +1 -0
  498. package/lib/test/summary/testQuorumClients.js +34 -0
  499. package/lib/test/summary/testQuorumClients.js.map +1 -0
  500. package/lib/test/throttler.spec.js +175 -0
  501. package/lib/test/throttler.spec.js.map +1 -0
  502. package/lib/test/types/validateContainerRuntimePrevious.generated.js +180 -0
  503. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +1 -0
  504. package/lib/{throttler.d.mts → throttler.d.ts} +1 -1
  505. package/lib/throttler.d.ts.map +1 -0
  506. package/lib/{throttler.mjs → throttler.js} +1 -1
  507. package/lib/throttler.js.map +1 -0
  508. package/package.json +99 -88
  509. package/src/batchTracker.ts +1 -1
  510. package/src/blobManager.ts +1 -1
  511. package/src/{dataStores.ts → channelCollection.ts} +520 -84
  512. package/src/connectionTelemetry.ts +42 -3
  513. package/src/containerHandleContext.ts +1 -1
  514. package/src/containerRuntime.ts +661 -464
  515. package/src/dataStore.ts +13 -15
  516. package/src/dataStoreContext.ts +257 -184
  517. package/src/dataStoreContexts.ts +1 -1
  518. package/src/deltaManagerSummarizerProxy.ts +132 -7
  519. package/src/gc/garbageCollection.ts +121 -46
  520. package/src/gc/gcConfigs.ts +3 -3
  521. package/src/gc/gcDefinitions.ts +30 -7
  522. package/src/gc/gcHelpers.ts +2 -2
  523. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  524. package/src/gc/gcSummaryStateTracker.ts +19 -7
  525. package/src/gc/gcTelemetry.ts +10 -9
  526. package/src/gc/gcUnreferencedStateTracker.ts +12 -1
  527. package/src/gc/index.ts +10 -8
  528. package/src/index.ts +16 -27
  529. package/src/messageTypes.ts +4 -4
  530. package/src/opLifecycle/README.md +2 -4
  531. package/src/opLifecycle/batchManager.ts +2 -2
  532. package/src/opLifecycle/definitions.ts +2 -2
  533. package/src/opLifecycle/index.ts +8 -8
  534. package/src/opLifecycle/opCompressor.ts +3 -3
  535. package/src/opLifecycle/opDecompressor.ts +3 -3
  536. package/src/opLifecycle/opGroupingManager.ts +3 -12
  537. package/src/opLifecycle/opSplitter.ts +3 -3
  538. package/src/opLifecycle/outbox.ts +29 -9
  539. package/src/opLifecycle/remoteMessageProcessor.ts +4 -4
  540. package/src/packageVersion.ts +1 -1
  541. package/src/pendingStateManager.ts +19 -13
  542. package/src/scheduleManager.ts +4 -4
  543. package/src/summary/index.ts +13 -12
  544. package/src/summary/orderedClientElection.ts +1 -1
  545. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  546. package/src/summary/runningSummarizer.ts +141 -93
  547. package/src/summary/summarizer.ts +7 -7
  548. package/src/summary/summarizerClientElection.ts +2 -2
  549. package/src/summary/summarizerHeuristics.ts +3 -3
  550. package/src/summary/summarizerNode/index.ts +6 -3
  551. package/src/summary/summarizerNode/summarizerNode.ts +54 -69
  552. package/src/summary/summarizerNode/summarizerNodeUtils.ts +16 -34
  553. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -17
  554. package/src/summary/summarizerTypes.ts +12 -24
  555. package/src/summary/summaryFormat.ts +16 -2
  556. package/src/summary/summaryGenerator.ts +16 -4
  557. package/src/summary/summaryManager.ts +6 -7
  558. package/tsconfig.cjs.json +7 -0
  559. package/tsconfig.json +2 -5
  560. package/dist/dataStores.d.ts +0 -149
  561. package/dist/dataStores.d.ts.map +0 -1
  562. package/dist/dataStores.js.map +0 -1
  563. package/dist/deltaManagerProxyBase.d.ts.map +0 -1
  564. package/dist/deltaManagerProxyBase.js +0 -77
  565. package/dist/deltaManagerProxyBase.js.map +0 -1
  566. package/lib/batchTracker.d.mts.map +0 -1
  567. package/lib/batchTracker.mjs.map +0 -1
  568. package/lib/blobManager.d.mts.map +0 -1
  569. package/lib/blobManager.mjs.map +0 -1
  570. package/lib/connectionTelemetry.d.mts.map +0 -1
  571. package/lib/connectionTelemetry.mjs.map +0 -1
  572. package/lib/containerHandleContext.d.mts.map +0 -1
  573. package/lib/containerHandleContext.mjs.map +0 -1
  574. package/lib/containerRuntime.d.mts.map +0 -1
  575. package/lib/containerRuntime.mjs.map +0 -1
  576. package/lib/dataStore.d.mts.map +0 -1
  577. package/lib/dataStore.mjs.map +0 -1
  578. package/lib/dataStoreContext.d.mts.map +0 -1
  579. package/lib/dataStoreContext.mjs.map +0 -1
  580. package/lib/dataStoreContexts.d.mts.map +0 -1
  581. package/lib/dataStoreContexts.mjs.map +0 -1
  582. package/lib/dataStoreRegistry.d.mts.map +0 -1
  583. package/lib/dataStoreRegistry.mjs.map +0 -1
  584. package/lib/dataStores.d.mts +0 -149
  585. package/lib/dataStores.d.mts.map +0 -1
  586. package/lib/dataStores.mjs.map +0 -1
  587. package/lib/deltaManagerProxyBase.d.mts +0 -35
  588. package/lib/deltaManagerProxyBase.d.mts.map +0 -1
  589. package/lib/deltaManagerProxyBase.mjs +0 -73
  590. package/lib/deltaManagerProxyBase.mjs.map +0 -1
  591. package/lib/deltaManagerSummarizerProxy.d.mts +0 -19
  592. package/lib/deltaManagerSummarizerProxy.d.mts.map +0 -1
  593. package/lib/deltaManagerSummarizerProxy.mjs +0 -38
  594. package/lib/deltaManagerSummarizerProxy.mjs.map +0 -1
  595. package/lib/deltaScheduler.d.mts.map +0 -1
  596. package/lib/deltaScheduler.mjs.map +0 -1
  597. package/lib/error.d.mts.map +0 -1
  598. package/lib/error.mjs.map +0 -1
  599. package/lib/gc/garbageCollection.d.mts.map +0 -1
  600. package/lib/gc/garbageCollection.mjs.map +0 -1
  601. package/lib/gc/gcConfigs.d.mts.map +0 -1
  602. package/lib/gc/gcConfigs.mjs.map +0 -1
  603. package/lib/gc/gcDefinitions.d.mts.map +0 -1
  604. package/lib/gc/gcDefinitions.mjs.map +0 -1
  605. package/lib/gc/gcHelpers.mjs.map +0 -1
  606. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +0 -1
  607. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +0 -1
  608. package/lib/gc/gcSummaryDefinitions.d.mts.map +0 -1
  609. package/lib/gc/gcSummaryDefinitions.mjs.map +0 -1
  610. package/lib/gc/gcSummaryStateTracker.d.mts.map +0 -1
  611. package/lib/gc/gcSummaryStateTracker.mjs.map +0 -1
  612. package/lib/gc/gcTelemetry.d.mts.map +0 -1
  613. package/lib/gc/gcTelemetry.mjs.map +0 -1
  614. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +0 -1
  615. package/lib/gc/gcUnreferencedStateTracker.mjs.map +0 -1
  616. package/lib/gc/index.d.mts.map +0 -1
  617. package/lib/gc/index.mjs.map +0 -1
  618. package/lib/index.d.mts.map +0 -1
  619. package/lib/index.mjs +0 -24
  620. package/lib/index.mjs.map +0 -1
  621. package/lib/messageTypes.d.mts.map +0 -1
  622. package/lib/messageTypes.mjs.map +0 -1
  623. package/lib/metadata.d.mts.map +0 -1
  624. package/lib/metadata.mjs.map +0 -1
  625. package/lib/opLifecycle/batchManager.d.mts.map +0 -1
  626. package/lib/opLifecycle/batchManager.mjs.map +0 -1
  627. package/lib/opLifecycle/definitions.d.mts.map +0 -1
  628. package/lib/opLifecycle/definitions.mjs.map +0 -1
  629. package/lib/opLifecycle/index.d.mts +0 -13
  630. package/lib/opLifecycle/index.d.mts.map +0 -1
  631. package/lib/opLifecycle/index.mjs +0 -12
  632. package/lib/opLifecycle/index.mjs.map +0 -1
  633. package/lib/opLifecycle/opCompressor.d.mts.map +0 -1
  634. package/lib/opLifecycle/opCompressor.mjs.map +0 -1
  635. package/lib/opLifecycle/opDecompressor.d.mts.map +0 -1
  636. package/lib/opLifecycle/opDecompressor.mjs.map +0 -1
  637. package/lib/opLifecycle/opGroupingManager.d.mts.map +0 -1
  638. package/lib/opLifecycle/opGroupingManager.mjs.map +0 -1
  639. package/lib/opLifecycle/opSplitter.d.mts.map +0 -1
  640. package/lib/opLifecycle/opSplitter.mjs.map +0 -1
  641. package/lib/opLifecycle/outbox.d.mts.map +0 -1
  642. package/lib/opLifecycle/outbox.mjs.map +0 -1
  643. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +0 -1
  644. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +0 -1
  645. package/lib/opProperties.d.mts.map +0 -1
  646. package/lib/opProperties.mjs.map +0 -1
  647. package/lib/packageVersion.d.mts.map +0 -1
  648. package/lib/packageVersion.mjs.map +0 -1
  649. package/lib/pendingStateManager.d.mts.map +0 -1
  650. package/lib/pendingStateManager.mjs.map +0 -1
  651. package/lib/scheduleManager.d.mts.map +0 -1
  652. package/lib/scheduleManager.mjs.map +0 -1
  653. package/lib/storageServiceWithAttachBlobs.d.mts.map +0 -1
  654. package/lib/storageServiceWithAttachBlobs.mjs.map +0 -1
  655. package/lib/summary/index.d.mts.map +0 -1
  656. package/lib/summary/index.mjs.map +0 -1
  657. package/lib/summary/orderedClientElection.d.mts.map +0 -1
  658. package/lib/summary/orderedClientElection.mjs.map +0 -1
  659. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +0 -1
  660. package/lib/summary/runWhileConnectedCoordinator.mjs.map +0 -1
  661. package/lib/summary/runningSummarizer.d.mts.map +0 -1
  662. package/lib/summary/runningSummarizer.mjs.map +0 -1
  663. package/lib/summary/summarizer.d.mts.map +0 -1
  664. package/lib/summary/summarizer.mjs.map +0 -1
  665. package/lib/summary/summarizerClientElection.d.mts.map +0 -1
  666. package/lib/summary/summarizerClientElection.mjs.map +0 -1
  667. package/lib/summary/summarizerHeuristics.d.mts.map +0 -1
  668. package/lib/summary/summarizerHeuristics.mjs.map +0 -1
  669. package/lib/summary/summarizerNode/index.d.mts.map +0 -1
  670. package/lib/summary/summarizerNode/index.mjs +0 -7
  671. package/lib/summary/summarizerNode/index.mjs.map +0 -1
  672. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +0 -1
  673. package/lib/summary/summarizerNode/summarizerNode.mjs.map +0 -1
  674. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +0 -1
  675. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +0 -1
  676. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +0 -1
  677. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +0 -1
  678. package/lib/summary/summarizerTypes.d.mts.map +0 -1
  679. package/lib/summary/summarizerTypes.mjs.map +0 -1
  680. package/lib/summary/summaryCollection.d.mts.map +0 -1
  681. package/lib/summary/summaryCollection.mjs.map +0 -1
  682. package/lib/summary/summaryFormat.d.mts.map +0 -1
  683. package/lib/summary/summaryFormat.mjs.map +0 -1
  684. package/lib/summary/summaryGenerator.d.mts.map +0 -1
  685. package/lib/summary/summaryGenerator.mjs.map +0 -1
  686. package/lib/summary/summaryManager.d.mts.map +0 -1
  687. package/lib/summary/summaryManager.mjs.map +0 -1
  688. package/lib/throttler.d.mts.map +0 -1
  689. package/lib/throttler.mjs.map +0 -1
  690. package/src/deltaManagerProxyBase.ts +0 -111
@@ -3,12 +3,11 @@
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,
10
10
  ISummarizeResult,
11
- ISummaryTreeWithStats,
12
11
  CreateChildSummarizerNodeParam,
13
12
  CreateSummarizerNodeSource,
14
13
  SummarizeInternalFn,
@@ -19,7 +18,6 @@ import {
19
18
  ISequencedDocumentMessage,
20
19
  SummaryType,
21
20
  ISnapshotTree,
22
- SummaryObject,
23
21
  } from "@fluidframework/protocol-definitions";
24
22
  import {
25
23
  ITelemetryLoggerExt,
@@ -28,20 +26,20 @@ import {
28
26
  PerformanceEvent,
29
27
  TelemetryDataTag,
30
28
  tagCodeArtifacts,
29
+ type ITelemetryErrorEventExt,
31
30
  } from "@fluidframework/telemetry-utils";
32
31
  import { assert, unreachableCase } from "@fluidframework/core-utils";
33
- import { convertToSummaryTree, calculateStats, mergeStats } from "@fluidframework/runtime-utils";
32
+ import { mergeStats } from "@fluidframework/runtime-utils";
34
33
  import {
35
34
  EscapedPath,
36
35
  ICreateChildDetails,
37
- IInitialSummary,
38
36
  IRefreshSummaryResult,
37
+ IStartSummaryResult,
39
38
  ISummarizerNodeRootContract,
40
39
  parseSummaryForSubtrees,
41
- parseSummaryTreeForSubtrees,
42
40
  SummaryNode,
43
41
  ValidateSummaryResult,
44
- } from "./summarizerNodeUtils";
42
+ } from "./summarizerNodeUtils.js";
45
43
 
46
44
  export interface IRootSummarizerNode extends ISummarizerNode, ISummarizerNodeRootContract {}
47
45
 
@@ -86,7 +84,6 @@ export class SummarizerNode implements IRootSummarizerNode {
86
84
  private _changeSequenceNumber: number,
87
85
  /** Undefined means created without summary */
88
86
  private _latestSummary?: SummaryNode,
89
- private readonly initialSummary?: IInitialSummary,
90
87
  protected wipSummaryLogger?: ITelemetryBaseLogger,
91
88
  /** A unique id of this node to be logged when sending telemetry. */
92
89
  protected telemetryNodeId?: string,
@@ -101,7 +98,22 @@ export class SummarizerNode implements IRootSummarizerNode {
101
98
  });
102
99
  }
103
100
 
104
- 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 {
105
117
  assert(
106
118
  this.wipSummaryLogger === undefined,
107
119
  0x19f /* "wipSummaryLogger should not be set yet in startSummary" */,
@@ -111,12 +123,40 @@ export class SummarizerNode implements IRootSummarizerNode {
111
123
  0x1a0 /* "Already tracking a summary" */,
112
124
  );
113
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
+
114
140
  this.wipSummaryLogger = summaryLogger;
115
141
 
116
142
  for (const child of this.children.values()) {
117
- 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
+ }
118
153
  }
119
154
  this.wipReferenceSequenceNumber = referenceSequenceNumber;
155
+ return {
156
+ nodes,
157
+ invalidNodes,
158
+ mismatchNumbers: sequenceNumberMismatchKeySet,
159
+ };
120
160
  }
121
161
 
122
162
  public async summarize(
@@ -521,7 +561,6 @@ export class SummarizerNode implements IRootSummarizerNode {
521
561
  config,
522
562
  createDetails.changeSequenceNumber,
523
563
  createDetails.latestSummary,
524
- createDetails.initialSummary,
525
564
  this.wipSummaryLogger,
526
565
  createDetails.telemetryNodeId,
527
566
  );
@@ -549,7 +588,6 @@ export class SummarizerNode implements IRootSummarizerNode {
549
588
  id: string,
550
589
  createParam: CreateChildSummarizerNodeParam,
551
590
  ): ICreateChildDetails {
552
- let initialSummary: IInitialSummary | undefined;
553
591
  let latestSummary: SummaryNode | undefined;
554
592
  let changeSequenceNumber: number;
555
593
 
@@ -562,63 +600,12 @@ export class SummarizerNode implements IRootSummarizerNode {
562
600
  ) {
563
601
  // Prioritize latest summary if it was after this node was attached.
564
602
  latestSummary = parentLatestSummary.createForChild(id);
565
- } else {
566
- const summary = convertToSummaryTree(
567
- createParam.snapshot,
568
- ) as ISummaryTreeWithStats;
569
- initialSummary = {
570
- sequenceNumber: createParam.sequenceNumber,
571
- id,
572
- summary,
573
- };
574
603
  }
575
604
  changeSequenceNumber = createParam.sequenceNumber;
576
605
  break;
577
606
  }
578
- case CreateSummarizerNodeSource.FromSummary: {
579
- if (this.initialSummary === undefined) {
580
- assert(
581
- !!parentLatestSummary,
582
- 0x1ac /* "Cannot create child from summary if parent does not have latest summary" */,
583
- );
584
- }
585
- // fallthrough to local
586
- }
607
+ case CreateSummarizerNodeSource.FromSummary:
587
608
  case CreateSummarizerNodeSource.Local: {
588
- const parentInitialSummary = this.initialSummary;
589
- if (parentInitialSummary !== undefined) {
590
- let childSummary: SummaryObject | undefined;
591
- if (parentInitialSummary.summary !== undefined) {
592
- const { childrenTree } = parseSummaryTreeForSubtrees(
593
- parentInitialSummary.summary.summary,
594
- );
595
- assert(
596
- childrenTree.type === SummaryType.Tree,
597
- 0x1d6 /* "Parent summary object is not a tree" */,
598
- );
599
- childSummary = childrenTree.tree[id];
600
- }
601
- if (createParam.type === CreateSummarizerNodeSource.FromSummary) {
602
- // Locally created would not have differential subtree.
603
- assert(!!childSummary, 0x1ad /* "Missing child summary tree" */);
604
- }
605
- let childSummaryWithStats: ISummaryTreeWithStats | undefined;
606
- if (childSummary !== undefined) {
607
- assert(
608
- childSummary.type === SummaryType.Tree,
609
- 0x1ae /* "Child summary object is not a tree" */,
610
- );
611
- childSummaryWithStats = {
612
- summary: childSummary,
613
- stats: calculateStats(childSummary),
614
- };
615
- }
616
- initialSummary = {
617
- sequenceNumber: parentInitialSummary.sequenceNumber,
618
- id,
619
- summary: childSummaryWithStats,
620
- };
621
- }
622
609
  latestSummary = parentLatestSummary?.createForChild(id);
623
610
  changeSequenceNumber = parentLatestSummary?.referenceSequenceNumber ?? -1;
624
611
  break;
@@ -629,13 +616,12 @@ export class SummarizerNode implements IRootSummarizerNode {
629
616
  }
630
617
  }
631
618
 
632
- const childtelemetryNodeId = `${this.telemetryNodeId ?? ""}/${id}`;
619
+ const childTelemetryNodeId = `${this.telemetryNodeId ?? ""}/${id}`;
633
620
 
634
621
  return {
635
- initialSummary,
636
622
  latestSummary,
637
623
  changeSequenceNumber,
638
- telemetryNodeId: childtelemetryNodeId,
624
+ telemetryNodeId: childTelemetryNodeId,
639
625
  };
640
626
  }
641
627
 
@@ -682,7 +668,7 @@ export class SummarizerNode implements IRootSummarizerNode {
682
668
  /**
683
669
  * Creates and throws an error due to unexpected conditions.
684
670
  */
685
- protected throwUnexpectedError(eventProps: ITelemetryErrorEvent): never {
671
+ protected throwUnexpectedError(eventProps: ITelemetryErrorEventExt): never {
686
672
  const error = new LoggingError(eventProps.eventName, {
687
673
  ...eventProps,
688
674
  referenceSequenceNumber: this.wipReferenceSequenceNumber,
@@ -719,7 +705,6 @@ export const createRootSummarizerNode = (
719
705
  referenceSequenceNumber === undefined
720
706
  ? undefined
721
707
  : SummaryNode.createForRoot(referenceSequenceNumber),
722
- undefined /* initialSummary */,
723
708
  undefined /* wipSummaryLogger */,
724
709
  "" /* telemetryNodeId */,
725
710
  );
@@ -4,8 +4,8 @@
4
4
  */
5
5
 
6
6
  import { ITelemetryLoggerExt, TelemetryDataTag } from "@fluidframework/telemetry-utils";
7
- import { ISnapshotTree, ISummaryTree, SummaryObject } from "@fluidframework/protocol-definitions";
8
- import { channelsTreeName, ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
7
+ import { ISnapshotTree, SummaryObject } from "@fluidframework/protocol-definitions";
8
+ import { channelsTreeName } from "@fluidframework/runtime-definitions";
9
9
 
10
10
  export interface IRefreshSummaryResult {
11
11
  /** Tells whether this summary is tracked by this client. */
@@ -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;
@@ -135,21 +148,10 @@ export class SummaryNode {
135
148
  }
136
149
  }
137
150
 
138
- /**
139
- * Information about the initial summary tree found from an attach op.
140
- */
141
- export interface IInitialSummary {
142
- sequenceNumber: number;
143
- id: string;
144
- summary: ISummaryTreeWithStats | undefined;
145
- }
146
-
147
151
  /**
148
152
  * Represents the details needed to create a child summarizer node.
149
153
  */
150
154
  export interface ICreateChildDetails {
151
- /** Summary from attach op if known */
152
- initialSummary: IInitialSummary | undefined;
153
155
  /** Latest summary from server node data */
154
156
  latestSummary: SummaryNode | undefined;
155
157
  /** Sequence number of latest known change to the node */
@@ -184,23 +186,3 @@ export function parseSummaryForSubtrees(baseSummary: ISnapshotTree): ISubtreeInf
184
186
  childrenPathPart: undefined,
185
187
  };
186
188
  }
187
-
188
- /**
189
- * Checks if the summary contains .channels subtree where the children subtrees
190
- * would be located if exists.
191
- * @param baseSummary - summary to check
192
- */
193
- export function parseSummaryTreeForSubtrees(summary: ISummaryTree): ISubtreeInfo<SummaryObject> {
194
- // New versions of snapshots have child nodes isolated in .channels subtree
195
- const channelsSubtree = summary.tree[channelsTreeName];
196
- if (channelsSubtree !== undefined) {
197
- return {
198
- childrenTree: channelsSubtree,
199
- childrenPathPart: channelsTreeName,
200
- };
201
- }
202
- return {
203
- childrenTree: summary,
204
- childrenPathPart: undefined,
205
- };
206
- }
@@ -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,16 +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,
32
- IInitialSummary,
27
+ IStartSummaryResult,
33
28
  ISummarizerNodeRootContract,
34
29
  SummaryNode,
35
30
  ValidateSummaryResult,
36
- } from "./summarizerNodeUtils";
31
+ } from "./summarizerNodeUtils.js";
37
32
 
38
33
  export interface IRootSummarizerNodeWithGC
39
34
  extends ISummarizerNodeWithGC,
@@ -111,7 +106,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
111
106
  changeSequenceNumber: number,
112
107
  /** Undefined means created without summary */
113
108
  latestSummary?: SummaryNode,
114
- initialSummary?: IInitialSummary,
115
109
  wipSummaryLogger?: ITelemetryBaseLogger,
116
110
  private readonly getGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
117
111
  getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,
@@ -135,7 +129,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
135
129
  config,
136
130
  changeSequenceNumber,
137
131
  latestSummary,
138
- initialSummary,
139
132
  wipSummaryLogger,
140
133
  telemetryId,
141
134
  );
@@ -239,7 +232,11 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
239
232
  /**
240
233
  * Called during the start of a summary. Updates the work-in-progress used routes.
241
234
  */
242
- public startSummary(referenceSequenceNumber: number, summaryLogger: ITelemetryLoggerExt) {
235
+ public startSummary(
236
+ referenceSequenceNumber: number,
237
+ summaryLogger: ITelemetryBaseLogger,
238
+ latestSummaryRefSeqNum: number,
239
+ ): IStartSummaryResult {
243
240
  // If GC is disabled, skip setting wip used routes since we should not track GC state.
244
241
  if (!this.gcDisabled) {
245
242
  assert(
@@ -247,7 +244,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
247
244
  0x1b4 /* "We should not already be tracking used routes when to track a new summary" */,
248
245
  );
249
246
  }
250
- super.startSummary(referenceSequenceNumber, summaryLogger);
247
+ return super.startSummary(referenceSequenceNumber, summaryLogger, latestSummaryRefSeqNum);
251
248
  }
252
249
 
253
250
  /**
@@ -398,7 +395,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
398
395
  createParam: CreateChildSummarizerNodeParam,
399
396
  config: ISummarizerNodeConfigWithGC = {},
400
397
  getGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
401
- getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,
402
398
  ): ISummarizerNodeWithGC {
403
399
  assert(!this.children.has(id), 0x1b6 /* "Create SummarizerNode child already exists" */);
404
400
  /**
@@ -423,7 +419,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
423
419
  },
424
420
  createDetails.changeSequenceNumber,
425
421
  createDetails.latestSummary,
426
- createDetails.initialSummary,
427
422
  this.wipSummaryLogger,
428
423
  getGCDataFn,
429
424
  getChildBaseGCDetailsFn,
@@ -563,7 +558,6 @@ export const createRootSummarizerNodeWithGC = (
563
558
  referenceSequenceNumber === undefined
564
559
  ? undefined
565
560
  : SummaryNode.createForRoot(referenceSequenceNumber),
566
- undefined /* initialSummary */,
567
561
  undefined /* wipSummaryLogger */,
568
562
  getGCDataFn,
569
563
  getBaseGCDetailsFn,
@@ -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
  /**
@@ -377,7 +365,7 @@ export type EnqueueSummarizeResult =
377
365
  * @alpha
378
366
  */
379
367
  export type SummarizerStopReason =
380
- /** Summarizer client failed to summarize in all 3 consecutive attempts. */
368
+ /** Summarizer client failed to summarize in all attempts. */
381
369
  | "failToSummarize"
382
370
  /** Parent client reported that it is no longer connected. */
383
371
  | "parentNotConnected"
@@ -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
  /**
@@ -8,7 +8,7 @@ import {
8
8
  PerformanceEvent,
9
9
  LoggingError,
10
10
  } from "@fluidframework/telemetry-utils";
11
- import { ITelemetryProperties } from "@fluidframework/core-interfaces";
11
+ import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
12
12
 
13
13
  import {
14
14
  assert,
@@ -32,8 +32,9 @@ import {
32
32
  ISummaryCancellationToken,
33
33
  SummaryGeneratorTelemetry,
34
34
  SubmitSummaryFailureData,
35
- } from "./summarizerTypes";
36
- import { IClientSummaryWatcher } from "./summaryCollection";
35
+ IRefreshSummaryAckOptions,
36
+ } from "./summarizerTypes.js";
37
+ import { IClientSummaryWatcher } from "./summaryCollection.js";
37
38
 
38
39
  export type raceTimerResult<T> =
39
40
  | { result: "done"; value: T }
@@ -186,7 +187,7 @@ export class RetriableSummaryError extends LoggingError {
186
187
  constructor(
187
188
  message: string,
188
189
  public readonly retryAfterSeconds?: number,
189
- props?: ITelemetryProperties,
190
+ props?: ITelemetryBaseProperties,
190
191
  ) {
191
192
  super(message, props);
192
193
  }
@@ -204,6 +205,9 @@ export class SummaryGenerator {
204
205
  options: ISubmitSummaryOptions,
205
206
  ) => Promise<SubmitSummaryResult>,
206
207
  private readonly successfulSummaryCallback: () => void,
208
+ private readonly refreshLatestSummaryCallback: (
209
+ options: IRefreshSummaryAckOptions,
210
+ ) => Promise<void>,
207
211
  private readonly summaryWatcher: Pick<IClientSummaryWatcher, "watchSummary">,
208
212
  private readonly logger: ITelemetryLoggerExt,
209
213
  ) {
@@ -435,6 +439,14 @@ export class SummaryGenerator {
435
439
  ...summarizeTelemetryProps,
436
440
  handle: ackNackOp.contents.handle,
437
441
  });
442
+ // This processes the summary ack of the successful summary. This is so that the next summary does not
443
+ // start before the ack of the previous summary is processed.
444
+ await this.refreshLatestSummaryCallback({
445
+ proposalHandle: summarizeOp.contents.handle,
446
+ ackHandle: ackNackOp.contents.handle,
447
+ summaryRefSeq: summarizeOp.referenceSequenceNumber,
448
+ summaryLogger,
449
+ });
438
450
  resultsBuilder.receivedSummaryAckOrNack.resolve({
439
451
  success: true,
440
452
  data: {
@@ -17,8 +17,8 @@ import {
17
17
  PerformanceEvent,
18
18
  } from "@fluidframework/telemetry-utils";
19
19
  import { DriverErrorTypes } from "@fluidframework/driver-definitions";
20
- import { IThrottler } from "../throttler";
21
- import { ISummarizerClientElection } from "./summarizerClientElection";
20
+ import { IThrottler } from "../throttler.js";
21
+ import { ISummarizerClientElection } from "./summarizerClientElection.js";
22
22
  import {
23
23
  EnqueueSummarizeResult,
24
24
  IEnqueueSummarizeOptions,
@@ -28,9 +28,9 @@ import {
28
28
  ISummarizer,
29
29
  ISummarizerEvents,
30
30
  SummarizerStopReason,
31
- } from "./summarizerTypes";
32
- import { SummaryCollection } from "./summaryCollection";
33
- import { Summarizer } from "./summarizer";
31
+ } from "./summarizerTypes.js";
32
+ import { SummaryCollection } from "./summaryCollection.js";
33
+ import { Summarizer } from "./summarizer.js";
34
34
 
35
35
  const defaultInitialDelayMs = 5000;
36
36
  const defaultOpsToBypassInitialDelay = 4000;
@@ -120,7 +120,6 @@ export class SummaryManager extends TypedEventEmitter<ISummarizerEvents> impleme
120
120
  initialDelayMs = defaultInitialDelayMs,
121
121
  opsToBypassInitialDelay = defaultOpsToBypassInitialDelay,
122
122
  }: Readonly<Partial<ISummaryManagerConfig>> = {},
123
- private readonly disableHeuristics?: boolean,
124
123
  ) {
125
124
  super();
126
125
 
@@ -295,7 +294,7 @@ export class SummaryManager extends TypedEventEmitter<ISummarizerEvents> impleme
295
294
  return PerformanceEvent.timedExecAsync(
296
295
  this.logger,
297
296
  { eventName: "RunningSummarizer", attempt: this.startThrottler.numAttempts },
298
- async () => summarizer.run(clientId, this.disableHeuristics),
297
+ async () => summarizer.run(clientId),
299
298
  );
300
299
  })
301
300
  .then((reason: string) => {
@@ -0,0 +1,7 @@
1
+ {
2
+ // This config must be used in a "type": "commonjs" environment. (Use fluid-tsc commonjs.)
3
+ "extends": "./tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "./dist",
6
+ },
7
+ }
package/tsconfig.json CHANGED
@@ -1,12 +1,9 @@
1
1
  {
2
- "extends": [
3
- "../../../common/build/build-common/tsconfig.base.json",
4
- "../../../common/build/build-common/tsconfig.cjs.json",
5
- ],
2
+ "extends": "../../../common/build/build-common/tsconfig.node16.json",
6
3
  "include": ["src/**/*"],
7
4
  "exclude": ["src/test/**/*"],
8
5
  "compilerOptions": {
9
6
  "rootDir": "./src",
10
- "outDir": "./dist",
7
+ "outDir": "./lib",
11
8
  },
12
9
  }