@fluidframework/container-runtime 2.23.0 → 2.31.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 (317) hide show
  1. package/CHANGELOG.md +593 -537
  2. package/api-report/container-runtime.legacy.alpha.api.md +0 -246
  3. package/dist/blobManager/blobManager.d.ts +11 -9
  4. package/dist/blobManager/blobManager.d.ts.map +1 -1
  5. package/dist/blobManager/blobManager.js +38 -39
  6. package/dist/blobManager/blobManager.js.map +1 -1
  7. package/dist/blobManager/blobManagerSnapSum.d.ts +2 -4
  8. package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  9. package/dist/blobManager/blobManagerSnapSum.js +6 -6
  10. package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
  11. package/dist/channelCollection.d.ts +1 -7
  12. package/dist/channelCollection.d.ts.map +1 -1
  13. package/dist/channelCollection.js +2 -27
  14. package/dist/channelCollection.js.map +1 -1
  15. package/dist/connectionTelemetry.d.ts +0 -43
  16. package/dist/connectionTelemetry.d.ts.map +1 -1
  17. package/dist/connectionTelemetry.js.map +1 -1
  18. package/dist/containerRuntime.d.ts +40 -145
  19. package/dist/containerRuntime.d.ts.map +1 -1
  20. package/dist/containerRuntime.js +149 -364
  21. package/dist/containerRuntime.js.map +1 -1
  22. package/dist/dataStoreContext.d.ts +6 -14
  23. package/dist/dataStoreContext.d.ts.map +1 -1
  24. package/dist/dataStoreContext.js +14 -26
  25. package/dist/dataStoreContext.js.map +1 -1
  26. package/dist/gc/garbageCollection.d.ts.map +1 -1
  27. package/dist/gc/garbageCollection.js +2 -20
  28. package/dist/gc/garbageCollection.js.map +1 -1
  29. package/dist/gc/gcConfigs.d.ts.map +1 -1
  30. package/dist/gc/gcConfigs.js +0 -2
  31. package/dist/gc/gcConfigs.js.map +1 -1
  32. package/dist/gc/gcDefinitions.d.ts +8 -24
  33. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  34. package/dist/gc/gcDefinitions.js +1 -3
  35. package/dist/gc/gcDefinitions.js.map +1 -1
  36. package/dist/gc/gcHelpers.d.ts.map +1 -1
  37. package/dist/gc/gcHelpers.js +1 -4
  38. package/dist/gc/gcHelpers.js.map +1 -1
  39. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  40. package/dist/gc/gcSummaryStateTracker.js +0 -1
  41. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  42. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  43. package/dist/gc/gcTelemetry.js +6 -18
  44. package/dist/gc/gcTelemetry.js.map +1 -1
  45. package/dist/index.d.ts +2 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +2 -2
  48. package/dist/index.js.map +1 -1
  49. package/dist/legacy.d.ts +0 -29
  50. package/dist/messageTypes.d.ts.map +1 -1
  51. package/dist/messageTypes.js.map +1 -1
  52. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  53. package/dist/opLifecycle/batchManager.js +16 -5
  54. package/dist/opLifecycle/batchManager.js.map +1 -1
  55. package/dist/opLifecycle/outbox.d.ts +12 -3
  56. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  57. package/dist/opLifecycle/outbox.js +41 -21
  58. package/dist/opLifecycle/outbox.js.map +1 -1
  59. package/dist/packageVersion.d.ts +1 -1
  60. package/dist/packageVersion.js +1 -1
  61. package/dist/packageVersion.js.map +1 -1
  62. package/dist/pendingStateManager.d.ts +1 -0
  63. package/dist/pendingStateManager.d.ts.map +1 -1
  64. package/dist/pendingStateManager.js +12 -2
  65. package/dist/pendingStateManager.js.map +1 -1
  66. package/dist/runCounter.d.ts +11 -0
  67. package/dist/runCounter.d.ts.map +1 -0
  68. package/dist/runCounter.js +43 -0
  69. package/dist/runCounter.js.map +1 -0
  70. package/dist/runtimeLayerCompatState.d.ts +51 -0
  71. package/dist/runtimeLayerCompatState.d.ts.map +1 -0
  72. package/dist/runtimeLayerCompatState.js +123 -0
  73. package/dist/runtimeLayerCompatState.js.map +1 -0
  74. package/dist/signalTelemetryProcessing.d.ts +33 -0
  75. package/dist/signalTelemetryProcessing.d.ts.map +1 -0
  76. package/dist/signalTelemetryProcessing.js +149 -0
  77. package/dist/signalTelemetryProcessing.js.map +1 -0
  78. package/dist/summary/documentSchema.d.ts +7 -31
  79. package/dist/summary/documentSchema.d.ts.map +1 -1
  80. package/dist/summary/documentSchema.js +2 -18
  81. package/dist/summary/documentSchema.js.map +1 -1
  82. package/dist/summary/index.d.ts +2 -1
  83. package/dist/summary/index.d.ts.map +1 -1
  84. package/dist/summary/index.js +7 -1
  85. package/dist/summary/index.js.map +1 -1
  86. package/dist/summary/orderedClientElection.d.ts +1 -3
  87. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  88. package/dist/summary/orderedClientElection.js.map +1 -1
  89. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -3
  90. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  91. package/dist/summary/runWhileConnectedCoordinator.js +2 -7
  92. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  93. package/dist/summary/runningSummarizer.d.ts +1 -2
  94. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  95. package/dist/summary/runningSummarizer.js +4 -23
  96. package/dist/summary/runningSummarizer.js.map +1 -1
  97. package/dist/summary/summarizer.d.ts +2 -5
  98. package/dist/summary/summarizer.d.ts.map +1 -1
  99. package/dist/summary/summarizer.js +3 -11
  100. package/dist/summary/summarizer.js.map +1 -1
  101. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  102. package/dist/summary/summarizerClientElection.js +0 -1
  103. package/dist/summary/summarizerClientElection.js.map +1 -1
  104. package/dist/summary/summarizerHeuristics.d.ts +1 -1
  105. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  106. package/dist/summary/summarizerHeuristics.js.map +1 -1
  107. package/dist/summary/summarizerNode/summarizerNode.d.ts +2 -2
  108. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  109. package/dist/summary/summarizerNode/summarizerNode.js +4 -4
  110. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  111. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +1 -18
  112. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  113. package/dist/summary/summarizerNode/summarizerNodeUtils.js +0 -27
  114. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  115. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -2
  116. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  117. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +1 -2
  118. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  119. package/dist/summary/summarizerTypes.d.ts +109 -22
  120. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  121. package/dist/summary/summarizerTypes.js.map +1 -1
  122. package/dist/summary/summaryFormat.d.ts +3 -9
  123. package/dist/summary/summaryFormat.d.ts.map +1 -1
  124. package/dist/summary/summaryFormat.js.map +1 -1
  125. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  126. package/dist/summary/summaryGenerator.js +3 -9
  127. package/dist/summary/summaryGenerator.js.map +1 -1
  128. package/dist/summary/summaryHelpers.d.ts +19 -0
  129. package/dist/summary/summaryHelpers.d.ts.map +1 -0
  130. package/dist/summary/summaryHelpers.js +90 -0
  131. package/dist/summary/summaryHelpers.js.map +1 -0
  132. package/dist/summary/summaryManager.d.ts.map +1 -1
  133. package/dist/summary/summaryManager.js +0 -2
  134. package/dist/summary/summaryManager.js.map +1 -1
  135. package/lib/blobManager/blobManager.d.ts +11 -9
  136. package/lib/blobManager/blobManager.d.ts.map +1 -1
  137. package/lib/blobManager/blobManager.js +37 -37
  138. package/lib/blobManager/blobManager.js.map +1 -1
  139. package/lib/blobManager/blobManagerSnapSum.d.ts +2 -4
  140. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  141. package/lib/blobManager/blobManagerSnapSum.js +6 -6
  142. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  143. package/lib/channelCollection.d.ts +1 -7
  144. package/lib/channelCollection.d.ts.map +1 -1
  145. package/lib/channelCollection.js +3 -30
  146. package/lib/channelCollection.js.map +1 -1
  147. package/lib/connectionTelemetry.d.ts +0 -43
  148. package/lib/connectionTelemetry.d.ts.map +1 -1
  149. package/lib/connectionTelemetry.js.map +1 -1
  150. package/lib/containerRuntime.d.ts +40 -145
  151. package/lib/containerRuntime.d.ts.map +1 -1
  152. package/lib/containerRuntime.js +151 -372
  153. package/lib/containerRuntime.js.map +1 -1
  154. package/lib/dataStoreContext.d.ts +6 -14
  155. package/lib/dataStoreContext.d.ts.map +1 -1
  156. package/lib/dataStoreContext.js +14 -26
  157. package/lib/dataStoreContext.js.map +1 -1
  158. package/lib/gc/garbageCollection.d.ts.map +1 -1
  159. package/lib/gc/garbageCollection.js +3 -23
  160. package/lib/gc/garbageCollection.js.map +1 -1
  161. package/lib/gc/gcConfigs.d.ts.map +1 -1
  162. package/lib/gc/gcConfigs.js +0 -2
  163. package/lib/gc/gcConfigs.js.map +1 -1
  164. package/lib/gc/gcDefinitions.d.ts +8 -24
  165. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  166. package/lib/gc/gcDefinitions.js +1 -3
  167. package/lib/gc/gcDefinitions.js.map +1 -1
  168. package/lib/gc/gcHelpers.d.ts.map +1 -1
  169. package/lib/gc/gcHelpers.js +1 -4
  170. package/lib/gc/gcHelpers.js.map +1 -1
  171. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  172. package/lib/gc/gcSummaryStateTracker.js +0 -1
  173. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  174. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  175. package/lib/gc/gcTelemetry.js +7 -21
  176. package/lib/gc/gcTelemetry.js.map +1 -1
  177. package/lib/index.d.ts +2 -2
  178. package/lib/index.d.ts.map +1 -1
  179. package/lib/index.js +2 -2
  180. package/lib/index.js.map +1 -1
  181. package/lib/legacy.d.ts +0 -29
  182. package/lib/messageTypes.d.ts.map +1 -1
  183. package/lib/messageTypes.js.map +1 -1
  184. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  185. package/lib/opLifecycle/batchManager.js +16 -5
  186. package/lib/opLifecycle/batchManager.js.map +1 -1
  187. package/lib/opLifecycle/outbox.d.ts +12 -3
  188. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  189. package/lib/opLifecycle/outbox.js +43 -23
  190. package/lib/opLifecycle/outbox.js.map +1 -1
  191. package/lib/packageVersion.d.ts +1 -1
  192. package/lib/packageVersion.js +1 -1
  193. package/lib/packageVersion.js.map +1 -1
  194. package/lib/pendingStateManager.d.ts +1 -0
  195. package/lib/pendingStateManager.d.ts.map +1 -1
  196. package/lib/pendingStateManager.js +12 -2
  197. package/lib/pendingStateManager.js.map +1 -1
  198. package/lib/runCounter.d.ts +11 -0
  199. package/lib/runCounter.d.ts.map +1 -0
  200. package/lib/runCounter.js +39 -0
  201. package/lib/runCounter.js.map +1 -0
  202. package/lib/runtimeLayerCompatState.d.ts +51 -0
  203. package/lib/runtimeLayerCompatState.d.ts.map +1 -0
  204. package/lib/runtimeLayerCompatState.js +118 -0
  205. package/lib/runtimeLayerCompatState.js.map +1 -0
  206. package/lib/signalTelemetryProcessing.d.ts +33 -0
  207. package/lib/signalTelemetryProcessing.d.ts.map +1 -0
  208. package/lib/signalTelemetryProcessing.js +145 -0
  209. package/lib/signalTelemetryProcessing.js.map +1 -0
  210. package/lib/summary/documentSchema.d.ts +7 -31
  211. package/lib/summary/documentSchema.d.ts.map +1 -1
  212. package/lib/summary/documentSchema.js +2 -18
  213. package/lib/summary/documentSchema.js.map +1 -1
  214. package/lib/summary/index.d.ts +2 -1
  215. package/lib/summary/index.d.ts.map +1 -1
  216. package/lib/summary/index.js +1 -0
  217. package/lib/summary/index.js.map +1 -1
  218. package/lib/summary/orderedClientElection.d.ts +1 -3
  219. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  220. package/lib/summary/orderedClientElection.js.map +1 -1
  221. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -3
  222. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  223. package/lib/summary/runWhileConnectedCoordinator.js +2 -7
  224. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  225. package/lib/summary/runningSummarizer.d.ts +1 -2
  226. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  227. package/lib/summary/runningSummarizer.js +4 -23
  228. package/lib/summary/runningSummarizer.js.map +1 -1
  229. package/lib/summary/summarizer.d.ts +2 -5
  230. package/lib/summary/summarizer.d.ts.map +1 -1
  231. package/lib/summary/summarizer.js +3 -11
  232. package/lib/summary/summarizer.js.map +1 -1
  233. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  234. package/lib/summary/summarizerClientElection.js +0 -1
  235. package/lib/summary/summarizerClientElection.js.map +1 -1
  236. package/lib/summary/summarizerHeuristics.d.ts +1 -1
  237. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  238. package/lib/summary/summarizerHeuristics.js.map +1 -1
  239. package/lib/summary/summarizerNode/summarizerNode.d.ts +2 -2
  240. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  241. package/lib/summary/summarizerNode/summarizerNode.js +5 -5
  242. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  243. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +1 -18
  244. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  245. package/lib/summary/summarizerNode/summarizerNodeUtils.js +1 -25
  246. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  247. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -2
  248. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  249. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +1 -2
  250. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  251. package/lib/summary/summarizerTypes.d.ts +109 -22
  252. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  253. package/lib/summary/summarizerTypes.js.map +1 -1
  254. package/lib/summary/summaryFormat.d.ts +3 -9
  255. package/lib/summary/summaryFormat.d.ts.map +1 -1
  256. package/lib/summary/summaryFormat.js.map +1 -1
  257. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  258. package/lib/summary/summaryGenerator.js +3 -9
  259. package/lib/summary/summaryGenerator.js.map +1 -1
  260. package/lib/summary/summaryHelpers.d.ts +19 -0
  261. package/lib/summary/summaryHelpers.d.ts.map +1 -0
  262. package/lib/summary/summaryHelpers.js +84 -0
  263. package/lib/summary/summaryHelpers.js.map +1 -0
  264. package/lib/summary/summaryManager.d.ts.map +1 -1
  265. package/lib/summary/summaryManager.js +0 -2
  266. package/lib/summary/summaryManager.js.map +1 -1
  267. package/lib/tsdoc-metadata.json +1 -1
  268. package/package.json +20 -23
  269. package/src/blobManager/blobManager.ts +70 -62
  270. package/src/blobManager/blobManagerSnapSum.ts +7 -9
  271. package/src/channelCollection.ts +4 -32
  272. package/src/connectionTelemetry.ts +0 -51
  273. package/src/containerRuntime.ts +259 -622
  274. package/src/dataStoreContext.ts +24 -33
  275. package/src/gc/{garbageCollection.md → README.md} +17 -19
  276. package/src/gc/garbageCollection.ts +9 -26
  277. package/src/gc/gcConfigs.ts +3 -6
  278. package/src/gc/gcDefinitions.ts +10 -28
  279. package/src/gc/gcHelpers.ts +0 -5
  280. package/src/gc/gcSummaryStateTracker.ts +1 -2
  281. package/src/gc/gcTelemetry.ts +8 -15
  282. package/src/index.ts +6 -6
  283. package/src/messageTypes.ts +0 -2
  284. package/src/opLifecycle/batchManager.ts +20 -6
  285. package/src/opLifecycle/outbox.ts +64 -24
  286. package/src/packageVersion.ts +1 -1
  287. package/src/pendingStateManager.ts +18 -2
  288. package/src/runCounter.ts +25 -0
  289. package/src/runtimeLayerCompatState.ts +143 -0
  290. package/src/signalTelemetryProcessing.ts +233 -0
  291. package/src/summary/documentSchema.ts +7 -38
  292. package/src/summary/index.ts +12 -0
  293. package/src/summary/orderedClientElection.ts +1 -3
  294. package/src/summary/runWhileConnectedCoordinator.ts +3 -8
  295. package/src/summary/runningSummarizer.ts +12 -20
  296. package/src/summary/summarizer.ts +6 -18
  297. package/src/summary/summarizerClientElection.ts +0 -2
  298. package/src/summary/summarizerHeuristics.ts +1 -2
  299. package/src/summary/summarizerNode/summarizerNode.ts +6 -5
  300. package/src/summary/summarizerNode/summarizerNodeUtils.ts +1 -27
  301. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +2 -3
  302. package/src/summary/summarizerTypes.ts +119 -23
  303. package/src/summary/summaryFormat.ts +4 -13
  304. package/src/summary/summaryGenerator.ts +1 -8
  305. package/src/summary/summaryHelpers.ts +118 -0
  306. package/src/summary/summaryManager.ts +0 -2
  307. package/tsconfig.json +1 -0
  308. package/dist/layerCompatState.d.ts +0 -19
  309. package/dist/layerCompatState.d.ts.map +0 -1
  310. package/dist/layerCompatState.js +0 -64
  311. package/dist/layerCompatState.js.map +0 -1
  312. package/lib/layerCompatState.d.ts +0 -19
  313. package/lib/layerCompatState.d.ts.map +0 -1
  314. package/lib/layerCompatState.js +0 -60
  315. package/lib/layerCompatState.js.map +0 -1
  316. package/prettier.config.cjs +0 -8
  317. package/src/layerCompatState.ts +0 -75
