@fluidframework/container-runtime 2.0.0-dev.7.4.0.217212 → 2.0.0-dev.7.4.0.221926

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 (233) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/api-extractor.json +0 -3
  3. package/api-report/container-runtime.api.md +77 -73
  4. package/dist/blobManager.d.ts +4 -4
  5. package/dist/blobManager.d.ts.map +1 -1
  6. package/dist/blobManager.js.map +1 -1
  7. package/dist/container-runtime-alpha.d.ts +1361 -132
  8. package/dist/container-runtime-beta.d.ts +40 -2
  9. package/dist/container-runtime-public.d.ts +40 -2
  10. package/dist/container-runtime-untrimmed.d.ts +106 -93
  11. package/dist/containerRuntime.d.ts +19 -17
  12. package/dist/containerRuntime.d.ts.map +1 -1
  13. package/dist/containerRuntime.js +44 -24
  14. package/dist/containerRuntime.js.map +1 -1
  15. package/dist/dataStores.d.ts +10 -15
  16. package/dist/dataStores.d.ts.map +1 -1
  17. package/dist/dataStores.js +63 -36
  18. package/dist/dataStores.js.map +1 -1
  19. package/dist/gc/garbageCollection.d.ts +29 -10
  20. package/dist/gc/garbageCollection.d.ts.map +1 -1
  21. package/dist/gc/garbageCollection.js +149 -67
  22. package/dist/gc/garbageCollection.js.map +1 -1
  23. package/dist/gc/gcConfigs.d.ts.map +1 -1
  24. package/dist/gc/gcConfigs.js +34 -37
  25. package/dist/gc/gcConfigs.js.map +1 -1
  26. package/dist/gc/gcDefinitions.d.ts +97 -44
  27. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  28. package/dist/gc/gcDefinitions.js +26 -16
  29. package/dist/gc/gcDefinitions.js.map +1 -1
  30. package/dist/gc/gcHelpers.d.ts +18 -25
  31. package/dist/gc/gcHelpers.d.ts.map +1 -1
  32. package/dist/gc/gcHelpers.js +29 -45
  33. package/dist/gc/gcHelpers.js.map +1 -1
  34. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  35. package/dist/gc/gcTelemetry.js +14 -3
  36. package/dist/gc/gcTelemetry.js.map +1 -1
  37. package/dist/gc/gcUnreferencedStateTracker.d.ts +11 -5
  38. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  39. package/dist/gc/gcUnreferencedStateTracker.js +43 -19
  40. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  41. package/dist/gc/index.d.ts +1 -1
  42. package/dist/gc/index.d.ts.map +1 -1
  43. package/dist/gc/index.js +4 -4
  44. package/dist/gc/index.js.map +1 -1
  45. package/dist/index.d.ts +13 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +16 -5
  48. package/dist/index.js.map +1 -1
  49. package/dist/messageTypes.d.ts +13 -5
  50. package/dist/messageTypes.d.ts.map +1 -1
  51. package/dist/messageTypes.js +5 -0
  52. package/dist/messageTypes.js.map +1 -1
  53. package/dist/packageVersion.d.ts +1 -1
  54. package/dist/packageVersion.js +1 -1
  55. package/dist/packageVersion.js.map +1 -1
  56. package/dist/pendingStateManager.d.ts +1 -0
  57. package/dist/pendingStateManager.d.ts.map +1 -1
  58. package/dist/pendingStateManager.js +1 -0
  59. package/dist/pendingStateManager.js.map +1 -1
  60. package/dist/summary/orderedClientElection.d.ts +1 -1
  61. package/dist/summary/orderedClientElection.js.map +1 -1
  62. package/dist/summary/summarizerTypes.d.ts +28 -28
  63. package/dist/summary/summarizerTypes.js.map +1 -1
  64. package/dist/summary/summaryCollection.d.ts +3 -3
  65. package/dist/summary/summaryCollection.js.map +1 -1
  66. package/dist/summary/summaryFormat.d.ts +3 -3
  67. package/dist/summary/summaryFormat.js.map +1 -1
  68. package/lib/blobManager.d.ts +4 -4
  69. package/lib/blobManager.d.ts.map +1 -1
  70. package/lib/blobManager.js.map +1 -1
  71. package/lib/container-runtime-alpha.d.ts +1361 -132
  72. package/lib/container-runtime-beta.d.ts +40 -2
  73. package/lib/container-runtime-public.d.ts +40 -2
  74. package/lib/container-runtime-untrimmed.d.ts +106 -93
  75. package/lib/containerRuntime.d.ts +19 -17
  76. package/lib/containerRuntime.d.ts.map +1 -1
  77. package/lib/containerRuntime.js +46 -26
  78. package/lib/containerRuntime.js.map +1 -1
  79. package/lib/dataStores.d.ts +10 -15
  80. package/lib/dataStores.d.ts.map +1 -1
  81. package/lib/dataStores.js +65 -38
  82. package/lib/dataStores.js.map +1 -1
  83. package/lib/gc/garbageCollection.d.ts +29 -10
  84. package/lib/gc/garbageCollection.d.ts.map +1 -1
  85. package/lib/gc/garbageCollection.js +151 -69
  86. package/lib/gc/garbageCollection.js.map +1 -1
  87. package/lib/gc/gcConfigs.d.ts.map +1 -1
  88. package/lib/gc/gcConfigs.js +37 -40
  89. package/lib/gc/gcConfigs.js.map +1 -1
  90. package/lib/gc/gcDefinitions.d.ts +97 -44
  91. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  92. package/lib/gc/gcDefinitions.js +25 -15
  93. package/lib/gc/gcDefinitions.js.map +1 -1
  94. package/lib/gc/gcHelpers.d.ts +18 -25
  95. package/lib/gc/gcHelpers.d.ts.map +1 -1
  96. package/lib/gc/gcHelpers.js +27 -43
  97. package/lib/gc/gcHelpers.js.map +1 -1
  98. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  99. package/lib/gc/gcTelemetry.js +14 -3
  100. package/lib/gc/gcTelemetry.js.map +1 -1
  101. package/lib/gc/gcUnreferencedStateTracker.d.ts +11 -5
  102. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
  103. package/lib/gc/gcUnreferencedStateTracker.js +43 -19
  104. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  105. package/lib/gc/index.d.ts +1 -1
  106. package/lib/gc/index.d.ts.map +1 -1
  107. package/lib/gc/index.js +1 -1
  108. package/lib/gc/index.js.map +1 -1
  109. package/lib/index.d.ts +13 -1
  110. package/lib/index.d.ts.map +1 -1
  111. package/lib/index.js +15 -1
  112. package/lib/index.js.map +1 -1
  113. package/lib/messageTypes.d.ts +13 -5
  114. package/lib/messageTypes.d.ts.map +1 -1
  115. package/lib/messageTypes.js +5 -0
  116. package/lib/messageTypes.js.map +1 -1
  117. package/lib/packageVersion.d.ts +1 -1
  118. package/lib/packageVersion.js +1 -1
  119. package/lib/packageVersion.js.map +1 -1
  120. package/lib/pendingStateManager.d.ts +1 -0
  121. package/lib/pendingStateManager.d.ts.map +1 -1
  122. package/lib/pendingStateManager.js +1 -0
  123. package/lib/pendingStateManager.js.map +1 -1
  124. package/lib/summary/orderedClientElection.d.ts +1 -1
  125. package/lib/summary/orderedClientElection.js.map +1 -1
  126. package/lib/summary/summarizerTypes.d.ts +28 -28
  127. package/lib/summary/summarizerTypes.js.map +1 -1
  128. package/lib/summary/summaryCollection.d.ts +3 -3
  129. package/lib/summary/summaryCollection.js.map +1 -1
  130. package/lib/summary/summaryFormat.d.ts +3 -3
  131. package/lib/summary/summaryFormat.js.map +1 -1
  132. package/package.json +18 -15
  133. package/src/blobManager.ts +5 -5
  134. package/src/containerRuntime.ts +66 -40
  135. package/src/dataStores.ts +118 -59
  136. package/src/gc/garbageCollection.md +14 -15
  137. package/src/gc/garbageCollection.ts +182 -75
  138. package/src/gc/gcConfigs.ts +50 -52
  139. package/src/gc/gcDefinitions.ts +112 -50
  140. package/src/gc/gcHelpers.ts +31 -52
  141. package/src/gc/gcTelemetry.ts +16 -4
  142. package/src/gc/gcUnreferencedStateTracker.ts +61 -22
  143. package/src/gc/index.ts +4 -3
  144. package/src/index.ts +17 -1
  145. package/src/messageTypes.ts +16 -2
  146. package/src/packageVersion.ts +1 -1
  147. package/src/pendingStateManager.ts +1 -0
  148. package/src/summary/orderedClientElection.ts +1 -1
  149. package/src/summary/summarizerTypes.ts +28 -28
  150. package/src/summary/summaryCollection.ts +3 -3
  151. package/src/summary/summaryFormat.ts +3 -3
  152. package/dist/id-compressor/appendOnlySortedMap.d.ts +0 -124
  153. package/dist/id-compressor/appendOnlySortedMap.d.ts.map +0 -1
  154. package/dist/id-compressor/appendOnlySortedMap.js +0 -318
  155. package/dist/id-compressor/appendOnlySortedMap.js.map +0 -1
  156. package/dist/id-compressor/finalSpace.d.ts +0 -29
  157. package/dist/id-compressor/finalSpace.d.ts.map +0 -1
  158. package/dist/id-compressor/finalSpace.js +0 -62
  159. package/dist/id-compressor/finalSpace.js.map +0 -1
  160. package/dist/id-compressor/idCompressor.d.ts +0 -54
  161. package/dist/id-compressor/idCompressor.d.ts.map +0 -1
  162. package/dist/id-compressor/idCompressor.js +0 -495
  163. package/dist/id-compressor/idCompressor.js.map +0 -1
  164. package/dist/id-compressor/identifiers.d.ts +0 -32
  165. package/dist/id-compressor/identifiers.d.ts.map +0 -1
  166. package/dist/id-compressor/identifiers.js +0 -15
  167. package/dist/id-compressor/identifiers.js.map +0 -1
  168. package/dist/id-compressor/index.d.ts +0 -13
  169. package/dist/id-compressor/index.d.ts.map +0 -1
  170. package/dist/id-compressor/index.js +0 -32
  171. package/dist/id-compressor/index.js.map +0 -1
  172. package/dist/id-compressor/persistanceUtilities.d.ts +0 -22
  173. package/dist/id-compressor/persistanceUtilities.d.ts.map +0 -1
  174. package/dist/id-compressor/persistanceUtilities.js +0 -43
  175. package/dist/id-compressor/persistanceUtilities.js.map +0 -1
  176. package/dist/id-compressor/sessionSpaceNormalizer.d.ts +0 -46
  177. package/dist/id-compressor/sessionSpaceNormalizer.d.ts.map +0 -1
  178. package/dist/id-compressor/sessionSpaceNormalizer.js +0 -80
  179. package/dist/id-compressor/sessionSpaceNormalizer.js.map +0 -1
  180. package/dist/id-compressor/sessions.d.ts +0 -115
  181. package/dist/id-compressor/sessions.d.ts.map +0 -1
  182. package/dist/id-compressor/sessions.js +0 -305
  183. package/dist/id-compressor/sessions.js.map +0 -1
  184. package/dist/id-compressor/utilities.d.ts +0 -52
  185. package/dist/id-compressor/utilities.d.ts.map +0 -1
  186. package/dist/id-compressor/utilities.js +0 -169
  187. package/dist/id-compressor/utilities.js.map +0 -1
  188. package/lib/id-compressor/appendOnlySortedMap.d.ts +0 -124
  189. package/lib/id-compressor/appendOnlySortedMap.d.ts.map +0 -1
  190. package/lib/id-compressor/appendOnlySortedMap.js +0 -314
  191. package/lib/id-compressor/appendOnlySortedMap.js.map +0 -1
  192. package/lib/id-compressor/finalSpace.d.ts +0 -29
  193. package/lib/id-compressor/finalSpace.d.ts.map +0 -1
  194. package/lib/id-compressor/finalSpace.js +0 -58
  195. package/lib/id-compressor/finalSpace.js.map +0 -1
  196. package/lib/id-compressor/idCompressor.d.ts +0 -54
  197. package/lib/id-compressor/idCompressor.d.ts.map +0 -1
  198. package/lib/id-compressor/idCompressor.js +0 -491
  199. package/lib/id-compressor/idCompressor.js.map +0 -1
  200. package/lib/id-compressor/identifiers.d.ts +0 -32
  201. package/lib/id-compressor/identifiers.d.ts.map +0 -1
  202. package/lib/id-compressor/identifiers.js +0 -11
  203. package/lib/id-compressor/identifiers.js.map +0 -1
  204. package/lib/id-compressor/index.d.ts +0 -13
  205. package/lib/id-compressor/index.d.ts.map +0 -1
  206. package/lib/id-compressor/index.js +0 -13
  207. package/lib/id-compressor/index.js.map +0 -1
  208. package/lib/id-compressor/persistanceUtilities.d.ts +0 -22
  209. package/lib/id-compressor/persistanceUtilities.d.ts.map +0 -1
  210. package/lib/id-compressor/persistanceUtilities.js +0 -34
  211. package/lib/id-compressor/persistanceUtilities.js.map +0 -1
  212. package/lib/id-compressor/sessionSpaceNormalizer.d.ts +0 -46
  213. package/lib/id-compressor/sessionSpaceNormalizer.d.ts.map +0 -1
  214. package/lib/id-compressor/sessionSpaceNormalizer.js +0 -76
  215. package/lib/id-compressor/sessionSpaceNormalizer.js.map +0 -1
  216. package/lib/id-compressor/sessions.d.ts +0 -115
  217. package/lib/id-compressor/sessions.d.ts.map +0 -1
  218. package/lib/id-compressor/sessions.js +0 -290
  219. package/lib/id-compressor/sessions.js.map +0 -1
  220. package/lib/id-compressor/utilities.d.ts +0 -52
  221. package/lib/id-compressor/utilities.d.ts.map +0 -1
  222. package/lib/id-compressor/utilities.js +0 -151
  223. package/lib/id-compressor/utilities.js.map +0 -1
  224. package/src/id-compressor/README.md +0 -69
  225. package/src/id-compressor/appendOnlySortedMap.ts +0 -366
  226. package/src/id-compressor/finalSpace.ts +0 -67
  227. package/src/id-compressor/idCompressor.ts +0 -630
  228. package/src/id-compressor/identifiers.ts +0 -42
  229. package/src/id-compressor/index.ts +0 -26
  230. package/src/id-compressor/persistanceUtilities.ts +0 -58
  231. package/src/id-compressor/sessionSpaceNormalizer.ts +0 -83
  232. package/src/id-compressor/sessions.ts +0 -405
  233. package/src/id-compressor/utilities.ts +0 -190
