@fluidframework/container-runtime 2.0.0-dev-rc.2.0.0.246488 → 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 +109 -55
- package/dist/batchTracker.d.ts +1 -1
- 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 +33 -25
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +82 -100
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +7 -6
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +110 -77
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +3 -3
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +17 -17
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/container-runtime-alpha.d.ts +263 -41
- package/dist/container-runtime-beta.d.ts +44 -30
- package/dist/container-runtime-public.d.ts +44 -30
- package/dist/container-runtime-untrimmed.d.ts +265 -56
- 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 +40 -30
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +376 -255
- 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 +74 -74
- 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 +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 +3 -2
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +21 -21
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts +2 -2
- 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 +4 -3
- 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 +2 -2
- 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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/messageTypes.d.ts +11 -5
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js +4 -0
- 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 +2 -20
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +3 -3
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +3 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +5 -6
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +15 -4
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +62 -63
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +2 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +14 -16
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +12 -4
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +63 -53
- 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 +19 -24
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +8 -0
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +36 -35
- 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 +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 +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 +209 -0
- package/dist/summary/documentSchema.d.ts.map +1 -0
- package/dist/summary/documentSchema.js +382 -0
- package/dist/summary/documentSchema.js.map +1 -0
- package/dist/summary/index.d.ts +2 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +4 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +2 -2
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +8 -7
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts +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 +3 -3
- 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 +3 -2
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +13 -13
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts +2 -2
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +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 +3 -2
- 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 +5 -3
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +2 -2
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +7 -7
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +6 -17
- 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 +4 -3
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +17 -17
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +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 +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 +33 -25
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +48 -66
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +7 -6
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +47 -14
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +3 -3
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +3 -3
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/container-runtime-alpha.d.ts +263 -41
- package/lib/container-runtime-beta.d.ts +44 -30
- package/lib/container-runtime-public.d.ts +44 -30
- package/lib/container-runtime-untrimmed.d.ts +265 -56
- 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 +40 -30
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +224 -101
- 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 +8 -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 +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 +3 -2
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +6 -6
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts +2 -2
- 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 +4 -3
- 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 +2 -2
- 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 +4 -2
- 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/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/messageTypes.d.ts +11 -5
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js +4 -0
- 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 +2 -20
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +3 -3
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +2 -2
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +2 -3
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +15 -4
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +61 -62
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +2 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +9 -12
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +12 -4
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +47 -38
- 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 +8 -13
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +8 -0
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +36 -35
- 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 +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 +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 +209 -0
- package/lib/summary/documentSchema.d.ts.map +1 -0
- package/lib/summary/documentSchema.js +378 -0
- package/lib/summary/documentSchema.js.map +1 -0
- package/lib/summary/index.d.ts +2 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +1 -0
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +2 -2
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +3 -2
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts +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 +3 -3
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +3 -3
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +3 -2
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +3 -3
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts +2 -2
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +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 +3 -2
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +5 -5
- 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 +5 -3
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +2 -2
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +1 -1
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +6 -17
- 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 +4 -3
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +4 -4
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts +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 +34 -32
- package/src/batchTracker.ts +4 -3
- package/src/blobManager.ts +100 -69
- package/src/channelCollection.ts +86 -43
- package/src/connectionTelemetry.ts +12 -12
- package/src/containerHandleContext.ts +3 -2
- package/src/containerRuntime.ts +419 -232
- package/src/dataStore.ts +5 -3
- package/src/dataStoreContext.ts +32 -29
- 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 +19 -18
- package/src/gc/gcConfigs.ts +15 -18
- package/src/gc/gcDefinitions.ts +6 -6
- package/src/gc/gcHelpers.ts +22 -5
- package/src/gc/gcSummaryStateTracker.ts +7 -5
- package/src/gc/gcTelemetry.ts +13 -7
- package/src/gc/gcUnreferencedStateTracker.ts +3 -2
- package/src/gc/index.ts +1 -0
- package/src/index.ts +8 -1
- package/src/messageTypes.ts +20 -6
- package/src/opLifecycle/README.md +89 -0
- package/src/opLifecycle/batchManager.ts +1 -0
- package/src/opLifecycle/definitions.ts +3 -21
- package/src/opLifecycle/index.ts +3 -9
- package/src/opLifecycle/opCompressor.ts +6 -5
- package/src/opLifecycle/opDecompressor.ts +84 -100
- package/src/opLifecycle/opGroupingManager.ts +12 -14
- package/src/opLifecycle/opSplitter.ts +76 -48
- package/src/opLifecycle/outbox.ts +17 -32
- package/src/opLifecycle/remoteMessageProcessor.ts +43 -59
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +6 -6
- package/src/scheduleManager.ts +9 -8
- package/src/storageServiceWithAttachBlobs.ts +2 -2
- package/src/summary/documentSchema.ts +612 -0
- package/src/summary/index.ts +10 -1
- package/src/summary/orderedClientElection.ts +6 -7
- package/src/summary/runWhileConnectedCoordinator.ts +3 -2
- package/src/summary/runningSummarizer.ts +22 -20
- package/src/summary/summarizer.ts +17 -15
- package/src/summary/summarizerClientElection.ts +3 -2
- package/src/summary/summarizerHeuristics.ts +4 -2
- package/src/summary/summarizerNode/summarizerNode.ts +20 -18
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +3 -2
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +16 -8
- package/src/summary/summarizerTypes.ts +7 -3
- package/src/summary/summaryCollection.ts +3 -3
- package/src/summary/summaryFormat.ts +14 -26
- package/src/summary/summaryGenerator.ts +12 -15
- package/src/summary/summaryManager.ts +16 -13
- 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 -1748
- 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/fuzz/fuzzUtils.js +0 -66
- package/lib/test/fuzz/fuzzUtils.js.map +0 -1
- package/lib/test/fuzz/summarizer.fuzz.spec.js +0 -31
- package/lib/test/fuzz/summarizer.fuzz.spec.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzMocks.js +0 -162
- package/lib/test/fuzz/summarizerFuzzMocks.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzSuite.js +0 -106
- 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 -225
- 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 -74
- package/lib/test/opLifecycle/opCompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opDecompressor.spec.js +0 -218
- package/lib/test/opLifecycle/opDecompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opSplitter.spec.js +0 -272
- package/lib/test/opLifecycle/opSplitter.spec.js.map +0 -1
- package/lib/test/opLifecycle/outbox.spec.js +0 -675
- package/lib/test/opLifecycle/outbox.spec.js.map +0 -1
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +0 -196
- 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 -180
- package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +0 -1
package/dist/dataStoreContext.js
CHANGED
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.LocalDetachedFluidDataStoreContext = exports.LocalFluidDataStoreContext = exports.LocalFluidDataStoreContextBase = exports.RemoteFluidDataStoreContext = exports.FluidDataStoreContext = exports.createAttributesBlob = void 0;
|
|
8
|
-
const container_definitions_1 = require("@fluidframework/container-definitions");
|
|
9
8
|
const client_utils_1 = require("@fluid-internal/client-utils");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
9
|
+
const container_definitions_1 = require("@fluidframework/container-definitions");
|
|
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
|
+
const index_js_1 = require("./gc/index.js");
|
|
16
|
+
const index_js_2 = require("./summary/index.js");
|
|
17
17
|
function createAttributes(pkg, isRootDataStore) {
|
|
18
18
|
const stringifiedPkg = JSON.stringify(pkg);
|
|
19
19
|
return {
|
|
@@ -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() {
|
|
@@ -129,18 +129,18 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
129
129
|
this.loadingGroupId = props.loadingGroupId;
|
|
130
130
|
// URIs use slashes as delimiters. Handles use URIs.
|
|
131
131
|
// Thus having slashes in types almost guarantees trouble down the road!
|
|
132
|
-
(0,
|
|
132
|
+
(0, internal_1.assert)(!this.id.includes("/"), 0x13a /* Data store ID contains slash */);
|
|
133
133
|
this._attachState =
|
|
134
134
|
this.parentContext.attachState !== container_definitions_1.AttachState.Detached && this.existing
|
|
135
135
|
? this.parentContext.attachState
|
|
136
136
|
: container_definitions_1.AttachState.Detached;
|
|
137
137
|
const thisSummarizeInternal = async (fullTree, trackState, telemetryContext) => this.summarizeInternal(fullTree, trackState, telemetryContext);
|
|
138
138
|
this.summarizerNode = props.createSummarizerNodeFn(thisSummarizeInternal, async (fullGC) => this.getGCDataInternal(fullGC));
|
|
139
|
-
this.mc = (0,
|
|
139
|
+
this.mc = (0, internal_5.createChildMonitoringContext)({
|
|
140
140
|
logger: this.logger,
|
|
141
141
|
namespace: "FluidDataStoreContext",
|
|
142
142
|
properties: {
|
|
143
|
-
all: (0,
|
|
143
|
+
all: (0, internal_5.tagCodeArtifacts)({
|
|
144
144
|
fluidDataStoreId: this.id,
|
|
145
145
|
// The package name is a getter because `this.pkg` may not be initialized during construction.
|
|
146
146
|
// For data stores loaded from summary, it is initialized during data store realization.
|
|
@@ -148,7 +148,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
148
148
|
}),
|
|
149
149
|
},
|
|
150
150
|
});
|
|
151
|
-
this.thresholdOpsCounter = new
|
|
151
|
+
this.thresholdOpsCounter = new internal_5.ThresholdCounter(FluidDataStoreContext.pendingOpsCountThreshold, this.mc.logger);
|
|
152
152
|
this.gcThrowOnTombstoneUsage = this.parentContext.gcThrowOnTombstoneUsage;
|
|
153
153
|
this.gcTombstoneEnforcementAllowed = this.parentContext.gcTombstoneEnforcementAllowed;
|
|
154
154
|
// By default, a data store can log maximum 10 local changes telemetry in summarizer.
|
|
@@ -185,17 +185,17 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
185
185
|
this._tombstoned = tombstone;
|
|
186
186
|
}
|
|
187
187
|
rejectDeferredRealize(reason, failedPkgPath, fullPackageName) {
|
|
188
|
-
throw new
|
|
188
|
+
throw new internal_5.LoggingError(reason, (0, internal_5.tagCodeArtifacts)({
|
|
189
189
|
failedPkgPath,
|
|
190
190
|
packagePath: fullPackageName?.join("/"),
|
|
191
191
|
}));
|
|
192
192
|
}
|
|
193
193
|
async realize() {
|
|
194
|
-
(0,
|
|
194
|
+
(0, internal_1.assert)(!this.detachedRuntimeCreation, 0x13d /* "Detached runtime creation on realize()" */);
|
|
195
195
|
if (!this.channelP) {
|
|
196
196
|
this.channelP = this.realizeCore(this.existing).catch((error) => {
|
|
197
|
-
const errorWrapped =
|
|
198
|
-
errorWrapped.addTelemetryProperties((0,
|
|
197
|
+
const errorWrapped = internal_5.DataProcessingError.wrapIfUnrecognized(error, "realizeFluidDataStoreContext");
|
|
198
|
+
errorWrapped.addTelemetryProperties((0, internal_5.tagCodeArtifacts)({
|
|
199
199
|
fullPackageName: this.pkg?.join("/"),
|
|
200
200
|
fluidDataStoreId: this.id,
|
|
201
201
|
}));
|
|
@@ -228,7 +228,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
228
228
|
if (factory === undefined) {
|
|
229
229
|
this.rejectDeferredRealize("Can't find factory for package", lastPkg, packages);
|
|
230
230
|
}
|
|
231
|
-
(0,
|
|
231
|
+
(0, internal_1.assert)(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
|
|
232
232
|
this.registry = registry;
|
|
233
233
|
return factory;
|
|
234
234
|
}
|
|
@@ -239,10 +239,10 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
239
239
|
// that it is set here, before bindRuntime is called.
|
|
240
240
|
this._baseSnapshot = details.snapshot;
|
|
241
241
|
this.baseSnapshotSequenceNumber = details.sequenceNumber;
|
|
242
|
-
(0,
|
|
242
|
+
(0, internal_1.assert)(this.pkg === details.pkg, 0x13e /* "Unexpected package path" */);
|
|
243
243
|
const factory = await this.factoryFromPackagePath();
|
|
244
244
|
const channel = await factory.instantiateDataStore(this, existing);
|
|
245
|
-
(0,
|
|
245
|
+
(0, internal_1.assert)(channel !== undefined, 0x140 /* "undefined channel on datastore context" */);
|
|
246
246
|
await this.bindRuntime(channel, existing);
|
|
247
247
|
// This data store may have been disposed before the channel is created during realization. If so,
|
|
248
248
|
// dispose the channel now.
|
|
@@ -264,25 +264,25 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
264
264
|
if (!this.loaded) {
|
|
265
265
|
return;
|
|
266
266
|
}
|
|
267
|
-
(0,
|
|
267
|
+
(0, internal_1.assert)(this.connected === connected, 0x141 /* "Unexpected connected state" */);
|
|
268
268
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
269
269
|
this.channel.setConnectionState(connected, clientId);
|
|
270
270
|
}
|
|
271
271
|
process(message, local, localOpMetadata) {
|
|
272
|
-
const safeTelemetryProps = (0,
|
|
272
|
+
const safeTelemetryProps = (0, internal_5.extractSafePropertiesFromMessage)(message);
|
|
273
273
|
// On op process, tombstone error is logged in garbage collector. So, set "checkTombstone" to false when calling
|
|
274
274
|
// "verifyNotClosed" which logs tombstone errors. Throw error if tombstoned and throwing on load is configured.
|
|
275
275
|
this.verifyNotClosed("process", false /* checkTombstone */, safeTelemetryProps);
|
|
276
276
|
if (this.tombstoned && this.gcThrowOnTombstoneUsage) {
|
|
277
|
-
throw new
|
|
277
|
+
throw new internal_5.DataCorruptionError("Context is tombstoned! Call site [process]", safeTelemetryProps);
|
|
278
278
|
}
|
|
279
279
|
this.summarizerNode.recordChange(message);
|
|
280
280
|
if (this.loaded) {
|
|
281
281
|
return this.channel?.process(message, local, localOpMetadata);
|
|
282
282
|
}
|
|
283
283
|
else {
|
|
284
|
-
(0,
|
|
285
|
-
(0,
|
|
284
|
+
(0, internal_1.assert)(!local, 0x142 /* "local store channel is not loaded" */);
|
|
285
|
+
(0, internal_1.assert)(this.pending !== undefined, 0x23d /* "pending is undefined" */);
|
|
286
286
|
this.pending.push(message);
|
|
287
287
|
this.thresholdOpsCounter.sendIfMultiple("StorePendingOps", this.pending.length);
|
|
288
288
|
}
|
|
@@ -315,13 +315,13 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
315
315
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
316
316
|
const summarizeResult = await this.channel.summarize(fullTree, trackState, telemetryContext);
|
|
317
317
|
// Wrap dds summaries in .channels subtree.
|
|
318
|
-
(0,
|
|
319
|
-
const pathPartsForChildren = [
|
|
318
|
+
(0, index_js_2.wrapSummaryInChannelsTree)(summarizeResult);
|
|
319
|
+
const pathPartsForChildren = [internal_3.channelsTreeName];
|
|
320
320
|
// Add data store's attributes to the summary.
|
|
321
321
|
const { pkg } = await this.getInitialSnapshotDetails();
|
|
322
322
|
const isRoot = await this.isRoot();
|
|
323
323
|
const attributes = createAttributes(pkg, isRoot);
|
|
324
|
-
(0,
|
|
324
|
+
(0, internal_4.addBlobToSummary)(summarizeResult, index_js_2.dataStoreAttributesBlobName, JSON.stringify(attributes));
|
|
325
325
|
// If we are not referenced, mark the summary tree as unreferenced. Also, update unreferenced blob
|
|
326
326
|
// size in the summary stats with the blobs size of this data store.
|
|
327
327
|
if (!this.summarizerNode.isReferenced()) {
|
|
@@ -356,7 +356,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
356
356
|
*/
|
|
357
357
|
async getGCDataInternal(fullGC = false) {
|
|
358
358
|
await this.realize();
|
|
359
|
-
(0,
|
|
359
|
+
(0, internal_1.assert)(this.channel !== undefined, 0x143 /* "Channel should not be undefined when running GC" */);
|
|
360
360
|
return this.channel.getGCData(fullGC);
|
|
361
361
|
}
|
|
362
362
|
/**
|
|
@@ -403,7 +403,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
403
403
|
*/
|
|
404
404
|
addedGCOutboundReference(srcHandle, outboundHandle) {
|
|
405
405
|
// By default, skip this call since the ContainerRuntime will detect the outbound route directly.
|
|
406
|
-
if (this.mc.config.getBoolean(
|
|
406
|
+
if (this.mc.config.getBoolean(index_js_1.detectOutboundRoutesViaDDSKey) === true) {
|
|
407
407
|
// Note: The ContainerRuntime code will check this same setting to avoid double counting.
|
|
408
408
|
this.parentContext.addedGCOutboundReference?.(srcHandle, outboundHandle);
|
|
409
409
|
}
|
|
@@ -427,8 +427,8 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
427
427
|
* 2. When the data store is realized. This updates the channel's used routes as per last GC run.
|
|
428
428
|
*/
|
|
429
429
|
updateChannelUsedRoutes() {
|
|
430
|
-
(0,
|
|
431
|
-
(0,
|
|
430
|
+
(0, internal_1.assert)(this.loaded, 0x144 /* "Channel should be loaded when updating used routes" */);
|
|
431
|
+
(0, internal_1.assert)(this.channel !== undefined, 0x145 /* "Channel should be present when data store is loaded" */);
|
|
432
432
|
// If there is no lastUsedRoutes, GC has not run up until this point.
|
|
433
433
|
if (this.lastUsedRoutes === undefined) {
|
|
434
434
|
return;
|
|
@@ -448,7 +448,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
448
448
|
}
|
|
449
449
|
submitMessage(type, content, localOpMetadata) {
|
|
450
450
|
this.verifyNotClosed("submitMessage");
|
|
451
|
-
(0,
|
|
451
|
+
(0, internal_1.assert)(!!this.channel, 0x146 /* "Channel must exist when submitting message" */);
|
|
452
452
|
// Summarizer clients should not submit messages.
|
|
453
453
|
this.identifyLocalChangeInSummarizer("DataStoreMessageSubmittedInSummarizer", type);
|
|
454
454
|
this.parentContext.submitMessage(type, content, localOpMetadata);
|
|
@@ -475,12 +475,12 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
475
475
|
/**
|
|
476
476
|
* Submits the signal to be sent to other clients.
|
|
477
477
|
* @param type - Type of the signal.
|
|
478
|
-
* @param content - Content of the signal.
|
|
478
|
+
* @param content - Content of the signal. Should be a JSON serializable object or primitive.
|
|
479
479
|
* @param targetClientId - When specified, the signal is only sent to the provided client id.
|
|
480
480
|
*/
|
|
481
481
|
submitSignal(type, content, targetClientId) {
|
|
482
482
|
this.verifyNotClosed("submitSignal");
|
|
483
|
-
(0,
|
|
483
|
+
(0, internal_1.assert)(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
|
|
484
484
|
return this.parentContext.submitSignal(type, content, targetClientId);
|
|
485
485
|
}
|
|
486
486
|
/**
|
|
@@ -488,7 +488,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
488
488
|
* globally visible now.
|
|
489
489
|
*/
|
|
490
490
|
makeLocallyVisible() {
|
|
491
|
-
(0,
|
|
491
|
+
(0, internal_1.assert)(this.channel !== undefined, 0x2cf /* "undefined channel on datastore context" */);
|
|
492
492
|
this.makeLocallyVisibleFn();
|
|
493
493
|
}
|
|
494
494
|
processPendingOps(channel) {
|
|
@@ -530,8 +530,8 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
530
530
|
if (this.channel) {
|
|
531
531
|
throw new Error("Runtime already bound");
|
|
532
532
|
}
|
|
533
|
-
(0,
|
|
534
|
-
(0,
|
|
533
|
+
(0, internal_1.assert)(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
|
|
534
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
|
|
535
535
|
if (!existing) {
|
|
536
536
|
// Execute data store's entry point to make sure that for a local (aka detached from container) data store, the
|
|
537
537
|
// entryPoint initialization function is called before the data store gets attached and potentially connected to
|
|
@@ -566,7 +566,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
566
566
|
return {};
|
|
567
567
|
}
|
|
568
568
|
reSubmit(type, contents, localOpMetadata) {
|
|
569
|
-
(0,
|
|
569
|
+
(0, internal_1.assert)(!!this.channel, 0x14b /* "Channel must exist when resubmitting ops" */);
|
|
570
570
|
this.channel.reSubmit(type, contents, localOpMetadata);
|
|
571
571
|
}
|
|
572
572
|
rollback(type, contents, localOpMetadata) {
|
|
@@ -582,13 +582,13 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
582
582
|
if (!this.channel) {
|
|
583
583
|
await this.realize();
|
|
584
584
|
}
|
|
585
|
-
(0,
|
|
585
|
+
(0, internal_1.assert)(!!this.channel, 0x14c /* "Channel must exist when rebasing ops" */);
|
|
586
586
|
return this.channel.applyStashedOp(contents);
|
|
587
587
|
}
|
|
588
588
|
verifyNotClosed(callSite, checkTombstone = true, safeTelemetryProps = {}) {
|
|
589
589
|
if (this.deleted) {
|
|
590
590
|
const messageString = `Context is deleted! Call site [${callSite}]`;
|
|
591
|
-
const error = new
|
|
591
|
+
const error = new internal_5.DataCorruptionError(messageString, safeTelemetryProps);
|
|
592
592
|
this.mc.logger.sendErrorEvent({
|
|
593
593
|
eventName: "GC_Deleted_DataStore_Changed",
|
|
594
594
|
callSite,
|
|
@@ -600,8 +600,8 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
600
600
|
}
|
|
601
601
|
if (checkTombstone && this.tombstoned) {
|
|
602
602
|
const messageString = `Context is tombstoned! Call site [${callSite}]`;
|
|
603
|
-
const error = new
|
|
604
|
-
(0,
|
|
603
|
+
const error = new internal_5.DataCorruptionError(messageString, safeTelemetryProps);
|
|
604
|
+
(0, index_js_1.sendGCUnexpectedUsageEvent)(this.mc, {
|
|
605
605
|
eventName: "GC_Tombstone_DataStore_Changed",
|
|
606
606
|
category: this.gcThrowOnTombstoneUsage ? "error" : "generic",
|
|
607
607
|
gcTombstoneEnforcementAllowed: this.gcTombstoneEnforcementAllowed,
|
|
@@ -618,7 +618,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
618
618
|
* other clients that are up-to-date till seq# 100 may not have them yet.
|
|
619
619
|
*/
|
|
620
620
|
identifyLocalChangeInSummarizer(eventName, type) {
|
|
621
|
-
if (this.clientDetails.type !==
|
|
621
|
+
if (this.clientDetails.type !== index_js_2.summarizerClientType ||
|
|
622
622
|
this.localChangesTelemetryCount <= 0) {
|
|
623
623
|
return;
|
|
624
624
|
}
|
|
@@ -629,7 +629,7 @@ class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
|
629
629
|
eventName,
|
|
630
630
|
type,
|
|
631
631
|
isSummaryInProgress: this.summarizerNode.isSummaryInProgress?.(),
|
|
632
|
-
stack: (0,
|
|
632
|
+
stack: (0, internal_5.generateStack)(),
|
|
633
633
|
});
|
|
634
634
|
this.localChangesTelemetryCount--;
|
|
635
635
|
}
|
|
@@ -651,11 +651,11 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
651
651
|
super(props, true /* existing */, false /* isLocalDataStore */, () => {
|
|
652
652
|
throw new Error("Already attached");
|
|
653
653
|
});
|
|
654
|
-
this.initialSnapshotDetailsP = new
|
|
654
|
+
this.initialSnapshotDetailsP = new internal_1.LazyPromise(async () => {
|
|
655
655
|
// Sequence number of the snapshot.
|
|
656
656
|
let sequenceNumber;
|
|
657
657
|
if (this.snapshotFetchRequired) {
|
|
658
|
-
(0,
|
|
658
|
+
(0, internal_1.assert)(this.loadingGroupId !== undefined, 0x8f5 /* groupId should be present to fetch snapshot */);
|
|
659
659
|
const snapshot = await this.runtime.getSnapshotForLoadingGroupId([this.loadingGroupId], [this.id]);
|
|
660
660
|
this._baseSnapshot = snapshot.snapshotTree;
|
|
661
661
|
sequenceNumber = snapshot.sequenceNumber;
|
|
@@ -663,13 +663,13 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
663
663
|
}
|
|
664
664
|
let tree = this.baseSnapshot;
|
|
665
665
|
let isRootDataStore = true;
|
|
666
|
-
if (!!tree && tree.blobs[
|
|
666
|
+
if (!!tree && tree.blobs[index_js_2.dataStoreAttributesBlobName] !== undefined) {
|
|
667
667
|
// Need to get through snapshot and use that to populate extraBlobs
|
|
668
|
-
const attributes = await (0,
|
|
668
|
+
const attributes = await (0, internal_2.readAndParse)(this.storage, tree.blobs[index_js_2.dataStoreAttributesBlobName]);
|
|
669
669
|
let pkgFromSnapshot;
|
|
670
670
|
// Use the snapshotFormatVersion to determine how the pkg is encoded in the snapshot.
|
|
671
671
|
// For snapshotFormatVersion = "0.1" (1) or above, pkg is jsonified, otherwise it is just a string.
|
|
672
|
-
const formatVersion = (0,
|
|
672
|
+
const formatVersion = (0, index_js_2.getAttributesFormatVersion)(attributes);
|
|
673
673
|
if (formatVersion < 1) {
|
|
674
674
|
pkgFromSnapshot =
|
|
675
675
|
attributes.pkg.startsWith('["') && attributes.pkg.endsWith('"]')
|
|
@@ -686,12 +686,12 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
686
686
|
* roots in the document but they won't break.
|
|
687
687
|
*/
|
|
688
688
|
isRootDataStore = attributes.isRootDataStore ?? true;
|
|
689
|
-
if ((0,
|
|
690
|
-
tree = tree.trees[
|
|
691
|
-
(0,
|
|
689
|
+
if ((0, index_js_2.hasIsolatedChannels)(attributes)) {
|
|
690
|
+
tree = tree.trees[internal_3.channelsTreeName];
|
|
691
|
+
(0, internal_1.assert)(tree !== undefined, 0x1fe /* "isolated channels subtree should exist in remote datastore snapshot" */);
|
|
692
692
|
}
|
|
693
693
|
}
|
|
694
|
-
(0,
|
|
694
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x8f6 /* The datastore context package should be defined */);
|
|
695
695
|
return {
|
|
696
696
|
pkg: this.pkg,
|
|
697
697
|
isRootDataStore,
|
|
@@ -735,17 +735,17 @@ exports.RemoteFluidDataStoreContext = RemoteFluidDataStoreContext;
|
|
|
735
735
|
class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
736
736
|
constructor(props) {
|
|
737
737
|
super(props, props.snapshotTree !== undefined /* existing */, true /* isLocalDataStore */, props.makeLocallyVisibleFn);
|
|
738
|
-
this.initialSnapshotDetailsP = new
|
|
738
|
+
this.initialSnapshotDetailsP = new internal_1.LazyPromise(async () => {
|
|
739
739
|
let snapshot = this.snapshotTree;
|
|
740
740
|
let attributes;
|
|
741
741
|
let isRootDataStore = false;
|
|
742
742
|
if (snapshot !== undefined) {
|
|
743
743
|
// Get the dataStore attributes.
|
|
744
744
|
// Note: storage can be undefined in special case while detached.
|
|
745
|
-
attributes = await (0,
|
|
746
|
-
if ((0,
|
|
747
|
-
snapshot = snapshot.trees[
|
|
748
|
-
(0,
|
|
745
|
+
attributes = await (0, index_js_2.getFluidDataStoreAttributes)(this.storage, snapshot);
|
|
746
|
+
if ((0, index_js_2.hasIsolatedChannels)(attributes)) {
|
|
747
|
+
snapshot = snapshot.trees[internal_3.channelsTreeName];
|
|
748
|
+
(0, internal_1.assert)(snapshot !== undefined, 0x1ff /* "isolated channels subtree should exist in local datastore snapshot" */);
|
|
749
749
|
}
|
|
750
750
|
if (this.pkg === undefined) {
|
|
751
751
|
this.pkg = JSON.parse(attributes.pkg);
|
|
@@ -758,7 +758,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
758
758
|
}
|
|
759
759
|
}
|
|
760
760
|
}
|
|
761
|
-
(0,
|
|
761
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x152 /* "pkg should be available in local data store" */);
|
|
762
762
|
return {
|
|
763
763
|
pkg: this.pkg,
|
|
764
764
|
isRootDataStore,
|
|
@@ -773,7 +773,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
773
773
|
setAttachState(attachState) {
|
|
774
774
|
switch (attachState) {
|
|
775
775
|
case container_definitions_1.AttachState.Attaching:
|
|
776
|
-
(0,
|
|
776
|
+
(0, internal_1.assert)(this.attachState === container_definitions_1.AttachState.Detached, 0x14d /* "Should move from detached to attaching" */);
|
|
777
777
|
this._attachState = container_definitions_1.AttachState.Attaching;
|
|
778
778
|
if (this.channel?.setAttachState) {
|
|
779
779
|
this.channel.setAttachState(attachState);
|
|
@@ -792,7 +792,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
792
792
|
// 3. container attached
|
|
793
793
|
// 4. data store attached.
|
|
794
794
|
if (this.attachState !== container_definitions_1.AttachState.Attached) {
|
|
795
|
-
(0,
|
|
795
|
+
(0, internal_1.assert)(this.attachState === container_definitions_1.AttachState.Attaching, 0x14e /* "Should move from attaching to attached" */);
|
|
796
796
|
this._attachState = container_definitions_1.AttachState.Attached;
|
|
797
797
|
this.channel?.setAttachState?.(attachState);
|
|
798
798
|
if (this.channel?.setAttachState) {
|
|
@@ -806,25 +806,25 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
806
806
|
}
|
|
807
807
|
break;
|
|
808
808
|
default:
|
|
809
|
-
(0,
|
|
809
|
+
(0, internal_1.unreachableCase)(attachState, "unreached");
|
|
810
810
|
}
|
|
811
811
|
}
|
|
812
812
|
/**
|
|
813
813
|
* @see FluidDataStoreContext.getAttachData
|
|
814
814
|
*/
|
|
815
815
|
getAttachData(includeGCData, telemetryContext) {
|
|
816
|
-
(0,
|
|
817
|
-
(0,
|
|
816
|
+
(0, internal_1.assert)(this.channel !== undefined, 0x14f /* "There should be a channel when generating attach message" */);
|
|
817
|
+
(0, internal_1.assert)(this.pkg !== undefined, 0x150 /* "pkg should be available in local data store context" */);
|
|
818
818
|
const attachSummary = this.channel.getAttachSummary(telemetryContext);
|
|
819
819
|
// Wrap dds summaries in .channels subtree.
|
|
820
|
-
(0,
|
|
820
|
+
(0, index_js_2.wrapSummaryInChannelsTree)(attachSummary);
|
|
821
821
|
// Add data store's attributes to the summary.
|
|
822
822
|
const attributes = createAttributes(this.pkg, this.isInMemoryRoot());
|
|
823
|
-
(0,
|
|
823
|
+
(0, internal_4.addBlobToSummary)(attachSummary, index_js_2.dataStoreAttributesBlobName, JSON.stringify(attributes));
|
|
824
824
|
if (includeGCData) {
|
|
825
825
|
const gcData = this.channel.getAttachGCData?.(telemetryContext);
|
|
826
826
|
if (gcData !== undefined) {
|
|
827
|
-
(0,
|
|
827
|
+
(0, internal_4.addBlobToSummary)(attachSummary, internal_3.gcDataBlobKey, JSON.stringify(gcData));
|
|
828
828
|
}
|
|
829
829
|
}
|
|
830
830
|
// Add loadingGroupId to the summary
|
|
@@ -848,7 +848,7 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
848
848
|
*/
|
|
849
849
|
delete() {
|
|
850
850
|
// TODO: GC:Validation - potentially prevent this from happening or asserting. Maybe throw here.
|
|
851
|
-
(0,
|
|
851
|
+
(0, index_js_1.sendGCUnexpectedUsageEvent)(this.mc, {
|
|
852
852
|
eventName: "GC_Deleted_DataStore_Unexpected_Delete",
|
|
853
853
|
message: "Unexpected deletion of a local data store context",
|
|
854
854
|
category: "error",
|
|
@@ -884,16 +884,16 @@ class LocalDetachedFluidDataStoreContext extends LocalFluidDataStoreContextBase
|
|
|
884
884
|
this.channelToDataStoreFn = props.channelToDataStoreFn;
|
|
885
885
|
}
|
|
886
886
|
async attachRuntime(registry, dataStoreChannel) {
|
|
887
|
-
(0,
|
|
887
|
+
(0, internal_1.assert)(this.detachedRuntimeCreation, 0x154 /* "runtime creation is already attached" */);
|
|
888
888
|
this.detachedRuntimeCreation = false;
|
|
889
|
-
(0,
|
|
889
|
+
(0, internal_1.assert)(this.channelP === undefined, 0x155 /* "channel deferral is already set" */);
|
|
890
890
|
this.channelP = Promise.resolve()
|
|
891
891
|
.then(async () => {
|
|
892
892
|
const factory = registry.IFluidDataStoreFactory;
|
|
893
893
|
const factory2 = await this.factoryFromPackagePath();
|
|
894
|
-
(0,
|
|
894
|
+
(0, internal_1.assert)(factory2 === factory, 0x156 /* "Unexpected factory for package path" */);
|
|
895
895
|
await super.bindRuntime(dataStoreChannel, false /* existing */);
|
|
896
|
-
(0,
|
|
896
|
+
(0, internal_1.assert)(!(await this.isRoot()), 0x8f7 /* there are no more createRootDataStore() kind of APIs! */);
|
|
897
897
|
return dataStoreChannel;
|
|
898
898
|
})
|
|
899
899
|
.catch((error) => {
|