@fluidframework/container-runtime 2.0.0-rc.2.0.1 → 2.0.0-rc.3.0.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 (554) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/api-report/container-runtime.api.md +471 -52
  3. package/dist/batchTracker.d.ts +1 -1
  4. package/dist/batchTracker.d.ts.map +1 -1
  5. package/dist/batchTracker.js +4 -4
  6. package/dist/batchTracker.js.map +1 -1
  7. package/dist/blobManager.d.ts +33 -30
  8. package/dist/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager.js +82 -107
  10. package/dist/blobManager.js.map +1 -1
  11. package/dist/channelCollection.d.ts +27 -22
  12. package/dist/channelCollection.d.ts.map +1 -1
  13. package/dist/channelCollection.js +189 -165
  14. package/dist/channelCollection.js.map +1 -1
  15. package/dist/connectionTelemetry.d.ts +3 -3
  16. package/dist/connectionTelemetry.d.ts.map +1 -1
  17. package/dist/connectionTelemetry.js +17 -17
  18. package/dist/connectionTelemetry.js.map +1 -1
  19. package/dist/containerHandleContext.d.ts.map +1 -1
  20. package/dist/containerHandleContext.js +2 -2
  21. package/dist/containerHandleContext.js.map +1 -1
  22. package/dist/containerRuntime.d.ts +42 -39
  23. package/dist/containerRuntime.d.ts.map +1 -1
  24. package/dist/containerRuntime.js +425 -292
  25. package/dist/containerRuntime.js.map +1 -1
  26. package/dist/dataStore.d.ts +1 -1
  27. package/dist/dataStore.d.ts.map +1 -1
  28. package/dist/dataStore.js +8 -8
  29. package/dist/dataStore.js.map +1 -1
  30. package/dist/dataStoreContext.d.ts +58 -19
  31. package/dist/dataStoreContext.d.ts.map +1 -1
  32. package/dist/dataStoreContext.js +171 -114
  33. package/dist/dataStoreContext.js.map +1 -1
  34. package/dist/dataStoreContexts.d.ts +1 -0
  35. package/dist/dataStoreContexts.d.ts.map +1 -1
  36. package/dist/dataStoreContexts.js +12 -11
  37. package/dist/dataStoreContexts.js.map +1 -1
  38. package/dist/dataStoreRegistry.d.ts +5 -1
  39. package/dist/dataStoreRegistry.d.ts.map +1 -1
  40. package/dist/dataStoreRegistry.js +4 -4
  41. package/dist/dataStoreRegistry.js.map +1 -1
  42. package/dist/deltaManagerSummarizerProxy.d.ts +1 -1
  43. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  44. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  45. package/dist/deltaScheduler.d.ts +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 +3 -2
  54. package/dist/gc/garbageCollection.d.ts.map +1 -1
  55. package/dist/gc/garbageCollection.js +23 -23
  56. package/dist/gc/garbageCollection.js.map +1 -1
  57. package/dist/gc/gcConfigs.d.ts +2 -2
  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 +4 -5
  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 +2 -2
  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/index.d.ts +5 -2
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +12 -2
  86. package/dist/index.js.map +1 -1
  87. package/dist/legacy.d.ts +91 -0
  88. package/dist/messageTypes.d.ts +11 -5
  89. package/dist/messageTypes.d.ts.map +1 -1
  90. package/dist/messageTypes.js +4 -0
  91. package/dist/messageTypes.js.map +1 -1
  92. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  93. package/dist/opLifecycle/batchManager.js.map +1 -1
  94. package/dist/opLifecycle/definitions.d.ts +2 -20
  95. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  96. package/dist/opLifecycle/definitions.js.map +1 -1
  97. package/dist/opLifecycle/index.d.ts +3 -3
  98. package/dist/opLifecycle/index.d.ts.map +1 -1
  99. package/dist/opLifecycle/index.js +3 -1
  100. package/dist/opLifecycle/index.js.map +1 -1
  101. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  102. package/dist/opLifecycle/opCompressor.js +5 -6
  103. package/dist/opLifecycle/opCompressor.js.map +1 -1
  104. package/dist/opLifecycle/opDecompressor.d.ts +15 -4
  105. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  106. package/dist/opLifecycle/opDecompressor.js +62 -63
  107. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  108. package/dist/opLifecycle/opGroupingManager.d.ts +2 -1
  109. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  110. package/dist/opLifecycle/opGroupingManager.js +14 -16
  111. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  112. package/dist/opLifecycle/opSplitter.d.ts +12 -4
  113. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  114. package/dist/opLifecycle/opSplitter.js +63 -53
  115. package/dist/opLifecycle/opSplitter.js.map +1 -1
  116. package/dist/opLifecycle/outbox.d.ts +2 -1
  117. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  118. package/dist/opLifecycle/outbox.js +30 -29
  119. package/dist/opLifecycle/outbox.js.map +1 -1
  120. package/dist/opLifecycle/remoteMessageProcessor.d.ts +8 -0
  121. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  122. package/dist/opLifecycle/remoteMessageProcessor.js +36 -32
  123. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  124. package/dist/packageVersion.d.ts +1 -1
  125. package/dist/packageVersion.js +1 -1
  126. package/dist/packageVersion.js.map +1 -1
  127. package/dist/pendingStateManager.d.ts +1 -1
  128. package/dist/pendingStateManager.d.ts.map +1 -1
  129. package/dist/pendingStateManager.js +18 -18
  130. package/dist/pendingStateManager.js.map +1 -1
  131. package/dist/public.d.ts +12 -0
  132. package/dist/scheduleManager.d.ts +1 -1
  133. package/dist/scheduleManager.d.ts.map +1 -1
  134. package/dist/scheduleManager.js +28 -24
  135. package/dist/scheduleManager.js.map +1 -1
  136. package/dist/storageServiceWithAttachBlobs.d.ts +2 -2
  137. package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -1
  138. package/dist/storageServiceWithAttachBlobs.js +2 -2
  139. package/dist/storageServiceWithAttachBlobs.js.map +1 -1
  140. package/dist/summary/documentSchema.d.ts +209 -0
  141. package/dist/summary/documentSchema.d.ts.map +1 -0
  142. package/dist/summary/documentSchema.js +390 -0
  143. package/dist/summary/documentSchema.js.map +1 -0
  144. package/dist/summary/index.d.ts +2 -1
  145. package/dist/summary/index.d.ts.map +1 -1
  146. package/dist/summary/index.js +4 -1
  147. package/dist/summary/index.js.map +1 -1
  148. package/dist/summary/orderedClientElection.d.ts +2 -2
  149. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  150. package/dist/summary/orderedClientElection.js +12 -7
  151. package/dist/summary/orderedClientElection.js.map +1 -1
  152. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  153. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  154. package/dist/summary/runWhileConnectedCoordinator.js +3 -3
  155. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  156. package/dist/summary/runningSummarizer.d.ts +3 -3
  157. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  158. package/dist/summary/runningSummarizer.js +16 -16
  159. package/dist/summary/runningSummarizer.js.map +1 -1
  160. package/dist/summary/summarizer.d.ts +3 -2
  161. package/dist/summary/summarizer.d.ts.map +1 -1
  162. package/dist/summary/summarizer.js +13 -13
  163. package/dist/summary/summarizer.js.map +1 -1
  164. package/dist/summary/summarizerClientElection.d.ts +2 -2
  165. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  166. package/dist/summary/summarizerClientElection.js.map +1 -1
  167. package/dist/summary/summarizerHeuristics.d.ts +1 -1
  168. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  169. package/dist/summary/summarizerHeuristics.js +2 -2
  170. package/dist/summary/summarizerHeuristics.js.map +1 -1
  171. package/dist/summary/summarizerNode/summarizerNode.d.ts +3 -2
  172. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  173. package/dist/summary/summarizerNode/summarizerNode.js +28 -28
  174. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  175. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  176. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  177. package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -3
  178. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  179. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
  180. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  181. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +14 -14
  182. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  183. package/dist/summary/summarizerTypes.d.ts +5 -3
  184. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  185. package/dist/summary/summarizerTypes.js.map +1 -1
  186. package/dist/summary/summaryCollection.d.ts +2 -2
  187. package/dist/summary/summaryCollection.d.ts.map +1 -1
  188. package/dist/summary/summaryCollection.js +7 -7
  189. package/dist/summary/summaryCollection.js.map +1 -1
  190. package/dist/summary/summaryFormat.d.ts +6 -17
  191. package/dist/summary/summaryFormat.d.ts.map +1 -1
  192. package/dist/summary/summaryFormat.js +8 -8
  193. package/dist/summary/summaryFormat.js.map +1 -1
  194. package/dist/summary/summaryGenerator.d.ts +4 -3
  195. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  196. package/dist/summary/summaryGenerator.js +17 -17
  197. package/dist/summary/summaryGenerator.js.map +1 -1
  198. package/dist/summary/summaryManager.d.ts +1 -1
  199. package/dist/summary/summaryManager.d.ts.map +1 -1
  200. package/dist/summary/summaryManager.js +15 -14
  201. package/dist/summary/summaryManager.js.map +1 -1
  202. package/internal.d.ts +11 -0
  203. package/legacy.d.ts +11 -0
  204. package/lib/batchTracker.d.ts +1 -1
  205. package/lib/batchTracker.d.ts.map +1 -1
  206. package/lib/batchTracker.js +2 -2
  207. package/lib/batchTracker.js.map +1 -1
  208. package/lib/blobManager.d.ts +33 -30
  209. package/lib/blobManager.d.ts.map +1 -1
  210. package/lib/blobManager.js +48 -73
  211. package/lib/blobManager.js.map +1 -1
  212. package/lib/channelCollection.d.ts +27 -22
  213. package/lib/channelCollection.d.ts.map +1 -1
  214. package/lib/channelCollection.js +132 -108
  215. package/lib/channelCollection.js.map +1 -1
  216. package/lib/connectionTelemetry.d.ts +3 -3
  217. package/lib/connectionTelemetry.d.ts.map +1 -1
  218. package/lib/connectionTelemetry.js +3 -3
  219. package/lib/connectionTelemetry.js.map +1 -1
  220. package/lib/containerHandleContext.d.ts.map +1 -1
  221. package/lib/containerHandleContext.js +1 -1
  222. package/lib/containerHandleContext.js.map +1 -1
  223. package/lib/containerRuntime.d.ts +42 -39
  224. package/lib/containerRuntime.d.ts.map +1 -1
  225. package/lib/containerRuntime.js +276 -141
  226. package/lib/containerRuntime.js.map +1 -1
  227. package/lib/dataStore.d.ts +1 -1
  228. package/lib/dataStore.d.ts.map +1 -1
  229. package/lib/dataStore.js +3 -3
  230. package/lib/dataStore.js.map +1 -1
  231. package/lib/dataStoreContext.d.ts +58 -19
  232. package/lib/dataStoreContext.d.ts.map +1 -1
  233. package/lib/dataStoreContext.js +110 -53
  234. package/lib/dataStoreContext.js.map +1 -1
  235. package/lib/dataStoreContexts.d.ts +1 -0
  236. package/lib/dataStoreContexts.d.ts.map +1 -1
  237. package/lib/dataStoreContexts.js +3 -2
  238. package/lib/dataStoreContexts.js.map +1 -1
  239. package/lib/dataStoreRegistry.d.ts +5 -1
  240. package/lib/dataStoreRegistry.d.ts.map +1 -1
  241. package/lib/dataStoreRegistry.js +1 -1
  242. package/lib/dataStoreRegistry.js.map +1 -1
  243. package/lib/deltaManagerSummarizerProxy.d.ts +1 -1
  244. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -1
  245. package/lib/deltaManagerSummarizerProxy.js.map +1 -1
  246. package/lib/deltaScheduler.d.ts +1 -1
  247. package/lib/deltaScheduler.d.ts.map +1 -1
  248. package/lib/deltaScheduler.js +1 -1
  249. package/lib/deltaScheduler.js.map +1 -1
  250. package/lib/error.d.ts +1 -1
  251. package/lib/error.d.ts.map +1 -1
  252. package/lib/error.js +2 -2
  253. package/lib/error.js.map +1 -1
  254. package/lib/gc/garbageCollection.d.ts +3 -2
  255. package/lib/gc/garbageCollection.d.ts.map +1 -1
  256. package/lib/gc/garbageCollection.js +8 -8
  257. package/lib/gc/garbageCollection.js.map +1 -1
  258. package/lib/gc/gcConfigs.d.ts +2 -2
  259. package/lib/gc/gcConfigs.d.ts.map +1 -1
  260. package/lib/gc/gcConfigs.js +4 -5
  261. package/lib/gc/gcConfigs.js.map +1 -1
  262. package/lib/gc/gcDefinitions.d.ts +4 -5
  263. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  264. package/lib/gc/gcDefinitions.js.map +1 -1
  265. package/lib/gc/gcHelpers.d.ts +5 -1
  266. package/lib/gc/gcHelpers.d.ts.map +1 -1
  267. package/lib/gc/gcHelpers.js +10 -2
  268. package/lib/gc/gcHelpers.js.map +1 -1
  269. package/lib/gc/gcSummaryStateTracker.d.ts +2 -2
  270. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  271. package/lib/gc/gcSummaryStateTracker.js +2 -2
  272. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  273. package/lib/gc/gcTelemetry.d.ts +2 -1
  274. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  275. package/lib/gc/gcTelemetry.js +4 -2
  276. package/lib/gc/gcTelemetry.js.map +1 -1
  277. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  278. package/lib/gc/gcUnreferencedStateTracker.js +2 -2
  279. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  280. package/lib/gc/index.d.ts +1 -1
  281. package/lib/gc/index.d.ts.map +1 -1
  282. package/lib/gc/index.js +1 -1
  283. package/lib/gc/index.js.map +1 -1
  284. package/lib/index.d.ts +5 -2
  285. package/lib/index.d.ts.map +1 -1
  286. package/lib/index.js +5 -2
  287. package/lib/index.js.map +1 -1
  288. package/lib/legacy.d.ts +91 -0
  289. package/lib/messageTypes.d.ts +11 -5
  290. package/lib/messageTypes.d.ts.map +1 -1
  291. package/lib/messageTypes.js +4 -0
  292. package/lib/messageTypes.js.map +1 -1
  293. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  294. package/lib/opLifecycle/batchManager.js.map +1 -1
  295. package/lib/opLifecycle/definitions.d.ts +2 -20
  296. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  297. package/lib/opLifecycle/definitions.js.map +1 -1
  298. package/lib/opLifecycle/index.d.ts +3 -3
  299. package/lib/opLifecycle/index.d.ts.map +1 -1
  300. package/lib/opLifecycle/index.js +2 -2
  301. package/lib/opLifecycle/index.js.map +1 -1
  302. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  303. package/lib/opLifecycle/opCompressor.js +2 -3
  304. package/lib/opLifecycle/opCompressor.js.map +1 -1
  305. package/lib/opLifecycle/opDecompressor.d.ts +15 -4
  306. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  307. package/lib/opLifecycle/opDecompressor.js +61 -62
  308. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  309. package/lib/opLifecycle/opGroupingManager.d.ts +2 -1
  310. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  311. package/lib/opLifecycle/opGroupingManager.js +9 -12
  312. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  313. package/lib/opLifecycle/opSplitter.d.ts +12 -4
  314. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  315. package/lib/opLifecycle/opSplitter.js +47 -38
  316. package/lib/opLifecycle/opSplitter.js.map +1 -1
  317. package/lib/opLifecycle/outbox.d.ts +2 -1
  318. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  319. package/lib/opLifecycle/outbox.js +19 -18
  320. package/lib/opLifecycle/outbox.js.map +1 -1
  321. package/lib/opLifecycle/remoteMessageProcessor.d.ts +8 -0
  322. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  323. package/lib/opLifecycle/remoteMessageProcessor.js +36 -32
  324. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  325. package/lib/packageVersion.d.ts +1 -1
  326. package/lib/packageVersion.js +1 -1
  327. package/lib/packageVersion.js.map +1 -1
  328. package/lib/pendingStateManager.d.ts +1 -1
  329. package/lib/pendingStateManager.d.ts.map +1 -1
  330. package/lib/pendingStateManager.js +2 -2
  331. package/lib/pendingStateManager.js.map +1 -1
  332. package/lib/public.d.ts +12 -0
  333. package/lib/scheduleManager.d.ts +1 -1
  334. package/lib/scheduleManager.d.ts.map +1 -1
  335. package/lib/scheduleManager.js +7 -3
  336. package/lib/scheduleManager.js.map +1 -1
  337. package/lib/storageServiceWithAttachBlobs.d.ts +2 -2
  338. package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -1
  339. package/lib/storageServiceWithAttachBlobs.js +1 -1
  340. package/lib/storageServiceWithAttachBlobs.js.map +1 -1
  341. package/lib/summary/documentSchema.d.ts +209 -0
  342. package/lib/summary/documentSchema.d.ts.map +1 -0
  343. package/lib/summary/documentSchema.js +386 -0
  344. package/lib/summary/documentSchema.js.map +1 -0
  345. package/lib/summary/index.d.ts +2 -1
  346. package/lib/summary/index.d.ts.map +1 -1
  347. package/lib/summary/index.js +1 -0
  348. package/lib/summary/index.js.map +1 -1
  349. package/lib/summary/orderedClientElection.d.ts +2 -2
  350. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  351. package/lib/summary/orderedClientElection.js +7 -2
  352. package/lib/summary/orderedClientElection.js.map +1 -1
  353. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -1
  354. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  355. package/lib/summary/runWhileConnectedCoordinator.js +1 -1
  356. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  357. package/lib/summary/runningSummarizer.d.ts +3 -3
  358. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  359. package/lib/summary/runningSummarizer.js +3 -3
  360. package/lib/summary/runningSummarizer.js.map +1 -1
  361. package/lib/summary/summarizer.d.ts +3 -2
  362. package/lib/summary/summarizer.d.ts.map +1 -1
  363. package/lib/summary/summarizer.js +3 -3
  364. package/lib/summary/summarizer.js.map +1 -1
  365. package/lib/summary/summarizerClientElection.d.ts +2 -2
  366. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  367. package/lib/summary/summarizerClientElection.js.map +1 -1
  368. package/lib/summary/summarizerHeuristics.d.ts +1 -1
  369. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  370. package/lib/summary/summarizerHeuristics.js +1 -1
  371. package/lib/summary/summarizerHeuristics.js.map +1 -1
  372. package/lib/summary/summarizerNode/summarizerNode.d.ts +3 -2
  373. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  374. package/lib/summary/summarizerNode/summarizerNode.js +5 -5
  375. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  376. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  377. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  378. package/lib/summary/summarizerNode/summarizerNodeUtils.js +1 -1
  379. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  380. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
  381. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  382. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
  383. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  384. package/lib/summary/summarizerTypes.d.ts +5 -3
  385. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  386. package/lib/summary/summarizerTypes.js.map +1 -1
  387. package/lib/summary/summaryCollection.d.ts +2 -2
  388. package/lib/summary/summaryCollection.d.ts.map +1 -1
  389. package/lib/summary/summaryCollection.js +1 -1
  390. package/lib/summary/summaryCollection.js.map +1 -1
  391. package/lib/summary/summaryFormat.d.ts +6 -17
  392. package/lib/summary/summaryFormat.d.ts.map +1 -1
  393. package/lib/summary/summaryFormat.js +3 -3
  394. package/lib/summary/summaryFormat.js.map +1 -1
  395. package/lib/summary/summaryGenerator.d.ts +4 -3
  396. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  397. package/lib/summary/summaryGenerator.js +4 -4
  398. package/lib/summary/summaryGenerator.js.map +1 -1
  399. package/lib/summary/summaryManager.d.ts +1 -1
  400. package/lib/summary/summaryManager.d.ts.map +1 -1
  401. package/lib/summary/summaryManager.js +9 -8
  402. package/lib/summary/summaryManager.js.map +1 -1
  403. package/package.json +57 -65
  404. package/src/batchTracker.ts +4 -3
  405. package/src/blobManager.ts +100 -77
  406. package/src/channelCollection.ts +223 -167
  407. package/src/connectionTelemetry.ts +12 -12
  408. package/src/containerHandleContext.ts +3 -2
  409. package/src/containerRuntime.ts +481 -277
  410. package/src/dataStore.ts +9 -4
  411. package/src/dataStoreContext.ts +201 -97
  412. package/src/dataStoreContexts.ts +5 -2
  413. package/src/dataStoreRegistry.ts +3 -2
  414. package/src/deltaManagerSummarizerProxy.ts +1 -1
  415. package/src/deltaScheduler.ts +2 -1
  416. package/src/error.ts +2 -2
  417. package/src/gc/garbageCollection.ts +21 -20
  418. package/src/gc/gcConfigs.ts +15 -18
  419. package/src/gc/gcDefinitions.ts +6 -8
  420. package/src/gc/gcHelpers.ts +22 -5
  421. package/src/gc/gcSummaryStateTracker.ts +7 -5
  422. package/src/gc/gcTelemetry.ts +13 -7
  423. package/src/gc/gcUnreferencedStateTracker.ts +3 -2
  424. package/src/gc/index.ts +1 -0
  425. package/src/index.ts +22 -1
  426. package/src/messageTypes.ts +20 -6
  427. package/src/opLifecycle/README.md +89 -0
  428. package/src/opLifecycle/batchManager.ts +1 -0
  429. package/src/opLifecycle/definitions.ts +3 -21
  430. package/src/opLifecycle/index.ts +3 -9
  431. package/src/opLifecycle/opCompressor.ts +6 -5
  432. package/src/opLifecycle/opDecompressor.ts +90 -100
  433. package/src/opLifecycle/opGroupingManager.ts +12 -14
  434. package/src/opLifecycle/opSplitter.ts +76 -48
  435. package/src/opLifecycle/outbox.ts +30 -38
  436. package/src/opLifecycle/remoteMessageProcessor.ts +43 -55
  437. package/src/packageVersion.ts +1 -1
  438. package/src/pendingStateManager.ts +6 -6
  439. package/src/scheduleManager.ts +10 -8
  440. package/src/storageServiceWithAttachBlobs.ts +2 -2
  441. package/src/summary/documentSchema.ts +631 -0
  442. package/src/summary/index.ts +10 -1
  443. package/src/summary/orderedClientElection.ts +7 -7
  444. package/src/summary/runWhileConnectedCoordinator.ts +3 -2
  445. package/src/summary/runningSummarizer.ts +22 -20
  446. package/src/summary/summarizer.ts +17 -15
  447. package/src/summary/summarizerClientElection.ts +3 -2
  448. package/src/summary/summarizerHeuristics.ts +4 -2
  449. package/src/summary/summarizerNode/summarizerNode.ts +20 -18
  450. package/src/summary/summarizerNode/summarizerNodeUtils.ts +3 -2
  451. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +16 -8
  452. package/src/summary/summarizerTypes.ts +7 -3
  453. package/src/summary/summaryCollection.ts +3 -3
  454. package/src/summary/summaryFormat.ts +14 -26
  455. package/src/summary/summaryGenerator.ts +12 -15
  456. package/src/summary/summaryManager.ts +16 -13
  457. package/api-extractor-cjs.json +0 -8
  458. package/dist/container-runtime-alpha.d.ts +0 -1753
  459. package/dist/container-runtime-beta.d.ts +0 -268
  460. package/dist/container-runtime-public.d.ts +0 -268
  461. package/dist/container-runtime-untrimmed.d.ts +0 -1893
  462. package/lib/container-runtime-alpha.d.ts +0 -1753
  463. package/lib/container-runtime-beta.d.ts +0 -268
  464. package/lib/container-runtime-public.d.ts +0 -268
  465. package/lib/container-runtime-untrimmed.d.ts +0 -1893
  466. package/lib/test/batchTracker.spec.js +0 -88
  467. package/lib/test/batchTracker.spec.js.map +0 -1
  468. package/lib/test/blobManager.spec.js +0 -835
  469. package/lib/test/blobManager.spec.js.map +0 -1
  470. package/lib/test/channelCollection.spec.js +0 -141
  471. package/lib/test/channelCollection.spec.js.map +0 -1
  472. package/lib/test/containerRuntime.spec.js +0 -1748
  473. package/lib/test/containerRuntime.spec.js.map +0 -1
  474. package/lib/test/dataStoreContext.spec.js +0 -801
  475. package/lib/test/dataStoreContext.spec.js.map +0 -1
  476. package/lib/test/dataStoreCreation.spec.js +0 -312
  477. package/lib/test/dataStoreCreation.spec.js.map +0 -1
  478. package/lib/test/dataStoreRegistry.spec.js +0 -26
  479. package/lib/test/dataStoreRegistry.spec.js.map +0 -1
  480. package/lib/test/fuzz/fuzzUtils.js +0 -66
  481. package/lib/test/fuzz/fuzzUtils.js.map +0 -1
  482. package/lib/test/fuzz/summarizer.fuzz.spec.js +0 -31
  483. package/lib/test/fuzz/summarizer.fuzz.spec.js.map +0 -1
  484. package/lib/test/fuzz/summarizerFuzzMocks.js +0 -162
  485. package/lib/test/fuzz/summarizerFuzzMocks.js.map +0 -1
  486. package/lib/test/fuzz/summarizerFuzzSuite.js +0 -106
  487. package/lib/test/fuzz/summarizerFuzzSuite.js.map +0 -1
  488. package/lib/test/gc/garbageCollection.spec.js +0 -1465
  489. package/lib/test/gc/garbageCollection.spec.js.map +0 -1
  490. package/lib/test/gc/gcConfigs.spec.js +0 -690
  491. package/lib/test/gc/gcConfigs.spec.js.map +0 -1
  492. package/lib/test/gc/gcHelpers.spec.js +0 -110
  493. package/lib/test/gc/gcHelpers.spec.js.map +0 -1
  494. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +0 -68
  495. package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +0 -1
  496. package/lib/test/gc/gcStats.spec.js +0 -391
  497. package/lib/test/gc/gcStats.spec.js.map +0 -1
  498. package/lib/test/gc/gcSummaryStateTracker.spec.js +0 -228
  499. package/lib/test/gc/gcSummaryStateTracker.spec.js.map +0 -1
  500. package/lib/test/gc/gcTelemetry.spec.js +0 -530
  501. package/lib/test/gc/gcTelemetry.spec.js.map +0 -1
  502. package/lib/test/gc/gcUnitTestHelpers.js +0 -29
  503. package/lib/test/gc/gcUnitTestHelpers.js.map +0 -1
  504. package/lib/test/gc/gcUnreferencedStateTracker.spec.js +0 -192
  505. package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +0 -1
  506. package/lib/test/getPendingBlobs.spec.js +0 -193
  507. package/lib/test/getPendingBlobs.spec.js.map +0 -1
  508. package/lib/test/hardwareStats.spec.js +0 -93
  509. package/lib/test/hardwareStats.spec.js.map +0 -1
  510. package/lib/test/index.js +0 -6
  511. package/lib/test/index.js.map +0 -1
  512. package/lib/test/opLifecycle/OpGroupingManager.spec.js +0 -225
  513. package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +0 -1
  514. package/lib/test/opLifecycle/batchManager.spec.js +0 -189
  515. package/lib/test/opLifecycle/batchManager.spec.js.map +0 -1
  516. package/lib/test/opLifecycle/opCompressor.spec.js +0 -74
  517. package/lib/test/opLifecycle/opCompressor.spec.js.map +0 -1
  518. package/lib/test/opLifecycle/opDecompressor.spec.js +0 -218
  519. package/lib/test/opLifecycle/opDecompressor.spec.js.map +0 -1
  520. package/lib/test/opLifecycle/opSplitter.spec.js +0 -272
  521. package/lib/test/opLifecycle/opSplitter.spec.js.map +0 -1
  522. package/lib/test/opLifecycle/outbox.spec.js +0 -675
  523. package/lib/test/opLifecycle/outbox.spec.js.map +0 -1
  524. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +0 -196
  525. package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +0 -1
  526. package/lib/test/pendingStateManager.spec.js +0 -329
  527. package/lib/test/pendingStateManager.spec.js.map +0 -1
  528. package/lib/test/scheduleManager.spec.js +0 -270
  529. package/lib/test/scheduleManager.spec.js.map +0 -1
  530. package/lib/test/summarizerNode.spec.js +0 -326
  531. package/lib/test/summarizerNode.spec.js.map +0 -1
  532. package/lib/test/summarizerNodeWithGc.spec.js +0 -318
  533. package/lib/test/summarizerNodeWithGc.spec.js.map +0 -1
  534. package/lib/test/summary/orderedClientElection.spec.js +0 -535
  535. package/lib/test/summary/orderedClientElection.spec.js.map +0 -1
  536. package/lib/test/summary/runningSummarizer.spec.js +0 -1349
  537. package/lib/test/summary/runningSummarizer.spec.js.map +0 -1
  538. package/lib/test/summary/summarizer.spec.js +0 -29
  539. package/lib/test/summary/summarizer.spec.js.map +0 -1
  540. package/lib/test/summary/summarizerClientElection.spec.js +0 -436
  541. package/lib/test/summary/summarizerClientElection.spec.js.map +0 -1
  542. package/lib/test/summary/summarizerHeuristics.spec.js +0 -289
  543. package/lib/test/summary/summarizerHeuristics.spec.js.map +0 -1
  544. package/lib/test/summary/summaryCollection.spec.js +0 -200
  545. package/lib/test/summary/summaryCollection.spec.js.map +0 -1
  546. package/lib/test/summary/summaryManager.spec.js +0 -430
  547. package/lib/test/summary/summaryManager.spec.js.map +0 -1
  548. package/lib/test/summary/testQuorumClients.js +0 -34
  549. package/lib/test/summary/testQuorumClients.js.map +0 -1
  550. package/lib/test/throttler.spec.js +0 -175
  551. package/lib/test/throttler.spec.js.map +0 -1
  552. package/lib/test/types/validateContainerRuntimePrevious.generated.js +0 -180
  553. package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +0 -1
  554. /package/{dist → lib}/tsdoc-metadata.json +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/container-runtime",
