@fluidframework/container-runtime 2.0.0-rc.1.0.6 → 2.0.0-rc.2.0.1

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 (687) 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 +63 -29
  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/{lib/dataStores.d.mts → dist/channelCollection.d.ts} +94 -27
  14. package/dist/channelCollection.d.ts.map +1 -0
  15. package/dist/{dataStores.js → channelCollection.js} +359 -84
  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 +93 -39
  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 +118 -39
  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 +74 -54
  29. package/dist/containerRuntime.d.ts.map +1 -1
  30. package/dist/containerRuntime.js +534 -410
  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 +34 -29
  37. package/dist/dataStoreContext.d.ts.map +1 -1
  38. package/dist/dataStoreContext.js +157 -133
  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 +5 -4
  48. package/dist/gc/garbageCollection.d.ts.map +1 -1
  49. package/dist/gc/garbageCollection.js +64 -53
  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 +10 -3
  56. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  57. package/dist/gc/gcDefinitions.js.map +1 -1
  58. package/dist/gc/gcHelpers.d.ts +2 -2
  59. package/dist/gc/gcHelpers.d.ts.map +1 -1
  60. package/dist/gc/gcHelpers.js.map +1 -1
  61. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +1 -1
  62. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -1
  63. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  64. package/dist/gc/gcSummaryStateTracker.d.ts +4 -4
  65. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  66. package/dist/gc/gcSummaryStateTracker.js +5 -5
  67. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  68. package/dist/gc/gcTelemetry.d.ts +6 -7
  69. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  70. package/dist/gc/gcTelemetry.js +17 -17
  71. package/dist/gc/gcTelemetry.js.map +1 -1
  72. package/dist/gc/gcUnreferencedStateTracker.d.ts +1 -1
  73. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  74. package/dist/gc/gcUnreferencedStateTracker.js +10 -10
  75. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  76. package/dist/gc/index.d.ts +8 -8
  77. package/dist/gc/index.d.ts.map +1 -1
  78. package/dist/gc/index.js +39 -39
  79. package/dist/gc/index.js.map +1 -1
  80. package/dist/index.d.ts +8 -20
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +28 -40
  83. package/dist/index.js.map +1 -1
  84. package/dist/messageTypes.d.ts +4 -4
  85. package/dist/messageTypes.d.ts.map +1 -1
  86. package/dist/messageTypes.js.map +1 -1
  87. package/dist/opLifecycle/batchManager.d.ts +2 -2
  88. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  89. package/dist/opLifecycle/batchManager.js.map +1 -1
  90. package/dist/opLifecycle/definitions.d.ts +2 -2
  91. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  92. package/dist/opLifecycle/definitions.js.map +1 -1
  93. package/dist/opLifecycle/index.d.ts +8 -8
  94. package/dist/opLifecycle/index.d.ts.map +1 -1
  95. package/dist/opLifecycle/index.js +18 -18
  96. package/dist/opLifecycle/index.js.map +1 -1
  97. package/dist/opLifecycle/opCompressor.d.ts +1 -1
  98. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  99. package/dist/opLifecycle/opCompressor.js +4 -4
  100. package/dist/opLifecycle/opCompressor.js.map +1 -1
  101. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  102. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  103. package/dist/opLifecycle/opDecompressor.js +3 -3
  104. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  105. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  106. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  107. package/dist/opLifecycle/opGroupingManager.js +1 -10
  108. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  109. package/dist/opLifecycle/opSplitter.d.ts +1 -1
  110. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  111. package/dist/opLifecycle/opSplitter.js +5 -5
  112. package/dist/opLifecycle/opSplitter.js.map +1 -1
  113. package/dist/opLifecycle/outbox.d.ts +7 -7
  114. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  115. package/dist/opLifecycle/outbox.js +20 -12
  116. package/dist/opLifecycle/outbox.js.map +1 -1
  117. package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -4
  118. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  119. package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
  120. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  121. package/dist/package.json +3 -0
  122. package/dist/packageVersion.d.ts +1 -1
  123. package/dist/packageVersion.js +1 -1
  124. package/dist/packageVersion.js.map +1 -1
  125. package/dist/pendingStateManager.d.ts +2 -1
  126. package/dist/pendingStateManager.d.ts.map +1 -1
  127. package/dist/pendingStateManager.js +18 -10
  128. package/dist/pendingStateManager.js.map +1 -1
  129. package/dist/scheduleManager.d.ts +1 -2
  130. package/dist/scheduleManager.d.ts.map +1 -1
  131. package/dist/scheduleManager.js +5 -5
  132. package/dist/scheduleManager.js.map +1 -1
  133. package/dist/summary/index.d.ts +12 -12
  134. package/dist/summary/index.d.ts.map +1 -1
  135. package/dist/summary/index.js +43 -43
  136. package/dist/summary/index.js.map +1 -1
  137. package/dist/summary/orderedClientElection.js +8 -8
  138. package/dist/summary/orderedClientElection.js.map +1 -1
  139. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  140. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  141. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  142. package/dist/summary/runningSummarizer.d.ts +11 -10
  143. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  144. package/dist/summary/runningSummarizer.js +114 -81
  145. package/dist/summary/runningSummarizer.js.map +1 -1
  146. package/dist/summary/summarizer.d.ts +4 -4
  147. package/dist/summary/summarizer.d.ts.map +1 -1
  148. package/dist/summary/summarizer.js +6 -6
  149. package/dist/summary/summarizer.js.map +1 -1
  150. package/dist/summary/summarizerClientElection.d.ts +2 -2
  151. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  152. package/dist/summary/summarizerClientElection.js.map +1 -1
  153. package/dist/summary/summarizerHeuristics.d.ts +3 -3
  154. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  155. package/dist/summary/summarizerHeuristics.js.map +1 -1
  156. package/dist/summary/summarizerNode/index.d.ts +3 -3
  157. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  158. package/dist/summary/summarizerNode/index.js +4 -4
  159. package/dist/summary/summarizerNode/index.js.map +1 -1
  160. package/dist/summary/summarizerNode/summarizerNode.d.ts +17 -7
  161. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  162. package/dist/summary/summarizerNode/summarizerNode.js +45 -57
  163. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  164. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +10 -19
  165. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  166. package/dist/summary/summarizerNode/summarizerNodeUtils.js +1 -21
  167. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  168. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +5 -6
  169. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  170. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +16 -16
  171. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  172. package/dist/summary/summarizerTypes.d.ts +10 -21
  173. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  174. package/dist/summary/summarizerTypes.js.map +1 -1
  175. package/dist/summary/summaryFormat.d.ts +15 -2
  176. package/dist/summary/summaryFormat.d.ts.map +1 -1
  177. package/dist/summary/summaryFormat.js.map +1 -1
  178. package/dist/summary/summaryGenerator.d.ts +6 -5
  179. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  180. package/dist/summary/summaryGenerator.js +10 -1
  181. package/dist/summary/summaryGenerator.js.map +1 -1
  182. package/dist/summary/summaryManager.d.ts +5 -6
  183. package/dist/summary/summaryManager.d.ts.map +1 -1
  184. package/dist/summary/summaryManager.js +4 -5
  185. package/dist/summary/summaryManager.js.map +1 -1
  186. package/dist/tsdoc-metadata.json +1 -1
  187. package/lib/{batchTracker.d.mts → batchTracker.d.ts} +2 -3
  188. package/lib/batchTracker.d.ts.map +1 -0
  189. package/lib/{batchTracker.mjs → batchTracker.js} +1 -1
  190. package/lib/batchTracker.js.map +1 -0
  191. package/lib/{blobManager.d.mts → blobManager.d.ts} +1 -1
  192. package/lib/blobManager.d.ts.map +1 -0
  193. package/lib/{blobManager.mjs → blobManager.js} +1 -1
  194. package/lib/blobManager.js.map +1 -0
  195. package/{dist/dataStores.d.ts → lib/channelCollection.d.ts} +94 -27
  196. package/lib/channelCollection.d.ts.map +1 -0
  197. package/lib/{dataStores.mjs → channelCollection.js} +345 -73
  198. package/lib/channelCollection.js.map +1 -0
  199. package/lib/{connectionTelemetry.d.mts → connectionTelemetry.d.ts} +12 -2
  200. package/lib/connectionTelemetry.d.ts.map +1 -0
  201. package/lib/{connectionTelemetry.mjs → connectionTelemetry.js} +43 -5
  202. package/lib/connectionTelemetry.js.map +1 -0
  203. package/lib/{container-runtime-alpha.d.mts → container-runtime-alpha.d.ts} +93 -39
  204. package/lib/{container-runtime-public.d.mts → container-runtime-beta.d.ts} +27 -9
  205. package/lib/{container-runtime-beta.d.mts → container-runtime-public.d.ts} +27 -9
  206. package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +118 -39
  207. package/lib/{containerHandleContext.d.mts → containerHandleContext.d.ts} +2 -2
  208. package/lib/containerHandleContext.d.ts.map +1 -0
  209. package/lib/{containerHandleContext.mjs → containerHandleContext.js} +1 -1
  210. package/lib/containerHandleContext.js.map +1 -0
  211. package/lib/{containerRuntime.d.mts → containerRuntime.d.ts} +79 -55
  212. package/lib/containerRuntime.d.ts.map +1 -0
  213. package/lib/{containerRuntime.mjs → containerRuntime.js} +453 -331
  214. package/lib/containerRuntime.js.map +1 -0
  215. package/lib/{dataStore.d.mts → dataStore.d.ts} +3 -4
  216. package/lib/dataStore.d.ts.map +1 -0
  217. package/lib/{dataStore.mjs → dataStore.js} +13 -12
  218. package/lib/dataStore.js.map +1 -0
  219. package/lib/{dataStoreContext.d.mts → dataStoreContext.d.ts} +35 -30
  220. package/lib/dataStoreContext.d.ts.map +1 -0
  221. package/lib/{dataStoreContext.mjs → dataStoreContext.js} +146 -122
  222. package/lib/dataStoreContext.js.map +1 -0
  223. package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +2 -2
  224. package/lib/dataStoreContexts.d.ts.map +1 -0
  225. package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +1 -1
  226. package/lib/dataStoreContexts.js.map +1 -0
  227. package/lib/{dataStoreRegistry.d.mts → dataStoreRegistry.d.ts} +1 -1
  228. package/lib/dataStoreRegistry.d.ts.map +1 -0
  229. package/lib/{dataStoreRegistry.mjs → dataStoreRegistry.js} +5 -1
  230. package/lib/dataStoreRegistry.js.map +1 -0
  231. package/{dist/deltaManagerProxyBase.d.ts → lib/deltaManagerSummarizerProxy.d.ts} +16 -7
  232. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
  233. package/lib/deltaManagerSummarizerProxy.js +124 -0
  234. package/lib/deltaManagerSummarizerProxy.js.map +1 -0
  235. package/lib/{deltaScheduler.d.mts → deltaScheduler.d.ts} +1 -1
  236. package/lib/deltaScheduler.d.ts.map +1 -0
  237. package/lib/{deltaScheduler.mjs → deltaScheduler.js} +1 -1
  238. package/lib/deltaScheduler.js.map +1 -0
  239. package/lib/{error.d.mts → error.d.ts} +1 -1
  240. package/lib/error.d.ts.map +1 -0
  241. package/lib/{error.mjs → error.js} +1 -1
  242. package/lib/error.js.map +1 -0
  243. package/lib/gc/{garbageCollection.d.mts → garbageCollection.d.ts} +6 -5
  244. package/lib/gc/garbageCollection.d.ts.map +1 -0
  245. package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +25 -14
  246. package/lib/gc/garbageCollection.js.map +1 -0
  247. package/lib/gc/{gcConfigs.d.mts → gcConfigs.d.ts} +3 -3
  248. package/lib/gc/gcConfigs.d.ts.map +1 -0
  249. package/lib/gc/{gcConfigs.mjs → gcConfigs.js} +3 -3
  250. package/lib/gc/gcConfigs.js.map +1 -0
  251. package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +11 -4
  252. package/lib/gc/gcDefinitions.d.ts.map +1 -0
  253. package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +1 -1
  254. package/lib/gc/gcDefinitions.js.map +1 -0
  255. package/lib/gc/{gcHelpers.d.mts → gcHelpers.d.ts} +3 -3
  256. package/lib/gc/{gcHelpers.d.mts.map → gcHelpers.d.ts.map} +1 -1
  257. package/lib/gc/{gcHelpers.mjs → gcHelpers.js} +1 -1
  258. package/lib/gc/gcHelpers.js.map +1 -0
  259. package/lib/gc/{gcReferenceGraphAlgorithm.d.mts → gcReferenceGraphAlgorithm.d.ts} +2 -2
  260. package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  261. package/lib/gc/{gcReferenceGraphAlgorithm.mjs → gcReferenceGraphAlgorithm.js} +1 -1
  262. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
  263. package/lib/gc/{gcSummaryDefinitions.d.mts → gcSummaryDefinitions.d.ts} +1 -1
  264. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
  265. package/lib/gc/{gcSummaryDefinitions.mjs → gcSummaryDefinitions.js} +1 -1
  266. package/lib/gc/gcSummaryDefinitions.js.map +1 -0
  267. package/lib/gc/{gcSummaryStateTracker.d.mts → gcSummaryStateTracker.d.ts} +5 -5
  268. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
  269. package/lib/gc/{gcSummaryStateTracker.mjs → gcSummaryStateTracker.js} +4 -4
  270. package/lib/gc/gcSummaryStateTracker.js.map +1 -0
  271. package/lib/gc/{gcTelemetry.d.mts → gcTelemetry.d.ts} +7 -8
  272. package/lib/gc/gcTelemetry.d.ts.map +1 -0
  273. package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +2 -2
  274. package/lib/gc/gcTelemetry.js.map +1 -0
  275. package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +2 -2
  276. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  277. package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +2 -2
  278. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
  279. package/lib/gc/{index.d.mts → index.d.ts} +9 -9
  280. package/lib/gc/index.d.ts.map +1 -0
  281. package/lib/gc/{index.mjs → index.js} +8 -8
  282. package/lib/gc/index.js.map +1 -0
  283. package/lib/{index.d.mts → index.d.ts} +9 -21
  284. package/lib/index.d.ts.map +1 -0
  285. package/lib/index.js +12 -0
  286. package/lib/index.js.map +1 -0
  287. package/lib/{messageTypes.d.mts → messageTypes.d.ts} +5 -5
  288. package/lib/messageTypes.d.ts.map +1 -0
  289. package/lib/{messageTypes.mjs → messageTypes.js} +1 -1
  290. package/lib/messageTypes.js.map +1 -0
  291. package/lib/{metadata.d.mts → metadata.d.ts} +1 -1
  292. package/lib/metadata.d.ts.map +1 -0
  293. package/lib/{metadata.mjs → metadata.js} +1 -1
  294. package/lib/metadata.js.map +1 -0
  295. package/lib/opLifecycle/{batchManager.d.mts → batchManager.d.ts} +3 -3
  296. package/lib/opLifecycle/batchManager.d.ts.map +1 -0
  297. package/lib/opLifecycle/{batchManager.mjs → batchManager.js} +1 -1
  298. package/lib/opLifecycle/batchManager.js.map +1 -0
  299. package/lib/opLifecycle/{definitions.d.mts → definitions.d.ts} +3 -3
  300. package/lib/opLifecycle/definitions.d.ts.map +1 -0
  301. package/lib/opLifecycle/{definitions.mjs → definitions.js} +1 -1
  302. package/lib/opLifecycle/definitions.js.map +1 -0
  303. package/lib/opLifecycle/index.d.ts +13 -0
  304. package/lib/opLifecycle/index.d.ts.map +1 -0
  305. package/lib/opLifecycle/index.js +12 -0
  306. package/lib/opLifecycle/index.js.map +1 -0
  307. package/lib/opLifecycle/{opCompressor.d.mts → opCompressor.d.ts} +2 -2
  308. package/lib/opLifecycle/opCompressor.d.ts.map +1 -0
  309. package/lib/opLifecycle/{opCompressor.mjs → opCompressor.js} +3 -3
  310. package/lib/opLifecycle/opCompressor.js.map +1 -0
  311. package/lib/opLifecycle/{opDecompressor.d.mts → opDecompressor.d.ts} +2 -2
  312. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -0
  313. package/lib/opLifecycle/{opDecompressor.mjs → opDecompressor.js} +2 -2
  314. package/lib/opLifecycle/opDecompressor.js.map +1 -0
  315. package/lib/opLifecycle/{opGroupingManager.d.mts → opGroupingManager.d.ts} +2 -2
  316. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
  317. package/lib/opLifecycle/{opGroupingManager.mjs → opGroupingManager.js} +2 -11
  318. package/lib/opLifecycle/opGroupingManager.js.map +1 -0
  319. package/lib/opLifecycle/{opSplitter.d.mts → opSplitter.d.ts} +2 -2
  320. package/lib/opLifecycle/opSplitter.d.ts.map +1 -0
  321. package/lib/opLifecycle/{opSplitter.mjs → opSplitter.js} +3 -3
  322. package/lib/opLifecycle/opSplitter.js.map +1 -0
  323. package/lib/opLifecycle/{outbox.d.mts → outbox.d.ts} +8 -8
  324. package/lib/opLifecycle/outbox.d.ts.map +1 -0
  325. package/lib/opLifecycle/{outbox.mjs → outbox.js} +12 -4
  326. package/lib/opLifecycle/outbox.js.map +1 -0
  327. package/lib/opLifecycle/{remoteMessageProcessor.d.mts → remoteMessageProcessor.d.ts} +5 -5
  328. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  329. package/lib/opLifecycle/{remoteMessageProcessor.mjs → remoteMessageProcessor.js} +2 -2
  330. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -0
  331. package/lib/{opProperties.d.mts → opProperties.d.ts} +1 -1
  332. package/lib/opProperties.d.ts.map +1 -0
  333. package/lib/{opProperties.mjs → opProperties.js} +1 -1
  334. package/lib/opProperties.js.map +1 -0
  335. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  336. package/lib/packageVersion.d.ts.map +1 -0
  337. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  338. package/lib/packageVersion.js.map +1 -0
  339. package/lib/{pendingStateManager.d.mts → pendingStateManager.d.ts} +3 -2
  340. package/lib/pendingStateManager.d.ts.map +1 -0
  341. package/lib/{pendingStateManager.mjs → pendingStateManager.js} +18 -10
  342. package/lib/pendingStateManager.js.map +1 -0
  343. package/lib/{scheduleManager.d.mts → scheduleManager.d.ts} +6 -3
  344. package/lib/scheduleManager.d.ts.map +1 -0
  345. package/lib/{scheduleManager.mjs → scheduleManager.js} +3 -3
  346. package/lib/scheduleManager.js.map +1 -0
  347. package/lib/{storageServiceWithAttachBlobs.d.mts → storageServiceWithAttachBlobs.d.ts} +1 -1
  348. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
  349. package/lib/{storageServiceWithAttachBlobs.mjs → storageServiceWithAttachBlobs.js} +1 -1
  350. package/lib/storageServiceWithAttachBlobs.js.map +1 -0
  351. package/lib/summary/{index.d.mts → index.d.ts} +13 -13
  352. package/lib/summary/index.d.ts.map +1 -0
  353. package/lib/summary/{index.mjs → index.js} +12 -12
  354. package/lib/summary/index.js.map +1 -0
  355. package/lib/summary/{orderedClientElection.d.mts → orderedClientElection.d.ts} +5 -1
  356. package/lib/summary/orderedClientElection.d.ts.map +1 -0
  357. package/lib/summary/{orderedClientElection.mjs → orderedClientElection.js} +2 -2
  358. package/lib/summary/orderedClientElection.js.map +1 -0
  359. package/lib/summary/{runWhileConnectedCoordinator.d.mts → runWhileConnectedCoordinator.d.ts} +2 -2
  360. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  361. package/lib/summary/{runWhileConnectedCoordinator.mjs → runWhileConnectedCoordinator.js} +1 -1
  362. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
  363. package/lib/summary/{runningSummarizer.d.mts → runningSummarizer.d.ts} +12 -11
  364. package/lib/summary/runningSummarizer.d.ts.map +1 -0
  365. package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +108 -75
  366. package/lib/summary/runningSummarizer.js.map +1 -0
  367. package/lib/summary/{summarizer.d.mts → summarizer.d.ts} +5 -5
  368. package/lib/summary/summarizer.d.ts.map +1 -0
  369. package/lib/summary/{summarizer.mjs → summarizer.js} +4 -4
  370. package/lib/summary/summarizer.js.map +1 -0
  371. package/lib/summary/{summarizerClientElection.d.mts → summarizerClientElection.d.ts} +3 -3
  372. package/lib/summary/summarizerClientElection.d.ts.map +1 -0
  373. package/lib/summary/{summarizerClientElection.mjs → summarizerClientElection.js} +1 -1
  374. package/lib/summary/summarizerClientElection.js.map +1 -0
  375. package/lib/summary/{summarizerHeuristics.d.mts → summarizerHeuristics.d.ts} +4 -4
  376. package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
  377. package/lib/summary/{summarizerHeuristics.mjs → summarizerHeuristics.js} +1 -1
  378. package/lib/summary/summarizerHeuristics.js.map +1 -0
  379. package/lib/summary/summarizerNode/{index.d.mts → index.d.ts} +4 -4
  380. package/lib/summary/summarizerNode/index.d.ts.map +1 -0
  381. package/lib/summary/summarizerNode/index.js +7 -0
  382. package/lib/summary/summarizerNode/index.js.map +1 -0
  383. package/lib/summary/summarizerNode/{summarizerNode.d.mts → summarizerNode.d.ts} +18 -8
  384. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  385. package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +41 -53
  386. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
  387. package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +11 -20
  388. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  389. package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -20
  390. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
  391. package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +6 -7
  392. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  393. package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +12 -12
  394. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
  395. package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +11 -22
  396. package/lib/summary/summarizerTypes.d.ts.map +1 -0
  397. package/lib/summary/{summarizerTypes.mjs → summarizerTypes.js} +1 -1
  398. package/lib/summary/summarizerTypes.js.map +1 -0
  399. package/lib/summary/{summaryCollection.d.mts → summaryCollection.d.ts} +1 -1
  400. package/lib/summary/summaryCollection.d.ts.map +1 -0
  401. package/lib/summary/{summaryCollection.mjs → summaryCollection.js} +1 -1
  402. package/lib/summary/summaryCollection.js.map +1 -0
  403. package/lib/summary/{summaryFormat.d.mts → summaryFormat.d.ts} +16 -3
  404. package/lib/summary/summaryFormat.d.ts.map +1 -0
  405. package/lib/summary/{summaryFormat.mjs → summaryFormat.js} +1 -1
  406. package/lib/summary/summaryFormat.js.map +1 -0
  407. package/lib/summary/{summaryGenerator.d.mts → summaryGenerator.d.ts} +7 -6
  408. package/lib/summary/summaryGenerator.d.ts.map +1 -0
  409. package/lib/summary/{summaryGenerator.mjs → summaryGenerator.js} +11 -2
  410. package/lib/summary/summaryGenerator.js.map +1 -0
  411. package/lib/summary/{summaryManager.d.mts → summaryManager.d.ts} +6 -7
  412. package/lib/summary/summaryManager.d.ts.map +1 -0
  413. package/lib/summary/{summaryManager.mjs → summaryManager.js} +4 -5
  414. package/lib/summary/summaryManager.js.map +1 -0
  415. package/lib/test/batchTracker.spec.js +88 -0
  416. package/lib/test/batchTracker.spec.js.map +1 -0
  417. package/lib/test/blobManager.spec.js +835 -0
  418. package/lib/test/blobManager.spec.js.map +1 -0
  419. package/lib/test/channelCollection.spec.js +141 -0
  420. package/lib/test/channelCollection.spec.js.map +1 -0
  421. package/lib/test/containerRuntime.spec.js +1748 -0
  422. package/lib/test/containerRuntime.spec.js.map +1 -0
  423. package/lib/test/dataStoreContext.spec.js +801 -0
  424. package/lib/test/dataStoreContext.spec.js.map +1 -0
  425. package/lib/test/dataStoreCreation.spec.js +312 -0
  426. package/lib/test/dataStoreCreation.spec.js.map +1 -0
  427. package/lib/test/dataStoreRegistry.spec.js +26 -0
  428. package/lib/test/dataStoreRegistry.spec.js.map +1 -0
  429. package/lib/test/fuzz/fuzzUtils.js +66 -0
  430. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  431. package/lib/test/fuzz/summarizer.fuzz.spec.js +31 -0
  432. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +1 -0
  433. package/lib/test/fuzz/summarizerFuzzMocks.js +162 -0
  434. package/lib/test/fuzz/summarizerFuzzMocks.js.map +1 -0
  435. package/lib/test/fuzz/summarizerFuzzSuite.js +106 -0
  436. package/lib/test/fuzz/summarizerFuzzSuite.js.map +1 -0
  437. package/lib/test/gc/garbageCollection.spec.js +1465 -0
  438. package/lib/test/gc/garbageCollection.spec.js.map +1 -0
  439. package/lib/test/gc/gcConfigs.spec.js +690 -0
  440. package/lib/test/gc/gcConfigs.spec.js.map +1 -0
  441. package/lib/test/gc/gcHelpers.spec.js +110 -0
  442. package/lib/test/gc/gcHelpers.spec.js.map +1 -0
  443. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +68 -0
  444. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +1 -0
  445. package/lib/test/gc/gcStats.spec.js +391 -0
  446. package/lib/test/gc/gcStats.spec.js.map +1 -0
  447. package/lib/test/gc/gcSummaryStateTracker.spec.js +228 -0
  448. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +1 -0
  449. package/lib/test/gc/gcTelemetry.spec.js +530 -0
  450. package/lib/test/gc/gcTelemetry.spec.js.map +1 -0
  451. package/lib/test/gc/gcUnitTestHelpers.js +29 -0
  452. package/lib/test/gc/gcUnitTestHelpers.js.map +1 -0
  453. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +192 -0
  454. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +1 -0
  455. package/lib/test/getPendingBlobs.spec.js +193 -0
  456. package/lib/test/getPendingBlobs.spec.js.map +1 -0
  457. package/lib/test/hardwareStats.spec.js +93 -0
  458. package/lib/test/hardwareStats.spec.js.map +1 -0
  459. package/lib/test/index.js +6 -0
  460. package/lib/test/index.js.map +1 -0
  461. package/lib/test/opLifecycle/OpGroupingManager.spec.js +225 -0
  462. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +1 -0
  463. package/lib/test/opLifecycle/batchManager.spec.js +189 -0
  464. package/lib/test/opLifecycle/batchManager.spec.js.map +1 -0
  465. package/lib/test/opLifecycle/opCompressor.spec.js +74 -0
  466. package/lib/test/opLifecycle/opCompressor.spec.js.map +1 -0
  467. package/lib/test/opLifecycle/opDecompressor.spec.js +218 -0
  468. package/lib/test/opLifecycle/opDecompressor.spec.js.map +1 -0
  469. package/lib/test/opLifecycle/opSplitter.spec.js +272 -0
  470. package/lib/test/opLifecycle/opSplitter.spec.js.map +1 -0
  471. package/lib/test/opLifecycle/outbox.spec.js +675 -0
  472. package/lib/test/opLifecycle/outbox.spec.js.map +1 -0
  473. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +196 -0
  474. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +1 -0
  475. package/lib/test/pendingStateManager.spec.js +329 -0
  476. package/lib/test/pendingStateManager.spec.js.map +1 -0
  477. package/lib/test/scheduleManager.spec.js +270 -0
  478. package/lib/test/scheduleManager.spec.js.map +1 -0
  479. package/lib/test/summarizerNode.spec.js +326 -0
  480. package/lib/test/summarizerNode.spec.js.map +1 -0
  481. package/lib/test/summarizerNodeWithGc.spec.js +318 -0
  482. package/lib/test/summarizerNodeWithGc.spec.js.map +1 -0
  483. package/lib/test/summary/orderedClientElection.spec.js +535 -0
  484. package/lib/test/summary/orderedClientElection.spec.js.map +1 -0
  485. package/lib/test/summary/runningSummarizer.spec.js +1349 -0
  486. package/lib/test/summary/runningSummarizer.spec.js.map +1 -0
  487. package/lib/test/summary/summarizer.spec.js +29 -0
  488. package/lib/test/summary/summarizer.spec.js.map +1 -0
  489. package/lib/test/summary/summarizerClientElection.spec.js +436 -0
  490. package/lib/test/summary/summarizerClientElection.spec.js.map +1 -0
  491. package/lib/test/summary/summarizerHeuristics.spec.js +289 -0
  492. package/lib/test/summary/summarizerHeuristics.spec.js.map +1 -0
  493. package/lib/test/summary/summaryCollection.spec.js +200 -0
  494. package/lib/test/summary/summaryCollection.spec.js.map +1 -0
  495. package/lib/test/summary/summaryManager.spec.js +430 -0
  496. package/lib/test/summary/summaryManager.spec.js.map +1 -0
  497. package/lib/test/summary/testQuorumClients.js +34 -0
  498. package/lib/test/summary/testQuorumClients.js.map +1 -0
  499. package/lib/test/throttler.spec.js +175 -0
  500. package/lib/test/throttler.spec.js.map +1 -0
  501. package/lib/test/types/validateContainerRuntimePrevious.generated.js +180 -0
  502. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +1 -0
  503. package/lib/{throttler.d.mts → throttler.d.ts} +1 -1
  504. package/lib/throttler.d.ts.map +1 -0
  505. package/lib/{throttler.mjs → throttler.js} +1 -1
  506. package/lib/throttler.js.map +1 -0
  507. package/package.json +99 -88
  508. package/src/batchTracker.ts +1 -1
  509. package/src/blobManager.ts +1 -1
  510. package/src/{dataStores.ts → channelCollection.ts} +467 -88
  511. package/src/connectionTelemetry.ts +42 -3
  512. package/src/containerHandleContext.ts +1 -1
  513. package/src/containerRuntime.ts +649 -462
  514. package/src/dataStore.ts +13 -15
  515. package/src/dataStoreContext.ts +203 -173
  516. package/src/dataStoreContexts.ts +1 -1
  517. package/src/deltaManagerSummarizerProxy.ts +132 -7
  518. package/src/gc/garbageCollection.ts +29 -16
  519. package/src/gc/gcConfigs.ts +3 -3
  520. package/src/gc/gcDefinitions.ts +10 -3
  521. package/src/gc/gcHelpers.ts +2 -2
  522. package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
  523. package/src/gc/gcSummaryStateTracker.ts +5 -6
  524. package/src/gc/gcTelemetry.ts +6 -6
  525. package/src/gc/gcUnreferencedStateTracker.ts +1 -1
  526. package/src/gc/index.ts +8 -8
  527. package/src/index.ts +16 -27
  528. package/src/messageTypes.ts +4 -4
  529. package/src/opLifecycle/README.md +2 -4
  530. package/src/opLifecycle/batchManager.ts +2 -2
  531. package/src/opLifecycle/definitions.ts +2 -2
  532. package/src/opLifecycle/index.ts +8 -8
  533. package/src/opLifecycle/opCompressor.ts +3 -3
  534. package/src/opLifecycle/opDecompressor.ts +3 -3
  535. package/src/opLifecycle/opGroupingManager.ts +3 -12
  536. package/src/opLifecycle/opSplitter.ts +3 -3
  537. package/src/opLifecycle/outbox.ts +29 -9
  538. package/src/opLifecycle/remoteMessageProcessor.ts +4 -4
  539. package/src/packageVersion.ts +1 -1
  540. package/src/pendingStateManager.ts +19 -13
  541. package/src/scheduleManager.ts +4 -4
  542. package/src/summary/index.ts +13 -12
  543. package/src/summary/orderedClientElection.ts +1 -1
  544. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  545. package/src/summary/runningSummarizer.ts +141 -93
  546. package/src/summary/summarizer.ts +7 -7
  547. package/src/summary/summarizerClientElection.ts +2 -2
  548. package/src/summary/summarizerHeuristics.ts +3 -3
  549. package/src/summary/summarizerNode/index.ts +6 -3
  550. package/src/summary/summarizerNode/summarizerNode.ts +54 -69
  551. package/src/summary/summarizerNode/summarizerNodeUtils.ts +16 -34
  552. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -17
  553. package/src/summary/summarizerTypes.ts +12 -24
  554. package/src/summary/summaryFormat.ts +16 -2
  555. package/src/summary/summaryGenerator.ts +16 -4
  556. package/src/summary/summaryManager.ts +6 -7
  557. package/tsconfig.cjs.json +7 -0
  558. package/tsconfig.json +2 -5
  559. package/dist/dataStores.d.ts.map +0 -1
  560. package/dist/dataStores.js.map +0 -1
  561. package/dist/deltaManagerProxyBase.d.ts.map +0 -1
  562. package/dist/deltaManagerProxyBase.js +0 -77
  563. package/dist/deltaManagerProxyBase.js.map +0 -1
  564. package/lib/batchTracker.d.mts.map +0 -1
  565. package/lib/batchTracker.mjs.map +0 -1
  566. package/lib/blobManager.d.mts.map +0 -1
  567. package/lib/blobManager.mjs.map +0 -1
  568. package/lib/connectionTelemetry.d.mts.map +0 -1
  569. package/lib/connectionTelemetry.mjs.map +0 -1
  570. package/lib/containerHandleContext.d.mts.map +0 -1
  571. package/lib/containerHandleContext.mjs.map +0 -1
  572. package/lib/containerRuntime.d.mts.map +0 -1
  573. package/lib/containerRuntime.mjs.map +0 -1
  574. package/lib/dataStore.d.mts.map +0 -1
  575. package/lib/dataStore.mjs.map +0 -1
  576. package/lib/dataStoreContext.d.mts.map +0 -1
  577. package/lib/dataStoreContext.mjs.map +0 -1
  578. package/lib/dataStoreContexts.d.mts.map +0 -1
  579. package/lib/dataStoreContexts.mjs.map +0 -1
  580. package/lib/dataStoreRegistry.d.mts.map +0 -1
  581. package/lib/dataStoreRegistry.mjs.map +0 -1
  582. package/lib/dataStores.d.mts.map +0 -1
  583. package/lib/dataStores.mjs.map +0 -1
  584. package/lib/deltaManagerProxyBase.d.mts +0 -35
  585. package/lib/deltaManagerProxyBase.d.mts.map +0 -1
  586. package/lib/deltaManagerProxyBase.mjs +0 -73
  587. package/lib/deltaManagerProxyBase.mjs.map +0 -1
  588. package/lib/deltaManagerSummarizerProxy.d.mts +0 -19
  589. package/lib/deltaManagerSummarizerProxy.d.mts.map +0 -1
  590. package/lib/deltaManagerSummarizerProxy.mjs +0 -38
  591. package/lib/deltaManagerSummarizerProxy.mjs.map +0 -1
  592. package/lib/deltaScheduler.d.mts.map +0 -1
  593. package/lib/deltaScheduler.mjs.map +0 -1
  594. package/lib/error.d.mts.map +0 -1
  595. package/lib/error.mjs.map +0 -1
  596. package/lib/gc/garbageCollection.d.mts.map +0 -1
  597. package/lib/gc/garbageCollection.mjs.map +0 -1
  598. package/lib/gc/gcConfigs.d.mts.map +0 -1
  599. package/lib/gc/gcConfigs.mjs.map +0 -1
  600. package/lib/gc/gcDefinitions.d.mts.map +0 -1
  601. package/lib/gc/gcDefinitions.mjs.map +0 -1
  602. package/lib/gc/gcHelpers.mjs.map +0 -1
  603. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +0 -1
  604. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +0 -1
  605. package/lib/gc/gcSummaryDefinitions.d.mts.map +0 -1
  606. package/lib/gc/gcSummaryDefinitions.mjs.map +0 -1
  607. package/lib/gc/gcSummaryStateTracker.d.mts.map +0 -1
  608. package/lib/gc/gcSummaryStateTracker.mjs.map +0 -1
  609. package/lib/gc/gcTelemetry.d.mts.map +0 -1
  610. package/lib/gc/gcTelemetry.mjs.map +0 -1
  611. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +0 -1
  612. package/lib/gc/gcUnreferencedStateTracker.mjs.map +0 -1
  613. package/lib/gc/index.d.mts.map +0 -1
  614. package/lib/gc/index.mjs.map +0 -1
  615. package/lib/index.d.mts.map +0 -1
  616. package/lib/index.mjs +0 -24
  617. package/lib/index.mjs.map +0 -1
  618. package/lib/messageTypes.d.mts.map +0 -1
  619. package/lib/messageTypes.mjs.map +0 -1
  620. package/lib/metadata.d.mts.map +0 -1
  621. package/lib/metadata.mjs.map +0 -1
  622. package/lib/opLifecycle/batchManager.d.mts.map +0 -1
  623. package/lib/opLifecycle/batchManager.mjs.map +0 -1
  624. package/lib/opLifecycle/definitions.d.mts.map +0 -1
  625. package/lib/opLifecycle/definitions.mjs.map +0 -1
  626. package/lib/opLifecycle/index.d.mts +0 -13
  627. package/lib/opLifecycle/index.d.mts.map +0 -1
  628. package/lib/opLifecycle/index.mjs +0 -12
  629. package/lib/opLifecycle/index.mjs.map +0 -1
  630. package/lib/opLifecycle/opCompressor.d.mts.map +0 -1
  631. package/lib/opLifecycle/opCompressor.mjs.map +0 -1
  632. package/lib/opLifecycle/opDecompressor.d.mts.map +0 -1
  633. package/lib/opLifecycle/opDecompressor.mjs.map +0 -1
  634. package/lib/opLifecycle/opGroupingManager.d.mts.map +0 -1
  635. package/lib/opLifecycle/opGroupingManager.mjs.map +0 -1
  636. package/lib/opLifecycle/opSplitter.d.mts.map +0 -1
  637. package/lib/opLifecycle/opSplitter.mjs.map +0 -1
  638. package/lib/opLifecycle/outbox.d.mts.map +0 -1
  639. package/lib/opLifecycle/outbox.mjs.map +0 -1
  640. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +0 -1
  641. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +0 -1
  642. package/lib/opProperties.d.mts.map +0 -1
  643. package/lib/opProperties.mjs.map +0 -1
  644. package/lib/packageVersion.d.mts.map +0 -1
  645. package/lib/packageVersion.mjs.map +0 -1
  646. package/lib/pendingStateManager.d.mts.map +0 -1
  647. package/lib/pendingStateManager.mjs.map +0 -1
  648. package/lib/scheduleManager.d.mts.map +0 -1
  649. package/lib/scheduleManager.mjs.map +0 -1
  650. package/lib/storageServiceWithAttachBlobs.d.mts.map +0 -1
  651. package/lib/storageServiceWithAttachBlobs.mjs.map +0 -1
  652. package/lib/summary/index.d.mts.map +0 -1
  653. package/lib/summary/index.mjs.map +0 -1
  654. package/lib/summary/orderedClientElection.d.mts.map +0 -1
  655. package/lib/summary/orderedClientElection.mjs.map +0 -1
  656. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +0 -1
  657. package/lib/summary/runWhileConnectedCoordinator.mjs.map +0 -1
  658. package/lib/summary/runningSummarizer.d.mts.map +0 -1
  659. package/lib/summary/runningSummarizer.mjs.map +0 -1
  660. package/lib/summary/summarizer.d.mts.map +0 -1
  661. package/lib/summary/summarizer.mjs.map +0 -1
  662. package/lib/summary/summarizerClientElection.d.mts.map +0 -1
  663. package/lib/summary/summarizerClientElection.mjs.map +0 -1
  664. package/lib/summary/summarizerHeuristics.d.mts.map +0 -1
  665. package/lib/summary/summarizerHeuristics.mjs.map +0 -1
  666. package/lib/summary/summarizerNode/index.d.mts.map +0 -1
  667. package/lib/summary/summarizerNode/index.mjs +0 -7
  668. package/lib/summary/summarizerNode/index.mjs.map +0 -1
  669. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +0 -1
  670. package/lib/summary/summarizerNode/summarizerNode.mjs.map +0 -1
  671. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +0 -1
  672. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +0 -1
  673. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +0 -1
  674. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +0 -1
  675. package/lib/summary/summarizerTypes.d.mts.map +0 -1
  676. package/lib/summary/summarizerTypes.mjs.map +0 -1
  677. package/lib/summary/summaryCollection.d.mts.map +0 -1
  678. package/lib/summary/summaryCollection.mjs.map +0 -1
  679. package/lib/summary/summaryFormat.d.mts.map +0 -1
  680. package/lib/summary/summaryFormat.mjs.map +0 -1
  681. package/lib/summary/summaryGenerator.d.mts.map +0 -1
  682. package/lib/summary/summaryGenerator.mjs.map +0 -1
  683. package/lib/summary/summaryManager.d.mts.map +0 -1
  684. package/lib/summary/summaryManager.mjs.map +0 -1
  685. package/lib/throttler.d.mts.map +0 -1
  686. package/lib/throttler.mjs.map +0 -1
  687. package/src/deltaManagerProxyBase.ts +0 -111
