@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
@@ -12,8 +12,8 @@ const driver_utils_1 = require("@fluidframework/driver-utils");
12
12
  const runtime_definitions_1 = require("@fluidframework/runtime-definitions");
13
13
  const runtime_utils_1 = require("@fluidframework/runtime-utils");
14
14
  const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
15
- const summary_1 = require("./summary");
16
- const gc_1 = require("./gc");
15
+ const index_js_1 = require("./summary/index.js");
16
+ const index_js_2 = require("./gc/index.js");
17
17
  function createAttributes(pkg, isRootDataStore) {
18
18
  const stringifiedPkg = JSON.stringify(pkg);
19
19
  return {
@@ -24,7 +24,7 @@ function createAttributes(pkg, isRootDataStore) {
24
24
  }
25
25
  function createAttributesBlob(pkg, isRootDataStore) {
26
26
  const attributes = createAttributes(pkg, isRootDataStore);
27
- return new driver_utils_1.BlobTreeEntry(summary_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
27
+ return new driver_utils_1.BlobTreeEntry(index_js_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
28
28
  }
29
29
  exports.createAttributesBlob = createAttributesBlob;
30
30
  /**
@@ -36,31 +36,31 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
36
36
  return this.pkg;
37
37
  }
38
38
  get options() {
39
- return this._containerRuntime.options;
39
+ return this.parentContext.options;
40
40
  }
41
41
  get clientId() {
42
- return this._containerRuntime.clientId;
42
+ return this.parentContext.clientId;
43
43
  }
44
44
  get clientDetails() {
45
- return this._containerRuntime.clientDetails;
45
+ return this.parentContext.clientDetails;
46
46
  }
47
47
  get logger() {
48
- return this._containerRuntime.logger;
48
+ return this.parentContext.logger;
49
49
  }
50
50
  get deltaManager() {
51
- return this._containerRuntime.deltaManager;
51
+ return this.parentContext.deltaManager;
52
52
  }
53
53
  get connected() {
54
- return this._containerRuntime.connected;
54
+ return this.parentContext.connected;
55
55
  }
56
56
  get IFluidHandleContext() {
57
- return this._containerRuntime.IFluidHandleContext;
57
+ return this.parentContext.IFluidHandleContext;
58
58
  }
59
59
  get containerRuntime() {
60
60
  return this._containerRuntime;
61
61
  }
62
62
  ensureNoDataModelChanges(callback) {
63
- return this._containerRuntime.ensureNoDataModelChanges(callback);
63
+ return this.parentContext.ensureNoDataModelChanges(callback);
64
64
  }
65
65
  get isLoaded() {
66
66
  return this.loaded;
@@ -69,7 +69,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
69
69
  return this._baseSnapshot;
70
70
  }
71
71
  get idCompressor() {
72
- return this._containerRuntime.idCompressor;
72
+ return this.parentContext.idCompressor;
73
73
  }
74
74
  get disposed() {
75
75
  return this._disposed;
@@ -81,6 +81,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
81
81
  return this._attachState;
82
82
  }
83
83
  get IFluidDataStoreRegistry() {
84
+ (0, core_utils_1.assert)(this.channel !== undefined, 0x8f3 /* This should be called after the channel is created, when the registry is populated */);
84
85
  return this.registry;
85
86
  }
86
87
  /**
@@ -119,17 +120,19 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
119
120
  this.loaded = false;
120
121
  this.pending = [];
121
122
  this._isInMemoryRoot = false;
122
- this._containerRuntime = props.runtime;
123
+ this._containerRuntime = props.parentContext.containerRuntime;
124
+ this.parentContext = props.parentContext;
123
125
  this.id = props.id;
124
126
  this.storage = props.storage;
125
127
  this.scope = props.scope;
126
128
  this.pkg = props.pkg;
129
+ this.loadingGroupId = props.loadingGroupId;
127
130
  // URIs use slashes as delimiters. Handles use URIs.
128
131
  // Thus having slashes in types almost guarantees trouble down the road!
129
132
  (0, core_utils_1.assert)(!this.id.includes("/"), 0x13a /* Data store ID contains slash */);
130
133
  this._attachState =
131
- this.containerRuntime.attachState !== container_definitions_1.AttachState.Detached && this.existing
132
- ? this.containerRuntime.attachState
134
+ this.parentContext.attachState !== container_definitions_1.AttachState.Detached && this.existing
135
+ ? this.parentContext.attachState
133
136
  : container_definitions_1.AttachState.Detached;
134
137
  const thisSummarizeInternal = async (fullTree, trackState, telemetryContext) => this.summarizeInternal(fullTree, trackState, telemetryContext);
135
138
  this.summarizerNode = props.createSummarizerNodeFn(thisSummarizeInternal, async (fullGC) => this.getGCDataInternal(fullGC));
@@ -146,7 +149,8 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
146
149
  },