3
- "version": "2.0.0-rc.2.0.1",
3
+ "version": "2.0.0-rc.3.0.0",
4
4
  "description": "Fluid container runtime",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -15,31 +15,21 @@
15
15
  "exports": {
16
16
  ".": {
17
17
  "import": {
18
- "types": "./lib/index.d.ts",
19
- "default": "./lib/index.js"
20
- },
21
- "require": {
22
- "types": "./dist/index.d.ts",
23
- "default": "./dist/index.js"
24
- }
25
- },
26
- "./public": {
27
- "import": {
28
- "types": "./lib/container-runtime-public.d.ts",
18
+ "types": "./lib/public.d.ts",
29
19
  "default": "./lib/index.js"
30
20
  },
31
21
  "require": {
32
- "types": "./dist/container-runtime-public.d.ts",
22
+ "types": "./dist/public.d.ts",
33
23
  "default": "./dist/index.js"
34
24
  }
35
25
  },
36
- "./alpha": {
26
+ "./legacy": {
37
27
  "import": {
38
- "types": "./lib/container-runtime-alpha.d.ts",
28
+ "types": "./lib/legacy.d.ts",
39
29
  "default": "./lib/index.js"
40
30
  },
41
31
  "require": {
42
- "types": "./dist/container-runtime-alpha.d.ts",
32
+ "types": "./dist/legacy.d.ts",
43
33
  "default": "./dist/index.js"
44
34
  }
45
35
  },
@@ -53,7 +43,7 @@
53
43
  "default": "./dist/index.js"
54
44
  }
55
45
  },