@@ -1,8 +1,10 @@
1
+ import { assertIsStableId } from '@fluidframework/id-compressor';
1
2
  import { AttachState } from '@fluidframework/container-definitions';
2
3
  import { ContainerWarning } from '@fluidframework/container-definitions';
3
4
  import { FluidDataStoreRegistryEntry } from '@fluidframework/runtime-definitions';
4
5
  import { FluidObject } from '@fluidframework/core-interfaces';
5
6
  import { FlushMode } from '@fluidframework/runtime-definitions';
7
+ import { generateStableId } from '@fluidframework/id-compressor';
6
8
  import { IAudience } from '@fluidframework/container-definitions';
7
9
  import { IClientDetails } from '@fluidframework/protocol-definitions';
8
10
  import { IContainerContext } from '@fluidframework/container-definitions';
@@ -23,8 +25,8 @@ import { IFluidHandleContext } from '@fluidframework/core-interfaces';
23
25
  import { IFluidRouter } from '@fluidframework/core-interfaces';
24
26
  import { IGarbageCollectionData } from '@fluidframework/runtime-definitions';
25
27
  import { IGetPendingLocalStateProps } from '@fluidframework/container-definitions';
26
- import { IIdCompressor } from '@fluidframework/runtime-definitions';
27
- import { IIdCompressorCore } from '@fluidframework/runtime-definitions';
28
+ import type { IIdCompressor } from '@fluidframework/id-compressor';
29
+ import type { IIdCompressorCore } from '@fluidframework/id-compressor';
28
30
  import { ILoader } from '@fluidframework/container-definitions';
