@fluidframework/container-runtime 2.0.0-dev-rc.3.0.0.250606 → 2.0.0-dev-rc.3.0.0.254274
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 +35 -34
- 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 +4 -2
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +75 -72
- 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 +68 -39
- 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 +197 -162
- 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 +9 -9
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +72 -62
- 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 +4 -2
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +10 -7
- 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 +68 -39
- 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 +76 -39
- 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 +9 -9
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +18 -8
- 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 +25 -37
- package/src/batchTracker.ts +3 -2
- package/src/blobManager.ts +87 -56
- package/src/channelCollection.ts +19 -12
- package/src/connectionTelemetry.ts +4 -4
- package/src/containerHandleContext.ts +2 -1
- package/src/containerRuntime.ts +115 -70
- package/src/dataStore.ts +5 -3
- package/src/dataStoreContext.ts +30 -15
- 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
package/dist/dataStoreContext.js
CHANGED
|
@@ -7,11 +7,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.LocalDetachedFluidDataStoreContext = exports.LocalFluidDataStoreContext = exports.LocalFluidDataStoreContextBase = exports.RemoteFluidDataStoreContext = exports.FluidDataStoreContext = exports.createAttributesBlob = void 0;
|
|
8
8
|
const client_utils_1 = require("@fluid-internal/client-utils");
|
|
9
9
|
const container_definitions_1 = require("@fluidframework/container-definitions");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
10
|
+
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
11
|
+
const internal_2 = require("@fluidframework/driver-utils/internal");
|
|
12
|
+
const internal_3 = require("@fluidframework/runtime-definitions/internal");
|
|
13
|
+
const internal_4 = require("@fluidframework/runtime-utils/internal");
|
|
14
|
+
const internal_5 = require("@fluidframework/telemetry-utils/internal");
|
|
15
15
|
const index_js_1 = require("./gc/index.js");
|
|
16
16
|
const index_js_2 = require("./summary/index.js");
|
|
17
17
|
function createAttributes(pkg, isRootDataStore) {
|
|
@@ -24,7 +24,7 @@ function createAttributes(pkg, isRootDataStore) {
|
|
|
24
24
|
}
|
|
25
25
|
function createAttributesBlob(pkg, isRootDataStore) {
|
|
26
26
|
const attributes = createAttributes(pkg, isRootDataStore);
|
|
27
|
-
return new
|
|
27
|
+
return new internal_2.BlobTreeEntry(index_js_2.dataStoreAttributesBlobName, JSON.stringify(attributes));
|
|
28
28
|
}
|
|
29
29
|
exports.createAttributesBlob = createAttributesBlob;
|
|
30
30
|
/**
|
|
@@ -33,7 +33,7 @@ exports.createAttributesBlob = createAttributesBlob;
|
|
|
33
33
|
*/
|
|
34
34
|
class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
35
35
|
get packagePath() {
|
|
36
|
-
(0,
|
|
36
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x139 /* "Undefined package path" */);
|
|
37
37
|
return this.pkg;
|
|
38
38
|
}
|
|
39
39
|
get options() {
|
|
@@ -90,8 +90,18 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
90
90
|
* 2. is root as part of the base snapshot that the datastore loaded from
|
|
91
91
|
* @returns whether a datastore is root
|
|
92
92
|
*/
|
|
93
|
-
async isRoot() {
|
|
94
|
-
|
|
93
|
+
async isRoot(aliasedDataStores) {
|
|
94
|
+
if (this.isInMemoryRoot()) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
// This if is a performance optimization.
|
|
98
|
+
// We know that if the base snapshot is omitted, then the isRootDataStore flag is not set.
|
|
99
|
+
// That means we can skip the expensive call to getInitialSnapshotDetails for virtualized datastores,
|
|
100
|
+
// and get the information from the alias map directly.
|
|
101
|
+
if (aliasedDataStores !== undefined && this.baseSnapshot?.omitted === true) {
|
|
102
|
+
return aliasedDataStores.has(this.id);
|
|
103
|
+
}
|
|
104
|
+
return (await this.getInitialSnapshotDetails()).isRootDataStore;
|
|
95
105
|
}
|
|
96
106
|
/**
|
|
97
107
|
* There are 3 states where isInMemoryRoot needs to be true
|
|
@@ -129,18 +139,18 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
129
139
|
this.loadingGroupId = props.loadingGroupId;
|
|
130
140
|
// URIs use slashes as delimiters. Handles use URIs.
|
|
131
141
|
// Thus having slashes in types almost guarantees trouble down the road!
|
|
132
|
-
(0,
|
|
142
|
+
(0, internal_1.assert)(!this.id.includes("/"), 0x13a /* Data store ID contains slash */);
|
|
133
143
|
this._attachState =
|
|
134
144
|
this.parentContext.attachState !== container_definitions_1.AttachState.Detached && this.existing
|
|
135
145
|
? this.parentContext.attachState
|
|
136
146
|
: container_definitions_1.AttachState.Detached;
|
|
137
147
|
const thisSummarizeInternal = async (fullTree, trackState, telemetryContext) => this.summarizeInternal(fullTree, trackState, telemetryContext);
|
|
138
148
|
this.summarizerNode = props.createSummarizerNodeFn(thisSummarizeInternal, async (fullGC) => this.getGCDataInternal(fullGC));
|
|
139
|
-
this.mc = (0,
|
|
149
|
+
this.mc = (0, internal_5.createChildMonitoringContext)({
|
|
140
150
|
logger: this.logger,
|
|
141
151
|
namespace: "FluidDataStoreContext",
|
|
142
152
|
properties: {
|
|
143
|
-
all: (0,
|
|
153
|
+
all: (0, internal_5.tagCodeArtifacts)({
|
|
144
154
|
fluidDataStoreId: this.id,
|
|
145
155
|
// The package name is a getter because `this.pkg` may not be initialized during construction.
|
|
146
156
|
// For data stores loaded from summary, it is initialized during data store realization.
|
|
@@ -148,7 +158,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
148
158
|
}),
|
|
149
159
|
},
|
|
150
160
|
});
|
|
151
|
-
this.thresholdOpsCounter = new
|
|
161
|
+
this.thresholdOpsCounter = new internal_5.ThresholdCounter(FluidDataStoreContext.pendingOpsCountThreshold, this.mc.logger);
|
|
152
162
|
this.gcThrowOnTombstoneUsage = this.parentContext.gcThrowOnTombstoneUsage;
|
|
153
163
|
this.gcTombstoneEnforcementAllowed = this.parentContext.gcTombstoneEnforcementAllowed;
|
|
154
164
|
// By default, a data store can log maximum 10 local changes telemetry in summarizer.
|
|
@@ -185,17 +195,17 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
185
195
|
this._tombstoned = tombstone;
|
|
186
196
|
}
|
|
187
197
|
rejectDeferredRealize(reason, failedPkgPath, fullPackageName) {
|
|
188
|
-
throw new
|
|
198
|
+
throw new internal_5.LoggingError(reason, (0, internal_5.tagCodeArtifacts)({
|
|
189
199
|
failedPkgPath,
|
|
190
200
|
packagePath: fullPackageName?.join("/"),
|
|
191
201
|
}));
|
|
192
202
|
}
|
|
193
203
|
async realize() {
|
|
194
|
-
(0,
|
|
204
|
+
(0, internal_1.assert)(!this.detachedRuntimeCreation, 0x13d /* "Detached runtime creation on realize()" */);
|
|
195
205
|
if (!this.channelP) {
|
|
196
206
|
this.channelP = this.realizeCore(this.existing).catch((error) => {
|
|
197
|
-
const errorWrapped =
|
|
198
|
-
errorWrapped.addTelemetryProperties((0,
|
|
207
|
+
const errorWrapped = internal_5.DataProcessingError.wrapIfUnrecognized(error, "realizeFluidDataStoreContext");
|
|
208
|
+
errorWrapped.addTelemetryProperties((0, internal_5.tagCodeArtifacts)({
|
|
199
209
|
fullPackageName: this.pkg?.join("/"),
|
|
200
210
|
fluidDataStoreId: this.id,
|
|
201
211
|
}));
|
|
@@ -228,7 +238,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
228
238
|
if (factory === undefined) {
|
|
229
239
|
this.rejectDeferredRealize("Can't find factory for package", lastPkg, packages);
|
|
230
240
|
}
|
|
231
|
-
(0,
|
|
241
|
+
(0, internal_1.assert)(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
|
|
232
242
|
this.registry = registry;
|
|
233
243
|
return factory;
|
|
234
244
|
}
|
|
@@ -239,10 +249,10 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
239
249
|
// that it is set here, before bindRuntime is called.
|
|
240
250
|
this._baseSnapshot = details.snapshot;
|
|
241
251
|
this.baseSnapshotSequenceNumber = details.sequenceNumber;
|
|
242
|
-
(0,
|
|
252
|
+
(0, internal_1.assert)(this.pkg === details.pkg, 0x13e /* "Unexpected package path" */);
|
|
243
253
|
const factory = await this.factoryFromPackagePath();
|
|
244
254
|
const channel = await factory.instantiateDataStore(this, existing);
|
|
245
|
-
(0,
|
|
255
|
+
(0, internal_1.assert)(channel !== undefined, 0x140 /* "undefined channel on datastore context" */);
|
|
246
256
|
await this.bindRuntime(channel, existing);
|
|
247
257
|
// This data store may have been disposed before the channel is created during realization. If so,
|
|
248
258
|
// dispose the channel now.
|
|
@@ -264,25 +274,25 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
264
274
|
if (!this.loaded) {
|
|
265
275
|
return;
|
|
266
276
|
}
|
|
267
|
-
(0,
|
|
277
|
+
(0, internal_1.assert)(this.connected === connected, 0x141 /* "Unexpected connected state" */);
|
|
268
278
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
269
279
|
this.channel.setConnectionState(connected, clientId);
|
|
270
280
|
}
|
|
271
281
|
process(message, local, localOpMetadata) {
|
|
272
|
-
const safeTelemetryProps = (0,
|
|
282
|
+
const safeTelemetryProps = (0, internal_5.extractSafePropertiesFromMessage)(message);
|
|
273
283
|
// On op process, tombstone error is logged in garbage collector. So, set "checkTombstone" to false when calling
|
|
274
284
|
// "verifyNotClosed" which logs tombstone errors. Throw error if tombstoned and throwing on load is configured.
|
|
275
285
|
this.verifyNotClosed("process", false /* checkTombstone */, safeTelemetryProps);
|
|
276
286
|
if (this.tombstoned && this.gcThrowOnTombstoneUsage) {
|
|
277
|
-
throw new
|
|
287
|
+
throw new internal_5.DataCorruptionError("Context is tombstoned! Call site [process]", safeTelemetryProps);
|
|
278
288
|
}
|
|
279
289
|
this.summarizerNode.recordChange(message);
|
|
280
290
|
if (this.loaded) {
|
|
281
291
|
return this.channel?.process(message, local, localOpMetadata);
|
|
282
292
|
}
|
|
283
293
|
else {
|
|
284
|
-
(0,
|
|
285
|
-
(0,
|
|
294
|
+
(0, internal_1.assert)(!local, 0x142 /* "local store channel is not loaded" */);
|
|
295
|
+
(0, internal_1.assert)(this.pending !== undefined, 0x23d /* "pending is undefined" */);
|
|
286
296
|
this.pending.push(message);
|
|
287
297
|
this.thresholdOpsCounter.sendIfMultiple("StorePendingOps", this.pending.length);
|
|
288
298
|
}
|
|
@@ -316,12 +326,12 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
316
326
|
const summarizeResult = await this.channel.summarize(fullTree, trackState, telemetryContext);
|
|
317
327
|
// Wrap dds summaries in .channels subtree.
|
|
318
328
|
(0, index_js_2.wrapSummaryInChannelsTree)(summarizeResult);
|
|
319
|
-
const pathPartsForChildren = [
|
|
329
|
+
const pathPartsForChildren = [internal_3.channelsTreeName];
|
|
320
330
|
// Add data store's attributes to the summary.
|
|
321
331
|
const { pkg } = await this.getInitialSnapshotDetails();
|
|
322
332
|
const isRoot = await this.isRoot();
|
|
323
333
|
const attributes = createAttributes(pkg, isRoot);
|
|
324
|
-
(0,
|
|
334
|
+
(0, internal_4.addBlobToSummary)(summarizeResult, index_js_2.dataStoreAttributesBlobName, JSON.stringify(attributes));
|
|
325
335
|
// If we are not referenced, mark the summary tree as unreferenced. Also, update unreferenced blob
|
|
326
336
|
// size in the summary stats with the blobs size of this data store.
|
|
327
337
|
if (!this.summarizerNode.isReferenced()) {
|
|
@@ -356,7 +366,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
356
366
|
*/
|
|
357
367
|
async getGCDataInternal(fullGC = false) {
|
|
358
368
|
await this.realize();
|
|
359
|
-
(0,
|
|
369
|
+
(0, internal_1.assert)(this.channel !== undefined, 0x143 /* "Channel should not be undefined when running GC" */);
|
|
360
370
|
return this.channel.getGCData(fullGC);
|
|
361
371
|
}
|
|
362
372
|
/**
|
|
@@ -427,8 +437,8 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
427
437
|
* 2. When the data store is realized. This updates the channel's used routes as per last GC run.
|
|
428
438
|
*/
|
|
429
439
|
updateChannelUsedRoutes() {
|
|
430
|
-
(0,
|
|
431
|
-
(0,
|
|
440
|
+
(0, internal_1.assert)(this.loaded, 0x144 /* "Channel should be loaded when updating used routes" */);
|
|
441
|
+
(0, internal_1.assert)(this.channel !== undefined, 0x145 /* "Channel should be present when data store is loaded" */);
|
|
432
442
|
// If there is no lastUsedRoutes, GC has not run up until this point.
|
|
433
443
|
if (this.lastUsedRoutes === undefined) {
|
|
434
444
|
return;
|
|
@@ -448,7 +458,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
448
458
|
}
|
|
449
459
|
submitMessage(type, content, localOpMetadata) {
|
|
450
460
|
this.verifyNotClosed("submitMessage");
|
|
451
|
-
(0,
|
|
461
|
+
(0, internal_1.assert)(!!this.channel, 0x146 /* "Channel must exist when submitting message" */);
|
|
452
462
|
// Summarizer clients should not submit messages.
|
|
453
463
|
this.identifyLocalChangeInSummarizer("DataStoreMessageSubmittedInSummarizer", type);
|
|
454
464
|
this.parentContext.submitMessage(type, content, localOpMetadata);
|
|
@@ -475,12 +485,12 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
475
485
|
/**
|
|
476
486
|
* Submits the signal to be sent to other clients.
|
|
477
487
|
* @param type - Type of the signal.
|
|
478
|
-
* @param content - Content of the signal.
|
|
488
|
+
* @param content - Content of the signal. Should be a JSON serializable object or primitive.
|
|
479
489
|
* @param targetClientId - When specified, the signal is only sent to the provided client id.
|
|
480
490
|
*/
|
|
481
491
|
submitSignal(type, content, targetClientId) {
|
|
482
492
|
this.verifyNotClosed("submitSignal");
|
|
483
|
-
(0,
|
|
493
|
+
(0, internal_1.assert)(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
|
|
484
494
|
return this.parentContext.submitSignal(type, content, targetClientId);
|
|
485
495
|
}
|
|
486
496
|
/**
|
|
@@ -488,7 +498,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
488
498
|
* globally visible now.
|
|
489
499
|
*/
|
|
490
500
|
makeLocallyVisible() {
|
|
491
|
-
(0,
|
|
501
|
+
(0, internal_1.assert)(this.channel !== undefined, 0x2cf /* "undefined channel on datastore context" */);
|
|
492
502
|
this.makeLocallyVisibleFn();
|
|
493
503
|
}
|
|
494
504
|
processPendingOps(channel) {
|
|
@@ -530,8 +540,8 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
530
540
|
if (this.channel) {
|
|
531
541
|
throw new Error("Runtime already bound");
|
|
532
542
|
}
|
|
533
|
-
(0,
|
|
534
|
-
(0,
|
|
543
|
+
(0, internal_1.assert)(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
|
|
544
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
|
|
535
545
|
if (!existing) {
|
|
536
546
|
// Execute data store's entry point to make sure that for a local (aka detached from container) data store, the
|
|
537
547
|
// entryPoint initialization function is called before the data store gets attached and potentially connected to
|
|
@@ -566,7 +576,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
566
576
|
return {};
|
|
567
577
|
}
|
|
568
578
|
reSubmit(type, contents, localOpMetadata) {
|
|
569
|
-
(0,
|
|
579
|
+
(0, internal_1.assert)(!!this.channel, 0x14b /* "Channel must exist when resubmitting ops" */);
|
|
570
580
|
this.channel.reSubmit(type, contents, localOpMetadata);
|
|
571
581
|
}
|
|
572
582
|
rollback(type, contents, localOpMetadata) {
|
|
@@ -582,13 +592,13 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
582
592
|
if (!this.channel) {
|
|
583
593
|
await this.realize();
|
|
584
594
|
}
|
|
585
|
-
(0,
|
|
595
|
+
(0, internal_1.assert)(!!this.channel, 0x14c /* "Channel must exist when rebasing ops" */);
|
|
586
596
|
return this.channel.applyStashedOp(contents);
|
|
587
597
|
}
|
|
588
598
|
verifyNotClosed(callSite, checkTombstone = true, safeTelemetryProps = {}) {
|
|
589
599
|
if (this.deleted) {
|
|
590
600
|
const messageString = `Context is deleted! Call site [${callSite}]`;
|
|
591
|
-
const error = new
|
|
601
|
+
const error = new internal_5.DataCorruptionError(messageString, safeTelemetryProps);
|
|
592
602
|
this.mc.logger.sendErrorEvent({
|
|
593
603
|
eventName: "GC_Deleted_DataStore_Changed",
|
|
594
604
|
callSite,
|
|
@@ -600,7 +610,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
600
610
|
}
|
|
601
611
|
if (checkTombstone && this.tombstoned) {
|
|
602
612
|
const messageString = `Context is tombstoned! Call site [${callSite}]`;
|
|
603
|
-
const error = new
|
|
613
|
+
const error = new internal_5.DataCorruptionError(messageString, safeTelemetryProps);
|
|
604
614
|
(0, index_js_1.sendGCUnexpectedUsageEvent)(this.mc, {
|
|
605
615
|
eventName: "GC_Tombstone_DataStore_Changed",
|
|
606
616
|
category: this.gcThrowOnTombstoneUsage ? "error" : "generic",
|
|
@@ -629,7 +639,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
629
639
|
eventName,
|
|
630
640
|
type,
|
|
631
641
|
isSummaryInProgress: this.summarizerNode.isSummaryInProgress?.(),
|
|
632
|
-
stack: (0,
|
|
642
|
+
stack: (0, internal_5.generateStack)(),
|
|
633
643
|
});
|
|
634
644
|
this.localChangesTelemetryCount--;
|
|
635
645
|
}
|
|
@@ -651,11 +661,11 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
651
661
|
super(props, true /* existing */, false /* isLocalDataStore */, () => {
|
|
652
662
|
throw new Error("Already attached");
|
|
653
663
|
});
|
|
654
|
-
this.initialSnapshotDetailsP = new
|
|
664
|
+
this.initialSnapshotDetailsP = new internal_1.LazyPromise(async () => {
|
|
655
665
|
// Sequence number of the snapshot.
|
|
656
666
|
let sequenceNumber;
|
|
657
667
|
if (this.snapshotFetchRequired) {
|
|
658
|
-
(0,
|
|
668
|
+
(0, internal_1.assert)(this.loadingGroupId !== undefined, 0x8f5 /* groupId should be present to fetch snapshot */);
|
|
659
669
|
const snapshot = await this.runtime.getSnapshotForLoadingGroupId([this.loadingGroupId], [this.id]);
|
|
660
670
|
this._baseSnapshot = snapshot.snapshotTree;
|
|
661
671
|
sequenceNumber = snapshot.sequenceNumber;
|
|
@@ -665,7 +675,7 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
665
675
|
let isRootDataStore = true;
|
|
666
676
|
if (!!tree && tree.blobs[index_js_2.dataStoreAttributesBlobName] !== undefined) {
|
|
667
677
|
// Need to get through snapshot and use that to populate extraBlobs
|
|
668
|
-
const attributes = await (0,
|
|
678
|
+
const attributes = await (0, internal_2.readAndParse)(this.storage, tree.blobs[index_js_2.dataStoreAttributesBlobName]);
|
|
669
679
|
let pkgFromSnapshot;
|
|
670
680
|
// Use the snapshotFormatVersion to determine how the pkg is encoded in the snapshot.
|
|
671
681
|
// For snapshotFormatVersion = "0.1" (1) or above, pkg is jsonified, otherwise it is just a string.
|
|
@@ -687,11 +697,11 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
687
697
|
*/
|
|
688
698
|
isRootDataStore = attributes.isRootDataStore ?? true;
|
|
689
699
|
if ((0, index_js_2.hasIsolatedChannels)(attributes)) {
|
|
690
|
-
tree = tree.trees[
|
|
691
|
-
(0,
|
|
700
|
+
tree = tree.trees[internal_3.channelsTreeName];
|
|
701
|
+
(0, internal_1.assert)(tree !== undefined, 0x1fe /* "isolated channels subtree should exist in remote datastore snapshot" */);
|
|
692
702
|
}
|
|
693
703
|
}
|
|
694
|
-
(0,
|
|
704
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x8f6 /* The datastore context package should be defined */);
|
|
695
705
|
return {
|
|
696
706
|
pkg: this.pkg,
|
|
697
707
|
isRootDataStore,
|
|
@@ -735,7 +745,7 @@ exports.RemoteFluidDataStoreContext = RemoteFluidDataStoreContext;
|
|
|
735
745
|
class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
736
746
|
constructor(props) {
|
|
737
747
|
super(props, props.snapshotTree !== undefined /* existing */, true /* isLocalDataStore */, props.makeLocallyVisibleFn);
|
|
738
|
-
this.initialSnapshotDetailsP = new
|
|
748
|
+
this.initialSnapshotDetailsP = new internal_1.LazyPromise(async () => {
|
|
739
749
|
let snapshot = this.snapshotTree;
|
|
740
750
|
let attributes;
|
|
741
751
|
let isRootDataStore = false;
|
|
@@ -744,8 +754,8 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
744
754
|
// Note: storage can be undefined in special case while detached.
|
|
745
755
|
attributes = await (0, index_js_2.getFluidDataStoreAttributes)(this.storage, snapshot);
|
|
746
756
|
if ((0, index_js_2.hasIsolatedChannels)(attributes)) {
|
|
747
|
-
snapshot = snapshot.trees[
|
|
748
|
-
(0,
|
|
757
|
+
snapshot = snapshot.trees[internal_3.channelsTreeName];
|
|
758
|
+
(0, internal_1.assert)(snapshot !== undefined, 0x1ff /* "isolated channels subtree should exist in local datastore snapshot" */);
|
|
749
759
|
}
|
|
750
760
|
if (this.pkg === undefined) {
|
|
751
761
|
this.pkg = JSON.parse(attributes.pkg);
|
|
@@ -758,7 +768,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
758
768
|
}
|
|
759
769
|
}
|
|
760
770
|
}
|
|
761
|
-
(0,
|
|
771
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x152 /* "pkg should be available in local data store" */);
|
|
762
772
|
return {
|
|
763
773
|
pkg: this.pkg,
|
|
764
774
|
isRootDataStore,
|
|
@@ -773,7 +783,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
773
783
|
setAttachState(attachState) {
|
|
774
784
|
switch (attachState) {
|
|
775
785
|
case container_definitions_1.AttachState.Attaching:
|
|
776
|
-
(0,
|
|
786
|
+
(0, internal_1.assert)(this.attachState === container_definitions_1.AttachState.Detached, 0x14d /* "Should move from detached to attaching" */);
|
|
777
787
|
this._attachState = container_definitions_1.AttachState.Attaching;
|
|
778
788
|
if (this.channel?.setAttachState) {
|
|
779
789
|
this.channel.setAttachState(attachState);
|
|
@@ -792,7 +802,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
792
802
|
// 3. container attached
|
|
793
803
|
// 4. data store attached.
|
|
794
804
|
if (this.attachState !== container_definitions_1.AttachState.Attached) {
|
|
795
|
-
(0,
|
|
805
|
+
(0, internal_1.assert)(this.attachState === container_definitions_1.AttachState.Attaching, 0x14e /* "Should move from attaching to attached" */);
|
|
796
806
|
this._attachState = container_definitions_1.AttachState.Attached;
|
|
797
807
|
this.channel?.setAttachState?.(attachState);
|
|
798
808
|
if (this.channel?.setAttachState) {
|
|
@@ -806,25 +816,25 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
806
816
|
}
|
|
807
817
|
break;
|
|
808
818
|
default:
|
|
809
|
-
(0,
|
|
819
|
+
(0, internal_1.unreachableCase)(attachState, "unreached");
|
|
810
820
|
}
|
|
811
821
|
}
|
|
812
822
|
/**
|
|
813
823
|
* @see FluidDataStoreContext.getAttachData
|
|
814
824
|
*/
|
|
815
825
|
getAttachData(includeGCData, telemetryContext) {
|
|
816
|
-
(0,
|
|
817
|
-
(0,
|
|
826
|
+
(0, internal_1.assert)(this.channel !== undefined, 0x14f /* "There should be a channel when generating attach message" */);
|
|
827
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x150 /* "pkg should be available in local data store context" */);
|
|
818
828
|
const attachSummary = this.channel.getAttachSummary(telemetryContext);
|
|
819
829
|
// Wrap dds summaries in .channels subtree.
|
|
820
830
|
(0, index_js_2.wrapSummaryInChannelsTree)(attachSummary);
|
|
821
831
|
// Add data store's attributes to the summary.
|
|
822
832
|
const attributes = createAttributes(this.pkg, this.isInMemoryRoot());
|
|
823
|
-
(0,
|
|
833
|
+
(0, internal_4.addBlobToSummary)(attachSummary, index_js_2.dataStoreAttributesBlobName, JSON.stringify(attributes));
|
|
824
834
|
if (includeGCData) {
|
|
825
835
|
const gcData = this.channel.getAttachGCData?.(telemetryContext);
|
|
826
836
|
if (gcData !== undefined) {
|
|
827
|
-
(0,
|
|
837
|
+
(0, internal_4.addBlobToSummary)(attachSummary, internal_3.gcDataBlobKey, JSON.stringify(gcData));
|
|
828
838
|
}
|
|
829
839
|
}
|
|
830
840
|
// Add loadingGroupId to the summary
|
|
@@ -884,16 +894,16 @@ class LocalDetachedFluidDataStoreContext extends LocalFluidDataStoreContextBase
|
|
|
884
894
|
this.channelToDataStoreFn = props.channelToDataStoreFn;
|
|
885
895
|
}
|
|
886
896
|
async attachRuntime(registry, dataStoreChannel) {
|
|
887
|
-
(0,
|
|
897
|
+
(0, internal_1.assert)(this.detachedRuntimeCreation, 0x154 /* "runtime creation is already attached" */);
|
|
888
898
|
this.detachedRuntimeCreation = false;
|
|
889
|
-
(0,
|
|
899
|
+
(0, internal_1.assert)(this.channelP === undefined, 0x155 /* "channel deferral is already set" */);
|
|
890
900
|
this.channelP = Promise.resolve()
|
|
891
901
|
.then(async () => {
|
|
892
902
|
const factory = registry.IFluidDataStoreFactory;
|
|
893
903
|
const factory2 = await this.factoryFromPackagePath();
|
|
894
|
-
(0,
|
|
904
|
+
(0, internal_1.assert)(factory2 === factory, 0x156 /* "Unexpected factory for package path" */);
|
|
895
905
|
await super.bindRuntime(dataStoreChannel, false /* existing */);
|
|
896
|
-
(0,
|
|
906
|
+
(0, internal_1.assert)(!(await this.isRoot()), 0x8f7 /* there are no more createRootDataStore() kind of APIs! */);
|
|
897
907
|
return dataStoreChannel;
|
|
898
908
|
})
|
|
899
909
|
.catch((error) => {
|