56
- "./test/containerRuntime": {
46
+ "./internal/test/containerRuntime": {
57
47
  "import": {
58
48
  "types": "./lib/containerRuntime.d.ts",
59
49
  "default": "./lib/containerRuntime.js"
@@ -63,7 +53,7 @@
63
53
  "default": "./dist/containerRuntime.js"
64
54
  }
65
55
  },
66
- "./test/deltaScheduler": {
56
+ "./internal/test/deltaScheduler": {
67
57
  "import": {
68
58
  "types": "./lib/deltaScheduler.d.ts",
69
59
  "default": "./lib/deltaScheduler.js"
@@ -73,7 +63,7 @@
73
63
  "default": "./dist/deltaScheduler.js"
74
64
  }
75
65
  },
76
- "./test/scheduleManager": {
66
+ "./internal/test/scheduleManager": {
77
67
  "import": {
78
68
  "types": "./lib/scheduleManager.d.ts",
79
69
  "default": "./lib/scheduleManager.js"
@@ -83,7 +73,7 @@
83
73
  "default": "./dist/scheduleManager.js"
84
74
  }
85
75
  },
86
- "./test/blobManager": {
76
+ "./internal/test/blobManager": {
87
77
  "import": {
88
78
  "types": "./lib/blobManager.d.ts",
89
79
  "default": "./lib/blobManager.js"
@@ -93,7 +83,7 @@
93
83
  "default": "./dist/blobManager.js"
94
84
  }
95
85
  },
96
- "./test/summary": {
86
+ "./internal/test/summary": {
97
87
  "import": {
98
88
  "types": "./lib/summary/index.d.ts",
99
89
  "default": "./lib/summary/index.js"
@@ -103,7 +93,7 @@
103
93
  "default": "./dist/summary/index.js"
104
94
  }
105
95
  },
106
- "./test/gc": {
96
+ "./internal/test/gc": {
107
97
  "import": {
108
98
  "types": "./lib/gc/index.d.ts",
109
99
  "default": "./lib/gc/index.js"
@@ -114,8 +104,8 @@
114
104
  }
115
105
  }
116
106
  },
117
- "main": "dist/index.js",
118
- "types": "dist/index.d.ts",
107
+ "main": "lib/index.js",
108
+ "types": "lib/public.d.ts",
119
109
  "c8": {
120
110
  "all": true,
121
111
  "cache-dir": "nyc/.cache",
@@ -137,38 +127,42 @@
137
127
  "temp-directory": "nyc/.nyc_output"
138
128
  },
139
129
  "dependencies": {
140
- "@fluid-internal/client-utils": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
141
- "@fluidframework/container-definitions": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
142
- "@fluidframework/container-runtime-definitions": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
143
- "@fluidframework/core-interfaces": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
144
- "@fluidframework/core-utils": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
145
- "@fluidframework/datastore": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
146
- "@fluidframework/driver-definitions": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
147
- "@fluidframework/driver-utils": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
148
- "@fluidframework/id-compressor": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
130
+ "@fluid-internal/client-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
131
+ "@fluidframework/common-definitions": "^1.1.0",
132
+ "@fluidframework/container-definitions": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
133
+ "@fluidframework/container-runtime-definitions": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
134
+ "@fluidframework/core-interfaces": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
135
+ "@fluidframework/core-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
136
+ "@fluidframework/datastore": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
137
+ "@fluidframework/driver-definitions": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
138
+ "@fluidframework/driver-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
139
+ "@fluidframework/id-compressor": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
149
140
  "@fluidframework/protocol-definitions": "^3.2.0",
150
- "@fluidframework/runtime-definitions": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
151
- "@fluidframework/runtime-utils": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
152
- "@fluidframework/telemetry-utils": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
141
+ "@fluidframework/runtime-definitions": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
142
+ "@fluidframework/runtime-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
143
+ "@fluidframework/telemetry-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
153
144
  "@tylerbu/sorted-btree-es6": "^1.8.0",
154
145
  "double-ended-queue": "^2.1.0-0",
155
146
  "lz4js": "^0.2.0",
156
147
  "uuid": "^9.0.0"
157
148
  },
158
149
  "devDependencies": {
159
- "@arethetypeswrong/cli": "^0.13.3",
160
- "@fluid-internal/mocha-test-setup": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
161
- "@fluid-private/stochastic-test-utils": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
150
+ "@arethetypeswrong/cli": "^0.15.2",
151
+ "@biomejs/biome": "^1.6.2",
152
+ "@fluid-internal/mocha-test-setup": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
153
+ "@fluid-private/stochastic-test-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
154
+ "@fluid-private/test-pairwise-generator": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
162
155
  "@fluid-tools/benchmark": "^0.48.0",
163
- "@fluid-tools/build-cli": "^0.34.0",
156
+ "@fluid-tools/build-cli": "^0.37.0",
164
157
  "@fluidframework/build-common": "^2.0.3",
165
- "@fluidframework/build-tools": "^0.34.0",
158
+ "@fluidframework/build-tools": "^0.37.0",
166
159
  "@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-internal.8.0.0",
167
- "@fluidframework/eslint-config-fluid": "^4.0.0",
168
- "@fluidframework/test-runtime-utils": ">=2.0.0-rc.2.0.1 <2.0.0-rc.2.1.0",
160
+ "@fluidframework/eslint-config-fluid": "^5.1.0",
161
+ "@fluidframework/test-runtime-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
169
162
  "@microsoft/api-extractor": "^7.42.3",
170
163
  "@types/double-ended-queue": "^2.1.0",
171
164
  "@types/mocha": "^9.1.1",
165
+ "@types/node": "^18.19.0",
172
166
  "@types/sinon": "^17.0.3",
173
167
  "@types/uuid": "^9.0.2",
174
168
  "c8": "^8.0.1",
@@ -184,18 +178,6 @@
184
178
  "sinon": "^17.0.1",
185
179
  "typescript": "~5.1.6"
186
180
  },
187
- "fluidBuild": {
188
- "tasks": {
189
- "build:docs": {
190
- "dependsOn": [
191
- "...",
192
- "api-extractor:commonjs",
193
- "api-extractor:esnext"
194
- ],
195
- "script": false
196
- }
197
- }
198
- },
199
181
  "typeValidation": {
200
182
  "broken": {
201
183
  "ClassDeclaration_ContainerRuntime": {
@@ -220,33 +202,43 @@
220
202
  "RemovedFunctionDeclaration_isStableId": {
221
203
  "backCompat": false,
222
204
  "forwardCompat": false
205
+ },
206
+ "InterfaceDeclaration_IContainerRuntimeMetadata": {
207
+ "backCompat": false
208
+ },
209
+ "RemovedEnumDeclaration_RuntimeMessage": {
210
+ "backCompat": false,
211
+ "forwardCompat": false
212
+ },
213
+ "InterfaceDeclaration_IChunkedOp": {
214
+ "backCompat": false
223
215
  }
224
216
  }
225
217
  },
226
218
  "scripts": {
227
219
  "api": "fluid-build . --task api",
228
- "api-extractor:commonjs": "api-extractor run --config ./api-extractor-cjs.json",
229
- "api-extractor:esnext": "api-extractor run --local",
220
+ "api-extractor:commonjs": "flub generate entrypoints --outFileAlpha legacy --outDir ./dist",
221
+ "api-extractor:esnext": "flub generate entrypoints --outFileAlpha legacy --outDir ./lib --node10TypeCompat",
230
222
  "build": "fluid-build . --task build",
231
223
  "build:commonjs": "fluid-build . --task commonjs",
232
224
  "build:compile": "fluid-build . --task compile",
233
- "build:docs": "fluid-build . --task api",
225
+ "build:docs": "api-extractor run --local",
234
226
  "build:esnext": "tsc --project ./tsconfig.json",
235
227
  "build:genver": "gen-version",
236
228
  "build:test": "npm run build:test:esm && npm run build:test:cjs",
237
229
  "build:test:cjs": "fluid-tsc commonjs --project ./src/test/tsconfig.cjs.json",
238
230
  "build:test:esm": "tsc --project ./src/test/tsconfig.json",
239
- "check:are-the-types-wrong": "attw --pack . --entrypoints .",
231
+ "check:are-the-types-wrong": "attw --pack . --exclude-entrypoints ./internal/test/containerRuntime ./internal/test/deltaScheduler ./internal/test/scheduleManager ./internal/test/blobManager ./internal/test/summary ./internal/test/gc",
232
+ "check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
240
233
  "check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
241
234
  "ci:build:docs": "api-extractor run",
242
- "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
235
+ "clean": "rimraf --glob dist lib \"*.d.ts\" \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
243
236
  "eslint": "eslint --format stylish src",
244
237
  "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
245
- "format": "npm run prettier:fix",
246
- "lint": "npm run prettier && npm run check:release-tags && npm run eslint",
247
- "lint:fix": "npm run prettier:fix && npm run eslint:fix",
248
- "prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
249
- "prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore",
238
+ "format": "fluid-build --task format .",
239
+ "format:prettier": "prettier --write . --cache --ignore-path ../../../.prettierignore",
240
+ "lint": "fluid-build . --task lint",
241
+ "lint:fix": "fluid-build . --task eslint:fix --task format",
250
242
  "test": "npm run test:mocha",
251
243
  "test:benchmark:report": "mocha --timeout 999999 --perfMode --parentProcess --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js \"./dist/**/*.perf.spec.*js\"",
252
244
  "test:coverage": "c8 npm test",
@@ -3,12 +3,13 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryLoggerExt, createChildLogger } from "@fluidframework/telemetry-utils";
7
- import { assert } from "@fluidframework/core-utils";
8
6
  import type { EventEmitter } from "@fluid-internal/client-utils";
9
7
  import { performance } from "@fluid-internal/client-utils";
10
- import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
11
8
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
9
+ import { assert } from "@fluidframework/core-utils/internal";
10
+ import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
11
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
12
+ import { createChildLogger } from "@fluidframework/telemetry-utils/internal";
12
13
 
13
14
  export class BatchTracker {
14
15
  private readonly logger: ITelemetryLoggerExt;
@@ -3,42 +3,42 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { v4 as uuid } from "uuid";
6
+ import { TypedEventEmitter, bufferToString, stringToBuffer } from "@fluid-internal/client-utils";
7
+ import { AttachState, ICriticalContainerError } from "@fluidframework/container-definitions";
8
+ import {
9
+ IContainerRuntime,
10
+ IContainerRuntimeEvents,
11
+ } from "@fluidframework/container-runtime-definitions/internal";
7
12
  import { IFluidHandle, IFluidHandleContext } from "@fluidframework/core-interfaces";
8
- import { IDocumentStorageService } from "@fluidframework/driver-definitions";
13
+ import { assert, Deferred } from "@fluidframework/core-utils/internal";
14
+ import { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
15
+ import { canRetryOnError, runWithRetry } from "@fluidframework/driver-utils/internal";
9
16
  import {
10
17
  ICreateBlobResponse,
11
18
  ISequencedDocumentMessage,
12
19
  ISnapshotTree,
13
20
  } from "@fluidframework/protocol-definitions";
14
21
  import {
22
+ IGarbageCollectionData,
23
+ ISummaryTreeWithStats,
24
+ ITelemetryContext,
25
+ } from "@fluidframework/runtime-definitions";
26
+ import {
27
+ SummaryTreeBuilder,
15
28
  createResponseError,
16
29
  generateHandleContextPath,
17
30
  responseToException,
18
- SummaryTreeBuilder,
19
- } from "@fluidframework/runtime-utils";
20
- import { assert, Deferred } from "@fluidframework/core-utils";
21
- import { bufferToString, stringToBuffer, TypedEventEmitter } from "@fluid-internal/client-utils";
31
+ } from "@fluidframework/runtime-utils/internal";
22
32
  import {
23
- IContainerRuntime,
24
- IContainerRuntimeEvents,
25
- } from "@fluidframework/container-runtime-definitions";
26
- import { AttachState, ICriticalContainerError } from "@fluidframework/container-definitions";
27
- import {
28
- createChildMonitoringContext,
29
33
  GenericError,
30
34
  LoggingError,
31
35
  MonitoringContext,
32
36
  PerformanceEvent,
37
+ createChildMonitoringContext,
33
38
  wrapError,
34
- } from "@fluidframework/telemetry-utils";
35
- import {
36
- IGarbageCollectionData,
37
- ISummaryTreeWithStats,
38
- ITelemetryContext,
39
- } from "@fluidframework/runtime-definitions";
39
+ } from "@fluidframework/telemetry-utils/internal";
40
+ import { v4 as uuid } from "uuid";
40
41
 
41
- import { canRetryOnError, runWithRetry } from "@fluidframework/driver-utils";
42
42
  import { IBlobMetadata } from "./metadata.js";
43
43
 
44
44
  /**
@@ -103,7 +103,6 @@ type ICreateBlobResponseWithTTL = ICreateBlobResponse & Partial<Record<"minTTLIn
103
103
 
104
104
  interface PendingBlob {
105
105
  blob: ArrayBufferLike;
106
- uploading?: boolean;
107
106
  opsent?: boolean;
108
107
  storageId?: string;
109
108
  handleP: Deferred<BlobHandle>;
@@ -113,7 +112,7 @@ interface PendingBlob {
113
112
  attached?: boolean;
114
113
  acked?: boolean;
115
114
  abortSignal?: AbortSignal;
116
- pendingStashed?: boolean;
115
+ stashedUpload?: boolean;
117
116
  }
118
117
 
119
118
  export interface IPendingBlobs {
@@ -122,7 +121,6 @@ export interface IPendingBlobs {
122
121
  storageId?: string;
123
122
  uploadTime?: number;
124
123
  minTTLInSeconds?: number;
125
- attached?: boolean;
126
124
  acked?: boolean;
127
125
  };
128
126
  }
@@ -131,6 +129,16 @@ export interface IBlobManagerEvents {
131
129
  (event: "noPendingBlobs", listener: () => void);
132
130
  }
133
131
 
132
+ const stashedPendingBlobOverrides: Pick<
133
+ PendingBlob,
134
+ "stashedUpload" | "storageId" | "minTTLInSeconds" | "uploadTime"
135
+ > = {
136
+ stashedUpload: true,
137
+ storageId: undefined,
138
+ minTTLInSeconds: undefined,
139
+ uploadTime: undefined,
140
+ } as const;
141
+
134
142
  export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
135
143
  public static readonly basePath = "_blobs";
136
144
  private static readonly redirectTableBlobName = ".redirectTable";
@@ -168,10 +176,21 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
168
176
  private readonly sendBlobAttachOp: (localId: string, storageId?: string) => void;
169
177
  private stopAttaching: boolean = false;
170
178
 
171
- constructor(
172
- private readonly routeContext: IFluidHandleContext,
173
- snapshot: IBlobManagerLoadInfo,
174
- private readonly getStorage: () => IDocumentStorageService,
179
+ private readonly routeContext: IFluidHandleContext;
180
+ private readonly getStorage: () => IDocumentStorageService;
181
+ // Called when a blob node is requested. blobPath is the path of the blob's node in GC's graph.
182
+ // blobPath's format - `/<BlobManager.basePath>/<blobId>`.
183
+ private readonly blobRequested: (blobPath: string) => void;
184
+ // Called to check if a blob has been deleted by GC.
185
+ // blobPath's format - `/<BlobManager.basePath>/<blobId>`.
186
+ private readonly isBlobDeleted: (blobPath: string) => boolean;
187
+ private readonly runtime: IBlobManagerRuntime;
188
+ private readonly closeContainer: (error?: ICriticalContainerError) => void;
189
+
190
+ constructor(props: {
191
+ readonly routeContext: IFluidHandleContext;
192
+ snapshot: IBlobManagerLoadInfo;
193
+ readonly getStorage: () => IDocumentStorageService;
175
194
  /**
176
195
  * Submit a BlobAttach op. When a blob is uploaded, there is a short grace period before which the blob is
177
196
  * deleted. The BlobAttach op notifies the server that blob is in use. The server will then not delete the
@@ -182,18 +201,36 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
182
201
  * knowledge of which they cannot request the blob from storage. It's important that this op is sequenced
183
202
  * before any ops that reference the local ID, otherwise, an invalid handle could be added to the document.
184
203
  */
185
- sendBlobAttachOp: (localId: string, storageId?: string) => void,
204
+ sendBlobAttachOp: (localId: string, storageId?: string) => void;
186
205
  // Called when a blob node is requested. blobPath is the path of the blob's node in GC's graph.
187
206
  // blobPath's format - `/<BlobManager.basePath>/<blobId>`.
188
- private readonly blobRequested: (blobPath: string) => void,
207
+ readonly blobRequested: (blobPath: string) => void;
189
208
  // Called to check if a blob has been deleted by GC.
190
209
  // blobPath's format - `/<BlobManager.basePath>/<blobId>`.
191
- private readonly isBlobDeleted: (blobPath: string) => boolean,
192
- private readonly runtime: IBlobManagerRuntime,
193
- stashedBlobs: IPendingBlobs = {},
194
- private readonly closeContainer: (error?: ICriticalContainerError) => void,
195
- ) {
210
+ readonly isBlobDeleted: (blobPath: string) => boolean;
211
+ readonly runtime: IBlobManagerRuntime;
212
+ stashedBlobs: IPendingBlobs | undefined;
213
+ readonly closeContainer: (error?: ICriticalContainerError) => void;
214
+ }) {
196
215
  super();
216
+ const {
217
+ routeContext,
218
+ snapshot,
219
+ getStorage,
220
+ sendBlobAttachOp,
221
+ blobRequested,
222
+ isBlobDeleted,
223
+ runtime,
224
+ stashedBlobs,
225
+ closeContainer,
226
+ } = props;
227
+ this.routeContext = routeContext;
228
+ this.getStorage = getStorage;
229
+ this.blobRequested = blobRequested;
230
+ this.isBlobDeleted = isBlobDeleted;
231
+ this.runtime = runtime;
232
+ this.closeContainer = closeContainer;
233
+
197
234
  this.mc = createChildMonitoringContext({
198
235
  logger: this.runtime.logger,
199
236
  namespace: "BlobManager",
@@ -202,39 +239,34 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
202
239
  this.redirectTable = this.load(snapshot);
203
240
 
204
241
  // Begin uploading stashed blobs from previous container instance
205
- Object.entries(stashedBlobs).forEach(([localId, entry]) => {
242
+ Object.entries(stashedBlobs ?? {}).forEach(([localId, entry]) => {
243
+ const { acked, storageId, minTTLInSeconds, uploadTime } = entry;
206
244
  const blob = stringToBuffer(entry.blob, "base64");
207
- const attached = entry.attached;
208
- const acked = entry.acked;
209
- const storageId = entry.storageId; // entry.storageId = response.id
210
- if (entry.minTTLInSeconds && entry.uploadTime) {
211
- const timeLapseSinceLocalUpload = (Date.now() - entry.uploadTime) / 1000;
245
+ const pendingEntry: PendingBlob = {
246
+ blob,
247
+ opsent: true,
248
+ handleP: new Deferred(),
249
+ storageId,
250
+ uploadP: undefined,
251
+ uploadTime,
252
+ minTTLInSeconds,
253
+ attached: true,
254
+ acked,
255
+ };
256
+ this.pendingBlobs.set(localId, pendingEntry);
257
+
258
+ if (storageId !== undefined && minTTLInSeconds && uploadTime) {
259
+ const timeLapseSinceLocalUpload = (Date.now() - uploadTime) / 1000;
212
260
  // stashed entries with more than half-life in storage will not be reuploaded
213
- if (entry.minTTLInSeconds - timeLapseSinceLocalUpload > entry.minTTLInSeconds / 2) {
214
- this.pendingBlobs.set(localId, {
215
- blob,
216
- uploading: false,
217
- opsent: true,
218
- handleP: new Deferred(),
219
- storageId,
220
- uploadP: undefined,
221
- uploadTime: entry.uploadTime,
222
- minTTLInSeconds: entry.minTTLInSeconds,
223
- attached,
224
- acked,
225
- });
261
+ if (minTTLInSeconds - timeLapseSinceLocalUpload > minTTLInSeconds / 2) {
226
262
  return;
227
263
  }
228
264
  }
265
+
229
266
  this.pendingBlobs.set(localId, {
230
- blob,
231
- uploading: true,
232
- handleP: new Deferred(),
267
+ ...pendingEntry,
268
+ ...stashedPendingBlobOverrides,
233
269
  uploadP: this.uploadBlob(localId, blob),
234
- attached,
235
- acked,
236
- opsent: true,
237
- pendingStashed: true,
238
270
  });
239
271
  });
240
272
 
@@ -296,16 +328,19 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
296
328
  });
297
329
  }
298
330
 
299
- public hasPendingStashedBlobs(): boolean {
300
- return Array.from(this.pendingBlobs.values()).some((e) => e.pendingStashed === true);
331
+ public hasPendingStashedUploads(): boolean {
332
+ return Array.from(this.pendingBlobs.values()).some((e) => e.stashedUpload === true);
301
333
  }
302
334
  /**
303
335
  * Upload blobs added while offline. This must be completed before connecting and resubmitting ops.
304
336
  */
305
- public async processStashedChanges() {
337
+ public async trackPendingStashedUploads(): Promise<void> {
306
338
  const pendingUploads = Array.from(this.pendingBlobs.values())
307
- .filter((e) => e.pendingStashed === true)
339
+ .filter((e) => e.stashedUpload === true)
308
340
  .map(async (e) => e.uploadP);
341
+ if (pendingUploads.length === 0) {
342
+ return;
343
+ }
309
344
  await PerformanceEvent.timedExecAsync(
310
345
  this.mc.logger,
311
346
  {
@@ -432,7 +467,6 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
432
467
  const localId = uuid();
433
468
  const pendingEntry: PendingBlob = {
434
469
  blob,
435
- uploading: true,
436
470
  handleP: new Deferred(),
437
471
  uploadP: this.uploadBlob(localId, blob),
438
472
  attached: false,
@@ -525,9 +559,10 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
525
559
  return;
526
560
  }
527
561
  assert(
528
- entry.uploading === true,
562
+ entry.storageId === undefined,
529
563
  0x386 /* Must have pending blob entry for uploaded blob */,
530
564
  );
565
+ entry.stashedUpload = undefined;
531
566
  entry.storageId = response.id;
532
567
  entry.uploadTime = Date.now();
533
568
  entry.minTTLInSeconds = response.minTTLInSeconds;
@@ -590,9 +625,6 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
590
625
  this.deletePendingBlob(localId);
591
626
  return;
592
627
  }
593
- if (pendingEntry?.pendingStashed) {
594
- pendingEntry.pendingStashed = false;
595
- }
596
628
  }
597
629
  assert(blobId !== undefined, 0x12a /* "Missing blob id on metadata" */);
598
630
 
@@ -726,14 +758,6 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
726
758
  return gcData;
727
759
  }
728
760
 
729
- /**
730
- * This is called to update blobs whose routes are unused. The unused blobs are deleted.
731
- * @param unusedRoutes - The routes of the blob nodes that are unused. These routes will be based off of local ids.
732
- */
733
- public updateUnusedRoutes(unusedRoutes: readonly string[]): void {
734
- this.deleteBlobsFromRedirectTable(unusedRoutes);
735
- }
736
-
737
761
  /**
738
762
  * Delete attachment blobs that are sweep ready.
739
763
  * @param sweepReadyBlobRoutes - The routes of blobs that are sweep ready and should be deleted. These routes will
@@ -938,7 +962,6 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
938
962
  blobs[id] = {
939
963
  blob: bufferToString(entry.blob, "base64"),
940
964
  storageId: entry.storageId,
941
- attached: entry.attached,
942
965
  acked: entry.acked,
943
966
  minTTLInSeconds: entry.minTTLInSeconds,
944
967
  uploadTime: entry.uploadTime,