@fluidframework/container-runtime 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/.eslintrc.cjs +36 -6
  2. package/CHANGELOG.md +38 -0
  3. package/api-report/container-runtime.legacy.alpha.api.md +31 -31
  4. package/dist/batchTracker.d.ts +1 -2
  5. package/dist/batchTracker.d.ts.map +1 -1
  6. package/dist/batchTracker.js +1 -1
  7. package/dist/batchTracker.js.map +1 -1
  8. package/dist/blobManager/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager/blobManager.js +14 -11
  10. package/dist/blobManager/blobManager.js.map +1 -1
  11. package/dist/blobManager/blobManagerSnapSum.d.ts +1 -0
  12. package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  13. package/dist/blobManager/blobManagerSnapSum.js +7 -5
  14. package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
  15. package/dist/channelCollection.d.ts.map +1 -1
  16. package/dist/channelCollection.js +63 -41
  17. package/dist/channelCollection.js.map +1 -1
  18. package/dist/connectionTelemetry.d.ts +2 -2
  19. package/dist/connectionTelemetry.d.ts.map +1 -1
  20. package/dist/connectionTelemetry.js +4 -4
  21. package/dist/connectionTelemetry.js.map +1 -1
  22. package/dist/containerRuntime.d.ts +14 -30
  23. package/dist/containerRuntime.d.ts.map +1 -1
  24. package/dist/containerRuntime.js +264 -194
  25. package/dist/containerRuntime.js.map +1 -1
  26. package/dist/dataStore.js +6 -3
  27. package/dist/dataStore.js.map +1 -1
  28. package/dist/dataStoreContext.d.ts.map +1 -1
  29. package/dist/dataStoreContext.js +16 -11
  30. package/dist/dataStoreContext.js.map +1 -1
  31. package/dist/dataStoreContexts.d.ts.map +1 -1
  32. package/dist/dataStoreContexts.js +1 -0
  33. package/dist/dataStoreContexts.js.map +1 -1
  34. package/dist/deltaScheduler.d.ts.map +1 -1
  35. package/dist/deltaScheduler.js +5 -5
  36. package/dist/deltaScheduler.js.map +1 -1
  37. package/dist/gc/garbageCollection.d.ts.map +1 -1
  38. package/dist/gc/garbageCollection.js +36 -14
  39. package/dist/gc/garbageCollection.js.map +1 -1
  40. package/dist/gc/gcConfigs.d.ts.map +1 -1
  41. package/dist/gc/gcConfigs.js +2 -0
  42. package/dist/gc/gcConfigs.js.map +1 -1
  43. package/dist/gc/gcDefinitions.d.ts +8 -0
  44. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  45. package/dist/gc/gcDefinitions.js +1 -0
  46. package/dist/gc/gcDefinitions.js.map +1 -1
  47. package/dist/gc/gcHelpers.d.ts.map +1 -1
  48. package/dist/gc/gcHelpers.js +8 -5
  49. package/dist/gc/gcHelpers.js.map +1 -1
  50. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  51. package/dist/gc/gcSummaryStateTracker.js +2 -1
  52. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  53. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  54. package/dist/gc/gcTelemetry.js +29 -15
  55. package/dist/gc/gcTelemetry.js.map +1 -1
  56. package/dist/inboundBatchAggregator.js +3 -3
  57. package/dist/inboundBatchAggregator.js.map +1 -1
  58. package/dist/layerCompatState.d.ts +19 -0
  59. package/dist/layerCompatState.d.ts.map +1 -0
  60. package/dist/layerCompatState.js +64 -0
  61. package/dist/layerCompatState.js.map +1 -0
  62. package/dist/messageTypes.d.ts.map +1 -1
  63. package/dist/messageTypes.js.map +1 -1
  64. package/dist/opLifecycle/duplicateBatchDetector.js +2 -2
  65. package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
  66. package/dist/opLifecycle/opCompressor.d.ts +3 -2
  67. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  68. package/dist/opLifecycle/opCompressor.js +13 -19
  69. package/dist/opLifecycle/opCompressor.js.map +1 -1
  70. package/dist/opLifecycle/opDecompressor.d.ts +3 -0
  71. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  72. package/dist/opLifecycle/opDecompressor.js +4 -1
  73. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  74. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  75. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  76. package/dist/opLifecycle/opGroupingManager.js +5 -3
  77. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  78. package/dist/opLifecycle/opSplitter.d.ts +13 -10
  79. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  80. package/dist/opLifecycle/opSplitter.js +14 -11
  81. package/dist/opLifecycle/opSplitter.js.map +1 -1
  82. package/dist/opLifecycle/outbox.d.ts +3 -3
  83. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  84. package/dist/opLifecycle/outbox.js +11 -15
  85. package/dist/opLifecycle/outbox.js.map +1 -1
  86. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  87. package/dist/opLifecycle/remoteMessageProcessor.js +3 -1
  88. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  89. package/dist/packageVersion.d.ts +1 -1
  90. package/dist/packageVersion.js +1 -1
  91. package/dist/packageVersion.js.map +1 -1
  92. package/dist/pendingStateManager.d.ts +3 -4
  93. package/dist/pendingStateManager.d.ts.map +1 -1
  94. package/dist/pendingStateManager.js +11 -10
  95. package/dist/pendingStateManager.js.map +1 -1
  96. package/dist/summary/documentSchema.d.ts +7 -0
  97. package/dist/summary/documentSchema.d.ts.map +1 -1
  98. package/dist/summary/documentSchema.js +6 -4
  99. package/dist/summary/documentSchema.js.map +1 -1
  100. package/dist/summary/orderedClientElection.d.ts +1 -0
  101. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  102. package/dist/summary/orderedClientElection.js +13 -11
  103. package/dist/summary/orderedClientElection.js.map +1 -1
  104. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
  105. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  106. package/dist/summary/runWhileConnectedCoordinator.js +7 -2
  107. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  108. package/dist/summary/runningSummarizer.d.ts +2 -2
  109. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  110. package/dist/summary/runningSummarizer.js +38 -17
  111. package/dist/summary/runningSummarizer.js.map +1 -1
  112. package/dist/summary/summarizer.d.ts +1 -0
  113. package/dist/summary/summarizer.d.ts.map +1 -1
  114. package/dist/summary/summarizer.js +18 -9
  115. package/dist/summary/summarizer.js.map +1 -1
  116. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  117. package/dist/summary/summarizerClientElection.js +1 -0
  118. package/dist/summary/summarizerClientElection.js.map +1 -1
  119. package/dist/summary/summarizerHeuristics.js +1 -1
  120. package/dist/summary/summarizerHeuristics.js.map +1 -1
  121. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  122. package/dist/summary/summarizerNode/index.js.map +1 -1
  123. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  124. package/dist/summary/summarizerNode/summarizerNode.js +30 -31
  125. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  126. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
  127. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
  128. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  129. package/dist/summary/summarizerTypes.d.ts +7 -0
  130. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  131. package/dist/summary/summarizerTypes.js.map +1 -1
  132. package/dist/summary/summaryCollection.d.ts +3 -4
  133. package/dist/summary/summaryCollection.d.ts.map +1 -1
  134. package/dist/summary/summaryCollection.js +9 -6
  135. package/dist/summary/summaryCollection.js.map +1 -1
  136. package/dist/summary/summaryFormat.d.ts +4 -1
  137. package/dist/summary/summaryFormat.d.ts.map +1 -1
  138. package/dist/summary/summaryFormat.js +3 -2
  139. package/dist/summary/summaryFormat.js.map +1 -1
  140. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  141. package/dist/summary/summaryGenerator.js +19 -8
  142. package/dist/summary/summaryGenerator.js.map +1 -1
  143. package/dist/summary/summaryManager.d.ts.map +1 -1
  144. package/dist/summary/summaryManager.js +12 -9
  145. package/dist/summary/summaryManager.js.map +1 -1
  146. package/lib/batchTracker.d.ts +1 -2
  147. package/lib/batchTracker.d.ts.map +1 -1
  148. package/lib/batchTracker.js +2 -2
  149. package/lib/batchTracker.js.map +1 -1
  150. package/lib/blobManager/blobManager.d.ts.map +1 -1
  151. package/lib/blobManager/blobManager.js +14 -11
  152. package/lib/blobManager/blobManager.js.map +1 -1
  153. package/lib/blobManager/blobManagerSnapSum.d.ts +1 -0
  154. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  155. package/lib/blobManager/blobManagerSnapSum.js +7 -5
  156. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  157. package/lib/channelCollection.d.ts.map +1 -1
  158. package/lib/channelCollection.js +66 -42
  159. package/lib/channelCollection.js.map +1 -1
  160. package/lib/connectionTelemetry.d.ts +2 -2
  161. package/lib/connectionTelemetry.d.ts.map +1 -1
  162. package/lib/connectionTelemetry.js +5 -5
  163. package/lib/connectionTelemetry.js.map +1 -1
  164. package/lib/containerRuntime.d.ts +14 -30
  165. package/lib/containerRuntime.d.ts.map +1 -1
  166. package/lib/containerRuntime.js +271 -196
  167. package/lib/containerRuntime.js.map +1 -1
  168. package/lib/dataStore.js +6 -3
  169. package/lib/dataStore.js.map +1 -1
  170. package/lib/dataStoreContext.d.ts.map +1 -1
  171. package/lib/dataStoreContext.js +16 -11
  172. package/lib/dataStoreContext.js.map +1 -1
  173. package/lib/dataStoreContexts.d.ts.map +1 -1
  174. package/lib/dataStoreContexts.js +1 -0
  175. package/lib/dataStoreContexts.js.map +1 -1
  176. package/lib/deltaScheduler.d.ts.map +1 -1
  177. package/lib/deltaScheduler.js +6 -6
  178. package/lib/deltaScheduler.js.map +1 -1
  179. package/lib/gc/garbageCollection.d.ts.map +1 -1
  180. package/lib/gc/garbageCollection.js +39 -15
  181. package/lib/gc/garbageCollection.js.map +1 -1
  182. package/lib/gc/gcConfigs.d.ts.map +1 -1
  183. package/lib/gc/gcConfigs.js +2 -0
  184. package/lib/gc/gcConfigs.js.map +1 -1
  185. package/lib/gc/gcDefinitions.d.ts +8 -0
  186. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  187. package/lib/gc/gcDefinitions.js +1 -0
  188. package/lib/gc/gcDefinitions.js.map +1 -1
  189. package/lib/gc/gcHelpers.d.ts.map +1 -1
  190. package/lib/gc/gcHelpers.js +8 -5
  191. package/lib/gc/gcHelpers.js.map +1 -1
  192. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  193. package/lib/gc/gcSummaryStateTracker.js +2 -1
  194. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  195. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  196. package/lib/gc/gcTelemetry.js +32 -16
  197. package/lib/gc/gcTelemetry.js.map +1 -1
  198. package/lib/inboundBatchAggregator.js +4 -4
  199. package/lib/inboundBatchAggregator.js.map +1 -1
  200. package/lib/layerCompatState.d.ts +19 -0
  201. package/lib/layerCompatState.d.ts.map +1 -0
  202. package/lib/layerCompatState.js +60 -0
  203. package/lib/layerCompatState.js.map +1 -0
  204. package/lib/messageTypes.d.ts.map +1 -1
  205. package/lib/messageTypes.js.map +1 -1
  206. package/lib/opLifecycle/duplicateBatchDetector.js +2 -2
  207. package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
  208. package/lib/opLifecycle/opCompressor.d.ts +3 -2
  209. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  210. package/lib/opLifecycle/opCompressor.js +13 -19
  211. package/lib/opLifecycle/opCompressor.js.map +1 -1
  212. package/lib/opLifecycle/opDecompressor.d.ts +3 -0
  213. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  214. package/lib/opLifecycle/opDecompressor.js +4 -1
  215. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  216. package/lib/opLifecycle/opGroupingManager.d.ts +1 -1
  217. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  218. package/lib/opLifecycle/opGroupingManager.js +5 -3
  219. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  220. package/lib/opLifecycle/opSplitter.d.ts +13 -10
  221. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  222. package/lib/opLifecycle/opSplitter.js +14 -11
  223. package/lib/opLifecycle/opSplitter.js.map +1 -1
  224. package/lib/opLifecycle/outbox.d.ts +3 -3
  225. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  226. package/lib/opLifecycle/outbox.js +11 -15
  227. package/lib/opLifecycle/outbox.js.map +1 -1
  228. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  229. package/lib/opLifecycle/remoteMessageProcessor.js +3 -1
  230. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  231. package/lib/packageVersion.d.ts +1 -1
  232. package/lib/packageVersion.js +1 -1
  233. package/lib/packageVersion.js.map +1 -1
  234. package/lib/pendingStateManager.d.ts +3 -4
  235. package/lib/pendingStateManager.d.ts.map +1 -1
  236. package/lib/pendingStateManager.js +12 -11
  237. package/lib/pendingStateManager.js.map +1 -1
  238. package/lib/summary/documentSchema.d.ts +7 -0
  239. package/lib/summary/documentSchema.d.ts.map +1 -1
  240. package/lib/summary/documentSchema.js +6 -4
  241. package/lib/summary/documentSchema.js.map +1 -1
  242. package/lib/summary/orderedClientElection.d.ts +1 -0
  243. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  244. package/lib/summary/orderedClientElection.js +13 -11
  245. package/lib/summary/orderedClientElection.js.map +1 -1
  246. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
  247. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  248. package/lib/summary/runWhileConnectedCoordinator.js +7 -2
  249. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  250. package/lib/summary/runningSummarizer.d.ts +2 -2
  251. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  252. package/lib/summary/runningSummarizer.js +38 -17
  253. package/lib/summary/runningSummarizer.js.map +1 -1
  254. package/lib/summary/summarizer.d.ts +1 -0
  255. package/lib/summary/summarizer.d.ts.map +1 -1
  256. package/lib/summary/summarizer.js +18 -9
  257. package/lib/summary/summarizer.js.map +1 -1
  258. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  259. package/lib/summary/summarizerClientElection.js +1 -0
  260. package/lib/summary/summarizerClientElection.js.map +1 -1
  261. package/lib/summary/summarizerHeuristics.js +1 -1
  262. package/lib/summary/summarizerHeuristics.js.map +1 -1
  263. package/lib/summary/summarizerNode/index.d.ts.map +1 -1
  264. package/lib/summary/summarizerNode/index.js.map +1 -1
  265. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  266. package/lib/summary/summarizerNode/summarizerNode.js +30 -31
  267. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  268. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
  269. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
  270. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  271. package/lib/summary/summarizerTypes.d.ts +7 -0
  272. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  273. package/lib/summary/summarizerTypes.js.map +1 -1
  274. package/lib/summary/summaryCollection.d.ts +3 -4
  275. package/lib/summary/summaryCollection.d.ts.map +1 -1
  276. package/lib/summary/summaryCollection.js +9 -6
  277. package/lib/summary/summaryCollection.js.map +1 -1
  278. package/lib/summary/summaryFormat.d.ts +4 -1
  279. package/lib/summary/summaryFormat.d.ts.map +1 -1
  280. package/lib/summary/summaryFormat.js +2 -2
  281. package/lib/summary/summaryFormat.js.map +1 -1
  282. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  283. package/lib/summary/summaryGenerator.js +19 -8
  284. package/lib/summary/summaryGenerator.js.map +1 -1
  285. package/lib/summary/summaryManager.d.ts.map +1 -1
  286. package/lib/summary/summaryManager.js +12 -9
  287. package/lib/summary/summaryManager.js.map +1 -1
  288. package/package.json +21 -43
  289. package/src/batchTracker.ts +3 -3
  290. package/src/blobManager/blobManager.ts +16 -14
  291. package/src/blobManager/blobManagerSnapSum.ts +8 -8
  292. package/src/channelCollection.ts +63 -44
  293. package/src/connectionTelemetry.ts +12 -6
  294. package/src/containerRuntime.ts +306 -235
  295. package/src/dataStore.ts +6 -3
  296. package/src/dataStoreContext.ts +16 -16
  297. package/src/dataStoreContexts.ts +1 -0
  298. package/src/deltaScheduler.ts +6 -6
  299. package/src/gc/garbageCollection.ts +47 -20
  300. package/src/gc/gcConfigs.ts +9 -1
  301. package/src/gc/gcDefinitions.ts +12 -0
  302. package/src/gc/gcHelpers.ts +9 -4
  303. package/src/gc/gcSummaryStateTracker.ts +3 -1
  304. package/src/gc/gcTelemetry.ts +26 -11
  305. package/src/inboundBatchAggregator.ts +4 -4
  306. package/src/layerCompatState.ts +75 -0
  307. package/src/messageTypes.ts +2 -0
  308. package/src/opLifecycle/README.md +43 -34
  309. package/src/opLifecycle/duplicateBatchDetector.ts +2 -2
  310. package/src/opLifecycle/opCompressor.ts +16 -23
  311. package/src/opLifecycle/opDecompressor.ts +4 -1
  312. package/src/opLifecycle/opGroupingManager.ts +5 -4
  313. package/src/opLifecycle/opSplitter.ts +14 -11
  314. package/src/opLifecycle/outbox.ts +13 -20
  315. package/src/opLifecycle/remoteMessageProcessor.ts +3 -1
  316. package/src/packageVersion.ts +1 -1
  317. package/src/pendingStateManager.ts +15 -10
  318. package/src/summary/documentSchema.ts +11 -4
  319. package/src/summary/orderedClientElection.ts +14 -11
  320. package/src/summary/runWhileConnectedCoordinator.ts +6 -0
  321. package/src/summary/runningSummarizer.ts +43 -19
  322. package/src/summary/summarizer.ts +24 -11
  323. package/src/summary/summarizerClientElection.ts +2 -0
  324. package/src/summary/summarizerHeuristics.ts +1 -1
  325. package/src/summary/summarizerNode/index.ts +1 -0
  326. package/src/summary/summarizerNode/summarizerNode.ts +32 -31
  327. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +4 -4
  328. package/src/summary/summarizerTypes.ts +7 -0
  329. package/src/summary/summaryCollection.ts +19 -8
  330. package/src/summary/summaryFormat.ts +10 -5
  331. package/src/summary/summaryGenerator.ts +25 -10
  332. package/src/summary/summaryManager.ts +14 -12
  333. package/container-runtime.test-files.tar +0 -0
