@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
@@ -4,7 +4,7 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.detectOutboundReferences = exports.getSummaryForDatastores = exports.DataStores = void 0;
7
+ exports.ChannelCollectionFactory = exports.detectOutboundReferences = exports.getSummaryForDatastores = exports.ChannelCollection = exports.wrapContextForInnerChannel = exports.wrapContext = exports.AllowInactiveRequestHeaderKey = exports.AllowTombstoneRequestHeaderKey = exports.RuntimeHeaders = void 0;
8
8
  const datastore_1 = require("@fluidframework/datastore");
9
9
  const runtime_definitions_1 = require("@fluidframework/runtime-definitions");
10
10
  const runtime_utils_1 = require("@fluidframework/runtime-utils");
@@ -12,29 +12,147 @@ const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
12
12
  const container_definitions_1 = require("@fluidframework/container-definitions");
13
13
  const driver_utils_1 = require("@fluidframework/driver-utils");
14
14
  const core_utils_1 = require("@fluidframework/core-utils");
15
- const uuid_1 = require("uuid");
16
- const dataStoreContexts_1 = require("./dataStoreContexts");
17
- const containerRuntime_1 = require("./containerRuntime");
18
- const dataStoreContext_1 = require("./dataStoreContext");
19
- const storageServiceWithAttachBlobs_1 = require("./storageServiceWithAttachBlobs");
20
- const gc_1 = require("./gc");
21
- const dataStore_1 = require("./dataStore");
22
- const summary_1 = require("./summary");
15
+ const dataStoreContexts_js_1 = require("./dataStoreContexts.js");
16
+ const containerRuntime_js_1 = require("./containerRuntime.js");
17
+ const dataStoreContext_js_1 = require("./dataStoreContext.js");
18
+ const storageServiceWithAttachBlobs_js_1 = require("./storageServiceWithAttachBlobs.js");
19
+ const dataStore_js_1 = require("./dataStore.js");
20
+ const index_js_1 = require("./gc/index.js");
21
+ const index_js_2 = require("./summary/index.js");
22
+ const messageTypes_js_1 = require("./messageTypes.js");
23
+ const dataStoreRegistry_js_1 = require("./dataStoreRegistry.js");
24
+ /**
25
+ * Accepted header keys for requests coming to the runtime.
26
+ * @internal
27
+ */
28
+ var RuntimeHeaders;
29
+ (function (RuntimeHeaders) {
30
+ /** True to wait for a data store to be created and loaded before returning it. */
31
+ RuntimeHeaders["wait"] = "wait";
32
+ /** True if the request is coming from an IFluidHandle. */
33
+ RuntimeHeaders["viaHandle"] = "viaHandle";
34
+ })(RuntimeHeaders || (exports.RuntimeHeaders = RuntimeHeaders = {}));
35
+ /** True if a tombstoned object should be returned without erroring
36
+ * @alpha
37
+ */
38
+ exports.AllowTombstoneRequestHeaderKey = "allowTombstone"; // Belongs in the enum above, but avoiding the breaking change
39
+ /**
40
+ * [IRRELEVANT IF throwOnInactiveLoad OPTION NOT SET] True if an inactive object should be returned without erroring
41
+ * @internal
42
+ */
43
+ exports.AllowInactiveRequestHeaderKey = "allowInactive"; // Belongs in the enum above, but avoiding the breaking change
44
+ /**
45
+ * Creates a shallow wrapper of {@link IFluidParentContext}. The wrapper can then have its methods overwritten as needed
46
+ */
47
+ function wrapContext(context) {
48
+ return {
49
+ get IFluidDataStoreRegistry() {
50
+ return context.IFluidDataStoreRegistry;
51
+ },
52
+ IFluidHandleContext: context.IFluidHandleContext,
53
+ options: context.options,
54
+ get clientId() {
55
+ return context.clientId;
56
+ },
57
+ get connected() {
58
+ return context.connected;
59
+ },
60
+ deltaManager: context.deltaManager,
61
+ storage: context.storage,
62
+ logger: context.logger,
63
+ get clientDetails() {
64
+ return context.clientDetails;
65
+ },
66
+ get idCompressor() {
67
+ return context.idCompressor;
68
+ },
69
+ loadingGroupId: context.loadingGroupId,
70
+ get attachState() {
71
+ return context.attachState;
72
+ },
73
+ containerRuntime: context.containerRuntime,
74
+ scope: context.scope,
75
+ gcThrowOnTombstoneUsage: context.gcThrowOnTombstoneUsage,
76
+ gcTombstoneEnforcementAllowed: context.gcTombstoneEnforcementAllowed,
77
+ getAbsoluteUrl: async (...args) => {
78
+ return context.getAbsoluteUrl(...args);
79
+ },
80
+ getQuorum: (...args) => {
81
+ return context.getQuorum(...args);
82
+ },
83
+ getAudience: (...args) => {
84
+ return context.getAudience(...args);
85
+ },
86
+ ensureNoDataModelChanges: (...args) => {
87
+ return context.ensureNoDataModelChanges(...args);
88
+ },
89
+ submitMessage: (...args) => {
90
+ return context.submitMessage(...args);
91
+ },
92
+ submitSignal: (...args) => {
93
+ return context.submitSignal(...args);
94
+ },
95
+ makeLocallyVisible: (...args) => {
96
+ return context.makeLocallyVisible(...args);
97
+ },
98
+ uploadBlob: async (...args) => {
99
+ return context.uploadBlob(...args);
100
+ },
101
+ addedGCOutboundReference: (...args) => {
102
+ return context.addedGCOutboundReference?.(...args);
103
+ },
104
+ getCreateChildSummarizerNodeFn: (...args) => {
105
+ return context.getCreateChildSummarizerNodeFn?.(...args);
106
+ },
107
+ deleteChildSummarizerNode: (...args) => {
108
+ return context.deleteChildSummarizerNode?.(...args);
109
+ },
110
+ };
111
+ }
112
+ exports.wrapContext = wrapContext;
113
+ /**
114
+ * Creates a wrapper of a {@link IFluidParentContext} to be provided to the inner datastore channels.
115
+ * The wrapper will have the submit methods overwritten with the appropriate id as the destination address.
116
+ *
117
+ * @param id - the id of the channel
118
+ * @param parentContext - the {@link IFluidParentContext} to wrap
119
+ * @returns A wrapped {@link IFluidParentContext}
120
+ */
121
+ function wrapContextForInnerChannel(id, parentContext) {
122
+ const context = wrapContext(parentContext);
123
+ context.submitMessage = (type, content, localOpMetadata) => {
124
+ const fluidDataStoreContent = {
125
+ content,
126
+ type,
127
+ };
128
+ const envelope = {
129
+ address: id,
130
+ contents: fluidDataStoreContent,
131
+ };
132
+ parentContext.submitMessage(messageTypes_js_1.ContainerMessageType.FluidDataStoreOp, envelope, localOpMetadata);
133
+ };
134
+ context.submitSignal = (type, contents, targetClientId) => {
135
+ const envelope = {
136
+ address: id,
137
+ contents,
138
+ };
139
+ parentContext.submitSignal(type, envelope, targetClientId);
140
+ };
141
+ return context;
142
+ }
143
+ exports.wrapContextForInnerChannel = wrapContextForInnerChannel;
23
144
  /**
24
145
  * This class encapsulates data store handling. Currently it is only used by the container runtime,
25
146
  * but eventually could be hosted on any channel once we formalize the channel api boundary.
147
+ * @internal
26
148
  */