29
31
  import { ILoaderOptions } from '@fluidframework/container-definitions';
30
32
  import { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
@@ -34,6 +36,7 @@ import { IResponse } from '@fluidframework/core-interfaces';
34
36
  import { IRuntime } from '@fluidframework/container-definitions';
35
37
  import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
36
38
  import { ISignalMessage } from '@fluidframework/protocol-definitions';
39
+ import { isStableId } from '@fluidframework/id-compressor';
37
40
  import { ISummaryAck } from '@fluidframework/protocol-definitions';
38
41
  import { ISummaryContent } from '@fluidframework/protocol-definitions';
39
42
  import { ISummaryNack } from '@fluidframework/protocol-definitions';
@@ -44,7 +47,6 @@ import { ITelemetryContext } from '@fluidframework/runtime-definitions';
44
47
  import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
45
48
  import { MessageType } from '@fluidframework/protocol-definitions';
46
49
  import { NamedFluidDataStoreRegistryEntries } from '@fluidframework/runtime-definitions';
47
- import { StableId } from '@fluidframework/runtime-definitions';
48
50
  import { TypedEventEmitter } from '@fluid-internal/client-utils';
49
51
 
50
52
  /**
@@ -66,11 +68,7 @@ export declare const AllowInactiveRequestHeaderKey = "allowInactive";
66
68
  */
67
69
  export declare const AllowTombstoneRequestHeaderKey = "allowTombstone";
68
70
 
69
- /**
70
- * Asserts that the given string is a stable ID.
71
- * @internal
72
- */
73
- export declare function assertIsStableId(stableId: string): StableId;
71
+ export { assertIsStableId }
74
72
 
75
73
  /**
76
74
  * How should an older client handle an unrecognized remote op type?
@@ -85,7 +83,7 @@ export declare type CompatModeBehavior =
85
83
 
86
84
  /**
87
85
  * Available compression algorithms for op compression.
88
- * @internal
86
+ * @alpha
89
87
  */
90
88
  export declare enum CompressionAlgorithms {
91
89
  lz4 = "lz4"
@@ -106,13 +104,18 @@ export declare enum ContainerMessageType {
106
104
  * the last allocation op was sent.
107
105
  * See the [IdCompressor README](./id-compressor/README.md) for more details.
108
106
  */
109
- IdAllocation = "idAllocation"
107
+ IdAllocation = "idAllocation",
108
+ /**
109
+ * Garbage collection specific op. This is sent by the summarizer client when GC runs. It's used to synchronize GC
110
+ * state across all clients.
111
+ */
112
+ GC = "GC"
110
113
  }
111
114
 
112
115
  /**
113
116
  * Represents the runtime of the container. Contains helper functions/state of the container.
114
117
  * It will define the store level mappings.
115
- * @internal
118
+ * @alpha
116
119
  */
117
120
  export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntimeEvents & ISummarizerEvents> implements IContainerRuntime, IRuntime, ISummarizerRuntime, ISummarizerInternalsProvider, IProvideFluidHandleContext {
118
121
  private readonly registry;
@@ -471,27 +474,27 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
471
474
  * @param usedRoutes - The routes that are used in all nodes in this Container.
472
475
  * @see IGarbageCollectionRuntime.updateUsedRoutes
473
476
  */
474
- updateUsedRoutes(usedRoutes: string[]): void;
477
+ updateUsedRoutes(usedRoutes: readonly string[]): void;
475
478
  /**
476
479
  * This is called to update objects whose routes are unused.
477
480
  * @param unusedRoutes - Data store and attachment blob routes that are unused in this Container.
478
481
  */
479
- updateUnusedRoutes(unusedRoutes: string[]): void;
482
+ updateUnusedRoutes(unusedRoutes: readonly string[]): void;
480
483
  /**
481
484
  * @deprecated Replaced by deleteSweepReadyNodes.
482
485
  */
483
- deleteUnusedNodes(unusedRoutes: string[]): string[];
486
+ deleteUnusedNodes(unusedRoutes: readonly string[]): string[];
484
487
  /**
485
488
  * After GC has run and identified nodes that are sweep ready, this is called to delete the sweep ready nodes.
486
489
  * @param sweepReadyRoutes - The routes of nodes that are sweep ready and should be deleted.
487
490
  * @returns The routes of nodes that were deleted.
488
491
  */
489
- deleteSweepReadyNodes(sweepReadyRoutes: string[]): string[];
492
+ deleteSweepReadyNodes(sweepReadyRoutes: readonly string[]): readonly string[];
490
493
  /**
491
494
  * This is called to update objects that are tombstones.
492
495
  * @param tombstonedRoutes - Data store and attachment blob routes that are tombstones in this Container.
493
496
  */
494
- updateTombstonedRoutes(tombstonedRoutes: string[]): void;
497
+ updateTombstonedRoutes(tombstonedRoutes: readonly string[]): void;
495
498
  /**
496
499
  * Returns a server generated referenced timestamp to be used to track unreferenced nodes by GC.
497
500
  */
@@ -546,7 +549,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
546
549
  */
547
550
  submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
548
551
  /**
549
- * This helper is called during summarization. If there are pending ops, it will return a failed summarize result
552
+ * This helper is called during summarization. If the container is dirty, it will return a failed summarize result
550
553
  * (IBaseSummarizeResult) unless this is the final summarize attempt and SkipFailingIncorrectSummary option is set.
551
554
  * @param logger - The logger to be used for sending telemetry.
552
555
  * @param referenceSequenceNumber - The reference sequence number of the summary attempt.
@@ -577,6 +580,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
577
580
  /**
578
581
  * Finds the right store and asks it to resubmit the message. This typically happens when we
579
582
  * reconnect and there are pending messages.
583
+ * ! Note: successfully resubmitting an op that has been successfully sequenced is not possible due to checks in the ConnectionStateHandler (Loader layer)
580
584
  * @param message - The original LocalContainerRuntimeMessage.
581
585
  * @param localOpMetadata - The local metadata associated with the original message.
582
586
  */
@@ -636,7 +640,7 @@ export declare interface ContainerRuntimeMessage {
636
640
  export declare const DefaultSummaryConfiguration: ISummaryConfiguration;
637
641
 
638
642
  /**
639
- * @internal
643
+ * @alpha
640
644
  */
641
645
  export declare type EnqueueSummarizeResult = (ISummarizeResults & {
642
646
  /**
@@ -673,27 +677,29 @@ export declare class FluidDataStoreRegistry implements IFluidDataStoreRegistry {
673
677
  }
674
678
 
675
679
  /**
676
- * @see IGCMetadata.gcFeatureMatrix
677
- * @internal
680
+ * @see IGCMetadata.gcFeatureMatrix and @see gcGenerationOptionName
681
+ * @alpha
678
682
  */
679
- export declare interface GCFeatureMatrix {
683
+ export declare type GCFeatureMatrix = {
680
684
  /**
681
- * The Tombstone Generation value in effect when this file was created.
682
- * Gives a way for an app to disqualify old files from GC Tombstone enforcement.
685
+ * The GC Generation value in effect when this file was created.
686
+ * Gives a way for an app to disqualify old files from GC Sweep.
683
687
  * Provided via Container Runtime Options.
684
688
  */
685
- tombstoneGeneration?: number;
689
+ gcGeneration?: number;
690
+ /** Deprecated property from legacy type. Will not be set concurrently with gcGeneration */
691
+ tombstoneGeneration?: undefined;
692
+ } | {
686
693
  /**
687
- * The Sweep Generation value in effect when this file was created.
688
- * Gives a way for an app to disqualify old files from GC Sweep.
689
- * Provided via Container Runtime Options.
694
+ * The Tombstone Generation value in effect when this file was created.
695
+ * Legacy - new containers would get gcGeneration instead (if anything)
690
696
  */
691
- sweepGeneration?: number;
692
- }
697
+ tombstoneGeneration: number;
698
+ };
693
699
 
694
700
  /**
695
701
  * The types of GC nodes in the GC reference graph.
696
- * @internal
702
+ * @alpha
697
703
  */
698
704
  export declare const GCNodeType: {
699
705
  DataStore: string;
@@ -703,20 +709,16 @@ export declare const GCNodeType: {
703
709
  };
704
710
 
705
711
  /**
706
- * @internal
712
+ * @alpha
707
713
  */
708
714
  export declare type GCNodeType = (typeof GCNodeType)[keyof typeof GCNodeType];
709
715
 
710
716
  /**
711
- * @internal
717
+ * @alpha
712
718
  */
713
719
  export declare type GCVersion = number;
714
720
 
715
- /**
716
- * Generate a random stable ID
717
- * @internal
718
- */
719
- export declare function generateStableId(): StableId;
721
+ export { generateStableId }
720
722
 
721
723
  /**
722
724
  * A single summary which has already been acked by the server.
@@ -728,7 +730,7 @@ export declare interface IAckedSummary {
728
730
  }
729
731
 
730
732
  /**
731
- * @internal
733
+ * @alpha
732
734
  */
733
735
  export declare interface IAckSummaryResult {
734
736
  readonly summaryAckOp: ISummaryAckMessage;
@@ -737,7 +739,7 @@ export declare interface IAckSummaryResult {
737
739
 
738
740
  /**
739
741
  * Base results for all submitSummary attempts.
740
- * @internal
742
+ * @alpha
741
743
  */
742
744
  export declare interface IBaseSummarizeResult {
743
745
  readonly stage: "base";
@@ -750,7 +752,7 @@ export declare interface IBaseSummarizeResult {
750
752
 
751
753
  /**
752
754
  * Information from a snapshot needed to load BlobManager
753
- * @internal
755
+ * @alpha
754
756
  */
755
757
  export declare interface IBlobManagerLoadInfo {
756
758
  ids?: string[];
@@ -758,7 +760,7 @@ export declare interface IBlobManagerLoadInfo {
758
760
  }
759
761
 
760
762
  /**
761
- * @internal
763
+ * @alpha
762
764
  */
763
765
  export declare interface IBroadcastSummaryResult {
764
766
  readonly summarizeOp: ISummaryOpMessage;
@@ -776,7 +778,7 @@ export declare interface ICancellableSummarizerController extends ISummaryCancel
776
778
  /**
777
779
  * Similar to AbortSignal, but using promise instead of events
778
780
  * @param T - cancellation reason type
779
- * @internal
781
+ * @alpha
780
782
  */
781
783
  export declare interface ICancellationToken<T> {
782
784
  /** Tells if this cancellable token is cancelled */
@@ -811,7 +813,7 @@ export declare interface IClientSummaryWatcher extends IDisposable {
811
813
 
812
814
  /**
813
815
  * Options for op compression.
814
- * @internal
816
+ * @alpha
815
817
  */
816
818
  export declare interface ICompressionRuntimeOptions {
817
819
  /**
@@ -827,7 +829,7 @@ export declare interface ICompressionRuntimeOptions {
827
829
  }
828
830
 
829
831
  /**
830
- * @internal
832
+ * @alpha
831
833
  */
832
834
  export declare interface IConnectableRuntime {
833
835
  readonly disposed: boolean;
@@ -847,7 +849,7 @@ export declare interface IContainerRuntimeMessageCompatDetails {
847
849
  }
848
850
 
849
851
  /**
850
- * @internal
852
+ * @alpha
851
853
  */
852
854
  export declare interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
853
855
  readonly summaryFormatVersion: 1;
@@ -865,7 +867,7 @@ export declare interface IContainerRuntimeMetadata extends ICreateContainerMetad
865
867
 
866
868
  /**
867
869
  * Options for container runtime.
868
- * @internal
870
+ * @alpha
869
871
  */
870
872
  export declare interface IContainerRuntimeOptions {
871
873
  readonly summaryOptions?: ISummaryRuntimeOptions;
@@ -944,7 +946,7 @@ export declare interface IContainerRuntimeOptions {
944
946
  }
945
947
 
946
948
  /**
947
- * @internal
949
+ * @alpha
948
950
  */
949
951
  export declare interface ICreateContainerMetadata {
950
952
  /** Runtime version of the container when it was first created */
@@ -955,7 +957,7 @@ export declare interface ICreateContainerMetadata {
955
957
 
956
958
  /**
957
959
  * Options to use when enqueueing a summarize attempt.
958
- * @internal
960
+ * @alpha
959
961
  */
960
962
  export declare interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
961
963
  /** If specified, The summarize attempt will not occur until after this sequence number. */
@@ -970,7 +972,7 @@ export declare interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOpti
970
972
  }
971
973
 
972
974
  /**
973
- * @internal
975
+ * @alpha
974
976
  */
975
977
  export declare interface IGCMetadata {
976
978
  /**
@@ -998,7 +1000,7 @@ export declare interface IGCMetadata {
998
1000
  * - True means sweep phase is enabled.
999
1001
  * - False means sweep phase is disabled. If GC is disabled as per gcFeature, sweep is also disabled.
1000
1002
  *
1001
- * @deprecated use GCFeatureMatrix.sweepGeneration instead. @see GCFeatureMatrix.sweepGeneration
1003
+ * @deprecated use GCFeatureMatrix.gcGeneration instead. @see GCFeatureMatrix.gcGeneration
1002
1004
  */
1003
1005
  readonly sweepEnabled?: boolean;
1004
1006
  /** If this is present, the session for this container will expire after this time and the container will close */
@@ -1008,7 +1010,7 @@ export declare interface IGCMetadata {
1008
1010
  }
1009
1011
 
1010
1012
  /**
1011
- * @internal
1013
+ * @alpha
1012
1014
  */
1013
1015
  export declare interface IGCRuntimeOptions {
1014
1016
  /**
@@ -1017,7 +1019,7 @@ export declare interface IGCRuntimeOptions {
1017
1019
  * GC has mark phase and sweep phase. In mark phase, unreferenced objects are identified
1018
1020
  * and marked as such in the summary. This option enables the mark phase.
1019
1021
  * In sweep phase, unreferenced objects are eventually deleted from the container if they meet certain conditions.
1020
- * Sweep phase can be enabled using the "gcSweepGeneration" option.
1022
+ * Sweep phase can be enabled using the "enableGCSweep" option.
1021
1023
  *
1022
1024
  * Note: This setting is persisted in the container's summary and cannot be changed.
1023
1025
  */
@@ -1027,6 +1029,16 @@ export declare interface IGCRuntimeOptions {
1027
1029
  * Can be used to disable running GC on containers where it is allowed via the gcAllowed option.
1028
1030
  */
1029
1031
  disableGC?: boolean;
1032
+ /**
1033
+ * Flag that if true, will enable the full Sweep Phase of garbage collection for this session,
1034
+ * where Tombstoned objects are permanently deleted from the container.
1035
+ *
1036
+ * IMPORTANT: This only applies if this document is allowed to run Sweep Phase.
1037
+ *
1038
+ * Current default behavior is for Sweep Phase not to delete Tombstoned objects,
1039
+ * but merely to prevent them from being loaded.
1040
+ */
1041
+ enableGCSweep?: true;
1030
1042
  /**
1031
1043
  * Flag that will bypass optimizations and generate GC data for all nodes irrespective of whether a node
1032
1044
  * changed or not.
@@ -1038,6 +1050,12 @@ export declare interface IGCRuntimeOptions {
1038
1050
  * Note: This setting is persisted in the container's summary and cannot be changed.
1039
1051
  */
1040
1052
  sessionExpiryTimeoutMs?: number;
1053
+ /**
1054
+ * Delay between when Tombstone should run and when the object should be deleted.
1055
+ * This grace period gives a chance to intervene to recover if needed, before Sweep deletes the object.
1056
+ * If not present, a default (non-zero) value will be used.
1057
+ */
1058
+ sweepGracePeriodMs?: number;
1041
1059
  /**
1042
1060
  * Allows additional GC options to be passed.
1043
1061
  */
@@ -1046,7 +1064,7 @@ export declare interface IGCRuntimeOptions {
1046
1064
 
1047
1065
  /**
1048
1066
  * The statistics of the system state after a garbage collection run.
1049
- * @internal
1067
+ * @alpha
1050
1068
  */
1051
1069
  export declare interface IGCStats extends IMarkPhaseStats, ISweepPhaseStats {
1052
1070
  }
@@ -1054,7 +1072,7 @@ export declare interface IGCStats extends IMarkPhaseStats, ISweepPhaseStats {
1054
1072
  /**
1055
1073
  * In addition to the normal summary tree + stats, this contains additional stats
1056
1074
  * only relevant at the root of the tree.
1057
- * @internal
1075
+ * @alpha
1058
1076
  */
1059
1077
  export declare interface IGeneratedSummaryStats extends ISummaryStats {
1060
1078
  /** The total number of data stores in the container. */
@@ -1073,7 +1091,7 @@ export declare interface IGeneratedSummaryStats extends ISummaryStats {
1073
1091
 
1074
1092
  /**
1075
1093
  * Results of submitSummary after generating the summary tree.
1076
- * @internal
1094
+ * @alpha
1077
1095
  */
1078
1096
  export declare interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "stage"> {
1079
1097
  readonly stage: "generate";
@@ -1089,7 +1107,7 @@ export declare interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeR
1089
1107
 
1090
1108
  /**
1091
1109
  * The statistics of the system state after a garbage collection mark phase run.
1092
- * @internal
1110
+ * @alpha
1093
1111
  */
1094
1112
  export declare interface IMarkPhaseStats {
1095
1113
  /** The number of nodes in the container. */
@@ -1113,7 +1131,7 @@ export declare interface IMarkPhaseStats {
1113
1131
  }
1114
1132
 
1115
1133
  /**
1116
- * @internal
1134
+ * @alpha
1117
1135
  */
1118
1136
  export declare interface INackSummaryResult extends IRetriableFailureResult {
1119
1137
  readonly summaryNackOp: ISummaryNackMessage;
@@ -1127,7 +1145,7 @@ export declare interface INackSummaryResult extends IRetriableFailureResult {
1127
1145
  export declare const InactiveResponseHeaderKey = "isInactive";
1128
1146
 
1129
1147
  /**
1130
- * @internal
1148
+ * @alpha
1131
1149
  */
1132
1150
  export declare interface IOnDemandSummarizeOptions extends ISummarizeOptions {
1133
1151
  /** Reason for generating summary. */
@@ -1136,7 +1154,7 @@ export declare interface IOnDemandSummarizeOptions extends ISummarizeOptions {
1136
1154
 
1137
1155
  /**
1138
1156
  * Data required to update internal tracking state after receiving a Summary Ack.
1139
- * @internal
1157
+ * @alpha
1140
1158
  */
1141
1159
  export declare interface IRefreshSummaryAckOptions {
1142
1160
  /** Handle from the ack's summary op. */
@@ -1151,7 +1169,7 @@ export declare interface IRefreshSummaryAckOptions {
1151
1169
 
1152
1170
  /**
1153
1171
  * Type for summarization failures that are retriable.
1154
- * @internal
1172
+ * @alpha
1155
1173
  */
1156
1174
  export declare interface IRetriableFailureResult {
1157
1175
  readonly retryAfterSeconds?: number;
@@ -1159,7 +1177,7 @@ export declare interface IRetriableFailureResult {
1159
1177
 
1160
1178
  /**
1161
1179
  * Serialized state of IOrderedClientElection.
1162
- * @internal
1180
+ * @alpha
1163
1181
  */
1164
1182
  export declare interface ISerializedElection {
1165
1183
  /** Sequence number at the time of the latest election. */
@@ -1183,16 +1201,11 @@ export declare interface ISerializedElection {
1183
1201
  */
1184
1202
  export declare function isRuntimeMessage(message: ISequencedDocumentMessage): boolean;
1185
1203
 
1186
- /**
1187
- * Returns true iff the given string is a valid Version 4, variant 2 UUID
1188
- * 'xxxxxxxx-xxxx-4xxx-vxxx-xxxxxxxxxxxx'
1189
- * @internal
1190
- */
1191
- export declare function isStableId(str: string): str is StableId;
1204
+ export { isStableId }
1192
1205
 
1193
1206
  /**
1194
1207
  * Results of submitSummary after submitting the summarize op.
1195
- * @internal
1208
+ * @alpha
1196
1209
  */
1197
1210
  export declare interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, "stage" | "error"> {
1198
1211
  readonly stage: "submit";
@@ -1203,7 +1216,7 @@ export declare interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResul
1203
1216
  }
1204
1217
 
1205
1218
  /**
1206
- * @internal
1219
+ * @alpha
1207
1220
  */
1208
1221
  export declare interface ISubmitSummaryOptions extends ISummarizeOptions {
1209
1222
  /** Logger to use for correlated summary events */
@@ -1215,7 +1228,7 @@ export declare interface ISubmitSummaryOptions extends ISummarizeOptions {
1215
1228
  }
1216
1229
 
1217
1230
  /**
1218
- * @internal
1231
+ * @alpha
1219
1232
  */
1220
1233
  export declare interface ISummarizeEventProps {
1221
1234
  result: "success" | "failure" | "canceled";
@@ -1226,7 +1239,7 @@ export declare interface ISummarizeEventProps {
1226
1239
 
1227
1240
  /**
1228
1241
  * Options affecting summarize behavior.
1229
- * @internal
1242
+ * @alpha
1230
1243
  */
1231
1244
  export declare interface ISummarizeOptions {
1232
1245
  /** True to generate the full tree with no handle reuse optimizations; defaults to false */
@@ -1277,7 +1290,7 @@ export declare interface ISummarizer extends IEventProvider<ISummarizerEvents> {
1277
1290
  }
1278
1291
 
1279
1292
  /**
1280
- * @internal
1293
+ * @alpha
1281
1294
  */
1282
1295
  export declare interface ISummarizeResults {
1283
1296
  /** Resolves when we generate, upload, and submit the summary. */
@@ -1289,14 +1302,14 @@ export declare interface ISummarizeResults {
1289
1302
  }
1290
1303
 
1291
1304
  /**
1292
- * @internal
1305
+ * @alpha
1293
1306
  */
1294
1307
  export declare interface ISummarizerEvents extends IEvent {
1295
1308
  (event: "summarize", listener: (props: ISummarizeEventProps) => void): any;
1296
1309
  }
1297
1310
 
1298
1311
  /**
1299
- * @internal
1312
+ * @alpha
1300
1313
  */
1301
1314
  export declare interface ISummarizerInternalsProvider {
1302
1315
  /** Encapsulates the work to walk the internals of the running container to generate a summary */
@@ -1306,7 +1319,7 @@ export declare interface ISummarizerInternalsProvider {
1306
1319
  }
1307
1320
 
1308
1321
  /**
1309
- * @internal
1322
+ * @alpha
1310
1323
  */
1311
1324
  export declare interface ISummarizerRuntime extends IConnectableRuntime {
1312
1325
  readonly logger: ITelemetryLoggerExt;
@@ -1341,7 +1354,7 @@ export declare interface ISummary {
1341
1354
 
1342
1355
  /**
1343
1356
  * Interface for summary ack messages with typed contents.
1344
- * @internal
1357
+ * @alpha
1345
1358
  */
1346
1359
  export declare interface ISummaryAckMessage extends ISequencedDocumentMessage {
1347
1360
  type: MessageType.SummaryAck;
@@ -1349,7 +1362,7 @@ export declare interface ISummaryAckMessage extends ISequencedDocumentMessage {
1349
1362
  }
1350
1363
 
1351
1364
  /**
1352
- * @internal
1365
+ * @alpha
1353
1366
  */
1354
1367
  export declare interface ISummaryBaseConfiguration {
1355
1368
  /**
@@ -1371,7 +1384,7 @@ export declare interface ISummaryBaseConfiguration {
1371
1384
 
1372
1385
  /**
1373
1386
  * Similar to AbortSignal, but using promise instead of events
1374
- * @internal
1387
+ * @alpha
1375
1388
  */
1376
1389
  export declare type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;
1377
1390
 
@@ -1383,26 +1396,26 @@ export declare interface ISummaryCollectionOpEvents extends IEvent {
1383
1396
  }
1384
1397
 
1385
1398
  /**
1386
- * @internal
1399
+ * @alpha
1387
1400
  */
1388
1401
  export declare type ISummaryConfiguration = ISummaryConfigurationDisableSummarizer | ISummaryConfigurationDisableHeuristics | ISummaryConfigurationHeuristics;
1389
1402
 
1390
1403
  /**
1391
- * @internal
1404
+ * @alpha
1392
1405
  */
1393
1406
  export declare interface ISummaryConfigurationDisableHeuristics extends ISummaryBaseConfiguration {
1394
1407
  state: "disableHeuristics";
1395
1408
  }
1396
1409
 
1397
1410
  /**
1398
- * @internal
1411
+ * @alpha
1399
1412
  */
1400
1413
  export declare interface ISummaryConfigurationDisableSummarizer {
1401
1414
  state: "disabled";
1402
1415
  }
1403
1416
 
1404
1417
  /**
1405
- * @internal
1418
+ * @alpha
1406
1419
  */
1407
1420
  export declare interface ISummaryConfigurationHeuristics extends ISummaryBaseConfiguration {
1408
1421
  state: "enabled";
@@ -1465,13 +1478,13 @@ export declare interface ISummaryConfigurationHeuristics extends ISummaryBaseCon
1465
1478
 
1466
1479
  /**
1467
1480
  * The properties of an ISequencedDocumentMessage to be stored in the metadata blob in summary.
1468
- * @internal
1481
+ * @alpha
1469
1482
  */
1470
1483
  export declare type ISummaryMetadataMessage = Pick<ISequencedDocumentMessage, "clientId" | "clientSequenceNumber" | "minimumSequenceNumber" | "referenceSequenceNumber" | "sequenceNumber" | "timestamp" | "type">;
1471
1484
 
1472
1485
  /**
1473
1486
  * Interface for summary nack messages with typed contents.
1474
- * @internal
1487
+ * @alpha
1475
1488
  */
1476
1489
  export declare interface ISummaryNackMessage extends ISequencedDocumentMessage {
1477
1490
  type: MessageType.SummaryNack;
@@ -1480,7 +1493,7 @@ export declare interface ISummaryNackMessage extends ISequencedDocumentMessage {
1480
1493
 
1481
1494
  /**
1482
1495
  * Interface for summary op messages with typed contents.
1483
- * @internal
1496
+ * @alpha
1484
1497
  */
1485
1498
  export declare interface ISummaryOpMessage extends ISequencedDocumentMessage {
1486
1499
  type: MessageType.Summarize;
@@ -1488,7 +1501,7 @@ export declare interface ISummaryOpMessage extends ISequencedDocumentMessage {
1488
1501
  }
1489
1502
 
1490
1503
  /**
1491
- * @internal
1504
+ * @alpha
1492
1505
  */
1493
1506
  export declare interface ISummaryRuntimeOptions {
1494
1507
  /** Override summary configurations set by the server. */
@@ -1504,7 +1517,7 @@ export declare interface ISummaryRuntimeOptions {
1504
1517
 
1505
1518
  /**
1506
1519
  * The statistics of the system state after a garbage collection sweep phase run.
1507
- * @internal
1520
+ * @alpha
1508
1521
  */
1509
1522
  export declare interface ISweepPhaseStats {
1510
1523
  /** The number of nodes in the lifetime of the container. */
@@ -1523,7 +1536,7 @@ export declare interface ISweepPhaseStats {
1523
1536
 
1524
1537
  /**
1525
1538
  * Results of submitSummary after uploading the tree to storage.
1526
- * @internal
1539
+ * @alpha
1527
1540
  */
1528
1541
  export declare interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "stage"> {
1529
1542
  readonly stage: "upload";
@@ -1586,7 +1599,7 @@ export declare enum RuntimeMessage {
1586
1599
 
1587
1600
  /**
1588
1601
  * The data in summarizer result when submit summary stage fails.
1589
- * @internal
1602
+ * @alpha
1590
1603
  */
1591
1604
  export declare interface SubmitSummaryFailureData extends IRetriableFailureResult {
1592
1605
  stage: SummaryStage;
@@ -1607,7 +1620,7 @@ export declare interface SubmitSummaryFailureData extends IRetriableFailureResul
1607
1620
  * 3. "upload" - the summary was uploaded to storage, and the result contains the server-provided handle
1608
1621
  *
1609
1622
  * 4. "submit" - the summarize op was submitted, and the result contains the op client sequence number.
1610
- * @internal
1623
+ * @alpha
1611
1624
  */
1612
1625
  export declare type SubmitSummaryResult = IBaseSummarizeResult | IGenerateSummaryTreeResult | IUploadSummaryResult | ISubmitSummaryOpResult;
1613
1626
 
@@ -1696,7 +1709,7 @@ export declare class Summarizer extends TypedEventEmitter<ISummarizerEvents> imp
1696
1709
  }
1697
1710
 
1698
1711
  /**
1699
- * @internal
1712
+ * @alpha
1700
1713
  */
1701
1714
  export declare type SummarizeResultPart<TSuccess, TFailure = undefined> = {
1702
1715
  success: true;
@@ -1709,7 +1722,7 @@ export declare type SummarizeResultPart<TSuccess, TFailure = undefined> = {
1709
1722
  };
1710
1723
 
1711
1724
  /**
1712
- * @internal
1725
+ * @alpha
1713
1726
  */
1714
1727
  export declare type SummarizerStopReason =
1715
1728
  /** Summarizer client failed to summarize in all 3 consecutive attempts. */
@@ -1793,7 +1806,7 @@ export declare class SummaryCollection extends TypedEventEmitter<ISummaryCollect
1793
1806
 
1794
1807
  /**
1795
1808
  * The stages of Summarize, used to describe how far progress succeeded in case of a failure at a later stage.
1796
- * @internal
1809
+ * @alpha
1797
1810
  */
1798
1811
  export declare type SummaryStage = SubmitSummaryResult["stage"] | "unknown";
1799
1812