@fluidframework/odsp-driver 2.0.0-dev-rc.1.0.0.232845 → 2.0.0-dev-rc.2.0.0.246488
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +18 -3
- package/{.mocharc.js → .mocharc.cjs} +1 -1
- package/CHANGELOG.md +44 -0
- package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
- package/api-extractor-lint.json +1 -1
- package/api-extractor.json +1 -1
- package/api-report/odsp-driver.api.md +11 -12
- package/dist/ReadBufferUtils.d.ts.map +1 -1
- package/dist/ReadBufferUtils.js.map +1 -1
- package/dist/WriteBufferUtils.d.ts +1 -1
- package/dist/WriteBufferUtils.d.ts.map +1 -1
- package/dist/WriteBufferUtils.js +12 -12
- package/dist/WriteBufferUtils.js.map +1 -1
- package/dist/checkUrl.d.ts.map +1 -1
- package/dist/checkUrl.js +5 -3
- package/dist/checkUrl.js.map +1 -1
- package/dist/compactSnapshotParser.d.ts.map +1 -1
- package/dist/compactSnapshotParser.js +87 -69
- package/dist/compactSnapshotParser.js.map +1 -1
- package/dist/compactSnapshotWriter.d.ts.map +1 -1
- package/dist/compactSnapshotWriter.js +25 -19
- package/dist/compactSnapshotWriter.js.map +1 -1
- package/dist/contracts.d.ts +10 -4
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/createFile.d.ts +3 -3
- package/dist/createFile.d.ts.map +1 -1
- package/dist/createFile.js +30 -27
- package/dist/createFile.js.map +1 -1
- package/dist/createNewContainerOnExistingFile.d.ts +2 -2
- package/dist/createNewContainerOnExistingFile.d.ts.map +1 -1
- package/dist/createNewContainerOnExistingFile.js +14 -14
- package/dist/createNewContainerOnExistingFile.js.map +1 -1
- package/dist/createNewModule.d.ts +2 -2
- package/dist/createNewModule.d.ts.map +1 -1
- package/dist/createNewModule.js +4 -4
- package/dist/createNewModule.js.map +1 -1
- package/dist/createNewUtils.d.ts +2 -2
- package/dist/createNewUtils.d.ts.map +1 -1
- package/dist/createNewUtils.js +12 -8
- package/dist/createNewUtils.js.map +1 -1
- package/dist/createOdspCreateContainerRequest.d.ts.map +1 -1
- package/dist/createOdspCreateContainerRequest.js +6 -2
- package/dist/createOdspCreateContainerRequest.js.map +1 -1
- package/dist/createOdspUrl.d.ts +1 -1
- package/dist/createOdspUrl.d.ts.map +1 -1
- package/dist/createOdspUrl.js.map +1 -1
- package/dist/epochTracker.d.ts +10 -9
- package/dist/epochTracker.d.ts.map +1 -1
- package/dist/epochTracker.js +66 -43
- package/dist/epochTracker.js.map +1 -1
- package/dist/fetchSnapshot.d.ts +11 -8
- package/dist/fetchSnapshot.d.ts.map +1 -1
- package/dist/fetchSnapshot.js +79 -58
- package/dist/fetchSnapshot.js.map +1 -1
- package/dist/getFileLink.d.ts.map +1 -1
- package/dist/getFileLink.js +24 -17
- package/dist/getFileLink.js.map +1 -1
- package/dist/getQueryString.d.ts.map +1 -1
- package/dist/getQueryString.js +6 -0
- package/dist/getQueryString.js.map +1 -1
- package/dist/index.d.ts +19 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -44
- package/dist/index.js.map +1 -1
- package/dist/localOdspDriver/localOdspDocumentService.d.ts +1 -1
- package/dist/localOdspDriver/localOdspDocumentService.d.ts.map +1 -1
- package/dist/localOdspDriver/localOdspDocumentService.js +5 -5
- package/dist/localOdspDriver/localOdspDocumentService.js.map +1 -1
- package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts +8 -6
- package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +1 -1
- package/dist/localOdspDriver/localOdspDocumentServiceFactory.js +10 -9
- package/dist/localOdspDriver/localOdspDocumentServiceFactory.js.map +1 -1
- package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts +1 -1
- package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +1 -1
- package/dist/localOdspDriver/localOdspDocumentStorageManager.js +6 -6
- package/dist/localOdspDriver/localOdspDocumentStorageManager.js.map +1 -1
- package/dist/odsp-driver-alpha.d.ts +27 -12
- package/dist/odsp-driver-beta.d.ts +1 -2
- package/dist/odsp-driver-public.d.ts +1 -2
- package/dist/odsp-driver-untrimmed.d.ts +29 -12
- package/dist/odspCache.d.ts +3 -3
- package/dist/odspCache.d.ts.map +1 -1
- package/dist/odspCache.js +3 -4
- package/dist/odspCache.js.map +1 -1
- package/dist/odspDelayLoadedDeltaStream.d.ts +7 -5
- package/dist/odspDelayLoadedDeltaStream.d.ts.map +1 -1
- package/dist/odspDelayLoadedDeltaStream.js +41 -28
- package/dist/odspDelayLoadedDeltaStream.js.map +1 -1
- package/dist/odspDeltaStorageService.d.ts +7 -7
- package/dist/odspDeltaStorageService.d.ts.map +1 -1
- package/dist/odspDeltaStorageService.js +5 -5
- package/dist/odspDeltaStorageService.js.map +1 -1
- package/dist/odspDocumentDeltaConnection.d.ts +1 -1
- package/dist/odspDocumentDeltaConnection.d.ts.map +1 -1
- package/dist/odspDocumentDeltaConnection.js +41 -23
- package/dist/odspDocumentDeltaConnection.js.map +1 -1
- package/dist/odspDocumentService.d.ts +6 -4
- package/dist/odspDocumentService.d.ts.map +1 -1
- package/dist/odspDocumentService.js +19 -16
- package/dist/odspDocumentService.js.map +1 -1
- package/dist/odspDocumentServiceFactory.d.ts +6 -1
- package/dist/odspDocumentServiceFactory.d.ts.map +1 -1
- package/dist/odspDocumentServiceFactory.js +9 -4
- package/dist/odspDocumentServiceFactory.js.map +1 -1
- package/dist/odspDocumentServiceFactoryCore.d.ts +4 -4
- package/dist/odspDocumentServiceFactoryCore.d.ts.map +1 -1
- package/dist/odspDocumentServiceFactoryCore.js +26 -22
- package/dist/odspDocumentServiceFactoryCore.js.map +1 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts +1 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.js +2 -2
- package/dist/odspDocumentServiceFactoryWithCodeSplit.js.map +1 -1
- package/dist/odspDocumentStorageManager.d.ts +15 -9
- package/dist/odspDocumentStorageManager.d.ts.map +1 -1
- package/dist/odspDocumentStorageManager.js +219 -181
- package/dist/odspDocumentStorageManager.js.map +1 -1
- package/dist/odspDocumentStorageServiceBase.d.ts +2 -4
- package/dist/odspDocumentStorageServiceBase.d.ts.map +1 -1
- package/dist/odspDocumentStorageServiceBase.js +32 -29
- package/dist/odspDocumentStorageServiceBase.js.map +1 -1
- package/dist/odspDriverUrlResolver.d.ts +5 -1
- package/dist/odspDriverUrlResolver.d.ts.map +1 -1
- package/dist/odspDriverUrlResolver.js +27 -24
- package/dist/odspDriverUrlResolver.js.map +1 -1
- package/dist/odspDriverUrlResolverForShareLink.d.ts +17 -6
- package/dist/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
- package/dist/odspDriverUrlResolverForShareLink.js +49 -39
- package/dist/odspDriverUrlResolverForShareLink.js.map +1 -1
- package/dist/odspError.d.ts +1 -1
- package/dist/odspError.d.ts.map +1 -1
- package/dist/odspError.js +5 -5
- package/dist/odspError.js.map +1 -1
- package/dist/odspFluidFileLink.d.ts +1 -1
- package/dist/odspFluidFileLink.d.ts.map +1 -1
- package/dist/odspFluidFileLink.js +2 -2
- package/dist/odspFluidFileLink.js.map +1 -1
- package/dist/odspLocationRedirection.js +2 -2
- package/dist/odspLocationRedirection.js.map +1 -1
- package/dist/odspPublicUtils.d.ts +3 -0
- package/dist/odspPublicUtils.d.ts.map +1 -1
- package/dist/odspPublicUtils.js +3 -0
- package/dist/odspPublicUtils.js.map +1 -1
- package/dist/odspSnapshotParser.d.ts +1 -1
- package/dist/odspSnapshotParser.d.ts.map +1 -1
- package/dist/odspSnapshotParser.js +3 -2
- package/dist/odspSnapshotParser.js.map +1 -1
- package/dist/odspSummaryUploadManager.d.ts +1 -1
- package/dist/odspSummaryUploadManager.d.ts.map +1 -1
- package/dist/odspSummaryUploadManager.js +9 -6
- package/dist/odspSummaryUploadManager.js.map +1 -1
- package/dist/odspUrlHelper.d.ts.map +1 -1
- package/dist/odspUrlHelper.js +1 -2
- package/dist/odspUrlHelper.js.map +1 -1
- package/dist/odspUtils.d.ts +19 -7
- package/dist/odspUtils.d.ts.map +1 -1
- package/dist/odspUtils.js +61 -31
- package/dist/odspUtils.js.map +1 -1
- package/dist/opsCaching.d.ts +1 -1
- package/dist/opsCaching.d.ts.map +1 -1
- package/dist/opsCaching.js +2 -1
- package/dist/opsCaching.js.map +1 -1
- package/dist/package.json +3 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/prefetchLatestSnapshot.d.ts +2 -2
- package/dist/prefetchLatestSnapshot.d.ts.map +1 -1
- package/dist/prefetchLatestSnapshot.js +17 -12
- package/dist/prefetchLatestSnapshot.js.map +1 -1
- package/dist/retryErrorsStorageAdapter.d.ts +0 -1
- package/dist/retryErrorsStorageAdapter.d.ts.map +1 -1
- package/dist/retryErrorsStorageAdapter.js +2 -5
- package/dist/retryErrorsStorageAdapter.js.map +1 -1
- package/dist/retryUtils.d.ts.map +1 -1
- package/dist/retryUtils.js +6 -2
- package/dist/retryUtils.js.map +1 -1
- package/dist/socketModule.d.ts.map +1 -1
- package/dist/socketModule.js +2 -0
- package/dist/socketModule.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/vroom.d.ts +2 -2
- package/dist/vroom.d.ts.map +1 -1
- package/dist/vroom.js +5 -5
- package/dist/vroom.js.map +1 -1
- package/dist/zipItDataRepresentationUtils.d.ts +1 -1
- package/dist/zipItDataRepresentationUtils.d.ts.map +1 -1
- package/dist/zipItDataRepresentationUtils.js +15 -11
- package/dist/zipItDataRepresentationUtils.js.map +1 -1
- package/lib/{ReadBufferUtils.d.mts → ReadBufferUtils.d.ts} +1 -1
- package/lib/ReadBufferUtils.d.ts.map +1 -0
- package/lib/{ReadBufferUtils.mjs → ReadBufferUtils.js} +1 -1
- package/lib/ReadBufferUtils.js.map +1 -0
- package/lib/{WriteBufferUtils.d.mts → WriteBufferUtils.d.ts} +2 -2
- package/lib/WriteBufferUtils.d.ts.map +1 -0
- package/lib/{WriteBufferUtils.mjs → WriteBufferUtils.js} +2 -2
- package/lib/WriteBufferUtils.js.map +1 -0
- package/lib/{checkUrl.d.mts → checkUrl.d.ts} +1 -1
- package/lib/checkUrl.d.ts.map +1 -0
- package/lib/{checkUrl.mjs → checkUrl.js} +5 -3
- package/lib/checkUrl.js.map +1 -0
- package/lib/{compactSnapshotParser.d.mts → compactSnapshotParser.d.ts} +1 -1
- package/lib/compactSnapshotParser.d.ts.map +1 -0
- package/lib/{compactSnapshotParser.mjs → compactSnapshotParser.js} +61 -43
- package/lib/compactSnapshotParser.js.map +1 -0
- package/lib/{compactSnapshotWriter.d.mts → compactSnapshotWriter.d.ts} +1 -1
- package/lib/compactSnapshotWriter.d.ts.map +1 -0
- package/lib/{compactSnapshotWriter.mjs → compactSnapshotWriter.js} +13 -7
- package/lib/compactSnapshotWriter.js.map +1 -0
- package/lib/{constants.d.mts → constants.d.ts} +1 -1
- package/lib/constants.d.ts.map +1 -0
- package/lib/{constants.mjs → constants.js} +1 -1
- package/lib/constants.js.map +1 -0
- package/lib/{contracts.d.mts → contracts.d.ts} +11 -5
- package/lib/contracts.d.ts.map +1 -0
- package/lib/{contracts.mjs → contracts.js} +1 -1
- package/lib/contracts.js.map +1 -0
- package/lib/{contractsPublic.d.mts → contractsPublic.d.ts} +1 -1
- package/lib/contractsPublic.d.ts.map +1 -0
- package/lib/{contractsPublic.mjs → contractsPublic.js} +1 -1
- package/lib/contractsPublic.js.map +1 -0
- package/lib/{createFile.d.mts → createFile.d.ts} +4 -4
- package/lib/createFile.d.ts.map +1 -0
- package/lib/{createFile.mjs → createFile.js} +15 -12
- package/lib/createFile.js.map +1 -0
- package/lib/{createNewContainerOnExistingFile.d.mts → createNewContainerOnExistingFile.d.ts} +3 -3
- package/lib/createNewContainerOnExistingFile.d.ts.map +1 -0
- package/lib/{createNewContainerOnExistingFile.mjs → createNewContainerOnExistingFile.js} +7 -7
- package/lib/createNewContainerOnExistingFile.js.map +1 -0
- package/lib/{createNewModule.mjs → createNewModule.d.ts} +3 -3
- package/lib/createNewModule.d.ts.map +1 -0
- package/lib/{createNewModule.d.mts → createNewModule.js} +3 -3
- package/lib/createNewModule.js.map +1 -0
- package/lib/{createNewUtils.d.mts → createNewUtils.d.ts} +3 -3
- package/lib/createNewUtils.d.ts.map +1 -0
- package/lib/{createNewUtils.mjs → createNewUtils.js} +9 -5
- package/lib/createNewUtils.js.map +1 -0
- package/lib/{createOdspCreateContainerRequest.d.mts → createOdspCreateContainerRequest.d.ts} +5 -1
- package/lib/createOdspCreateContainerRequest.d.ts.map +1 -0
- package/lib/{createOdspCreateContainerRequest.mjs → createOdspCreateContainerRequest.js} +6 -2
- package/lib/createOdspCreateContainerRequest.js.map +1 -0
- package/lib/{createOdspUrl.d.mts → createOdspUrl.d.ts} +2 -2
- package/lib/createOdspUrl.d.ts.map +1 -0
- package/lib/{createOdspUrl.mjs → createOdspUrl.js} +1 -1
- package/lib/createOdspUrl.js.map +1 -0
- package/lib/{epochTracker.d.mts → epochTracker.d.ts} +11 -10
- package/lib/epochTracker.d.ts.map +1 -0
- package/lib/{epochTracker.mjs → epochTracker.js} +56 -33
- package/lib/epochTracker.js.map +1 -0
- package/lib/{fetch.d.mts → fetch.d.ts} +1 -1
- package/lib/fetch.d.ts.map +1 -0
- package/lib/{fetch.mjs → fetch.js} +1 -1
- package/lib/fetch.js.map +1 -0
- package/lib/{fetchSnapshot.d.mts → fetchSnapshot.d.ts} +12 -9
- package/lib/fetchSnapshot.d.ts.map +1 -0
- package/lib/{fetchSnapshot.mjs → fetchSnapshot.js} +61 -40
- package/lib/fetchSnapshot.js.map +1 -0
- package/lib/{getFileLink.d.mts → getFileLink.d.ts} +1 -1
- package/lib/getFileLink.d.ts.map +1 -0
- package/lib/{getFileLink.mjs → getFileLink.js} +14 -7
- package/lib/getFileLink.js.map +1 -0
- package/lib/{getQueryString.d.mts → getQueryString.d.ts} +5 -1
- package/lib/getQueryString.d.ts.map +1 -0
- package/lib/{getQueryString.mjs → getQueryString.js} +7 -1
- package/lib/getQueryString.js.map +1 -0
- package/lib/{getUrlAndHeadersWithAuth.d.mts → getUrlAndHeadersWithAuth.d.ts} +1 -1
- package/lib/getUrlAndHeadersWithAuth.d.ts.map +1 -0
- package/lib/{getUrlAndHeadersWithAuth.mjs → getUrlAndHeadersWithAuth.js} +1 -1
- package/lib/getUrlAndHeadersWithAuth.js.map +1 -0
- package/lib/{index.d.mts → index.d.ts} +20 -20
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +29 -0
- package/lib/index.js.map +1 -0
- package/lib/localOdspDriver/{localOdspDeltaStorageService.d.mts → localOdspDeltaStorageService.d.ts} +1 -1
- package/lib/localOdspDriver/localOdspDeltaStorageService.d.ts.map +1 -0
- package/lib/localOdspDriver/{localOdspDeltaStorageService.mjs → localOdspDeltaStorageService.js} +1 -1
- package/lib/localOdspDriver/localOdspDeltaStorageService.js.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentService.d.mts → localOdspDocumentService.d.ts} +2 -2
- package/lib/localOdspDriver/localOdspDocumentService.d.ts.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentService.mjs → localOdspDocumentService.js} +4 -4
- package/lib/localOdspDriver/localOdspDocumentService.js.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentServiceFactory.d.mts → localOdspDocumentServiceFactory.d.ts} +9 -7
- package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentServiceFactory.mjs → localOdspDocumentServiceFactory.js} +9 -8
- package/lib/localOdspDriver/localOdspDocumentServiceFactory.js.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentStorageManager.d.mts → localOdspDocumentStorageManager.d.ts} +2 -2
- package/lib/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentStorageManager.mjs → localOdspDocumentStorageManager.js} +4 -4
- package/lib/localOdspDriver/localOdspDocumentStorageManager.js.map +1 -0
- package/lib/{odsp-driver-alpha.d.mts → odsp-driver-alpha.d.ts} +27 -12
- package/lib/{odsp-driver-public.d.mts → odsp-driver-beta.d.ts} +1 -2
- package/lib/{odsp-driver-beta.d.mts → odsp-driver-public.d.ts} +1 -2
- package/lib/{odsp-driver-untrimmed.d.mts → odsp-driver-untrimmed.d.ts} +29 -12
- package/lib/{odspCache.d.mts → odspCache.d.ts} +8 -4
- package/lib/odspCache.d.ts.map +1 -0
- package/lib/{odspCache.mjs → odspCache.js} +6 -3
- package/lib/odspCache.js.map +1 -0
- package/lib/{odspDelayLoadedDeltaStream.d.mts → odspDelayLoadedDeltaStream.d.ts} +8 -6
- package/lib/odspDelayLoadedDeltaStream.d.ts.map +1 -0
- package/lib/{odspDelayLoadedDeltaStream.mjs → odspDelayLoadedDeltaStream.js} +33 -20
- package/lib/odspDelayLoadedDeltaStream.js.map +1 -0
- package/lib/{odspDeltaStorageService.d.mts → odspDeltaStorageService.d.ts} +8 -8
- package/lib/odspDeltaStorageService.d.ts.map +1 -0
- package/lib/{odspDeltaStorageService.mjs → odspDeltaStorageService.js} +5 -5
- package/lib/odspDeltaStorageService.js.map +1 -0
- package/lib/{odspDocumentDeltaConnection.d.mts → odspDocumentDeltaConnection.d.ts} +2 -2
- package/lib/odspDocumentDeltaConnection.d.ts.map +1 -0
- package/lib/{odspDocumentDeltaConnection.mjs → odspDocumentDeltaConnection.js} +34 -16
- package/lib/odspDocumentDeltaConnection.js.map +1 -0
- package/lib/{odspDocumentService.d.mts → odspDocumentService.d.ts} +7 -5
- package/lib/odspDocumentService.d.ts.map +1 -0
- package/lib/{odspDocumentService.mjs → odspDocumentService.js} +16 -11
- package/lib/odspDocumentService.js.map +1 -0
- package/lib/{odspDocumentServiceFactory.d.mts → odspDocumentServiceFactory.d.ts} +7 -2
- package/lib/odspDocumentServiceFactory.d.ts.map +1 -0
- package/lib/{odspDocumentServiceFactory.mjs → odspDocumentServiceFactory.js} +9 -3
- package/lib/odspDocumentServiceFactory.js.map +1 -0
- package/lib/{odspDocumentServiceFactoryCore.d.mts → odspDocumentServiceFactoryCore.d.ts} +5 -5
- package/lib/odspDocumentServiceFactoryCore.d.ts.map +1 -0
- package/lib/{odspDocumentServiceFactoryCore.mjs → odspDocumentServiceFactoryCore.js} +23 -17
- package/lib/odspDocumentServiceFactoryCore.js.map +1 -0
- package/lib/{odspDocumentServiceFactoryWithCodeSplit.d.mts → odspDocumentServiceFactoryWithCodeSplit.d.ts} +2 -2
- package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -0
- package/lib/{odspDocumentServiceFactoryWithCodeSplit.mjs → odspDocumentServiceFactoryWithCodeSplit.js} +2 -2
- package/lib/odspDocumentServiceFactoryWithCodeSplit.js.map +1 -0
- package/lib/{odspDocumentStorageManager.d.mts → odspDocumentStorageManager.d.ts} +16 -10
- package/lib/odspDocumentStorageManager.d.ts.map +1 -0
- package/lib/{odspDocumentStorageManager.mjs → odspDocumentStorageManager.js} +207 -167
- package/lib/odspDocumentStorageManager.js.map +1 -0
- package/lib/{odspDocumentStorageServiceBase.d.mts → odspDocumentStorageServiceBase.d.ts} +3 -5
- package/lib/odspDocumentStorageServiceBase.d.ts.map +1 -0
- package/lib/{odspDocumentStorageServiceBase.mjs → odspDocumentStorageServiceBase.js} +32 -29
- package/lib/odspDocumentStorageServiceBase.js.map +1 -0
- package/lib/{odspDriverUrlResolver.d.mts → odspDriverUrlResolver.d.ts} +6 -2
- package/lib/odspDriverUrlResolver.d.ts.map +1 -0
- package/lib/{odspDriverUrlResolver.mjs → odspDriverUrlResolver.js} +24 -17
- package/lib/odspDriverUrlResolver.js.map +1 -0
- package/lib/{odspDriverUrlResolverForShareLink.d.mts → odspDriverUrlResolverForShareLink.d.ts} +18 -7
- package/lib/odspDriverUrlResolverForShareLink.d.ts.map +1 -0
- package/lib/{odspDriverUrlResolverForShareLink.mjs → odspDriverUrlResolverForShareLink.js} +41 -27
- package/lib/odspDriverUrlResolverForShareLink.js.map +1 -0
- package/lib/{odspError.d.mts → odspError.d.ts} +2 -2
- package/lib/odspError.d.ts.map +1 -0
- package/lib/{odspError.mjs → odspError.js} +4 -4
- package/lib/odspError.js.map +1 -0
- package/lib/{odspFluidFileLink.d.mts → odspFluidFileLink.d.ts} +2 -2
- package/lib/odspFluidFileLink.d.ts.map +1 -0
- package/lib/{odspFluidFileLink.mjs → odspFluidFileLink.js} +2 -2
- package/lib/odspFluidFileLink.js.map +1 -0
- package/lib/{odspLocationRedirection.d.mts → odspLocationRedirection.d.ts} +1 -1
- package/lib/odspLocationRedirection.d.ts.map +1 -0
- package/lib/{odspLocationRedirection.mjs → odspLocationRedirection.js} +2 -2
- package/lib/odspLocationRedirection.js.map +1 -0
- package/lib/{odspPublicUtils.d.mts → odspPublicUtils.d.ts} +4 -1
- package/lib/odspPublicUtils.d.ts.map +1 -0
- package/lib/{odspPublicUtils.mjs → odspPublicUtils.js} +4 -1
- package/lib/odspPublicUtils.js.map +1 -0
- package/lib/{odspSnapshotParser.d.mts → odspSnapshotParser.d.ts} +2 -2
- package/lib/odspSnapshotParser.d.ts.map +1 -0
- package/lib/{odspSnapshotParser.mjs → odspSnapshotParser.js} +4 -3
- package/lib/odspSnapshotParser.js.map +1 -0
- package/lib/{odspSummaryUploadManager.d.mts → odspSummaryUploadManager.d.ts} +2 -2
- package/lib/odspSummaryUploadManager.d.ts.map +1 -0
- package/lib/{odspSummaryUploadManager.mjs → odspSummaryUploadManager.js} +8 -5
- package/lib/odspSummaryUploadManager.js.map +1 -0
- package/lib/{odspUrlHelper.d.mts → odspUrlHelper.d.ts} +1 -1
- package/lib/odspUrlHelper.d.ts.map +1 -0
- package/lib/{odspUrlHelper.mjs → odspUrlHelper.js} +2 -3
- package/lib/odspUrlHelper.js.map +1 -0
- package/lib/{odspUtils.d.mts → odspUtils.d.ts} +20 -8
- package/lib/odspUtils.d.ts.map +1 -0
- package/lib/{odspUtils.mjs → odspUtils.js} +45 -17
- package/lib/odspUtils.js.map +1 -0
- package/lib/{opsCaching.d.mts → opsCaching.d.ts} +2 -2
- package/lib/opsCaching.d.ts.map +1 -0
- package/lib/{opsCaching.mjs → opsCaching.js} +3 -2
- package/lib/opsCaching.js.map +1 -0
- package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
- package/lib/packageVersion.d.ts.map +1 -0
- package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
- package/lib/packageVersion.js.map +1 -0
- package/lib/{prefetchLatestSnapshot.d.mts → prefetchLatestSnapshot.d.ts} +3 -3
- package/lib/prefetchLatestSnapshot.d.ts.map +1 -0
- package/lib/{prefetchLatestSnapshot.mjs → prefetchLatestSnapshot.js} +16 -11
- package/lib/prefetchLatestSnapshot.js.map +1 -0
- package/lib/{retryErrorsStorageAdapter.d.mts → retryErrorsStorageAdapter.d.ts} +1 -2
- package/lib/retryErrorsStorageAdapter.d.ts.map +1 -0
- package/lib/{retryErrorsStorageAdapter.mjs → retryErrorsStorageAdapter.js} +2 -5
- package/lib/retryErrorsStorageAdapter.js.map +1 -0
- package/lib/{retryUtils.d.mts → retryUtils.d.ts} +1 -1
- package/lib/retryUtils.d.ts.map +1 -0
- package/lib/{retryUtils.mjs → retryUtils.js} +6 -2
- package/lib/retryUtils.js.map +1 -0
- package/lib/{socketModule.d.mts → socketModule.d.ts} +1 -1
- package/lib/socketModule.d.ts.map +1 -0
- package/lib/{socketModule.mjs → socketModule.js} +3 -1
- package/lib/socketModule.js.map +1 -0
- package/lib/test/buildOdspShareLinkReqParams.spec.js +25 -0
- package/lib/test/buildOdspShareLinkReqParams.spec.js.map +1 -0
- package/lib/test/createNewUtilsTests.spec.js +221 -0
- package/lib/test/createNewUtilsTests.spec.js.map +1 -0
- package/lib/test/deltaStorageService.spec.js +176 -0
- package/lib/test/deltaStorageService.spec.js.map +1 -0
- package/lib/test/epochTests.spec.js +340 -0
- package/lib/test/epochTests.spec.js.map +1 -0
- package/lib/test/epochTestsWithRedemption.spec.js +119 -0
- package/lib/test/epochTestsWithRedemption.spec.js.map +1 -0
- package/lib/test/fetchSnapshot.spec.js +412 -0
- package/lib/test/fetchSnapshot.spec.js.map +1 -0
- package/lib/test/getFileLink.spec.js +62 -0
- package/lib/test/getFileLink.spec.js.map +1 -0
- package/lib/test/getUrlAndHeadersWithAuth.spec.js +66 -0
- package/lib/test/getUrlAndHeadersWithAuth.spec.js.map +1 -0
- package/lib/test/getVersions.spec.js +284 -0
- package/lib/test/getVersions.spec.js.map +1 -0
- package/lib/test/joinSessionCacheTests.spec.js +53 -0
- package/lib/test/joinSessionCacheTests.spec.js.map +1 -0
- package/lib/test/joinSessionPeriodicCall.spec.js +158 -0
- package/lib/test/joinSessionPeriodicCall.spec.js.map +1 -0
- package/lib/test/jsonSnapshotFormatTests.spec.js +107 -0
- package/lib/test/jsonSnapshotFormatTests.spec.js.map +1 -0
- package/lib/test/localOdspDriver.spec.js +177 -0
- package/lib/test/localOdspDriver.spec.js.map +1 -0
- package/lib/test/mockFetch.js +61 -0
- package/lib/test/mockFetch.js.map +1 -0
- package/lib/test/odspCreateContainer.spec.js +116 -0
- package/lib/test/odspCreateContainer.spec.js.map +1 -0
- package/lib/test/odspDriverResolverTest.spec.js +289 -0
- package/lib/test/odspDriverResolverTest.spec.js.map +1 -0
- package/lib/test/odspDriverUrlResolverForShareLink.spec.js +287 -0
- package/lib/test/odspDriverUrlResolverForShareLink.spec.js.map +1 -0
- package/lib/test/odspError.spec.js +299 -0
- package/lib/test/odspError.spec.js.map +1 -0
- package/lib/test/opsCaching.spec.js +357 -0
- package/lib/test/opsCaching.spec.js.map +1 -0
- package/lib/test/prefetchSnapshotTests.spec.js +420 -0
- package/lib/test/prefetchSnapshotTests.spec.js.map +1 -0
- package/lib/test/snapshotFormatTests.spec.js +218 -0
- package/lib/test/snapshotFormatTests.spec.js.map +1 -0
- package/lib/test/socketTests/deltaConnectionUpdateTests.spec.js +152 -0
- package/lib/test/socketTests/deltaConnectionUpdateTests.spec.js.map +1 -0
- package/lib/test/socketTests/socketMock.js +109 -0
- package/lib/test/socketTests/socketMock.js.map +1 -0
- package/lib/test/socketTests/socketTests.spec.js +256 -0
- package/lib/test/socketTests/socketTests.spec.js.map +1 -0
- package/lib/test/tokenFetch.spec.js +39 -0
- package/lib/test/tokenFetch.spec.js.map +1 -0
- package/lib/test/types/validateOdspDriverPrevious.generated.js +96 -0
- package/lib/test/types/validateOdspDriverPrevious.generated.js.map +1 -0
- package/lib/test/zipItDataRepresentationTests.spec.js +207 -0
- package/lib/test/zipItDataRepresentationTests.spec.js.map +1 -0
- package/lib/{vroom.d.mts → vroom.d.ts} +3 -3
- package/lib/vroom.d.ts.map +1 -0
- package/lib/{vroom.mjs → vroom.js} +4 -4
- package/lib/vroom.js.map +1 -0
- package/lib/{zipItDataRepresentationUtils.d.mts → zipItDataRepresentationUtils.d.ts} +2 -2
- package/lib/zipItDataRepresentationUtils.d.ts.map +1 -0
- package/lib/{zipItDataRepresentationUtils.mjs → zipItDataRepresentationUtils.js} +17 -9
- package/lib/zipItDataRepresentationUtils.js.map +1 -0
- package/package.json +90 -31
- package/src/ReadBufferUtils.ts +7 -7
- package/src/WriteBufferUtils.ts +13 -9
- package/src/checkUrl.ts +4 -2
- package/src/compactSnapshotParser.ts +87 -52
- package/src/compactSnapshotWriter.ts +19 -12
- package/src/contracts.ts +16 -4
- package/src/createFile.ts +16 -13
- package/src/createNewContainerOnExistingFile.ts +8 -8
- package/src/createNewModule.ts +2 -2
- package/src/createNewUtils.ts +19 -9
- package/src/createOdspCreateContainerRequest.ts +2 -1
- package/src/createOdspUrl.ts +1 -1
- package/src/epochTracker.ts +90 -55
- package/src/fetchSnapshot.ts +104 -47
- package/src/getFileLink.ts +21 -13
- package/src/getQueryString.ts +3 -0
- package/src/index.ts +27 -19
- package/src/localOdspDriver/localOdspDocumentService.ts +3 -3
- package/src/localOdspDriver/localOdspDocumentServiceFactory.ts +12 -11
- package/src/localOdspDriver/localOdspDocumentStorageManager.ts +5 -5
- package/src/odspCache.ts +13 -9
- package/src/odspDelayLoadedDeltaStream.ts +54 -33
- package/src/odspDeltaStorageService.ts +17 -16
- package/src/odspDocumentDeltaConnection.ts +52 -34
- package/src/odspDocumentService.ts +23 -20
- package/src/odspDocumentServiceFactory.ts +7 -2
- package/src/odspDocumentServiceFactoryCore.ts +25 -18
- package/src/odspDocumentServiceFactoryWithCodeSplit.ts +1 -1
- package/src/odspDocumentStorageManager.ts +276 -216
- package/src/odspDocumentStorageServiceBase.ts +45 -43
- package/src/odspDriverUrlResolver.ts +39 -24
- package/src/odspDriverUrlResolverForShareLink.ts +51 -31
- package/src/odspError.ts +4 -4
- package/src/odspFluidFileLink.ts +3 -3
- package/src/odspLocationRedirection.ts +1 -1
- package/src/odspPublicUtils.ts +3 -0
- package/src/odspSnapshotParser.ts +4 -3
- package/src/odspSummaryUploadManager.ts +21 -9
- package/src/odspUrlHelper.ts +2 -3
- package/src/odspUtils.ts +73 -30
- package/src/opsCaching.ts +13 -12
- package/src/packageVersion.ts +1 -1
- package/src/prefetchLatestSnapshot.ts +24 -15
- package/src/retryErrorsStorageAdapter.ts +4 -8
- package/src/retryUtils.ts +6 -2
- package/src/socketModule.ts +2 -0
- package/src/vroom.ts +6 -6
- package/src/zipItDataRepresentationUtils.ts +63 -35
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +2 -5
- package/lib/ReadBufferUtils.d.mts.map +0 -1
- package/lib/ReadBufferUtils.mjs.map +0 -1
- package/lib/WriteBufferUtils.d.mts.map +0 -1
- package/lib/WriteBufferUtils.mjs.map +0 -1
- package/lib/checkUrl.d.mts.map +0 -1
- package/lib/checkUrl.mjs.map +0 -1
- package/lib/compactSnapshotParser.d.mts.map +0 -1
- package/lib/compactSnapshotParser.mjs.map +0 -1
- package/lib/compactSnapshotWriter.d.mts.map +0 -1
- package/lib/compactSnapshotWriter.mjs.map +0 -1
- package/lib/constants.d.mts.map +0 -1
- package/lib/constants.mjs.map +0 -1
- package/lib/contracts.d.mts.map +0 -1
- package/lib/contracts.mjs.map +0 -1
- package/lib/contractsPublic.d.mts.map +0 -1
- package/lib/contractsPublic.mjs.map +0 -1
- package/lib/createFile.d.mts.map +0 -1
- package/lib/createFile.mjs.map +0 -1
- package/lib/createNewContainerOnExistingFile.d.mts.map +0 -1
- package/lib/createNewContainerOnExistingFile.mjs.map +0 -1
- package/lib/createNewModule.d.mts.map +0 -1
- package/lib/createNewModule.mjs.map +0 -1
- package/lib/createNewUtils.d.mts.map +0 -1
- package/lib/createNewUtils.mjs.map +0 -1
- package/lib/createOdspCreateContainerRequest.d.mts.map +0 -1
- package/lib/createOdspCreateContainerRequest.mjs.map +0 -1
- package/lib/createOdspUrl.d.mts.map +0 -1
- package/lib/createOdspUrl.mjs.map +0 -1
- package/lib/epochTracker.d.mts.map +0 -1
- package/lib/epochTracker.mjs.map +0 -1
- package/lib/fetch.d.mts.map +0 -1
- package/lib/fetch.mjs.map +0 -1
- package/lib/fetchSnapshot.d.mts.map +0 -1
- package/lib/fetchSnapshot.mjs.map +0 -1
- package/lib/getFileLink.d.mts.map +0 -1
- package/lib/getFileLink.mjs.map +0 -1
- package/lib/getQueryString.d.mts.map +0 -1
- package/lib/getQueryString.mjs.map +0 -1
- package/lib/getUrlAndHeadersWithAuth.d.mts.map +0 -1
- package/lib/getUrlAndHeadersWithAuth.mjs.map +0 -1
- package/lib/index.d.mts.map +0 -1
- package/lib/index.mjs +0 -22
- package/lib/index.mjs.map +0 -1
- package/lib/localOdspDriver/localOdspDeltaStorageService.d.mts.map +0 -1
- package/lib/localOdspDriver/localOdspDeltaStorageService.mjs.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentService.d.mts.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentService.mjs.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.mts.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentServiceFactory.mjs.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentStorageManager.d.mts.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentStorageManager.mjs.map +0 -1
- package/lib/odspCache.d.mts.map +0 -1
- package/lib/odspCache.mjs.map +0 -1
- package/lib/odspDelayLoadedDeltaStream.d.mts.map +0 -1
- package/lib/odspDelayLoadedDeltaStream.mjs.map +0 -1
- package/lib/odspDeltaStorageService.d.mts.map +0 -1
- package/lib/odspDeltaStorageService.mjs.map +0 -1
- package/lib/odspDocumentDeltaConnection.d.mts.map +0 -1
- package/lib/odspDocumentDeltaConnection.mjs.map +0 -1
- package/lib/odspDocumentService.d.mts.map +0 -1
- package/lib/odspDocumentService.mjs.map +0 -1
- package/lib/odspDocumentServiceFactory.d.mts.map +0 -1
- package/lib/odspDocumentServiceFactory.mjs.map +0 -1
- package/lib/odspDocumentServiceFactoryCore.d.mts.map +0 -1
- package/lib/odspDocumentServiceFactoryCore.mjs.map +0 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.d.mts.map +0 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.mjs.map +0 -1
- package/lib/odspDocumentStorageManager.d.mts.map +0 -1
- package/lib/odspDocumentStorageManager.mjs.map +0 -1
- package/lib/odspDocumentStorageServiceBase.d.mts.map +0 -1
- package/lib/odspDocumentStorageServiceBase.mjs.map +0 -1
- package/lib/odspDriverUrlResolver.d.mts.map +0 -1
- package/lib/odspDriverUrlResolver.mjs.map +0 -1
- package/lib/odspDriverUrlResolverForShareLink.d.mts.map +0 -1
- package/lib/odspDriverUrlResolverForShareLink.mjs.map +0 -1
- package/lib/odspError.d.mts.map +0 -1
- package/lib/odspError.mjs.map +0 -1
- package/lib/odspFluidFileLink.d.mts.map +0 -1
- package/lib/odspFluidFileLink.mjs.map +0 -1
- package/lib/odspLocationRedirection.d.mts.map +0 -1
- package/lib/odspLocationRedirection.mjs.map +0 -1
- package/lib/odspPublicUtils.d.mts.map +0 -1
- package/lib/odspPublicUtils.mjs.map +0 -1
- package/lib/odspSnapshotParser.d.mts.map +0 -1
- package/lib/odspSnapshotParser.mjs.map +0 -1
- package/lib/odspSummaryUploadManager.d.mts.map +0 -1
- package/lib/odspSummaryUploadManager.mjs.map +0 -1
- package/lib/odspUrlHelper.d.mts.map +0 -1
- package/lib/odspUrlHelper.mjs.map +0 -1
- package/lib/odspUtils.d.mts.map +0 -1
- package/lib/odspUtils.mjs.map +0 -1
- package/lib/opsCaching.d.mts.map +0 -1
- package/lib/opsCaching.mjs.map +0 -1
- package/lib/packageVersion.d.mts.map +0 -1
- package/lib/packageVersion.mjs.map +0 -1
- package/lib/prefetchLatestSnapshot.d.mts.map +0 -1
- package/lib/prefetchLatestSnapshot.mjs.map +0 -1
- package/lib/retryErrorsStorageAdapter.d.mts.map +0 -1
- package/lib/retryErrorsStorageAdapter.mjs.map +0 -1
- package/lib/retryUtils.d.mts.map +0 -1
- package/lib/retryUtils.mjs.map +0 -1
- package/lib/socketModule.d.mts.map +0 -1
- package/lib/socketModule.mjs.map +0 -1
- package/lib/vroom.d.mts.map +0 -1
- package/lib/vroom.mjs.map +0 -1
- package/lib/zipItDataRepresentationUtils.d.mts.map +0 -1
- package/lib/zipItDataRepresentationUtils.mjs.map +0 -1
|
@@ -6,19 +6,21 @@
|
|
|
6
6
|
import { IDocumentService, IResolvedUrl } from "@fluidframework/driver-definitions";
|
|
7
7
|
import { UsageError } from "@fluidframework/driver-utils";
|
|
8
8
|
import { ISummaryTree } from "@fluidframework/protocol-definitions";
|
|
9
|
-
import { ITelemetryBaseLogger
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
9
|
+
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
10
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
11
|
+
import { createOdspLogger, getOdspResolvedUrl } from "../odspUtils.js";
|
|
12
|
+
import { ICacheAndTracker } from "../epochTracker.js";
|
|
13
|
+
import { OdspDocumentServiceFactoryCore } from "../odspDocumentServiceFactoryCore.js";
|
|
14
|
+
import { LocalOdspDocumentService } from "./localOdspDocumentService.js";
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Factory for creating sharepoint document service with a provided snapshot.
|
|
17
|
-
*
|
|
18
|
+
*
|
|
19
|
+
* @remarks Use if you don't want to connect to any kind of external/internal storages and want to provide
|
|
18
20
|
* content directly.
|
|
19
21
|
*/
|
|
20
22
|
export class LocalOdspDocumentServiceFactory extends OdspDocumentServiceFactoryCore {
|
|
21
|
-
private logger:
|
|
23
|
+
private readonly logger: ITelemetryLoggerExt = createOdspLogger();
|
|
22
24
|
|
|
23
25
|
constructor(private readonly localSnapshot: Uint8Array | string) {
|
|
24
26
|
super(
|
|
@@ -31,7 +33,7 @@ export class LocalOdspDocumentServiceFactory extends OdspDocumentServiceFactoryC
|
|
|
31
33
|
const toThrow = new UsageError(
|
|
32
34
|
`${unsupportedFuncName} is not supported by LocalOdspDocumentServiceFactory`,
|
|
33
35
|
);
|
|
34
|
-
this.logger
|
|
36
|
+
this.logger.sendErrorEvent({ eventName: "UnsupportedUsage" }, toThrow);
|
|
35
37
|
throw toThrow;
|
|
36
38
|
}
|
|
37
39
|
|
|
@@ -44,13 +46,13 @@ export class LocalOdspDocumentServiceFactory extends OdspDocumentServiceFactoryC
|
|
|
44
46
|
const toThrow = new UsageError(
|
|
45
47
|
'"createContainer" is not supported by LocalOdspDocumentServiceFactory',
|
|
46
48
|
);
|
|
47
|
-
|
|
49
|
+
this.logger.sendErrorEvent({ eventName: "UnsupportedUsage" }, toThrow);
|
|
48
50
|
throw toThrow;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
protected async createDocumentServiceCore(
|
|
52
54
|
resolvedUrl: IResolvedUrl,
|
|
53
|
-
odspLogger:
|
|
55
|
+
odspLogger: ITelemetryLoggerExt,
|
|
54
56
|
_cacheAndTrackerArg?: ICacheAndTracker,
|
|
55
57
|
_clientIsSummarizer?: boolean,
|
|
56
58
|
): Promise<IDocumentService> {
|
|
@@ -60,7 +62,6 @@ export class LocalOdspDocumentServiceFactory extends OdspDocumentServiceFactoryC
|
|
|
60
62
|
if (_clientIsSummarizer) {
|
|
61
63
|
throw new UsageError('Invalid usage. "_clientIsSummarizer" should not be provided');
|
|
62
64
|
}
|
|
63
|
-
this.logger = odspLogger;
|
|
64
65
|
return new LocalOdspDocumentService(
|
|
65
66
|
getOdspResolvedUrl(resolvedUrl),
|
|
66
67
|
odspLogger,
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
} from "@fluidframework/driver-definitions";
|
|
13
13
|
import { UsageError } from "@fluidframework/driver-utils";
|
|
14
14
|
import * as api from "@fluidframework/protocol-definitions";
|
|
15
|
-
import { OdspDocumentStorageServiceBase } from "../odspDocumentStorageServiceBase";
|
|
16
|
-
import { IOdspSnapshot } from "../contracts";
|
|
17
|
-
import { convertOdspSnapshotToSnapshotTreeAndBlobs } from "../odspSnapshotParser";
|
|
18
|
-
import { parseCompactSnapshotResponse } from "../compactSnapshotParser";
|
|
15
|
+
import { OdspDocumentStorageServiceBase } from "../odspDocumentStorageServiceBase.js";
|
|
16
|
+
import { IOdspSnapshot } from "../contracts.js";
|
|
17
|
+
import { convertOdspSnapshotToSnapshotTreeAndBlobs } from "../odspSnapshotParser.js";
|
|
18
|
+
import { parseCompactSnapshotResponse } from "../compactSnapshotParser.js";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* ODSP document storage service that works on a provided snapshot for all its processing.
|
|
@@ -51,7 +51,7 @@ export class LocalOdspDocumentStorageService extends OdspDocumentStorageServiceB
|
|
|
51
51
|
let snapshotContents: ISnapshot;
|
|
52
52
|
|
|
53
53
|
if (typeof this.localSnapshot === "string") {
|
|
54
|
-
const content: IOdspSnapshot = JSON.parse(this.localSnapshot);
|
|
54
|
+
const content: IOdspSnapshot = JSON.parse(this.localSnapshot) as IOdspSnapshot;
|
|
55
55
|
snapshotContents = convertOdspSnapshotToSnapshotTreeAndBlobs(content);
|
|
56
56
|
} else {
|
|
57
57
|
snapshotContents = parseCompactSnapshotResponse(this.localSnapshot, this.logger);
|
package/src/odspCache.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
+
|
|
5
6
|
import { PromiseCache } from "@fluidframework/core-utils";
|
|
6
7
|
import {
|
|
7
8
|
IOdspResolvedUrl,
|
|
@@ -19,7 +20,11 @@ import { ISnapshot } from "@fluidframework/driver-definitions";
|
|
|
19
20
|
* @alpha
|
|
20
21
|
*/
|
|
21
22
|
export interface IPersistedFileCache {
|
|
23
|
+
// TODO: use a stronger type
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
25
|
get(entry: IEntry): Promise<any>;
|
|
26
|
+
// TODO: use a stronger type
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
28
|
put(entry: IEntry, value: any): Promise<void>;
|
|
24
29
|
removeEntries(): Promise<void>;
|
|
25
30
|
}
|
|
@@ -29,19 +34,18 @@ export interface IPersistedFileCache {
|
|
|
29
34
|
* used if no persisted cache is provided by the host
|
|
30
35
|
*/
|
|
31
36
|
export class LocalPersistentCache implements IPersistedCache {
|
|
32
|
-
private readonly cache = new Map<string,
|
|
37
|
+
private readonly cache = new Map<string, unknown>();
|
|
33
38
|
// For every document id there will be a single expiration entry inspite of the number of cache entries.
|
|
34
39
|
private readonly docIdExpirationMap = new Map<string, ReturnType<typeof setTimeout>>();
|
|
35
40
|
|
|
36
41
|
public constructor(private readonly snapshotExpiryPolicy = 3600 * 1000) {}
|
|
37
42
|
|
|
38
|
-
async get(entry: ICacheEntry): Promise<
|
|
43
|
+
async get(entry: ICacheEntry): Promise<unknown> {
|
|
39
44
|
const key = getKeyForCacheEntry(entry);
|
|
40
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
41
45
|
return this.cache.get(key);
|
|
42
46
|
}
|
|
43
47
|
|
|
44
|
-
async put(entry: ICacheEntry, value:
|
|
48
|
+
async put(entry: ICacheEntry, value: unknown): Promise<void> {
|
|
45
49
|
const key = getKeyForCacheEntry(entry);
|
|
46
50
|
this.cache.set(key, value);
|
|
47
51
|
this.updateExpirationEntry(entry.file.docId);
|
|
@@ -51,9 +55,9 @@ export class LocalPersistentCache implements IPersistedCache {
|
|
|
51
55
|
this.removeDocIdEntriesFromCache(file.docId);
|
|
52
56
|
}
|
|
53
57
|
|
|
54
|
-
private removeDocIdEntriesFromCache(docId: string) {
|
|
58
|
+
private removeDocIdEntriesFromCache(docId: string): void[] {
|
|
55
59
|
this.removeExpirationEntry(docId);
|
|
56
|
-
return
|
|
60
|
+
return [...this.cache]
|
|
57
61
|
.filter(([cachekey]) => {
|
|
58
62
|
const docIdFromKey = cachekey.split("_");
|
|
59
63
|
if (docIdFromKey[0] === docId) {
|
|
@@ -65,7 +69,7 @@ export class LocalPersistentCache implements IPersistedCache {
|
|
|
65
69
|
});
|
|
66
70
|
}
|
|
67
71
|
|
|
68
|
-
private removeExpirationEntry(docId: string) {
|
|
72
|
+
private removeExpirationEntry(docId: string): void {
|
|
69
73
|
const timeout = this.docIdExpirationMap.get(docId);
|
|
70
74
|
if (timeout !== undefined) {
|
|
71
75
|
clearTimeout(timeout);
|
|
@@ -73,7 +77,7 @@ export class LocalPersistentCache implements IPersistedCache {
|
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
|
|
76
|
-
private updateExpirationEntry(docId: string) {
|
|
80
|
+
private updateExpirationEntry(docId: string): void {
|
|
77
81
|
this.removeExpirationEntry(docId);
|
|
78
82
|
this.docIdExpirationMap.set(
|
|
79
83
|
docId,
|
|
@@ -84,7 +88,7 @@ export class LocalPersistentCache implements IPersistedCache {
|
|
|
84
88
|
}
|
|
85
89
|
}
|
|
86
90
|
export class PromiseCacheWithOneHourSlidingExpiry<T> extends PromiseCache<string, T> {
|
|
87
|
-
constructor(removeOnError?: (
|
|
91
|
+
constructor(removeOnError?: (error: unknown) => boolean) {
|
|
88
92
|
super({ expiry: { policy: "sliding", durationMs: 3600000 }, removeOnError });
|
|
89
93
|
}
|
|
90
94
|
}
|
|
@@ -32,19 +32,20 @@ import {
|
|
|
32
32
|
InstrumentedStorageTokenFetcher,
|
|
33
33
|
ISocketStorageDiscovery,
|
|
34
34
|
OdspErrorTypes,
|
|
35
|
+
type IOdspError,
|
|
35
36
|
} from "@fluidframework/odsp-driver-definitions";
|
|
36
|
-
import { hasFacetCodes } from "@fluidframework/odsp-doclib-utils";
|
|
37
|
-
import { IOdspCache } from "./odspCache";
|
|
38
|
-
import { OdspDocumentDeltaConnection } from "./odspDocumentDeltaConnection";
|
|
37
|
+
import { hasFacetCodes } from "@fluidframework/odsp-doclib-utils/internal";
|
|
38
|
+
import { IOdspCache } from "./odspCache.js";
|
|
39
|
+
import { OdspDocumentDeltaConnection } from "./odspDocumentDeltaConnection.js";
|
|
39
40
|
import {
|
|
40
41
|
getJoinSessionCacheKey,
|
|
41
42
|
getWithRetryForTokenRefresh,
|
|
42
43
|
TokenFetchOptionsEx,
|
|
43
|
-
} from "./odspUtils";
|
|
44
|
-
import { fetchJoinSession } from "./vroom";
|
|
45
|
-
import { EpochTracker } from "./epochTracker";
|
|
46
|
-
import { pkgVersion as driverVersion } from "./packageVersion";
|
|
47
|
-
import { policyLabelsUpdatesSignalType } from "./contracts";
|
|
44
|
+
} from "./odspUtils.js";
|
|
45
|
+
import { fetchJoinSession } from "./vroom.js";
|
|
46
|
+
import { EpochTracker } from "./epochTracker.js";
|
|
47
|
+
import { pkgVersion as driverVersion } from "./packageVersion.js";
|
|
48
|
+
import { policyLabelsUpdatesSignalType } from "./contracts.js";
|
|
48
49
|
|
|
49
50
|
/**
|
|
50
51
|
* This OdspDelayLoadedDeltaStream is used by OdspDocumentService.ts to delay load the delta connection
|
|
@@ -111,9 +112,11 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
111
112
|
return this._relayServiceTenantAndSessionId;
|
|
112
113
|
}
|
|
113
114
|
|
|
114
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Annotate the given error indicating which connection step failed
|
|
117
|
+
*/
|
|
115
118
|
private annotateConnectionError(
|
|
116
|
-
error:
|
|
119
|
+
error: unknown,
|
|
117
120
|
failedConnectionStep: string,
|
|
118
121
|
separateTokenRequest: boolean,
|
|
119
122
|
): IFluidErrorBase {
|
|
@@ -141,10 +144,11 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
141
144
|
// websocket token or whether it is returned with joinSession response payload
|
|
142
145
|
const requestWebsocketTokenFromJoinSession = this.getWebsocketToken === undefined;
|
|
143
146
|
const websocketTokenPromise = requestWebsocketTokenFromJoinSession
|
|
144
|
-
?
|
|
147
|
+
? // eslint-disable-next-line unicorn/no-null
|
|
148
|
+
Promise.resolve(null)
|
|
145
149
|
: this.getWebsocketToken!(options);
|
|
146
150
|
|
|
147
|
-
const annotateAndRethrowConnectionError = (step: string) => (error:
|
|
151
|
+
const annotateAndRethrowConnectionError = (step: string) => (error: unknown) => {
|
|
148
152
|
throw this.annotateConnectionError(
|
|
149
153
|
error,
|
|
150
154
|
step,
|
|
@@ -162,6 +166,7 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
162
166
|
websocketTokenPromise.catch(annotateAndRethrowConnectionError("getWebsocketToken")),
|
|
163
167
|
]);
|
|
164
168
|
|
|
169
|
+
// eslint-disable-next-line unicorn/no-null
|
|
165
170
|
const finalWebsocketToken = websocketToken ?? websocketEndpoint.socketToken ?? null;
|
|
166
171
|
if (finalWebsocketToken === null) {
|
|
167
172
|
throw this.annotateConnectionError(
|
|
@@ -195,13 +200,14 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
195
200
|
this.signalHandler(connection.initialSignals);
|
|
196
201
|
// On disconnect with 401/403 error code, we can just clear the joinSession cache as we will again
|
|
197
202
|
// get the auth error on reconnecting and face latency.
|
|
198
|
-
connection.once("disconnect", (error:
|
|
203
|
+
connection.once("disconnect", (error: unknown) => {
|
|
199
204
|
// Clear the join session refresh timer so that it can be restarted on reconnection.
|
|
200
205
|
this.clearJoinSessionTimer();
|
|
201
206
|
if (
|
|
202
207
|
typeof error === "object" &&
|
|
203
208
|
error !== null &&
|
|
204
|
-
error.errorType ===
|
|
209
|
+
(error as Partial<IOdspError>).errorType ===
|
|
210
|
+
OdspErrorTypes.authorizationError
|
|
205
211
|
) {
|
|
206
212
|
this.cache.sessionJoinCache.remove(this.joinSessionKey);
|
|
207
213
|
}
|
|
@@ -231,9 +237,9 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
231
237
|
});
|
|
232
238
|
}
|
|
233
239
|
|
|
234
|
-
private readonly signalHandler = (signalsArg: ISignalMessage | ISignalMessage[]) => {
|
|
240
|
+
private readonly signalHandler = (signalsArg: ISignalMessage | ISignalMessage[]): void => {
|
|
235
241
|
const signals = Array.isArray(signalsArg) ? signalsArg : [signalsArg];
|
|
236
|
-
|
|
242
|
+
for (const signal of signals) {
|
|
237
243
|
// Make sure it is not for a specific client as `PolicyLabelsUpdate` is meant for all clients.
|
|
238
244
|
if (signal.clientId === null) {
|
|
239
245
|
// We could have some issues/irregularities in parsing signals, so put it in try/catch block
|
|
@@ -241,17 +247,19 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
241
247
|
let envelope: ISignalEnvelope | undefined;
|
|
242
248
|
try {
|
|
243
249
|
envelope = JSON.parse(signal.content as string) as ISignalEnvelope;
|
|
244
|
-
} catch
|
|
250
|
+
} catch {
|
|
251
|
+
// Drop error
|
|
252
|
+
}
|
|
245
253
|
if (envelope?.contents?.type === policyLabelsUpdatesSignalType) {
|
|
246
254
|
this.emitMetaDataUpdateEvent({
|
|
247
255
|
sensitivityLabelsInfo: JSON.stringify(envelope.contents.content),
|
|
248
256
|
});
|
|
249
257
|
}
|
|
250
258
|
}
|
|
251
|
-
}
|
|
259
|
+
}
|
|
252
260
|
};
|
|
253
261
|
|
|
254
|
-
private clearJoinSessionTimer() {
|
|
262
|
+
private clearJoinSessionTimer(): void {
|
|
255
263
|
if (this.joinSessionRefreshTimer !== undefined) {
|
|
256
264
|
clearTimeout(this.joinSessionRefreshTimer);
|
|
257
265
|
this.joinSessionRefreshTimer = undefined;
|
|
@@ -262,10 +270,13 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
262
270
|
delta: number,
|
|
263
271
|
requestSocketToken: boolean,
|
|
264
272
|
clientId: string | undefined,
|
|
265
|
-
) {
|
|
273
|
+
): Promise<void> {
|
|
266
274
|
if (this.joinSessionRefreshTimer !== undefined) {
|
|
267
275
|
this.clearJoinSessionTimer();
|
|
276
|
+
// TODO: use a stronger type
|
|
277
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
|
268
278
|
const originalStackTraceLimit = (Error as any).stackTraceLimit;
|
|
279
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
|
269
280
|
(Error as any).stackTraceLimit = 50;
|
|
270
281
|
this.mc.logger.sendTelemetryEvent(
|
|
271
282
|
{
|
|
@@ -273,6 +284,7 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
273
284
|
},
|
|
274
285
|
new Error("DuplicateJoinSessionRefresh"),
|
|
275
286
|
);
|
|
287
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
|
276
288
|
(Error as any).stackTraceLimit = originalStackTraceLimit;
|
|
277
289
|
}
|
|
278
290
|
|
|
@@ -300,7 +312,7 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
300
312
|
options: TokenFetchOptionsEx,
|
|
301
313
|
isRefreshingJoinSession: boolean,
|
|
302
314
|
clientId?: string,
|
|
303
|
-
) {
|
|
315
|
+
): Promise<ISocketStorageDiscovery> {
|
|
304
316
|
// If this call is to refresh the join session for the current connection but we are already disconnected in
|
|
305
317
|
// the meantime or disconnected and then reconnected then do not make the call. However, we should not have
|
|
306
318
|
// come here if that is the case because timer should have been disposed, but due to race condition with the
|
|
@@ -327,16 +339,16 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
327
339
|
requestSocketToken,
|
|
328
340
|
options,
|
|
329
341
|
isRefreshingJoinSession,
|
|
330
|
-
).catch((
|
|
331
|
-
if (hasFacetCodes(
|
|
332
|
-
for (const code of
|
|
342
|
+
).catch((error) => {
|
|
343
|
+
if (hasFacetCodes(error) && error.facetCodes !== undefined) {
|
|
344
|
+
for (const code of error.facetCodes) {
|
|
333
345
|
switch (code) {
|
|
334
346
|
case "sessionForbidden":
|
|
335
347
|
case "sessionForbiddenOnPreservedFiles":
|
|
336
348
|
case "sessionForbiddenOnModerationEnabledLibrary":
|
|
337
349
|
case "sessionForbiddenOnRequireCheckout":
|
|
338
350
|
case "sessionForbiddenOnCheckoutFile":
|
|
339
|
-
case "sessionForbiddenOnInvisibleMinorVersion":
|
|
351
|
+
case "sessionForbiddenOnInvisibleMinorVersion": {
|
|
340
352
|
// This document can only be opened in storage-only mode.
|
|
341
353
|
// DeltaManager will recognize this error
|
|
342
354
|
// and load without a delta stream connection.
|
|
@@ -346,12 +358,14 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
346
358
|
{ driverVersion },
|
|
347
359
|
code,
|
|
348
360
|
);
|
|
349
|
-
|
|
361
|
+
}
|
|
362
|
+
default: {
|
|
350
363
|
continue;
|
|
364
|
+
}
|
|
351
365
|
}
|
|
352
366
|
}
|
|
353
367
|
}
|
|
354
|
-
throw
|
|
368
|
+
throw error;
|
|
355
369
|
});
|
|
356
370
|
this._relayServiceTenantAndSessionId = `${response.tenantId}/${response.id}`;
|
|
357
371
|
return response;
|
|
@@ -365,7 +379,10 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
365
379
|
const disableJoinSessionRefresh = this.mc.config.getBoolean(
|
|
366
380
|
"Fluid.Driver.Odsp.disableJoinSessionRefresh",
|
|
367
381
|
);
|
|
368
|
-
const executeFetch = async ()
|
|
382
|
+
const executeFetch = async (): Promise<{
|
|
383
|
+
entryTime: number;
|
|
384
|
+
joinSessionResponse: ISocketStorageDiscovery;
|
|
385
|
+
}> => {
|
|
369
386
|
const joinSessionResponse = await fetchJoinSession(
|
|
370
387
|
this.odspResolvedUrl,
|
|
371
388
|
"opStream/joinSession",
|
|
@@ -391,7 +408,11 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
391
408
|
};
|
|
392
409
|
};
|
|
393
410
|
|
|
394
|
-
const getResponseAndRefreshAfterDeltaMs = async ()
|
|
411
|
+
const getResponseAndRefreshAfterDeltaMs = async (): Promise<{
|
|
412
|
+
refreshAfterDeltaMs: number;
|
|
413
|
+
entryTime: number;
|
|
414
|
+
joinSessionResponse: ISocketStorageDiscovery;
|
|
415
|
+
}> => {
|
|
395
416
|
const _response = await this.cache.sessionJoinCache.addOrGet(
|
|
396
417
|
this.joinSessionKey,
|
|
397
418
|
executeFetch,
|
|
@@ -448,13 +469,13 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
448
469
|
return response.joinSessionResponse;
|
|
449
470
|
}
|
|
450
471
|
|
|
451
|
-
private emitMetaDataUpdateEvent(metadata: Record<string, string>) {
|
|
472
|
+
private emitMetaDataUpdateEvent(metadata: Record<string, string>): void {
|
|
452
473
|
const label = JSON.parse(metadata.sensitivityLabelsInfo) as {
|
|
453
474
|
labels: unknown;
|
|
454
475
|
timestamp: number;
|
|
455
476
|
};
|
|
456
477
|
const time = label.timestamp;
|
|
457
|
-
assert(time > 0,
|
|
478
|
+
assert(time > 0, 0x8e0 /* time should be positive */);
|
|
458
479
|
if (time > this.labelUpdateTimestamp) {
|
|
459
480
|
this.labelUpdateTimestamp = time;
|
|
460
481
|
this.metadataUpdateHandler({
|
|
@@ -466,7 +487,7 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
466
487
|
private calculateJoinSessionRefreshDelta(
|
|
467
488
|
responseFetchTime: number,
|
|
468
489
|
refreshSessionDurationSeconds: number,
|
|
469
|
-
) {
|
|
490
|
+
): number {
|
|
470
491
|
// 30 seconds is buffer time to refresh the session.
|
|
471
492
|
return responseFetchTime + (refreshSessionDurationSeconds * 1000 - 30000) - Date.now();
|
|
472
493
|
}
|
|
@@ -512,7 +533,7 @@ export class OdspDelayLoadedDeltaStream {
|
|
|
512
533
|
return connection;
|
|
513
534
|
}
|
|
514
535
|
|
|
515
|
-
public dispose(error?:
|
|
536
|
+
public dispose(error?: unknown): void {
|
|
516
537
|
this.clearJoinSessionTimer();
|
|
517
538
|
this.currentConnection?.dispose();
|
|
518
539
|
this.currentConnection = undefined;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { v4 as uuid } from "uuid";
|
|
7
|
-
import {
|
|
7
|
+
import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
8
8
|
import { validateMessages } from "@fluidframework/driver-base";
|
|
9
9
|
import { ITelemetryLoggerExt, PerformanceEvent } from "@fluidframework/telemetry-utils";
|
|
10
10
|
import { assert } from "@fluidframework/core-utils";
|
|
@@ -13,12 +13,13 @@ import { InstrumentedStorageTokenFetcher } from "@fluidframework/odsp-driver-def
|
|
|
13
13
|
import {
|
|
14
14
|
IDeltasFetchResult,
|
|
15
15
|
IDocumentDeltaStorageService,
|
|
16
|
+
type IStream,
|
|
16
17
|
} from "@fluidframework/driver-definitions";
|
|
17
18
|
import { requestOps, streamObserver } from "@fluidframework/driver-utils";
|
|
18
|
-
import { IDeltaStorageGetResponse, ISequencedDeltaOpMessage } from "./contracts";
|
|
19
|
-
import { EpochTracker } from "./epochTracker";
|
|
20
|
-
import { getWithRetryForTokenRefresh } from "./odspUtils";
|
|
21
|
-
import { OdspDocumentStorageService } from "./odspDocumentStorageManager";
|
|
19
|
+
import { IDeltaStorageGetResponse, ISequencedDeltaOpMessage } from "./contracts.js";
|
|
20
|
+
import { EpochTracker } from "./epochTracker.js";
|
|
21
|
+
import { getWithRetryForTokenRefresh } from "./odspUtils.js";
|
|
22
|
+
import { OdspDocumentStorageService } from "./odspDocumentStorageManager.js";
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Provides access to the underlying delta storage on the server for sharepoint driver.
|
|
@@ -42,7 +43,7 @@ export class OdspDeltaStorageService {
|
|
|
42
43
|
public async get(
|
|
43
44
|
from: number,
|
|
44
45
|
to: number,
|
|
45
|
-
telemetryProps:
|
|
46
|
+
telemetryProps: ITelemetryBaseProperties,
|
|
46
47
|
scenarioName?: string,
|
|
47
48
|
): Promise<IDeltasFetchResult> {
|
|
48
49
|
return getWithRetryForTokenRefresh(async (options) => {
|
|
@@ -69,7 +70,7 @@ export class OdspDeltaStorageService {
|
|
|
69
70
|
|
|
70
71
|
postBody += `_post: 1\r\n`;
|
|
71
72
|
postBody += `\r\n--${formBoundary}--`;
|
|
72
|
-
const headers: { [index: string]:
|
|
73
|
+
const headers: { [index: string]: string } = {
|
|
73
74
|
"Content-Type": `multipart/form-data;boundary=${formBoundary}`,
|
|
74
75
|
};
|
|
75
76
|
|
|
@@ -105,7 +106,7 @@ export class OdspDeltaStorageService {
|
|
|
105
106
|
: (deltaStorageResponse.value as ISequencedDocumentMessage[]);
|
|
106
107
|
|
|
107
108
|
event.end({
|
|
108
|
-
headers: Object.keys(headers).length
|
|
109
|
+
headers: Object.keys(headers).length > 0 ? true : undefined,
|
|
109
110
|
length: messages.length,
|
|
110
111
|
...response.propsToLog,
|
|
111
112
|
});
|
|
@@ -118,7 +119,7 @@ export class OdspDeltaStorageService {
|
|
|
118
119
|
});
|
|
119
120
|
}
|
|
120
121
|
|
|
121
|
-
public buildUrl(from: number, to: number) {
|
|
122
|
+
public buildUrl(from: number, to: number): string {
|
|
122
123
|
const filter = encodeURIComponent(
|
|
123
124
|
`sequenceNumber ge ${from} and sequenceNumber le ${to - 1}`,
|
|
124
125
|
);
|
|
@@ -138,7 +139,7 @@ export class OdspDeltaStorageWithCache implements IDocumentDeltaStorageService {
|
|
|
138
139
|
private readonly getFromStorage: (
|
|
139
140
|
from: number,
|
|
140
141
|
to: number,
|
|
141
|
-
telemetryProps:
|
|
142
|
+
telemetryProps: ITelemetryBaseProperties,
|
|
142
143
|
fetchReason?: string,
|
|
143
144
|
) => Promise<IDeltasFetchResult>,
|
|
144
145
|
private readonly getCached: (
|
|
@@ -156,7 +157,7 @@ export class OdspDeltaStorageWithCache implements IDocumentDeltaStorageService {
|
|
|
156
157
|
abortSignal?: AbortSignal,
|
|
157
158
|
cachedOnly?: boolean,
|
|
158
159
|
fetchReason?: string,
|
|
159
|
-
) {
|
|
160
|
+
): IStream<ISequencedDocumentMessage[]> {
|
|
160
161
|
// We do not control what's in the cache. Current API assumes that fetchMessages() keeps banging on
|
|
161
162
|
// storage / cache until it gets ops it needs. This would result in deadlock if fixed range is asked from
|
|
162
163
|
// cache and it's not there.
|
|
@@ -174,9 +175,9 @@ export class OdspDeltaStorageWithCache implements IDocumentDeltaStorageService {
|
|
|
174
175
|
const requestCallback = async (
|
|
175
176
|
from: number,
|
|
176
177
|
to: number,
|
|
177
|
-
telemetryProps:
|
|
178
|
-
) => {
|
|
179
|
-
if (this.snapshotOps !== undefined && this.snapshotOps.length
|
|
178
|
+
telemetryProps: ITelemetryBaseProperties,
|
|
179
|
+
): Promise<IDeltasFetchResult> => {
|
|
180
|
+
if (this.snapshotOps !== undefined && this.snapshotOps.length > 0) {
|
|
180
181
|
const messages = this.snapshotOps.filter(
|
|
181
182
|
(op) => op.sequenceNumber >= from && op.sequenceNumber < to,
|
|
182
183
|
);
|
|
@@ -200,7 +201,7 @@ export class OdspDeltaStorageWithCache implements IDocumentDeltaStorageService {
|
|
|
200
201
|
// Set the firstCacheMiss as true in case we didn't get all the ops.
|
|
201
202
|
// This will save an extra cache read on "DocumentOpen" or "PostDocumentOpen".
|
|
202
203
|
this.useCacheForOps = from + messagesFromCache.length >= to;
|
|
203
|
-
if (messagesFromCache.length
|
|
204
|
+
if (messagesFromCache.length > 0) {
|
|
204
205
|
opsFromCache += messagesFromCache.length;
|
|
205
206
|
return {
|
|
206
207
|
messages: messagesFromCache,
|
|
@@ -221,7 +222,7 @@ export class OdspDeltaStorageWithCache implements IDocumentDeltaStorageService {
|
|
|
221
222
|
};
|
|
222
223
|
|
|
223
224
|
const stream = requestOps(
|
|
224
|
-
async (from: number, to: number, telemetryProps:
|
|
225
|
+
async (from: number, to: number, telemetryProps: ITelemetryBaseProperties) => {
|
|
225
226
|
const result = await requestCallback(from, to, telemetryProps);
|
|
226
227
|
// Catch all case, just in case
|
|
227
228
|
validateMessages("catch all", result.messages, from, this.logger);
|