147
150
  });
148
151
  this.thresholdOpsCounter = new telemetry_utils_1.ThresholdCounter(FluidDataStoreContext.pendingOpsCountThreshold, this.mc.logger);
149
- this.throwOnTombstoneUsage = this._containerRuntime.gcThrowOnTombstoneUsage;
152
+ this.gcThrowOnTombstoneUsage = this.parentContext.gcThrowOnTombstoneUsage;
153
+ this.gcTombstoneEnforcementAllowed = this.parentContext.gcTombstoneEnforcementAllowed;
150
154
  // By default, a data store can log maximum 10 local changes telemetry in summarizer.
151
155
  this.localChangesTelemetryCount =
152
156
  this.mc.config.getNumber("Fluid.Telemetry.LocalChangesTelemetryCount") ?? 10;
@@ -157,9 +161,9 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
157
161
  }
158
162
  this._disposed = true;
159
163
  // Dispose any pending runtime after it gets fulfilled
160
- // Errors are logged where this.channelDeferred is consumed/generated (realizeCore(), bindRuntime())
161
- if (this.channelDeferred) {
162
- this.channelDeferred.promise
164
+ // Errors are logged where this.channelP is consumed/generated (realizeCore(), bindRuntime())
165
+ if (this.channelP) {
166
+ this.channelP
163
167
  .then((runtime) => {
164
168
  runtime.dispose();
165
169
  })
@@ -188,27 +192,26 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
188
192
  }
189
193
  async realize() {
190
194
  (0, core_utils_1.assert)(!this.detachedRuntimeCreation, 0x13d /* "Detached runtime creation on realize()" */);
191
- if (!this.channelDeferred) {
192
- this.channelDeferred = new core_utils_1.Deferred();
193
- this.realizeCore(this.existing).catch((error) => {
195
+ if (!this.channelP) {
196
+ this.channelP = this.realizeCore(this.existing).catch((error) => {
194
197
  const errorWrapped = telemetry_utils_1.DataProcessingError.wrapIfUnrecognized(error, "realizeFluidDataStoreContext");
195
198
  errorWrapped.addTelemetryProperties((0, telemetry_utils_1.tagCodeArtifacts)({
196
199
  fullPackageName: this.pkg?.join("/"),
197
200
  fluidDataStoreId: this.id,
198
201
  }));
199
- this.channelDeferred?.reject(errorWrapped);
200
202
  this.mc.logger.sendErrorEvent({ eventName: "RealizeError" }, errorWrapped);
203
+ throw errorWrapped;
201
204
  });
202
205
  }
203
- return this.channelDeferred.promise;
206
+ return this.channelP;
204
207
  }
205
- async factoryFromPackagePath(packages) {
206
- (0, core_utils_1.assert)(this.pkg === packages, 0x13e /* "Unexpected package path" */);
208
+ async factoryFromPackagePath() {
209
+ const packages = this.pkg;
207
210
  if (packages === undefined) {
208
211
  this.rejectDeferredRealize("packages is undefined");
209
212
  }
210
213
  let entry;
211
- let registry = this._containerRuntime.IFluidDataStoreRegistry;
214
+ let registry = this.parentContext.IFluidDataStoreRegistry;
212
215
  let lastPkg;
213
216
  for (const pkg of packages) {
214
217
  if (!registry) {
@@ -225,7 +228,9 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
225
228
  if (factory === undefined) {
226
229
  this.rejectDeferredRealize("Can't find factory for package", lastPkg, packages);
227
230
  }
228
- return { factory, registry };
231
+ (0, core_utils_1.assert)(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
232
+ this.registry = registry;
233
+ return factory;
229
234
  }
230
235
  async realizeCore(existing) {
231
236
  const details = await this.getInitialSnapshotDetails();
@@ -233,18 +238,18 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
233
238
  // It is important that this be in sync with the pending ops, and also
234
239
  // that it is set here, before bindRuntime is called.
235
240
  this._baseSnapshot = details.snapshot;
236
- const packages = details.pkg;
237
- const { factory, registry } = await this.factoryFromPackagePath(packages);
238
- (0, core_utils_1.assert)(this.registry === undefined, 0x13f /* "datastore context registry is already set" */);
239
- this.registry = registry;
241
+ this.baseSnapshotSequenceNumber = details.sequenceNumber;
242
+ (0, core_utils_1.assert)(this.pkg === details.pkg, 0x13e /* "Unexpected package path" */);
243
+ const factory = await this.factoryFromPackagePath();
240
244
  const channel = await factory.instantiateDataStore(this, existing);
241
245
  (0, core_utils_1.assert)(channel !== undefined, 0x140 /* "undefined channel on datastore context" */);
242
- this.bindRuntime(channel);
246
+ await this.bindRuntime(channel, existing);
243
247
  // This data store may have been disposed before the channel is created during realization. If so,
244
248
  // dispose the channel now.
245
249
  if (this.disposed) {
246
250
  channel.dispose();
247
251
  }
252
+ return channel;
248
253
  }
249
254
  /**
250
255
  * Notifies this object about changes in the connection state.
@@ -263,20 +268,14 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
263
268
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
264
269
  this.channel.setConnectionState(connected, clientId);
265
270
  }
266
- process(messageArg, local, localOpMetadata) {
267
- const safeTelemetryProps = (0, telemetry_utils_1.extractSafePropertiesFromMessage)(messageArg);
271
+ process(message, local, localOpMetadata) {
272
+ const safeTelemetryProps = (0, telemetry_utils_1.extractSafePropertiesFromMessage)(message);
268
273
  // On op process, tombstone error is logged in garbage collector. So, set "checkTombstone" to false when calling
269
274
  // "verifyNotClosed" which logs tombstone errors. Throw error if tombstoned and throwing on load is configured.
270
275
  this.verifyNotClosed("process", false /* checkTombstone */, safeTelemetryProps);
271
- if (this.tombstoned && this.throwOnTombstoneUsage) {
276
+ if (this.tombstoned && this.gcThrowOnTombstoneUsage) {
272
277
  throw new telemetry_utils_1.DataCorruptionError("Context is tombstoned! Call site [process]", safeTelemetryProps);
273
278
  }
274
- const innerContents = messageArg.contents;
275
- const message = {
276
- ...messageArg,
277
- type: innerContents.type,
278
- contents: innerContents.content,
279
- };
280
279
  this.summarizerNode.recordChange(message);
281
280
  if (this.loaded) {
282
281
  return this.channel?.process(message, local, localOpMetadata);
@@ -297,10 +296,10 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
297
296
  this.channel?.processSignal(message, local);
298
297
  }
299
298
  getQuorum() {
300
- return this._containerRuntime.getQuorum();
299
+ return this.parentContext.getQuorum();
301
300
  }
302
301
  getAudience() {
303
- return this._containerRuntime.getAudience();
302
+ return this.parentContext.getAudience();
304
303
  }
305
304
  /**
306
305
  * Returns a summary at the current sequence number.
@@ -316,19 +315,23 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
316
315
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
317
316
  const summarizeResult = await this.channel.summarize(fullTree, trackState, telemetryContext);
318
317
  // Wrap dds summaries in .channels subtree.
319
- (0, summary_1.wrapSummaryInChannelsTree)(summarizeResult);
318
+ (0, index_js_1.wrapSummaryInChannelsTree)(summarizeResult);
320
319
  const pathPartsForChildren = [runtime_definitions_1.channelsTreeName];
321
320
  // Add data store's attributes to the summary.
322
321
  const { pkg } = await this.getInitialSnapshotDetails();
323
322
  const isRoot = await this.isRoot();
324
323
  const attributes = createAttributes(pkg, isRoot);
325
- (0, runtime_utils_1.addBlobToSummary)(summarizeResult, summary_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
324
+ (0, runtime_utils_1.addBlobToSummary)(summarizeResult, index_js_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
326
325
  // If we are not referenced, mark the summary tree as unreferenced. Also, update unreferenced blob
327
326
  // size in the summary stats with the blobs size of this data store.
328
327
  if (!this.summarizerNode.isReferenced()) {
329
328
  summarizeResult.summary.unreferenced = true;
330
329
  summarizeResult.stats.unreferencedBlobSize = summarizeResult.stats.totalBlobSize;
331
330
  }
331
+ // Add loadingGroupId to the summary
332
+ if (this.loadingGroupId !== undefined) {
333
+ summarizeResult.summary.groupId = this.loadingGroupId;
334
+ }
332
335
  return {
333
336
  ...summarizeResult,
334
337
  id: this.id,
@@ -400,9 +403,9 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
400
403
  */
401
404
  addedGCOutboundReference(srcHandle, outboundHandle) {
402
405
  // By default, skip this call since the ContainerRuntime will detect the outbound route directly.
403
- if (this.mc.config.getBoolean(gc_1.detectOutboundRoutesViaDDSKey) === true) {
406
+ if (this.mc.config.getBoolean(index_js_2.detectOutboundRoutesViaDDSKey) === true) {
404
407
  // Note: The ContainerRuntime code will check this same setting to avoid double counting.
405
- this._containerRuntime.addedGCOutboundReference(srcHandle, outboundHandle);
408
+ this.parentContext.addedGCOutboundReference?.(srcHandle, outboundHandle);
406
409
  }
407
410
  }
408
411
  /**
@@ -415,7 +418,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
415
418
  * @param toPath - The absolute path of the outbound node that is referenced.
416
419
  */
417
420
  addedGCOutboundRoute(fromPath, toPath) {
418
- this._containerRuntime.addedGCOutboundReference({ absolutePath: fromPath }, { absolutePath: toPath });
421
+ this.parentContext.addedGCOutboundReference?.({ absolutePath: fromPath }, { absolutePath: toPath });
419
422
  }
420
423
  /**
421
424
  * Updates the used routes of the channel and its child contexts. The channel must be loaded before calling this.
@@ -446,13 +449,9 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
446
449
  submitMessage(type, content, localOpMetadata) {
447
450
  this.verifyNotClosed("submitMessage");
448
451
  (0, core_utils_1.assert)(!!this.channel, 0x146 /* "Channel must exist when submitting message" */);
449
- const fluidDataStoreContent = {
450
- content,
451
- type,
452
- };
453
452
  // Summarizer clients should not submit messages.
454
453
  this.identifyLocalChangeInSummarizer("DataStoreMessageSubmittedInSummarizer", type);
455
- this._containerRuntime.submitDataStoreOp(this.id, fluidDataStoreContent, localOpMetadata);
454
+ this.parentContext.submitMessage(type, content, localOpMetadata);
456
455
  }
457
456
  /**
458
457
  * This is called from a SharedSummaryBlock that does not generate ops but only wants to be part of the summary.
@@ -482,7 +481,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
482
481
  submitSignal(type, content, targetClientId) {
483
482
  this.verifyNotClosed("submitSignal");
484
483
  (0, core_utils_1.assert)(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
485
- return this._containerRuntime.submitDataStoreSignal(this.id, type, content, targetClientId);
484
+ return this.parentContext.submitSignal(type, content, targetClientId);
486
485
  }
487
486
  /**
488
487
  * This is called by the data store channel when it becomes locally visible indicating that it is ready to become
@@ -490,54 +489,59 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
490
489
  */
491
490
  makeLocallyVisible() {
492
491
  (0, core_utils_1.assert)(this.channel !== undefined, 0x2cf /* "undefined channel on datastore context" */);
493
- (0, core_utils_1.assert)(this.channel.visibilityState === runtime_definitions_1.VisibilityState.LocallyVisible, 0x590 /* Channel must be locally visible */);
494
492
  this.makeLocallyVisibleFn();
495
493
  }
496
- bindRuntime(channel) {
494
+ async bindRuntime(channel, existing) {
497
495
  if (this.channel) {
498
496
  throw new Error("Runtime already bound");
499
497
  }
500
- try {
501
- (0, core_utils_1.assert)(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
502
- (0, core_utils_1.assert)(this.channelDeferred !== undefined, 0x149 /* "Undefined channel deferral" */);
503
- (0, core_utils_1.assert)(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
498
+ (0, core_utils_1.assert)(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
499
+ (0, core_utils_1.assert)(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
500
+ if (existing) {
504
501
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
505
502
  const pending = this.pending;
506
503
  // Apply all pending ops
507
504
  for (const op of pending) {
508
- channel.process(op, false, undefined /* localOpMetadata */);
505
+ // Only process ops whose seq number is greater than snapshot sequence number from which it loaded.
506
+ const seqNumber = this.baseSnapshotSequenceNumber ?? -1;
507
+ if (op.sequenceNumber > seqNumber) {
508
+ channel.process(op, false, undefined /* localOpMetadata */);
509
+ }
509
510
  }
510
511
  this.thresholdOpsCounter.send("ProcessPendingOps", pending.length);
511
- this.pending = undefined;
512
- // And now mark the runtime active
513
- this.loaded = true;
514
- this.channel = channel;
515
- // Freeze the package path to ensure that someone doesn't modify it when it is
516
- // returned in packagePath().
517
- Object.freeze(this.pkg);
518
- /**
519
- * Update the used routes of the channel. If GC has run before this data store was realized, we will have
520
- * the used routes saved. So, this will ensure that all the child contexts have up-to-date used routes as
521
- * per the last time GC was run.
522
- * Also, this data store may have been realized during summarize. In that case, the child contexts need to
523
- * have their used routes updated to determine if its needs to summarize again and to add it to the summary.
524
- */
525
- this.updateChannelUsedRoutes();
526
- // And notify the pending promise it is now available
527
- this.channelDeferred.resolve(this.channel);
528
- }
529
- catch (error) {
530
- this.channelDeferred?.reject(error);
531
- this.mc.logger.sendErrorEvent({
532
- eventName: "BindRuntimeError",
533
- }, error);
534
512
  }
513
+ else {
514
+ (0, core_utils_1.assert)(this.pending?.length === 0, 0x8f4 /* no pending ops */);
515
+ // Execute data store's entry point to make sure that for a local (aka detached from container) data store, the
516
+ // entryPoint initialization function is called before the data store gets attached and potentially connected to
517
+ // the delta stream, so it gets a chance to do things while the data store is still "purely local".
518
+ // This preserves the behavior from before we introduced entryPoints, where the instantiateDataStore method
519
+ // of data store factories tends to construct the data object (at least kick off an async method that returns
520
+ // it); that code moved to the entryPoint initialization function, so we want to ensure it still executes
521
+ // before the data store is attached.
522
+ await channel.entryPoint.get();
523
+ }
524
+ this.pending = undefined;
525
+ // And now mark the runtime active
526
+ this.loaded = true;
527
+ this.channel = channel;
528
+ // Freeze the package path to ensure that someone doesn't modify it when it is
529
+ // returned in packagePath().
530
+ Object.freeze(this.pkg);
531
+ /**
532
+ * Update the used routes of the channel. If GC has run before this data store was realized, we will have
533
+ * the used routes saved. So, this will ensure that all the child contexts have up-to-date used routes as
534
+ * per the last time GC was run.
535
+ * Also, this data store may have been realized during summarize. In that case, the child contexts need to
536
+ * have their used routes updated to determine if its needs to summarize again and to add it to the summary.
537
+ */
538
+ this.updateChannelUsedRoutes();
535
539
  }
536
540
  async getAbsoluteUrl(relativeUrl) {
537
541
  if (this.attachState !== container_definitions_1.AttachState.Attached) {
538
542
  return undefined;
539
543
  }
540
- return this._containerRuntime.getAbsoluteUrl(relativeUrl);
544
+ return this.parentContext.getAbsoluteUrl(relativeUrl);
541
545
  }
542
546
  /**
543
547
  * @deprecated Sets the datastore as root, for aliasing purposes: #7948
@@ -553,20 +557,18 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
553
557
  async getBaseGCDetails() {
554
558
  return {};
555
559
  }
556
- reSubmit(contents, localOpMetadata) {
560
+ reSubmit(type, contents, localOpMetadata) {
557
561
  (0, core_utils_1.assert)(!!this.channel, 0x14b /* "Channel must exist when resubmitting ops" */);
558
- const innerContents = contents;
559
- this.channel.reSubmit(innerContents.type, innerContents.content, localOpMetadata);
562
+ this.channel.reSubmit(type, contents, localOpMetadata);
560
563
  }
561
- rollback(contents, localOpMetadata) {
564
+ rollback(type, contents, localOpMetadata) {
562
565
  if (!this.channel) {
563
566
  throw new Error("Channel must exist when rolling back ops");
564
567
  }
565
568
  if (!this.channel.rollback) {
566
569
  throw new Error("Channel doesn't support rollback");
567
570
  }
568
- const innerContents = contents;
569
- this.channel.rollback(innerContents.type, innerContents.content, localOpMetadata);
571
+ this.channel.rollback(type, contents, localOpMetadata);
570
572
  }
571
573
  async applyStashedOp(contents) {
572
574
  if (!this.channel) {
@@ -591,13 +593,13 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
591
593
  if (checkTombstone && this.tombstoned) {
592
594
  const messageString = `Context is tombstoned! Call site [${callSite}]`;
593
595
  const error = new telemetry_utils_1.DataCorruptionError(messageString, safeTelemetryProps);
594
- (0, gc_1.sendGCUnexpectedUsageEvent)(this.mc, {
596
+ (0, index_js_2.sendGCUnexpectedUsageEvent)(this.mc, {
595
597
  eventName: "GC_Tombstone_DataStore_Changed",
596
- category: this.throwOnTombstoneUsage ? "error" : "generic",
597
- gcTombstoneEnforcementAllowed: this._containerRuntime.gcTombstoneEnforcementAllowed,
598
+ category: this.gcThrowOnTombstoneUsage ? "error" : "generic",
599
+ gcTombstoneEnforcementAllowed: this.gcTombstoneEnforcementAllowed,
598
600
  callSite,
599
601
  }, this.pkg, error);
600
- if (this.throwOnTombstoneUsage) {
602
+ if (this.gcThrowOnTombstoneUsage) {
601
603
  throw error;
602
604
  }
603
605
  }
@@ -608,7 +610,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
608
610
  * other clients that are up-to-date till seq# 100 may not have them yet.
609
611
  */
610
612
  identifyLocalChangeInSummarizer(eventName, type) {
611
- if (this.clientDetails.type !== summary_1.summarizerClientType ||
613
+ if (this.clientDetails.type !== index_js_1.summarizerClientType ||
612
614
  this.localChangesTelemetryCount <= 0) {
613
615
  return;
614
616
  }
@@ -624,12 +626,13 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
624
626
  this.localChangesTelemetryCount--;
625
627
  }
626
628
  getCreateChildSummarizerNodeFn(id, createParam) {
627
- return (summarizeInternal, getGCDataFn) => this.summarizerNode.createChild(summarizeInternal, id, createParam,
628
- // DDS will not create failure summaries
629
- { throwOnFailure: true }, getGCDataFn);
629
+ return (summarizeInternal, getGCDataFn) => this.summarizerNode.createChild(summarizeInternal, id, createParam, undefined /* config */, getGCDataFn);
630
+ }
631
+ deleteChildSummarizerNode(id) {
632
+ this.summarizerNode.deleteChild(id);
630
633
  }
631
634
  async uploadBlob(blob, signal) {
632
- return this.containerRuntime.uploadBlob(blob, signal);
635
+ return this.parentContext.uploadBlob(blob, signal);
633
636
  }
634
637
  }
635
638
  exports.FluidDataStoreContext = FluidDataStoreContext;
@@ -640,15 +643,24 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
640
643
  throw new Error("Already attached");
641
644
  });
642
645
  this.initialSnapshotDetailsP = new core_utils_1.LazyPromise(async () => {
643
- let tree = this.initSnapshotValue;
646
+ // Sequence number of the snapshot.
647
+ let sequenceNumber;
648
+ if (this.snapshotFetchRequired) {
649
+ (0, core_utils_1.assert)(this.loadingGroupId !== undefined, 0x8f5 /* groupId should be present to fetch snapshot */);
650
+ const snapshot = await this.runtime.getSnapshotForLoadingGroupId([this.loadingGroupId], [this.id]);
651
+ this._baseSnapshot = snapshot.snapshotTree;
652
+ sequenceNumber = snapshot.sequenceNumber;
653
+ this.snapshotFetchRequired = false;
654
+ }
655
+ let tree = this.baseSnapshot;
644
656
  let isRootDataStore = true;
645
- if (!!tree && tree.blobs[summary_1.dataStoreAttributesBlobName] !== undefined) {
657
+ if (!!tree && tree.blobs[index_js_1.dataStoreAttributesBlobName] !== undefined) {
646
658
  // Need to get through snapshot and use that to populate extraBlobs
647
- const attributes = await (0, driver_utils_1.readAndParse)(this.storage, tree.blobs[summary_1.dataStoreAttributesBlobName]);
659
+ const attributes = await (0, driver_utils_1.readAndParse)(this.storage, tree.blobs[index_js_1.dataStoreAttributesBlobName]);
648
660
  let pkgFromSnapshot;
649
661
  // Use the snapshotFormatVersion to determine how the pkg is encoded in the snapshot.
650
662
  // For snapshotFormatVersion = "0.1" (1) or above, pkg is jsonified, otherwise it is just a string.
651
- const formatVersion = (0, summary_1.getAttributesFormatVersion)(attributes);
663
+ const formatVersion = (0, index_js_1.getAttributesFormatVersion)(attributes);
652
664
  if (formatVersion < 1) {
653
665
  pkgFromSnapshot =
654
666
  attributes.pkg.startsWith('["') && attributes.pkg.endsWith('"]')
@@ -665,19 +677,22 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
665
677
  * roots in the document but they won't break.
666
678
  */
667
679
  isRootDataStore = attributes.isRootDataStore ?? true;
668
- if ((0, summary_1.hasIsolatedChannels)(attributes)) {
680
+ if ((0, index_js_1.hasIsolatedChannels)(attributes)) {
669
681
  tree = tree.trees[runtime_definitions_1.channelsTreeName];
670
682
  (0, core_utils_1.assert)(tree !== undefined, 0x1fe /* "isolated channels subtree should exist in remote datastore snapshot" */);
671
683
  }
672
684
  }
685
+ (0, core_utils_1.assert)(this.pkg !== undefined, 0x8f6 /* The datastore context package should be defined */);
673
686
  return {
674
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
675
687
  pkg: this.pkg,
676
688
  isRootDataStore,
677
689
  snapshot: tree,
690
+ sequenceNumber,
678
691
  };
679
692
  });
680
- this.initSnapshotValue = props.snapshotTree;
693
+ this._baseSnapshot = props.snapshotTree;
694
+ this.snapshotFetchRequired = !!props.snapshotTree?.omitted;
695
+ this.runtime = props.parentContext.containerRuntime;
681
696
  if (props.snapshotTree !== undefined) {
682
697
  this.summarizerNode.updateBaseSummaryState(props.snapshotTree);
683
698
  }
@@ -706,8 +721,8 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
706
721
  if (snapshot !== undefined) {
707
722
  // Get the dataStore attributes.
708
723
  // Note: storage can be undefined in special case while detached.
709
- attributes = await (0, summary_1.getFluidDataStoreAttributes)(this.storage, snapshot);
710
- if ((0, summary_1.hasIsolatedChannels)(attributes)) {
724
+ attributes = await (0, index_js_1.getFluidDataStoreAttributes)(this.storage, snapshot);
725
+ if ((0, index_js_1.hasIsolatedChannels)(attributes)) {
711
726
  snapshot = snapshot.trees[runtime_definitions_1.channelsTreeName];
712
727
  (0, core_utils_1.assert)(snapshot !== undefined, 0x1ff /* "isolated channels subtree should exist in local datastore snapshot" */);
713
728
  }
@@ -756,14 +771,23 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
756
771
  (0, core_utils_1.assert)(this.pkg !== undefined, 0x150 /* "pkg should be available in local data store context" */);
757
772
  const attachSummary = this.channel.getAttachSummary(telemetryContext);
758
773
  // Wrap dds summaries in .channels subtree.
759
- (0, summary_1.wrapSummaryInChannelsTree)(attachSummary);
774
+ (0, index_js_1.wrapSummaryInChannelsTree)(attachSummary);
760
775
  // Add data store's attributes to the summary.
761
776
  const attributes = createAttributes(this.pkg, this.isInMemoryRoot());
762
- (0, runtime_utils_1.addBlobToSummary)(attachSummary, summary_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
777
+ (0, runtime_utils_1.addBlobToSummary)(attachSummary, index_js_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
778
+ if (includeGCData) {
779
+ const gcData = this.channel.getAttachGCData?.(telemetryContext);
780
+ if (gcData !== undefined) {
781
+ (0, runtime_utils_1.addBlobToSummary)(attachSummary, runtime_definitions_1.gcDataBlobKey, JSON.stringify(gcData));
782
+ }
783
+ }
784
+ // Add loadingGroupId to the summary
785
+ if (this.loadingGroupId !== undefined) {
786
+ attachSummary.summary.groupId = this.loadingGroupId;
787
+ }
763
788
  return {
764
789
  attachSummary,
765
790
  type: this.pkg[this.pkg.length - 1],
766
- gcData: includeGCData ? this.channel.getAttachGCData?.(telemetryContext) : undefined,
767
791
  };
768
792
  }
769
793
  async getInitialSnapshotDetails() {
@@ -778,7 +802,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
778
802
  */
779
803
  delete() {
780
804
  // TODO: GC:Validation - potentially prevent this from happening or asserting. Maybe throw here.
781
- (0, gc_1.sendGCUnexpectedUsageEvent)(this.mc, {
805
+ (0, index_js_2.sendGCUnexpectedUsageEvent)(this.mc, {
782
806
  eventName: "GC_Deleted_DataStore_Unexpected_Delete",
783
807
  message: "Unexpected deletion of a local data store context",
784
808
  category: "error",
@@ -810,29 +834,29 @@ class LocalDetachedFluidDataStoreContext extends LocalFluidDataStoreContextBase
810
834
  constructor(props) {
811
835
  super(props);
812
836
  this.detachedRuntimeCreation = true;
837
+ this.channelToDataStoreFn = props.channelToDataStoreFn;
813
838
  }
814
839
  async attachRuntime(registry, dataStoreChannel) {
815
840
  (0, core_utils_1.assert)(this.detachedRuntimeCreation, 0x154 /* "runtime creation is already attached" */);
816
841
  this.detachedRuntimeCreation = false;
817
- (0, core_utils_1.assert)(this.channelDeferred === undefined, 0x155 /* "channel deferral is already set" */);
818
- this.channelDeferred = new core_utils_1.Deferred();
819
- const factory = registry.IFluidDataStoreFactory;
820
- const entry = await this.factoryFromPackagePath(this.pkg);
821
- (0, core_utils_1.assert)(entry.factory === factory, 0x156 /* "Unexpected factory for package path" */);
822
- (0, core_utils_1.assert)(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
823
- this.registry = entry.registry;
824
- super.bindRuntime(dataStoreChannel);
825
- // Load the handle to the data store's entryPoint to make sure that for a detached data store, the entryPoint
826
- // initialization function is called before the data store gets attached and potentially connected to the
827
- // delta stream, so it gets a chance to do things while the data store is still "purely local".
828
- // This preserves the behavior from before we introduced entryPoints, where the instantiateDataStore method
829
- // of data store factories tends to construct the data object (at least kick off an async method that returns
830
- // it); that code moved to the entryPoint initialization function, so we want to ensure it still executes
831
- // before the data store is attached.
832
- await dataStoreChannel.entryPoint.get();
833
- if (await this.isRoot()) {
834
- dataStoreChannel.makeVisibleAndAttachGraph();
835
- }
842
+ (0, core_utils_1.assert)(this.channelP === undefined, 0x155 /* "channel deferral is already set" */);
843
+ this.channelP = Promise.resolve()
844
+ .then(async () => {
845
+ const factory = registry.IFluidDataStoreFactory;
846
+ const factory2 = await this.factoryFromPackagePath();
847
+ (0, core_utils_1.assert)(factory2 === factory, 0x156 /* "Unexpected factory for package path" */);
848
+ await super.bindRuntime(dataStoreChannel, false /* existing */);
849
+ (0, core_utils_1.assert)(!(await this.isRoot()), 0x8f7 /* there are no more createRootDataStore() kind of APIs! */);
850
+ return dataStoreChannel;
851
+ })
852
+ .catch((error) => {
853
+ this.mc.logger.sendErrorEvent({ eventName: "AttachRuntimeError" }, error);
854
+ // The following two lines result in same exception thrown.
855
+ // But we need to ensure that this.channelDeferred.promise is "observed", as otherwise
856
+ // out UT reports unhandled exception
857
+ throw error;
858
+ });
859
+ return this.channelToDataStoreFn(await this.channelP);
836
860
  }
837
861
  async getInitialSnapshotDetails() {
838
862
  if (this.detachedRuntimeCreation) {