@@ -18,6 +18,7 @@ const dataStore_js_1 = require("./dataStore.js");
18
18
  const dataStoreContext_js_1 = require("./dataStoreContext.js");
19
19
  const dataStoreContexts_js_1 = require("./dataStoreContexts.js");
20
20
  const dataStoreRegistry_js_1 = require("./dataStoreRegistry.js");
21
+ // eslint-disable-next-line import/no-deprecated
21
22
  const index_js_1 = require("./gc/index.js");
22
23
  const messageTypes_js_1 = require("./messageTypes.js");
23
24
  const storageServiceWithAttachBlobs_js_1 = require("./storageServiceWithAttachBlobs.js");
@@ -165,6 +166,7 @@ class ChannelCollection {
165
166
  this.pendingAttach = new Map();
166
167
  // 0.24 back-compat attachingBeforeSummary
167
168
  this.attachOpFiredForDataStore = new Set();
169
+ // eslint-disable-next-line unicorn/consistent-function-scoping -- Property is defined once; no need to extract inner lambda
168
170
  this.disposeOnce = new internal_1.Lazy(() => this.contexts.dispose());
169
171
  this.pendingAliasMap = new Map();
170
172
  /**
@@ -193,42 +195,42 @@ class ChannelCollection {
193
195
  unreferencedDataStoreCount++;
194
196
  }
195
197
  // If we have a detached container, then create local data store contexts.
196
- if (this.parentContext.attachState !== container_definitions_1.AttachState.Detached) {
197
- let snapshotForRemoteFluidDatastoreContext = value;
198
- if ((0, internal_3.isInstanceOfISnapshot)(baseSnapshot)) {
199
- snapshotForRemoteFluidDatastoreContext = {
200
- ...baseSnapshot,
201
- snapshotTree: value,
202
- };
198
+ if (this.parentContext.attachState === container_definitions_1.AttachState.Detached) {
199
+ if (typeof value !== "object") {
200
+ throw new internal_6.LoggingError("Snapshot should be there to load from!!");
203
201
  }
204
- dataStoreContext = new dataStoreContext_js_1.RemoteFluidDataStoreContext({
202
+ const snapshotTree = value;
203
+ dataStoreContext = new dataStoreContext_js_1.LocalFluidDataStoreContext({
205
204
  id: key,
206
- snapshot: snapshotForRemoteFluidDatastoreContext,
205
+ pkg: undefined,
207
206
  parentContext: this.wrapContextForInnerChannel(key),
208
207
  storage: this.parentContext.storage,
209
208
  scope: this.parentContext.scope,
210
209
  createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
211
210
  type: internal_4.CreateSummarizerNodeSource.FromSummary,
212
211
  }),
213
- loadingGroupId: value.groupId,
212
+ makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(key),
213
+ snapshotTree,
214
214
  });
215
215
  }
216
216
  else {
217
- if (typeof value !== "object") {
218
- throw new internal_6.LoggingError("Snapshot should be there to load from!!");
217
+ let snapshotForRemoteFluidDatastoreContext = value;
218
+ if ((0, internal_3.isInstanceOfISnapshot)(baseSnapshot)) {
219
+ snapshotForRemoteFluidDatastoreContext = {
220
+ ...baseSnapshot,
221
+ snapshotTree: value,
222
+ };
219
223
  }
220
- const snapshotTree = value;
221
- dataStoreContext = new dataStoreContext_js_1.LocalFluidDataStoreContext({
224
+ dataStoreContext = new dataStoreContext_js_1.RemoteFluidDataStoreContext({
222
225
  id: key,
223
- pkg: undefined,
226
+ snapshot: snapshotForRemoteFluidDatastoreContext,
224
227
  parentContext: this.wrapContextForInnerChannel(key),
225
228
  storage: this.parentContext.storage,
226
229
  scope: this.parentContext.scope,
227
230
  createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
228
231
  type: internal_4.CreateSummarizerNodeSource.FromSummary,
229
232
  }),
230
- makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(key),
231
- snapshotTree,
233
+ loadingGroupId: value.groupId,
232
234
  });
233
235
  }
234
236
  this.contexts.addBoundOrRemoted(dataStoreContext);
@@ -491,13 +493,16 @@ class ChannelCollection {
491
493
  reSubmit(type, content, localOpMetadata) {
492
494
  switch (type) {
493
495
  case messageTypes_js_1.ContainerMessageType.Attach:
494
- case messageTypes_js_1.ContainerMessageType.Alias:
496
+ case messageTypes_js_1.ContainerMessageType.Alias: {
495
497
  this.parentContext.submitMessage(type, content, localOpMetadata);
496
498
  return;
497
- case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp:
499
+ }
500
+ case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp: {
498
501
  return this.reSubmitChannelOp(type, content, localOpMetadata);
499
- default:
502
+ }
503
+ default: {
500
504
  (0, internal_1.assert)(false, 0x907 /* unknown op type */);