@@ -32,36 +32,12 @@ export enum ContainerMessageType {
32
32
  Rejoin = "rejoin"
33
33
  }
34
34
 
35
- // @alpha @deprecated
36
- export const currentDocumentVersionSchema = 1;
37
-
38
35
  // @alpha (undocumented)
39
36
  export const DefaultSummaryConfiguration: ISummaryConfiguration;
40
37
 
41
- // @alpha @deprecated
42
- export const DeletedResponseHeaderKey = "wasDeleted";
43
-
44
38
  // @alpha (undocumented)
45
39
  export const disabledCompressionConfig: ICompressionRuntimeOptions;
46
40
 
47
- // @alpha @deprecated
48
- export type DocumentSchemaValueType = string | string[] | true | number | undefined;
49
-
50
- // @alpha @sealed @deprecated
51
- export class DocumentsSchemaController {
52
- constructor(existing: boolean, snapshotSequenceNumber: number, documentMetadataSchema: IDocumentSchema | undefined, features: IDocumentSchemaFeatures, onSchemaChange: (schema: IDocumentSchemaCurrent) => void);
53
- maybeSendSchemaMessage(): IDocumentSchemaChangeMessage | undefined;
54
- // (undocumented)
55
- onDisconnect(): void;
56
- processDocumentSchemaMessages(contents: IDocumentSchemaChangeMessage[], local: boolean, sequenceNumber: number): boolean;
57
- // @deprecated
58
- processDocumentSchemaOp(content: IDocumentSchemaChangeMessage, local: boolean, sequenceNumber: number): boolean;
59
- // (undocumented)
60
- sessionSchema: IDocumentSchemaCurrent;
61
- // (undocumented)
62
- summarizeDocumentSchema(refSeq: number): IDocumentSchemaCurrent | undefined;
63
- }
64
-
65
41
  // @alpha (undocumented)
