@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
@@ -5,15 +5,15 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.LocalDetachedFluidDataStoreContext = exports.LocalFluidDataStoreContext = exports.LocalFluidDataStoreContextBase = exports.RemoteFluidDataStoreContext = exports.FluidDataStoreContext = exports.createAttributesBlob = void 0;
8
- const container_definitions_1 = require("@fluidframework/container-definitions");
9
8
  const client_utils_1 = require("@fluid-internal/client-utils");
10
- const core_utils_1 = require("@fluidframework/core-utils");
11
- const driver_utils_1 = require("@fluidframework/driver-utils");
12
- const runtime_definitions_1 = require("@fluidframework/runtime-definitions");
13
- const runtime_utils_1 = require("@fluidframework/runtime-utils");
14
- const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
15
- const index_js_1 = require("./summary/index.js");
16
- const index_js_2 = require("./gc/index.js");
9
+ const container_definitions_1 = require("@fluidframework/container-definitions");
10
+ const internal_1 = require("@fluidframework/core-utils/internal");
11
+ const internal_2 = require("@fluidframework/driver-utils/internal");
12
+ const internal_3 = require("@fluidframework/runtime-definitions/internal");
13
+ const internal_4 = require("@fluidframework/runtime-utils/internal");
14
+ const internal_5 = require("@fluidframework/telemetry-utils/internal");
15
+ const index_js_1 = require("./gc/index.js");
16
+ const index_js_2 = require("./summary/index.js");
17
17
  function createAttributes(pkg, isRootDataStore) {
18
18
  const stringifiedPkg = JSON.stringify(pkg);
19
19
  return {
@@ -24,15 +24,16 @@ function createAttributes(pkg, isRootDataStore) {
24
24
  }
25
25
  function createAttributesBlob(pkg, isRootDataStore) {
26
26
  const attributes = createAttributes(pkg, isRootDataStore);
27
- return new driver_utils_1.BlobTreeEntry(index_js_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
27
+ return new internal_2.BlobTreeEntry(index_js_2.dataStoreAttributesBlobName, JSON.stringify(attributes));
28
28
  }
29
29
  exports.createAttributesBlob = createAttributesBlob;
30
30
  /**
31
31
  * Represents the context for the store. This context is passed to the store runtime.
32
+ * @internal
32
33
  */
33
34
  class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
34
35
  get packagePath() {
35
- (0, core_utils_1.assert)(this.pkg !== undefined, 0x139 /* "Undefined package path" */);
36
+ (0, internal_1.assert)(this.pkg !== undefined, 0x139 /* "Undefined package path" */);
36
37
  return this.pkg;
37
38
  }
38
39
  get options() {
@@ -81,7 +82,6 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
81
82
  return this._attachState;
82
83
  }
83
84
  get IFluidDataStoreRegistry() {
84
- (0, core_utils_1.assert)(this.channel !== undefined, 0x8f3 /* This should be called after the channel is created, when the registry is populated */);
85
85
  return this.registry;
86
86
  }
87
87
  /**
@@ -90,8 +90,18 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
90
90
  * 2. is root as part of the base snapshot that the datastore loaded from
91
91
  * @returns whether a datastore is root
92
92
  */
93
- async isRoot() {
94
- return this.isInMemoryRoot() || (await this.getInitialSnapshotDetails()).isRootDataStore;
93
+ async isRoot(aliasedDataStores) {
94
+ if (this.isInMemoryRoot()) {
95
+ return true;
96
+ }
97
+ // This if is a performance optimization.
98
+ // We know that if the base snapshot is omitted, then the isRootDataStore flag is not set.
99
+ // That means we can skip the expensive call to getInitialSnapshotDetails for virtualized datastores,
100
+ // and get the information from the alias map directly.
101
+ if (aliasedDataStores !== undefined && this.baseSnapshot?.omitted === true) {
102
+ return aliasedDataStores.has(this.id);
103
+ }
104
+ return (await this.getInitialSnapshotDetails()).isRootDataStore;
95
105
  }
96
106
  /**
97
107
  * There are 3 states where isInMemoryRoot needs to be true
@@ -129,18 +139,18 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
129
139
  this.loadingGroupId = props.loadingGroupId;
130
140
  // URIs use slashes as delimiters. Handles use URIs.
131
141
  // Thus having slashes in types almost guarantees trouble down the road!
132
- (0, core_utils_1.assert)(!this.id.includes("/"), 0x13a /* Data store ID contains slash */);
142
+ (0, internal_1.assert)(!this.id.includes("/"), 0x13a /* Data store ID contains slash */);
133
143
  this._attachState =
134
144
  this.parentContext.attachState !== container_definitions_1.AttachState.Detached && this.existing
135
145
  ? this.parentContext.attachState
136
146
  : container_definitions_1.AttachState.Detached;
137
147
  const thisSummarizeInternal = async (fullTree, trackState, telemetryContext) => this.summarizeInternal(fullTree, trackState, telemetryContext);
138
148
  this.summarizerNode = props.createSummarizerNodeFn(thisSummarizeInternal, async (fullGC) => this.getGCDataInternal(fullGC));
139
- this.mc = (0, telemetry_utils_1.createChildMonitoringContext)({
149
+ this.mc = (0, internal_5.createChildMonitoringContext)({
140
150
  logger: this.logger,
141
151
  namespace: "FluidDataStoreContext",
142
152
  properties: {
143
- all: (0, telemetry_utils_1.tagCodeArtifacts)({
153
+ all: (0, internal_5.tagCodeArtifacts)({
144
154
  fluidDataStoreId: this.id,
145
155
  // The package name is a getter because `this.pkg` may not be initialized during construction.
146
156
  // For data stores loaded from summary, it is initialized during data store realization.
@@ -148,7 +158,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
148
158
  }),
149
159
  },
150
160
  });
151
- this.thresholdOpsCounter = new telemetry_utils_1.ThresholdCounter(FluidDataStoreContext.pendingOpsCountThreshold, this.mc.logger);
161
+ this.thresholdOpsCounter = new internal_5.ThresholdCounter(FluidDataStoreContext.pendingOpsCountThreshold, this.mc.logger);
152
162
  this.gcThrowOnTombstoneUsage = this.parentContext.gcThrowOnTombstoneUsage;
153
163
  this.gcTombstoneEnforcementAllowed = this.parentContext.gcTombstoneEnforcementAllowed;
154
164
  // By default, a data store can log maximum 10 local changes telemetry in summarizer.
@@ -185,17 +195,17 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
185
195
  this._tombstoned = tombstone;
186
196
  }
187
197
  rejectDeferredRealize(reason, failedPkgPath, fullPackageName) {
188
- throw new telemetry_utils_1.LoggingError(reason, (0, telemetry_utils_1.tagCodeArtifacts)({
198
+ throw new internal_5.LoggingError(reason, (0, internal_5.tagCodeArtifacts)({
189
199
  failedPkgPath,
190
200
  packagePath: fullPackageName?.join("/"),
191
201
  }));
192
202
  }
193
203
  async realize() {
194
- (0, core_utils_1.assert)(!this.detachedRuntimeCreation, 0x13d /* "Detached runtime creation on realize()" */);
204
+ (0, internal_1.assert)(!this.detachedRuntimeCreation, 0x13d /* "Detached runtime creation on realize()" */);
195
205
  if (!this.channelP) {
196
206
  this.channelP = this.realizeCore(this.existing).catch((error) => {
197
- const errorWrapped = telemetry_utils_1.DataProcessingError.wrapIfUnrecognized(error, "realizeFluidDataStoreContext");
198
- errorWrapped.addTelemetryProperties((0, telemetry_utils_1.tagCodeArtifacts)({
207
+ const errorWrapped = internal_5.DataProcessingError.wrapIfUnrecognized(error, "realizeFluidDataStoreContext");
208
+ errorWrapped.addTelemetryProperties((0, internal_5.tagCodeArtifacts)({
199
209
  fullPackageName: this.pkg?.join("/"),
200
210
  fluidDataStoreId: this.id,
201
211
  }));
@@ -228,7 +238,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
228
238
  if (factory === undefined) {
229
239
  this.rejectDeferredRealize("Can't find factory for package", lastPkg, packages);
230
240
  }
231
- (0, core_utils_1.assert)(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
241
+ (0, internal_1.assert)(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
232
242
  this.registry = registry;
233
243
  return factory;
234
244
  }
@@ -239,10 +249,10 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
239
249
  // that it is set here, before bindRuntime is called.
240
250
  this._baseSnapshot = details.snapshot;
241
251
  this.baseSnapshotSequenceNumber = details.sequenceNumber;
242
- (0, core_utils_1.assert)(this.pkg === details.pkg, 0x13e /* "Unexpected package path" */);
252
+ (0, internal_1.assert)(this.pkg === details.pkg, 0x13e /* "Unexpected package path" */);
243
253
  const factory = await this.factoryFromPackagePath();
244
254
  const channel = await factory.instantiateDataStore(this, existing);
245
- (0, core_utils_1.assert)(channel !== undefined, 0x140 /* "undefined channel on datastore context" */);
255
+ (0, internal_1.assert)(channel !== undefined, 0x140 /* "undefined channel on datastore context" */);
246
256
  await this.bindRuntime(channel, existing);
247
257
  // This data store may have been disposed before the channel is created during realization. If so,
248
258
  // dispose the channel now.
@@ -264,25 +274,25 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
264
274
  if (!this.loaded) {
265
275
  return;
266
276
  }
267
- (0, core_utils_1.assert)(this.connected === connected, 0x141 /* "Unexpected connected state" */);
277
+ (0, internal_1.assert)(this.connected === connected, 0x141 /* "Unexpected connected state" */);
268
278
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
269
279
  this.channel.setConnectionState(connected, clientId);
270
280
  }
271
281
  process(message, local, localOpMetadata) {
272
- const safeTelemetryProps = (0, telemetry_utils_1.extractSafePropertiesFromMessage)(message);
282
+ const safeTelemetryProps = (0, internal_5.extractSafePropertiesFromMessage)(message);
273
283
  // On op process, tombstone error is logged in garbage collector. So, set "checkTombstone" to false when calling
274
284
  // "verifyNotClosed" which logs tombstone errors. Throw error if tombstoned and throwing on load is configured.
275
285
  this.verifyNotClosed("process", false /* checkTombstone */, safeTelemetryProps);
276
286
  if (this.tombstoned && this.gcThrowOnTombstoneUsage) {
277
- throw new telemetry_utils_1.DataCorruptionError("Context is tombstoned! Call site [process]", safeTelemetryProps);
287
+ throw new internal_5.DataCorruptionError("Context is tombstoned! Call site [process]", safeTelemetryProps);
278
288
  }
279
289
  this.summarizerNode.recordChange(message);
280
290
  if (this.loaded) {
281
291
  return this.channel?.process(message, local, localOpMetadata);
282
292
  }
283
293
  else {
284
- (0, core_utils_1.assert)(!local, 0x142 /* "local store channel is not loaded" */);
285
- (0, core_utils_1.assert)(this.pending !== undefined, 0x23d /* "pending is undefined" */);
294
+ (0, internal_1.assert)(!local, 0x142 /* "local store channel is not loaded" */);
295
+ (0, internal_1.assert)(this.pending !== undefined, 0x23d /* "pending is undefined" */);
286
296
  this.pending.push(message);
287
297
  this.thresholdOpsCounter.sendIfMultiple("StorePendingOps", this.pending.length);
288
298
  }
@@ -315,13 +325,13 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
315
325
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
316
326
  const summarizeResult = await this.channel.summarize(fullTree, trackState, telemetryContext);
317
327
  // Wrap dds summaries in .channels subtree.
318
- (0, index_js_1.wrapSummaryInChannelsTree)(summarizeResult);
319
- const pathPartsForChildren = [runtime_definitions_1.channelsTreeName];
328
+ (0, index_js_2.wrapSummaryInChannelsTree)(summarizeResult);
329
+ const pathPartsForChildren = [internal_3.channelsTreeName];
320
330
  // Add data store's attributes to the summary.
321
331
  const { pkg } = await this.getInitialSnapshotDetails();
322
332
  const isRoot = await this.isRoot();
323
333
  const attributes = createAttributes(pkg, isRoot);
324
- (0, runtime_utils_1.addBlobToSummary)(summarizeResult, index_js_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
334
+ (0, internal_4.addBlobToSummary)(summarizeResult, index_js_2.dataStoreAttributesBlobName, JSON.stringify(attributes));
325
335
  // If we are not referenced, mark the summary tree as unreferenced. Also, update unreferenced blob
326
336
  // size in the summary stats with the blobs size of this data store.
327
337
  if (!this.summarizerNode.isReferenced()) {
@@ -356,7 +366,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
356
366
  */
357
367
  async getGCDataInternal(fullGC = false) {
358
368
  await this.realize();
359
- (0, core_utils_1.assert)(this.channel !== undefined, 0x143 /* "Channel should not be undefined when running GC" */);
369
+ (0, internal_1.assert)(this.channel !== undefined, 0x143 /* "Channel should not be undefined when running GC" */);
360
370
  return this.channel.getGCData(fullGC);
361
371
  }
362
372
  /**
@@ -403,7 +413,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
403
413
  */
404
414
  addedGCOutboundReference(srcHandle, outboundHandle) {
405
415
  // By default, skip this call since the ContainerRuntime will detect the outbound route directly.
406
- if (this.mc.config.getBoolean(index_js_2.detectOutboundRoutesViaDDSKey) === true) {
416
+ if (this.mc.config.getBoolean(index_js_1.detectOutboundRoutesViaDDSKey) === true) {
407
417
  // Note: The ContainerRuntime code will check this same setting to avoid double counting.
408
418
  this.parentContext.addedGCOutboundReference?.(srcHandle, outboundHandle);
409
419
  }
@@ -427,8 +437,8 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
427
437
  * 2. When the data store is realized. This updates the channel's used routes as per last GC run.
428
438
  */
429
439
  updateChannelUsedRoutes() {
430
- (0, core_utils_1.assert)(this.loaded, 0x144 /* "Channel should be loaded when updating used routes" */);
431
- (0, core_utils_1.assert)(this.channel !== undefined, 0x145 /* "Channel should be present when data store is loaded" */);
440
+ (0, internal_1.assert)(this.loaded, 0x144 /* "Channel should be loaded when updating used routes" */);
441
+ (0, internal_1.assert)(this.channel !== undefined, 0x145 /* "Channel should be present when data store is loaded" */);
432
442
  // If there is no lastUsedRoutes, GC has not run up until this point.
433
443
  if (this.lastUsedRoutes === undefined) {
434
444
  return;
@@ -448,7 +458,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
448
458
  }
449
459
  submitMessage(type, content, localOpMetadata) {
450
460
  this.verifyNotClosed("submitMessage");
451
- (0, core_utils_1.assert)(!!this.channel, 0x146 /* "Channel must exist when submitting message" */);
461
+ (0, internal_1.assert)(!!this.channel, 0x146 /* "Channel must exist when submitting message" */);
452
462
  // Summarizer clients should not submit messages.
453
463
  this.identifyLocalChangeInSummarizer("DataStoreMessageSubmittedInSummarizer", type);
454
464
  this.parentContext.submitMessage(type, content, localOpMetadata);
@@ -475,12 +485,12 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
475
485
  /**
476
486
  * Submits the signal to be sent to other clients.
477
487
  * @param type - Type of the signal.
478
- * @param content - Content of the signal.
488
+ * @param content - Content of the signal. Should be a JSON serializable object or primitive.
479
489
  * @param targetClientId - When specified, the signal is only sent to the provided client id.
480
490
  */
481
491
  submitSignal(type, content, targetClientId) {
482
492
  this.verifyNotClosed("submitSignal");
483
- (0, core_utils_1.assert)(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
493
+ (0, internal_1.assert)(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
484
494
  return this.parentContext.submitSignal(type, content, targetClientId);
485
495
  }
486
496
  /**
@@ -488,43 +498,32 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
488
498
  * globally visible now.
489
499
  */
490
500
  makeLocallyVisible() {
491
- (0, core_utils_1.assert)(this.channel !== undefined, 0x2cf /* "undefined channel on datastore context" */);
501
+ (0, internal_1.assert)(this.channel !== undefined, 0x2cf /* "undefined channel on datastore context" */);
492
502
  this.makeLocallyVisibleFn();
493
503
  }
494
- async bindRuntime(channel, existing) {
495
- if (this.channel) {
496
- throw new Error("Runtime already bound");
497
- }
498
- (0, core_utils_1.assert)(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
499
- (0, core_utils_1.assert)(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
500
- if (existing) {
501
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
502
- const pending = this.pending;
503
- // Apply all pending ops
504
- for (const op of pending) {
505
- // Only process ops whose seq number is greater than snapshot sequence number from which it loaded.
506
- const seqNumber = this.baseSnapshotSequenceNumber ?? -1;
507
- if (op.sequenceNumber > seqNumber) {
508
- channel.process(op, false, undefined /* localOpMetadata */);
509
- }
504
+ processPendingOps(channel) {
505
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
506
+ const pending = this.pending;
507
+ // Apply all pending ops
508
+ for (const op of pending) {
509
+ // Only process ops whose seq number is greater than snapshot sequence number from which it loaded.
510
+ const seqNumber = this.baseSnapshotSequenceNumber ?? -1;
511
+ if (op.sequenceNumber > seqNumber) {
512
+ channel.process(op, false, undefined /* localOpMetadata */);
510
513
  }
511
- this.thresholdOpsCounter.send("ProcessPendingOps", pending.length);
512
- }
513
- else {
514
- (0, core_utils_1.assert)(this.pending?.length === 0, 0x8f4 /* no pending ops */);
515
- // Execute data store's entry point to make sure that for a local (aka detached from container) data store, the
516
- // entryPoint initialization function is called before the data store gets attached and potentially connected to
517
- // the delta stream, so it gets a chance to do things while the data store is still "purely local".
518
- // This preserves the behavior from before we introduced entryPoints, where the instantiateDataStore method
519
- // of data store factories tends to construct the data object (at least kick off an async method that returns
520
- // it); that code moved to the entryPoint initialization function, so we want to ensure it still executes
521
- // before the data store is attached.
522
- await channel.entryPoint.get();
523
514
  }
524
515
  this.pending = undefined;
516
+ this.thresholdOpsCounter.send("ProcessPendingOps", pending.length);
517
+ }
518
+ completeBindingRuntime(channel) {
525
519
  // And now mark the runtime active
526
520
  this.loaded = true;
527
521
  this.channel = channel;
522
+ // Channel does not know when it's "live" (as in - starts to receive events in the system)
523
+ // It may read current state of the system when channel was created, but it was not getting any updates
524
+ // through creation process and could have missed events. So update it on current state.
525
+ // Once this.loaded is set (above), it will stat receiving events.
526
+ channel.setConnectionState(this.connected, this.clientId);
528
527
  // Freeze the package path to ensure that someone doesn't modify it when it is
529
528
  // returned in packagePath().
530
529
  Object.freeze(this.pkg);
@@ -537,6 +536,25 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
537
536
  */
538
537
  this.updateChannelUsedRoutes();
539
538
  }
539
+ async bindRuntime(channel, existing) {
540
+ if (this.channel) {
541
+ throw new Error("Runtime already bound");
542
+ }
543
+ (0, internal_1.assert)(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
544
+ (0, internal_1.assert)(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
545
+ if (!existing) {
546
+ // Execute data store's entry point to make sure that for a local (aka detached from container) data store, the
547
+ // entryPoint initialization function is called before the data store gets attached and potentially connected to
548
+ // the delta stream, so it gets a chance to do things while the data store is still "purely local".
549
+ // This preserves the behavior from before we introduced entryPoints, where the instantiateDataStore method
550
+ // of data store factories tends to construct the data object (at least kick off an async method that returns
551
+ // it); that code moved to the entryPoint initialization function, so we want to ensure it still executes
552
+ // before the data store is attached.
553
+ await channel.entryPoint.get();
554
+ }
555
+ this.processPendingOps(channel);
556
+ this.completeBindingRuntime(channel);
557
+ }
540
558
  async getAbsoluteUrl(relativeUrl) {
541
559
  if (this.attachState !== container_definitions_1.AttachState.Attached) {
542
560
  return undefined;
@@ -558,7 +576,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
558
576
  return {};
559
577
  }
560
578
  reSubmit(type, contents, localOpMetadata) {
561
- (0, core_utils_1.assert)(!!this.channel, 0x14b /* "Channel must exist when resubmitting ops" */);
579
+ (0, internal_1.assert)(!!this.channel, 0x14b /* "Channel must exist when resubmitting ops" */);
562
580
  this.channel.reSubmit(type, contents, localOpMetadata);
563
581
  }
564
582
  rollback(type, contents, localOpMetadata) {
@@ -574,13 +592,13 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
574
592
  if (!this.channel) {
575
593
  await this.realize();
576
594
  }
577
- (0, core_utils_1.assert)(!!this.channel, 0x14c /* "Channel must exist when rebasing ops" */);
595
+ (0, internal_1.assert)(!!this.channel, 0x14c /* "Channel must exist when rebasing ops" */);
578
596
  return this.channel.applyStashedOp(contents);
579
597
  }
580
598
  verifyNotClosed(callSite, checkTombstone = true, safeTelemetryProps = {}) {
581
599
  if (this.deleted) {
582
600
  const messageString = `Context is deleted! Call site [${callSite}]`;
583
- const error = new telemetry_utils_1.DataCorruptionError(messageString, safeTelemetryProps);
601
+ const error = new internal_5.DataCorruptionError(messageString, safeTelemetryProps);
584
602
  this.mc.logger.sendErrorEvent({
585
603
  eventName: "GC_Deleted_DataStore_Changed",
586
604
  callSite,
@@ -592,8 +610,8 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
592
610
  }
593
611
  if (checkTombstone && this.tombstoned) {
594
612
  const messageString = `Context is tombstoned! Call site [${callSite}]`;
595
- const error = new telemetry_utils_1.DataCorruptionError(messageString, safeTelemetryProps);
596
- (0, index_js_2.sendGCUnexpectedUsageEvent)(this.mc, {
613
+ const error = new internal_5.DataCorruptionError(messageString, safeTelemetryProps);
614
+ (0, index_js_1.sendGCUnexpectedUsageEvent)(this.mc, {
597
615
  eventName: "GC_Tombstone_DataStore_Changed",
598
616
  category: this.gcThrowOnTombstoneUsage ? "error" : "generic",
599
617
  gcTombstoneEnforcementAllowed: this.gcTombstoneEnforcementAllowed,
@@ -610,7 +628,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
610
628
  * other clients that are up-to-date till seq# 100 may not have them yet.
611
629
  */
612
630
  identifyLocalChangeInSummarizer(eventName, type) {
613
- if (this.clientDetails.type !== index_js_1.summarizerClientType ||
631
+ if (this.clientDetails.type !== index_js_2.summarizerClientType ||
614
632
  this.localChangesTelemetryCount <= 0) {
615
633
  return;
616
634
  }
@@ -621,7 +639,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
621
639
  eventName,
622
640
  type,
623
641
  isSummaryInProgress: this.summarizerNode.isSummaryInProgress?.(),
624
- stack: (0, telemetry_utils_1.generateStack)(),
642
+ stack: (0, internal_5.generateStack)(),
625
643
  });
626
644
  this.localChangesTelemetryCount--;
627
645
  }
@@ -637,16 +655,17 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
637
655
  }
638
656
  exports.FluidDataStoreContext = FluidDataStoreContext;
639
657
  FluidDataStoreContext.pendingOpsCountThreshold = 1000;
658
+ /** @internal */
640
659
  class RemoteFluidDataStoreContext extends FluidDataStoreContext {
641
660
  constructor(props) {
642
661
  super(props, true /* existing */, false /* isLocalDataStore */, () => {
643
662
  throw new Error("Already attached");
644
663
  });
645
- this.initialSnapshotDetailsP = new core_utils_1.LazyPromise(async () => {
664
+ this.initialSnapshotDetailsP = new internal_1.LazyPromise(async () => {
646
665
  // Sequence number of the snapshot.
647
666
  let sequenceNumber;
648
667
  if (this.snapshotFetchRequired) {
649
- (0, core_utils_1.assert)(this.loadingGroupId !== undefined, 0x8f5 /* groupId should be present to fetch snapshot */);
668
+ (0, internal_1.assert)(this.loadingGroupId !== undefined, 0x8f5 /* groupId should be present to fetch snapshot */);
650
669
  const snapshot = await this.runtime.getSnapshotForLoadingGroupId([this.loadingGroupId], [this.id]);
651
670
  this._baseSnapshot = snapshot.snapshotTree;
652
671
  sequenceNumber = snapshot.sequenceNumber;
@@ -654,13 +673,13 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
654
673
  }
655
674
  let tree = this.baseSnapshot;
656
675
  let isRootDataStore = true;
657
- if (!!tree && tree.blobs[index_js_1.dataStoreAttributesBlobName] !== undefined) {
676
+ if (!!tree && tree.blobs[index_js_2.dataStoreAttributesBlobName] !== undefined) {
658
677
  // Need to get through snapshot and use that to populate extraBlobs
659
- const attributes = await (0, driver_utils_1.readAndParse)(this.storage, tree.blobs[index_js_1.dataStoreAttributesBlobName]);
678
+ const attributes = await (0, internal_2.readAndParse)(this.storage, tree.blobs[index_js_2.dataStoreAttributesBlobName]);
660
679
  let pkgFromSnapshot;
661
680
  // Use the snapshotFormatVersion to determine how the pkg is encoded in the snapshot.
662
681
  // For snapshotFormatVersion = "0.1" (1) or above, pkg is jsonified, otherwise it is just a string.
663
- const formatVersion = (0, index_js_1.getAttributesFormatVersion)(attributes);
682
+ const formatVersion = (0, index_js_2.getAttributesFormatVersion)(attributes);
664
683
  if (formatVersion < 1) {
665
684
  pkgFromSnapshot =
666
685
  attributes.pkg.startsWith('["') && attributes.pkg.endsWith('"]')
@@ -677,12 +696,12 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
677
696
  * roots in the document but they won't break.
678
697
  */
679
698
  isRootDataStore = attributes.isRootDataStore ?? true;
680
- if ((0, index_js_1.hasIsolatedChannels)(attributes)) {
681
- tree = tree.trees[runtime_definitions_1.channelsTreeName];
682
- (0, core_utils_1.assert)(tree !== undefined, 0x1fe /* "isolated channels subtree should exist in remote datastore snapshot" */);
699
+ if ((0, index_js_2.hasIsolatedChannels)(attributes)) {
700
+ tree = tree.trees[internal_3.channelsTreeName];
701
+ (0, internal_1.assert)(tree !== undefined, 0x1fe /* "isolated channels subtree should exist in remote datastore snapshot" */);
683
702
  }
684
703
  }
685
- (0, core_utils_1.assert)(this.pkg !== undefined, 0x8f6 /* The datastore context package should be defined */);
704
+ (0, internal_1.assert)(this.pkg !== undefined, 0x8f6 /* The datastore context package should be defined */);
686
705
  return {
687
706
  pkg: this.pkg,
688
707
  isRootDataStore,
@@ -697,6 +716,17 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
697
716
  this.summarizerNode.updateBaseSummaryState(props.snapshotTree);
698
717
  }
699
718
  }
719
+ /*
720
+ This API should not be called for RemoteFluidDataStoreContext. But here is one scenario where it's not the case:
721
+ The scenario (hit by stashedOps.spec.ts, "resends attach op" UT is the following (as far as I understand):
722
+ 1. data store is being attached in attached container
723
+ 2. container state is serialized (stashed ops feature)
724
+ 3. new container instance is rehydrated (from stashed ops)
725
+ - As result, we create RemoteFluidDataStoreContext for this data store that is actually in "attaching" state (as of # 2).
726
+ But its state is set to attached when loading container from stashed ops
727
+ 4. attach op for this data store is processed - setAttachState() is called.
728
+ */
729
+ setAttachState(attachState) { }
700
730
  async getInitialSnapshotDetails() {
701
731
  return this.initialSnapshotDetailsP;
702
732
  }
@@ -710,21 +740,22 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
710
740
  exports.RemoteFluidDataStoreContext = RemoteFluidDataStoreContext;
711
741
  /**
712
742
  * Base class for detached & attached context classes
743
+ * @internal
713
744
  */
714
745
  class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
715
746
  constructor(props) {
716
- super(props, props.snapshotTree !== undefined ? true : false /* existing */, true /* isLocalDataStore */, props.makeLocallyVisibleFn);
717
- this.initialSnapshotDetailsP = new core_utils_1.LazyPromise(async () => {
747
+ super(props, props.snapshotTree !== undefined /* existing */, true /* isLocalDataStore */, props.makeLocallyVisibleFn);
748
+ this.initialSnapshotDetailsP = new internal_1.LazyPromise(async () => {
718
749
  let snapshot = this.snapshotTree;
719
750
  let attributes;
720
751
  let isRootDataStore = false;
721
752
  if (snapshot !== undefined) {
722
753
  // Get the dataStore attributes.
723
754
  // Note: storage can be undefined in special case while detached.
724
- attributes = await (0, index_js_1.getFluidDataStoreAttributes)(this.storage, snapshot);
725
- if ((0, index_js_1.hasIsolatedChannels)(attributes)) {
726
- snapshot = snapshot.trees[runtime_definitions_1.channelsTreeName];
727
- (0, core_utils_1.assert)(snapshot !== undefined, 0x1ff /* "isolated channels subtree should exist in local datastore snapshot" */);
755
+ attributes = await (0, index_js_2.getFluidDataStoreAttributes)(this.storage, snapshot);
756
+ if ((0, index_js_2.hasIsolatedChannels)(attributes)) {
757
+ snapshot = snapshot.trees[internal_3.channelsTreeName];
758
+ (0, internal_1.assert)(snapshot !== undefined, 0x1ff /* "isolated channels subtree should exist in local datastore snapshot" */);
728
759
  }
729
760
  if (this.pkg === undefined) {
730
761
  this.pkg = JSON.parse(attributes.pkg);
@@ -737,7 +768,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
737
768
  }
738
769
  }
739
770
  }
740
- (0, core_utils_1.assert)(this.pkg !== undefined, 0x152 /* "pkg should be available in local data store" */);
771
+ (0, internal_1.assert)(this.pkg !== undefined, 0x152 /* "pkg should be available in local data store" */);
741
772
  return {
742
773
  pkg: this.pkg,
743
774
  isRootDataStore,
@@ -747,38 +778,63 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
747
778
  // Summarizer client should not create local data stores.
748
779
  this.identifyLocalChangeInSummarizer("DataStoreCreatedInSummarizer");
749
780
  this.snapshotTree = props.snapshotTree;
750
- if (props.isRootDataStore === true) {
751
- this.setInMemoryRoot();
752
- }
753
781
  this.createProps = props.createProps;
754
- this.attachListeners();
755
782
  }
756
- attachListeners() {
757
- this.once("attaching", () => {
758
- (0, core_utils_1.assert)(this.attachState === container_definitions_1.AttachState.Detached, 0x14d /* "Should move from detached to attaching" */);
759
- this._attachState = container_definitions_1.AttachState.Attaching;
760
- });
761
- this.once("attached", () => {
762
- (0, core_utils_1.assert)(this.attachState === container_definitions_1.AttachState.Attaching, 0x14e /* "Should move from attaching to attached" */);
763
- this._attachState = container_definitions_1.AttachState.Attached;
764
- });
783
+ setAttachState(attachState) {
784
+ switch (attachState) {
785
+ case container_definitions_1.AttachState.Attaching:
786
+ (0, internal_1.assert)(this.attachState === container_definitions_1.AttachState.Detached, 0x14d /* "Should move from detached to attaching" */);
787
+ this._attachState = container_definitions_1.AttachState.Attaching;
788
+ if (this.channel?.setAttachState) {
789
+ this.channel.setAttachState(attachState);
790
+ }
791
+ else if (this.channel) {
792
+ // back-compat! To be removed in the future
793
+ // Added in "2.0.0-rc.2.0.0" timeframe.
794
+ this.emit("attaching");
795
+ }
796
+ break;
797
+ case container_definitions_1.AttachState.Attached:
798
+ // We can get called into here twice, as result of both container and data store being attached, if
799
+ // those processes overlapped, for example, in a flow like that one:
800
+ // 1. Container attach started
801
+ // 2. data store attachment started
802
+ // 3. container attached
803
+ // 4. data store attached.
804
+ if (this.attachState !== container_definitions_1.AttachState.Attached) {
805
+ (0, internal_1.assert)(this.attachState === container_definitions_1.AttachState.Attaching, 0x14e /* "Should move from attaching to attached" */);
806
+ this._attachState = container_definitions_1.AttachState.Attached;
807
+ this.channel?.setAttachState?.(attachState);
808
+ if (this.channel?.setAttachState) {
809
+ this.channel.setAttachState(attachState);
810
+ }
811
+ else if (this.channel) {
812
+ // back-compat! To be removed in the future
813
+ // Added in "2.0.0-rc.2.0.0" timeframe.
814
+ this.emit("attached");
815
+ }
816
+ }
817
+ break;
818
+ default:
819
+ (0, internal_1.unreachableCase)(attachState, "unreached");
820
+ }
765
821
  }
766
822
  /**
767
823
  * @see FluidDataStoreContext.getAttachData
768
824
  */
769
825
  getAttachData(includeGCData, telemetryContext) {
770
- (0, core_utils_1.assert)(this.channel !== undefined, 0x14f /* "There should be a channel when generating attach message" */);
771
- (0, core_utils_1.assert)(this.pkg !== undefined, 0x150 /* "pkg should be available in local data store context" */);
826
+ (0, internal_1.assert)(this.channel !== undefined, 0x14f /* "There should be a channel when generating attach message" */);
827
+ (0, internal_1.assert)(this.pkg !== undefined, 0x150 /* "pkg should be available in local data store context" */);
772
828
  const attachSummary = this.channel.getAttachSummary(telemetryContext);
773
829
  // Wrap dds summaries in .channels subtree.
774
- (0, index_js_1.wrapSummaryInChannelsTree)(attachSummary);
830
+ (0, index_js_2.wrapSummaryInChannelsTree)(attachSummary);
775
831
  // Add data store's attributes to the summary.
776
832
  const attributes = createAttributes(this.pkg, this.isInMemoryRoot());
777
- (0, runtime_utils_1.addBlobToSummary)(attachSummary, index_js_1.dataStoreAttributesBlobName, JSON.stringify(attributes));
833
+ (0, internal_4.addBlobToSummary)(attachSummary, index_js_2.dataStoreAttributesBlobName, JSON.stringify(attributes));
778
834
  if (includeGCData) {
779
835
  const gcData = this.channel.getAttachGCData?.(telemetryContext);
780
836
  if (gcData !== undefined) {
781
- (0, runtime_utils_1.addBlobToSummary)(attachSummary, runtime_definitions_1.gcDataBlobKey, JSON.stringify(gcData));
837
+ (0, internal_4.addBlobToSummary)(attachSummary, internal_3.gcDataBlobKey, JSON.stringify(gcData));
782
838
  }
783
839
  }
784
840
  // Add loadingGroupId to the summary
@@ -802,7 +858,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
802
858
  */
803
859
  delete() {
804
860
  // TODO: GC:Validation - potentially prevent this from happening or asserting. Maybe throw here.
805
- (0, index_js_2.sendGCUnexpectedUsageEvent)(this.mc, {
861
+ (0, index_js_1.sendGCUnexpectedUsageEvent)(this.mc, {
806
862
  eventName: "GC_Deleted_DataStore_Unexpected_Delete",
807
863
  message: "Unexpected deletion of a local data store context",
808
864
  category: "error",
@@ -817,6 +873,7 @@ exports.LocalFluidDataStoreContextBase = LocalFluidDataStoreContextBase;
817
873
  * Various workflows (snapshot creation, requests) result in .realize() being called
818
874
  * on context, resulting in instantiation and attachment of runtime.
819
875
  * Runtime is created using data store factory that is associated with this context.
876
+ * @internal
820
877
  */
821
878
  class LocalFluidDataStoreContext extends LocalFluidDataStoreContextBase {
822
879
  constructor(props) {
@@ -837,16 +894,16 @@ class LocalDetachedFluidDataStoreContext extends LocalFluidDataStoreContextBase
837
894
  this.channelToDataStoreFn = props.channelToDataStoreFn;
838
895
  }
839
896
  async attachRuntime(registry, dataStoreChannel) {
840
- (0, core_utils_1.assert)(this.detachedRuntimeCreation, 0x154 /* "runtime creation is already attached" */);
897
+ (0, internal_1.assert)(this.detachedRuntimeCreation, 0x154 /* "runtime creation is already attached" */);
841
898
  this.detachedRuntimeCreation = false;
842
- (0, core_utils_1.assert)(this.channelP === undefined, 0x155 /* "channel deferral is already set" */);
899
+ (0, internal_1.assert)(this.channelP === undefined, 0x155 /* "channel deferral is already set" */);
843
900
  this.channelP = Promise.resolve()
844
901
  .then(async () => {
845
902
  const factory = registry.IFluidDataStoreFactory;
846
903
  const factory2 = await this.factoryFromPackagePath();
847
- (0, core_utils_1.assert)(factory2 === factory, 0x156 /* "Unexpected factory for package path" */);
904
+ (0, internal_1.assert)(factory2 === factory, 0x156 /* "Unexpected factory for package path" */);
848
905
  await super.bindRuntime(dataStoreChannel, false /* existing */);
849
- (0, core_utils_1.assert)(!(await this.isRoot()), 0x8f7 /* there are no more createRootDataStore() kind of APIs! */);
906
+ (0, internal_1.assert)(!(await this.isRoot()), 0x8f7 /* there are no more createRootDataStore() kind of APIs! */);
850
907
  return dataStoreChannel;
851
908
  })
852
909
  .catch((error) => {