@fluidframework/container-runtime 2.13.0 → 2.21.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.
- package/.eslintrc.cjs +71 -5
- package/CHANGELOG.md +84 -0
- package/api-report/container-runtime.legacy.alpha.api.md +38 -232
- package/dist/batchTracker.d.ts +1 -2
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js +1 -1
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager/blobManager.d.ts +5 -1
- package/dist/blobManager/blobManager.d.ts.map +1 -1
- package/dist/blobManager/blobManager.js +30 -13
- package/dist/blobManager/blobManager.js.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.d.ts +1 -0
- package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.js +7 -5
- package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
- package/dist/channelCollection.d.ts +23 -12
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +85 -53
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +2 -2
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +10 -6
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerHandleContext.d.ts +1 -1
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +87 -94
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +312 -226
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts +7 -3
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +8 -4
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +41 -25
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +47 -29
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +6 -2
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +7 -2
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.d.ts +1 -1
- package/dist/dataStoreRegistry.d.ts.map +1 -1
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerProxies.d.ts +1 -17
- package/dist/deltaManagerProxies.d.ts.map +1 -1
- package/dist/deltaManagerProxies.js.map +1 -1
- package/dist/deltaScheduler.d.ts +9 -6
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +95 -89
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +21 -7
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +48 -19
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts +11 -0
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +5 -2
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +218 -70
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +40 -13
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +6 -2
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +14 -7
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/dist/gc/gcSummaryDefinitions.d.ts +18 -6
- package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/dist/gc/gcSummaryDefinitions.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +2 -1
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +33 -11
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +35 -17
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts +42 -13
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +27 -9
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +1 -0
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +3 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/inboundBatchAggregator.d.ts +34 -0
- package/dist/inboundBatchAggregator.d.ts.map +1 -0
- package/dist/inboundBatchAggregator.js +185 -0
- package/dist/inboundBatchAggregator.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/layerCompatState.d.ts +19 -0
- package/dist/layerCompatState.d.ts.map +1 -0
- package/dist/layerCompatState.js +64 -0
- package/dist/layerCompatState.js.map +1 -0
- package/dist/legacy.d.ts +0 -4
- package/dist/messageTypes.d.ts +14 -5
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/metadata.d.ts +12 -4
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +6 -2
- package/dist/metadata.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts +9 -3
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +3 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/duplicateBatchDetector.d.ts +9 -3
- package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
- package/dist/opLifecycle/duplicateBatchDetector.js +11 -5
- package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts +3 -2
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +13 -19
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +6 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +16 -8
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +1 -2
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +9 -6
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +13 -10
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +16 -11
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +4 -4
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +17 -16
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +9 -3
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +3 -1
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/package.json +2 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingStateManager.d.ts +22 -11
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +24 -15
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/summary/documentSchema.d.ts +7 -0
- package/dist/summary/documentSchema.d.ts.map +1 -1
- package/dist/summary/documentSchema.js +8 -4
- package/dist/summary/documentSchema.js.map +1 -1
- package/dist/summary/index.d.ts +1 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +94 -31
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +28 -16
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +7 -2
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +17 -6
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +48 -19
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +10 -5
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +26 -11
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js +1 -0
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +6 -2
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +13 -5
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/index.d.ts.map +1 -1
- package/dist/summary/summarizerNode/index.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +24 -8
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +45 -36
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +253 -135
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +3 -4
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +10 -8
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +28 -9
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +3 -2
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +9 -3
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +22 -9
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +8 -4
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +20 -9
- package/dist/summary/summaryManager.js.map +1 -1
- package/dist/throttler.d.ts +26 -10
- package/dist/throttler.d.ts.map +1 -1
- package/dist/throttler.js +12 -4
- package/dist/throttler.js.map +1 -1
- package/lib/batchTracker.d.ts +1 -2
- package/lib/batchTracker.d.ts.map +1 -1
- package/lib/batchTracker.js +2 -2
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager/blobManager.d.ts +5 -1
- package/lib/blobManager/blobManager.d.ts.map +1 -1
- package/lib/blobManager/blobManager.js +30 -13
- package/lib/blobManager/blobManager.js.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.d.ts +1 -0
- package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.js +7 -5
- package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
- package/lib/channelCollection.d.ts +23 -12
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +88 -54
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +2 -2
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +11 -7
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerHandleContext.d.ts +1 -1
- package/lib/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +87 -94
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +319 -228
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts +7 -3
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js +8 -4
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +41 -25
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +47 -29
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts +6 -2
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +7 -2
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.d.ts +1 -1
- package/lib/dataStoreRegistry.d.ts.map +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerProxies.d.ts +1 -17
- package/lib/deltaManagerProxies.d.ts.map +1 -1
- package/lib/deltaManagerProxies.js.map +1 -1
- package/lib/deltaScheduler.d.ts +9 -6
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +96 -90
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +21 -7
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +51 -20
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts +11 -0
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +4 -2
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +218 -70
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +40 -13
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +6 -2
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +14 -7
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/lib/gc/gcSummaryDefinitions.d.ts +18 -6
- package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/lib/gc/gcSummaryDefinitions.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +2 -1
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +33 -11
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +38 -18
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.d.ts +42 -13
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +27 -9
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -0
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -0
- package/lib/gc/index.js.map +1 -1
- package/lib/inboundBatchAggregator.d.ts +34 -0
- package/lib/inboundBatchAggregator.d.ts.map +1 -0
- package/lib/inboundBatchAggregator.js +181 -0
- package/lib/inboundBatchAggregator.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/layerCompatState.d.ts +19 -0
- package/lib/layerCompatState.d.ts.map +1 -0
- package/lib/layerCompatState.js +60 -0
- package/lib/layerCompatState.js.map +1 -0
- package/lib/legacy.d.ts +0 -4
- package/lib/messageTypes.d.ts +14 -5
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/metadata.d.ts +12 -4
- package/lib/metadata.d.ts.map +1 -1
- package/lib/metadata.js +6 -2
- package/lib/metadata.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts +9 -3
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +3 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/duplicateBatchDetector.d.ts +9 -3
- package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
- package/lib/opLifecycle/duplicateBatchDetector.js +11 -5
- package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts +3 -2
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +14 -20
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +6 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +17 -9
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +1 -2
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +10 -7
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +13 -10
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +16 -11
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +4 -4
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +17 -16
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +9 -3
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +3 -1
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingStateManager.d.ts +22 -11
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +25 -16
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/summary/documentSchema.d.ts +7 -0
- package/lib/summary/documentSchema.d.ts.map +1 -1
- package/lib/summary/documentSchema.js +8 -4
- package/lib/summary/documentSchema.js.map +1 -1
- package/lib/summary/index.d.ts +1 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +94 -31
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +28 -16
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +7 -2
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +17 -6
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +48 -19
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +10 -5
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +26 -11
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js +1 -0
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +6 -2
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +13 -5
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/index.d.ts.map +1 -1
- package/lib/summary/summarizerNode/index.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +24 -8
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +45 -36
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +3 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +253 -135
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +3 -4
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +10 -8
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +28 -9
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +2 -2
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +9 -3
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +22 -9
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts +8 -4
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +20 -9
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/throttler.d.ts +26 -10
- package/lib/throttler.d.ts.map +1 -1
- package/lib/throttler.js +12 -4
- package/lib/throttler.js.map +1 -1
- package/package.json +22 -31
- package/src/batchTracker.ts +34 -36
- package/src/blobManager/blobManager.ts +54 -33
- package/src/blobManager/blobManagerSnapSum.ts +10 -10
- package/src/channelCollection.ts +108 -82
- package/src/connectionTelemetry.ts +43 -19
- package/src/containerHandleContext.ts +2 -2
- package/src/containerRuntime.ts +492 -364
- package/src/dataStore.ts +17 -9
- package/src/dataStoreContext.ts +94 -73
- package/src/dataStoreContexts.ts +17 -12
- package/src/dataStoreRegistry.ts +1 -1
- package/src/deltaManagerProxies.ts +5 -5
- package/src/deltaScheduler.ts +24 -18
- package/src/gc/garbageCollection.ts +89 -40
- package/src/gc/gcConfigs.ts +13 -5
- package/src/gc/gcDefinitions.ts +224 -70
- package/src/gc/gcHelpers.ts +22 -11
- package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
- package/src/gc/gcSummaryDefinitions.ts +18 -6
- package/src/gc/gcSummaryStateTracker.ts +7 -3
- package/src/gc/gcTelemetry.ts +73 -30
- package/src/gc/gcUnreferencedStateTracker.ts +40 -16
- package/src/gc/index.ts +1 -0
- package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +55 -122
- package/src/index.ts +0 -3
- package/src/layerCompatState.ts +75 -0
- package/src/messageTypes.ts +16 -5
- package/src/metadata.ts +12 -4
- package/src/opLifecycle/README.md +43 -34
- package/src/opLifecycle/batchManager.ts +12 -6
- package/src/opLifecycle/duplicateBatchDetector.ts +12 -6
- package/src/opLifecycle/opCompressor.ts +22 -25
- package/src/opLifecycle/opDecompressor.ts +23 -11
- package/src/opLifecycle/opGroupingManager.ts +16 -11
- package/src/opLifecycle/opSplitter.ts +24 -18
- package/src/opLifecycle/outbox.ts +35 -33
- package/src/opLifecycle/remoteMessageProcessor.ts +13 -5
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +49 -26
- package/src/summary/documentSchema.ts +41 -22
- package/src/summary/index.ts +0 -3
- package/src/summary/orderedClientElection.ts +114 -49
- package/src/summary/runWhileConnectedCoordinator.ts +12 -3
- package/src/summary/runningSummarizer.ts +79 -36
- package/src/summary/summarizer.ts +51 -25
- package/src/summary/summarizerClientElection.ts +4 -2
- package/src/summary/summarizerHeuristics.ts +23 -12
- package/src/summary/summarizerNode/index.ts +1 -0
- package/src/summary/summarizerNode/summarizerNode.ts +54 -43
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +25 -15
- package/src/summary/summarizerTypes.ts +253 -139
- package/src/summary/summaryCollection.ts +41 -31
- package/src/summary/summaryFormat.ts +34 -13
- package/src/summary/summaryGenerator.ts +39 -18
- package/src/summary/summaryManager.ts +36 -24
- package/src/throttler.ts +23 -11
- package/container-runtime.test-files.tar +0 -0
- package/dist/scheduleManager.d.ts +0 -28
- package/dist/scheduleManager.d.ts.map +0 -1
- package/dist/scheduleManager.js +0 -233
- package/dist/scheduleManager.js.map +0 -1
- package/lib/scheduleManager.d.ts +0 -28
- package/lib/scheduleManager.d.ts.map +0 -1
- package/lib/scheduleManager.js +0 -229
- package/lib/scheduleManager.js.map +0 -1
|
@@ -61,7 +61,7 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
61
61
|
* The reference sequence number of the most recent acked summary.
|
|
62
62
|
* Returns 0 if there is not yet an acked summary.
|
|
63
63
|
*/
|
|
64
|
-
public get referenceSequenceNumber() {
|
|
64
|
+
public get referenceSequenceNumber(): number {
|
|
65
65
|
return this._lastSummaryReferenceSequenceNumber ?? 0;
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -98,13 +98,19 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
98
98
|
baseLogger: ITelemetryBaseLogger,
|
|
99
99
|
private readonly summarizeInternalFn: SummarizeInternalFn,
|
|
100
100
|
config: ISummarizerNodeConfig,
|
|
101
|
-
/**
|
|
101
|
+
/**
|
|
102
|
+
* Encoded handle or path to the node
|
|
103
|
+
*/
|
|
102
104
|
private readonly _summaryHandleId: EscapedPath,
|
|
103
105
|
private _changeSequenceNumber: number,
|
|
104
|
-
/**
|
|
106
|
+
/**
|
|
107
|
+
* Summary reference sequence number, i.e. last sequence number seen when last successful summary was created
|
|
108
|
+
*/
|
|
105
109
|
private _lastSummaryReferenceSequenceNumber?: number,
|
|
106
110
|
protected wipSummaryLogger?: ITelemetryBaseLogger,
|
|
107
|
-
/**
|
|
111
|
+
/**
|
|
112
|
+
* A unique id of this node to be logged when sending telemetry.
|
|
113
|
+
*/
|
|
108
114
|
protected telemetryNodeId?: string,
|
|
109
115
|
) {
|
|
110
116
|
this.canReuseHandle = config.canReuseHandle ?? true;
|
|
@@ -192,20 +198,23 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
192
198
|
this.wipSummarizeCalled = true;
|
|
193
199
|
|
|
194
200
|
// Try to reuse the tree if unchanged
|
|
195
|
-
if (
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
201
|
+
if (
|
|
202
|
+
this.canReuseHandle &&
|
|
203
|
+
!fullTree &&
|
|
204
|
+
!this.hasChanged() &&
|
|
205
|
+
this._lastSummaryReferenceSequenceNumber !== undefined
|
|
206
|
+
) {
|
|
207
|
+
this.wipSkipRecursion = true;
|
|
208
|
+
const stats = mergeStats();
|
|
209
|
+
stats.handleNodeCount++;
|
|
210
|
+
return {
|
|
211
|
+
summary: {
|
|
212
|
+
type: SummaryType.Handle,
|
|
213
|
+
handle: this.summaryHandleId,
|
|
214
|
+
handleType: SummaryType.Tree,
|
|
215
|
+
},
|
|
216
|
+
stats,
|
|
217
|
+
};
|
|
209
218
|
}
|
|
210
219
|
|
|
211
220
|
let incrementalSummaryContext: IExperimentalIncrementalSummaryContext | undefined;
|
|
@@ -215,14 +224,14 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
215
224
|
0x5df /* Summarize should not be called when not tracking the summary */,
|
|
216
225
|
);
|
|
217
226
|
incrementalSummaryContext =
|
|
218
|
-
this._lastSummaryReferenceSequenceNumber
|
|
219
|
-
?
|
|
227
|
+
this._lastSummaryReferenceSequenceNumber === undefined
|
|
228
|
+
? undefined
|
|
229
|
+
: {
|
|
220
230
|
summarySequenceNumber: this.wipReferenceSequenceNumber,
|
|
221
231
|
latestSummarySequenceNumber: this._lastSummaryReferenceSequenceNumber,
|
|
222
232
|
// TODO: remove summaryPath.
|
|
223
233
|
summaryPath: this.summaryHandleId,
|
|
224
|
-
}
|
|
225
|
-
: undefined;
|
|
234
|
+
};
|
|
226
235
|
}
|
|
227
236
|
|
|
228
237
|
const result = await this.summarizeInternalFn(
|
|
@@ -317,7 +326,7 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
317
326
|
* queue. We track this until we get an ack from the server for this summary.
|
|
318
327
|
* @param proposalHandle - The handle of the summary that was uploaded to the server.
|
|
319
328
|
*/
|
|
320
|
-
public completeSummary(proposalHandle: string) {
|
|
329
|
+
public completeSummary(proposalHandle: string): void {
|
|
321
330
|
this.completeSummaryCore(proposalHandle, false /* parentSkipRecursion */);
|
|
322
331
|
}
|
|
323
332
|
|
|
@@ -329,22 +338,20 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
329
338
|
* In that case, the children will not have work-in-progress state.
|
|
330
339
|
* @param validate - true to validate that the in-progress summary is correct for all nodes.
|
|
331
340
|
*/
|
|
332
|
-
protected completeSummaryCore(proposalHandle: string, parentSkipRecursion: boolean) {
|
|
341
|
+
protected completeSummaryCore(proposalHandle: string, parentSkipRecursion: boolean): void {
|
|
333
342
|
assert(
|
|
334
343
|
this.wipReferenceSequenceNumber !== undefined,
|
|
335
344
|
0x1a4 /* "Not tracking a summary" */,
|
|
336
345
|
);
|
|
337
|
-
if (parentSkipRecursion) {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
346
|
+
if (parentSkipRecursion && this._lastSummaryReferenceSequenceNumber === undefined) {
|
|
347
|
+
// This case the child is added after the latest non-failure summary.
|
|
348
|
+
// This node and all children should consider themselves as still not
|
|
349
|
+
// having a successful summary yet.
|
|
350
|
+
// We cannot "reuse" this node if unchanged since that summary, because
|
|
351
|
+
// handles will be unable to point to that node. It never made it to the
|
|
352
|
+
// tree itself, and only exists as an attach op in the _outstandingOps.
|
|
353
|
+
this.clearSummary();
|
|
354
|
+
return;
|
|
348
355
|
}
|
|
349
356
|
|
|
350
357
|
for (const child of this.children.values()) {
|
|
@@ -362,7 +369,7 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
362
369
|
this.clearSummary();
|
|
363
370
|
}
|
|
364
371
|
|
|
365
|
-
public clearSummary() {
|
|
372
|
+
public clearSummary(): void {
|
|
366
373
|
this.wipReferenceSequenceNumber = undefined;
|
|
367
374
|
this.wipSummarizeCalled = false;
|
|
368
375
|
this.wipSkipRecursion = false;
|
|
@@ -476,7 +483,7 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
476
483
|
}
|
|
477
484
|
}
|
|
478
485
|
|
|
479
|
-
public updateBaseSummaryState(snapshot: ISnapshotTree) {
|
|
486
|
+
public updateBaseSummaryState(snapshot: ISnapshotTree): void {
|
|
480
487
|
// Function deprecated. Empty declaration is kept around to compat failures.
|
|
481
488
|
}
|
|
482
489
|
|
|
@@ -502,9 +509,13 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
502
509
|
protected readonly canReuseHandle: boolean;
|
|
503
510
|
|
|
504
511
|
public createChild(
|
|
505
|
-
/**
|
|
512
|
+
/**
|
|
513
|
+
* Summarize function
|
|
514
|
+
*/
|
|
506
515
|
summarizeInternalFn: SummarizeInternalFn,
|
|
507
|
-
/**
|
|
516
|
+
/**
|
|
517
|
+
* Initial id or path part of this node
|
|
518
|
+
*/
|
|
508
519
|
id: string,
|
|
509
520
|
/**
|
|
510
521
|
* Information needed to create the node.
|
|
@@ -599,7 +610,7 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
599
610
|
* @param id - Initial id or path part of this node
|
|
600
611
|
*
|
|
601
612
|
*/
|
|
602
|
-
protected maybeUpdateChildState(child: SummarizerNode, id: string) {
|
|
613
|
+
protected maybeUpdateChildState(child: SummarizerNode, id: string): void {
|
|
603
614
|
// If a summary is in progress, this child was created after the summary started. So, we need to update the
|
|
604
615
|
// child's summary state as well.
|
|
605
616
|
if (this.isSummaryInProgress()) {
|
|
@@ -607,13 +618,13 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
607
618
|
}
|
|
608
619
|
// In case we have pending summaries on the parent, let's initialize it on the child.
|
|
609
620
|
if (child._lastSummaryReferenceSequenceNumber !== undefined) {
|
|
610
|
-
this.pendingSummaries.
|
|
621
|
+
for (const [proposedHandle, pendingSummaryInfo] of this.pendingSummaries.entries()) {
|
|
611
622
|
child.addPendingSummary(proposedHandle, pendingSummaryInfo);
|
|
612
|
-
}
|
|
623
|
+
}
|
|
613
624
|
}
|
|
614
625
|
}
|
|
615
626
|
|
|
616
|
-
protected addPendingSummary(key: string, pendingSummaryInfo: PendingSummaryInfo) {
|
|
627
|
+
protected addPendingSummary(key: string, pendingSummaryInfo: PendingSummaryInfo): void {
|
|
617
628
|
this.pendingSummaries.set(key, pendingSummaryInfo);
|
|
618
629
|
}
|
|
619
630
|
|
|
@@ -12,18 +12,28 @@ import {
|
|
|
12
12
|
} from "@fluidframework/telemetry-utils/internal";
|
|
13
13
|
|
|
14
14
|
export interface IRefreshSummaryResult {
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Tells whether this summary is tracked by this client.
|
|
17
|
+
*/
|
|
16
18
|
isSummaryTracked: boolean;
|
|
17
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Tells whether this summary is newer than the latest one tracked by this client.
|
|
21
|
+
*/
|
|
18
22
|
isSummaryNewer: boolean;
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
export interface IStartSummaryResult {
|
|
22
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* The number of summarizerNodes at the start of the summary.
|
|
28
|
+
*/
|
|
23
29
|
nodes: number;
|
|
24
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* The number of summarizerNodes in the wrong state.
|
|
32
|
+
*/
|
|
25
33
|
invalidNodes: number;
|
|
26
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* The invalid sequence numbers and their values. It should be in the format of validateSequenceNumber-nodeSequenceNumber
|
|
36
|
+
*/
|
|
27
37
|
mismatchNumbers: Set<string>;
|
|
28
38
|
}
|
|
29
39
|
|
|
@@ -38,14 +48,20 @@ export type ValidateSummaryResult =
|
|
|
38
48
|
}
|
|
39
49
|
| {
|
|
40
50
|
success: false;
|
|
41
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* The failure reason
|
|
53
|
+
*/
|
|
42
54
|
reason: string;
|
|
43
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* id of the node that failed during validation
|
|
57
|
+
*/
|
|
44
58
|
id: {
|
|
45
59
|
tag: TelemetryDataTag.CodeArtifact;
|
|
46
60
|
value: string | undefined;
|
|
47
61
|
};
|
|
48
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* If the error can be retried, time to wait before retrying
|
|
64
|
+
*/
|
|
49
65
|
retryAfterSeconds?: number;
|
|
50
66
|
};
|
|
51
67
|
|
|
@@ -64,7 +80,9 @@ export interface ISummarizerNodeRootContract {
|
|
|
64
80
|
): Promise<IRefreshSummaryResult>;
|
|
65
81
|
}
|
|
66
82
|
|
|
67
|
-
/**
|
|
83
|
+
/**
|
|
84
|
+
* Class to build paths for nodes in a tree with escaped special characters
|
|
85
|
+
*/
|
|
68
86
|
export class EscapedPath {
|
|
69
87
|
private constructor(public readonly path: string) {}
|
|
70
88
|
|
|
@@ -88,7 +106,9 @@ export class EscapedPath {
|
|
|
88
106
|
}
|
|
89
107
|
}
|
|
90
108
|
export interface PendingSummaryInfo {
|
|
91
|
-
/**
|
|
109
|
+
/**
|
|
110
|
+
* The sequence number at which the summary was created.
|
|
111
|
+
*/
|
|
92
112
|
referenceSequenceNumber: number;
|
|
93
113
|
}
|
|
94
114
|
|
|
@@ -96,19 +116,31 @@ export interface PendingSummaryInfo {
|
|
|
96
116
|
* Represents the details needed to create a child summarizer node.
|
|
97
117
|
*/
|
|
98
118
|
export interface ICreateChildDetails {
|
|
99
|
-
/**
|
|
119
|
+
/**
|
|
120
|
+
* Sequence number of latest known change to the node
|
|
121
|
+
*/
|
|
100
122
|
changeSequenceNumber: number;
|
|
101
|
-
/**
|
|
123
|
+
/**
|
|
124
|
+
* A unique id of this child to be logged when sending telemetry.
|
|
125
|
+
*/
|
|
102
126
|
telemetryNodeId: string;
|
|
103
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* Summary handle for child node
|
|
129
|
+
*/
|
|
104
130
|
summaryHandleId: EscapedPath;
|
|
105
|
-
/**
|
|
131
|
+
/**
|
|
132
|
+
* the reference sequence number of the last successful summary.
|
|
133
|
+
*/
|
|
106
134
|
lastSummaryReferenceSequenceNumber: number | undefined;
|
|
107
135
|
}
|
|
108
136
|
|
|
109
137
|
export interface ISubtreeInfo<T extends ISnapshotTree | SummaryObject> {
|
|
110
|
-
/**
|
|
138
|
+
/**
|
|
139
|
+
* Tree to use to find children subtrees
|
|
140
|
+
*/
|
|
111
141
|
childrenTree: T;
|
|
112
|
-
/**
|
|
142
|
+
/**
|
|
143
|
+
* Additional path part where children are isolated
|
|
144
|
+
*/
|
|
113
145
|
childrenPathPart: string | undefined;
|
|
114
146
|
}
|
|
@@ -51,7 +51,7 @@ interface PendingSummaryInfoWithGC extends PendingSummaryInfo {
|
|
|
51
51
|
* - Manages the used routes of this node. These are used to identify if this node is referenced in the document
|
|
52
52
|
* and to determine if the node's used state changed since last summary.
|
|
53
53
|
*
|
|
54
|
-
|
|
54
|
+
*- Adds trackState param to summarize. If trackState is false, it bypasses the SummarizerNode and calls
|
|
55
55
|
* directly into summarizeInternal method.
|
|
56
56
|
*/
|
|
57
57
|
export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummarizerNodeWithGC {
|
|
@@ -95,12 +95,16 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
95
95
|
config: ISummarizerNodeConfigWithGC,
|
|
96
96
|
_summaryHandleId: EscapedPath,
|
|
97
97
|
changeSequenceNumber: number,
|
|
98
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* Summary reference sequence number, i.e. last sequence number seen when it was created
|
|
100
|
+
*/
|
|
99
101
|
lastSummaryReferenceSequenceNumber?: number,
|
|
100
102
|
wipSummaryLogger?: ITelemetryBaseLogger,
|
|
101
103
|
private readonly getGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
|
|
102
104
|
getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,
|
|
103
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* A unique id of this node to be logged when sending telemetry.
|
|
107
|
+
*/
|
|
104
108
|
telemetryId?: string,
|
|
105
109
|
) {
|
|
106
110
|
super(
|
|
@@ -132,7 +136,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
132
136
|
* - usedRoutes: This is used to figure out if the used state of this node changed since last summary.
|
|
133
137
|
* - gcData: The garbage collection data of this node that is required for running GC.
|
|
134
138
|
*/
|
|
135
|
-
private async loadBaseGCDetails() {
|
|
139
|
+
private async loadBaseGCDetails(): Promise<void> {
|
|
136
140
|
if (this.baseGCDetailsLoaded) {
|
|
137
141
|
return;
|
|
138
142
|
}
|
|
@@ -152,8 +156,8 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
152
156
|
this.gcData = cloneGCData(baseGCDetails.gcData);
|
|
153
157
|
}
|
|
154
158
|
if (baseGCDetails.usedRoutes !== undefined) {
|
|
155
|
-
this.usedRoutes =
|
|
156
|
-
this.referenceUsedRoutes =
|
|
159
|
+
this.usedRoutes = [...baseGCDetails.usedRoutes].sort();
|
|
160
|
+
this.referenceUsedRoutes = [...baseGCDetails.usedRoutes].sort();
|
|
157
161
|
}
|
|
158
162
|
}
|
|
159
163
|
|
|
@@ -263,7 +267,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
263
267
|
* @param parentSkipRecursion - true if the parent of this node skipped recursing the child nodes when summarizing.
|
|
264
268
|
* In that case, the children will not have work-in-progress state.
|
|
265
269
|
*/
|
|
266
|
-
protected completeSummaryCore(proposalHandle: string, parentSkipRecursion: boolean) {
|
|
270
|
+
protected completeSummaryCore(proposalHandle: string, parentSkipRecursion: boolean): void {
|
|
267
271
|
let wipSerializedUsedRoutes: string | undefined;
|
|
268
272
|
// If GC is disabled, don't set wip used routes.
|
|
269
273
|
if (!this.gcDisabled) {
|
|
@@ -288,7 +292,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
288
292
|
/**
|
|
289
293
|
* Clears the work-in-progress state.
|
|
290
294
|
*/
|
|
291
|
-
public clearSummary() {
|
|
295
|
+
public clearSummary(): void {
|
|
292
296
|
this.wipSerializedUsedRoutes = undefined;
|
|
293
297
|
this.wipChildNodesUsedRoutes = undefined;
|
|
294
298
|
super.clearSummary();
|
|
@@ -324,7 +328,9 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
324
328
|
);
|
|
325
329
|
throw error;
|
|
326
330
|
}
|
|
327
|
-
this.referenceUsedRoutes = JSON.parse(
|
|
331
|
+
this.referenceUsedRoutes = JSON.parse(
|
|
332
|
+
summaryNodeWithGC.serializedUsedRoutes,
|
|
333
|
+
) as string[];
|
|
328
334
|
}
|
|
329
335
|
}
|
|
330
336
|
|
|
@@ -335,9 +341,13 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
335
341
|
* Override the createChild method to return an instance of SummarizerNodeWithGC.
|
|
336
342
|
*/
|
|
337
343
|
public createChild(
|
|
338
|
-
/**
|
|
344
|
+
/**
|
|
345
|
+
* Summarize function
|
|
346
|
+
*/
|
|
339
347
|
summarizeInternalFn: SummarizeInternalFn,
|
|
340
|
-
/**
|
|
348
|
+
/**
|
|
349
|
+
* Initial id or path part of this node
|
|
350
|
+
*/
|
|
341
351
|
id: string,
|
|
342
352
|
/**
|
|
343
353
|
* Information needed to create the node.
|
|
@@ -355,7 +365,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
355
365
|
* snapshot and the child node wasn't created then. If a child is created after that, its GC details should be
|
|
356
366
|
* the one from the downloaded snapshot and not the base GC details.
|
|
357
367
|
*/
|
|
358
|
-
const getChildBaseGCDetailsFn = async () => {
|
|
368
|
+
const getChildBaseGCDetailsFn = async (): Promise<IGarbageCollectionDetailsBase> => {
|
|
359
369
|
const childNodesBaseGCDetails = await this.childNodesBaseGCDetailsP;
|
|
360
370
|
return childNodesBaseGCDetails.get(id) ?? {};
|
|
361
371
|
};
|
|
@@ -395,7 +405,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
395
405
|
* @param child - The child node whose state is to be updated.
|
|
396
406
|
* @param id - Initial id or path part of this node
|
|
397
407
|
*/
|
|
398
|
-
protected maybeUpdateChildState(child: SummarizerNodeWithGC, id: string) {
|
|
408
|
+
protected maybeUpdateChildState(child: SummarizerNodeWithGC, id: string): void {
|
|
399
409
|
super.maybeUpdateChildState(child, id);
|
|
400
410
|
|
|
401
411
|
// If GC has run on this node and summarization isn't complete, this.wipSerializedUsedRoutes will be defined.
|
|
@@ -417,7 +427,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
417
427
|
const pendingSummaryWithGC = pendingSummary as PendingSummaryInfoWithGC;
|
|
418
428
|
if (pendingSummaryWithGC.serializedUsedRoutes !== undefined) {
|
|
419
429
|
const childNodeUsedRoutes = unpackChildNodesUsedRoutes(
|
|
420
|
-
JSON.parse(pendingSummaryWithGC.serializedUsedRoutes),
|
|
430
|
+
JSON.parse(pendingSummaryWithGC.serializedUsedRoutes) as string[],
|
|
421
431
|
);
|
|
422
432
|
const newSerializedRoutes = childNodeUsedRoutes.get(id) ?? [""];
|
|
423
433
|
const childPendingSummaryInfo = {
|
|
@@ -447,7 +457,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
447
457
|
return this.usedRoutes.includes("") || this.usedRoutes.includes("/");
|
|
448
458
|
}
|
|
449
459
|
|
|
450
|
-
public updateUsedRoutes(usedRoutes: string[]) {
|
|
460
|
+
public updateUsedRoutes(usedRoutes: string[]): void {
|
|
451
461
|
// Sort the given routes before updating. This will ensure that the routes compared in hasUsedStateChanged()
|
|
452
462
|
// are in the same order.
|
|
453
463
|
this.usedRoutes = usedRoutes.sort();
|