@fluidframework/container-runtime 2.0.0-rc.2.0.1 → 2.0.0-rc.3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/api-report/container-runtime.api.md +471 -52
- 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 -30
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +82 -107
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +27 -22
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +189 -165
- 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/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js +2 -2
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +42 -39
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +425 -292
- 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 +8 -8
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +58 -19
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +171 -114
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +1 -0
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +12 -11
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.d.ts +5 -1
- package/dist/dataStoreRegistry.d.ts.map +1 -1
- package/dist/dataStoreRegistry.js +4 -4
- 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 +23 -23
- 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 -5
- 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 +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +91 -0
- 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 +30 -29
- 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 -32
- 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/public.d.ts +12 -0
- package/dist/scheduleManager.d.ts +1 -1
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js +28 -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 +390 -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 +12 -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/internal.d.ts +11 -0
- package/legacy.d.ts +11 -0
- 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 -30
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +48 -73
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +27 -22
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +132 -108
- 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/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +42 -39
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +276 -141
- 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 +3 -3
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +58 -19
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +110 -53
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts +1 -0
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +3 -2
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.d.ts +5 -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 +8 -8
- 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 -5
- 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 +5 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -2
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +91 -0
- 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 +19 -18
- 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 -32
- 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/public.d.ts +12 -0
- package/lib/scheduleManager.d.ts +1 -1
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js +7 -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 +386 -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 +7 -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/package.json +57 -65
- package/src/batchTracker.ts +4 -3
- package/src/blobManager.ts +100 -77
- package/src/channelCollection.ts +223 -167
- package/src/connectionTelemetry.ts +12 -12
- package/src/containerHandleContext.ts +3 -2
- package/src/containerRuntime.ts +481 -277
- package/src/dataStore.ts +9 -4
- package/src/dataStoreContext.ts +201 -97
- package/src/dataStoreContexts.ts +5 -2
- package/src/dataStoreRegistry.ts +3 -2
- package/src/deltaManagerSummarizerProxy.ts +1 -1
- package/src/deltaScheduler.ts +2 -1
- package/src/error.ts +2 -2
- package/src/gc/garbageCollection.ts +21 -20
- package/src/gc/gcConfigs.ts +15 -18
- package/src/gc/gcDefinitions.ts +6 -8
- 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 +22 -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 +90 -100
- package/src/opLifecycle/opGroupingManager.ts +12 -14
- package/src/opLifecycle/opSplitter.ts +76 -48
- package/src/opLifecycle/outbox.ts +30 -38
- package/src/opLifecycle/remoteMessageProcessor.ts +43 -55
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +6 -6
- package/src/scheduleManager.ts +10 -8
- package/src/storageServiceWithAttachBlobs.ts +2 -2
- package/src/summary/documentSchema.ts +631 -0
- package/src/summary/index.ts +10 -1
- package/src/summary/orderedClientElection.ts +7 -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/api-extractor-cjs.json +0 -8
- package/dist/container-runtime-alpha.d.ts +0 -1753
- package/dist/container-runtime-beta.d.ts +0 -268
- package/dist/container-runtime-public.d.ts +0 -268
- package/dist/container-runtime-untrimmed.d.ts +0 -1893
- package/lib/container-runtime-alpha.d.ts +0 -1753
- package/lib/container-runtime-beta.d.ts +0 -268
- package/lib/container-runtime-public.d.ts +0 -268
- package/lib/container-runtime-untrimmed.d.ts +0 -1893
- 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 -141
- 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 -801
- package/lib/test/dataStoreContext.spec.js.map +0 -1
- package/lib/test/dataStoreCreation.spec.js +0 -312
- 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 -1465
- package/lib/test/gc/garbageCollection.spec.js.map +0 -1
- package/lib/test/gc/gcConfigs.spec.js +0 -690
- 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 -391
- 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 → lib}/tsdoc-metadata.json +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/container-runtime",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.3.0.0",
|
|
4
4
|
"description": "Fluid container runtime",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -15,31 +15,21 @@
|
|
|
15
15
|
"exports": {
|
|
16
16
|
".": {
|
|
17
17
|
"import": {
|
|
18
|
-
"types": "./lib/
|
|
19
|
-
"default": "./lib/index.js"
|
|
20
|
-
},
|
|
21
|
-
"require": {
|
|
22
|
-
"types": "./dist/index.d.ts",
|
|
23
|
-
"default": "./dist/index.js"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"./public": {
|
|
27
|
-
"import": {
|
|
28
|
-
"types": "./lib/container-runtime-public.d.ts",
|
|
18
|
+
"types": "./lib/public.d.ts",
|
|
29
19
|
"default": "./lib/index.js"
|
|
30
20
|
},
|
|
31
21
|
"require": {
|
|
32
|
-
"types": "./dist/
|
|
22
|
+
"types": "./dist/public.d.ts",
|
|
33
23
|
"default": "./dist/index.js"
|
|
34
24
|
}
|
|
35
25
|
},
|
|
36
|
-
"./
|
|
26
|
+
"./legacy": {
|
|
37
27
|
"import": {
|
|
38
|
-
"types": "./lib/
|
|
28
|
+
"types": "./lib/legacy.d.ts",
|
|
39
29
|
"default": "./lib/index.js"
|
|
40
30
|
},
|
|
41
31
|
"require": {
|
|
42
|
-
"types": "./dist/
|
|
32
|
+
"types": "./dist/legacy.d.ts",
|
|
43
33
|
"default": "./dist/index.js"
|
|
44
34
|
}
|
|
45
35
|
},
|
|
@@ -53,7 +43,7 @@
|
|
|
53
43
|
"default": "./dist/index.js"
|
|
54
44
|
}
|
|
55
45
|
},
|
|
56
|
-
"./test/containerRuntime": {
|
|
46
|
+
"./internal/test/containerRuntime": {
|
|
57
47
|
"import": {
|
|
58
48
|
"types": "./lib/containerRuntime.d.ts",
|
|
59
49
|
"default": "./lib/containerRuntime.js"
|
|
@@ -63,7 +53,7 @@
|
|
|
63
53
|
"default": "./dist/containerRuntime.js"
|
|
64
54
|
}
|
|
65
55
|
},
|
|
66
|
-
"./test/deltaScheduler": {
|
|
56
|
+
"./internal/test/deltaScheduler": {
|
|
67
57
|
"import": {
|
|
68
58
|
"types": "./lib/deltaScheduler.d.ts",
|
|
69
59
|
"default": "./lib/deltaScheduler.js"
|
|
@@ -73,7 +63,7 @@
|
|
|
73
63
|
"default": "./dist/deltaScheduler.js"
|
|
74
64
|
}
|
|
75
65
|
},
|
|
76
|
-
"./test/scheduleManager": {
|
|
66
|
+
"./internal/test/scheduleManager": {
|
|
77
67
|
"import": {
|
|
78
68
|
"types": "./lib/scheduleManager.d.ts",
|
|
79
69
|
"default": "./lib/scheduleManager.js"
|
|
@@ -83,7 +73,7 @@
|
|
|
83
73
|
"default": "./dist/scheduleManager.js"
|
|
84
74
|
}
|
|
85
75
|
},
|
|
86
|
-
"./test/blobManager": {
|
|
76
|
+
"./internal/test/blobManager": {
|
|
87
77
|
"import": {
|
|
88
78
|
"types": "./lib/blobManager.d.ts",
|
|
89
79
|
"default": "./lib/blobManager.js"
|
|
@@ -93,7 +83,7 @@
|
|
|
93
83
|
"default": "./dist/blobManager.js"
|
|
94
84
|
}
|
|
95
85
|
},
|
|
96
|
-
"./test/summary": {
|
|
86
|
+
"./internal/test/summary": {
|
|
97
87
|
"import": {
|
|
98
88
|
"types": "./lib/summary/index.d.ts",
|
|
99
89
|
"default": "./lib/summary/index.js"
|
|
@@ -103,7 +93,7 @@
|
|
|
103
93
|
"default": "./dist/summary/index.js"
|
|
104
94
|
}
|
|
105
95
|
},
|
|
106
|
-
"./test/gc": {
|
|
96
|
+
"./internal/test/gc": {
|
|
107
97
|
"import": {
|
|
108
98
|
"types": "./lib/gc/index.d.ts",
|
|
109
99
|
"default": "./lib/gc/index.js"
|
|
@@ -114,8 +104,8 @@
|
|
|
114
104
|
}
|
|
115
105
|
}
|
|
116
106
|
},
|
|
117
|
-
"main": "
|
|
118
|
-
"types": "
|
|
107
|
+
"main": "lib/index.js",
|
|
108
|
+
"types": "lib/public.d.ts",
|
|
119
109
|
"c8": {
|
|
120
110
|
"all": true,
|
|
121
111
|
"cache-dir": "nyc/.cache",
|
|
@@ -137,38 +127,42 @@
|
|
|
137
127
|
"temp-directory": "nyc/.nyc_output"
|
|
138
128
|
},
|
|
139
129
|
"dependencies": {
|
|
140
|
-
"@fluid-internal/client-utils": ">=2.0.0-rc.
|
|
141
|
-
"@fluidframework/
|
|
142
|
-
"@fluidframework/container-
|
|
143
|
-
"@fluidframework/
|
|
144
|
-
"@fluidframework/core-
|
|
145
|
-
"@fluidframework/
|
|
146
|
-
"@fluidframework/
|
|
147
|
-
"@fluidframework/driver-
|
|
148
|
-
"@fluidframework/
|
|
130
|
+
"@fluid-internal/client-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
131
|
+
"@fluidframework/common-definitions": "^1.1.0",
|
|
132
|
+
"@fluidframework/container-definitions": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
133
|
+
"@fluidframework/container-runtime-definitions": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
134
|
+
"@fluidframework/core-interfaces": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
135
|
+
"@fluidframework/core-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
136
|
+
"@fluidframework/datastore": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
137
|
+
"@fluidframework/driver-definitions": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
138
|
+
"@fluidframework/driver-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
139
|
+
"@fluidframework/id-compressor": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
149
140
|
"@fluidframework/protocol-definitions": "^3.2.0",
|
|
150
|
-
"@fluidframework/runtime-definitions": ">=2.0.0-rc.
|
|
151
|
-
"@fluidframework/runtime-utils": ">=2.0.0-rc.
|
|
152
|
-
"@fluidframework/telemetry-utils": ">=2.0.0-rc.
|
|
141
|
+
"@fluidframework/runtime-definitions": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
142
|
+
"@fluidframework/runtime-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
143
|
+
"@fluidframework/telemetry-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
153
144
|
"@tylerbu/sorted-btree-es6": "^1.8.0",
|
|
154
145
|
"double-ended-queue": "^2.1.0-0",
|
|
155
146
|
"lz4js": "^0.2.0",
|
|
156
147
|
"uuid": "^9.0.0"
|
|
157
148
|
},
|
|
158
149
|
"devDependencies": {
|
|
159
|
-
"@arethetypeswrong/cli": "^0.
|
|
160
|
-
"@
|
|
161
|
-
"@fluid-
|
|
150
|
+
"@arethetypeswrong/cli": "^0.15.2",
|
|
151
|
+
"@biomejs/biome": "^1.6.2",
|
|
152
|
+
"@fluid-internal/mocha-test-setup": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
153
|
+
"@fluid-private/stochastic-test-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
154
|
+
"@fluid-private/test-pairwise-generator": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
162
155
|
"@fluid-tools/benchmark": "^0.48.0",
|
|
163
|
-
"@fluid-tools/build-cli": "^0.
|
|
156
|
+
"@fluid-tools/build-cli": "^0.37.0",
|
|
164
157
|
"@fluidframework/build-common": "^2.0.3",
|
|
165
|
-
"@fluidframework/build-tools": "^0.
|
|
158
|
+
"@fluidframework/build-tools": "^0.37.0",
|
|
166
159
|
"@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-internal.8.0.0",
|
|
167
|
-
"@fluidframework/eslint-config-fluid": "^
|
|
168
|
-
"@fluidframework/test-runtime-utils": ">=2.0.0-rc.
|
|
160
|
+
"@fluidframework/eslint-config-fluid": "^5.1.0",
|
|
161
|
+
"@fluidframework/test-runtime-utils": ">=2.0.0-rc.3.0.0 <2.0.0-rc.3.1.0",
|
|
169
162
|
"@microsoft/api-extractor": "^7.42.3",
|
|
170
163
|
"@types/double-ended-queue": "^2.1.0",
|
|
171
164
|
"@types/mocha": "^9.1.1",
|
|
165
|
+
"@types/node": "^18.19.0",
|
|
172
166
|
"@types/sinon": "^17.0.3",
|
|
173
167
|
"@types/uuid": "^9.0.2",
|
|
174
168
|
"c8": "^8.0.1",
|
|
@@ -184,18 +178,6 @@
|
|
|
184
178
|
"sinon": "^17.0.1",
|
|
185
179
|
"typescript": "~5.1.6"
|
|
186
180
|
},
|
|
187
|
-
"fluidBuild": {
|
|
188
|
-
"tasks": {
|
|
189
|
-
"build:docs": {
|
|
190
|
-
"dependsOn": [
|
|
191
|
-
"...",
|
|
192
|
-
"api-extractor:commonjs",
|
|
193
|
-
"api-extractor:esnext"
|
|
194
|
-
],
|
|
195
|
-
"script": false
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
},
|
|
199
181
|
"typeValidation": {
|
|
200
182
|
"broken": {
|
|
201
183
|
"ClassDeclaration_ContainerRuntime": {
|
|
@@ -220,33 +202,43 @@
|
|
|
220
202
|
"RemovedFunctionDeclaration_isStableId": {
|
|
221
203
|
"backCompat": false,
|
|
222
204
|
"forwardCompat": false
|
|
205
|
+
},
|
|
206
|
+
"InterfaceDeclaration_IContainerRuntimeMetadata": {
|
|
207
|
+
"backCompat": false
|
|
208
|
+
},
|
|
209
|
+
"RemovedEnumDeclaration_RuntimeMessage": {
|
|
210
|
+
"backCompat": false,
|
|
211
|
+
"forwardCompat": false
|
|
212
|
+
},
|
|
213
|
+
"InterfaceDeclaration_IChunkedOp": {
|
|
214
|
+
"backCompat": false
|
|
223
215
|
}
|
|
224
216
|
}
|
|
225
217
|
},
|
|
226
218
|
"scripts": {
|
|
227
219
|
"api": "fluid-build . --task api",
|
|
228
|
-
"api-extractor:commonjs": "
|
|
229
|
-
"api-extractor:esnext": "
|
|
220
|
+
"api-extractor:commonjs": "flub generate entrypoints --outFileAlpha legacy --outDir ./dist",
|
|
221
|
+
"api-extractor:esnext": "flub generate entrypoints --outFileAlpha legacy --outDir ./lib --node10TypeCompat",
|
|
230
222
|
"build": "fluid-build . --task build",
|
|
231
223
|
"build:commonjs": "fluid-build . --task commonjs",
|
|
232
224
|
"build:compile": "fluid-build . --task compile",
|
|
233
|
-
"build:docs": "
|
|
225
|
+
"build:docs": "api-extractor run --local",
|
|
234
226
|
"build:esnext": "tsc --project ./tsconfig.json",
|
|
235
227
|
"build:genver": "gen-version",
|
|
236
228
|
"build:test": "npm run build:test:esm && npm run build:test:cjs",
|
|
237
229
|
"build:test:cjs": "fluid-tsc commonjs --project ./src/test/tsconfig.cjs.json",
|
|
238
230
|
"build:test:esm": "tsc --project ./src/test/tsconfig.json",
|
|
239
|
-
"check:are-the-types-wrong": "attw --pack . --entrypoints
|
|
231
|
+
"check:are-the-types-wrong": "attw --pack . --exclude-entrypoints ./internal/test/containerRuntime ./internal/test/deltaScheduler ./internal/test/scheduleManager ./internal/test/blobManager ./internal/test/summary ./internal/test/gc",
|
|
232
|
+
"check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
|
|
240
233
|
"check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
|
|
241
234
|
"ci:build:docs": "api-extractor run",
|
|
242
|
-
"clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
|
|
235
|
+
"clean": "rimraf --glob dist lib \"*.d.ts\" \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
|
|
243
236
|
"eslint": "eslint --format stylish src",
|
|
244
237
|
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
245
|
-
"format": "
|
|
246
|
-
"
|
|
247
|
-
"lint
|
|
248
|
-
"
|
|
249
|
-
"prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore",
|
|
238
|
+
"format": "fluid-build --task format .",
|
|
239
|
+
"format:prettier": "prettier --write . --cache --ignore-path ../../../.prettierignore",
|
|
240
|
+
"lint": "fluid-build . --task lint",
|
|
241
|
+
"lint:fix": "fluid-build . --task eslint:fix --task format",
|
|
250
242
|
"test": "npm run test:mocha",
|
|
251
243
|
"test:benchmark:report": "mocha --timeout 999999 --perfMode --parentProcess --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js \"./dist/**/*.perf.spec.*js\"",
|
|
252
244
|
"test:coverage": "c8 npm test",
|
package/src/batchTracker.ts
CHANGED
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITelemetryLoggerExt, createChildLogger } from "@fluidframework/telemetry-utils";
|
|
7
|
-
import { assert } from "@fluidframework/core-utils";
|
|
8
6
|
import type { EventEmitter } from "@fluid-internal/client-utils";
|
|
9
7
|
import { performance } from "@fluid-internal/client-utils";
|
|
10
|
-
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
11
8
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
9
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
10
|
+
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
11
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
12
|
+
import { createChildLogger } from "@fluidframework/telemetry-utils/internal";
|
|
12
13
|
|
|
13
14
|
export class BatchTracker {
|
|
14
15
|
private readonly logger: ITelemetryLoggerExt;
|
package/src/blobManager.ts
CHANGED
|
@@ -3,42 +3,42 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { TypedEventEmitter, bufferToString, stringToBuffer } from "@fluid-internal/client-utils";
|
|
7
|
+
import { AttachState, ICriticalContainerError } from "@fluidframework/container-definitions";
|
|
8
|
+
import {
|
|
9
|
+
IContainerRuntime,
|
|
10
|
+
IContainerRuntimeEvents,
|
|
11
|
+
} from "@fluidframework/container-runtime-definitions/internal";
|
|
7
12
|
import { IFluidHandle, IFluidHandleContext } from "@fluidframework/core-interfaces";
|
|
8
|
-
import {
|
|
13
|
+
import { assert, Deferred } from "@fluidframework/core-utils/internal";
|
|
14
|
+
import { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
|
|
15
|
+
import { canRetryOnError, runWithRetry } from "@fluidframework/driver-utils/internal";
|
|
9
16
|
import {
|
|
10
17
|
ICreateBlobResponse,
|
|
11
18
|
ISequencedDocumentMessage,
|
|
12
19
|
ISnapshotTree,
|
|
13
20
|
} from "@fluidframework/protocol-definitions";
|
|
14
21
|
import {
|
|
22
|
+
IGarbageCollectionData,
|
|
23
|
+
ISummaryTreeWithStats,
|
|
24
|
+
ITelemetryContext,
|
|
25
|
+
} from "@fluidframework/runtime-definitions";
|
|
26
|
+
import {
|
|
27
|
+
SummaryTreeBuilder,
|
|
15
28
|
createResponseError,
|
|
16
29
|
generateHandleContextPath,
|
|
17
30
|
responseToException,
|
|
18
|
-
|
|
19
|
-
} from "@fluidframework/runtime-utils";
|
|
20
|
-
import { assert, Deferred } from "@fluidframework/core-utils";
|
|
21
|
-
import { bufferToString, stringToBuffer, TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
31
|
+
} from "@fluidframework/runtime-utils/internal";
|
|
22
32
|
import {
|
|
23
|
-
IContainerRuntime,
|
|
24
|
-
IContainerRuntimeEvents,
|
|
25
|
-
} from "@fluidframework/container-runtime-definitions";
|
|
26
|
-
import { AttachState, ICriticalContainerError } from "@fluidframework/container-definitions";
|
|
27
|
-
import {
|
|
28
|
-
createChildMonitoringContext,
|
|
29
33
|
GenericError,
|
|
30
34
|
LoggingError,
|
|
31
35
|
MonitoringContext,
|
|
32
36
|
PerformanceEvent,
|
|
37
|
+
createChildMonitoringContext,
|
|
33
38
|
wrapError,
|
|
34
|
-
} from "@fluidframework/telemetry-utils";
|
|
35
|
-
import {
|
|
36
|
-
IGarbageCollectionData,
|
|
37
|
-
ISummaryTreeWithStats,
|
|
38
|
-
ITelemetryContext,
|
|
39
|
-
} from "@fluidframework/runtime-definitions";
|
|
39
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
40
|
+
import { v4 as uuid } from "uuid";
|
|
40
41
|
|
|
41
|
-
import { canRetryOnError, runWithRetry } from "@fluidframework/driver-utils";
|
|
42
42
|
import { IBlobMetadata } from "./metadata.js";
|
|
43
43
|
|
|
44
44
|
/**
|
|
@@ -103,7 +103,6 @@ type ICreateBlobResponseWithTTL = ICreateBlobResponse & Partial<Record<"minTTLIn
|
|
|
103
103
|
|
|
104
104
|
interface PendingBlob {
|
|
105
105
|
blob: ArrayBufferLike;
|
|
106
|
-
uploading?: boolean;
|
|
107
106
|
opsent?: boolean;
|
|
108
107
|
storageId?: string;
|
|
109
108
|
handleP: Deferred<BlobHandle>;
|
|
@@ -113,7 +112,7 @@ interface PendingBlob {
|
|
|
113
112
|
attached?: boolean;
|
|
114
113
|
acked?: boolean;
|
|
115
114
|
abortSignal?: AbortSignal;
|
|
116
|
-
|
|
115
|
+
stashedUpload?: boolean;
|
|
117
116
|
}
|
|
118
117
|
|
|
119
118
|
export interface IPendingBlobs {
|
|
@@ -122,7 +121,6 @@ export interface IPendingBlobs {
|
|
|
122
121
|
storageId?: string;
|
|
123
122
|
uploadTime?: number;
|
|
124
123
|
minTTLInSeconds?: number;
|
|
125
|
-
attached?: boolean;
|
|
126
124
|
acked?: boolean;
|
|
127
125
|
};
|
|
128
126
|
}
|
|
@@ -131,6 +129,16 @@ export interface IBlobManagerEvents {
|
|
|
131
129
|
(event: "noPendingBlobs", listener: () => void);
|
|
132
130
|
}
|
|
133
131
|
|
|
132
|
+
const stashedPendingBlobOverrides: Pick<
|
|
133
|
+
PendingBlob,
|
|
134
|
+
"stashedUpload" | "storageId" | "minTTLInSeconds" | "uploadTime"
|
|
135
|
+
> = {
|
|
136
|
+
stashedUpload: true,
|
|
137
|
+
storageId: undefined,
|
|
138
|
+
minTTLInSeconds: undefined,
|
|
139
|
+
uploadTime: undefined,
|
|
140
|
+
} as const;
|
|
141
|
+
|
|
134
142
|
export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
135
143
|
public static readonly basePath = "_blobs";
|
|
136
144
|
private static readonly redirectTableBlobName = ".redirectTable";
|
|
@@ -168,10 +176,21 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
168
176
|
private readonly sendBlobAttachOp: (localId: string, storageId?: string) => void;
|
|
169
177
|
private stopAttaching: boolean = false;
|
|
170
178
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
179
|
+
private readonly routeContext: IFluidHandleContext;
|
|
180
|
+
private readonly getStorage: () => IDocumentStorageService;
|
|
181
|
+
// Called when a blob node is requested. blobPath is the path of the blob's node in GC's graph.
|
|
182
|
+
// blobPath's format - `/<BlobManager.basePath>/<blobId>`.
|
|
183
|
+
private readonly blobRequested: (blobPath: string) => void;
|
|
184
|
+
// Called to check if a blob has been deleted by GC.
|
|
185
|
+
// blobPath's format - `/<BlobManager.basePath>/<blobId>`.
|
|
186
|
+
private readonly isBlobDeleted: (blobPath: string) => boolean;
|
|
187
|
+
private readonly runtime: IBlobManagerRuntime;
|
|
188
|
+
private readonly closeContainer: (error?: ICriticalContainerError) => void;
|
|
189
|
+
|
|
190
|
+
constructor(props: {
|
|
191
|
+
readonly routeContext: IFluidHandleContext;
|
|
192
|
+
snapshot: IBlobManagerLoadInfo;
|
|
193
|
+
readonly getStorage: () => IDocumentStorageService;
|
|
175
194
|
/**
|
|
176
195
|
* Submit a BlobAttach op. When a blob is uploaded, there is a short grace period before which the blob is
|
|
177
196
|
* deleted. The BlobAttach op notifies the server that blob is in use. The server will then not delete the
|
|
@@ -182,18 +201,36 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
182
201
|
* knowledge of which they cannot request the blob from storage. It's important that this op is sequenced
|
|
183
202
|
* before any ops that reference the local ID, otherwise, an invalid handle could be added to the document.
|
|
184
203
|
*/
|
|
185
|
-
sendBlobAttachOp: (localId: string, storageId?: string) => void
|
|
204
|
+
sendBlobAttachOp: (localId: string, storageId?: string) => void;
|
|
186
205
|
// Called when a blob node is requested. blobPath is the path of the blob's node in GC's graph.
|
|
187
206
|
// blobPath's format - `/<BlobManager.basePath>/<blobId>`.
|
|
188
|
-
|
|
207
|
+
readonly blobRequested: (blobPath: string) => void;
|
|
189
208
|
// Called to check if a blob has been deleted by GC.
|
|
190
209
|
// blobPath's format - `/<BlobManager.basePath>/<blobId>`.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
stashedBlobs: IPendingBlobs
|
|
194
|
-
|
|
195
|
-
) {
|
|
210
|
+
readonly isBlobDeleted: (blobPath: string) => boolean;
|
|
211
|
+
readonly runtime: IBlobManagerRuntime;
|
|
212
|
+
stashedBlobs: IPendingBlobs | undefined;
|
|
213
|
+
readonly closeContainer: (error?: ICriticalContainerError) => void;
|
|
214
|
+
}) {
|
|
196
215
|
super();
|
|
216
|
+
const {
|
|
217
|
+
routeContext,
|
|
218
|
+
snapshot,
|
|
219
|
+
getStorage,
|
|
220
|
+
sendBlobAttachOp,
|
|
221
|
+
blobRequested,
|
|
222
|
+
isBlobDeleted,
|
|
223
|
+
runtime,
|
|
224
|
+
stashedBlobs,
|
|
225
|
+
closeContainer,
|
|
226
|
+
} = props;
|
|
227
|
+
this.routeContext = routeContext;
|
|
228
|
+
this.getStorage = getStorage;
|
|
229
|
+
this.blobRequested = blobRequested;
|
|
230
|
+
this.isBlobDeleted = isBlobDeleted;
|
|
231
|
+
this.runtime = runtime;
|
|
232
|
+
this.closeContainer = closeContainer;
|
|
233
|
+
|
|
197
234
|
this.mc = createChildMonitoringContext({
|
|
198
235
|
logger: this.runtime.logger,
|
|
199
236
|
namespace: "BlobManager",
|
|
@@ -202,39 +239,34 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
202
239
|
this.redirectTable = this.load(snapshot);
|
|
203
240
|
|
|
204
241
|
// Begin uploading stashed blobs from previous container instance
|
|
205
|
-
Object.entries(stashedBlobs).forEach(([localId, entry]) => {
|
|
242
|
+
Object.entries(stashedBlobs ?? {}).forEach(([localId, entry]) => {
|
|
243
|
+
const { acked, storageId, minTTLInSeconds, uploadTime } = entry;
|
|
206
244
|
const blob = stringToBuffer(entry.blob, "base64");
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
245
|
+
const pendingEntry: PendingBlob = {
|
|
246
|
+
blob,
|
|
247
|
+
opsent: true,
|
|
248
|
+
handleP: new Deferred(),
|
|
249
|
+
storageId,
|
|
250
|
+
uploadP: undefined,
|
|
251
|
+
uploadTime,
|
|
252
|
+
minTTLInSeconds,
|
|
253
|
+
attached: true,
|
|
254
|
+
acked,
|
|
255
|
+
};
|
|
256
|
+
this.pendingBlobs.set(localId, pendingEntry);
|
|
257
|
+
|
|
258
|
+
if (storageId !== undefined && minTTLInSeconds && uploadTime) {
|
|
259
|
+
const timeLapseSinceLocalUpload = (Date.now() - uploadTime) / 1000;
|
|
212
260
|
// stashed entries with more than half-life in storage will not be reuploaded
|
|
213
|
-
if (
|
|
214
|
-
this.pendingBlobs.set(localId, {
|
|
215
|
-
blob,
|
|
216
|
-
uploading: false,
|
|
217
|
-
opsent: true,
|
|
218
|
-
handleP: new Deferred(),
|
|
219
|
-
storageId,
|
|
220
|
-
uploadP: undefined,
|
|
221
|
-
uploadTime: entry.uploadTime,
|
|
222
|
-
minTTLInSeconds: entry.minTTLInSeconds,
|
|
223
|
-
attached,
|
|
224
|
-
acked,
|
|
225
|
-
});
|
|
261
|
+
if (minTTLInSeconds - timeLapseSinceLocalUpload > minTTLInSeconds / 2) {
|
|
226
262
|
return;
|
|
227
263
|
}
|
|
228
264
|
}
|
|
265
|
+
|
|
229
266
|
this.pendingBlobs.set(localId, {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
handleP: new Deferred(),
|
|
267
|
+
...pendingEntry,
|
|
268
|
+
...stashedPendingBlobOverrides,
|
|
233
269
|
uploadP: this.uploadBlob(localId, blob),
|
|
234
|
-
attached,
|
|
235
|
-
acked,
|
|
236
|
-
opsent: true,
|
|
237
|
-
pendingStashed: true,
|
|
238
270
|
});
|
|
239
271
|
});
|
|
240
272
|
|
|
@@ -296,16 +328,19 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
296
328
|
});
|
|
297
329
|
}
|
|
298
330
|
|
|
299
|
-
public
|
|
300
|
-
return Array.from(this.pendingBlobs.values()).some((e) => e.
|
|
331
|
+
public hasPendingStashedUploads(): boolean {
|
|
332
|
+
return Array.from(this.pendingBlobs.values()).some((e) => e.stashedUpload === true);
|
|
301
333
|
}
|
|
302
334
|
/**
|
|
303
335
|
* Upload blobs added while offline. This must be completed before connecting and resubmitting ops.
|
|
304
336
|
*/
|
|
305
|
-
public async
|
|
337
|
+
public async trackPendingStashedUploads(): Promise<void> {
|
|
306
338
|
const pendingUploads = Array.from(this.pendingBlobs.values())
|
|
307
|
-
.filter((e) => e.
|
|
339
|
+
.filter((e) => e.stashedUpload === true)
|
|
308
340
|
.map(async (e) => e.uploadP);
|
|
341
|
+
if (pendingUploads.length === 0) {
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
309
344
|
await PerformanceEvent.timedExecAsync(
|
|
310
345
|
this.mc.logger,
|
|
311
346
|
{
|
|
@@ -432,7 +467,6 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
432
467
|
const localId = uuid();
|
|
433
468
|
const pendingEntry: PendingBlob = {
|
|
434
469
|
blob,
|
|
435
|
-
uploading: true,
|
|
436
470
|
handleP: new Deferred(),
|
|
437
471
|
uploadP: this.uploadBlob(localId, blob),
|
|
438
472
|
attached: false,
|
|
@@ -525,9 +559,10 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
525
559
|
return;
|
|
526
560
|
}
|
|
527
561
|
assert(
|
|
528
|
-
entry.
|
|
562
|
+
entry.storageId === undefined,
|
|
529
563
|
0x386 /* Must have pending blob entry for uploaded blob */,
|
|
530
564
|
);
|
|
565
|
+
entry.stashedUpload = undefined;
|
|
531
566
|
entry.storageId = response.id;
|
|
532
567
|
entry.uploadTime = Date.now();
|
|
533
568
|
entry.minTTLInSeconds = response.minTTLInSeconds;
|
|
@@ -590,9 +625,6 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
590
625
|
this.deletePendingBlob(localId);
|
|
591
626
|
return;
|
|
592
627
|
}
|
|
593
|
-
if (pendingEntry?.pendingStashed) {
|
|
594
|
-
pendingEntry.pendingStashed = false;
|
|
595
|
-
}
|
|
596
628
|
}
|
|
597
629
|
assert(blobId !== undefined, 0x12a /* "Missing blob id on metadata" */);
|
|
598
630
|
|
|
@@ -726,14 +758,6 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
726
758
|
return gcData;
|
|
727
759
|
}
|
|
728
760
|
|
|
729
|
-
/**
|
|
730
|
-
* This is called to update blobs whose routes are unused. The unused blobs are deleted.
|
|
731
|
-
* @param unusedRoutes - The routes of the blob nodes that are unused. These routes will be based off of local ids.
|
|
732
|
-
*/
|
|
733
|
-
public updateUnusedRoutes(unusedRoutes: readonly string[]): void {
|
|
734
|
-
this.deleteBlobsFromRedirectTable(unusedRoutes);
|
|
735
|
-
}
|
|
736
|
-
|
|
737
761
|
/**
|
|
738
762
|
* Delete attachment blobs that are sweep ready.
|
|
739
763
|
* @param sweepReadyBlobRoutes - The routes of blobs that are sweep ready and should be deleted. These routes will
|
|
@@ -938,7 +962,6 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
938
962
|
blobs[id] = {
|
|
939
963
|
blob: bufferToString(entry.blob, "base64"),
|
|
940
964
|
storageId: entry.storageId,
|
|
941
|
-
attached: entry.attached,
|
|
942
965
|
acked: entry.acked,
|
|
943
966
|
minTTLInSeconds: entry.minTTLInSeconds,
|
|
944
967
|
uploadTime: entry.uploadTime,
|