66
42
  export type EnqueueSummarizeResult = (ISummarizeResults & {
67
43
  readonly alreadyEnqueued?: undefined;
@@ -73,28 +49,6 @@ export type EnqueueSummarizeResult = (ISummarizeResults & {
73
49
  readonly overridden?: undefined;
74
50
  };
75
51
 
76
- // @alpha @deprecated (undocumented)
77
- export type GCFeatureMatrix = {
78
- gcGeneration?: number;
79
- tombstoneGeneration?: undefined;
80
- } | {
81
- tombstoneGeneration: number;
82
- };
83
-
84
- // @alpha @deprecated
85
- export const GCNodeType: {
86
- readonly DataStore: "DataStore";
87
- readonly SubDataStore: "SubDataStore";
88
- readonly Blob: "Blob";
89
- readonly Other: "Other";
90
- };
91
-
92
- // @alpha @deprecated (undocumented)
93
- export type GCNodeType = (typeof GCNodeType)[keyof typeof GCNodeType];
94
-
95
- // @alpha @deprecated (undocumented)
96
- export type GCVersion = number;
97
-
98
52
  // @alpha
99
53
  export interface IAckedSummary {
100
54
  // (undocumented)
@@ -121,14 +75,6 @@ export interface IBaseSummarizeResult {
121
75
  readonly stage: "base";
122
76
  }
123
77
 
124
- // @alpha @deprecated
125
- export interface IBlobManagerLoadInfo {
126
- // (undocumented)
127
- ids?: string[];
128
- // (undocumented)
129
- redirectTable?: [string, string][];
130
- }
131
-
132
78
  // @alpha (undocumented)
133
79
  export interface IBroadcastSummaryResult {
134
80
  // (undocumented)
@@ -137,18 +83,6 @@ export interface IBroadcastSummaryResult {
137
83
  readonly summarizeOp: ISummaryOpMessage;
138
84
  }
139
85
 
140
- // @alpha @deprecated
141
- export interface ICancellableSummarizerController extends ISummaryCancellationToken {
142
- // (undocumented)
143
- stop(reason: SummarizerStopReason): void;
144
- }
145
-
146
- // @alpha @deprecated
147
- export interface ICancellationToken<T> {
148
- readonly cancelled: boolean;
149
- readonly waitCancelled: Promise<T>;
150
- }
151
-
152
86
  // @alpha
153
87
  export interface IClientSummaryWatcher extends IDisposable {
154
88
  // (undocumented)
@@ -163,32 +97,6 @@ export interface ICompressionRuntimeOptions {
163
97
  readonly minimumBatchSizeInBytes: number;
164
98
  }
165
99
 
166
- // @alpha @deprecated (undocumented)
167
- export interface IConnectableRuntime {
168
- // (undocumented)
169
- readonly clientId: string | undefined;
170
- // (undocumented)
171
- readonly connected: boolean;
172
- // (undocumented)
173
- readonly disposed: boolean;
174
- // (undocumented)
175
- once(event: "connected" | "disconnected" | "dispose", listener: () => void): this;
176
- }
177
-
178
- // @alpha @deprecated (undocumented)
179
- export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
180
- readonly disableIsolatedChannels?: true;
181
- // (undocumented)
182
- readonly documentSchema?: IDocumentSchema;
183
- readonly lastMessage?: ISummaryMetadataMessage;
184
- // @deprecated (undocumented)
185
- readonly message?: ISummaryMetadataMessage;
186
- // (undocumented)
187
- readonly summaryFormatVersion: 1;
188
- readonly summaryNumber?: number;
189
- readonly telemetryDocumentId?: string;
190
- }
191
-
192
100
  // @alpha
193
101
  export interface IContainerRuntimeOptions {
194
102
  readonly chunkSizeInBytes?: number;
@@ -205,50 +113,9 @@ export interface IContainerRuntimeOptions {
205
113
  readonly summaryOptions?: ISummaryRuntimeOptions;
206
114
  }
207
115
 
208
- // @alpha @deprecated (undocumented)
209
- export interface ICreateContainerMetadata {
210
- createContainerRuntimeVersion?: string;
211
- createContainerTimestamp?: number;
212
- }
213
-
214
116
  // @alpha
215
117
  export type IdCompressorMode = "on" | "delayed" | undefined;
216
118
 
217
- // @alpha @deprecated
218
- export interface IDocumentSchema {
219
- // (undocumented)
220
- refSeq: number;
221
- // (undocumented)
222
- runtime: Record<string, DocumentSchemaValueType>;
223
- // (undocumented)
224
- version: number;
225
- }
226
-
227
- // @alpha @deprecated
228
- export type IDocumentSchemaChangeMessage = IDocumentSchema;
229
-
230
- // @alpha @deprecated
231
- export type IDocumentSchemaCurrent = {
232
- version: 1;
233
- refSeq: number;
234
- runtime: {
235
- [P in keyof IDocumentSchemaFeatures]?: IDocumentSchemaFeatures[P] extends boolean ? true : IDocumentSchemaFeatures[P];
236
- };
237
- };
238
-
239
- // @alpha @deprecated
240
- export interface IDocumentSchemaFeatures {
241
- // (undocumented)
242
- compressionLz4: boolean;
243
- disallowedVersions: string[];
244
- // (undocumented)
245
- explicitSchemaControl: boolean;
246
- // (undocumented)
247
- idCompressorMode: IdCompressorMode;
248
- // (undocumented)
249
- opGroupingEnabled: boolean;
250
- }
251
-
252
119
  // @alpha
253
120
  export interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
254
121
  readonly afterSequenceNumber?: number;
@@ -282,16 +149,6 @@ export interface IFluidDataStoreAttributes2 extends OmitAttributesVersions<IFlui
282
149
  readonly summaryFormatVersion: 2;
283
150
  }
284
151
 
285
- // @alpha @deprecated
286
- export interface IGCMetadata {
287
- readonly gcFeature?: GCVersion;
288
- readonly gcFeatureMatrix?: GCFeatureMatrix;
289
- readonly sessionExpiryTimeoutMs?: number;
290
- // @deprecated
291
- readonly sweepEnabled?: boolean;
292
- readonly tombstoneTimeoutMs?: number;
293
- }
294
-
295
152
  // @alpha (undocumented)
296
153
  export interface IGCRuntimeOptions {
297
154
  [key: string]: any;
@@ -301,10 +158,6 @@ export interface IGCRuntimeOptions {
301
158
  sweepGracePeriodMs?: number;
302
159
  }
303
160
 
304
- // @alpha @deprecated
305
- export interface IGCStats extends IMarkPhaseStats, ISweepPhaseStats {
306
- }
307
-
308
161
  // @alpha
309
162
  export interface IGeneratedSummaryStats extends ISummaryStats {
310
163
  readonly dataStoreCount: number;
@@ -324,19 +177,6 @@ export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "
324
177
  readonly summaryTree: ISummaryTree;
325
178
  }
326
179
 
327
- // @alpha @deprecated
328
- export interface IMarkPhaseStats {
329
- attachmentBlobCount: number;
330
- dataStoreCount: number;
331
- nodeCount: number;
332
- unrefAttachmentBlobCount: number;
333
- unrefDataStoreCount: number;
334
- unrefNodeCount: number;
335
- updatedAttachmentBlobCount: number;
336
- updatedDataStoreCount: number;
337
- updatedNodeCount: number;
338
- }
339
-
340
180
  // @alpha (undocumented)
341
181
  export interface INackSummaryResult {
342
182
  // (undocumented)
@@ -354,27 +194,12 @@ export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
354
194
  readonly retryOnFailure?: boolean;
355
195
  }
356
196
 
357
- // @alpha @deprecated
358
- export interface IRefreshSummaryAckOptions {
359
- readonly ackHandle: string;
360
- readonly proposalHandle: string | undefined;
361
- readonly summaryLogger: ITelemetryLoggerExt;
362
- readonly summaryRefSeq: number;
363
- }
364
-
365
197
  // @alpha
366
198
  export interface IRetriableFailureError extends Error {
367
199
  // (undocumented)
368
200
  readonly retryAfterSeconds?: number;
369
201
  }
370
202
 
371
- // @alpha @deprecated
372
- export interface ISerializedElection {
373
- readonly electedClientId: string | undefined;
374
- readonly electedParentId: string | undefined;
375
- readonly electionSequenceNumber: number;
376
- }
377
-
378
203
  // @alpha
379
204
  export interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, "stage" | "error"> {
380
205
  readonly clientSequenceNumber: number;
@@ -383,14 +208,6 @@ export interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, "stag
383
208
  readonly submitOpDuration: number;
384
209
  }
385
210
 
386
- // @alpha @deprecated (undocumented)
387
- export interface ISubmitSummaryOptions extends ISummarizeOptions {
388
- readonly cancellationToken: ISummaryCancellationToken;
389
- readonly finalAttempt?: boolean;
390
- readonly latestSummaryRefSeqNum: number;
391
- readonly summaryLogger: ITelemetryLoggerExt;
392
- }
393
-
394
211
  // @alpha
395
212
  export interface ISummarizeOptions {
396
213
  readonly fullTree?: boolean;
@@ -416,29 +233,6 @@ export interface ISummarizeResults {
416
233
  readonly summarySubmitted: Promise<SummarizeResultPart<SubmitSummaryResult, SubmitSummaryFailureData>>;
417
234
  }
418
235
 
419
- // @alpha @deprecated (undocumented)
420
- export interface ISummarizerInternalsProvider {
421
- refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;
422
- submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
423
- }
424
-
425
- // @alpha @deprecated (undocumented)
426
- export interface ISummarizerRuntime extends IConnectableRuntime {
427
- // (undocumented)
428
- readonly baseLogger: ITelemetryBaseLogger;
429
- // (undocumented)
430
- closeFn(): void;
431
- // (undocumented)
432
- readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
433
- // (undocumented)
434
- disposeFn(): void;
435
- // (undocumented)
436
- off(event: "op", listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void): this;
437
- // (undocumented)
438
- on(event: "op", listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void): this;
439
- readonly summarizerClientId: string | undefined;
440
- }
441
-
442
236
  // @alpha
443
237
  export interface ISummary {
444
238
  // (undocumented)
@@ -466,9 +260,6 @@ export interface ISummaryBaseConfiguration {
466
260
  maxOpsSinceLastSummary: number;
467
261
  }
468
262
 
469
- // @alpha @deprecated
470
- export type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;
471
-
472
263
  // @alpha (undocumented)
473
264
  export interface ISummaryCollectionOpEvents extends IEvent {
474
265
  // (undocumented)
@@ -504,9 +295,6 @@ export interface ISummaryConfigurationHeuristics extends ISummaryBaseConfigurati
504
295
  state: "enabled";
505
296
  }
506
297
 
507
- // @alpha @deprecated
508
- export type ISummaryMetadataMessage = Pick<ISequencedDocumentMessage, "clientId" | "clientSequenceNumber" | "minimumSequenceNumber" | "referenceSequenceNumber" | "sequenceNumber" | "timestamp" | "type">;
509
-
510
298
  // @alpha
511
299
  export interface ISummaryNackMessage extends ISequencedDocumentMessage {
512
300
  // (undocumented)
@@ -530,16 +318,6 @@ export interface ISummaryRuntimeOptions {
530
318
  summaryConfigOverrides?: ISummaryConfiguration;
531
319
  }
532
320
 
533
- // @alpha @deprecated
534
- export interface ISweepPhaseStats {
535
- deletedAttachmentBlobCount: number;
536
- deletedDataStoreCount: number;
537
- deletedNodeCount: number;
538
- lifetimeAttachmentBlobCount: number;
539
- lifetimeDataStoreCount: number;
540
- lifetimeNodeCount: number;
541
- }
542
-
543
321
  // @alpha
544
322
  export interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "stage"> {
545
323
  readonly handle: string;
@@ -584,30 +362,6 @@ export interface SubmitSummaryFailureData {
584
362
  // @alpha
585
363
  export type SubmitSummaryResult = IBaseSummarizeResult | IGenerateSummaryTreeResult | IUploadSummaryResult | ISubmitSummaryOpResult;
586
364
 
587
- // @alpha @deprecated
588
- export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements ISummarizer {
589
- constructor(
590
- runtime: ISummarizerRuntime, configurationGetter: () => ISummaryConfiguration,
591
- internalsProvider: ISummarizerInternalsProvider, handleContext: IFluidHandleContext, summaryCollection: SummaryCollection, runCoordinatorCreateFn: (runtime: IConnectableRuntime) => Promise<ICancellableSummarizerController>);
592
- // (undocumented)
593
- close(): void;
594
- dispose(): void;
595
- // (undocumented)
596
- enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult;
597
- // (undocumented)
598
- get ISummarizer(): this;
599
- // (undocumented)
600
- recordSummaryAttempt?(summaryRefSeqNum?: number): void;
601
- // (undocumented)
602
- run(onBehalfOf: string): Promise<SummarizerStopReason>;
603
- stop(reason: SummarizerStopReason): void;
604
- static stopReasonCanRunLastSummary(stopReason: SummarizerStopReason): boolean;
605
- // (undocumented)
606
- summarizeOnDemand(options: IOnDemandSummarizeOptions): ISummarizeResults;
607
- // (undocumented)
608
- readonly summaryCollection: SummaryCollection;
609
- }
610
-
611
365
  // @alpha (undocumented)
612
366
  export type SummarizeResultPart<TSuccess, TFailure = undefined> = {
613
367
  success: true;
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
6
6
  import { IContainerRuntime, IContainerRuntimeEvents } from "@fluidframework/container-runtime-definitions/internal";
7
- import { IFluidHandleContext, type IFluidHandleInternal } from "@fluidframework/core-interfaces/internal";
7
+ import type { IEvent, IEventProvider, IFluidHandleContext, IFluidHandleInternal } from "@fluidframework/core-interfaces/internal";
8
8
  import { IDocumentStorageService, ICreateBlobResponse } from "@fluidframework/driver-definitions/internal";
9
9
  import { IGarbageCollectionData, ISummaryTreeWithStats, ITelemetryContext, type ISequencedMessageEnvelope } from "@fluidframework/runtime-definitions/internal";
10
10
  import { FluidHandleBase } from "@fluidframework/runtime-utils/internal";
@@ -30,7 +30,7 @@ export declare class BlobHandle extends FluidHandleBase<ArrayBufferLike> {
30
30
  }
31
31
  export type IBlobManagerRuntime = Pick<IContainerRuntime, "attachState" | "connected" | "baseLogger" | "clientDetails" | "disposed"> & TypedEventEmitter<IContainerRuntimeEvents>;
32
32
  export interface IPendingBlobs {
33
- [id: string]: {
33
+ [localId: string]: {
34
34
  blob: string;
35
35
  storageId?: string;
36
36
  uploadTime?: number;
@@ -38,14 +38,17 @@ export interface IPendingBlobs {
38
38
  acked?: boolean;
39
39
  };
40
40
  }
41
- export interface IBlobManagerEvents {
41
+ export interface IBlobManagerEvents extends IEvent {
42
42
  (event: "noPendingBlobs", listener: () => void): any;
43
43
  }
44
44
  export declare const blobManagerBasePath: "_blobs";
45
- export declare class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
45
+ export declare class BlobManager {
46
46
  private readonly mc;
47
+ private readonly publicEvents;
48
+ get events(): IEventProvider<IBlobManagerEvents>;
49
+ private readonly internalEvents;
47
50
  /**
48
- * Map of local IDs to storage IDs. Contains identity entries (idid) for storage IDs. All requested IDs should
51
+ * Map of local IDs to storage IDs. Contains identity entries (storageIdstorageId) for storage IDs. All requested IDs should
49
52
  * be a key in this map. Blobs created while the container is detached are stored in IDetachedBlobStorage which
50
53
  * gives local IDs; the storage IDs are filled in at attach time.
51
54
  * Note: It contains mappings from all clients, i.e., from remote clients as well. local ID comes from the client
@@ -65,7 +68,7 @@ export declare class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
65
68
  private readonly sendBlobAttachOp;
66
69
  private stopAttaching;
67
70
  private readonly routeContext;
68
- private readonly getStorage;
71
+ private readonly storage;
69
72
  private readonly blobRequested;
70
73
  private readonly isBlobDeleted;
71
74
  private readonly runtime;
@@ -74,8 +77,8 @@ export declare class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
74
77
  readonly stashedBlobsUploadP: Promise<(void | ICreateBlobResponse)[]>;
75
78
  constructor(props: {
76
79
  readonly routeContext: IFluidHandleContext;
77
- snapshot: IBlobManagerLoadInfo;
78
- readonly getStorage: () => IDocumentStorageService;
80
+ blobManagerLoadInfo: IBlobManagerLoadInfo;
81
+ readonly storage: IDocumentStorageService;
79
82
  /**
80
83
  * Submit a BlobAttach op. When a blob is uploaded, there is a short grace period before which the blob is
81
84
  * deleted. The BlobAttach op notifies the server that blob is in use. The server will then not delete the
@@ -170,5 +173,4 @@ export declare class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
170
173
  * Returns whether a given path is for attachment blobs that are in the format - "/blobManagerBasePath/...".
171
174
  */
172
175
  export declare const isBlobPath: (path: string) => path is `/_blobs/${string}`;
173
- export declare const areBlobPathParts: (pathParts: string[]) => pathParts is ["", "_blobs", string];
174
176
  //# sourceMappingURL=blobManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../../src/blobManager/blobManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../../src/blobManager/blobManager.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.areBlobPathParts = exports.isBlobPath = exports.BlobManager = exports.blobManagerBasePath = exports.BlobHandle = void 0;
7
+ exports.isBlobPath = exports.BlobManager = exports.blobManagerBasePath = exports.BlobHandle = void 0;
8
8
  const client_utils_1 = require("@fluid-internal/client-utils");
9
9
  const container_definitions_1 = require("@fluidframework/container-definitions");
10
10
  const internal_1 = require("@fluidframework/core-utils/internal");
@@ -51,9 +51,13 @@ const stashedPendingBlobOverrides = {
51
51
  uploadTime: undefined,
52
52
  };
53
53
  exports.blobManagerBasePath = "_blobs";
54
- class BlobManager extends client_utils_1.TypedEventEmitter {
54
+ class BlobManager {
55
+ get events() {
56
+ return this.publicEvents;
57
+ }
55
58
  constructor(props) {
56
- super();
59
+ this.publicEvents = new client_utils_1.TypedEventEmitter();
60
+ this.internalEvents = new client_utils_1.TypedEventEmitter();
57
61
  /**
58
62
  * Blobs which we have not yet seen a BlobAttach op round-trip and not yet attached to a DDS.
59
63
  */
@@ -66,9 +70,9 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
66
70
  this.opsInFlight = new Map();
67
71
  this.stopAttaching = false;
68
72
  this.pendingStashedBlobs = new Map();
69
- const { routeContext, snapshot, getStorage, sendBlobAttachOp, blobRequested, isBlobDeleted, runtime, stashedBlobs, localBlobIdGenerator, } = props;
73
+ const { routeContext, blobManagerLoadInfo, storage, sendBlobAttachOp, blobRequested, isBlobDeleted, runtime, stashedBlobs, localBlobIdGenerator, } = props;
70
74
  this.routeContext = routeContext;
71
- this.getStorage = getStorage;
75
+ this.storage = storage;
72
76
  this.blobRequested = blobRequested;
73
77
  this.isBlobDeleted = isBlobDeleted;
74
78
  this.runtime = runtime;
@@ -77,7 +81,7 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
77
81
  logger: this.runtime.baseLogger,
78
82
  namespace: "BlobManager",
79
83
  });
80
- this.redirectTable = (0, blobManagerSnapSum_js_1.toRedirectTable)(snapshot, this.mc.logger, this.runtime.attachState);
84
+ this.redirectTable = (0, blobManagerSnapSum_js_1.toRedirectTable)(blobManagerLoadInfo, this.mc.logger, this.runtime.attachState);
81
85
  // Begin uploading stashed blobs from previous container instance
82
86
  for (const [localId, entry] of Object.entries(stashedBlobs ?? {})) {
83
87
  const { acked, storageId, minTTLInSeconds, uploadTime } = entry;
@@ -108,7 +112,7 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
108
112
  uploadP: this.pendingStashedBlobs.get(localId),
109
113
  });
110
114
  }
111
- this.stashedBlobsUploadP = new internal_1.LazyPromise(async () => internal_4.PerformanceEvent.timedExecAsync(this.mc.logger, { eventName: "BlobUploadProcessStashedChanges", count: this.pendingStashedBlobs.size }, async () => Promise.all(this.pendingStashedBlobs.values()), { start: true, end: true })).finally(() => {
115
+ this.stashedBlobsUploadP = internal_4.PerformanceEvent.timedExecAsync(this.mc.logger, { eventName: "BlobUploadProcessStashedChanges", count: this.pendingStashedBlobs.size }, async () => Promise.all(this.pendingStashedBlobs.values()), { start: true, end: true }).finally(() => {
112
116
  this.pendingStashedBlobs.clear();
113
117
  });
114
118
  this.sendBlobAttachOp = (localId, blobId) => {
@@ -137,11 +141,11 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
137
141
  }
138
142
  }
139
143
  pendingEntry.opsent = true;
140
- return sendBlobAttachOp(localId, blobId);
144
+ sendBlobAttachOp(localId, blobId);
141
145
  };
142
146
  }
143
147
  get allBlobsAttached() {
144
- for (const [, entry] of this.pendingBlobs) {
148
+ for (const entry of this.pendingBlobs.values()) {
145
149
  if (entry.attached === false) {
146
150
  return false;
147
151
  }
@@ -186,9 +190,7 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
186
190
  storageId = attachedStorageId;
187
191
  }
188
192
  return internal_4.PerformanceEvent.timedExecAsync(this.mc.logger, { eventName: "AttachmentReadBlob", id: storageId }, async (event) => {
189
- return this.getStorage()
190
- .readBlob(storageId)
191
- .catch((error) => {
193
+ return this.storage.readBlob(storageId).catch((error) => {
192
194
  if (this.runtime.disposed) {
193
195
  // If the runtime is disposed, this is not an error we care to track, it's expected behavior.
194
196
  event.cancel({ category: "generic" });
@@ -197,24 +199,24 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
197
199
  });
198
200
  }, { end: true, cancel: "error" });
199
201
  }
200
- getBlobHandle(id) {
201
- (0, internal_1.assert)(this.redirectTable.has(id) || this.pendingBlobs.has(id), 0x384 /* requesting handle for unknown blob */);
202
- const pending = this.pendingBlobs.get(id);
202
+ getBlobHandle(localId) {
203
+ (0, internal_1.assert)(this.redirectTable.has(localId) || this.pendingBlobs.has(localId), 0x384 /* requesting handle for unknown blob */);
204
+ const pending = this.pendingBlobs.get(localId);
203
205
  // Create a callback function for once the blob has been attached
204
206
  const callback = pending
205
207
  ? () => {
206
208
  pending.attached = true;
207
209
  // Notify listeners (e.g. serialization process) that blob has been attached
208
- this.emit("blobAttached", pending);
209
- this.deletePendingBlobMaybe(id);
210
+ this.internalEvents.emit("blobAttached", pending);
211
+ this.deletePendingBlobMaybe(localId);
210
212
  }
211
213
  : undefined;
212
- return new BlobHandle(getGCNodePathFromBlobId(id), this.routeContext, async () => this.getBlob(id), callback);
214
+ return new BlobHandle(getGCNodePathFromBlobId(localId), this.routeContext, async () => this.getBlob(localId), callback);
213
215
  }
214
216
  async createBlobDetached(blob) {
215
217
  // Blobs created while the container is detached are stored in IDetachedBlobStorage.
216
218
  // The 'IDocumentStorageService.createBlob()' call below will respond with a localId.
217
- const response = await this.getStorage().createBlob(blob);
219
+ const response = await this.storage.createBlob(blob);
218
220
  this.setRedirection(response.id, undefined);
219
221
  return this.getBlobHandle(response.id);
220
222
  }
@@ -257,7 +259,7 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
257
259
  async uploadBlob(localId, blob) {
258
260
  return (0, internal_2.runWithRetry)(async () => {
259
261
  try {
260
- return await this.getStorage().createBlob(blob);
262
+ return await this.storage.createBlob(blob);
261
263
  }
262
264
  catch (error) {
263
265
  const entry = this.pendingBlobs.get(localId);
@@ -291,17 +293,17 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
291
293
  setRedirection(fromId, toId) {
292
294
  this.redirectTable.set(fromId, toId);
293
295
  }
294
- deletePendingBlobMaybe(id) {
295
- if (this.pendingBlobs.has(id)) {
296
- const entry = this.pendingBlobs.get(id);
296
+ deletePendingBlobMaybe(localId) {
297
+ if (this.pendingBlobs.has(localId)) {
298
+ const entry = this.pendingBlobs.get(localId);
297
299
  if (entry?.attached && entry?.acked) {
298
- this.deletePendingBlob(id);
300
+ this.deletePendingBlob(localId);
299
301
  }
300
302
  }
301
303
  }
302
304
  deletePendingBlob(id) {
303
305
  if (this.pendingBlobs.delete(id) && !this.hasPendingBlobs) {
304
- this.emit("noPendingBlobs");
306
+ this.publicEvents.emit("noPendingBlobs");
305
307
  }
306
308
  }
307
309
  onUploadResolve(localId, response) {
@@ -556,7 +558,7 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
556
558
  // This while is used to stash blobs created while attaching and getting blobs
557
559
  while (localBlobs.size < this.pendingBlobs.size) {
558
560
  const attachBlobsP = [];
559
- for (const [id, entry] of this.pendingBlobs) {
561
+ for (const [localId, entry] of this.pendingBlobs) {
560
562
  if (!localBlobs.has(entry)) {
561
563
  localBlobs.add(entry);
562
564
  // In order to follow natural blob creation flow we need to:
@@ -564,12 +566,12 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
564
566
  // 2 resolve the blob handle
565
567
  // 3 wait for op referencing the blob
566
568
  if (!entry.opsent) {
567
- this.sendBlobAttachOp(id, entry.storageId);
569
+ this.sendBlobAttachOp(localId, entry.storageId);
568
570
  }
569
571
  // Resolving the blob handle to let hosts continue with their operations (it will resolve
570
572
  // original createBlob call) and let them attach the blob. This is a lie we told since the upload
571
573
  // hasn't finished yet, but it's fine since we will retry on rehydration.
572
- entry.handleP.resolve(this.getBlobHandle(id));
574
+ entry.handleP.resolve(this.getBlobHandle(localId));
573
575
  // Array of promises that will resolve when blobs get attached.
574
576
  attachBlobsP.push(new Promise((resolve, reject) => {
575
577
  stopBlobAttachingSignal?.addEventListener("abort", () => {
@@ -578,7 +580,7 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
578
580
  }, { once: true });
579
581
  const onBlobAttached = (attachedEntry) => {
580
582
  if (attachedEntry === entry) {
581
- this.off("blobAttached", onBlobAttached);
583
+ this.internalEvents.off("blobAttached", onBlobAttached);
582
584
  resolve();
583
585
  }
584
586
  };
@@ -586,27 +588,25 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
586
588
  resolve();
587
589
  }
588
590
  else {
589
- this.on("blobAttached", onBlobAttached);
591
+ this.internalEvents.on("blobAttached", onBlobAttached);
590
592
  }
591
593
  }));
592
594
  }
593
595
  }
594
596
  // Wait for all blobs to be attached. This is important, otherwise serialized container
595
597
  // could send the blobAttach op without any op that references the blob, making it useless.
596
- await Promise.allSettled(attachBlobsP).catch(() => {
597
- return undefined;
598
- });
598
+ await Promise.allSettled(attachBlobsP);
599
599
  }
600
- for (const [id, entry] of this.pendingBlobs) {
600
+ for (const [localId, entry] of this.pendingBlobs) {
601
601
  if (stopBlobAttachingSignal?.aborted && !entry.attached) {
602
602
  this.mc.logger.sendTelemetryEvent({
603
603
  eventName: "UnableToStashBlob",
604
- id,
604
+ id: localId,
605
605
  });
606
606
  continue;
607
607
  }
608
608
  (0, internal_1.assert)(entry.attached === true, 0x790 /* stashed blob should be attached */);
609
- blobs[id] = {
609
+ blobs[localId] = {
610
610
  blob: (0, client_utils_1.bufferToString)(entry.blob, "base64"),
611
611
  storageId: entry.storageId,
612
612
  acked: entry.acked,
@@ -630,14 +630,13 @@ const getGCNodePathFromBlobId = (blobId) => `/${exports.blobManagerBasePath}/${b
630
630
  */
631
631
  const getBlobIdFromGCNodePath = (nodePath) => {
632
632
  const pathParts = nodePath.split("/");
633
- (0, internal_1.assert)((0, exports.areBlobPathParts)(pathParts), 0x5bd /* Invalid blob node path */);
633
+ (0, internal_1.assert)(areBlobPathParts(pathParts), 0x5bd /* Invalid blob node path */);
634
634
  return pathParts[2];
635
635
  };
636
636
  /**
637
637
  * Returns whether a given path is for attachment blobs that are in the format - "/blobManagerBasePath/...".
638
638
  */
639
- const isBlobPath = (path) => (0, exports.areBlobPathParts)(path.split("/"));
639
+ const isBlobPath = (path) => areBlobPathParts(path.split("/"));
640
640
  exports.isBlobPath = isBlobPath;
641
641
  const areBlobPathParts = (pathParts) => pathParts.length === 3 && pathParts[1] === exports.blobManagerBasePath;
642
- exports.areBlobPathParts = areBlobPathParts;
643
642
  //# sourceMappingURL=blobManager.js.map