@@ -2,15 +2,15 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { AttachState, } from "@fluidframework/container-definitions";
5
+ import { AttachState } from "@fluidframework/container-definitions";
6
6
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
7
- import { assert, Deferred, LazyPromise } from "@fluidframework/core-utils";
7
+ import { assert, LazyPromise } from "@fluidframework/core-utils";
8
8
  import { BlobTreeEntry, readAndParse } from "@fluidframework/driver-utils";
9
- import { channelsTreeName, VisibilityState, } from "@fluidframework/runtime-definitions";
9
+ import { channelsTreeName, gcDataBlobKey, } from "@fluidframework/runtime-definitions";
10
10
  import { addBlobToSummary } from "@fluidframework/runtime-utils";
11
11
  import { createChildMonitoringContext, DataCorruptionError, DataProcessingError, extractSafePropertiesFromMessage, generateStack, LoggingError, tagCodeArtifacts, ThresholdCounter, } from "@fluidframework/telemetry-utils";
12
- import { dataStoreAttributesBlobName, hasIsolatedChannels, wrapSummaryInChannelsTree, getAttributesFormatVersion, getFluidDataStoreAttributes, summarizerClientType, } from "./summary/index.mjs";
13
- import { detectOutboundRoutesViaDDSKey, sendGCUnexpectedUsageEvent } from "./gc/index.mjs";
12
+ import { dataStoreAttributesBlobName, hasIsolatedChannels, wrapSummaryInChannelsTree, getAttributesFormatVersion, getFluidDataStoreAttributes, summarizerClientType, } from "./summary/index.js";
13
+ import { detectOutboundRoutesViaDDSKey, sendGCUnexpectedUsageEvent } from "./gc/index.js";
14
14
  function createAttributes(pkg, isRootDataStore) {
15
15
  const stringifiedPkg = JSON.stringify(pkg);
16
16
  return {
@@ -32,31 +32,31 @@ export class FluidDataStoreContext extends TypedEventEmitter {
32
32
  return this.pkg;
33
33
  }
34
34
  get options() {
35
- return this._containerRuntime.options;
35
+ return this.parentContext.options;
36
36
  }
37
37
  get clientId() {
38
- return this._containerRuntime.clientId;
38
+ return this.parentContext.clientId;
39
39
  }
40
40
  get clientDetails() {
41
- return this._containerRuntime.clientDetails;
41
+ return this.parentContext.clientDetails;
42
42
  }
43
43
  get logger() {
44
- return this._containerRuntime.logger;
44
+ return this.parentContext.logger;
45
45
  }
46
46
  get deltaManager() {
47
- return this._containerRuntime.deltaManager;
47
+ return this.parentContext.deltaManager;
48
48
  }
49
49
  get connected() {
50
- return this._containerRuntime.connected;
50
+ return this.parentContext.connected;
51
51
  }
52
52
  get IFluidHandleContext() {
53
- return this._containerRuntime.IFluidHandleContext;
53
+ return this.parentContext.IFluidHandleContext;
54
54
  }
55
55
  get containerRuntime() {
56
56
  return this._containerRuntime;
57
57
  }
58
58
  ensureNoDataModelChanges(callback) {
59
- return this._containerRuntime.ensureNoDataModelChanges(callback);
59
+ return this.parentContext.ensureNoDataModelChanges(callback);
60
60
  }
61
61
  get isLoaded() {
62
62
  return this.loaded;
@@ -65,7 +65,7 @@ export class FluidDataStoreContext extends TypedEventEmitter {
65
65
  return this._baseSnapshot;
66
66
  }
67
67
  get idCompressor() {
68
- return this._containerRuntime.idCompressor;
68
+ return this.parentContext.idCompressor;
69
69
  }
70
70
  get disposed() {
71
71
  return this._disposed;
@@ -77,6 +77,7 @@ export class FluidDataStoreContext extends TypedEventEmitter {
77
77
  return this._attachState;
78
78
  }
79
79
  get IFluidDataStoreRegistry() {
80
+ assert(this.channel !== undefined, 0x8f3 /* This should be called after the channel is created, when the registry is populated */);
80
81
  return this.registry;
81
82
  }
82
83
  /**
@@ -115,17 +116,19 @@ export class FluidDataStoreContext extends TypedEventEmitter {
115
116
  this.loaded = false;
116
117
  this.pending = [];
117
118
  this._isInMemoryRoot = false;
118
- this._containerRuntime = props.runtime;
119
+ this._containerRuntime = props.parentContext.containerRuntime;
120
+ this.parentContext = props.parentContext;
119
121
  this.id = props.id;
120
122
  this.storage = props.storage;
121
123
  this.scope = props.scope;
122
124
  this.pkg = props.pkg;
125
+ this.loadingGroupId = props.loadingGroupId;
123
126
  // URIs use slashes as delimiters. Handles use URIs.
124
127
  // Thus having slashes in types almost guarantees trouble down the road!
125
128
  assert(!this.id.includes("/"), 0x13a /* Data store ID contains slash */);
126
129
  this._attachState =
127
- this.containerRuntime.attachState !== AttachState.Detached && this.existing
128
- ? this.containerRuntime.attachState
130
+ this.parentContext.attachState !== AttachState.Detached && this.existing
131
+ ? this.parentContext.attachState
129
132
  : AttachState.Detached;
130
133
  const thisSummarizeInternal = async (fullTree, trackState, telemetryContext) => this.summarizeInternal(fullTree, trackState, telemetryContext);
131
134
  this.summarizerNode = props.createSummarizerNodeFn(thisSummarizeInternal, async (fullGC) => this.getGCDataInternal(fullGC));
@@ -142,7 +145,8 @@ export class FluidDataStoreContext extends TypedEventEmitter {
142
145
  },
143
146
  });
144
147
  this.thresholdOpsCounter = new ThresholdCounter(FluidDataStoreContext.pendingOpsCountThreshold, this.mc.logger);
145
- this.throwOnTombstoneUsage = this._containerRuntime.gcThrowOnTombstoneUsage;
148
+ this.gcThrowOnTombstoneUsage = this.parentContext.gcThrowOnTombstoneUsage;
149
+ this.gcTombstoneEnforcementAllowed = this.parentContext.gcTombstoneEnforcementAllowed;
146
150
  // By default, a data store can log maximum 10 local changes telemetry in summarizer.
147
151
  this.localChangesTelemetryCount =
148
152
  this.mc.config.getNumber("Fluid.Telemetry.LocalChangesTelemetryCount") ?? 10;
@@ -153,9 +157,9 @@ export class FluidDataStoreContext extends TypedEventEmitter {
153
157
  }
154
158
  this._disposed = true;
155
159
  // Dispose any pending runtime after it gets fulfilled
156
- // Errors are logged where this.channelDeferred is consumed/generated (realizeCore(), bindRuntime())
157
- if (this.channelDeferred) {
158
- this.channelDeferred.promise
160
+ // Errors are logged where this.channelP is consumed/generated (realizeCore(), bindRuntime())
161
+ if (this.channelP) {
162
+ this.channelP
159
163
  .then((runtime) => {
160
164
  runtime.dispose();
161
165
  })
@@ -184,27 +188,26 @@ export class FluidDataStoreContext extends TypedEventEmitter {
184
188
  }
185
189
  async realize() {
186
190
  assert(!this.detachedRuntimeCreation, 0x13d /* "Detached runtime creation on realize()" */);
187
- if (!this.channelDeferred) {
188
- this.channelDeferred = new Deferred();
189
- this.realizeCore(this.existing).catch((error) => {
191
+ if (!this.channelP) {
192
+ this.channelP = this.realizeCore(this.existing).catch((error) => {
190
193
  const errorWrapped = DataProcessingError.wrapIfUnrecognized(error, "realizeFluidDataStoreContext");
191
194
  errorWrapped.addTelemetryProperties(tagCodeArtifacts({
192
195
  fullPackageName: this.pkg?.join("/"),
193
196
  fluidDataStoreId: this.id,
194
197
  }));
195
- this.channelDeferred?.reject(errorWrapped);
196
198
  this.mc.logger.sendErrorEvent({ eventName: "RealizeError" }, errorWrapped);
199
+ throw errorWrapped;
197
200
  });
198
201
  }
199
- return this.channelDeferred.promise;
202
+ return this.channelP;
200
203
  }
201
- async factoryFromPackagePath(packages) {
202
- assert(this.pkg === packages, 0x13e /* "Unexpected package path" */);
204
+ async factoryFromPackagePath() {
205
+ const packages = this.pkg;
203
206
  if (packages === undefined) {
204
207
  this.rejectDeferredRealize("packages is undefined");
205
208
  }
206
209
  let entry;
207
- let registry = this._containerRuntime.IFluidDataStoreRegistry;
210
+ let registry = this.parentContext.IFluidDataStoreRegistry;
208
211
  let lastPkg;
209
212
  for (const pkg of packages) {
210
213
  if (!registry) {
@@ -221,7 +224,9 @@ export class FluidDataStoreContext extends TypedEventEmitter {
221
224
  if (factory === undefined) {
222
225
  this.rejectDeferredRealize("Can't find factory for package", lastPkg, packages);
223
226
  }
224
- return { factory, registry };
227
+ assert(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
228
+ this.registry = registry;
229
+ return factory;
225
230
  }
226
231
  async realizeCore(existing) {
227
232
  const details = await this.getInitialSnapshotDetails();
@@ -229,18 +234,18 @@ export class FluidDataStoreContext extends TypedEventEmitter {
229
234
  // It is important that this be in sync with the pending ops, and also
230
235
  // that it is set here, before bindRuntime is called.
231
236
  this._baseSnapshot = details.snapshot;
232
- const packages = details.pkg;
233
- const { factory, registry } = await this.factoryFromPackagePath(packages);
234
- assert(this.registry === undefined, 0x13f /* "datastore context registry is already set" */);
235
- this.registry = registry;
237
+ this.baseSnapshotSequenceNumber = details.sequenceNumber;
238
+ assert(this.pkg === details.pkg, 0x13e /* "Unexpected package path" */);
239
+ const factory = await this.factoryFromPackagePath();
236
240
  const channel = await factory.instantiateDataStore(this, existing);
237
241
  assert(channel !== undefined, 0x140 /* "undefined channel on datastore context" */);
238
- this.bindRuntime(channel);
242
+ await this.bindRuntime(channel, existing);
239
243
  // This data store may have been disposed before the channel is created during realization. If so,
240
244
  // dispose the channel now.
241
245
  if (this.disposed) {
242
246
  channel.dispose();
243
247
  }
248
+ return channel;
244
249
  }
245
250
  /**
246
251
  * Notifies this object about changes in the connection state.
@@ -259,20 +264,14 @@ export class FluidDataStoreContext extends TypedEventEmitter {
259
264
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
260
265
  this.channel.setConnectionState(connected, clientId);
261
266
  }
262
- process(messageArg, local, localOpMetadata) {
263
- const safeTelemetryProps = extractSafePropertiesFromMessage(messageArg);
267
+ process(message, local, localOpMetadata) {
268
+ const safeTelemetryProps = extractSafePropertiesFromMessage(message);
264
269
  // On op process, tombstone error is logged in garbage collector. So, set "checkTombstone" to false when calling
265
270
  // "verifyNotClosed" which logs tombstone errors. Throw error if tombstoned and throwing on load is configured.
266
271
  this.verifyNotClosed("process", false /* checkTombstone */, safeTelemetryProps);
267
- if (this.tombstoned && this.throwOnTombstoneUsage) {
272
+ if (this.tombstoned && this.gcThrowOnTombstoneUsage) {
268
273
  throw new DataCorruptionError("Context is tombstoned! Call site [process]", safeTelemetryProps);
269
274
  }
270
- const innerContents = messageArg.contents;
271
- const message = {
272
- ...messageArg,
273
- type: innerContents.type,
274
- contents: innerContents.content,
275
- };
276
275
  this.summarizerNode.recordChange(message);
277
276
  if (this.loaded) {
278
277
  return this.channel?.process(message, local, localOpMetadata);
@@ -293,10 +292,10 @@ export class FluidDataStoreContext extends TypedEventEmitter {
293
292
  this.channel?.processSignal(message, local);
294
293
  }
295
294
  getQuorum() {
296
- return this._containerRuntime.getQuorum();
295
+ return this.parentContext.getQuorum();
297
296
  }
298
297
  getAudience() {
299
- return this._containerRuntime.getAudience();
298
+ return this.parentContext.getAudience();
300
299
  }
301
300
  /**
302
301
  * Returns a summary at the current sequence number.
@@ -325,6 +324,10 @@ export class FluidDataStoreContext extends TypedEventEmitter {
325
324
  summarizeResult.summary.unreferenced = true;
326
325
  summarizeResult.stats.unreferencedBlobSize = summarizeResult.stats.totalBlobSize;
327
326
  }
327
+ // Add loadingGroupId to the summary
328
+ if (this.loadingGroupId !== undefined) {
329
+ summarizeResult.summary.groupId = this.loadingGroupId;
330
+ }
328
331
  return {
329
332
  ...summarizeResult,
330
333
  id: this.id,
@@ -398,7 +401,7 @@ export class FluidDataStoreContext extends TypedEventEmitter {
398
401
  // By default, skip this call since the ContainerRuntime will detect the outbound route directly.
399
402
  if (this.mc.config.getBoolean(detectOutboundRoutesViaDDSKey) === true) {
400
403
  // Note: The ContainerRuntime code will check this same setting to avoid double counting.
401
- this._containerRuntime.addedGCOutboundReference(srcHandle, outboundHandle);
404
+ this.parentContext.addedGCOutboundReference?.(srcHandle, outboundHandle);
402
405
  }
403
406
  }
404
407
  /**
@@ -411,7 +414,7 @@ export class FluidDataStoreContext extends TypedEventEmitter {
411
414
  * @param toPath - The absolute path of the outbound node that is referenced.
412
415
  */
413
416
  addedGCOutboundRoute(fromPath, toPath) {
414
- this._containerRuntime.addedGCOutboundReference({ absolutePath: fromPath }, { absolutePath: toPath });
417
+ this.parentContext.addedGCOutboundReference?.({ absolutePath: fromPath }, { absolutePath: toPath });
415
418
  }
416
419
  /**
417
420
  * Updates the used routes of the channel and its child contexts. The channel must be loaded before calling this.
@@ -442,13 +445,9 @@ export class FluidDataStoreContext extends TypedEventEmitter {
442
445
  submitMessage(type, content, localOpMetadata) {
443
446
  this.verifyNotClosed("submitMessage");
444
447
  assert(!!this.channel, 0x146 /* "Channel must exist when submitting message" */);
445
- const fluidDataStoreContent = {
446
- content,
447
- type,
448
- };
449
448
  // Summarizer clients should not submit messages.
450
449
  this.identifyLocalChangeInSummarizer("DataStoreMessageSubmittedInSummarizer", type);
451
- this._containerRuntime.submitDataStoreOp(this.id, fluidDataStoreContent, localOpMetadata);
450
+ this.parentContext.submitMessage(type, content, localOpMetadata);
452
451
  }
453
452
  /**
454
453
  * This is called from a SharedSummaryBlock that does not generate ops but only wants to be part of the summary.
@@ -478,7 +477,7 @@ export class FluidDataStoreContext extends TypedEventEmitter {
478
477
  submitSignal(type, content, targetClientId) {
479
478
  this.verifyNotClosed("submitSignal");
480
479
  assert(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
481
- return this._containerRuntime.submitDataStoreSignal(this.id, type, content, targetClientId);
480
+ return this.parentContext.submitSignal(type, content, targetClientId);
482
481
  }
483
482
  /**
484
483
  * This is called by the data store channel when it becomes locally visible indicating that it is ready to become
@@ -486,54 +485,59 @@ export class FluidDataStoreContext extends TypedEventEmitter {
486
485
  */
487
486
  makeLocallyVisible() {
488
487
  assert(this.channel !== undefined, 0x2cf /* "undefined channel on datastore context" */);
489
- assert(this.channel.visibilityState === VisibilityState.LocallyVisible, 0x590 /* Channel must be locally visible */);
490
488
  this.makeLocallyVisibleFn();
491
489
  }
492
- bindRuntime(channel) {
490
+ async bindRuntime(channel, existing) {
493
491
  if (this.channel) {
494
492
  throw new Error("Runtime already bound");
495
493
  }
496
- try {
497
- assert(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
498
- assert(this.channelDeferred !== undefined, 0x149 /* "Undefined channel deferral" */);
499
- assert(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
494
+ assert(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
495
+ assert(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
496
+ if (existing) {
500
497
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
501
498
  const pending = this.pending;
502
499
  // Apply all pending ops
503
500
  for (const op of pending) {
504
- channel.process(op, false, undefined /* localOpMetadata */);
501
+ // Only process ops whose seq number is greater than snapshot sequence number from which it loaded.
502
+ const seqNumber = this.baseSnapshotSequenceNumber ?? -1;
503
+ if (op.sequenceNumber > seqNumber) {
504
+ channel.process(op, false, undefined /* localOpMetadata */);
505
+ }
505
506
  }
506
507
  this.thresholdOpsCounter.send("ProcessPendingOps", pending.length);
507
- this.pending = undefined;
508
- // And now mark the runtime active
509
- this.loaded = true;
510
- this.channel = channel;
511
- // Freeze the package path to ensure that someone doesn't modify it when it is
512
- // returned in packagePath().
513
- Object.freeze(this.pkg);
514
- /**
515
- * Update the used routes of the channel. If GC has run before this data store was realized, we will have
516
- * the used routes saved. So, this will ensure that all the child contexts have up-to-date used routes as
517
- * per the last time GC was run.
518
- * Also, this data store may have been realized during summarize. In that case, the child contexts need to
519
- * have their used routes updated to determine if its needs to summarize again and to add it to the summary.
520
- */
521
- this.updateChannelUsedRoutes();
522
- // And notify the pending promise it is now available
523
- this.channelDeferred.resolve(this.channel);
524
- }
525
- catch (error) {
526
- this.channelDeferred?.reject(error);
527
- this.mc.logger.sendErrorEvent({
528
- eventName: "BindRuntimeError",
529
- }, error);
530
508
  }
509
+ else {
510
+ assert(this.pending?.length === 0, 0x8f4 /* no pending ops */);
511
+ // Execute data store's entry point to make sure that for a local (aka detached from container) data store, the
512
+ // entryPoint initialization function is called before the data store gets attached and potentially connected to
513
+ // the delta stream, so it gets a chance to do things while the data store is still "purely local".
514
+ // This preserves the behavior from before we introduced entryPoints, where the instantiateDataStore method
515
+ // of data store factories tends to construct the data object (at least kick off an async method that returns
516
+ // it); that code moved to the entryPoint initialization function, so we want to ensure it still executes
517
+ // before the data store is attached.
518
+ await channel.entryPoint.get();
519
+ }
520
+ this.pending = undefined;
521
+ // And now mark the runtime active
522
+ this.loaded = true;
523
+ this.channel = channel;
524
+ // Freeze the package path to ensure that someone doesn't modify it when it is
525
+ // returned in packagePath().
526
+ Object.freeze(this.pkg);
527
+ /**
528
+ * Update the used routes of the channel. If GC has run before this data store was realized, we will have
529
+ * the used routes saved. So, this will ensure that all the child contexts have up-to-date used routes as
530
+ * per the last time GC was run.
531
+ * Also, this data store may have been realized during summarize. In that case, the child contexts need to
532
+ * have their used routes updated to determine if its needs to summarize again and to add it to the summary.
533
+ */
534
+ this.updateChannelUsedRoutes();
531
535
  }
532
536
  async getAbsoluteUrl(relativeUrl) {
533
537
  if (this.attachState !== AttachState.Attached) {
534
538
  return undefined;
535
539
  }
536
- return this._containerRuntime.getAbsoluteUrl(relativeUrl);
540
+ return this.parentContext.getAbsoluteUrl(relativeUrl);
537
541
  }
538
542
  /**
539
543
  * @deprecated Sets the datastore as root, for aliasing purposes: #7948
@@ -549,20 +553,18 @@ export class FluidDataStoreContext extends TypedEventEmitter {
549
553
  async getBaseGCDetails() {
550
554
  return {};
551
555
  }
552
- reSubmit(contents, localOpMetadata) {
556
+ reSubmit(type, contents, localOpMetadata) {
553
557
  assert(!!this.channel, 0x14b /* "Channel must exist when resubmitting ops" */);
554
- const innerContents = contents;
555
- this.channel.reSubmit(innerContents.type, innerContents.content, localOpMetadata);
558
+ this.channel.reSubmit(type, contents, localOpMetadata);
556
559
  }
557
- rollback(contents, localOpMetadata) {
560
+ rollback(type, contents, localOpMetadata) {
558
561
  if (!this.channel) {
559
562
  throw new Error("Channel must exist when rolling back ops");
560
563
  }
561
564
  if (!this.channel.rollback) {
562
565
  throw new Error("Channel doesn't support rollback");
563
566
  }
564
- const innerContents = contents;
565
- this.channel.rollback(innerContents.type, innerContents.content, localOpMetadata);
567
+ this.channel.rollback(type, contents, localOpMetadata);
566
568
  }
567
569
  async applyStashedOp(contents) {
568
570
  if (!this.channel) {
@@ -589,11 +591,11 @@ export class FluidDataStoreContext extends TypedEventEmitter {
589
591
  const error = new DataCorruptionError(messageString, safeTelemetryProps);
590
592
  sendGCUnexpectedUsageEvent(this.mc, {
591
593
  eventName: "GC_Tombstone_DataStore_Changed",
592
- category: this.throwOnTombstoneUsage ? "error" : "generic",
593
- gcTombstoneEnforcementAllowed: this._containerRuntime.gcTombstoneEnforcementAllowed,
594
+ category: this.gcThrowOnTombstoneUsage ? "error" : "generic",
595
+ gcTombstoneEnforcementAllowed: this.gcTombstoneEnforcementAllowed,
594
596
  callSite,
595
597
  }, this.pkg, error);
596
- if (this.throwOnTombstoneUsage) {
598
+ if (this.gcThrowOnTombstoneUsage) {
597
599
  throw error;
598
600
  }
599
601
  }
@@ -620,12 +622,13 @@ export class FluidDataStoreContext extends TypedEventEmitter {
620
622
  this.localChangesTelemetryCount--;
621
623
  }
622
624
  getCreateChildSummarizerNodeFn(id, createParam) {
623
- return (summarizeInternal, getGCDataFn) => this.summarizerNode.createChild(summarizeInternal, id, createParam,
624
- // DDS will not create failure summaries
625
- { throwOnFailure: true }, getGCDataFn);
625
+ return (summarizeInternal, getGCDataFn) => this.summarizerNode.createChild(summarizeInternal, id, createParam, undefined /* config */, getGCDataFn);
626
+ }
627
+ deleteChildSummarizerNode(id) {
628
+ this.summarizerNode.deleteChild(id);
626
629
  }
627
630
  async uploadBlob(blob, signal) {
628
- return this.containerRuntime.uploadBlob(blob, signal);
631
+ return this.parentContext.uploadBlob(blob, signal);
629
632
  }
630
633
  }
631
634
  FluidDataStoreContext.pendingOpsCountThreshold = 1000;
@@ -635,7 +638,16 @@ export class RemoteFluidDataStoreContext extends FluidDataStoreContext {
635
638
  throw new Error("Already attached");
636
639
  });
637
640
  this.initialSnapshotDetailsP = new LazyPromise(async () => {
638
- let tree = this.initSnapshotValue;
641
+ // Sequence number of the snapshot.
642
+ let sequenceNumber;
643
+ if (this.snapshotFetchRequired) {
644
+ assert(this.loadingGroupId !== undefined, 0x8f5 /* groupId should be present to fetch snapshot */);
645
+ const snapshot = await this.runtime.getSnapshotForLoadingGroupId([this.loadingGroupId], [this.id]);
646
+ this._baseSnapshot = snapshot.snapshotTree;
647
+ sequenceNumber = snapshot.sequenceNumber;
648
+ this.snapshotFetchRequired = false;
649
+ }
650
+ let tree = this.baseSnapshot;
639
651
  let isRootDataStore = true;
640
652
  if (!!tree && tree.blobs[dataStoreAttributesBlobName] !== undefined) {
641
653
  // Need to get through snapshot and use that to populate extraBlobs
@@ -665,14 +677,17 @@ export class RemoteFluidDataStoreContext extends FluidDataStoreContext {
665
677
  assert(tree !== undefined, 0x1fe /* "isolated channels subtree should exist in remote datastore snapshot" */);
666
678
  }
667
679
  }
680
+ assert(this.pkg !== undefined, 0x8f6 /* The datastore context package should be defined */);
668
681
  return {
669
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
670
682
  pkg: this.pkg,
671
683
  isRootDataStore,
672
684
  snapshot: tree,
685
+ sequenceNumber,
673
686
  };
674
687
  });
675
- this.initSnapshotValue = props.snapshotTree;
688
+ this._baseSnapshot = props.snapshotTree;
689
+ this.snapshotFetchRequired = !!props.snapshotTree?.omitted;
690
+ this.runtime = props.parentContext.containerRuntime;
676
691
  if (props.snapshotTree !== undefined) {
677
692
  this.summarizerNode.updateBaseSummaryState(props.snapshotTree);
678
693
  }
@@ -754,10 +769,19 @@ export class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
754
769
  // Add data store's attributes to the summary.
755
770
  const attributes = createAttributes(this.pkg, this.isInMemoryRoot());
756
771
  addBlobToSummary(attachSummary, dataStoreAttributesBlobName, JSON.stringify(attributes));
772
+ if (includeGCData) {
773
+ const gcData = this.channel.getAttachGCData?.(telemetryContext);
774
+ if (gcData !== undefined) {
775
+ addBlobToSummary(attachSummary, gcDataBlobKey, JSON.stringify(gcData));
776
+ }
777
+ }
778
+ // Add loadingGroupId to the summary
779
+ if (this.loadingGroupId !== undefined) {
780
+ attachSummary.summary.groupId = this.loadingGroupId;
781
+ }
757
782
  return {
758
783
  attachSummary,
759
784
  type: this.pkg[this.pkg.length - 1],
760
- gcData: includeGCData ? this.channel.getAttachGCData?.(telemetryContext) : undefined,
761
785
  };
762
786
  }
763
787
  async getInitialSnapshotDetails() {
@@ -802,29 +826,29 @@ export class LocalDetachedFluidDataStoreContext extends LocalFluidDataStoreConte
802
826
  constructor(props) {
803
827
  super(props);
804
828
  this.detachedRuntimeCreation = true;
829
+ this.channelToDataStoreFn = props.channelToDataStoreFn;
805
830
  }
806
831
  async attachRuntime(registry, dataStoreChannel) {
807
832
  assert(this.detachedRuntimeCreation, 0x154 /* "runtime creation is already attached" */);
808
833
  this.detachedRuntimeCreation = false;
809
- assert(this.channelDeferred === undefined, 0x155 /* "channel deferral is already set" */);
810
- this.channelDeferred = new Deferred();
811
- const factory = registry.IFluidDataStoreFactory;
812
- const entry = await this.factoryFromPackagePath(this.pkg);
813
- assert(entry.factory === factory, 0x156 /* "Unexpected factory for package path" */);
814
- assert(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
815
- this.registry = entry.registry;
816
- super.bindRuntime(dataStoreChannel);
817
- // Load the handle to the data store's entryPoint to make sure that for a detached data store, the entryPoint
818
- // initialization function is called before the data store gets attached and potentially connected to the
819
- // delta stream, so it gets a chance to do things while the data store is still "purely local".
820
- // This preserves the behavior from before we introduced entryPoints, where the instantiateDataStore method
821
- // of data store factories tends to construct the data object (at least kick off an async method that returns
822
- // it); that code moved to the entryPoint initialization function, so we want to ensure it still executes
823
- // before the data store is attached.
824
- await dataStoreChannel.entryPoint.get();
825
- if (await this.isRoot()) {
826
- dataStoreChannel.makeVisibleAndAttachGraph();
827
- }
834
+ assert(this.channelP === undefined, 0x155 /* "channel deferral is already set" */);
835
+ this.channelP = Promise.resolve()
836
+ .then(async () => {
837
+ const factory = registry.IFluidDataStoreFactory;
838
+ const factory2 = await this.factoryFromPackagePath();
839
+ assert(factory2 === factory, 0x156 /* "Unexpected factory for package path" */);
840
+ await super.bindRuntime(dataStoreChannel, false /* existing */);
841
+ assert(!(await this.isRoot()), 0x8f7 /* there are no more createRootDataStore() kind of APIs! */);
842
+ return dataStoreChannel;
843
+ })
844
+ .catch((error) => {
845
+ this.mc.logger.sendErrorEvent({ eventName: "AttachRuntimeError" }, error);
846
+ // The following two lines result in same exception thrown.
847
+ // But we need to ensure that this.channelDeferred.promise is "observed", as otherwise
848
+ // out UT reports unhandled exception
849
+ throw error;
850
+ });
851
+ return this.channelToDataStoreFn(await this.channelP);
828
852
  }
829
853
  async getInitialSnapshotDetails() {
830
854
  if (this.detachedRuntimeCreation) {
@@ -833,4 +857,4 @@ export class LocalDetachedFluidDataStoreContext extends LocalFluidDataStoreConte
833
857
  return super.getInitialSnapshotDetails();
834
858
  }
835
859
  }
836
- //# sourceMappingURL=dataStoreContext.mjs.map
860
+ //# sourceMappingURL=dataStoreContext.js.map