@fluidframework/container-runtime 2.0.0-dev-rc.3.0.0.250606 → 2.0.0-dev-rc.3.0.0.253463

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 (486) hide show
  1. package/api-report/container-runtime.api.md +34 -33
  2. package/dist/batchTracker.d.ts.map +1 -1
  3. package/dist/batchTracker.js +4 -4
  4. package/dist/batchTracker.js.map +1 -1
  5. package/dist/blobManager.d.ts +31 -23
  6. package/dist/blobManager.d.ts.map +1 -1
  7. package/dist/blobManager.js +81 -99
  8. package/dist/blobManager.js.map +1 -1
  9. package/dist/channelCollection.d.ts +3 -2
  10. package/dist/channelCollection.d.ts.map +1 -1
  11. package/dist/channelCollection.js +71 -71
  12. package/dist/channelCollection.js.map +1 -1
  13. package/dist/connectionTelemetry.d.ts +1 -1
  14. package/dist/connectionTelemetry.d.ts.map +1 -1
  15. package/dist/connectionTelemetry.js +16 -16
  16. package/dist/connectionTelemetry.js.map +1 -1
  17. package/dist/container-runtime-alpha.d.ts +64 -36
  18. package/dist/container-runtime-beta.d.ts +28 -28
  19. package/dist/container-runtime-public.d.ts +28 -28
  20. package/dist/container-runtime-untrimmed.d.ts +66 -38
  21. package/dist/containerHandleContext.d.ts.map +1 -1
  22. package/dist/containerHandleContext.js +2 -2
  23. package/dist/containerHandleContext.js.map +1 -1
  24. package/dist/containerRuntime.d.ts +12 -8
  25. package/dist/containerRuntime.d.ts.map +1 -1
  26. package/dist/containerRuntime.js +177 -150
  27. package/dist/containerRuntime.js.map +1 -1
  28. package/dist/dataStore.d.ts +1 -1
  29. package/dist/dataStore.d.ts.map +1 -1
  30. package/dist/dataStore.js +7 -7
  31. package/dist/dataStore.js.map +1 -1
  32. package/dist/dataStoreContext.d.ts +8 -8
  33. package/dist/dataStoreContext.d.ts.map +1 -1
  34. package/dist/dataStoreContext.js +60 -60
  35. package/dist/dataStoreContext.js.map +1 -1
  36. package/dist/dataStoreContexts.d.ts.map +1 -1
  37. package/dist/dataStoreContexts.js +11 -11
  38. package/dist/dataStoreContexts.js.map +1 -1
  39. package/dist/dataStoreRegistry.d.ts +1 -1
  40. package/dist/dataStoreRegistry.d.ts.map +1 -1
  41. package/dist/dataStoreRegistry.js +2 -2
  42. package/dist/dataStoreRegistry.js.map +1 -1
  43. package/dist/deltaManagerSummarizerProxy.d.ts +1 -1
  44. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  45. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  46. package/dist/deltaScheduler.d.ts.map +1 -1
  47. package/dist/deltaScheduler.js +6 -6
  48. package/dist/deltaScheduler.js.map +1 -1
  49. package/dist/error.d.ts +1 -1
  50. package/dist/error.d.ts.map +1 -1
  51. package/dist/error.js +4 -4
  52. package/dist/error.js.map +1 -1
  53. package/dist/gc/garbageCollection.d.ts +2 -1
  54. package/dist/gc/garbageCollection.d.ts.map +1 -1
  55. package/dist/gc/garbageCollection.js +20 -20
  56. package/dist/gc/garbageCollection.js.map +1 -1
  57. package/dist/gc/gcConfigs.d.ts +1 -1
  58. package/dist/gc/gcConfigs.d.ts.map +1 -1
  59. package/dist/gc/gcConfigs.js +4 -5
  60. package/dist/gc/gcConfigs.js.map +1 -1
  61. package/dist/gc/gcDefinitions.d.ts +3 -2
  62. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  63. package/dist/gc/gcDefinitions.js.map +1 -1
  64. package/dist/gc/gcHelpers.d.ts +5 -1
  65. package/dist/gc/gcHelpers.d.ts.map +1 -1
  66. package/dist/gc/gcHelpers.js +21 -12
  67. package/dist/gc/gcHelpers.js.map +1 -1
  68. package/dist/gc/gcSummaryStateTracker.d.ts +1 -1
  69. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  70. package/dist/gc/gcSummaryStateTracker.js +11 -11
  71. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  72. package/dist/gc/gcTelemetry.d.ts +2 -1
  73. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  74. package/dist/gc/gcTelemetry.js +11 -9
  75. package/dist/gc/gcTelemetry.js.map +1 -1
  76. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  77. package/dist/gc/gcUnreferencedStateTracker.js +6 -6
  78. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  79. package/dist/gc/index.d.ts +1 -1
  80. package/dist/gc/index.d.ts.map +1 -1
  81. package/dist/gc/index.js +2 -1
  82. package/dist/gc/index.js.map +1 -1
  83. package/dist/messageTypes.d.ts +2 -2
  84. package/dist/messageTypes.d.ts.map +1 -1
  85. package/dist/messageTypes.js.map +1 -1
  86. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  87. package/dist/opLifecycle/batchManager.js.map +1 -1
  88. package/dist/opLifecycle/definitions.d.ts +1 -1
  89. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  90. package/dist/opLifecycle/definitions.js.map +1 -1
  91. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  92. package/dist/opLifecycle/opCompressor.js +5 -5
  93. package/dist/opLifecycle/opCompressor.js.map +1 -1
  94. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  95. package/dist/opLifecycle/opDecompressor.js +12 -12
  96. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  97. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  98. package/dist/opLifecycle/opGroupingManager.js +7 -7
  99. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  100. package/dist/opLifecycle/opSplitter.d.ts +1 -1
  101. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  102. package/dist/opLifecycle/opSplitter.js +17 -17
  103. package/dist/opLifecycle/opSplitter.js.map +1 -1
  104. package/dist/opLifecycle/outbox.d.ts +2 -1
  105. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  106. package/dist/opLifecycle/outbox.js +13 -13
  107. package/dist/opLifecycle/outbox.js.map +1 -1
  108. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  109. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  110. package/dist/packageVersion.d.ts +1 -1
  111. package/dist/packageVersion.js +1 -1
  112. package/dist/packageVersion.js.map +1 -1
  113. package/dist/pendingStateManager.d.ts.map +1 -1
  114. package/dist/pendingStateManager.js +18 -18
  115. package/dist/pendingStateManager.js.map +1 -1
  116. package/dist/scheduleManager.d.ts.map +1 -1
  117. package/dist/scheduleManager.js +24 -24
  118. package/dist/scheduleManager.js.map +1 -1
  119. package/dist/storageServiceWithAttachBlobs.d.ts +2 -2
  120. package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -1
  121. package/dist/storageServiceWithAttachBlobs.js +2 -2
  122. package/dist/storageServiceWithAttachBlobs.js.map +1 -1
  123. package/dist/summary/documentSchema.d.ts +37 -6
  124. package/dist/summary/documentSchema.d.ts.map +1 -1
  125. package/dist/summary/documentSchema.js +58 -21
  126. package/dist/summary/documentSchema.js.map +1 -1
  127. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  128. package/dist/summary/orderedClientElection.js +7 -7
  129. package/dist/summary/orderedClientElection.js.map +1 -1
  130. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  131. package/dist/summary/runWhileConnectedCoordinator.js +3 -3
  132. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  133. package/dist/summary/runningSummarizer.d.ts +1 -1
  134. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  135. package/dist/summary/runningSummarizer.js +16 -16
  136. package/dist/summary/runningSummarizer.js.map +1 -1
  137. package/dist/summary/summarizer.d.ts +2 -1
  138. package/dist/summary/summarizer.d.ts.map +1 -1
  139. package/dist/summary/summarizer.js +12 -12
  140. package/dist/summary/summarizer.js.map +1 -1
  141. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  142. package/dist/summary/summarizerClientElection.js.map +1 -1
  143. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  144. package/dist/summary/summarizerHeuristics.js +2 -2
  145. package/dist/summary/summarizerHeuristics.js.map +1 -1
  146. package/dist/summary/summarizerNode/summarizerNode.d.ts +2 -1
  147. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  148. package/dist/summary/summarizerNode/summarizerNode.js +28 -28
  149. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  150. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  151. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  152. package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -3
  153. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  154. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
  155. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  156. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +14 -14
  157. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  158. package/dist/summary/summarizerTypes.d.ts +4 -2
  159. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  160. package/dist/summary/summarizerTypes.js.map +1 -1
  161. package/dist/summary/summaryCollection.js +7 -7
  162. package/dist/summary/summaryCollection.js.map +1 -1
  163. package/dist/summary/summaryFormat.d.ts +1 -1
  164. package/dist/summary/summaryFormat.d.ts.map +1 -1
  165. package/dist/summary/summaryFormat.js +8 -8
  166. package/dist/summary/summaryFormat.js.map +1 -1
  167. package/dist/summary/summaryGenerator.d.ts +3 -2
  168. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  169. package/dist/summary/summaryGenerator.js +16 -16
  170. package/dist/summary/summaryGenerator.js.map +1 -1
  171. package/dist/summary/summaryManager.d.ts.map +1 -1
  172. package/dist/summary/summaryManager.js +15 -14
  173. package/dist/summary/summaryManager.js.map +1 -1
  174. package/lib/batchTracker.d.ts.map +1 -1
  175. package/lib/batchTracker.js +2 -2
  176. package/lib/batchTracker.js.map +1 -1
  177. package/lib/blobManager.d.ts +31 -23
  178. package/lib/blobManager.d.ts.map +1 -1
  179. package/lib/blobManager.js +46 -64
  180. package/lib/blobManager.js.map +1 -1
  181. package/lib/channelCollection.d.ts +3 -2
  182. package/lib/channelCollection.d.ts.map +1 -1
  183. package/lib/channelCollection.js +6 -6
  184. package/lib/channelCollection.js.map +1 -1
  185. package/lib/connectionTelemetry.d.ts +1 -1
  186. package/lib/connectionTelemetry.d.ts.map +1 -1
  187. package/lib/connectionTelemetry.js +2 -2
  188. package/lib/connectionTelemetry.js.map +1 -1
  189. package/lib/container-runtime-alpha.d.ts +64 -36
  190. package/lib/container-runtime-beta.d.ts +28 -28
  191. package/lib/container-runtime-public.d.ts +28 -28
  192. package/lib/container-runtime-untrimmed.d.ts +66 -38
  193. package/lib/containerHandleContext.d.ts.map +1 -1
  194. package/lib/containerHandleContext.js +1 -1
  195. package/lib/containerHandleContext.js.map +1 -1
  196. package/lib/containerRuntime.d.ts +12 -8
  197. package/lib/containerRuntime.d.ts.map +1 -1
  198. package/lib/containerRuntime.js +56 -27
  199. package/lib/containerRuntime.js.map +1 -1
  200. package/lib/dataStore.d.ts +1 -1
  201. package/lib/dataStore.d.ts.map +1 -1
  202. package/lib/dataStore.js +2 -2
  203. package/lib/dataStore.js.map +1 -1
  204. package/lib/dataStoreContext.d.ts +8 -8
  205. package/lib/dataStoreContext.d.ts.map +1 -1
  206. package/lib/dataStoreContext.js +6 -6
  207. package/lib/dataStoreContext.js.map +1 -1
  208. package/lib/dataStoreContexts.d.ts.map +1 -1
  209. package/lib/dataStoreContexts.js +2 -2
  210. package/lib/dataStoreContexts.js.map +1 -1
  211. package/lib/dataStoreRegistry.d.ts +1 -1
  212. package/lib/dataStoreRegistry.d.ts.map +1 -1
  213. package/lib/dataStoreRegistry.js +1 -1
  214. package/lib/dataStoreRegistry.js.map +1 -1
  215. package/lib/deltaManagerSummarizerProxy.d.ts +1 -1
  216. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -1
  217. package/lib/deltaManagerSummarizerProxy.js.map +1 -1
  218. package/lib/deltaScheduler.d.ts.map +1 -1
  219. package/lib/deltaScheduler.js +1 -1
  220. package/lib/deltaScheduler.js.map +1 -1
  221. package/lib/error.d.ts +1 -1
  222. package/lib/error.d.ts.map +1 -1
  223. package/lib/error.js +2 -2
  224. package/lib/error.js.map +1 -1
  225. package/lib/gc/garbageCollection.d.ts +2 -1
  226. package/lib/gc/garbageCollection.d.ts.map +1 -1
  227. package/lib/gc/garbageCollection.js +4 -4
  228. package/lib/gc/garbageCollection.js.map +1 -1
  229. package/lib/gc/gcConfigs.d.ts +1 -1
  230. package/lib/gc/gcConfigs.d.ts.map +1 -1
  231. package/lib/gc/gcConfigs.js +4 -5
  232. package/lib/gc/gcConfigs.js.map +1 -1
  233. package/lib/gc/gcDefinitions.d.ts +3 -2
  234. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  235. package/lib/gc/gcDefinitions.js.map +1 -1
  236. package/lib/gc/gcHelpers.d.ts +5 -1
  237. package/lib/gc/gcHelpers.d.ts.map +1 -1
  238. package/lib/gc/gcHelpers.js +10 -2
  239. package/lib/gc/gcHelpers.js.map +1 -1
  240. package/lib/gc/gcSummaryStateTracker.d.ts +1 -1
  241. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  242. package/lib/gc/gcSummaryStateTracker.js +2 -2
  243. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  244. package/lib/gc/gcTelemetry.d.ts +2 -1
  245. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  246. package/lib/gc/gcTelemetry.js +3 -1
  247. package/lib/gc/gcTelemetry.js.map +1 -1
  248. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  249. package/lib/gc/gcUnreferencedStateTracker.js +2 -2
  250. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  251. package/lib/gc/index.d.ts +1 -1
  252. package/lib/gc/index.d.ts.map +1 -1
  253. package/lib/gc/index.js +1 -1
  254. package/lib/gc/index.js.map +1 -1
  255. package/lib/messageTypes.d.ts +2 -2
  256. package/lib/messageTypes.d.ts.map +1 -1
  257. package/lib/messageTypes.js.map +1 -1
  258. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  259. package/lib/opLifecycle/batchManager.js.map +1 -1
  260. package/lib/opLifecycle/definitions.d.ts +1 -1
  261. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  262. package/lib/opLifecycle/definitions.js.map +1 -1
  263. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  264. package/lib/opLifecycle/opCompressor.js +2 -2
  265. package/lib/opLifecycle/opCompressor.js.map +1 -1
  266. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  267. package/lib/opLifecycle/opDecompressor.js +2 -2
  268. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  269. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  270. package/lib/opLifecycle/opGroupingManager.js +2 -2
  271. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  272. package/lib/opLifecycle/opSplitter.d.ts +1 -1
  273. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  274. package/lib/opLifecycle/opSplitter.js +2 -2
  275. package/lib/opLifecycle/opSplitter.js.map +1 -1
  276. package/lib/opLifecycle/outbox.d.ts +2 -1
  277. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  278. package/lib/opLifecycle/outbox.js +2 -2
  279. package/lib/opLifecycle/outbox.js.map +1 -1
  280. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  281. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  282. package/lib/packageVersion.d.ts +1 -1
  283. package/lib/packageVersion.js +1 -1
  284. package/lib/packageVersion.js.map +1 -1
  285. package/lib/pendingStateManager.d.ts.map +1 -1
  286. package/lib/pendingStateManager.js +2 -2
  287. package/lib/pendingStateManager.js.map +1 -1
  288. package/lib/scheduleManager.d.ts.map +1 -1
  289. package/lib/scheduleManager.js +3 -3
  290. package/lib/scheduleManager.js.map +1 -1
  291. package/lib/storageServiceWithAttachBlobs.d.ts +2 -2
  292. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -1
  293. package/lib/storageServiceWithAttachBlobs.js +1 -1
  294. package/lib/storageServiceWithAttachBlobs.js.map +1 -1
  295. package/lib/summary/documentSchema.d.ts +37 -6
  296. package/lib/summary/documentSchema.d.ts.map +1 -1
  297. package/lib/summary/documentSchema.js +48 -11
  298. package/lib/summary/documentSchema.js.map +1 -1
  299. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  300. package/lib/summary/orderedClientElection.js +2 -2
  301. package/lib/summary/orderedClientElection.js.map +1 -1
  302. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  303. package/lib/summary/runWhileConnectedCoordinator.js +1 -1
  304. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  305. package/lib/summary/runningSummarizer.d.ts +1 -1
  306. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  307. package/lib/summary/runningSummarizer.js +2 -2
  308. package/lib/summary/runningSummarizer.js.map +1 -1
  309. package/lib/summary/summarizer.d.ts +2 -1
  310. package/lib/summary/summarizer.d.ts.map +1 -1
  311. package/lib/summary/summarizer.js +2 -2
  312. package/lib/summary/summarizer.js.map +1 -1
  313. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  314. package/lib/summary/summarizerClientElection.js.map +1 -1
  315. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  316. package/lib/summary/summarizerHeuristics.js +1 -1
  317. package/lib/summary/summarizerHeuristics.js.map +1 -1
  318. package/lib/summary/summarizerNode/summarizerNode.d.ts +2 -1
  319. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  320. package/lib/summary/summarizerNode/summarizerNode.js +4 -4
  321. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  322. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  323. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  324. package/lib/summary/summarizerNode/summarizerNodeUtils.js +1 -1
  325. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  326. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
  327. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  328. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
  329. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  330. package/lib/summary/summarizerTypes.d.ts +4 -2
  331. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  332. package/lib/summary/summarizerTypes.js.map +1 -1
  333. package/lib/summary/summaryCollection.js +1 -1
  334. package/lib/summary/summaryCollection.js.map +1 -1
  335. package/lib/summary/summaryFormat.d.ts +1 -1
  336. package/lib/summary/summaryFormat.d.ts.map +1 -1
  337. package/lib/summary/summaryFormat.js +3 -3
  338. package/lib/summary/summaryFormat.js.map +1 -1
  339. package/lib/summary/summaryGenerator.d.ts +3 -2
  340. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  341. package/lib/summary/summaryGenerator.js +3 -3
  342. package/lib/summary/summaryGenerator.js.map +1 -1
  343. package/lib/summary/summaryManager.d.ts.map +1 -1
  344. package/lib/summary/summaryManager.js +9 -8
  345. package/lib/summary/summaryManager.js.map +1 -1
  346. package/lib/tsdoc-metadata.json +11 -0
  347. package/package.json +18 -30
  348. package/src/batchTracker.ts +3 -2
  349. package/src/blobManager.ts +87 -56
  350. package/src/channelCollection.ts +14 -11
  351. package/src/connectionTelemetry.ts +4 -4
  352. package/src/containerHandleContext.ts +2 -1
  353. package/src/containerRuntime.ts +90 -58
  354. package/src/dataStore.ts +5 -3
  355. package/src/dataStoreContext.ts +16 -13
  356. package/src/dataStoreContexts.ts +4 -2
  357. package/src/dataStoreRegistry.ts +2 -2
  358. package/src/deltaManagerSummarizerProxy.ts +1 -1
  359. package/src/deltaScheduler.ts +2 -1
  360. package/src/error.ts +2 -2
  361. package/src/gc/garbageCollection.ts +8 -7
  362. package/src/gc/gcConfigs.ts +5 -8
  363. package/src/gc/gcDefinitions.ts +4 -4
  364. package/src/gc/gcHelpers.ts +21 -4
  365. package/src/gc/gcSummaryStateTracker.ts +5 -3
  366. package/src/gc/gcTelemetry.ts +7 -1
  367. package/src/gc/gcUnreferencedStateTracker.ts +3 -2
  368. package/src/gc/index.ts +1 -0
  369. package/src/messageTypes.ts +3 -2
  370. package/src/opLifecycle/batchManager.ts +1 -0
  371. package/src/opLifecycle/definitions.ts +2 -1
  372. package/src/opLifecycle/opCompressor.ts +4 -2
  373. package/src/opLifecycle/opDecompressor.ts +3 -2
  374. package/src/opLifecycle/opGroupingManager.ts +3 -2
  375. package/src/opLifecycle/opSplitter.ts +5 -3
  376. package/src/opLifecycle/outbox.ts +6 -3
  377. package/src/opLifecycle/remoteMessageProcessor.ts +2 -0
  378. package/src/packageVersion.ts +1 -1
  379. package/src/pendingStateManager.ts +4 -4
  380. package/src/scheduleManager.ts +5 -4
  381. package/src/storageServiceWithAttachBlobs.ts +2 -2
  382. package/src/summary/documentSchema.ts +71 -12
  383. package/src/summary/orderedClientElection.ts +4 -6
  384. package/src/summary/runWhileConnectedCoordinator.ts +2 -1
  385. package/src/summary/runningSummarizer.ts +4 -2
  386. package/src/summary/summarizer.ts +5 -3
  387. package/src/summary/summarizerClientElection.ts +1 -0
  388. package/src/summary/summarizerHeuristics.ts +3 -1
  389. package/src/summary/summarizerNode/summarizerNode.ts +10 -8
  390. package/src/summary/summarizerNode/summarizerNodeUtils.ts +3 -2
  391. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +14 -6
  392. package/src/summary/summarizerTypes.ts +6 -2
  393. package/src/summary/summaryCollection.ts +1 -1
  394. package/src/summary/summaryFormat.ts +7 -8
  395. package/src/summary/summaryGenerator.ts +5 -8
  396. package/src/summary/summaryManager.ts +14 -11
  397. package/lib/test/batchTracker.spec.js +0 -88
  398. package/lib/test/batchTracker.spec.js.map +0 -1
  399. package/lib/test/blobManager.spec.js +0 -835
  400. package/lib/test/blobManager.spec.js.map +0 -1
  401. package/lib/test/channelCollection.spec.js +0 -138
  402. package/lib/test/channelCollection.spec.js.map +0 -1
  403. package/lib/test/containerRuntime.spec.js +0 -1750
  404. package/lib/test/containerRuntime.spec.js.map +0 -1
  405. package/lib/test/dataStoreContext.spec.js +0 -771
  406. package/lib/test/dataStoreContext.spec.js.map +0 -1
  407. package/lib/test/dataStoreCreation.spec.js +0 -303
  408. package/lib/test/dataStoreCreation.spec.js.map +0 -1
  409. package/lib/test/dataStoreRegistry.spec.js +0 -26
  410. package/lib/test/dataStoreRegistry.spec.js.map +0 -1
  411. package/lib/test/documentSchema.spec.js +0 -282
  412. package/lib/test/documentSchema.spec.js.map +0 -1
  413. package/lib/test/fuzz/fuzzUtils.js +0 -70
  414. package/lib/test/fuzz/fuzzUtils.js.map +0 -1
  415. package/lib/test/fuzz/summarizer.fuzz.spec.js +0 -33
  416. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +0 -1
  417. package/lib/test/fuzz/summarizerFuzzMocks.js +0 -180
  418. package/lib/test/fuzz/summarizerFuzzMocks.js.map +0 -1
  419. package/lib/test/fuzz/summarizerFuzzSuite.js +0 -109
  420. package/lib/test/fuzz/summarizerFuzzSuite.js.map +0 -1
  421. package/lib/test/gc/garbageCollection.spec.js +0 -1464
  422. package/lib/test/gc/garbageCollection.spec.js.map +0 -1
  423. package/lib/test/gc/gcConfigs.spec.js +0 -689
  424. package/lib/test/gc/gcConfigs.spec.js.map +0 -1
  425. package/lib/test/gc/gcHelpers.spec.js +0 -110
  426. package/lib/test/gc/gcHelpers.spec.js.map +0 -1
  427. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +0 -68
  428. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +0 -1
  429. package/lib/test/gc/gcStats.spec.js +0 -390
  430. package/lib/test/gc/gcStats.spec.js.map +0 -1
  431. package/lib/test/gc/gcSummaryStateTracker.spec.js +0 -228
  432. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +0 -1
  433. package/lib/test/gc/gcTelemetry.spec.js +0 -530
  434. package/lib/test/gc/gcTelemetry.spec.js.map +0 -1
  435. package/lib/test/gc/gcUnitTestHelpers.js +0 -29
  436. package/lib/test/gc/gcUnitTestHelpers.js.map +0 -1
  437. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +0 -192
  438. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +0 -1
  439. package/lib/test/getPendingBlobs.spec.js +0 -193
  440. package/lib/test/getPendingBlobs.spec.js.map +0 -1
  441. package/lib/test/hardwareStats.spec.js +0 -93
  442. package/lib/test/hardwareStats.spec.js.map +0 -1
  443. package/lib/test/index.js +0 -6
  444. package/lib/test/index.js.map +0 -1
  445. package/lib/test/opLifecycle/OpGroupingManager.spec.js +0 -202
  446. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +0 -1
  447. package/lib/test/opLifecycle/batchManager.spec.js +0 -189
  448. package/lib/test/opLifecycle/batchManager.spec.js.map +0 -1
  449. package/lib/test/opLifecycle/opCompressor.spec.js +0 -73
  450. package/lib/test/opLifecycle/opCompressor.spec.js.map +0 -1
  451. package/lib/test/opLifecycle/opDecompressor.spec.js +0 -223
  452. package/lib/test/opLifecycle/opDecompressor.spec.js.map +0 -1
  453. package/lib/test/opLifecycle/opSplitter.spec.js +0 -287
  454. package/lib/test/opLifecycle/opSplitter.spec.js.map +0 -1
  455. package/lib/test/opLifecycle/outbox.spec.js +0 -783
  456. package/lib/test/opLifecycle/outbox.spec.js.map +0 -1
  457. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +0 -220
  458. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +0 -1
  459. package/lib/test/pendingStateManager.spec.js +0 -329
  460. package/lib/test/pendingStateManager.spec.js.map +0 -1
  461. package/lib/test/scheduleManager.spec.js +0 -270
  462. package/lib/test/scheduleManager.spec.js.map +0 -1
  463. package/lib/test/summarizerNode.spec.js +0 -326
  464. package/lib/test/summarizerNode.spec.js.map +0 -1
  465. package/lib/test/summarizerNodeWithGc.spec.js +0 -318
  466. package/lib/test/summarizerNodeWithGc.spec.js.map +0 -1
  467. package/lib/test/summary/orderedClientElection.spec.js +0 -535
  468. package/lib/test/summary/orderedClientElection.spec.js.map +0 -1
  469. package/lib/test/summary/runningSummarizer.spec.js +0 -1349
  470. package/lib/test/summary/runningSummarizer.spec.js.map +0 -1
  471. package/lib/test/summary/summarizer.spec.js +0 -29
  472. package/lib/test/summary/summarizer.spec.js.map +0 -1
  473. package/lib/test/summary/summarizerClientElection.spec.js +0 -436
  474. package/lib/test/summary/summarizerClientElection.spec.js.map +0 -1
  475. package/lib/test/summary/summarizerHeuristics.spec.js +0 -289
  476. package/lib/test/summary/summarizerHeuristics.spec.js.map +0 -1
  477. package/lib/test/summary/summaryCollection.spec.js +0 -200
  478. package/lib/test/summary/summaryCollection.spec.js.map +0 -1
  479. package/lib/test/summary/summaryManager.spec.js +0 -430
  480. package/lib/test/summary/summaryManager.spec.js.map +0 -1
  481. package/lib/test/summary/testQuorumClients.js +0 -34
  482. package/lib/test/summary/testQuorumClients.js.map +0 -1
  483. package/lib/test/throttler.spec.js +0 -175
  484. package/lib/test/throttler.spec.js.map +0 -1
  485. package/lib/test/types/validateContainerRuntimePrevious.generated.js +0 -182
  486. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +0 -1