505
+ }
501
506
  }
502
507
  }
503
508
  reSubmitChannelOp(type, content, localOpMetadata) {
@@ -534,14 +539,18 @@ class ChannelCollection {
534
539
  async applyStashedOp(content) {
535
540
  const opContents = content;
536
541
  switch (opContents.type) {
537
- case messageTypes_js_1.ContainerMessageType.Attach:
542
+ case messageTypes_js_1.ContainerMessageType.Attach: {
538
543
  return this.applyStashedAttachOp(opContents.contents);
539
- case messageTypes_js_1.ContainerMessageType.Alias:
544
+ }
545
+ case messageTypes_js_1.ContainerMessageType.Alias: {
540
546
  return;
541
- case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp:
547
+ }
548
+ case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp: {
542
549
  return this.applyStashedChannelChannelOp(opContents.contents);
543
- default:
550
+ }
551
+ default: {
544
552
  (0, internal_1.assert)(false, 0x908 /* unknon type of op */);
553
+ }
545
554
  }
546
555
  }
547
556
  async applyStashedChannelChannelOp(envelope) {
@@ -589,7 +598,7 @@ class ChannelCollection {
589
598
  // if the client is not detached put in the pending attach list
590
599
  // so that on ack of the stashed op, the context is found.
591
600
  // detached client don't send ops, so should not expect and ack.
592
- this.pendingAttach.set(message.id, message);
601
+ this.pendingAttach.set(id, message);
593
602
  }
594
603
  }
595
604
  /**
@@ -598,17 +607,21 @@ class ChannelCollection {
598
607
  */
599
608
  processMessages(messageCollection) {
600
609
  switch (messageCollection.envelope.type) {
601
- case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp:
610
+ case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp: {
602
611
  this.processChannelMessages(messageCollection);
603
612
  break;
604
- case messageTypes_js_1.ContainerMessageType.Attach:
613
+ }
614
+ case messageTypes_js_1.ContainerMessageType.Attach: {
605
615
  this.processAttachMessages(messageCollection);
606
616
  break;
607
- case messageTypes_js_1.ContainerMessageType.Alias:
617
+ }
618
+ case messageTypes_js_1.ContainerMessageType.Alias: {
608
619
  this.processAliasMessages(messageCollection);
609
620
  break;
610
- default:
621
+ }
622
+ default: {
611
623
  (0, internal_1.assert)(false, 0x8e9 /* unreached */);
624
+ }
612
625
  }
613
626
  }
614
627
  /**
@@ -635,7 +648,7 @@ class ChannelCollection {
635
648
  * @param messageCollection - The collection of messages to process.
636
649
  */
637
650
  processChannelMessages(messageCollection) {
638
- const { messagesContent, local } = messageCollection;
651
+ const { envelope, messagesContent, local } = messageCollection;
639
652
  let currentMessageState;
640
653
  let currentMessagesContent = [];
641
654
  // Helper that sends the current bunch of messages to the data store. It validates that the data stores exists.
@@ -647,7 +660,7 @@ class ChannelCollection {
647
660
  const currentContext = this.contexts.get(currentMessageState.address);
648
661
  (0, internal_1.assert)(!!currentContext, 0xa66 /* Context not found */);
649
662
  currentContext.processMessages({
650
- envelope: { ...messageCollection.envelope, type: currentMessageState.type },
663
+ envelope: { ...envelope, type: currentMessageState.type },
651
664
  messagesContent: currentMessagesContent,
652
665
  local,
653
666
  });
@@ -669,10 +682,10 @@ class ChannelCollection {
669
682
  }
670
683
  if (context === undefined) {
671
684
  // Former assert 0x162
672
- throw internal_6.DataProcessingError.create("No context for op", "processFluidDataStoreOp", messageCollection.envelope, {
685
+ throw internal_6.DataProcessingError.create("No context for op", "processFluidDataStoreOp", envelope, {
673
686
  local,
674
687
  messageDetails: JSON.stringify({
675
- type: messageCollection.envelope.type,
688
+ type: envelope.type,
676
689
  contentType: typeof contents,
677
690
  }),
678
691
  ...(0, internal_6.tagCodeArtifacts)({ address }),
@@ -694,10 +707,10 @@ class ChannelCollection {
694
707
  this.gcNodeUpdated({
695
708
  node: { type: "DataStore", path: `/${address}` },
696
709
  reason: "Changed",
697
- timestampMs: messageCollection.envelope.timestamp,
710
+ timestampMs: envelope.timestamp,
698
711
  packagePath: context.isLoaded ? context.packagePath : undefined,
699
712
  });
700
- detectOutboundReferences(address, contextContents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath, messageCollection.envelope.timestamp));
713
+ detectOutboundReferences(address, contextContents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath, envelope.timestamp));
701
714
  }
702
715
  // Process the last bunch of messages, if any. Note that there may not be any messages in case all of them are
703
716
  // ignored because the data store is deleted.
@@ -708,6 +721,7 @@ class ChannelCollection {
708
721
  if (this.checkAndLogIfDeleted(id, this.contexts.get(id), "Requested", "getDataStore", requestHeaderData, originalRequest)) {
709
722
  // The requested data store has been deleted by gc. Create a 404 response exception.
710
723
  throw (0, internal_5.responseToException)((0, internal_5.createResponseError)(404, "DataStore was deleted", originalRequest, {
724
+ // eslint-disable-next-line import/no-deprecated
711
725
  [containerRuntime_js_1.DeletedResponseHeaderKey]: true,
712
726
  }), originalRequest);
713
727
  }
@@ -749,7 +763,7 @@ class ChannelCollection {
749
763
  if (!this.isDataStoreDeleted(dataStoreNodePath)) {
750
764
  return false;
751
765
  }
752
- const idToLog = originalRequest !== undefined ? (0, index_js_1.urlToGCNodePath)(originalRequest.url) : dataStoreNodePath;
766
+ const idToLog = originalRequest === undefined ? dataStoreNodePath : (0, index_js_1.urlToGCNodePath)(originalRequest.url);
753
767
  // Log the package details asynchronously since getInitialSnapshotDetails is async
754
768
  const recentlyDeletedContext = this.contexts.getRecentlyDeletedContext(id);
755
769
  if (recentlyDeletedContext !== undefined) {
@@ -872,7 +886,7 @@ class ChannelCollection {
872
886
  builder.prefixAndAddNodes(contextId, contextGCData.gcNodes);
873
887
  });
874
888
  // Get the outbound routes (aliased data stores) and add a GC node for this channel.
875
- builder.addNode("/", Array.from(this.aliasedDataStores));
889
+ builder.addNode("/", [...this.aliasedDataStores]);
876
890
  return builder.getGCData();
877
891
  }
878
892
  /**
@@ -1037,7 +1051,7 @@ class ChannelCollection {
1037
1051
  }
1038
1052
  this.deleteChild(dataStoreId);
1039
1053
  }
1040
- return Array.from(sweepReadyDataStoreRoutes);
1054
+ return [...sweepReadyDataStoreRoutes];
1041
1055
  }
1042
1056
  /**
1043
1057
  * This is called to update objects whose routes are tombstones.
@@ -1086,12 +1100,14 @@ class ChannelCollection {
1086
1100
  // If the node belongs to a data store, return its package path. For DDSes, we return the package path of the
1087
1101
  // data store that contains it.
1088
1102
  const context = this.contexts.get(nodePath.split("/")[1]);
1089
- return (await context?.getInitialSnapshotDetails())?.pkg;
1103
+ const initialSnapshotDetails = await context?.getInitialSnapshotDetails();
1104
+ return initialSnapshotDetails?.pkg;
1090
1105
  }
1091
1106
  /**
1092
1107
  * Called by GC to determine if a node is for a data store or for an object within a data store (for e.g. DDS).
1093
1108
  * @returns the GC node type if the node belongs to a data store or object within data store, undefined otherwise.
1094
1109
  */
1110
+ // eslint-disable-next-line import/no-deprecated
1095
1111
  getGCNodeType(nodePath) {
1096
1112
  const pathParts = nodePath.split("/");
1097
1113
  if (!this.contexts.has(pathParts[1])) {
@@ -1100,8 +1116,10 @@ class ChannelCollection {
1100
1116
  // Data stores paths are of the format "/dataStoreId".
1101
1117
  // Sub data store paths are of the format "/dataStoreId/subPath/...".
1102
1118
  if (pathParts.length === 2) {
1119
+ // eslint-disable-next-line import/no-deprecated
1103
1120
  return index_js_1.GCNodeType.DataStore;
1104
1121
  }
1122
+ // eslint-disable-next-line import/no-deprecated
1105
1123
  return index_js_1.GCNodeType.SubDataStore;
1106
1124
  }
1107
1125
  internalId(maybeAlias) {
@@ -1150,7 +1168,9 @@ class ChannelCollection {
1150
1168
  }
1151
1169
  }
1152
1170
  exports.ChannelCollection = ChannelCollection;
1153
- function getSummaryForDatastores(snapshot, metadata) {
1171
+ function getSummaryForDatastores(snapshot,
1172
+ // eslint-disable-next-line import/no-deprecated
1173
+ metadata) {
1154
1174
  if (!snapshot) {
1155
1175
  return undefined;
1156
1176
  }
@@ -1204,7 +1224,9 @@ function detectOutboundReferences(address, contents, addedOutboundReference) {
1204
1224
  // GC node paths are all absolute paths, hence the "" prefix.
1205
1225
  // e.g. this will yield "/dataStoreId/ddsId"
1206
1226
  const fromPath = ["", address, ddsAddress].join("/");
1207
- outboundPaths.forEach((toPath) => addedOutboundReference(fromPath, toPath));
1227
+ for (const toPath of outboundPaths) {
1228
+ addedOutboundReference(fromPath, toPath);
1229
+ }
1208
1230
  }
1209
1231
  exports.detectOutboundReferences = detectOutboundReferences;
1210
1232
  /**