27
- class DataStores {
28
- constructor(baseSnapshot, runtime, submitAttachFn, getCreateChildSummarizerNodeFn, deleteChildSummarizerNodeFn, baseLogger, gcNodeUpdated, isDataStoreDeleted, aliasMap, contexts = new dataStoreContexts_1.DataStoreContexts(baseLogger)) {
149
+ class ChannelCollection {
150
+ constructor(baseSnapshot, parentContext, baseLogger, gcNodeUpdated, isDataStoreDeleted, aliasMap, provideEntryPoint) {
29
151
  this.baseSnapshot = baseSnapshot;
30
- this.runtime = runtime;
31
- this.submitAttachFn = submitAttachFn;
32
- this.getCreateChildSummarizerNodeFn = getCreateChildSummarizerNodeFn;
33
- this.deleteChildSummarizerNodeFn = deleteChildSummarizerNodeFn;
152
+ this.parentContext = parentContext;
34
153
  this.gcNodeUpdated = gcNodeUpdated;
35
154
  this.isDataStoreDeleted = isDataStoreDeleted;
36
155
  this.aliasMap = aliasMap;
37
- this.contexts = contexts;
38
156
  // Stores tracked by the Domain
39
157
  this.pendingAttach = new Map();
40
158
  // 0.24 back-compat attachingBeforeSummary
@@ -48,7 +166,9 @@ class DataStores {
48
166
  this.shouldSendAttachLog = true;
49
167
  this.dispose = () => this.disposeOnce.value;
50
168
  this.mc = (0, telemetry_utils_1.createChildMonitoringContext)({ logger: baseLogger });
51
- this.containerRuntimeHandle = new datastore_1.FluidObjectHandle(this.runtime, "/", this.runtime.IFluidHandleContext);
169
+ this.contexts = new dataStoreContexts_js_1.DataStoreContexts(baseLogger);
170
+ this.containerRuntimeHandle = new datastore_1.FluidObjectHandle(this.parentContext, "/", this.parentContext.IFluidHandleContext);
171
+ this.entryPoint = new datastore_1.FluidObjectHandle(new core_utils_1.LazyPromise(async () => provideEntryPoint(this)), "", this.parentContext.IFluidHandleContext);
52
172
  // Extract stores stored inside the snapshot
53
173
  const fluidDataStores = new Map();
54
174
  if (baseSnapshot) {
@@ -65,16 +185,17 @@ class DataStores {
65
185
  unreferencedDataStoreCount++;
66
186
  }
67
187
  // If we have a detached container, then create local data store contexts.
68
- if (this.runtime.attachState !== container_definitions_1.AttachState.Detached) {
69
- dataStoreContext = new dataStoreContext_1.RemoteFluidDataStoreContext({
188
+ if (this.parentContext.attachState !== container_definitions_1.AttachState.Detached) {
189
+ dataStoreContext = new dataStoreContext_js_1.RemoteFluidDataStoreContext({
70
190
  id: key,
71
191
  snapshotTree: value,
72
- runtime: this.runtime,
73
- storage: this.runtime.storage,
74
- scope: this.runtime.scope,
75
- createSummarizerNodeFn: this.getCreateChildSummarizerNodeFn(key, {
192
+ parentContext: this.wrapContextForInnerChannel(key),
193
+ storage: this.parentContext.storage,
194
+ scope: this.parentContext.scope,
195
+ createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
76
196
  type: runtime_definitions_1.CreateSummarizerNodeSource.FromSummary,
77
197
  }),
198
+ loadingGroupId: value.groupId,
78
199
  });
79
200
  }
80
201
  else {
@@ -82,13 +203,13 @@ class DataStores {
82
203
  throw new telemetry_utils_1.LoggingError("Snapshot should be there to load from!!");
83
204
  }
84
205
  const snapshotTree = value;
85
- dataStoreContext = new dataStoreContext_1.LocalFluidDataStoreContext({
206
+ dataStoreContext = new dataStoreContext_js_1.LocalFluidDataStoreContext({
86
207
  id: key,
87
208
  pkg: undefined,
88
- runtime: this.runtime,
89
- storage: this.runtime.storage,
90
- scope: this.runtime.scope,
91
- createSummarizerNodeFn: this.getCreateChildSummarizerNodeFn(key, {
209
+ parentContext: this.wrapContextForInnerChannel(key),
210
+ storage: this.parentContext.storage,
211
+ scope: this.parentContext.scope,
212
+ createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
92
213
  type: runtime_definitions_1.CreateSummarizerNodeSource.FromSummary,
93
214
  }),
94
215
  makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(key),
@@ -113,6 +234,17 @@ class DataStores {
113
234
  const pendingAliasPromise = this.pendingAliases.get(maybeAlias);
114
235
  return pendingAliasPromise ?? "Success";
115
236
  }
237
+ wrapContextForInnerChannel(id) {
238
+ return wrapContextForInnerChannel(id, this.parentContext);
239
+ }
240
+ /**
241
+ * IFluidDataStoreChannel.makeVisibleAndAttachGraph implementation
242
+ * Not clear when it would be called and what it should do.
243
+ * Currently this API is called by context only for root data stores.
244
+ */
245
+ makeVisibleAndAttachGraph() {
246
+ this.parentContext.makeLocallyVisible();
247
+ }
116
248
  processAttachMessage(message, local) {
117
249
  const attachMessage = message.contents;
118
250
  this.dataStoresSinceLastGC.push(attachMessage.id);
@@ -120,7 +252,7 @@ class DataStores {
120
252
  const foundGCData = (0, runtime_utils_1.processAttachMessageGCData)(attachMessage.snapshot, (nodeId, toPath) => {
121
253
  // nodeId is the relative path under the node being attached. Always starts with "/", but no trailing "/" after an id
122
254
  const fromPath = `/${attachMessage.id}${nodeId === "/" ? "" : nodeId}`;
123
- this.runtime.addedGCOutboundReference({ absolutePath: fromPath }, { absolutePath: toPath });
255
+ this.parentContext.addedGCOutboundReference?.({ absolutePath: fromPath }, { absolutePath: toPath });
124
256
  });
125
257
  // Only log once per container to avoid noise/cost.
126
258
  // Allows longitudinal tracking of various state (e.g. foundGCData), and some sampled details
@@ -163,17 +295,18 @@ class DataStores {
163
295
  // Include the type of attach message which is the pkg of the store to be
164
296
  // used by RemoteFluidDataStoreContext in case it is not in the snapshot.
165
297
  const pkg = [attachMessage.type];
166
- const remoteFluidDataStoreContext = new dataStoreContext_1.RemoteFluidDataStoreContext({
298
+ const remoteFluidDataStoreContext = new dataStoreContext_js_1.RemoteFluidDataStoreContext({
167
299
  id: attachMessage.id,
168
300
  snapshotTree,
169
- runtime: this.runtime,
170
- storage: new storageServiceWithAttachBlobs_1.StorageServiceWithAttachBlobs(this.runtime.storage, flatAttachBlobs),
171
- scope: this.runtime.scope,
172
- createSummarizerNodeFn: this.getCreateChildSummarizerNodeFn(attachMessage.id, {
301
+ parentContext: this.wrapContextForInnerChannel(attachMessage.id),
302
+ storage: new storageServiceWithAttachBlobs_js_1.StorageServiceWithAttachBlobs(this.parentContext.storage, flatAttachBlobs),
303
+ scope: this.parentContext.scope,
304
+ loadingGroupId: attachMessage.snapshot?.groupId,
305
+ createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(attachMessage.id, {
173
306
  type: runtime_definitions_1.CreateSummarizerNodeSource.FromAttach,
174
307
  sequenceNumber: message.sequenceNumber,
175
308
  snapshot: attachMessage.snapshot ?? {
176
- entries: [(0, dataStoreContext_1.createAttributesBlob)(pkg, true /* isRootDataStore */)],
309
+ entries: [(0, dataStoreContext_js_1.createAttributesBlob)(pkg, true /* isRootDataStore */)],
177
310
  },
178
311
  }),
179
312
  pkg,
@@ -182,7 +315,7 @@ class DataStores {
182
315
  }
183
316
  processAliasMessage(message, localOpMetadata, local) {
184
317
  const aliasMessage = message.contents;
185
- if (!(0, dataStore_1.isDataStoreAliasMessage)(aliasMessage)) {
318
+ if (!(0, dataStore_js_1.isDataStoreAliasMessage)(aliasMessage)) {
186
319
  throw new telemetry_utils_1.DataCorruptionError("malformedDataStoreAliasMessage", {
187
320
  ...(0, telemetry_utils_1.extractSafePropertiesFromMessage)(message),
188
321
  });
@@ -210,8 +343,8 @@ class DataStores {
210
343
  });
211
344
  return false;
212
345
  }
213
- const handle = new datastore_1.FluidObjectHandle(context, aliasMessage.internalId, this.runtime.IFluidHandleContext);
214
- this.runtime.addedGCOutboundReference(this.containerRuntimeHandle, handle);
346
+ const handle = new datastore_1.FluidObjectHandle(context, aliasMessage.internalId, this.parentContext.IFluidHandleContext);
347
+ this.parentContext.addedGCOutboundReference?.(this.containerRuntimeHandle, handle);
215
348
  this.aliasMap.set(aliasMessage.alias, context.id);
216
349
  context.setInMemoryRoot();
217
350
  return true;
@@ -221,11 +354,8 @@ class DataStores {
221
354
  }
222
355
  /** Package up the context's attach summary etc into an IAttachMessage */
223
356
  generateAttachMessage(localContext) {
224
- const { attachSummary, type, gcData } = localContext.getAttachData(
225
- /* includeGCData: */ true);
226
- if (gcData !== undefined) {
227
- (0, runtime_utils_1.addBlobToSummary)(attachSummary, runtime_definitions_1.gcDataBlobKey, JSON.stringify(gcData));
228
- }
357
+ const { attachSummary } = localContext.getAttachData(/* includeGCData: */ true);
358
+ const type = localContext.packagePath[localContext.packagePath.length - 1];
229
359
  // Attach message needs the summary in ITree format. Convert the ISummaryTree into an ITree.
230
360
  const snapshot = (0, runtime_utils_1.convertSummaryTreeToITree)(attachSummary.summary);
231
361
  return {
@@ -247,48 +377,83 @@ class DataStores {
247
377
  * globally visible. Move it to attaching state and send an "attach" op for it.
248
378
  * If the container is detached, this data store will be part of the summary that makes the container attached.
249
379
  */
250
- if (this.runtime.attachState !== container_definitions_1.AttachState.Detached) {
380
+ if (this.parentContext.attachState !== container_definitions_1.AttachState.Detached) {
251
381
  localContext.emit("attaching");
252
382
  const message = this.generateAttachMessage(localContext);
253
383
  this.pendingAttach.set(id, message);
254
- this.submitAttachFn(message);
384
+ this.parentContext.submitMessage(messageTypes_js_1.ContainerMessageType.Attach, message, undefined);
255
385
  this.attachOpFiredForDataStore.add(id);
256
386
  }
257
387
  this.contexts.bind(id);
258
388
  }
259
- createDetachedDataStoreCore(pkg, isRoot, id = (0, uuid_1.v4)()) {
260
- (0, core_utils_1.assert)(!id.includes("/"), 0x30c /* Id cannot contain slashes */);
261
- const context = new dataStoreContext_1.LocalDetachedFluidDataStoreContext({
389
+ /**
390
+ * Generate compact internal DataStore ID.
391
+ *
392
+ * A note about namespace and name collisions:
393
+ * This code assumes that that's the only way to generate internal IDs, and that it's Ok for this namespace to overlap with
394
+ * user-provided alias names namespace.
395
+ * There are two scenarios where it could cause trouble:
396
+ * 1) Old files, where (already removed) CreateRoot*DataStore*() API was used, and thus internal name of data store
397
+ * was provided by user. Such files may experience name collision with future data stores that receive a name generated
398
+ * by this function.
399
+ * 2) Much less likely, but if it happen that internal ID (generated by this function) is exactly the same as alias name
400
+ * that user might use in the future, them ContainerRuntime.getAliasedDataStoreEntryPoint() or
401
+ * ContainerRuntime.getDataStoreFromRequest() could return a data store with internalID matching user request, even though
402
+ * user expected some other data store (that would receive alias later).
403
+ * Please note that above mentioned functions have the implementation they have (allowing #2) due to #1.
404
+ */
405
+ createDataStoreId() {
406
+ // We use three non-overlapping namespaces:
407
+ // - detached state: even numbers
408
+ // - attached state: odd numbers
409
+ // - uuids
410
+ // In first two cases we will encode result as strings in more compact form.
411
+ if (this.parentContext.attachState === container_definitions_1.AttachState.Detached) {
412
+ // container is detached, only one client observes content, no way to hit collisions with other clients.
413
+ return (0, runtime_utils_1.encodeCompactIdToString)(2 * this.contexts.size);
414
+ }
415
+ const id = this.parentContext.containerRuntime.generateDocumentUniqueId();
416
+ if (typeof id === "number") {
417
+ return (0, runtime_utils_1.encodeCompactIdToString)(2 * id + 1);
418
+ }
419
+ return id;
420
+ }
421
+ createDetachedDataStoreCore(pkg, loadingGroupId) {
422
+ const id = this.createDataStoreId();
423
+ const context = new dataStoreContext_js_1.LocalDetachedFluidDataStoreContext({
262
424
  id,
263
425
  pkg,
264
- runtime: this.runtime,
265
- storage: this.runtime.storage,
266
- scope: this.runtime.scope,
267
- createSummarizerNodeFn: this.getCreateChildSummarizerNodeFn(id, {
426
+ parentContext: this.wrapContextForInnerChannel(id),
427
+ storage: this.parentContext.storage,
428
+ scope: this.parentContext.scope,
429
+ createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(id, {
268
430
  type: runtime_definitions_1.CreateSummarizerNodeSource.Local,
269
431
  }),
270
432
  makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(id),
271
433
  snapshotTree: undefined,
272
- isRootDataStore: isRoot,
434
+ isRootDataStore: false,
435
+ loadingGroupId,
436
+ channelToDataStoreFn: (channel) => (0, dataStore_js_1.channelToDataStore)(channel, id, this, (0, telemetry_utils_1.createChildLogger)({ logger: this.parentContext.logger })),
273
437
  });
274
438
  this.contexts.addUnbound(context);
275
439
  return context;
276
440
  }
277
- _createFluidDataStoreContext(pkg, id, props) {
278
- (0, core_utils_1.assert)(!id.includes("/"), 0x30d /* Id cannot contain slashes */);
279
- const context = new dataStoreContext_1.LocalFluidDataStoreContext({
441
+ _createFluidDataStoreContext(pkg, props, loadingGroupId) {
442
+ const id = this.createDataStoreId();
443
+ const context = new dataStoreContext_js_1.LocalFluidDataStoreContext({
280
444
  id,
281
445
  pkg,
282
- runtime: this.runtime,
283
- storage: this.runtime.storage,
284
- scope: this.runtime.scope,
285
- createSummarizerNodeFn: this.getCreateChildSummarizerNodeFn(id, {
446
+ parentContext: this.wrapContextForInnerChannel(id),
447
+ storage: this.parentContext.storage,
448
+ scope: this.parentContext.scope,
449
+ createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(id, {
286
450
  type: runtime_definitions_1.CreateSummarizerNodeSource.Local,
287
451
  }),
288
452
  makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(id),
289
453
  snapshotTree: undefined,
290
454
  isRootDataStore: false,
291
455
  createProps: props,
456
+ loadingGroupId,
292
457
  });
293
458
  this.contexts.addUnbound(context);
294
459
  return context;
@@ -296,7 +461,16 @@ class DataStores {
296
461
  get disposed() {
297
462
  return this.disposeOnce.evaluated;
298
463
  }
299
- resubmitDataStoreOp(envelope, localOpMetadata) {
464
+ reSubmit(type, content, localOpMetadata) {
465
+ switch (type) {
466
+ case messageTypes_js_1.ContainerMessageType.Attach:
467
+ case messageTypes_js_1.ContainerMessageType.Alias:
468
+ this.parentContext.submitMessage(type, content, localOpMetadata);
469
+ return;
470
+ default:
471
+ }
472
+ (0, core_utils_1.assert)(type === messageTypes_js_1.ContainerMessageType.FluidDataStoreOp, 0x8e7 /* type */);
473
+ const envelope = content;
300
474
  const context = this.contexts.get(envelope.address);
301
475
  // If the data store has been deleted, log an error and throw an error. If there are local changes for a
302
476
  // deleted data store, it can otherwise lead to inconsistent state when compared to other clients.
@@ -307,9 +481,12 @@ class DataStores {
307
481
  });
308
482
  }
309
483
  (0, core_utils_1.assert)(!!context, 0x160 /* "There should be a store context for the op" */);
310
- context.reSubmit(envelope.contents, localOpMetadata);
484
+ const innerContents = envelope.contents;
485
+ context.reSubmit(innerContents.type, innerContents.content, localOpMetadata);
311
486
  }
312
- rollbackDataStoreOp(envelope, localOpMetadata) {
487
+ rollback(type, content, localOpMetadata) {
488
+ (0, core_utils_1.assert)(type === messageTypes_js_1.ContainerMessageType.FluidDataStoreOp, 0x8e8 /* type */);
489
+ const envelope = content;
313
490
  const context = this.contexts.get(envelope.address);
314
491
  // If the data store has been deleted, log an error and throw an error. If there are local changes for a
315
492
  // deleted data store, it can otherwise lead to inconsistent state when compared to other clients.
@@ -320,9 +497,19 @@ class DataStores {
320
497
  });
321
498
  }
322
499
  (0, core_utils_1.assert)(!!context, 0x2e8 /* "There should be a store context for the op" */);
323
- context.rollback(envelope.contents, localOpMetadata);
500
+ const innerContents = envelope.contents;
501
+ context.rollback(innerContents.type, innerContents.content, localOpMetadata);
324
502
  }
325
- async applyStashedOp(envelope) {
503
+ async applyStashedOp(content) {
504
+ const opContents = content;
505
+ switch (opContents.type) {
506
+ case messageTypes_js_1.ContainerMessageType.Attach:
507
+ return this.applyStashedAttachOp(opContents.contents);
508
+ case messageTypes_js_1.ContainerMessageType.Alias:
509
+ return;
510
+ default:
511
+ }
512
+ const envelope = opContents.contents;
326
513
  const context = this.contexts.get(envelope.address);
327
514
  // If the data store has been deleted, log an error and ignore this message. This helps prevent document
328
515
  // corruption in case the data store that stashed the op is deleted.
@@ -337,9 +524,26 @@ class DataStores {
337
524
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
338
525
  this.processAttachMessage({ contents: message }, false);
339
526
  }
340
- processFluidDataStoreOp(message, local, localMessageMetadata, addedOutboundReference) {
527
+ process(message, local, localMessageMetadata, addedOutboundReference) {
528
+ switch (message.type) {
529
+ case messageTypes_js_1.ContainerMessageType.Attach:
530
+ this.processAttachMessage(message, local);
531
+ return;
532
+ case messageTypes_js_1.ContainerMessageType.Alias:
533
+ this.processAliasMessage(message, localMessageMetadata, local);
534
+ return;
535
+ case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp:
536
+ break;
537
+ default:
538
+ (0, core_utils_1.assert)(false, 0x8e9 /* unreached */);
539
+ }
341
540
  const envelope = message.contents;
342
- const transformed = { ...message, contents: envelope.contents };
541
+ const innerContents = envelope.contents;
542
+ const transformed = {
543
+ ...message,
544
+ type: innerContents.type,
545
+ contents: innerContents.content,
546
+ };
343
547
  const context = this.contexts.get(envelope.address);
344
548
  // If the data store has been deleted, log an error and ignore this message. This helps prevent document
345
549
  // corruption in case a deleted data store accidentally submitted an op.
@@ -360,16 +564,17 @@ class DataStores {
360
564
  context.process(transformed, local, localMessageMetadata);
361
565
  // By default, we use the new behavior of detecting outbound routes here.
362
566
  // If this setting is true, then DataStoreContext would be notifying GC instead.
363
- if (this.mc.config.getBoolean(gc_1.detectOutboundRoutesViaDDSKey) !== true) {
567
+ if (this.mc.config.getBoolean(index_js_1.detectOutboundRoutesViaDDSKey) !== true &&
568
+ addedOutboundReference !== undefined) {
364
569
  // Notify GC of any outbound references that were added by this op.
365
570
  detectOutboundReferences(envelope, addedOutboundReference);
366
571
  }
367
572
  // Notify that a GC node for the data store changed. This is used to detect if a deleted data store is
368
573
  // being used.
369
- this.gcNodeUpdated(`/${envelope.address}`, message.timestamp, context.isLoaded ? context.packagePath : undefined);
574
+ this.gcNodeUpdated(`/${envelope.address}`, "Changed", message.timestamp, context.isLoaded ? context.packagePath : undefined);
370
575
  }
371
576
  async getDataStore(id, requestHeaderData) {
372
- const headerData = { ...containerRuntime_1.defaultRuntimeHeaderData, ...requestHeaderData };
577
+ const headerData = { ...containerRuntime_js_1.defaultRuntimeHeaderData, ...requestHeaderData };
373
578
  if (this.checkAndLogIfDeleted(id, this.contexts.get(id), "Requested", "getDataStore", requestHeaderData)) {
374
579
  // The requested data store has been deleted by gc. Create a 404 response exception.
375
580
  const request = { url: id };
@@ -391,7 +596,7 @@ class DataStores {
391
596
  if (this.checkAndLogIfDeleted(id, this.contexts.get(id), "Requested", "getDataStoreIfAvailable", requestHeaderData)) {
392
597
  return undefined;
393
598
  }
394
- const headerData = { ...containerRuntime_1.defaultRuntimeHeaderData, ...requestHeaderData };
599
+ const headerData = { ...containerRuntime_js_1.defaultRuntimeHeaderData, ...requestHeaderData };
395
600
  const context = await this.contexts.getBoundOrRemoted(id, headerData.wait);
396
601
  if (context === undefined) {
397
602
  return undefined;
@@ -420,7 +625,10 @@ class DataStores {
420
625
  });
421
626
  return true;
422
627
  }
423
- processSignal(fluidDataStoreId, message, local) {
628
+ processSignal(messageArg, local) {
629
+ const envelope = messageArg.content;
630
+ const fluidDataStoreId = envelope.address;
631
+ const message = { ...messageArg, content: envelope.contents };
424
632
  const context = this.contexts.get(fluidDataStoreId);
425
633
  // If the data store has been deleted, log an error and ignore this message. This helps prevent document
426
634
  // corruption in case a deleted data store accidentally submitted a signal.
@@ -453,7 +661,7 @@ class DataStores {
453
661
  fluidDataStoreId,
454
662
  }),
455
663
  details: JSON.stringify({
456
- runtimeConnected: this.runtime.connected,
664
+ runtimeConnected: this.parentContext.connected,
457
665
  connected,
458
666
  }),
459
667
  }, error);
@@ -496,7 +704,7 @@ class DataStores {
496
704
  /**
497
705
  * Create a summary. Used when attaching or serializing a detached container.
498
706
  */
499
- createSummary(telemetryContext) {
707
+ getAttachSummary(telemetryContext) {
500
708
  const builder = new runtime_utils_1.SummaryTreeBuilder();
501
709
  // Attaching graph of some stores can cause other stores to get bound too.
502
710
  // So keep taking summary until no new stores get bound.
@@ -541,8 +749,8 @@ class DataStores {
541
749
  (0, core_utils_1.assert)(context !== undefined, 0x2b6 /* Missing data store context */);
542
750
  if (await context.isRoot()) {
543
751
  // A root data store is basically a reference from the container runtime to the data store.
544
- const handle = new datastore_1.FluidObjectHandle(context, id, this.runtime.IFluidHandleContext);
545
- this.runtime.addedGCOutboundReference(this.containerRuntimeHandle, handle);
752
+ const handle = new datastore_1.FluidObjectHandle(context, id, this.parentContext.IFluidHandleContext);
753
+ this.parentContext.addedGCOutboundReference?.(this.containerRuntimeHandle, handle);
546
754
  }
547
755
  }
548
756
  this.dataStoresSinceLastGC = [];
@@ -618,7 +826,7 @@ class DataStores {
618
826
  // Delete the contexts of unused data stores.
619
827
  this.contexts.delete(dataStoreId);
620
828
  // Delete the summarizer node of the unused data stores.
621
- this.deleteChildSummarizerNodeFn(dataStoreId);
829
+ this.parentContext.deleteChildSummarizerNode?.(dataStoreId);
622
830
  }
623
831
  }
624
832
  /**
@@ -655,7 +863,7 @@ class DataStores {
655
863
  // Delete the contexts of sweep ready data stores.
656
864
  this.contexts.delete(dataStoreId);
657
865
  // Delete the summarizer node of the sweep ready data stores.
658
- this.deleteChildSummarizerNodeFn(dataStoreId);
866
+ this.parentContext.deleteChildSummarizerNode?.(dataStoreId);
659
867
  }
660
868
  return Array.from(sweepReadyDataStoreRoutes);
661
869
  }
@@ -719,17 +927,60 @@ class DataStores {
719
927
  // Data stores paths are of the format "/dataStoreId".
720
928
  // Sub data store paths are of the format "/dataStoreId/subPath/...".
721
929
  if (pathParts.length === 2) {
722
- return gc_1.GCNodeType.DataStore;
930
+ return index_js_1.GCNodeType.DataStore;
723
931
  }
724
- return gc_1.GCNodeType.SubDataStore;
932
+ return index_js_1.GCNodeType.SubDataStore;
933
+ }
934
+ internalId(maybeAlias) {
935
+ return this.aliases.get(maybeAlias) ?? maybeAlias;
936
+ }
937
+ async request(request) {
938
+ const requestParser = runtime_utils_1.RequestParser.create(request);
939
+ const id = requestParser.pathParts[0];
940
+ // Differentiate between requesting the dataStore directly, or one of its children
941
+ const requestForChild = !requestParser.isLeaf(1);
942
+ const headerData = {};
943
+ if (typeof request.headers?.[RuntimeHeaders.wait] === "boolean") {
944
+ headerData.wait = request.headers[RuntimeHeaders.wait];
945
+ }
946
+ if (typeof request.headers?.[RuntimeHeaders.viaHandle] === "boolean") {
947
+ headerData.viaHandle = request.headers[RuntimeHeaders.viaHandle];
948
+ }
949
+ if (typeof request.headers?.[exports.AllowTombstoneRequestHeaderKey] === "boolean") {
950
+ headerData.allowTombstone = request.headers[exports.AllowTombstoneRequestHeaderKey];
951
+ }
952
+ if (typeof request.headers?.[exports.AllowInactiveRequestHeaderKey] === "boolean") {
953
+ headerData.allowInactive = request.headers[exports.AllowInactiveRequestHeaderKey];
954
+ }
955
+ // We allow Tombstone requests for sub-DataStore objects
956
+ if (requestForChild) {
957
+ headerData.allowTombstone = true;
958
+ }
959
+ await this.waitIfPendingAlias(id);
960
+ const internalId = this.internalId(id);
961
+ const dataStoreContext = await this.getDataStore(internalId, headerData);
962
+ // Remove query params, leading and trailing slashes from the url. This is done to make sure the format is
963
+ // the same as GC nodes id.
964
+ const urlWithoutQuery = (0, index_js_1.trimLeadingAndTrailingSlashes)(request.url.split("?")[0]);
965
+ // Get the initial snapshot details which contain the data store package path.
966
+ const details = await dataStoreContext.getInitialSnapshotDetails();
967
+ // Note that this will throw if the data store is inactive or tombstoned and throwing on incorrect usage
968
+ // is configured.
969
+ this.gcNodeUpdated(`/${urlWithoutQuery}`, "Loaded", undefined /* timestampMs */, details.pkg, request, headerData);
970
+ const dataStore = await dataStoreContext.realize();
971
+ const subRequest = requestParser.createSubRequest(1);
972
+ // We always expect createSubRequest to include a leading slash, but asserting here to protect against
973
+ // unintentionally modifying the url if that changes.
974
+ (0, core_utils_1.assert)(subRequest.url.startsWith("/"), 0x126 /* "Expected createSubRequest url to include a leading slash" */);
975
+ return dataStore.request(subRequest);
725
976
  }
726
977
  }
727
- exports.DataStores = DataStores;
978
+ exports.ChannelCollection = ChannelCollection;
728
979
  function getSummaryForDatastores(snapshot, metadata) {
729
980
  if (!snapshot) {
730
981
  return undefined;
731
982
  }
732
- if ((0, summary_1.rootHasIsolatedChannels)(metadata)) {
983
+ if ((0, index_js_2.rootHasIsolatedChannels)(metadata)) {
733
984
  const datastoresSnapshot = snapshot.trees[runtime_definitions_1.channelsTreeName];
734
985
  (0, core_utils_1.assert)(!!datastoresSnapshot, 0x168 /* Expected tree in snapshot not found */);
735
986
  return datastoresSnapshot;
@@ -738,7 +989,7 @@ function getSummaryForDatastores(snapshot, metadata) {
738
989
  // back-compat: strip out all non-datastore paths before giving to DataStores object.
739
990
  const datastoresTrees = {};
740
991
  for (const [key, value] of Object.entries(snapshot.trees)) {
741
- if (!summary_1.nonDataStorePaths.includes(key)) {
992
+ if (!index_js_2.nonDataStorePaths.includes(key)) {
742
993
  datastoresTrees[key] = value;
743
994
  }
744
995
  }
@@ -751,6 +1002,8 @@ function getSummaryForDatastores(snapshot, metadata) {
751
1002
  exports.getSummaryForDatastores = getSummaryForDatastores;
752
1003
  /**
753
1004
  * Traverse this op's contents and detect any outbound routes that were added by this op.
1005
+ *
1006
+ * @internal
754
1007
  */
755
1008
  function detectOutboundReferences(envelope, addedOutboundReference) {
756
1009
  // These will be built up as we traverse the envelope contents
@@ -780,4 +1033,26 @@ function detectOutboundReferences(envelope, addedOutboundReference) {
780
1033
  outboundPaths.forEach((toPath) => addedOutboundReference(fromPath, toPath));
781
1034
  }
782
1035
  exports.detectOutboundReferences = detectOutboundReferences;
783
- //# sourceMappingURL=dataStores.js.map
1036
+ /** @internal */
1037
+ class ChannelCollectionFactory {
1038
+ constructor(registryEntries,
1039
+ // ADO:7302 We need a better type here
1040
+ provideEntryPoint) {
1041
+ this.provideEntryPoint = provideEntryPoint;
1042
+ this.type = "ChannelCollectionChannel";
1043
+ this.IFluidDataStoreRegistry = new dataStoreRegistry_js_1.FluidDataStoreRegistry(registryEntries);
1044
+ }
1045
+ get IFluidDataStoreFactory() {
1046
+ return this;
1047
+ }
1048
+ async instantiateDataStore(context, _existing) {
1049
+ const runtime = new ChannelCollection(context.baseSnapshot, context, // parentContext
1050
+ context.logger, () => { }, // gcNodeUpdated
1051
+ (_nodePath) => false, // isDataStoreDeleted
1052
+ new Map(), // aliasMap
1053
+ this.provideEntryPoint);
1054
+ return runtime;
1055
+ }
1056
+ }
1057
+ exports.ChannelCollectionFactory = ChannelCollectionFactory;
1058
+ //# sourceMappingURL=channelCollection.js.map