@fluidframework/container-runtime 2.0.0-dev-rc.3.0.0.250606 → 2.0.0-dev-rc.3.0.0.253463
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/api-report/container-runtime.api.md +34 -33
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js +4 -4
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.d.ts +31 -23
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +81 -99
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +3 -2
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +71 -71
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +1 -1
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +16 -16
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/container-runtime-alpha.d.ts +64 -36
- package/dist/container-runtime-beta.d.ts +28 -28
- package/dist/container-runtime-public.d.ts +28 -28
- package/dist/container-runtime-untrimmed.d.ts +66 -38
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js +2 -2
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +12 -8
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +177 -150
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts +1 -1
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +7 -7
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +8 -8
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +60 -60
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +11 -11
- 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 +2 -2
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/dist/deltaManagerSummarizerProxy.js.map +1 -1
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +6 -6
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/error.d.ts +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +4 -4
- package/dist/error.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +2 -1
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +20 -20
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +4 -5
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +3 -2
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +5 -1
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +21 -12
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +11 -11
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +2 -1
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +11 -9
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +6 -6
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +1 -1
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +2 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/messageTypes.d.ts +2 -2
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +1 -1
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +5 -5
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +12 -12
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +7 -7
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +1 -1
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +17 -17
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +2 -1
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +13 -13
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -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.map +1 -1
- package/dist/pendingStateManager.js +18 -18
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js +24 -24
- package/dist/scheduleManager.js.map +1 -1
- package/dist/storageServiceWithAttachBlobs.d.ts +2 -2
- package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -1
- package/dist/storageServiceWithAttachBlobs.js +2 -2
- package/dist/storageServiceWithAttachBlobs.js.map +1 -1
- package/dist/summary/documentSchema.d.ts +37 -6
- package/dist/summary/documentSchema.d.ts.map +1 -1
- package/dist/summary/documentSchema.js +58 -21
- package/dist/summary/documentSchema.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +7 -7
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +3 -3
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +1 -1
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +16 -16
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +2 -1
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +12 -12
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +2 -2
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +2 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +28 -28
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -3
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +14 -14
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +4 -2
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.js +7 -7
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +1 -1
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +8 -8
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +3 -2
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +16 -16
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +15 -14
- package/dist/summary/summaryManager.js.map +1 -1
- package/lib/batchTracker.d.ts.map +1 -1
- package/lib/batchTracker.js +2 -2
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +31 -23
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +46 -64
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +3 -2
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +6 -6
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +1 -1
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +2 -2
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/container-runtime-alpha.d.ts +64 -36
- package/lib/container-runtime-beta.d.ts +28 -28
- package/lib/container-runtime-public.d.ts +28 -28
- package/lib/container-runtime-untrimmed.d.ts +66 -38
- package/lib/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +12 -8
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +56 -27
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts +1 -1
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js +2 -2
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +8 -8
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +6 -6
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +2 -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 +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerSummarizerProxy.d.ts +1 -1
- package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/lib/deltaManagerSummarizerProxy.js.map +1 -1
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +1 -1
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/error.d.ts +1 -1
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +2 -2
- package/lib/error.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +2 -1
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +4 -4
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +4 -5
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +3 -2
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +5 -1
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +10 -2
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +2 -2
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +2 -1
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +3 -1
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +2 -2
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -1
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -1
- package/lib/gc/index.js.map +1 -1
- package/lib/messageTypes.d.ts +2 -2
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/definitions.d.ts +1 -1
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +2 -2
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +2 -2
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +2 -2
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +1 -1
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +2 -2
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +2 -1
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +2 -2
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -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.map +1 -1
- package/lib/pendingStateManager.js +2 -2
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js +3 -3
- package/lib/scheduleManager.js.map +1 -1
- package/lib/storageServiceWithAttachBlobs.d.ts +2 -2
- package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -1
- package/lib/storageServiceWithAttachBlobs.js +1 -1
- package/lib/storageServiceWithAttachBlobs.js.map +1 -1
- package/lib/summary/documentSchema.d.ts +37 -6
- package/lib/summary/documentSchema.d.ts.map +1 -1
- package/lib/summary/documentSchema.js +48 -11
- package/lib/summary/documentSchema.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +2 -2
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +1 -1
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +2 -2
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +2 -1
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +2 -2
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +2 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +4 -4
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +4 -2
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.js +1 -1
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +1 -1
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +3 -3
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +3 -2
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +3 -3
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +9 -8
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/tsdoc-metadata.json +11 -0
- package/package.json +18 -30
- package/src/batchTracker.ts +3 -2
- package/src/blobManager.ts +87 -56
- package/src/channelCollection.ts +14 -11
- package/src/connectionTelemetry.ts +4 -4
- package/src/containerHandleContext.ts +2 -1
- package/src/containerRuntime.ts +90 -58
- package/src/dataStore.ts +5 -3
- package/src/dataStoreContext.ts +16 -13
- package/src/dataStoreContexts.ts +4 -2
- package/src/dataStoreRegistry.ts +2 -2
- package/src/deltaManagerSummarizerProxy.ts +1 -1
- package/src/deltaScheduler.ts +2 -1
- package/src/error.ts +2 -2
- package/src/gc/garbageCollection.ts +8 -7
- package/src/gc/gcConfigs.ts +5 -8
- package/src/gc/gcDefinitions.ts +4 -4
- package/src/gc/gcHelpers.ts +21 -4
- package/src/gc/gcSummaryStateTracker.ts +5 -3
- package/src/gc/gcTelemetry.ts +7 -1
- package/src/gc/gcUnreferencedStateTracker.ts +3 -2
- package/src/gc/index.ts +1 -0
- package/src/messageTypes.ts +3 -2
- package/src/opLifecycle/batchManager.ts +1 -0
- package/src/opLifecycle/definitions.ts +2 -1
- package/src/opLifecycle/opCompressor.ts +4 -2
- package/src/opLifecycle/opDecompressor.ts +3 -2
- package/src/opLifecycle/opGroupingManager.ts +3 -2
- package/src/opLifecycle/opSplitter.ts +5 -3
- package/src/opLifecycle/outbox.ts +6 -3
- package/src/opLifecycle/remoteMessageProcessor.ts +2 -0
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +4 -4
- package/src/scheduleManager.ts +5 -4
- package/src/storageServiceWithAttachBlobs.ts +2 -2
- package/src/summary/documentSchema.ts +71 -12
- package/src/summary/orderedClientElection.ts +4 -6
- package/src/summary/runWhileConnectedCoordinator.ts +2 -1
- package/src/summary/runningSummarizer.ts +4 -2
- package/src/summary/summarizer.ts +5 -3
- package/src/summary/summarizerClientElection.ts +1 -0
- package/src/summary/summarizerHeuristics.ts +3 -1
- package/src/summary/summarizerNode/summarizerNode.ts +10 -8
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +3 -2
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +14 -6
- package/src/summary/summarizerTypes.ts +6 -2
- package/src/summary/summaryCollection.ts +1 -1
- package/src/summary/summaryFormat.ts +7 -8
- package/src/summary/summaryGenerator.ts +5 -8
- package/src/summary/summaryManager.ts +14 -11
- package/lib/test/batchTracker.spec.js +0 -88
- package/lib/test/batchTracker.spec.js.map +0 -1
- package/lib/test/blobManager.spec.js +0 -835
- package/lib/test/blobManager.spec.js.map +0 -1
- package/lib/test/channelCollection.spec.js +0 -138
- package/lib/test/channelCollection.spec.js.map +0 -1
- package/lib/test/containerRuntime.spec.js +0 -1750
- package/lib/test/containerRuntime.spec.js.map +0 -1
- package/lib/test/dataStoreContext.spec.js +0 -771
- package/lib/test/dataStoreContext.spec.js.map +0 -1
- package/lib/test/dataStoreCreation.spec.js +0 -303
- package/lib/test/dataStoreCreation.spec.js.map +0 -1
- package/lib/test/dataStoreRegistry.spec.js +0 -26
- package/lib/test/dataStoreRegistry.spec.js.map +0 -1
- package/lib/test/documentSchema.spec.js +0 -282
- package/lib/test/documentSchema.spec.js.map +0 -1
- package/lib/test/fuzz/fuzzUtils.js +0 -70
- package/lib/test/fuzz/fuzzUtils.js.map +0 -1
- package/lib/test/fuzz/summarizer.fuzz.spec.js +0 -33
- package/lib/test/fuzz/summarizer.fuzz.spec.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzMocks.js +0 -180
- package/lib/test/fuzz/summarizerFuzzMocks.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzSuite.js +0 -109
- package/lib/test/fuzz/summarizerFuzzSuite.js.map +0 -1
- package/lib/test/gc/garbageCollection.spec.js +0 -1464
- package/lib/test/gc/garbageCollection.spec.js.map +0 -1
- package/lib/test/gc/gcConfigs.spec.js +0 -689
- package/lib/test/gc/gcConfigs.spec.js.map +0 -1
- package/lib/test/gc/gcHelpers.spec.js +0 -110
- package/lib/test/gc/gcHelpers.spec.js.map +0 -1
- package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +0 -68
- package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +0 -1
- package/lib/test/gc/gcStats.spec.js +0 -390
- package/lib/test/gc/gcStats.spec.js.map +0 -1
- package/lib/test/gc/gcSummaryStateTracker.spec.js +0 -228
- package/lib/test/gc/gcSummaryStateTracker.spec.js.map +0 -1
- package/lib/test/gc/gcTelemetry.spec.js +0 -530
- package/lib/test/gc/gcTelemetry.spec.js.map +0 -1
- package/lib/test/gc/gcUnitTestHelpers.js +0 -29
- package/lib/test/gc/gcUnitTestHelpers.js.map +0 -1
- package/lib/test/gc/gcUnreferencedStateTracker.spec.js +0 -192
- package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +0 -1
- package/lib/test/getPendingBlobs.spec.js +0 -193
- package/lib/test/getPendingBlobs.spec.js.map +0 -1
- package/lib/test/hardwareStats.spec.js +0 -93
- package/lib/test/hardwareStats.spec.js.map +0 -1
- package/lib/test/index.js +0 -6
- package/lib/test/index.js.map +0 -1
- package/lib/test/opLifecycle/OpGroupingManager.spec.js +0 -202
- package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +0 -1
- package/lib/test/opLifecycle/batchManager.spec.js +0 -189
- package/lib/test/opLifecycle/batchManager.spec.js.map +0 -1
- package/lib/test/opLifecycle/opCompressor.spec.js +0 -73
- package/lib/test/opLifecycle/opCompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opDecompressor.spec.js +0 -223
- package/lib/test/opLifecycle/opDecompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opSplitter.spec.js +0 -287
- package/lib/test/opLifecycle/opSplitter.spec.js.map +0 -1
- package/lib/test/opLifecycle/outbox.spec.js +0 -783
- package/lib/test/opLifecycle/outbox.spec.js.map +0 -1
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +0 -220
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +0 -1
- package/lib/test/pendingStateManager.spec.js +0 -329
- package/lib/test/pendingStateManager.spec.js.map +0 -1
- package/lib/test/scheduleManager.spec.js +0 -270
- package/lib/test/scheduleManager.spec.js.map +0 -1
- package/lib/test/summarizerNode.spec.js +0 -326
- package/lib/test/summarizerNode.spec.js.map +0 -1
- package/lib/test/summarizerNodeWithGc.spec.js +0 -318
- package/lib/test/summarizerNodeWithGc.spec.js.map +0 -1
- package/lib/test/summary/orderedClientElection.spec.js +0 -535
- package/lib/test/summary/orderedClientElection.spec.js.map +0 -1
- package/lib/test/summary/runningSummarizer.spec.js +0 -1349
- package/lib/test/summary/runningSummarizer.spec.js.map +0 -1
- package/lib/test/summary/summarizer.spec.js +0 -29
- package/lib/test/summary/summarizer.spec.js.map +0 -1
- package/lib/test/summary/summarizerClientElection.spec.js +0 -436
- package/lib/test/summary/summarizerClientElection.spec.js.map +0 -1
- package/lib/test/summary/summarizerHeuristics.spec.js +0 -289
- package/lib/test/summary/summarizerHeuristics.spec.js.map +0 -1
- package/lib/test/summary/summaryCollection.spec.js +0 -200
- package/lib/test/summary/summaryCollection.spec.js.map +0 -1
- package/lib/test/summary/summaryManager.spec.js +0 -430
- package/lib/test/summary/summaryManager.spec.js.map +0 -1
- package/lib/test/summary/testQuorumClients.js +0 -34
- package/lib/test/summary/testQuorumClients.js.map +0 -1
- package/lib/test/throttler.spec.js +0 -175
- package/lib/test/throttler.spec.js.map +0 -1
- package/lib/test/types/validateContainerRuntimePrevious.generated.js +0 -182
- package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +0 -1
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.ChannelCollectionFactory = exports.detectOutboundReferences = exports.getSummaryForDatastores = exports.ChannelCollection = exports.wrapContextForInnerChannel = exports.wrapContext = exports.AllowInactiveRequestHeaderKey = exports.AllowTombstoneRequestHeaderKey = exports.RuntimeHeaders = void 0;
|
|
8
8
|
const container_definitions_1 = require("@fluidframework/container-definitions");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
9
|
+
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
10
|
+
const internal_2 = require("@fluidframework/datastore/internal");
|
|
11
|
+
const internal_3 = require("@fluidframework/driver-utils/internal");
|
|
12
|
+
const internal_4 = require("@fluidframework/runtime-definitions/internal");
|
|
13
|
+
const internal_5 = require("@fluidframework/runtime-utils/internal");
|
|
14
|
+
const internal_6 = require("@fluidframework/telemetry-utils/internal");
|
|
15
15
|
const containerRuntime_js_1 = require("./containerRuntime.js");
|
|
16
16
|
const dataStore_js_1 = require("./dataStore.js");
|
|
17
17
|
const dataStoreContext_js_1 = require("./dataStoreContext.js");
|
|
@@ -160,7 +160,7 @@ class ChannelCollection {
|
|
|
160
160
|
this.pendingAttach = new Map();
|
|
161
161
|
// 0.24 back-compat attachingBeforeSummary
|
|
162
162
|
this.attachOpFiredForDataStore = new Set();
|
|
163
|
-
this.disposeOnce = new
|
|
163
|
+
this.disposeOnce = new internal_1.Lazy(() => this.contexts.dispose());
|
|
164
164
|
// Stores the ids of new data stores between two GC runs. This is used to notify the garbage collector of new
|
|
165
165
|
// root data stores that are added.
|
|
166
166
|
this.dataStoresSinceLastGC = [];
|
|
@@ -168,10 +168,10 @@ class ChannelCollection {
|
|
|
168
168
|
/** For sampling. Only log once per container */
|
|
169
169
|
this.shouldSendAttachLog = true;
|
|
170
170
|
this.dispose = () => this.disposeOnce.value;
|
|
171
|
-
this.mc = (0,
|
|
171
|
+
this.mc = (0, internal_6.createChildMonitoringContext)({ logger: baseLogger });
|
|
172
172
|
this.contexts = new dataStoreContexts_js_1.DataStoreContexts(baseLogger);
|
|
173
|
-
this.containerRuntimeHandle = new
|
|
174
|
-
this.entryPoint = new
|
|
173
|
+
this.containerRuntimeHandle = new internal_2.FluidObjectHandle(this.parentContext, "/", this.parentContext.IFluidHandleContext);
|
|
174
|
+
this.entryPoint = new internal_2.FluidObjectHandle(new internal_1.LazyPromise(async () => provideEntryPoint(this)), "", this.parentContext.IFluidHandleContext);
|
|
175
175
|
// Extract stores stored inside the snapshot
|
|
176
176
|
const fluidDataStores = new Map();
|
|
177
177
|
if (baseSnapshot) {
|
|
@@ -196,14 +196,14 @@ class ChannelCollection {
|
|
|
196
196
|
storage: this.parentContext.storage,
|
|
197
197
|
scope: this.parentContext.scope,
|
|
198
198
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
|
|
199
|
-
type:
|
|
199
|
+
type: internal_4.CreateSummarizerNodeSource.FromSummary,
|
|
200
200
|
}),
|
|
201
201
|
loadingGroupId: value.groupId,
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
204
|
else {
|
|
205
205
|
if (typeof value !== "object") {
|
|
206
|
-
throw new
|
|
206
|
+
throw new internal_6.LoggingError("Snapshot should be there to load from!!");
|
|
207
207
|
}
|
|
208
208
|
const snapshotTree = value;
|
|
209
209
|
dataStoreContext = new dataStoreContext_js_1.LocalFluidDataStoreContext({
|
|
@@ -213,7 +213,7 @@ class ChannelCollection {
|
|
|
213
213
|
storage: this.parentContext.storage,
|
|
214
214
|
scope: this.parentContext.scope,
|
|
215
215
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
|
|
216
|
-
type:
|
|
216
|
+
type: internal_4.CreateSummarizerNodeSource.FromSummary,
|
|
217
217
|
}),
|
|
218
218
|
makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(key),
|
|
219
219
|
snapshotTree,
|
|
@@ -251,7 +251,7 @@ class ChannelCollection {
|
|
|
251
251
|
const attachMessage = message.contents;
|
|
252
252
|
this.dataStoresSinceLastGC.push(attachMessage.id);
|
|
253
253
|
// We need to process the GC Data for both local and remote attach messages
|
|
254
|
-
const foundGCData = (0,
|
|
254
|
+
const foundGCData = (0, internal_5.processAttachMessageGCData)(attachMessage.snapshot, (nodeId, toPath) => {
|
|
255
255
|
// nodeId is the relative path under the node being attached. Always starts with "/", but no trailing "/" after an id
|
|
256
256
|
const fromPath = `/${attachMessage.id}${nodeId === "/" ? "" : nodeId}`;
|
|
257
257
|
this.parentContext.addedGCOutboundReference?.({ absolutePath: fromPath }, { absolutePath: toPath });
|
|
@@ -262,18 +262,18 @@ class ChannelCollection {
|
|
|
262
262
|
this.shouldSendAttachLog = false;
|
|
263
263
|
this.mc.logger.sendTelemetryEvent({
|
|
264
264
|
eventName: "dataStoreAttachMessage_sampled",
|
|
265
|
-
...(0,
|
|
265
|
+
...(0, internal_6.tagCodeArtifacts)({ id: attachMessage.id, pkg: attachMessage.type }),
|
|
266
266
|
details: {
|
|
267
267
|
local,
|
|
268
268
|
snapshot: !!attachMessage.snapshot,
|
|
269
269
|
foundGCData,
|
|
270
270
|
},
|
|
271
|
-
...(0,
|
|
271
|
+
...(0, internal_6.extractSafePropertiesFromMessage)(message),
|
|
272
272
|
});
|
|
273
273
|
}
|
|
274
274
|
// The local object has already been attached
|
|
275
275
|
if (local) {
|
|
276
|
-
(0,
|
|
276
|
+
(0, internal_1.assert)(this.pendingAttach.has(attachMessage.id), 0x15e /* "Local object does not have matching attach message id" */);
|
|
277
277
|
this.contexts.get(attachMessage.id)?.setAttachState(container_definitions_1.AttachState.Attached);
|
|
278
278
|
this.pendingAttach.delete(attachMessage.id);
|
|
279
279
|
return;
|
|
@@ -281,18 +281,18 @@ class ChannelCollection {
|
|
|
281
281
|
// If a non-local operation then go and create the object, otherwise mark it as officially attached.
|
|
282
282
|
if (this.alreadyProcessed(attachMessage.id)) {
|
|
283
283
|
// TODO: dataStoreId may require a different tag from PackageData #7488
|
|
284
|
-
const error = new
|
|
284
|
+
const error = new internal_6.DataCorruptionError(
|
|
285
285
|
// pre-0.58 error message: duplicateDataStoreCreatedWithExistingId
|
|
286
286
|
"Duplicate DataStore created with existing id", {
|
|
287
|
-
...(0,
|
|
288
|
-
...(0,
|
|
287
|
+
...(0, internal_6.extractSafePropertiesFromMessage)(message),
|
|
288
|
+
...(0, internal_6.tagCodeArtifacts)({ dataStoreId: attachMessage.id }),
|
|
289
289
|
});
|
|
290
290
|
throw error;
|
|
291
291
|
}
|
|
292
292
|
const flatAttachBlobs = new Map();
|
|
293
293
|
let snapshotTree;
|
|
294
294
|
if (attachMessage.snapshot) {
|
|
295
|
-
snapshotTree = (0,
|
|
295
|
+
snapshotTree = (0, internal_3.buildSnapshotTree)(attachMessage.snapshot.entries, flatAttachBlobs);
|
|
296
296
|
}
|
|
297
297
|
// Include the type of attach message which is the pkg of the store to be
|
|
298
298
|
// used by RemoteFluidDataStoreContext in case it is not in the snapshot.
|
|
@@ -305,7 +305,7 @@ class ChannelCollection {
|
|
|
305
305
|
scope: this.parentContext.scope,
|
|
306
306
|
loadingGroupId: attachMessage.snapshot?.groupId,
|
|
307
307
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(attachMessage.id, {
|
|
308
|
-
type:
|
|
308
|
+
type: internal_4.CreateSummarizerNodeSource.FromAttach,
|
|
309
309
|
sequenceNumber: message.sequenceNumber,
|
|
310
310
|
snapshot: attachMessage.snapshot ?? {
|
|
311
311
|
entries: [(0, dataStoreContext_js_1.createAttributesBlob)(pkg, true /* isRootDataStore */)],
|
|
@@ -318,8 +318,8 @@ class ChannelCollection {
|
|
|
318
318
|
processAliasMessage(message, localOpMetadata, local) {
|
|
319
319
|
const aliasMessage = message.contents;
|
|
320
320
|
if (!(0, dataStore_js_1.isDataStoreAliasMessage)(aliasMessage)) {
|
|
321
|
-
throw new
|
|
322
|
-
...(0,
|
|
321
|
+
throw new internal_6.DataCorruptionError("malformedDataStoreAliasMessage", {
|
|
322
|
+
...(0, internal_6.extractSafePropertiesFromMessage)(message),
|
|
323
323
|
});
|
|
324
324
|
}
|
|
325
325
|
const resolve = localOpMetadata;
|
|
@@ -345,7 +345,7 @@ class ChannelCollection {
|
|
|
345
345
|
});
|
|
346
346
|
return false;
|
|
347
347
|
}
|
|
348
|
-
const handle = new
|
|
348
|
+
const handle = new internal_2.FluidObjectHandle(context, internalId, this.parentContext.IFluidHandleContext);
|
|
349
349
|
this.parentContext.addedGCOutboundReference?.(this.containerRuntimeHandle, handle);
|
|
350
350
|
this.aliasMap.set(alias, context.id);
|
|
351
351
|
context.setInMemoryRoot();
|
|
@@ -359,7 +359,7 @@ class ChannelCollection {
|
|
|
359
359
|
const { attachSummary } = localContext.getAttachData(/* includeGCData: */ true);
|
|
360
360
|
const type = localContext.packagePath[localContext.packagePath.length - 1];
|
|
361
361
|
// Attach message needs the summary in ITree format. Convert the ISummaryTree into an ITree.
|
|
362
|
-
const snapshot = (0,
|
|
362
|
+
const snapshot = (0, internal_5.convertSummaryTreeToITree)(attachSummary.summary);
|
|
363
363
|
return {
|
|
364
364
|
id: localContext.id,
|
|
365
365
|
snapshot,
|
|
@@ -373,7 +373,7 @@ class ChannelCollection {
|
|
|
373
373
|
*/
|
|
374
374
|
makeDataStoreLocallyVisible(id) {
|
|
375
375
|
const localContext = this.contexts.getUnbound(id);
|
|
376
|
-
(0,
|
|
376
|
+
(0, internal_1.assert)(!!localContext, 0x15f /* "Could not find unbound context to bind" */);
|
|
377
377
|
/**
|
|
378
378
|
* If the container is not detached, it is globally visible to all clients. This data store should also be
|
|
379
379
|
* globally visible. Move it to attaching state and send an "attach" op for it.
|
|
@@ -415,11 +415,11 @@ class ChannelCollection {
|
|
|
415
415
|
// In first two cases we will encode result as strings in more compact form.
|
|
416
416
|
if (this.parentContext.attachState === container_definitions_1.AttachState.Detached) {
|
|
417
417
|
// container is detached, only one client observes content, no way to hit collisions with other clients.
|
|
418
|
-
return (0,
|
|
418
|
+
return (0, internal_5.encodeCompactIdToString)(2 * this.contexts.size);
|
|
419
419
|
}
|
|
420
420
|
const id = this.parentContext.containerRuntime.generateDocumentUniqueId();
|
|
421
421
|
if (typeof id === "number") {
|
|
422
|
-
return (0,
|
|
422
|
+
return (0, internal_5.encodeCompactIdToString)(2 * id + 1);
|
|
423
423
|
}
|
|
424
424
|
return id;
|
|
425
425
|
}
|
|
@@ -438,13 +438,13 @@ class ChannelCollection {
|
|
|
438
438
|
storage: this.parentContext.storage,
|
|
439
439
|
scope: this.parentContext.scope,
|
|
440
440
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(id, {
|
|
441
|
-
type:
|
|
441
|
+
type: internal_4.CreateSummarizerNodeSource.Local,
|
|
442
442
|
}),
|
|
443
443
|
makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(id),
|
|
444
444
|
snapshotTree: undefined,
|
|
445
445
|
createProps,
|
|
446
446
|
loadingGroupId,
|
|
447
|
-
channelToDataStoreFn: (channel) => (0, dataStore_js_1.channelToDataStore)(channel, id, this, (0,
|
|
447
|
+
channelToDataStoreFn: (channel) => (0, dataStore_js_1.channelToDataStore)(channel, id, this, (0, internal_6.createChildLogger)({ logger: this.parentContext.logger })),
|
|
448
448
|
});
|
|
449
449
|
this.contexts.addUnbound(context);
|
|
450
450
|
return context;
|
|
@@ -461,7 +461,7 @@ class ChannelCollection {
|
|
|
461
461
|
case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp:
|
|
462
462
|
return this.reSubmitChannelOp(type, content, localOpMetadata);
|
|
463
463
|
default:
|
|
464
|
-
(0,
|
|
464
|
+
(0, internal_1.assert)(false, 0x907 /* unknown op type */);
|
|
465
465
|
}
|
|
466
466
|
}
|
|
467
467
|
reSubmitChannelOp(type, content, localOpMetadata) {
|
|
@@ -470,28 +470,28 @@ class ChannelCollection {
|
|
|
470
470
|
// If the data store has been deleted, log an error and throw an error. If there are local changes for a
|
|
471
471
|
// deleted data store, it can otherwise lead to inconsistent state when compared to other clients.
|
|
472
472
|
if (this.checkAndLogIfDeleted(envelope.address, context, "Changed", "resubmitDataStoreOp")) {
|
|
473
|
-
throw new
|
|
473
|
+
throw new internal_6.DataCorruptionError("Context is deleted!", {
|
|
474
474
|
callSite: "resubmitDataStoreOp",
|
|
475
|
-
...(0,
|
|
475
|
+
...(0, internal_6.tagCodeArtifacts)({ id: envelope.address }),
|
|
476
476
|
});
|
|
477
477
|
}
|
|
478
|
-
(0,
|
|
478
|
+
(0, internal_1.assert)(!!context, 0x160 /* "There should be a store context for the op" */);
|
|
479
479
|
const innerContents = envelope.contents;
|
|
480
480
|
context.reSubmit(innerContents.type, innerContents.content, localOpMetadata);
|
|
481
481
|
}
|
|
482
482
|
rollback(type, content, localOpMetadata) {
|
|
483
|
-
(0,
|
|
483
|
+
(0, internal_1.assert)(type === messageTypes_js_1.ContainerMessageType.FluidDataStoreOp, 0x8e8 /* type */);
|
|
484
484
|
const envelope = content;
|
|
485
485
|
const context = this.contexts.get(envelope.address);
|
|
486
486
|
// If the data store has been deleted, log an error and throw an error. If there are local changes for a
|
|
487
487
|
// deleted data store, it can otherwise lead to inconsistent state when compared to other clients.
|
|
488
488
|
if (this.checkAndLogIfDeleted(envelope.address, context, "Changed", "rollbackDataStoreOp")) {
|
|
489
|
-
throw new
|
|
489
|
+
throw new internal_6.DataCorruptionError("Context is deleted!", {
|
|
490
490
|
callSite: "rollbackDataStoreOp",
|
|
491
|
-
...(0,
|
|
491
|
+
...(0, internal_6.tagCodeArtifacts)({ id: envelope.address }),
|
|
492
492
|
});
|
|
493
493
|
}
|
|
494
|
-
(0,
|
|
494
|
+
(0, internal_1.assert)(!!context, 0x2e8 /* "There should be a store context for the op" */);
|
|
495
495
|
const innerContents = envelope.contents;
|
|
496
496
|
context.rollback(innerContents.type, innerContents.content, localOpMetadata);
|
|
497
497
|
}
|
|
@@ -505,7 +505,7 @@ class ChannelCollection {
|
|
|
505
505
|
case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp:
|
|
506
506
|
return this.applyStashedChannelChannelOp(opContents.contents);
|
|
507
507
|
default:
|
|
508
|
-
(0,
|
|
508
|
+
(0, internal_1.assert)(false, 0x908 /* unknon type of op */);
|
|
509
509
|
}
|
|
510
510
|
}
|
|
511
511
|
async applyStashedChannelChannelOp(envelope) {
|
|
@@ -515,14 +515,14 @@ class ChannelCollection {
|
|
|
515
515
|
if (this.checkAndLogIfDeleted(envelope.address, context, "Changed", "applyStashedOp")) {
|
|
516
516
|
return undefined;
|
|
517
517
|
}
|
|
518
|
-
(0,
|
|
518
|
+
(0, internal_1.assert)(!!context, 0x161 /* "There should be a store context for the op" */);
|
|
519
519
|
return context.applyStashedOp(envelope.contents);
|
|
520
520
|
}
|
|
521
521
|
async applyStashedAttachOp(message) {
|
|
522
522
|
const { id, snapshot } = message;
|
|
523
523
|
// build the snapshot from the summary in the attach message
|
|
524
524
|
const flatAttachBlobs = new Map();
|
|
525
|
-
const snapshotTree = (0,
|
|
525
|
+
const snapshotTree = (0, internal_3.buildSnapshotTree)(snapshot.entries, flatAttachBlobs);
|
|
526
526
|
const storage = new storageServiceWithAttachBlobs_js_1.StorageServiceWithAttachBlobs(this.parentContext.storage, flatAttachBlobs);
|
|
527
527
|
// create a local datastore context for the data store context,
|
|
528
528
|
// which this message represents. All newly created data store
|
|
@@ -536,7 +536,7 @@ class ChannelCollection {
|
|
|
536
536
|
storage,
|
|
537
537
|
scope: this.parentContext.scope,
|
|
538
538
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(id, {
|
|
539
|
-
type:
|
|
539
|
+
type: internal_4.CreateSummarizerNodeSource.FromSummary,
|
|
540
540
|
}),
|
|
541
541
|
makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(id),
|
|
542
542
|
snapshotTree,
|
|
@@ -583,7 +583,7 @@ class ChannelCollection {
|
|
|
583
583
|
break;
|
|
584
584
|
}
|
|
585
585
|
default:
|
|
586
|
-
(0,
|
|
586
|
+
(0, internal_1.assert)(false, 0x8e9 /* unreached */);
|
|
587
587
|
}
|
|
588
588
|
}
|
|
589
589
|
processChannelOp(address, message, local, localMessageMetadata) {
|
|
@@ -595,13 +595,13 @@ class ChannelCollection {
|
|
|
595
595
|
}
|
|
596
596
|
if (context === undefined) {
|
|
597
597
|
// Former assert 0x162
|
|
598
|
-
throw
|
|
598
|
+
throw internal_6.DataProcessingError.create("No context for op", "processFluidDataStoreOp", message, {
|
|
599
599
|
local,
|
|
600
600
|
messageDetails: JSON.stringify({
|
|
601
601
|
type: message.type,
|
|
602
602
|
contentType: typeof message.contents,
|
|
603
603
|
}),
|
|
604
|
-
...(0,
|
|
604
|
+
...(0, internal_6.tagCodeArtifacts)({ address }),
|
|
605
605
|
});
|
|
606
606
|
}
|
|
607
607
|
context.process(message, local, localMessageMetadata);
|
|
@@ -614,13 +614,13 @@ class ChannelCollection {
|
|
|
614
614
|
if (this.checkAndLogIfDeleted(id, this.contexts.get(id), "Requested", "getDataStore", requestHeaderData)) {
|
|
615
615
|
// The requested data store has been deleted by gc. Create a 404 response exception.
|
|
616
616
|
const request = { url: id };
|
|
617
|
-
throw (0,
|
|
617
|
+
throw (0, internal_5.responseToException)((0, internal_5.createResponseError)(404, "DataStore was deleted", request), request);
|
|
618
618
|
}
|
|
619
619
|
const context = await this.contexts.getBoundOrRemoted(id, headerData.wait);
|
|
620
620
|
if (context === undefined) {
|
|
621
621
|
// The requested data store does not exits. Throw a 404 response exception.
|
|
622
622
|
const request = { url: id };
|
|
623
|
-
throw (0,
|
|
623
|
+
throw (0, internal_5.responseToException)((0, internal_5.create404Response)(request), request);
|
|
624
624
|
}
|
|
625
625
|
return context;
|
|
626
626
|
}
|
|
@@ -654,7 +654,7 @@ class ChannelCollection {
|
|
|
654
654
|
}
|
|
655
655
|
this.mc.logger.sendErrorEvent({
|
|
656
656
|
eventName: `GC_Deleted_DataStore_${deletedLogSuffix}`,
|
|
657
|
-
...(0,
|
|
657
|
+
...(0, internal_6.tagCodeArtifacts)({ id }),
|
|
658
658
|
callSite,
|
|
659
659
|
headers: JSON.stringify(requestHeaderData),
|
|
660
660
|
exists: context !== undefined,
|
|
@@ -673,10 +673,10 @@ class ChannelCollection {
|
|
|
673
673
|
}
|
|
674
674
|
if (!context) {
|
|
675
675
|
// Attach message may not have been processed yet
|
|
676
|
-
(0,
|
|
676
|
+
(0, internal_1.assert)(!local, 0x163 /* "Missing datastore for local signal" */);
|
|
677
677
|
this.mc.logger.sendTelemetryEvent({
|
|
678
678
|
eventName: "SignalFluidDataStoreNotFound",
|
|
679
|
-
...(0,
|
|
679
|
+
...(0, internal_6.tagCodeArtifacts)({
|
|
680
680
|
fluidDataStoreId,
|
|
681
681
|
}),
|
|
682
682
|
});
|
|
@@ -693,7 +693,7 @@ class ChannelCollection {
|
|
|
693
693
|
this.mc.logger.sendErrorEvent({
|
|
694
694
|
eventName: "SetConnectionStateError",
|
|
695
695
|
clientId,
|
|
696
|
-
...(0,
|
|
696
|
+
...(0, internal_6.tagCodeArtifacts)({
|
|
697
697
|
fluidDataStoreId,
|
|
698
698
|
}),
|
|
699
699
|
details: JSON.stringify({
|
|
@@ -716,7 +716,7 @@ class ChannelCollection {
|
|
|
716
716
|
return this.contexts.size;
|
|
717
717
|
}
|
|
718
718
|
async summarize(fullTree, trackState, telemetryContext) {
|
|
719
|
-
const summaryBuilder = new
|
|
719
|
+
const summaryBuilder = new internal_5.SummaryTreeBuilder();
|
|
720
720
|
// Iterate over each store and ask it to snapshot
|
|
721
721
|
await Promise.all(Array.from(this.contexts)
|
|
722
722
|
.filter(([_, context]) => {
|
|
@@ -725,7 +725,7 @@ class ChannelCollection {
|
|
|
725
725
|
// had not yet round tripped back to the client.
|
|
726
726
|
if (context.attachState === container_definitions_1.AttachState.Attaching) {
|
|
727
727
|
// Formerly assert 0x588
|
|
728
|
-
const error =
|
|
728
|
+
const error = internal_6.DataProcessingError.create("Local data store detected in attaching state during summarize", "summarize");
|
|
729
729
|
throw error;
|
|
730
730
|
}
|
|
731
731
|
return context.attachState === container_definitions_1.AttachState.Attached;
|
|
@@ -740,7 +740,7 @@ class ChannelCollection {
|
|
|
740
740
|
* Create a summary. Used when attaching or serializing a detached container.
|
|
741
741
|
*/
|
|
742
742
|
getAttachSummary(telemetryContext) {
|
|
743
|
-
const builder = new
|
|
743
|
+
const builder = new internal_5.SummaryTreeBuilder();
|
|
744
744
|
// Attaching graph of some stores can cause other stores to get bound too.
|
|
745
745
|
// So keep taking summary until no new stores get bound.
|
|
746
746
|
let notBoundContextsLength;
|
|
@@ -765,8 +765,8 @@ class ChannelCollection {
|
|
|
765
765
|
else {
|
|
766
766
|
// If this data store is not yet loaded, then there should be no changes in the snapshot from
|
|
767
767
|
// which it was created as it is detached container. So just use the previous snapshot.
|
|
768
|
-
(0,
|
|
769
|
-
dataStoreSummary = (0,
|
|
768
|
+
(0, internal_1.assert)(!!this.baseSnapshot, 0x166 /* "BaseSnapshot should be there as detached container loaded from snapshot" */);
|
|
769
|
+
dataStoreSummary = (0, internal_5.convertSnapshotTreeToSummaryTree)(this.baseSnapshot.trees[key]);
|
|
770
770
|
}
|
|
771
771
|
builder.addWithStats(key, dataStoreSummary);
|
|
772
772
|
});
|
|
@@ -781,10 +781,10 @@ class ChannelCollection {
|
|
|
781
781
|
async updateStateBeforeGC() {
|
|
782
782
|
for (const id of this.dataStoresSinceLastGC) {
|
|
783
783
|
const context = this.contexts.get(id);
|
|
784
|
-
(0,
|
|
784
|
+
(0, internal_1.assert)(context !== undefined, 0x2b6 /* Missing data store context */);
|
|
785
785
|
if (await context.isRoot()) {
|
|
786
786
|
// A root data store is basically a reference from the container runtime to the data store.
|
|
787
|
-
const handle = new
|
|
787
|
+
const handle = new internal_2.FluidObjectHandle(context, id, this.parentContext.IFluidHandleContext);
|
|
788
788
|
this.parentContext.addedGCOutboundReference?.(this.containerRuntimeHandle, handle);
|
|
789
789
|
}
|
|
790
790
|
}
|
|
@@ -804,7 +804,7 @@ class ChannelCollection {
|
|
|
804
804
|
* @param fullGC - true to bypass optimizations and force full generation of GC data.
|
|
805
805
|
*/
|
|
806
806
|
async getGCData(fullGC = false) {
|
|
807
|
-
const builder = new
|
|
807
|
+
const builder = new internal_5.GCDataBuilder();
|
|
808
808
|
// Iterate over each store and get their GC data.
|
|
809
809
|
await Promise.all(Array.from(this.contexts)
|
|
810
810
|
.filter(([_, context]) => {
|
|
@@ -813,7 +813,7 @@ class ChannelCollection {
|
|
|
813
813
|
// had not yet round tripped back to the client.
|
|
814
814
|
// Formerly assert 0x589
|
|
815
815
|
if (context.attachState === container_definitions_1.AttachState.Attaching) {
|
|
816
|
-
const error =
|
|
816
|
+
const error = internal_6.DataProcessingError.create("Local data store detected in attaching state while running GC", "getGCData");
|
|
817
817
|
throw error;
|
|
818
818
|
}
|
|
819
819
|
return context.attachState === container_definitions_1.AttachState.Attached;
|
|
@@ -834,10 +834,10 @@ class ChannelCollection {
|
|
|
834
834
|
*/
|
|
835
835
|
updateUsedRoutes(usedRoutes) {
|
|
836
836
|
// Get a map of data store ids to routes used in it.
|
|
837
|
-
const usedDataStoreRoutes = (0,
|
|
837
|
+
const usedDataStoreRoutes = (0, internal_5.unpackChildNodesUsedRoutes)(usedRoutes);
|
|
838
838
|
// Verify that the used routes are correct.
|
|
839
839
|
for (const [id] of usedDataStoreRoutes) {
|
|
840
|
-
(0,
|
|
840
|
+
(0, internal_1.assert)(this.contexts.has(id), 0x167 /* "Used route does not belong to any known data store" */);
|
|
841
841
|
}
|
|
842
842
|
// Update the used routes in each data store. Used routes is empty for unused data stores.
|
|
843
843
|
for (const [contextId, context] of this.contexts) {
|
|
@@ -846,7 +846,7 @@ class ChannelCollection {
|
|
|
846
846
|
}
|
|
847
847
|
deleteChild(dataStoreId) {
|
|
848
848
|
const dataStoreContext = this.contexts.get(dataStoreId);
|
|
849
|
-
(0,
|
|
849
|
+
(0, internal_1.assert)(dataStoreContext !== undefined, 0x2d7 /* No data store with specified id */);
|
|
850
850
|
dataStoreContext.delete();
|
|
851
851
|
// Delete the contexts of unused data stores.
|
|
852
852
|
this.contexts.delete(dataStoreId);
|
|
@@ -878,7 +878,7 @@ class ChannelCollection {
|
|
|
878
878
|
this.mc.logger.sendTelemetryEvent({
|
|
879
879
|
eventName: "DeletedDataStoreNotFound",
|
|
880
880
|
category: alreadyDeleted ? "generic" : "error",
|
|
881
|
-
...(0,
|
|
881
|
+
...(0, internal_6.tagCodeArtifacts)({ id: dataStoreId }),
|
|
882
882
|
details: { alreadyDeleted },
|
|
883
883
|
});
|
|
884
884
|
continue;
|
|
@@ -904,7 +904,7 @@ class ChannelCollection {
|
|
|
904
904
|
continue;
|
|
905
905
|
}
|
|
906
906
|
const dataStoreId = pathParts[1];
|
|
907
|
-
(0,
|
|
907
|
+
(0, internal_1.assert)(this.contexts.has(dataStoreId), 0x510 /* No data store with specified id */);
|
|
908
908
|
tombstonedDataStoresSet.add(dataStoreId);
|
|
909
909
|
}
|
|
910
910
|
// Update the used routes in each data store. Used routes is empty for unused data stores.
|
|
@@ -955,7 +955,7 @@ class ChannelCollection {
|
|
|
955
955
|
return this.aliases.get(maybeAlias) ?? maybeAlias;
|
|
956
956
|
}
|
|
957
957
|
async request(request) {
|
|
958
|
-
const requestParser =
|
|
958
|
+
const requestParser = internal_5.RequestParser.create(request);
|
|
959
959
|
const id = requestParser.pathParts[0];
|
|
960
960
|
// Differentiate between requesting the dataStore directly, or one of its children
|
|
961
961
|
const requestForChild = !requestParser.isLeaf(1);
|
|
@@ -991,7 +991,7 @@ class ChannelCollection {
|
|
|
991
991
|
const subRequest = requestParser.createSubRequest(1);
|
|
992
992
|
// We always expect createSubRequest to include a leading slash, but asserting here to protect against
|
|
993
993
|
// unintentionally modifying the url if that changes.
|
|
994
|
-
(0,
|
|
994
|
+
(0, internal_1.assert)(subRequest.url.startsWith("/"), 0x126 /* "Expected createSubRequest url to include a leading slash" */);
|
|
995
995
|
return dataStore.request(subRequest);
|
|
996
996
|
}
|
|
997
997
|
}
|
|
@@ -1001,8 +1001,8 @@ function getSummaryForDatastores(snapshot, metadata) {
|
|
|
1001
1001
|
return undefined;
|
|
1002
1002
|
}
|
|
1003
1003
|
if ((0, index_js_2.rootHasIsolatedChannels)(metadata)) {
|
|
1004
|
-
const datastoresSnapshot = snapshot.trees[
|
|
1005
|
-
(0,
|
|
1004
|
+
const datastoresSnapshot = snapshot.trees[internal_4.channelsTreeName];
|
|
1005
|
+
(0, internal_1.assert)(!!datastoresSnapshot, 0x168 /* Expected tree in snapshot not found */);
|
|
1006
1006
|
return datastoresSnapshot;
|
|
1007
1007
|
}
|
|
1008
1008
|
else {
|
|
@@ -1033,7 +1033,7 @@ function detectOutboundReferences(address, contents, addedOutboundReference) {
|
|
|
1033
1033
|
if (typeof obj === "object" && obj !== null) {
|
|
1034
1034
|
for (const [key, value] of Object.entries(obj)) {
|
|
1035
1035
|
// If 'value' is a serialized IFluidHandle, it represents a new outbound route.
|
|
1036
|
-
if ((0,
|
|
1036
|
+
if ((0, internal_5.isSerializedHandle)(value)) {
|
|
1037
1037
|
outboundPaths.push(value.url);
|
|
1038
1038
|
}
|
|
1039
1039
|
// NOTE: This is taking a hard dependency on the fact that in our DataStore implementation,
|