@@ -7,19 +7,21 @@ import { Trace, TypedEventEmitter } from "@fluid-internal/client-utils";
7
7
  import {
8
8
  AttachState,
9
9
  IAudience,
10
- IBatchMessage,
11
- IContainerContext,
12
10
  ICriticalContainerError,
13
11
  IDeltaManager,
12
+ } from "@fluidframework/container-definitions";
13
+ import {
14
+ IBatchMessage,
15
+ IContainerContext,
14
16
  IGetPendingLocalStateProps,
15
17
  ILoader,
16
18
  IRuntime,
17
19
  LoaderHeader,
18
- } from "@fluidframework/container-definitions";
20
+ } from "@fluidframework/container-definitions/internal";
19
21
  import {
20
22
  IContainerRuntime,
21
23
  IContainerRuntimeEvents,
22
- } from "@fluidframework/container-runtime-definitions";
24
+ } from "@fluidframework/container-runtime-definitions/internal";
23
25
  import {
24
26
  FluidObject,
25
27
  IFluidHandle,
@@ -27,24 +29,30 @@ import {
27
29
  IProvideFluidHandleContext,
28
30
  IRequest,
29
31
  IResponse,
30
- ISignalEnvelope,
31
32
  ITelemetryBaseLogger,
32
33
  } from "@fluidframework/core-interfaces";
33
- import { assert, Deferred, LazyPromise, PromiseCache, delay } from "@fluidframework/core-utils";
34
+ import { ISignalEnvelope } from "@fluidframework/core-interfaces/internal";
35
+ import {
36
+ assert,
37
+ Deferred,
38
+ LazyPromise,
39
+ PromiseCache,
40
+ delay,
41
+ } from "@fluidframework/core-utils/internal";
34
42
  import {
35
43
  DriverHeader,
36
44
  FetchSource,
37
45
  IDocumentStorageService,
38
46
  type ISnapshot,
39
- } from "@fluidframework/driver-definitions";
40
- import { readAndParse } from "@fluidframework/driver-utils";
47
+ } from "@fluidframework/driver-definitions/internal";
48
+ import { readAndParse } from "@fluidframework/driver-utils/internal";
49
+ import type { IIdCompressor } from "@fluidframework/id-compressor";
41
50
  import type {
42
- IIdCompressor,
43
51
  IIdCompressorCore,
44
52
  IdCreationRange,
45
53
  SerializedIdCompressorWithNoSession,
46
54
  SerializedIdCompressorWithOngoingSession,
47
- } from "@fluidframework/id-compressor";
55
+ } from "@fluidframework/id-compressor/internal";
48
56
  import {
49
57
  IClientDetails,
50
58
  IDocumentMessage,
@@ -57,6 +65,12 @@ import {
57
65
  MessageType,
58
66
  SummaryType,
59
67
  } from "@fluidframework/protocol-definitions";
68
+ import {
69
+ IGarbageCollectionData,
70
+ IInboundSignalMessage,
71
+ ISummaryTreeWithStats,
72
+ ITelemetryContext,
73
+ } from "@fluidframework/runtime-definitions";
60
74
  import {
61
75
  CreateChildSummarizerNodeParam,
62
76
  FlushMode,
@@ -65,17 +79,13 @@ import {
65
79
  IEnvelope,
66
80
  IFluidDataStoreContextDetached,
67
81
  IFluidDataStoreRegistry,
68
- IGarbageCollectionData,
69
- IInboundSignalMessage,
70
82
  ISummarizeInternalResult,
71
- ISummaryTreeWithStats,
72
- ITelemetryContext,
73
83
  InboundAttachMessage,
74
84
  NamedFluidDataStoreRegistryEntries,
75
85
  SummarizeInternalFn,
76
86
  channelsTreeName,
77
87
  gcTreeKey,
78
- } from "@fluidframework/runtime-definitions";
88
+ } from "@fluidframework/runtime-definitions/internal";
79
89
  import {
80
90
  GCDataBuilder,
81
91
  ReadAndParseBlob,
@@ -88,17 +98,20 @@ import {
88
98
  exceptionToResponse,
89
99
  responseToException,
90
100
  seqFromTree,
91
- } from "@fluidframework/runtime-utils";
101
+ } from "@fluidframework/runtime-utils/internal";
102
+ import {
103
+ type ITelemetryGenericEventExt,
104
+ ITelemetryLoggerExt,
105
+ } from "@fluidframework/telemetry-utils";
92
106
  import {
93
107
  DataCorruptionError,
94
108
  DataProcessingError,
95
109
  GenericError,
96
110
  IEventSampler,
97
- type ITelemetryGenericEventExt,
98
- ITelemetryLoggerExt,
99
111
  LoggingError,
100
112
  MonitoringContext,
101
113
  PerformanceEvent,
114
+ // eslint-disable-next-line import/no-deprecated
102
115
  TaggedLoggerAdapter,
103
116
  UsageError,
104
117
  createChildLogger,
@@ -107,8 +120,9 @@ import {
107
120
  loggerToMonitoringContext,
108
121
  raiseConnectedEvent,
109
122
  wrapError,
110
- } from "@fluidframework/telemetry-utils";
123
+ } from "@fluidframework/telemetry-utils/internal";
111
124
  import { v4 as uuid } from "uuid";
125
+
112
126
  import { BindBatchTracker } from "./batchTracker.js";
113
127
  import { BlobManager, IBlobManagerLoadInfo, IPendingBlobs } from "./blobManager.js";
114
128
  import { ChannelCollection, getSummaryForDatastores, wrapContext } from "./channelCollection.js";
@@ -163,7 +177,6 @@ import {
163
177
  IConnectableRuntime,
164
178
  IContainerRuntimeMetadata,
165
179
  ICreateContainerMetadata,
166
- IDocumentSchemaChangeMessage,
167
180
  type IDocumentSchemaCurrent,
168
181
  IEnqueueSummarizeOptions,
169
182
  IGenerateSummaryTreeResult,
@@ -770,6 +783,7 @@ export class ContainerRuntime
770
783
  const backCompatContext: IContainerContext | OldContainerContextWithLogger = context;
771
784
  const passLogger =
772
785
  backCompatContext.taggedLogger ??
786
+ // eslint-disable-next-line import/no-deprecated
773
787
  new TaggedLoggerAdapter((backCompatContext as OldContainerContextWithLogger).logger);
774
788
  const logger = createChildLogger({
775
789
  logger: passLogger,
@@ -900,7 +914,7 @@ export class ContainerRuntime
900
914
 
901
915
  const createIdCompressorFn = async () => {
902
916
  const { createIdCompressor, deserializeIdCompressor, createSessionId } = await import(
903
- "@fluidframework/id-compressor"
917
+ "@fluidframework/id-compressor/internal"
904
918
  );
905
919
 
906
920
  /**
@@ -956,6 +970,7 @@ export class ContainerRuntime
956
970
  compressionLz4,
957
971
  idCompressorMode,
958
972
  opGroupingEnabled,
973
+ disallowedVersions: [],
959
974
  },
960
975
  (schema) => {
961
976
  runtime.onSchemaChange(schema);
@@ -1001,6 +1016,17 @@ export class ContainerRuntime
1001
1016
  undefined, // summaryConfiguration
1002
1017
  );
1003
1018
 
1019
+ runtime.blobManager.trackPendingStashedUploads().then(
1020
+ () => {
1021
+ // make sure we didn't reconnect before the promise resolved
1022
+ if (runtime.delayConnectClientId !== undefined && !runtime.disposed) {
1023
+ runtime.delayConnectClientId = undefined;
1024
+ runtime.setConnectionStateCore(true, runtime.delayConnectClientId);
1025
+ }
1026
+ },
1027
+ (error) => runtime.closeFn(error),
1028
+ );
1029
+
1004
1030
  // Apply stashed ops with a reference sequence number equal to the sequence number of the snapshot,
1005
1031
  // or zero. This must be done before Container replays saved ops.
1006
1032
  await runtime.pendingStateManager.applyStashedOpsAt(runtimeSequenceNumber ?? 0);
@@ -1581,7 +1607,7 @@ export class ContainerRuntime
1581
1607
  // Due to a mismatch between different layers in terms of
1582
1608
  // what is the interface of passing signals, we need the
1583
1609
  // downstream stores to wrap the signal.
1584
- parentContext.submitSignal = (type: string, content: any, targetClientId?: string) => {
1610
+ parentContext.submitSignal = (type: string, content: unknown, targetClientId?: string) => {
1585
1611
  const envelope1 = content as IEnvelope;
1586
1612
  const envelope2 = this.createNewSignalEnvelope(
1587
1613
  envelope1.address,
@@ -1616,11 +1642,11 @@ export class ContainerRuntime
1616
1642
  async (runtime: ChannelCollection) => provideEntryPoint,
1617
1643
  );
1618
1644
 
1619
- this.blobManager = new BlobManager(
1620
- this.handleContext,
1621
- blobManagerSnapshot,
1622
- () => this.storage,
1623
- (localId: string, blobId?: string) => {
1645
+ this.blobManager = new BlobManager({
1646
+ routeContext: this.handleContext,
1647
+ snapshot: blobManagerSnapshot,
1648
+ getStorage: () => this.storage,
1649
+ sendBlobAttachOp: (localId: string, blobId?: string) => {
1624
1650
  if (!this.disposed) {
1625
1651
  this.submit(
1626
1652
  { type: ContainerMessageType.BlobAttach, contents: undefined },
@@ -1632,12 +1658,13 @@ export class ContainerRuntime
1632
1658
  );
1633
1659
  }
1634
1660
  },
1635
- (blobPath: string) => this.garbageCollector.nodeUpdated(blobPath, "Loaded"),
1636
- (blobPath: string) => this.garbageCollector.isNodeDeleted(blobPath),
1637
- this,
1638
- pendingRuntimeState?.pendingAttachmentBlobs,
1639
- (error?: ICriticalContainerError) => this.closeFn(error),
1640
- );
1661
+ blobRequested: (blobPath: string) =>
1662
+ this.garbageCollector.nodeUpdated(blobPath, "Loaded"),
1663
+ isBlobDeleted: (blobPath: string) => this.garbageCollector.isNodeDeleted(blobPath),
1664
+ runtime: this,
1665
+ stashedBlobs: pendingRuntimeState?.pendingAttachmentBlobs,
1666
+ closeContainer: (error?: ICriticalContainerError) => this.closeFn(error),
1667
+ });
1641
1668
 
1642
1669
  this.scheduleManager = new ScheduleManager(
1643
1670
  this.innerDeltaManager,
@@ -2314,6 +2341,15 @@ export class ContainerRuntime
2314
2341
  case ContainerMessageType.Alias:
2315
2342
  return this.channelCollection.applyStashedOp(opContents);
2316
2343
  case ContainerMessageType.IdAllocation:
2344
+ // IDs allocation ops in stashed state are ignored because the tip state of the compressor
2345
+ // is serialized into the pending state. This is done because generation of new IDs during
2346
+ // stashed op application (or, later, resubmit) must generate new IDs and if the compressor
2347
+ // was loaded from a state serialized at the same time as the summary tree in the stashed state
2348
+ // then it would generate IDs that collide with any in later stashed ops.
2349
+ // In the future, IdCompressor could be extended to have an "applyStashedOp" or similar method
2350
+ // and the runtime could filter out all ID allocation ops from the stashed state and apply them
2351
+ // before applying the rest of the stashed ops. This would accomplish the same thing but with
2352
+ // better performance in future incremental stashed state creation.
2317
2353
  assert(
2318
2354
  this.idCompressorMode !== undefined,
2319
2355
  0x8f1 /* ID compressor should be in use */,
@@ -2365,6 +2401,7 @@ export class ContainerRuntime
2365
2401
  this._loadIdCompressor = this.createIdCompressor()
2366
2402
  .then((compressor) => {
2367
2403
  this._idCompressor = compressor;
2404
+ // Finalize any ranges we received while the compressor was turned off.
2368
2405
  for (const range of this.pendingIdCompressorOps) {
2369
2406
  this._idCompressor.finalizeCreationRange(range);
2370
2407
  }
@@ -2400,23 +2437,13 @@ export class ContainerRuntime
2400
2437
  // propagation of the "connected" event until we have uploaded them to
2401
2438
  // ensure we don't submit ops referencing a blob that has not been uploaded
2402
2439
  const connecting = connected && !this._connected;
2403
- if (connecting && this.blobManager.hasPendingStashedBlobs()) {
2440
+ if (connecting && this.blobManager.hasPendingStashedUploads()) {
2404
2441
  assert(
2405
2442
  !this.delayConnectClientId,
2406
2443
  0x791 /* Connect event delay must be canceled before subsequent connect event */,
2407
2444
  );
2408
2445
  assert(!!clientId, 0x792 /* Must have clientId when connecting */);
2409
2446
  this.delayConnectClientId = clientId;
2410
- this.blobManager.processStashedChanges().then(
2411
- () => {
2412
- // make sure we didn't reconnect before the promise resolved
2413
- if (this.delayConnectClientId === clientId && !this.disposed) {
2414
- this.delayConnectClientId = undefined;
2415
- this.setConnectionStateCore(connected, clientId);
2416
- }
2417
- },
2418
- (error) => this.closeFn(error),
2419
- );
2420
2447
  return;
2421
2448
  }
2422
2449
 
@@ -2612,6 +2639,8 @@ export class ContainerRuntime
2612
2639
  )
2613
2640
  ) {
2614
2641
  const range = messageWithContext.message.contents;
2642
+ // Some other client turned on the id compressor. If we have not turned it on,
2643
+ // put it in a pending queue and delay finalization.
2615
2644
  if (this._idCompressor === undefined) {
2616
2645
  this.pendingIdCompressorOps.push(range);
2617
2646
  } else {
@@ -2991,10 +3020,10 @@ export class ContainerRuntime
2991
3020
  /**
2992
3021
  * Submits the signal to be sent to other clients.
2993
3022
  * @param type - Type of the signal.
2994
- * @param content - Content of the signal.
3023
+ * @param content - Content of the signal. Should be a JSON serializable object or primitive.
2995
3024
  * @param targetClientId - When specified, the signal is only sent to the provided client id.
2996
3025
  */
2997
- public submitSignal(type: string, content: any, targetClientId?: string) {
3026
+ public submitSignal(type: string, content: unknown, targetClientId?: string) {
2998
3027
  this.verifyNotClosed();
2999
3028
  const envelope = this.createNewSignalEnvelope(undefined /* address */, type, content);
3000
3029
  return this.submitSignalFn(envelope, targetClientId);
@@ -3039,6 +3068,10 @@ export class ContainerRuntime
3039
3068
  // We can finalize any allocated IDs since we're the only client
3040
3069
  const idRange = this._idCompressor?.takeNextCreationRange();
3041
3070
  if (idRange !== undefined) {
3071
+ assert(
3072
+ idRange.ids === undefined || idRange.ids.firstGenCount === 1,
3073
+ "No other ranges should be taken while container is detached.",
3074
+ );
3042
3075
  this._idCompressor?.finalizeCreationRange(idRange);
3043
3076
  }
3044
3077
 
@@ -3866,18 +3899,17 @@ export class ContainerRuntime
3866
3899
  // Allow document schema controller to send a message if it needs to propose change in document schema.
3867
3900
  // If it needs to send a message, it will call provided callback with payload of such message and rely
3868
3901
  // on this callback to do actual sending.
3869
- this.documentsSchemaController.onMessageSent(
3870
- (contents: IDocumentSchemaChangeMessage) => {
3871
- const msg: ContainerRuntimeDocumentSchemaMessage = {
3872
- type: ContainerMessageType.DocumentSchemaChange,
3873
- contents,
3874
- };
3875
- this.outbox.submit({
3876
- contents: JSON.stringify(msg),
3877
- referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
3878
- });
3879
- },
3880
- );
3902
+ const contents = this.documentsSchemaController.maybeSendSchemaMessage();
3903
+ if (contents) {
3904
+ const msg: ContainerRuntimeDocumentSchemaMessage = {
3905
+ type: ContainerMessageType.DocumentSchemaChange,
3906
+ contents,
3907
+ };
3908
+ this.outbox.submit({
3909
+ contents: JSON.stringify(msg),
3910
+ referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
3911
+ });
3912
+ }
3881
3913
 
3882
3914
  // If this is attach message for new data store, and we are in a batch, send this op out of order
3883
3915
  // Is it safe:
package/src/dataStore.ts CHANGED
@@ -5,13 +5,15 @@
5
5
 
6
6
  import { AttachState } from "@fluidframework/container-definitions";
7
7
  import { FluidObject, IFluidHandle } from "@fluidframework/core-interfaces";
8
- import { assert, unreachableCase } from "@fluidframework/core-utils";
8
+ import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
9
9
  import {
10
10
  AliasResult,
11
11
  IDataStore,
12
12
  IFluidDataStoreChannel,
13
- } from "@fluidframework/runtime-definitions";
14
- import { ITelemetryLoggerExt, TelemetryDataTag, UsageError } from "@fluidframework/telemetry-utils";
13
+ } from "@fluidframework/runtime-definitions/internal";
14
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
15
+ import { TelemetryDataTag, UsageError } from "@fluidframework/telemetry-utils/internal";
16
+
15
17
  import { ChannelCollection } from "./channelCollection.js";
16
18
  import { ContainerMessageType } from "./messageTypes.js";
17
19
 
@@ -12,11 +12,11 @@ import {
12
12
  IRequest,
13
13
  IResponse,
14
14
  ITelemetryBaseProperties,
15
+ IEvent,
15
16
  } from "@fluidframework/core-interfaces";
16
- import { IEvent } from "@fluidframework/core-interfaces";
17
- import { assert, LazyPromise, unreachableCase } from "@fluidframework/core-utils";
18
- import { IDocumentStorageService } from "@fluidframework/driver-definitions";
19
- import { BlobTreeEntry, readAndParse } from "@fluidframework/driver-utils";
17
+ import { assert, LazyPromise, unreachableCase } from "@fluidframework/core-utils/internal";
18
+ import { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
19
+ import { BlobTreeEntry, readAndParse } from "@fluidframework/driver-utils/internal";
20
20
  import type { IIdCompressor } from "@fluidframework/id-compressor";
21
21
  import {
22
22
  IClientDetails,
@@ -26,6 +26,12 @@ import {
26
26
  ISnapshotTree,
27
27
  ITreeEntry,
28
28
  } from "@fluidframework/protocol-definitions";
29
+ import {
30
+ IGarbageCollectionData,
31
+ IInboundSignalMessage,
32
+ ISummaryTreeWithStats,
33
+ ITelemetryContext,
34
+ } from "@fluidframework/runtime-definitions";
29
35
  import {
30
36
  CreateChildSummarizerNodeFn,
31
37
  CreateChildSummarizerNodeParam,
@@ -37,20 +43,16 @@ import {
37
43
  IFluidDataStoreContextDetached,
38
44
  IFluidDataStoreRegistry,
39
45
  IFluidParentContext,
40
- IGarbageCollectionData,
41
46
  IGarbageCollectionDetailsBase,
42
- IInboundSignalMessage,
43
47
  IProvideFluidDataStoreFactory,
44
48
  ISummarizeInternalResult,
45
49
  ISummarizeResult,
46
50
  ISummarizerNodeWithGC,
47
- ISummaryTreeWithStats,
48
- ITelemetryContext,
49
51
  SummarizeInternalFn,
50
52
  channelsTreeName,
51
53
  gcDataBlobKey,
52
- } from "@fluidframework/runtime-definitions";
53
- import { addBlobToSummary } from "@fluidframework/runtime-utils";
54
+ } from "@fluidframework/runtime-definitions/internal";
55
+ import { addBlobToSummary } from "@fluidframework/runtime-utils/internal";
54
56
  import {
55
57
  DataCorruptionError,
56
58
  DataProcessingError,
@@ -61,7 +63,8 @@ import {
61
63
  extractSafePropertiesFromMessage,
62
64
  generateStack,
63
65
  tagCodeArtifacts,
64
- } from "@fluidframework/telemetry-utils";
66
+ } from "@fluidframework/telemetry-utils/internal";
67
+
65
68
  import { detectOutboundRoutesViaDDSKey, sendGCUnexpectedUsageEvent } from "./gc/index.js";
66
69
  import {
67
70
  ReadFluidDataStoreAttributes,
@@ -799,10 +802,10 @@ export abstract class FluidDataStoreContext
799
802
  /**
800
803
  * Submits the signal to be sent to other clients.
801
804
  * @param type - Type of the signal.
802
- * @param content - Content of the signal.
805
+ * @param content - Content of the signal. Should be a JSON serializable object or primitive.
803
806
  * @param targetClientId - When specified, the signal is only sent to the provided client id.
804
807
  */
805
- public submitSignal(type: string, content: any, targetClientId?: string) {
808
+ public submitSignal(type: string, content: unknown, targetClientId?: string) {
806
809
  this.verifyNotClosed("submitSignal");
807
810
 
808
811
  assert(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
@@ -4,8 +4,10 @@
4
4
  */
5
5
 
6
6
  import { IDisposable, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
7
- import { assert, Deferred, Lazy } from "@fluidframework/core-utils";
8
- import { ITelemetryLoggerExt, createChildLogger } from "@fluidframework/telemetry-utils";
7
+ import { assert, Deferred, Lazy } from "@fluidframework/core-utils/internal";
8
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
9
+ import { createChildLogger } from "@fluidframework/telemetry-utils/internal";
10
+
9
11
  import { FluidDataStoreContext, LocalFluidDataStoreContext } from "./dataStoreContext.js";
10
12
 
11
13
  /** @internal */
@@ -7,8 +7,8 @@ import {
7
7
  FluidDataStoreRegistryEntry,
8
8
  IFluidDataStoreRegistry,
9
9
  NamedFluidDataStoreRegistryEntries,
10
- } from "@fluidframework/runtime-definitions";
11
- import { UsageError } from "@fluidframework/telemetry-utils";
10
+ } from "@fluidframework/runtime-definitions/internal";
11
+ import { UsageError } from "@fluidframework/telemetry-utils/internal";
12
12
 
13
13
  /**
14
14
  * @internal
@@ -139,7 +139,7 @@ export class DeltaManagerSummarizerProxy
139
139
  this.deltaManager.off("readonly", this.onReadonly);
140
140
  }
141
141
 
142
- public submitSignal(content: any, targetClientId?: string): void {
142
+ public submitSignal(content: string, targetClientId?: string): void {
143
143
  return this.deltaManager.submitSignal(content, targetClientId);
144
144
  }
145
145
 
@@ -6,7 +6,8 @@
6
6
  import { performance } from "@fluid-internal/client-utils";
7
7
  import { IDeltaManager } from "@fluidframework/container-definitions";
8
8
  import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
9
- import { ITelemetryLoggerExt, formatTick } from "@fluidframework/telemetry-utils";
9
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
10
+ import { formatTick } from "@fluidframework/telemetry-utils/internal";
10
11
 
11
12
  /**
12
13
  * DeltaScheduler is responsible for the scheduling of inbound delta queue in cases where there
package/src/error.ts CHANGED
@@ -3,8 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ContainerErrorTypes } from "@fluidframework/container-definitions";
7
- import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
6
+ import { ContainerErrorTypes } from "@fluidframework/container-definitions/internal";
7
+ import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils/internal";
8
8
 
9
9
  /**
10
10
  * Error indicating that a client's session has reached its time limit and is closed.
@@ -4,24 +4,24 @@
4
4
  */
5
5
 
6
6
  import { IRequest } from "@fluidframework/core-interfaces";
7
- import { assert, LazyPromise, Timer } from "@fluidframework/core-utils";
7
+ import { assert, LazyPromise, Timer } from "@fluidframework/core-utils/internal";
8
+ import { IGarbageCollectionData, ITelemetryContext } from "@fluidframework/runtime-definitions";
8
9
  import {
9
- IGarbageCollectionData,
10
10
  IGarbageCollectionDetailsBase,
11
11
  ISummarizeResult,
12
- ITelemetryContext,
13
12
  gcTreeKey,
14
- } from "@fluidframework/runtime-definitions";
15
- import { createResponseError, responseToException } from "@fluidframework/runtime-utils";
13
+ } from "@fluidframework/runtime-definitions/internal";
14
+ import { createResponseError, responseToException } from "@fluidframework/runtime-utils/internal";
15
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
16
16
  import {
17
17
  DataProcessingError,
18
- ITelemetryLoggerExt,
19
18
  MonitoringContext,
20
19
  PerformanceEvent,
21
20
  createChildLogger,
22
21
  createChildMonitoringContext,
23
22
  tagCodeArtifacts,
24
- } from "@fluidframework/telemetry-utils";
23
+ } from "@fluidframework/telemetry-utils/internal";
24
+
25
25
  import { BlobManager } from "../blobManager.js";
26
26
  import {
27
27
  InactiveResponseHeaderKey,
@@ -31,6 +31,7 @@ import {
31
31
  import { ClientSessionExpiredError } from "../error.js";
32
32
  import { ContainerMessageType, ContainerRuntimeGCMessage } from "../messageTypes.js";
33
33
  import { IRefreshSummaryResult } from "../summary/index.js";
34
+
34
35
  import { generateGCConfigs } from "./gcConfigs.js";
35
36
  import {
36
37
  GCNodeType,
@@ -7,8 +7,10 @@ import {
7
7
  MonitoringContext,
8
8
  UsageError,
9
9
  validatePrecondition,
10
- } from "@fluidframework/telemetry-utils";
10
+ } from "@fluidframework/telemetry-utils/internal";
11
+
11
12
  import { IContainerRuntimeMetadata } from "../summary/index.js";
13
+
12
14
  import {
13
15
  GCFeatureMatrix,
14
16
  GCVersion,
@@ -24,18 +26,15 @@ import {
24
26
  gcDisableThrowOnTombstoneLoadOptionName,
25
27
  gcGenerationOptionName,
26
28
  gcTestModeKey,
27
- gcVersionUpgradeToV4Key,
28
29
  maxSnapshotCacheExpiryMs,
29
- nextGCVersion,
30
30
  oneDayMs,
31
31
  runGCKey,
32
32
  runSessionExpiryKey,
33
33
  runSweepKey,
34
- stableGCVersion,
35
34
  throwOnTombstoneLoadOverrideKey,
36
35
  throwOnTombstoneUsageKey,
37
36
  } from "./gcDefinitions.js";
38
- import { getGCVersion, shouldAllowGcSweep } from "./gcHelpers.js";
37
+ import { getGCVersion, getGCVersionInEffect, shouldAllowGcSweep } from "./gcHelpers.js";
39
38
 
40
39
  /**
41
40
  * Generates configurations for the Garbage Collector that it uses to determine what to run and how.
@@ -113,9 +112,7 @@ export function generateGCConfigs(
113
112
  createParams.gcOptions[gcGenerationOptionName] /* currentGeneration */,
114
113
  );
115
114
 
116
- // If version upgrade is not enabled, fall back to the stable GC version.
117
- const gcVersionInEffect =
118
- mc.config.getBoolean(gcVersionUpgradeToV4Key) === true ? nextGCVersion : stableGCVersion;
115
+ const gcVersionInEffect = getGCVersionInEffect(mc.config);
119
116
 
120
117
  // The GC version is up-to-date if the GC version in effect is at least equal to the GC version in base snapshot.
121
118
  // If it is not up-to-date, there is a newer version of GC out there which is more reliable than this. So, GC
@@ -6,14 +6,14 @@
6
6
  import { ICriticalContainerError } from "@fluidframework/container-definitions";
7
7
  import { IRequest } from "@fluidframework/core-interfaces";
8
8
  import { ISnapshotTree } from "@fluidframework/protocol-definitions";
9
+ import { IGarbageCollectionData, ITelemetryContext } from "@fluidframework/runtime-definitions";
9
10
  import {
10
- IGarbageCollectionData,
11
11
  IGarbageCollectionDetailsBase,
12
12
  ISummarizeResult,
13
- ITelemetryContext,
14
- } from "@fluidframework/runtime-definitions";
15
- import { ReadAndParseBlob } from "@fluidframework/runtime-utils";
13
+ } from "@fluidframework/runtime-definitions/internal";
14
+ import { ReadAndParseBlob } from "@fluidframework/runtime-utils/internal";
16
15
  import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
16
+
17
17
  import { RuntimeHeaderData } from "../containerRuntime.js";
18
18
  import { ContainerRuntimeGCMessage } from "../messageTypes.js";
19
19
  import {
@@ -3,16 +3,25 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { assert } from "@fluidframework/core-utils";
6
+ import { assert } from "@fluidframework/core-utils/internal";
7
7
  import { ISnapshotTree } from "@fluidframework/protocol-definitions";
8
+ import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
8
9
  import {
9
- IGarbageCollectionData,
10
10
  IGarbageCollectionDetailsBase,
11
11
  gcBlobPrefix,
12
12
  gcDeletedBlobKey,
13
13
  gcTombstoneBlobKey,
14
- } from "@fluidframework/runtime-definitions";
15
- import { GCFeatureMatrix, GCVersion, IGCMetadata } from "./gcDefinitions.js";
14
+ } from "@fluidframework/runtime-definitions/internal";
15
+ import type { IConfigProvider } from "@fluidframework/telemetry-utils/internal";
16
+
17
+ import {
18
+ GCFeatureMatrix,
19
+ GCVersion,
20
+ IGCMetadata,
21
+ gcVersionUpgradeToV4Key,
22
+ nextGCVersion,
23
+ stableGCVersion,
24
+ } from "./gcDefinitions.js";
16
25
  import {
17
26
  IGarbageCollectionNodeData,
18
27
  IGarbageCollectionSnapshotData,
@@ -27,6 +36,14 @@ export function getGCVersion(metadata?: IGCMetadata): GCVersion {
27
36
  return metadata.gcFeature ?? 0;
28
37
  }
29
38
 
39
+ /** Indicates what GC version is in effect for new GC data being written in this session */
40
+ export function getGCVersionInEffect(configProvider: IConfigProvider): number {
41
+ // If version upgrade is not enabled, fall back to the stable GC version.
42
+ return configProvider.getBoolean(gcVersionUpgradeToV4Key) === true
43
+ ? nextGCVersion
44
+ : stableGCVersion;
45
+ }
46
+
30
47
  /**
31
48
  * Indicates whether Sweep is allowed for this document based on the persisted GC Feature Matrix and current gcGeneration.
32
49
  * This applies to the entire Sweep Phase the same - both Tombstone Enforcement (i.e. should loading a Tombstone fail?) and Deletion.
@@ -4,16 +4,18 @@
4
4
  */
5
5
 
6
6
  import { SummaryType } from "@fluidframework/protocol-definitions";
7
+ import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
7
8
  import {
8
9
  ISummarizeResult,
9
- ISummaryTreeWithStats,
10
10
  gcBlobPrefix,
11
11
  gcDeletedBlobKey,
12
12
  gcTombstoneBlobKey,
13
13
  gcTreeKey,
14
- } from "@fluidframework/runtime-definitions";
15
- import { SummaryTreeBuilder, mergeStats } from "@fluidframework/runtime-utils";
14
+ } from "@fluidframework/runtime-definitions/internal";
15
+ import { SummaryTreeBuilder, mergeStats } from "@fluidframework/runtime-utils/internal";
16
+
16
17
  import { IRefreshSummaryResult } from "../summary/index.js";
18
+
17
19
  import { GCVersion, IGCStats, IGarbageCollectorConfigs } from "./gcDefinitions.js";
18
20
  import { generateSortedGCState } from "./gcHelpers.js";
19
21
  import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions.js";