@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
package/lib/channelCollection.js
CHANGED
|
@@ -10,11 +10,14 @@ import { CreateSummarizerNodeSource, channelsTreeName, gcDataBlobKey, } from "@f
|
|
|
10
10
|
import { GCDataBuilder, RequestParser, SummaryTreeBuilder, addBlobToSummary, convertSnapshotTreeToSummaryTree, convertSummaryTreeToITree, create404Response, createResponseError, encodeCompactIdToString, isSerializedHandle, processAttachMessageGCData, responseToException, unpackChildNodesUsedRoutes, } from "@fluidframework/runtime-utils/internal";
|
|
11
11
|
import { DataCorruptionError, DataProcessingError, LoggingError, createChildLogger, createChildMonitoringContext, extractSafePropertiesFromMessage, tagCodeArtifacts, } from "@fluidframework/telemetry-utils/internal";
|
|
12
12
|
import { v4 as uuid } from "uuid";
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
// eslint-disable-next-line import/no-deprecated
|
|
15
|
+
DeletedResponseHeaderKey, defaultRuntimeHeaderData, } from "./containerRuntime.js";
|
|
14
16
|
import { channelToDataStore, isDataStoreAliasMessage, } from "./dataStore.js";
|
|
15
17
|
import { LocalDetachedFluidDataStoreContext, LocalFluidDataStoreContext, RemoteFluidDataStoreContext, createAttributesBlob, } from "./dataStoreContext.js";
|
|
16
18
|
import { DataStoreContexts } from "./dataStoreContexts.js";
|
|
17
19
|
import { FluidDataStoreRegistry } from "./dataStoreRegistry.js";
|
|
20
|
+
// eslint-disable-next-line import/no-deprecated
|
|
18
21
|
import { GCNodeType, urlToGCNodePath } from "./gc/index.js";
|
|
19
22
|
import { ContainerMessageType } from "./messageTypes.js";
|
|
20
23
|
import { StorageServiceWithAttachBlobs } from "./storageServiceWithAttachBlobs.js";
|
|
@@ -25,12 +28,17 @@ import { nonDataStorePaths, rootHasIsolatedChannels, } from "./summary/index.js"
|
|
|
25
28
|
*/
|
|
26
29
|
export var RuntimeHeaders;
|
|
27
30
|
(function (RuntimeHeaders) {
|
|
28
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* True to wait for a data store to be created and loaded before returning it.
|
|
33
|
+
*/
|
|
29
34
|
RuntimeHeaders["wait"] = "wait";
|
|
30
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* True if the request is coming from an IFluidHandle.
|
|
37
|
+
*/
|
|
31
38
|
RuntimeHeaders["viaHandle"] = "viaHandle";
|
|
32
39
|
})(RuntimeHeaders || (RuntimeHeaders = {}));
|
|
33
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* True if a tombstoned object should be returned without erroring
|
|
34
42
|
* @legacy
|
|
35
43
|
* @alpha
|
|
36
44
|
*/
|
|
@@ -155,9 +163,12 @@ export class ChannelCollection {
|
|
|
155
163
|
this.pendingAttach = new Map();
|
|
156
164
|
// 0.24 back-compat attachingBeforeSummary
|
|
157
165
|
this.attachOpFiredForDataStore = new Set();
|
|
166
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Property is defined once; no need to extract inner lambda
|
|
158
167
|
this.disposeOnce = new Lazy(() => this.contexts.dispose());
|
|
159
168
|
this.pendingAliasMap = new Map();
|
|
160
|
-
/**
|
|
169
|
+
/**
|
|
170
|
+
* For sampling. Only log once per container
|
|
171
|
+
*/
|
|
161
172
|
this.shouldSendAttachLog = true;
|
|
162
173
|
this.dispose = () => this.disposeOnce.value;
|
|
163
174
|
this.mc = createChildMonitoringContext({ logger: baseLogger });
|
|
@@ -181,42 +192,42 @@ export class ChannelCollection {
|
|
|
181
192
|
unreferencedDataStoreCount++;
|
|
182
193
|
}
|
|
183
194
|
// If we have a detached container, then create local data store contexts.
|
|
184
|
-
if (this.parentContext.attachState
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
snapshotForRemoteFluidDatastoreContext = {
|
|
188
|
-
...baseSnapshot,
|
|
189
|
-
snapshotTree: value,
|
|
190
|
-
};
|
|
195
|
+
if (this.parentContext.attachState === AttachState.Detached) {
|
|
196
|
+
if (typeof value !== "object") {
|
|
197
|
+
throw new LoggingError("Snapshot should be there to load from!!");
|
|
191
198
|
}
|
|
192
|
-
|
|
199
|
+
const snapshotTree = value;
|
|
200
|
+
dataStoreContext = new LocalFluidDataStoreContext({
|
|
193
201
|
id: key,
|
|
194
|
-
|
|
202
|
+
pkg: undefined,
|
|
195
203
|
parentContext: this.wrapContextForInnerChannel(key),
|
|
196
204
|
storage: this.parentContext.storage,
|
|
197
205
|
scope: this.parentContext.scope,
|
|
198
206
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
|
|
199
207
|
type: CreateSummarizerNodeSource.FromSummary,
|
|
200
208
|
}),
|
|
201
|
-
|
|
209
|
+
makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(key),
|
|
210
|
+
snapshotTree,
|
|
202
211
|
});
|
|
203
212
|
}
|
|
204
213
|
else {
|
|
205
|
-
|
|
206
|
-
|
|
214
|
+
let snapshotForRemoteFluidDatastoreContext = value;
|
|
215
|
+
if (isInstanceOfISnapshot(baseSnapshot)) {
|
|
216
|
+
snapshotForRemoteFluidDatastoreContext = {
|
|
217
|
+
...baseSnapshot,
|
|
218
|
+
snapshotTree: value,
|
|
219
|
+
};
|
|
207
220
|
}
|
|
208
|
-
|
|
209
|
-
dataStoreContext = new LocalFluidDataStoreContext({
|
|
221
|
+
dataStoreContext = new RemoteFluidDataStoreContext({
|
|
210
222
|
id: key,
|
|
211
|
-
|
|
223
|
+
snapshot: snapshotForRemoteFluidDatastoreContext,
|
|
212
224
|
parentContext: this.wrapContextForInnerChannel(key),
|
|
213
225
|
storage: this.parentContext.storage,
|
|
214
226
|
scope: this.parentContext.scope,
|
|
215
227
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
|
|
216
228
|
type: CreateSummarizerNodeSource.FromSummary,
|
|
217
229
|
}),
|
|
218
|
-
|
|
219
|
-
snapshotTree,
|
|
230
|
+
loadingGroupId: value.groupId,
|
|
220
231
|
});
|
|
221
232
|
}
|
|
222
233
|
this.contexts.addBoundOrRemoted(dataStoreContext);
|
|
@@ -366,7 +377,9 @@ export class ChannelCollection {
|
|
|
366
377
|
alreadyProcessed(id) {
|
|
367
378
|
return this.aliasMap.get(id) !== undefined || this.contexts.get(id) !== undefined;
|
|
368
379
|
}
|
|
369
|
-
/**
|
|
380
|
+
/**
|
|
381
|
+
* Package up the context's attach summary etc into an IAttachMessage
|
|
382
|
+
*/
|
|
370
383
|
generateAttachMessage(localContext) {
|
|
371
384
|
// Get the attach summary.
|
|
372
385
|
const attachSummary = localContext.getAttachSummary();
|
|
@@ -447,13 +460,12 @@ export class ChannelCollection {
|
|
|
447
460
|
return uuid();
|
|
448
461
|
}
|
|
449
462
|
createDetachedDataStore(pkg, loadingGroupId) {
|
|
450
|
-
return this.createContext(this.createDataStoreId(), pkg, LocalDetachedFluidDataStoreContext,
|
|
451
|
-
loadingGroupId);
|
|
463
|
+
return this.createContext(this.createDataStoreId(), pkg, LocalDetachedFluidDataStoreContext, loadingGroupId);
|
|
452
464
|
}
|
|
453
|
-
createDataStoreContext(pkg,
|
|
454
|
-
return this.createContext(this.createDataStoreId(), pkg, LocalFluidDataStoreContext,
|
|
465
|
+
createDataStoreContext(pkg, loadingGroupId) {
|
|
466
|
+
return this.createContext(this.createDataStoreId(), pkg, LocalFluidDataStoreContext, loadingGroupId);
|
|
455
467
|
}
|
|
456
|
-
createContext(id, pkg, contextCtor,
|
|
468
|
+
createContext(id, pkg, contextCtor, loadingGroupId) {
|
|
457
469
|
assert(loadingGroupId !== "", 0x974 /* loadingGroupId should not be the empty string */);
|
|
458
470
|
const context = new contextCtor({
|
|
459
471
|
id,
|
|
@@ -466,7 +478,6 @@ export class ChannelCollection {
|
|
|
466
478
|
}),
|
|
467
479
|
makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(id),
|
|
468
480
|
snapshotTree: undefined,
|
|
469
|
-
createProps,
|
|
470
481
|
loadingGroupId,
|
|
471
482
|
channelToDataStoreFn: (channel) => channelToDataStore(channel, id, this, createChildLogger({ logger: this.parentContext.baseLogger })),
|
|
472
483
|
});
|
|
@@ -479,13 +490,16 @@ export class ChannelCollection {
|
|
|
479
490
|
reSubmit(type, content, localOpMetadata) {
|
|
480
491
|
switch (type) {
|
|
481
492
|
case ContainerMessageType.Attach:
|
|
482
|
-
case ContainerMessageType.Alias:
|
|
493
|
+
case ContainerMessageType.Alias: {
|
|
483
494
|
this.parentContext.submitMessage(type, content, localOpMetadata);
|
|
484
495
|
return;
|
|
485
|
-
|
|
496
|
+
}
|
|
497
|
+
case ContainerMessageType.FluidDataStoreOp: {
|
|
486
498
|
return this.reSubmitChannelOp(type, content, localOpMetadata);
|
|
487
|
-
|
|
499
|
+
}
|
|
500
|
+
default: {
|
|
488
501
|
assert(false, 0x907 /* unknown op type */);
|
|
502
|
+
}
|
|
489
503
|
}
|
|
490
504
|
}
|
|
491
505
|
reSubmitChannelOp(type, content, localOpMetadata) {
|
|
@@ -522,14 +536,18 @@ export class ChannelCollection {
|
|
|
522
536
|
async applyStashedOp(content) {
|
|
523
537
|
const opContents = content;
|
|
524
538
|
switch (opContents.type) {
|
|
525
|
-
case ContainerMessageType.Attach:
|
|
539
|
+
case ContainerMessageType.Attach: {
|
|
526
540
|
return this.applyStashedAttachOp(opContents.contents);
|
|
527
|
-
|
|
541
|
+
}
|
|
542
|
+
case ContainerMessageType.Alias: {
|
|
528
543
|
return;
|
|
529
|
-
|
|
544
|
+
}
|
|
545
|
+
case ContainerMessageType.FluidDataStoreOp: {
|
|
530
546
|
return this.applyStashedChannelChannelOp(opContents.contents);
|
|
531
|
-
|
|
547
|
+
}
|
|
548
|
+
default: {
|
|
532
549
|
assert(false, 0x908 /* unknon type of op */);
|
|
550
|
+
}
|
|
533
551
|
}
|
|
534
552
|
}
|
|
535
553
|
async applyStashedChannelChannelOp(envelope) {
|
|
@@ -577,7 +595,7 @@ export class ChannelCollection {
|
|
|
577
595
|
// if the client is not detached put in the pending attach list
|
|
578
596
|
// so that on ack of the stashed op, the context is found.
|
|
579
597
|
// detached client don't send ops, so should not expect and ack.
|
|
580
|
-
this.pendingAttach.set(
|
|
598
|
+
this.pendingAttach.set(id, message);
|
|
581
599
|
}
|
|
582
600
|
}
|
|
583
601
|
/**
|
|
@@ -586,17 +604,21 @@ export class ChannelCollection {
|
|
|
586
604
|
*/
|
|
587
605
|
processMessages(messageCollection) {
|
|
588
606
|
switch (messageCollection.envelope.type) {
|
|
589
|
-
case ContainerMessageType.FluidDataStoreOp:
|
|
607
|
+
case ContainerMessageType.FluidDataStoreOp: {
|
|
590
608
|
this.processChannelMessages(messageCollection);
|
|
591
609
|
break;
|
|
592
|
-
|
|
610
|
+
}
|
|
611
|
+
case ContainerMessageType.Attach: {
|
|
593
612
|
this.processAttachMessages(messageCollection);
|
|
594
613
|
break;
|
|
595
|
-
|
|
614
|
+
}
|
|
615
|
+
case ContainerMessageType.Alias: {
|
|
596
616
|
this.processAliasMessages(messageCollection);
|
|
597
617
|
break;
|
|
598
|
-
|
|
618
|
+
}
|
|
619
|
+
default: {
|
|
599
620
|
assert(false, 0x8e9 /* unreached */);
|
|
621
|
+
}
|
|
600
622
|
}
|
|
601
623
|
}
|
|
602
624
|
/**
|
|
@@ -623,7 +645,7 @@ export class ChannelCollection {
|
|
|
623
645
|
* @param messageCollection - The collection of messages to process.
|
|
624
646
|
*/
|
|
625
647
|
processChannelMessages(messageCollection) {
|
|
626
|
-
const { messagesContent, local } = messageCollection;
|
|
648
|
+
const { envelope, messagesContent, local } = messageCollection;
|
|
627
649
|
let currentMessageState;
|
|
628
650
|
let currentMessagesContent = [];
|
|
629
651
|
// Helper that sends the current bunch of messages to the data store. It validates that the data stores exists.
|
|
@@ -635,7 +657,7 @@ export class ChannelCollection {
|
|
|
635
657
|
const currentContext = this.contexts.get(currentMessageState.address);
|
|
636
658
|
assert(!!currentContext, 0xa66 /* Context not found */);
|
|
637
659
|
currentContext.processMessages({
|
|
638
|
-
envelope: { ...
|
|
660
|
+
envelope: { ...envelope, type: currentMessageState.type },
|
|
639
661
|
messagesContent: currentMessagesContent,
|
|
640
662
|
local,
|
|
641
663
|
});
|
|
@@ -657,10 +679,10 @@ export class ChannelCollection {
|
|
|
657
679
|
}
|
|
658
680
|
if (context === undefined) {
|
|
659
681
|
// Former assert 0x162
|
|
660
|
-
throw DataProcessingError.create("No context for op", "processFluidDataStoreOp",
|
|
682
|
+
throw DataProcessingError.create("No context for op", "processFluidDataStoreOp", envelope, {
|
|
661
683
|
local,
|
|
662
684
|
messageDetails: JSON.stringify({
|
|
663
|
-
type:
|
|
685
|
+
type: envelope.type,
|
|
664
686
|
contentType: typeof contents,
|
|
665
687
|
}),
|
|
666
688
|
...tagCodeArtifacts({ address }),
|
|
@@ -682,10 +704,10 @@ export class ChannelCollection {
|
|
|
682
704
|
this.gcNodeUpdated({
|
|
683
705
|
node: { type: "DataStore", path: `/${address}` },
|
|
684
706
|
reason: "Changed",
|
|
685
|
-
timestampMs:
|
|
707
|
+
timestampMs: envelope.timestamp,
|
|
686
708
|
packagePath: context.isLoaded ? context.packagePath : undefined,
|
|
687
709
|
});
|
|
688
|
-
detectOutboundReferences(address, contextContents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath,
|
|
710
|
+
detectOutboundReferences(address, contextContents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath, envelope.timestamp));
|
|
689
711
|
}
|
|
690
712
|
// Process the last bunch of messages, if any. Note that there may not be any messages in case all of them are
|
|
691
713
|
// ignored because the data store is deleted.
|
|
@@ -696,6 +718,7 @@ export class ChannelCollection {
|
|
|
696
718
|
if (this.checkAndLogIfDeleted(id, this.contexts.get(id), "Requested", "getDataStore", requestHeaderData, originalRequest)) {
|
|
697
719
|
// The requested data store has been deleted by gc. Create a 404 response exception.
|
|
698
720
|
throw responseToException(createResponseError(404, "DataStore was deleted", originalRequest, {
|
|
721
|
+
// eslint-disable-next-line import/no-deprecated
|
|
699
722
|
[DeletedResponseHeaderKey]: true,
|
|
700
723
|
}), originalRequest);
|
|
701
724
|
}
|
|
@@ -737,7 +760,7 @@ export class ChannelCollection {
|
|
|
737
760
|
if (!this.isDataStoreDeleted(dataStoreNodePath)) {
|
|
738
761
|
return false;
|
|
739
762
|
}
|
|
740
|
-
const idToLog = originalRequest
|
|
763
|
+
const idToLog = originalRequest === undefined ? dataStoreNodePath : urlToGCNodePath(originalRequest.url);
|
|
741
764
|
// Log the package details asynchronously since getInitialSnapshotDetails is async
|
|
742
765
|
const recentlyDeletedContext = this.contexts.getRecentlyDeletedContext(id);
|
|
743
766
|
if (recentlyDeletedContext !== undefined) {
|
|
@@ -776,6 +799,7 @@ export class ChannelCollection {
|
|
|
776
799
|
processSignal(messageArg, local) {
|
|
777
800
|
const envelope = messageArg.content;
|
|
778
801
|
const fluidDataStoreId = envelope.address;
|
|
802
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
779
803
|
const message = { ...messageArg, content: envelope.contents };
|
|
780
804
|
const context = this.contexts.get(fluidDataStoreId);
|
|
781
805
|
// If the data store has been deleted, log an error and ignore this message. This helps prevent document
|
|
@@ -859,7 +883,7 @@ export class ChannelCollection {
|
|
|
859
883
|
builder.prefixAndAddNodes(contextId, contextGCData.gcNodes);
|
|
860
884
|
});
|
|
861
885
|
// Get the outbound routes (aliased data stores) and add a GC node for this channel.
|
|
862
|
-
builder.addNode("/",
|
|
886
|
+
builder.addNode("/", [...this.aliasedDataStores]);
|
|
863
887
|
return builder.getGCData();
|
|
864
888
|
}
|
|
865
889
|
/**
|
|
@@ -1024,7 +1048,7 @@ export class ChannelCollection {
|
|
|
1024
1048
|
}
|
|
1025
1049
|
this.deleteChild(dataStoreId);
|
|
1026
1050
|
}
|
|
1027
|
-
return
|
|
1051
|
+
return [...sweepReadyDataStoreRoutes];
|
|
1028
1052
|
}
|
|
1029
1053
|
/**
|
|
1030
1054
|
* This is called to update objects whose routes are tombstones.
|
|
@@ -1073,12 +1097,14 @@ export class ChannelCollection {
|
|
|
1073
1097
|
// If the node belongs to a data store, return its package path. For DDSes, we return the package path of the
|
|
1074
1098
|
// data store that contains it.
|
|
1075
1099
|
const context = this.contexts.get(nodePath.split("/")[1]);
|
|
1076
|
-
|
|
1100
|
+
const initialSnapshotDetails = await context?.getInitialSnapshotDetails();
|
|
1101
|
+
return initialSnapshotDetails?.pkg;
|
|
1077
1102
|
}
|
|
1078
1103
|
/**
|
|
1079
1104
|
* Called by GC to determine if a node is for a data store or for an object within a data store (for e.g. DDS).
|
|
1080
1105
|
* @returns the GC node type if the node belongs to a data store or object within data store, undefined otherwise.
|
|
1081
1106
|
*/
|
|
1107
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1082
1108
|
getGCNodeType(nodePath) {
|
|
1083
1109
|
const pathParts = nodePath.split("/");
|
|
1084
1110
|
if (!this.contexts.has(pathParts[1])) {
|
|
@@ -1087,8 +1113,10 @@ export class ChannelCollection {
|
|
|
1087
1113
|
// Data stores paths are of the format "/dataStoreId".
|
|
1088
1114
|
// Sub data store paths are of the format "/dataStoreId/subPath/...".
|
|
1089
1115
|
if (pathParts.length === 2) {
|
|
1116
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1090
1117
|
return GCNodeType.DataStore;
|
|
1091
1118
|
}
|
|
1119
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1092
1120
|
return GCNodeType.SubDataStore;
|
|
1093
1121
|
}
|
|
1094
1122
|
internalId(maybeAlias) {
|
|
@@ -1136,7 +1164,9 @@ export class ChannelCollection {
|
|
|
1136
1164
|
return dataStore.request(subRequest);
|
|
1137
1165
|
}
|
|
1138
1166
|
}
|
|
1139
|
-
export function getSummaryForDatastores(snapshot,
|
|
1167
|
+
export function getSummaryForDatastores(snapshot,
|
|
1168
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1169
|
+
metadata) {
|
|
1140
1170
|
if (!snapshot) {
|
|
1141
1171
|
return undefined;
|
|
1142
1172
|
}
|
|
@@ -1189,9 +1219,13 @@ export function detectOutboundReferences(address, contents, addedOutboundReferen
|
|
|
1189
1219
|
// GC node paths are all absolute paths, hence the "" prefix.
|
|
1190
1220
|
// e.g. this will yield "/dataStoreId/ddsId"
|
|
1191
1221
|
const fromPath = ["", address, ddsAddress].join("/");
|
|
1192
|
-
|
|
1222
|
+
for (const toPath of outboundPaths) {
|
|
1223
|
+
addedOutboundReference(fromPath, toPath);
|
|
1224
|
+
}
|
|
1193
1225
|
}
|
|
1194
|
-
/**
|
|
1226
|
+
/**
|
|
1227
|
+
* @internal
|
|
1228
|
+
*/
|
|
1195
1229
|
export class ChannelCollectionFactory {
|
|
1196
1230
|
constructor(registryEntries,
|
|
1197
1231
|
// ADO:7302 We need a better type here
|