@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
package/dist/getFileLink.js
CHANGED
|
@@ -9,10 +9,10 @@ const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
|
|
|
9
9
|
const core_utils_1 = require("@fluidframework/core-utils");
|
|
10
10
|
const driver_utils_1 = require("@fluidframework/driver-utils");
|
|
11
11
|
const odsp_driver_definitions_1 = require("@fluidframework/odsp-driver-definitions");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
12
|
+
const getUrlAndHeadersWithAuth_js_1 = require("./getUrlAndHeadersWithAuth.js");
|
|
13
|
+
const odspUtils_js_1 = require("./odspUtils.js");
|
|
14
|
+
const packageVersion_js_1 = require("./packageVersion.js");
|
|
15
|
+
const retryUtils_js_1 = require("./retryUtils.js");
|
|
16
16
|
// Store cached responses for the lifetime of web session as file link remains the same for given file item
|
|
17
17
|
const fileLinkCache = new Map();
|
|
18
18
|
/**
|
|
@@ -36,11 +36,14 @@ async function getFileLink(getToken, odspUrlParts, logger) {
|
|
|
36
36
|
let fileLinkCore;
|
|
37
37
|
try {
|
|
38
38
|
let retryCount = 0;
|
|
39
|
-
fileLinkCore = await (0, driver_utils_1.runWithRetry)(async () => (0,
|
|
39
|
+
fileLinkCore = await (0, driver_utils_1.runWithRetry)(async () => (0, retryUtils_js_1.runWithRetry)(async () => getFileLinkCore(getToken, odspUrlParts, logger), "getFileLinkCore", logger), "getShareLink", logger, {
|
|
40
|
+
// TODO: use a stronger type
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
42
|
onRetry(delayInMs, error) {
|
|
41
43
|
retryCount++;
|
|
42
44
|
if (retryCount === 5) {
|
|
43
45
|
if (error !== undefined && typeof error === "object") {
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
44
47
|
error.canRetry = false;
|
|
45
48
|
throw error;
|
|
46
49
|
}
|
|
@@ -49,10 +52,10 @@ async function getFileLink(getToken, odspUrlParts, logger) {
|
|
|
49
52
|
},
|
|
50
53
|
});
|
|
51
54
|
}
|
|
52
|
-
catch (
|
|
55
|
+
catch (error) {
|
|
53
56
|
// Delete from the cache to permit retrying later.
|
|
54
57
|
fileLinkCache.delete(cacheKey);
|
|
55
|
-
throw
|
|
58
|
+
throw error;
|
|
56
59
|
}
|
|
57
60
|
// We are guaranteed to run the getFileLinkCore at least once with successful result (which must be a string)
|
|
58
61
|
(0, core_utils_1.assert)(fileLinkCore !== undefined, 0x292 /* "Unexpected undefined result from getFileLinkCore" */);
|
|
@@ -69,9 +72,9 @@ async function getFileLinkCore(getToken, odspUrlParts, logger) {
|
|
|
69
72
|
return telemetry_utils_1.PerformanceEvent.timedExecAsync(logger, { eventName: "odspFileLink", requestName: "getSharingInformation" }, async (event) => {
|
|
70
73
|
let attempts = 0;
|
|
71
74
|
let additionalProps;
|
|
72
|
-
const fileLink = await (0,
|
|
75
|
+
const fileLink = await (0, odspUtils_js_1.getWithRetryForTokenRefresh)(async (options) => {
|
|
73
76
|
attempts++;
|
|
74
|
-
const storageTokenFetcher = (0,
|
|
77
|
+
const storageTokenFetcher = (0, odspUtils_js_1.toInstrumentedOdspTokenFetcher)(logger, odspUrlParts, getToken, true /* throwOnNullToken */);
|
|
75
78
|
const storageToken = await storageTokenFetcher(options, "GetFileLinkCore");
|
|
76
79
|
(0, core_utils_1.assert)(storageToken !== null, 0x2bb /* "Instrumented token fetcher with throwOnNullToken = true should never return null" */);
|
|
77
80
|
// IMPORTANT: In past we were using GetFileByUrl() API to get to the list item that was corresponding
|
|
@@ -80,7 +83,7 @@ async function getFileLinkCore(getToken, odspUrlParts, logger) {
|
|
|
80
83
|
// where webDavUrl is constructed using legacy ODC format for backward compatibility reasons.
|
|
81
84
|
// GetFileByUrl() does not understand that format and thus fails. GetFileById() relies on file item
|
|
82
85
|
// unique guid (sharepointIds.listItemUniqueId) and it works uniformly across Consumer and Commercial.
|
|
83
|
-
const { url, headers } = (0,
|
|
86
|
+
const { url, headers } = (0, getUrlAndHeadersWithAuth_js_1.getUrlAndHeadersWithAuth)(`${odspUrlParts.siteUrl}/_api/web/GetFileById(@a1)/ListItemAllFields/GetSharingInformation?@a1=guid${encodeURIComponent(`'${fileItem.sharepointIds.listItemUniqueId}'`)}`, storageToken, true);
|
|
84
87
|
const requestInit = {
|
|
85
88
|
method: "POST",
|
|
86
89
|
headers: {
|
|
@@ -89,41 +92,45 @@ async function getFileLinkCore(getToken, odspUrlParts, logger) {
|
|
|
89
92
|
...headers,
|
|
90
93
|
},
|
|
91
94
|
};
|
|
92
|
-
const response = await (0,
|
|
95
|
+
const response = await (0, odspUtils_js_1.fetchHelper)(url, requestInit);
|
|
93
96
|
additionalProps = response.propsToLog;
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
94
98
|
const sharingInfo = await response.content.json();
|
|
99
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
|
95
100
|
const directUrl = sharingInfo?.d?.directUrl;
|
|
96
101
|
if (typeof directUrl !== "string") {
|
|
97
102
|
// This will retry once in getWithRetryForTokenRefresh
|
|
98
|
-
throw new driver_utils_1.NonRetryableError("Malformed GetSharingInformation response", odsp_driver_definitions_1.OdspErrorTypes.incorrectServerResponse, { driverVersion:
|
|
103
|
+
throw new driver_utils_1.NonRetryableError("Malformed GetSharingInformation response", odsp_driver_definitions_1.OdspErrorTypes.incorrectServerResponse, { driverVersion: packageVersion_js_1.pkgVersion });
|
|
99
104
|
}
|
|
100
105
|
return directUrl;
|
|
101
106
|
});
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
102
108
|
event.end({ ...additionalProps, attempts });
|
|
103
109
|
return fileLink;
|
|
104
110
|
});
|
|
105
111
|
}
|
|
106
112
|
const isFileItemLite = (maybeFileItemLite) => typeof maybeFileItemLite.webUrl === "string" &&
|
|
107
113
|
typeof maybeFileItemLite.webDavUrl === "string" &&
|
|
114
|
+
// TODO: stronger check
|
|
108
115
|
typeof maybeFileItemLite.sharepointIds === "object";
|
|
109
116
|
async function getFileItemLite(getToken, odspUrlParts, logger, forceAccessTokenViaAuthorizationHeader) {
|
|
110
117
|
return telemetry_utils_1.PerformanceEvent.timedExecAsync(logger, { eventName: "odspFileLink", requestName: "getFileItemLite" }, async (event) => {
|
|
111
118
|
let attempts = 0;
|
|
112
119
|
let additionalProps;
|
|
113
|
-
const fileItem = await (0,
|
|
120
|
+
const fileItem = await (0, odspUtils_js_1.getWithRetryForTokenRefresh)(async (options) => {
|
|
114
121
|
attempts++;
|
|
115
122
|
const { siteUrl, driveId, itemId } = odspUrlParts;
|
|
116
|
-
const storageTokenFetcher = (0,
|
|
123
|
+
const storageTokenFetcher = (0, odspUtils_js_1.toInstrumentedOdspTokenFetcher)(logger, odspUrlParts, getToken, true /* throwOnNullToken */);
|
|
117
124
|
const storageToken = await storageTokenFetcher(options, "GetFileItemLite");
|
|
118
125
|
(0, core_utils_1.assert)(storageToken !== null, 0x2bc /* "Instrumented token fetcher with throwOnNullToken =true should never return null" */);
|
|
119
|
-
const { url, headers } = (0,
|
|
126
|
+
const { url, headers } = (0, getUrlAndHeadersWithAuth_js_1.getUrlAndHeadersWithAuth)(`${siteUrl}/_api/v2.0/drives/${driveId}/items/${itemId}?select=webUrl,webDavUrl,sharepointIds`, storageToken, forceAccessTokenViaAuthorizationHeader);
|
|
120
127
|
const requestInit = { method: "GET", headers };
|
|
121
|
-
const response = await (0,
|
|
128
|
+
const response = await (0, odspUtils_js_1.fetchHelper)(url, requestInit);
|
|
122
129
|
additionalProps = response.propsToLog;
|
|
123
130
|
const responseJson = await response.content.json();
|
|
124
131
|
if (!isFileItemLite(responseJson)) {
|
|
125
132
|
// This will retry once in getWithRetryForTokenRefresh
|
|
126
|
-
throw new driver_utils_1.NonRetryableError("Malformed getFileItemLite response", odsp_driver_definitions_1.OdspErrorTypes.incorrectServerResponse, { driverVersion:
|
|
133
|
+
throw new driver_utils_1.NonRetryableError("Malformed getFileItemLite response", odsp_driver_definitions_1.OdspErrorTypes.incorrectServerResponse, { driverVersion: packageVersion_js_1.pkgVersion });
|
|
127
134
|
}
|
|
128
135
|
return responseJson;
|
|
129
136
|
});
|
package/dist/getFileLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileLink.js","sourceRoot":"","sources":["../src/getFileLink.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryLoggerExt, PerformanceEvent } from \"@fluidframework/telemetry-utils\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport { NonRetryableError, runWithRetry } from \"@fluidframework/driver-utils\";\nimport {\n\tIOdspUrlParts,\n\tOdspErrorTypes,\n\tOdspResourceTokenFetchOptions,\n\tTokenFetcher,\n} from \"@fluidframework/odsp-driver-definitions\";\nimport { getUrlAndHeadersWithAuth } from \"./getUrlAndHeadersWithAuth\";\nimport {\n\tfetchHelper,\n\tgetWithRetryForTokenRefresh,\n\ttoInstrumentedOdspTokenFetcher,\n} from \"./odspUtils\";\nimport { pkgVersion as driverVersion } from \"./packageVersion\";\nimport { runWithRetry as runWithRetryForCoherencyAndServiceReadOnlyErrors } from \"./retryUtils\";\n\n// Store cached responses for the lifetime of web session as file link remains the same for given file item\nconst fileLinkCache = new Map<string, Promise<string>>();\n\n/**\n * Returns file link for a file with given drive and item ids.\n * Scope needed: files.readwrite.all.\n * This function keeps retrying if it gets a retriable error or wait for some delay if it gets a\n * throttling error. In future, we are thinking of app allowing to pass some cancel token, with which\n * we would be able to stop retrying.\n * @param getToken - used to fetch access tokens needed to execute operation\n * @param odspUrlParts - object describing file storage identity\n * @param logger - used to log results of operation, including any error\n * @returns Promise which resolves to file link url when successful; otherwise, undefined.\n */\nexport async function getFileLink(\n\tgetToken: TokenFetcher<OdspResourceTokenFetchOptions>,\n\todspUrlParts: IOdspUrlParts,\n\tlogger: ITelemetryLoggerExt,\n): Promise<string> {\n\tconst cacheKey = `${odspUrlParts.siteUrl}_${odspUrlParts.driveId}_${odspUrlParts.itemId}`;\n\tconst maybeFileLinkCacheEntry = fileLinkCache.get(cacheKey);\n\tif (maybeFileLinkCacheEntry !== undefined) {\n\t\treturn maybeFileLinkCacheEntry;\n\t}\n\n\tconst fileLinkGenerator = async function () {\n\t\tlet fileLinkCore: string;\n\t\ttry {\n\t\t\tlet retryCount = 0;\n\t\t\tfileLinkCore = await runWithRetry(\n\t\t\t\tasync () =>\n\t\t\t\t\trunWithRetryForCoherencyAndServiceReadOnlyErrors(\n\t\t\t\t\t\tasync () => getFileLinkCore(getToken, odspUrlParts, logger),\n\t\t\t\t\t\t\"getFileLinkCore\",\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t),\n\t\t\t\t\"getShareLink\",\n\t\t\t\tlogger,\n\t\t\t\t{\n\t\t\t\t\tonRetry(delayInMs: number, error: any) {\n\t\t\t\t\t\tretryCount++;\n\t\t\t\t\t\tif (retryCount === 5) {\n\t\t\t\t\t\t\tif (error !== undefined && typeof error === \"object\") {\n\t\t\t\t\t\t\t\terror.canRetry = false;\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t} catch (err) {\n\t\t\t// Delete from the cache to permit retrying later.\n\t\t\tfileLinkCache.delete(cacheKey);\n\t\t\tthrow err;\n\t\t}\n\n\t\t// We are guaranteed to run the getFileLinkCore at least once with successful result (which must be a string)\n\t\tassert(\n\t\t\tfileLinkCore !== undefined,\n\t\t\t0x292 /* \"Unexpected undefined result from getFileLinkCore\" */,\n\t\t);\n\t\treturn fileLinkCore;\n\t};\n\tconst fileLink = fileLinkGenerator();\n\tfileLinkCache.set(cacheKey, fileLink);\n\treturn fileLink;\n}\n\nasync function getFileLinkCore(\n\tgetToken: TokenFetcher<OdspResourceTokenFetchOptions>,\n\todspUrlParts: IOdspUrlParts,\n\tlogger: ITelemetryLoggerExt,\n): Promise<string> {\n\tconst fileItem = await getFileItemLite(getToken, odspUrlParts, logger, true);\n\n\t// ODSP link requires extra call to return link that is resistant to file being renamed or moved to different folder\n\treturn PerformanceEvent.timedExecAsync(\n\t\tlogger,\n\t\t{ eventName: \"odspFileLink\", requestName: \"getSharingInformation\" },\n\t\tasync (event) => {\n\t\t\tlet attempts = 0;\n\t\t\tlet additionalProps;\n\t\t\tconst fileLink = await getWithRetryForTokenRefresh(async (options) => {\n\t\t\t\tattempts++;\n\t\t\t\tconst storageTokenFetcher = toInstrumentedOdspTokenFetcher(\n\t\t\t\t\tlogger,\n\t\t\t\t\todspUrlParts,\n\t\t\t\t\tgetToken,\n\t\t\t\t\ttrue /* throwOnNullToken */,\n\t\t\t\t);\n\t\t\t\tconst storageToken = await storageTokenFetcher(options, \"GetFileLinkCore\");\n\t\t\t\tassert(\n\t\t\t\t\tstorageToken !== null,\n\t\t\t\t\t0x2bb /* \"Instrumented token fetcher with throwOnNullToken = true should never return null\" */,\n\t\t\t\t);\n\n\t\t\t\t// IMPORTANT: In past we were using GetFileByUrl() API to get to the list item that was corresponding\n\t\t\t\t// to the file. This was intentionally replaced with GetFileById() to solve the following issue:\n\t\t\t\t// GetFileByUrl() uses webDavUrl to locate list item. This API does not work for Consumer scenarios\n\t\t\t\t// where webDavUrl is constructed using legacy ODC format for backward compatibility reasons.\n\t\t\t\t// GetFileByUrl() does not understand that format and thus fails. GetFileById() relies on file item\n\t\t\t\t// unique guid (sharepointIds.listItemUniqueId) and it works uniformly across Consumer and Commercial.\n\t\t\t\tconst { url, headers } = getUrlAndHeadersWithAuth(\n\t\t\t\t\t`${\n\t\t\t\t\t\todspUrlParts.siteUrl\n\t\t\t\t\t}/_api/web/GetFileById(@a1)/ListItemAllFields/GetSharingInformation?@a1=guid${encodeURIComponent(\n\t\t\t\t\t\t`'${fileItem.sharepointIds.listItemUniqueId}'`,\n\t\t\t\t\t)}`,\n\t\t\t\t\tstorageToken,\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t\tconst requestInit = {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-Type\": \"application/json;odata=verbose\",\n\t\t\t\t\t\t\"Accept\": \"application/json;odata=verbose\",\n\t\t\t\t\t\t...headers,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tconst response = await fetchHelper(url, requestInit);\n\t\t\t\tadditionalProps = response.propsToLog;\n\n\t\t\t\tconst sharingInfo = await response.content.json();\n\t\t\t\tconst directUrl = sharingInfo?.d?.directUrl;\n\t\t\t\tif (typeof directUrl !== \"string\") {\n\t\t\t\t\t// This will retry once in getWithRetryForTokenRefresh\n\t\t\t\t\tthrow new NonRetryableError(\n\t\t\t\t\t\t\"Malformed GetSharingInformation response\",\n\t\t\t\t\t\tOdspErrorTypes.incorrectServerResponse,\n\t\t\t\t\t\t{ driverVersion },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn directUrl;\n\t\t\t});\n\t\t\tevent.end({ ...additionalProps, attempts });\n\t\t\treturn fileLink;\n\t\t},\n\t);\n}\n\n/**\n * Sharepoint Ids Interface\n */\ninterface IGraphSharepointIds {\n\tlistId: string;\n\tlistItemId: string;\n\tlistItemUniqueId: string;\n\tsiteId: string;\n\tsiteUrl: string;\n\twebId: string;\n}\n\n/**\n * This represents a lite version of file item containing only select file properties\n */\ninterface FileItemLite {\n\twebUrl: string;\n\twebDavUrl: string;\n\tsharepointIds: IGraphSharepointIds;\n}\n\nconst isFileItemLite = (maybeFileItemLite: any): maybeFileItemLite is FileItemLite =>\n\ttypeof maybeFileItemLite.webUrl === \"string\" &&\n\ttypeof maybeFileItemLite.webDavUrl === \"string\" &&\n\ttypeof maybeFileItemLite.sharepointIds === \"object\";\n\nasync function getFileItemLite(\n\tgetToken: TokenFetcher<OdspResourceTokenFetchOptions>,\n\todspUrlParts: IOdspUrlParts,\n\tlogger: ITelemetryLoggerExt,\n\tforceAccessTokenViaAuthorizationHeader: boolean,\n): Promise<FileItemLite> {\n\treturn PerformanceEvent.timedExecAsync(\n\t\tlogger,\n\t\t{ eventName: \"odspFileLink\", requestName: \"getFileItemLite\" },\n\t\tasync (event) => {\n\t\t\tlet attempts = 0;\n\t\t\tlet additionalProps;\n\t\t\tconst fileItem = await getWithRetryForTokenRefresh(async (options) => {\n\t\t\t\tattempts++;\n\t\t\t\tconst { siteUrl, driveId, itemId } = odspUrlParts;\n\t\t\t\tconst storageTokenFetcher = toInstrumentedOdspTokenFetcher(\n\t\t\t\t\tlogger,\n\t\t\t\t\todspUrlParts,\n\t\t\t\t\tgetToken,\n\t\t\t\t\ttrue /* throwOnNullToken */,\n\t\t\t\t);\n\t\t\t\tconst storageToken = await storageTokenFetcher(options, \"GetFileItemLite\");\n\t\t\t\tassert(\n\t\t\t\t\tstorageToken !== null,\n\t\t\t\t\t0x2bc /* \"Instrumented token fetcher with throwOnNullToken =true should never return null\" */,\n\t\t\t\t);\n\n\t\t\t\tconst { url, headers } = getUrlAndHeadersWithAuth(\n\t\t\t\t\t`${siteUrl}/_api/v2.0/drives/${driveId}/items/${itemId}?select=webUrl,webDavUrl,sharepointIds`,\n\t\t\t\t\tstorageToken,\n\t\t\t\t\tforceAccessTokenViaAuthorizationHeader,\n\t\t\t\t);\n\t\t\t\tconst requestInit = { method: \"GET\", headers };\n\t\t\t\tconst response = await fetchHelper(url, requestInit);\n\t\t\t\tadditionalProps = response.propsToLog;\n\n\t\t\t\tconst responseJson = await response.content.json();\n\t\t\t\tif (!isFileItemLite(responseJson)) {\n\t\t\t\t\t// This will retry once in getWithRetryForTokenRefresh\n\t\t\t\t\tthrow new NonRetryableError(\n\t\t\t\t\t\t\"Malformed getFileItemLite response\",\n\t\t\t\t\t\tOdspErrorTypes.incorrectServerResponse,\n\t\t\t\t\t\t{ driverVersion },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn responseJson;\n\t\t\t});\n\t\t\tevent.end({ ...additionalProps, attempts });\n\t\t\treturn fileItem;\n\t\t},\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"getFileLink.js","sourceRoot":"","sources":["../src/getFileLink.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,qEAAwF;AACxF,2DAAoD;AACpD,+DAA+E;AAC/E,qFAKiD;AACjD,+EAAyE;AACzE,iDAIwB;AACxB,2DAAkE;AAClE,mDAAmG;AAEnG,2GAA2G;AAC3G,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEzD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,WAAW,CAChC,QAAqD,EACrD,YAA2B,EAC3B,MAA2B;IAE3B,MAAM,QAAQ,GAAG,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1F,MAAM,uBAAuB,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,uBAAuB,KAAK,SAAS,EAAE;QAC1C,OAAO,uBAAuB,CAAC;KAC/B;IAED,MAAM,iBAAiB,GAAG,KAAK;QAC9B,IAAI,YAAoB,CAAC;QACzB,IAAI;YACH,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,YAAY,GAAG,MAAM,IAAA,2BAAY,EAChC,KAAK,IAAI,EAAE,CACV,IAAA,4BAAgD,EAC/C,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,EAC3D,iBAAiB,EACjB,MAAM,CACN,EACF,cAAc,EACd,MAAM,EACN;gBACC,4BAA4B;gBAC5B,8DAA8D;gBAC9D,OAAO,CAAC,SAAiB,EAAE,KAAU;oBACpC,UAAU,EAAE,CAAC;oBACb,IAAI,UAAU,KAAK,CAAC,EAAE;wBACrB,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;4BACrD,sEAAsE;4BACtE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;4BACvB,MAAM,KAAK,CAAC;yBACZ;wBACD,MAAM,KAAK,CAAC;qBACZ;gBACF,CAAC;aACD,CACD,CAAC;SACF;QAAC,OAAO,KAAK,EAAE;YACf,kDAAkD;YAClD,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,KAAK,CAAC;SACZ;QAED,6GAA6G;QAC7G,IAAA,mBAAM,EACL,YAAY,KAAK,SAAS,EAC1B,KAAK,CAAC,wDAAwD,CAC9D,CAAC;QACF,OAAO,YAAY,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC;AACjB,CAAC;AAxDD,kCAwDC;AAED,KAAK,UAAU,eAAe,CAC7B,QAAqD,EACrD,YAA2B,EAC3B,MAA2B;IAE3B,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAE7E,oHAAoH;IACpH,OAAO,kCAAgB,CAAC,cAAc,CACrC,MAAM,EACN,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,EACnE,KAAK,EAAE,KAAK,EAAE,EAAE;QACf,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,eAAe,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAA,0CAA2B,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACpE,QAAQ,EAAE,CAAC;YACX,MAAM,mBAAmB,GAAG,IAAA,6CAA8B,EACzD,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,IAAI,CAAC,sBAAsB,CAC3B,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAC3E,IAAA,mBAAM,EACL,YAAY,KAAK,IAAI,EACrB,KAAK,CAAC,wFAAwF,CAC9F,CAAC;YAEF,qGAAqG;YACrG,gGAAgG;YAChG,mGAAmG;YACnG,6FAA6F;YAC7F,mGAAmG;YACnG,sGAAsG;YACtG,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAA,sDAAwB,EAChD,GACC,YAAY,CAAC,OACd,8EAA8E,kBAAkB,CAC/F,IAAI,QAAQ,CAAC,aAAa,CAAC,gBAAgB,GAAG,CAC9C,EAAE,EACH,YAAY,EACZ,IAAI,CACJ,CAAC;YACF,MAAM,WAAW,GAAG;gBACnB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACR,cAAc,EAAE,gCAAgC;oBAChD,QAAQ,EAAE,gCAAgC;oBAC1C,GAAG,OAAO;iBACV;aACD,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAW,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACrD,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC;YAEtC,mEAAmE;YACnE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClD,+GAA+G;YAC/G,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC,EAAE,SAAS,CAAC;YAC5C,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAClC,sDAAsD;gBACtD,MAAM,IAAI,gCAAiB,CAC1B,0CAA0C,EAC1C,wCAAc,CAAC,uBAAuB,EACtC,EAAE,aAAa,EAAb,8BAAa,EAAE,CACjB,CAAC;aACF;YACD,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,iEAAiE;QACjE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IACjB,CAAC,CACD,CAAC;AACH,CAAC;AAuBD,MAAM,cAAc,GAAG,CAAC,iBAA0B,EAAqC,EAAE,CACxF,OAAQ,iBAA2C,CAAC,MAAM,KAAK,QAAQ;IACvE,OAAQ,iBAA2C,CAAC,SAAS,KAAK,QAAQ;IAC1E,uBAAuB;IACvB,OAAQ,iBAA2C,CAAC,aAAa,KAAK,QAAQ,CAAC;AAEhF,KAAK,UAAU,eAAe,CAC7B,QAAqD,EACrD,YAA2B,EAC3B,MAA2B,EAC3B,sCAA+C;IAE/C,OAAO,kCAAgB,CAAC,cAAc,CACrC,MAAM,EACN,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAC7D,KAAK,EAAE,KAAK,EAAE,EAAE;QACf,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,eAAqD,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAA,0CAA2B,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACpE,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;YAClD,MAAM,mBAAmB,GAAG,IAAA,6CAA8B,EACzD,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,IAAI,CAAC,sBAAsB,CAC3B,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAC3E,IAAA,mBAAM,EACL,YAAY,KAAK,IAAI,EACrB,KAAK,CAAC,uFAAuF,CAC7F,CAAC;YAEF,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAA,sDAAwB,EAChD,GAAG,OAAO,qBAAqB,OAAO,UAAU,MAAM,wCAAwC,EAC9F,YAAY,EACZ,sCAAsC,CACtC,CAAC;YACF,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAW,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACrD,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC;YAEtC,MAAM,YAAY,GAAY,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBAClC,sDAAsD;gBACtD,MAAM,IAAI,gCAAiB,CAC1B,oCAAoC,EACpC,wCAAc,CAAC,uBAAuB,EACtC,EAAE,aAAa,EAAb,8BAAa,EAAE,CACjB,CAAC;aACF;YACD,OAAO,YAAY,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IACjB,CAAC,CACD,CAAC;AACH,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { ITelemetryBaseProperties } from \"@fluidframework/core-interfaces\";\nimport { ITelemetryLoggerExt, PerformanceEvent } from \"@fluidframework/telemetry-utils\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport { NonRetryableError, runWithRetry } from \"@fluidframework/driver-utils\";\nimport {\n\tIOdspUrlParts,\n\tOdspErrorTypes,\n\tOdspResourceTokenFetchOptions,\n\tTokenFetcher,\n} from \"@fluidframework/odsp-driver-definitions\";\nimport { getUrlAndHeadersWithAuth } from \"./getUrlAndHeadersWithAuth.js\";\nimport {\n\tfetchHelper,\n\tgetWithRetryForTokenRefresh,\n\ttoInstrumentedOdspTokenFetcher,\n} from \"./odspUtils.js\";\nimport { pkgVersion as driverVersion } from \"./packageVersion.js\";\nimport { runWithRetry as runWithRetryForCoherencyAndServiceReadOnlyErrors } from \"./retryUtils.js\";\n\n// Store cached responses for the lifetime of web session as file link remains the same for given file item\nconst fileLinkCache = new Map<string, Promise<string>>();\n\n/**\n * Returns file link for a file with given drive and item ids.\n * Scope needed: files.readwrite.all.\n * This function keeps retrying if it gets a retriable error or wait for some delay if it gets a\n * throttling error. In future, we are thinking of app allowing to pass some cancel token, with which\n * we would be able to stop retrying.\n * @param getToken - used to fetch access tokens needed to execute operation\n * @param odspUrlParts - object describing file storage identity\n * @param logger - used to log results of operation, including any error\n * @returns Promise which resolves to file link url when successful; otherwise, undefined.\n */\nexport async function getFileLink(\n\tgetToken: TokenFetcher<OdspResourceTokenFetchOptions>,\n\todspUrlParts: IOdspUrlParts,\n\tlogger: ITelemetryLoggerExt,\n): Promise<string> {\n\tconst cacheKey = `${odspUrlParts.siteUrl}_${odspUrlParts.driveId}_${odspUrlParts.itemId}`;\n\tconst maybeFileLinkCacheEntry = fileLinkCache.get(cacheKey);\n\tif (maybeFileLinkCacheEntry !== undefined) {\n\t\treturn maybeFileLinkCacheEntry;\n\t}\n\n\tconst fileLinkGenerator = async function (): Promise<string> {\n\t\tlet fileLinkCore: string;\n\t\ttry {\n\t\t\tlet retryCount = 0;\n\t\t\tfileLinkCore = await runWithRetry(\n\t\t\t\tasync () =>\n\t\t\t\t\trunWithRetryForCoherencyAndServiceReadOnlyErrors(\n\t\t\t\t\t\tasync () => getFileLinkCore(getToken, odspUrlParts, logger),\n\t\t\t\t\t\t\"getFileLinkCore\",\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t),\n\t\t\t\t\"getShareLink\",\n\t\t\t\tlogger,\n\t\t\t\t{\n\t\t\t\t\t// TODO: use a stronger type\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\tonRetry(delayInMs: number, error: any) {\n\t\t\t\t\t\tretryCount++;\n\t\t\t\t\t\tif (retryCount === 5) {\n\t\t\t\t\t\t\tif (error !== undefined && typeof error === \"object\") {\n\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\t\t\t\terror.canRetry = false;\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t} catch (error) {\n\t\t\t// Delete from the cache to permit retrying later.\n\t\t\tfileLinkCache.delete(cacheKey);\n\t\t\tthrow error;\n\t\t}\n\n\t\t// We are guaranteed to run the getFileLinkCore at least once with successful result (which must be a string)\n\t\tassert(\n\t\t\tfileLinkCore !== undefined,\n\t\t\t0x292 /* \"Unexpected undefined result from getFileLinkCore\" */,\n\t\t);\n\t\treturn fileLinkCore;\n\t};\n\tconst fileLink = fileLinkGenerator();\n\tfileLinkCache.set(cacheKey, fileLink);\n\treturn fileLink;\n}\n\nasync function getFileLinkCore(\n\tgetToken: TokenFetcher<OdspResourceTokenFetchOptions>,\n\todspUrlParts: IOdspUrlParts,\n\tlogger: ITelemetryLoggerExt,\n): Promise<string> {\n\tconst fileItem = await getFileItemLite(getToken, odspUrlParts, logger, true);\n\n\t// ODSP link requires extra call to return link that is resistant to file being renamed or moved to different folder\n\treturn PerformanceEvent.timedExecAsync(\n\t\tlogger,\n\t\t{ eventName: \"odspFileLink\", requestName: \"getSharingInformation\" },\n\t\tasync (event) => {\n\t\t\tlet attempts = 0;\n\t\t\tlet additionalProps;\n\t\t\tconst fileLink = await getWithRetryForTokenRefresh(async (options) => {\n\t\t\t\tattempts++;\n\t\t\t\tconst storageTokenFetcher = toInstrumentedOdspTokenFetcher(\n\t\t\t\t\tlogger,\n\t\t\t\t\todspUrlParts,\n\t\t\t\t\tgetToken,\n\t\t\t\t\ttrue /* throwOnNullToken */,\n\t\t\t\t);\n\t\t\t\tconst storageToken = await storageTokenFetcher(options, \"GetFileLinkCore\");\n\t\t\t\tassert(\n\t\t\t\t\tstorageToken !== null,\n\t\t\t\t\t0x2bb /* \"Instrumented token fetcher with throwOnNullToken = true should never return null\" */,\n\t\t\t\t);\n\n\t\t\t\t// IMPORTANT: In past we were using GetFileByUrl() API to get to the list item that was corresponding\n\t\t\t\t// to the file. This was intentionally replaced with GetFileById() to solve the following issue:\n\t\t\t\t// GetFileByUrl() uses webDavUrl to locate list item. This API does not work for Consumer scenarios\n\t\t\t\t// where webDavUrl is constructed using legacy ODC format for backward compatibility reasons.\n\t\t\t\t// GetFileByUrl() does not understand that format and thus fails. GetFileById() relies on file item\n\t\t\t\t// unique guid (sharepointIds.listItemUniqueId) and it works uniformly across Consumer and Commercial.\n\t\t\t\tconst { url, headers } = getUrlAndHeadersWithAuth(\n\t\t\t\t\t`${\n\t\t\t\t\t\todspUrlParts.siteUrl\n\t\t\t\t\t}/_api/web/GetFileById(@a1)/ListItemAllFields/GetSharingInformation?@a1=guid${encodeURIComponent(\n\t\t\t\t\t\t`'${fileItem.sharepointIds.listItemUniqueId}'`,\n\t\t\t\t\t)}`,\n\t\t\t\t\tstorageToken,\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t\tconst requestInit = {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-Type\": \"application/json;odata=verbose\",\n\t\t\t\t\t\t\"Accept\": \"application/json;odata=verbose\",\n\t\t\t\t\t\t...headers,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tconst response = await fetchHelper(url, requestInit);\n\t\t\t\tadditionalProps = response.propsToLog;\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tconst sharingInfo = await response.content.json();\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\tconst directUrl = sharingInfo?.d?.directUrl;\n\t\t\t\tif (typeof directUrl !== \"string\") {\n\t\t\t\t\t// This will retry once in getWithRetryForTokenRefresh\n\t\t\t\t\tthrow new NonRetryableError(\n\t\t\t\t\t\t\"Malformed GetSharingInformation response\",\n\t\t\t\t\t\tOdspErrorTypes.incorrectServerResponse,\n\t\t\t\t\t\t{ driverVersion },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn directUrl;\n\t\t\t});\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\tevent.end({ ...additionalProps, attempts });\n\t\t\treturn fileLink;\n\t\t},\n\t);\n}\n\n/**\n * Sharepoint Ids Interface\n */\ninterface IGraphSharepointIds {\n\tlistId: string;\n\tlistItemId: string;\n\tlistItemUniqueId: string;\n\tsiteId: string;\n\tsiteUrl: string;\n\twebId: string;\n}\n\n/**\n * This represents a lite version of file item containing only select file properties\n */\ninterface FileItemLite {\n\twebUrl: string;\n\twebDavUrl: string;\n\tsharepointIds: IGraphSharepointIds;\n}\n\nconst isFileItemLite = (maybeFileItemLite: unknown): maybeFileItemLite is FileItemLite =>\n\ttypeof (maybeFileItemLite as Partial<FileItemLite>).webUrl === \"string\" &&\n\ttypeof (maybeFileItemLite as Partial<FileItemLite>).webDavUrl === \"string\" &&\n\t// TODO: stronger check\n\ttypeof (maybeFileItemLite as Partial<FileItemLite>).sharepointIds === \"object\";\n\nasync function getFileItemLite(\n\tgetToken: TokenFetcher<OdspResourceTokenFetchOptions>,\n\todspUrlParts: IOdspUrlParts,\n\tlogger: ITelemetryLoggerExt,\n\tforceAccessTokenViaAuthorizationHeader: boolean,\n): Promise<FileItemLite> {\n\treturn PerformanceEvent.timedExecAsync(\n\t\tlogger,\n\t\t{ eventName: \"odspFileLink\", requestName: \"getFileItemLite\" },\n\t\tasync (event) => {\n\t\t\tlet attempts = 0;\n\t\t\tlet additionalProps: ITelemetryBaseProperties | undefined;\n\t\t\tconst fileItem = await getWithRetryForTokenRefresh(async (options) => {\n\t\t\t\tattempts++;\n\t\t\t\tconst { siteUrl, driveId, itemId } = odspUrlParts;\n\t\t\t\tconst storageTokenFetcher = toInstrumentedOdspTokenFetcher(\n\t\t\t\t\tlogger,\n\t\t\t\t\todspUrlParts,\n\t\t\t\t\tgetToken,\n\t\t\t\t\ttrue /* throwOnNullToken */,\n\t\t\t\t);\n\t\t\t\tconst storageToken = await storageTokenFetcher(options, \"GetFileItemLite\");\n\t\t\t\tassert(\n\t\t\t\t\tstorageToken !== null,\n\t\t\t\t\t0x2bc /* \"Instrumented token fetcher with throwOnNullToken =true should never return null\" */,\n\t\t\t\t);\n\n\t\t\t\tconst { url, headers } = getUrlAndHeadersWithAuth(\n\t\t\t\t\t`${siteUrl}/_api/v2.0/drives/${driveId}/items/${itemId}?select=webUrl,webDavUrl,sharepointIds`,\n\t\t\t\t\tstorageToken,\n\t\t\t\t\tforceAccessTokenViaAuthorizationHeader,\n\t\t\t\t);\n\t\t\t\tconst requestInit = { method: \"GET\", headers };\n\t\t\t\tconst response = await fetchHelper(url, requestInit);\n\t\t\t\tadditionalProps = response.propsToLog;\n\n\t\t\t\tconst responseJson: unknown = await response.content.json();\n\t\t\t\tif (!isFileItemLite(responseJson)) {\n\t\t\t\t\t// This will retry once in getWithRetryForTokenRefresh\n\t\t\t\t\tthrow new NonRetryableError(\n\t\t\t\t\t\t\"Malformed getFileItemLite response\",\n\t\t\t\t\t\tOdspErrorTypes.incorrectServerResponse,\n\t\t\t\t\t\t{ driverVersion },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn responseJson;\n\t\t\t});\n\t\t\tevent.end({ ...additionalProps, attempts });\n\t\t\treturn fileItem;\n\t\t},\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getQueryString.d.ts","sourceRoot":"","sources":["../src/getQueryString.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"getQueryString.d.ts","sourceRoot":"","sources":["../src/getQueryString.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,gBAAgB,GAChE,MAAM,CAYR"}
|
package/dist/getQueryString.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
2
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
7
|
exports.getQueryString = void 0;
|
|
4
8
|
/**
|
|
@@ -10,6 +14,8 @@ function getQueryString(queryParams) {
|
|
|
10
14
|
for (const key of Object.keys(queryParams)) {
|
|
11
15
|
if (queryParams[key] !== undefined) {
|
|
12
16
|
const startChar = queryString === "" ? "?" : "&";
|
|
17
|
+
// False-positive
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
13
19
|
queryString += `${startChar}${key}=${encodeURIComponent(queryParams[key])}`;
|
|
14
20
|
}
|
|
15
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getQueryString.js","sourceRoot":"","sources":["../src/getQueryString.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"getQueryString.js","sourceRoot":"","sources":["../src/getQueryString.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;;GAGG;AACH,SAAgB,cAAc,CAC7B,WAAkE;IAElE,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QAC3C,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YACnC,MAAM,SAAS,GAAG,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACjD,iBAAiB;YACjB,iEAAiE;YACjE,WAAW,IAAI,GAAG,SAAS,GAAG,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SAC5E;KACD;IAED,OAAO,WAAW,CAAC;AACpB,CAAC;AAdD,wCAcC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISnapshotOptions } from \"@fluidframework/odsp-driver-definitions\";\n\n/**\n * Generates query string from the given query parameters.\n * @param queryParams - Query parameters from which to create a query.\n */\nexport function getQueryString(\n\tqueryParams: { [key: string]: string | number } | ISnapshotOptions,\n): string {\n\tlet queryString = \"\";\n\tfor (const key of Object.keys(queryParams)) {\n\t\tif (queryParams[key] !== undefined) {\n\t\t\tconst startChar = queryString === \"\" ? \"?\" : \"&\";\n\t\t\t// False-positive\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\tqueryString += `${startChar}${key}=${encodeURIComponent(queryParams[key])}`;\n\t\t}\n\t}\n\n\treturn queryString;\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
export { OdcApiSiteOrigin, OdcFileSiteOrigin } from "./constants";
|
|
6
|
-
export { ClpCompliantAppHeader, IClpCompliantAppHeader, ISharingLinkHeader, OdspFluidDataStoreLocator, SharingLinkHeader, } from "./contractsPublic";
|
|
7
|
-
export { checkUrl } from "./checkUrl";
|
|
8
|
-
export { createOdspUrl } from "./createOdspUrl";
|
|
9
|
-
export { getHashedDocumentId, ISnapshotContents } from "./odspPublicUtils";
|
|
10
|
-
export { getApiRoot, getOdspUrlParts, isOdcOrigin, isOdcUrl, isSpoUrl } from "./odspUrlHelper";
|
|
11
|
-
export { prefetchLatestSnapshot } from "./prefetchLatestSnapshot";
|
|
12
|
-
export { createLocalOdspDocumentServiceFactory, OdspDocumentServiceFactory, } from "./odspDocumentServiceFactory";
|
|
13
|
-
export { OdspDocumentServiceFactoryCore } from "./odspDocumentServiceFactoryCore";
|
|
14
|
-
export { OdspDocumentServiceFactoryWithCodeSplit } from "./odspDocumentServiceFactoryWithCodeSplit";
|
|
15
|
-
export { createOdspCreateContainerRequest } from "./createOdspCreateContainerRequest";
|
|
16
|
-
export { OdspDriverUrlResolver } from "./odspDriverUrlResolver";
|
|
17
|
-
export { OdspDriverUrlResolverForShareLink, ShareLinkFetcherProps, } from "./odspDriverUrlResolverForShareLink";
|
|
18
|
-
export { encodeOdspFluidDataStoreLocator, getLocatorFromOdspUrl, locatorQueryParamName, storeLocatorInOdspUrl, } from "./odspFluidFileLink";
|
|
19
|
-
export { IOdspCache, IPersistedFileCache, INonPersistentCache, IPrefetchSnapshotContents, } from "./odspCache";
|
|
20
|
-
export { ICacheAndTracker, type EpochTracker, FetchType, FetchTypeInternal } from "./epochTracker";
|
|
21
|
-
export { IOdspResponse, isOdspResolvedUrl } from "./odspUtils";
|
|
22
|
-
export { SnapshotFormatSupportType } from "./fetchSnapshot";
|
|
23
|
-
export { ISnapshotContentsWithProps, parseCompactSnapshotResponse } from "./compactSnapshotParser";
|
|
5
|
+
export { OdcApiSiteOrigin, OdcFileSiteOrigin } from "./constants.js";
|
|
6
|
+
export { ClpCompliantAppHeader, IClpCompliantAppHeader, ISharingLinkHeader, OdspFluidDataStoreLocator, SharingLinkHeader, } from "./contractsPublic.js";
|
|
7
|
+
export { checkUrl } from "./checkUrl.js";
|
|
8
|
+
export { createOdspUrl } from "./createOdspUrl.js";
|
|
9
|
+
export { getHashedDocumentId, ISnapshotContents } from "./odspPublicUtils.js";
|
|
10
|
+
export { getApiRoot, getOdspUrlParts, isOdcOrigin, isOdcUrl, isSpoUrl } from "./odspUrlHelper.js";
|
|
11
|
+
export { prefetchLatestSnapshot } from "./prefetchLatestSnapshot.js";
|
|
12
|
+
export { createLocalOdspDocumentServiceFactory, OdspDocumentServiceFactory, } from "./odspDocumentServiceFactory.js";
|
|
13
|
+
export { OdspDocumentServiceFactoryCore } from "./odspDocumentServiceFactoryCore.js";
|
|
14
|
+
export { OdspDocumentServiceFactoryWithCodeSplit } from "./odspDocumentServiceFactoryWithCodeSplit.js";
|
|
15
|
+
export { createOdspCreateContainerRequest } from "./createOdspCreateContainerRequest.js";
|
|
16
|
+
export { OdspDriverUrlResolver } from "./odspDriverUrlResolver.js";
|
|
17
|
+
export { OdspDriverUrlResolverForShareLink, ShareLinkFetcherProps, } from "./odspDriverUrlResolverForShareLink.js";
|
|
18
|
+
export { encodeOdspFluidDataStoreLocator, getLocatorFromOdspUrl, locatorQueryParamName, storeLocatorInOdspUrl, } from "./odspFluidFileLink.js";
|
|
19
|
+
export { IOdspCache, IPersistedFileCache, INonPersistentCache, IPrefetchSnapshotContents, } from "./odspCache.js";
|
|
20
|
+
export { ICacheAndTracker, type EpochTracker, FetchType, FetchTypeInternal, } from "./epochTracker.js";
|
|
21
|
+
export { IOdspResponse, isOdspResolvedUrl } from "./odspUtils.js";
|
|
22
|
+
export { SnapshotFormatSupportType } from "./fetchSnapshot.js";
|
|
23
|
+
export { ISnapshotContentsWithProps, parseCompactSnapshotResponse, } from "./compactSnapshotParser.js";
|
|
24
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EACN,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGlG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EACN,qCAAqC,EACrC,0BAA0B,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,uCAAuC,EAAE,MAAM,8CAA8C,CAAC;AAGvG,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAGzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACN,iCAAiC,EACjC,qBAAqB,GACrB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EACN,+BAA+B,EAC/B,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,gBAAgB,EAChB,KAAK,YAAY,EACjB,SAAS,EACT,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,GAC5B,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,54 +6,54 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.parseCompactSnapshotResponse = exports.SnapshotFormatSupportType = exports.isOdspResolvedUrl = exports.storeLocatorInOdspUrl = exports.locatorQueryParamName = exports.getLocatorFromOdspUrl = exports.encodeOdspFluidDataStoreLocator = exports.OdspDriverUrlResolverForShareLink = exports.OdspDriverUrlResolver = exports.createOdspCreateContainerRequest = exports.OdspDocumentServiceFactoryWithCodeSplit = exports.OdspDocumentServiceFactoryCore = exports.OdspDocumentServiceFactory = exports.createLocalOdspDocumentServiceFactory = exports.prefetchLatestSnapshot = exports.isSpoUrl = exports.isOdcUrl = exports.isOdcOrigin = exports.getOdspUrlParts = exports.getApiRoot = exports.getHashedDocumentId = exports.createOdspUrl = exports.checkUrl = exports.SharingLinkHeader = exports.ClpCompliantAppHeader = exports.OdcFileSiteOrigin = exports.OdcApiSiteOrigin = void 0;
|
|
8
8
|
// Constants
|
|
9
|
-
var
|
|
10
|
-
Object.defineProperty(exports, "OdcApiSiteOrigin", { enumerable: true, get: function () { return
|
|
11
|
-
Object.defineProperty(exports, "OdcFileSiteOrigin", { enumerable: true, get: function () { return
|
|
12
|
-
var
|
|
13
|
-
Object.defineProperty(exports, "ClpCompliantAppHeader", { enumerable: true, get: function () { return
|
|
14
|
-
Object.defineProperty(exports, "SharingLinkHeader", { enumerable: true, get: function () { return
|
|
9
|
+
var constants_js_1 = require("./constants.js");
|
|
10
|
+
Object.defineProperty(exports, "OdcApiSiteOrigin", { enumerable: true, get: function () { return constants_js_1.OdcApiSiteOrigin; } });
|
|
11
|
+
Object.defineProperty(exports, "OdcFileSiteOrigin", { enumerable: true, get: function () { return constants_js_1.OdcFileSiteOrigin; } });
|
|
12
|
+
var contractsPublic_js_1 = require("./contractsPublic.js");
|
|
13
|
+
Object.defineProperty(exports, "ClpCompliantAppHeader", { enumerable: true, get: function () { return contractsPublic_js_1.ClpCompliantAppHeader; } });
|
|
14
|
+
Object.defineProperty(exports, "SharingLinkHeader", { enumerable: true, get: function () { return contractsPublic_js_1.SharingLinkHeader; } });
|
|
15
15
|
// public utils
|
|
16
|
-
var
|
|
17
|
-
Object.defineProperty(exports, "checkUrl", { enumerable: true, get: function () { return
|
|
18
|
-
var
|
|
19
|
-
Object.defineProperty(exports, "createOdspUrl", { enumerable: true, get: function () { return
|
|
20
|
-
var
|
|
21
|
-
Object.defineProperty(exports, "getHashedDocumentId", { enumerable: true, get: function () { return
|
|
22
|
-
var
|
|
23
|
-
Object.defineProperty(exports, "getApiRoot", { enumerable: true, get: function () { return
|
|
24
|
-
Object.defineProperty(exports, "getOdspUrlParts", { enumerable: true, get: function () { return
|
|
25
|
-
Object.defineProperty(exports, "isOdcOrigin", { enumerable: true, get: function () { return
|
|
26
|
-
Object.defineProperty(exports, "isOdcUrl", { enumerable: true, get: function () { return
|
|
27
|
-
Object.defineProperty(exports, "isSpoUrl", { enumerable: true, get: function () { return
|
|
16
|
+
var checkUrl_js_1 = require("./checkUrl.js");
|
|
17
|
+
Object.defineProperty(exports, "checkUrl", { enumerable: true, get: function () { return checkUrl_js_1.checkUrl; } });
|
|
18
|
+
var createOdspUrl_js_1 = require("./createOdspUrl.js");
|
|
19
|
+
Object.defineProperty(exports, "createOdspUrl", { enumerable: true, get: function () { return createOdspUrl_js_1.createOdspUrl; } });
|
|
20
|
+
var odspPublicUtils_js_1 = require("./odspPublicUtils.js");
|
|
21
|
+
Object.defineProperty(exports, "getHashedDocumentId", { enumerable: true, get: function () { return odspPublicUtils_js_1.getHashedDocumentId; } });
|
|
22
|
+
var odspUrlHelper_js_1 = require("./odspUrlHelper.js");
|
|
23
|
+
Object.defineProperty(exports, "getApiRoot", { enumerable: true, get: function () { return odspUrlHelper_js_1.getApiRoot; } });
|
|
24
|
+
Object.defineProperty(exports, "getOdspUrlParts", { enumerable: true, get: function () { return odspUrlHelper_js_1.getOdspUrlParts; } });
|
|
25
|
+
Object.defineProperty(exports, "isOdcOrigin", { enumerable: true, get: function () { return odspUrlHelper_js_1.isOdcOrigin; } });
|
|
26
|
+
Object.defineProperty(exports, "isOdcUrl", { enumerable: true, get: function () { return odspUrlHelper_js_1.isOdcUrl; } });
|
|
27
|
+
Object.defineProperty(exports, "isSpoUrl", { enumerable: true, get: function () { return odspUrlHelper_js_1.isSpoUrl; } });
|
|
28
28
|
// prefetch latest snapshot before container load
|
|
29
|
-
var
|
|
30
|
-
Object.defineProperty(exports, "prefetchLatestSnapshot", { enumerable: true, get: function () { return
|
|
29
|
+
var prefetchLatestSnapshot_js_1 = require("./prefetchLatestSnapshot.js");
|
|
30
|
+
Object.defineProperty(exports, "prefetchLatestSnapshot", { enumerable: true, get: function () { return prefetchLatestSnapshot_js_1.prefetchLatestSnapshot; } });
|
|
31
31
|
// Factory
|
|
32
|
-
var
|
|
33
|
-
Object.defineProperty(exports, "createLocalOdspDocumentServiceFactory", { enumerable: true, get: function () { return
|
|
34
|
-
Object.defineProperty(exports, "OdspDocumentServiceFactory", { enumerable: true, get: function () { return
|
|
35
|
-
var
|
|
36
|
-
Object.defineProperty(exports, "OdspDocumentServiceFactoryCore", { enumerable: true, get: function () { return
|
|
37
|
-
var
|
|
38
|
-
Object.defineProperty(exports, "OdspDocumentServiceFactoryWithCodeSplit", { enumerable: true, get: function () { return
|
|
32
|
+
var odspDocumentServiceFactory_js_1 = require("./odspDocumentServiceFactory.js");
|
|
33
|
+
Object.defineProperty(exports, "createLocalOdspDocumentServiceFactory", { enumerable: true, get: function () { return odspDocumentServiceFactory_js_1.createLocalOdspDocumentServiceFactory; } });
|
|
34
|
+
Object.defineProperty(exports, "OdspDocumentServiceFactory", { enumerable: true, get: function () { return odspDocumentServiceFactory_js_1.OdspDocumentServiceFactory; } });
|
|
35
|
+
var odspDocumentServiceFactoryCore_js_1 = require("./odspDocumentServiceFactoryCore.js");
|
|
36
|
+
Object.defineProperty(exports, "OdspDocumentServiceFactoryCore", { enumerable: true, get: function () { return odspDocumentServiceFactoryCore_js_1.OdspDocumentServiceFactoryCore; } });
|
|
37
|
+
var odspDocumentServiceFactoryWithCodeSplit_js_1 = require("./odspDocumentServiceFactoryWithCodeSplit.js");
|
|
38
|
+
Object.defineProperty(exports, "OdspDocumentServiceFactoryWithCodeSplit", { enumerable: true, get: function () { return odspDocumentServiceFactoryWithCodeSplit_js_1.OdspDocumentServiceFactoryWithCodeSplit; } });
|
|
39
39
|
// File creation
|
|
40
|
-
var
|
|
41
|
-
Object.defineProperty(exports, "createOdspCreateContainerRequest", { enumerable: true, get: function () { return
|
|
40
|
+
var createOdspCreateContainerRequest_js_1 = require("./createOdspCreateContainerRequest.js");
|
|
41
|
+
Object.defineProperty(exports, "createOdspCreateContainerRequest", { enumerable: true, get: function () { return createOdspCreateContainerRequest_js_1.createOdspCreateContainerRequest; } });
|
|
42
42
|
// URI Resolver functionality, URI management
|
|
43
|
-
var
|
|
44
|
-
Object.defineProperty(exports, "OdspDriverUrlResolver", { enumerable: true, get: function () { return
|
|
45
|
-
var
|
|
46
|
-
Object.defineProperty(exports, "OdspDriverUrlResolverForShareLink", { enumerable: true, get: function () { return
|
|
43
|
+
var odspDriverUrlResolver_js_1 = require("./odspDriverUrlResolver.js");
|
|
44
|
+
Object.defineProperty(exports, "OdspDriverUrlResolver", { enumerable: true, get: function () { return odspDriverUrlResolver_js_1.OdspDriverUrlResolver; } });
|
|
45
|
+
var odspDriverUrlResolverForShareLink_js_1 = require("./odspDriverUrlResolverForShareLink.js");
|
|
46
|
+
Object.defineProperty(exports, "OdspDriverUrlResolverForShareLink", { enumerable: true, get: function () { return odspDriverUrlResolverForShareLink_js_1.OdspDriverUrlResolverForShareLink; } });
|
|
47
47
|
// It's used by URL resolve code, but also has some public functions
|
|
48
|
-
var
|
|
49
|
-
Object.defineProperty(exports, "encodeOdspFluidDataStoreLocator", { enumerable: true, get: function () { return
|
|
50
|
-
Object.defineProperty(exports, "getLocatorFromOdspUrl", { enumerable: true, get: function () { return
|
|
51
|
-
Object.defineProperty(exports, "locatorQueryParamName", { enumerable: true, get: function () { return
|
|
52
|
-
Object.defineProperty(exports, "storeLocatorInOdspUrl", { enumerable: true, get: function () { return
|
|
53
|
-
var
|
|
54
|
-
Object.defineProperty(exports, "isOdspResolvedUrl", { enumerable: true, get: function () { return
|
|
55
|
-
var
|
|
56
|
-
Object.defineProperty(exports, "SnapshotFormatSupportType", { enumerable: true, get: function () { return
|
|
57
|
-
var
|
|
58
|
-
Object.defineProperty(exports, "parseCompactSnapshotResponse", { enumerable: true, get: function () { return
|
|
48
|
+
var odspFluidFileLink_js_1 = require("./odspFluidFileLink.js");
|
|
49
|
+
Object.defineProperty(exports, "encodeOdspFluidDataStoreLocator", { enumerable: true, get: function () { return odspFluidFileLink_js_1.encodeOdspFluidDataStoreLocator; } });
|
|
50
|
+
Object.defineProperty(exports, "getLocatorFromOdspUrl", { enumerable: true, get: function () { return odspFluidFileLink_js_1.getLocatorFromOdspUrl; } });
|
|
51
|
+
Object.defineProperty(exports, "locatorQueryParamName", { enumerable: true, get: function () { return odspFluidFileLink_js_1.locatorQueryParamName; } });
|
|
52
|
+
Object.defineProperty(exports, "storeLocatorInOdspUrl", { enumerable: true, get: function () { return odspFluidFileLink_js_1.storeLocatorInOdspUrl; } });
|
|
53
|
+
var odspUtils_js_1 = require("./odspUtils.js");
|
|
54
|
+
Object.defineProperty(exports, "isOdspResolvedUrl", { enumerable: true, get: function () { return odspUtils_js_1.isOdspResolvedUrl; } });
|
|
55
|
+
var fetchSnapshot_js_1 = require("./fetchSnapshot.js");
|
|
56
|
+
Object.defineProperty(exports, "SnapshotFormatSupportType", { enumerable: true, get: function () { return fetchSnapshot_js_1.SnapshotFormatSupportType; } });
|
|
57
|
+
var compactSnapshotParser_js_1 = require("./compactSnapshotParser.js");
|
|
58
|
+
Object.defineProperty(exports, "parseCompactSnapshotResponse", { enumerable: true, get: function () { return compactSnapshotParser_js_1.parseCompactSnapshotResponse; } });
|
|
59
59
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,YAAY;AACZ
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,YAAY;AACZ,+CAAqE;AAA5D,gHAAA,gBAAgB,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAE5C,2DAM8B;AAL7B,2HAAA,qBAAqB,OAAA;AAIrB,uHAAA,iBAAiB,OAAA;AAGlB,eAAe;AACf,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,2DAA8E;AAArE,yHAAA,mBAAmB,OAAA;AAC5B,uDAAkG;AAAzF,8GAAA,UAAU,OAAA;AAAE,mHAAA,eAAe,OAAA;AAAE,+GAAA,WAAW,OAAA;AAAE,4GAAA,QAAQ,OAAA;AAAE,4GAAA,QAAQ,OAAA;AAErE,iDAAiD;AACjD,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAE/B,UAAU;AACV,iFAGyC;AAFxC,sJAAA,qCAAqC,OAAA;AACrC,2IAAA,0BAA0B,OAAA;AAE3B,yFAAqF;AAA5E,mJAAA,8BAA8B,OAAA;AACvC,2GAAuG;AAA9F,qKAAA,uCAAuC,OAAA;AAEhD,gBAAgB;AAChB,6FAAyF;AAAhF,uJAAA,gCAAgC,OAAA;AAEzC,6CAA6C;AAC7C,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,+FAGgD;AAF/C,yJAAA,iCAAiC,OAAA;AAIlC,oEAAoE;AACpE,+DAKgC;AAJ/B,uIAAA,+BAA+B,OAAA;AAC/B,6HAAA,qBAAqB,OAAA;AACrB,6HAAA,qBAAqB,OAAA;AACrB,6HAAA,qBAAqB,OAAA;AAetB,+CAAkE;AAA1C,iHAAA,iBAAiB,OAAA;AACzC,uDAA+D;AAAtD,6HAAA,yBAAyB,OAAA;AAClC,uEAGoC;AADnC,wIAAA,4BAA4B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// Constants\nexport { OdcApiSiteOrigin, OdcFileSiteOrigin } from \"./constants.js\";\n\nexport {\n\tClpCompliantAppHeader,\n\tIClpCompliantAppHeader,\n\tISharingLinkHeader,\n\tOdspFluidDataStoreLocator,\n\tSharingLinkHeader,\n} from \"./contractsPublic.js\";\n\n// public utils\nexport { checkUrl } from \"./checkUrl.js\";\nexport { createOdspUrl } from \"./createOdspUrl.js\";\nexport { getHashedDocumentId, ISnapshotContents } from \"./odspPublicUtils.js\";\nexport { getApiRoot, getOdspUrlParts, isOdcOrigin, isOdcUrl, isSpoUrl } from \"./odspUrlHelper.js\";\n\n// prefetch latest snapshot before container load\nexport { prefetchLatestSnapshot } from \"./prefetchLatestSnapshot.js\";\n\n// Factory\nexport {\n\tcreateLocalOdspDocumentServiceFactory,\n\tOdspDocumentServiceFactory,\n} from \"./odspDocumentServiceFactory.js\";\nexport { OdspDocumentServiceFactoryCore } from \"./odspDocumentServiceFactoryCore.js\";\nexport { OdspDocumentServiceFactoryWithCodeSplit } from \"./odspDocumentServiceFactoryWithCodeSplit.js\";\n\n// File creation\nexport { createOdspCreateContainerRequest } from \"./createOdspCreateContainerRequest.js\";\n\n// URI Resolver functionality, URI management\nexport { OdspDriverUrlResolver } from \"./odspDriverUrlResolver.js\";\nexport {\n\tOdspDriverUrlResolverForShareLink,\n\tShareLinkFetcherProps,\n} from \"./odspDriverUrlResolverForShareLink.js\";\n\n// It's used by URL resolve code, but also has some public functions\nexport {\n\tencodeOdspFluidDataStoreLocator,\n\tgetLocatorFromOdspUrl,\n\tlocatorQueryParamName,\n\tstoreLocatorInOdspUrl,\n} from \"./odspFluidFileLink.js\";\n\nexport {\n\tIOdspCache,\n\tIPersistedFileCache,\n\tINonPersistentCache,\n\tIPrefetchSnapshotContents,\n} from \"./odspCache.js\";\nexport {\n\tICacheAndTracker,\n\ttype EpochTracker,\n\tFetchType,\n\tFetchTypeInternal,\n} from \"./epochTracker.js\";\nexport { IOdspResponse, isOdspResolvedUrl } from \"./odspUtils.js\";\nexport { SnapshotFormatSupportType } from \"./fetchSnapshot.js\";\nexport {\n\tISnapshotContentsWithProps,\n\tparseCompactSnapshotResponse,\n} from \"./compactSnapshotParser.js\";\n"]}
|
|
@@ -23,6 +23,6 @@ export declare class LocalOdspDocumentService extends TypedEventEmitter<IDocumen
|
|
|
23
23
|
connectToStorage(): Promise<IDocumentStorageService>;
|
|
24
24
|
connectToDeltaStorage(): Promise<IDocumentDeltaStorageService>;
|
|
25
25
|
connectToDeltaStream(_client: IClient): never;
|
|
26
|
-
dispose(
|
|
26
|
+
dispose(error?: unknown): void;
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=localOdspDocumentService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localOdspDocumentService.d.ts","sourceRoot":"","sources":["../../src/localOdspDriver/localOdspDocumentService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EACN,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAI/D;;GAEG;AACH,qBAAa,wBACZ,SAAQ,iBAAiB,CAAC,sBAAsB,CAChD,YAAW,gBAAgB;IAM1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IANxB,QAAQ;;MAAyB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAkC;gBAGvC,eAAe,EAAE,gBAAgB,EACjC,MAAM,EAAE,mBAAmB,EAC3B,aAAa,EAAE,UAAU,GAAG,MAAM;IAKpD,IAAW,WAAW,IAAI,YAAY,CAErC;IAEY,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAKpD,qBAAqB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAIpE,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK;IAQ7C,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"localOdspDocumentService.d.ts","sourceRoot":"","sources":["../../src/localOdspDriver/localOdspDocumentService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EACN,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAI/D;;GAEG;AACH,qBAAa,wBACZ,SAAQ,iBAAiB,CAAC,sBAAsB,CAChD,YAAW,gBAAgB;IAM1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IANxB,QAAQ;;MAAyB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAkC;gBAGvC,eAAe,EAAE,gBAAgB,EACjC,MAAM,EAAE,mBAAmB,EAC3B,aAAa,EAAE,UAAU,GAAG,MAAM;IAKpD,IAAW,WAAW,IAAI,YAAY,CAErC;IAEY,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAKpD,qBAAqB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAIpE,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK;IAQ7C,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;CAGrC"}
|
|
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.LocalOdspDocumentService = void 0;
|
|
8
8
|
const client_utils_1 = require("@fluid-internal/client-utils");
|
|
9
9
|
const driver_utils_1 = require("@fluidframework/driver-utils");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const localOdspDeltaStorageService_js_1 = require("./localOdspDeltaStorageService.js");
|
|
11
|
+
const localOdspDocumentStorageManager_js_1 = require("./localOdspDocumentStorageManager.js");
|
|
12
12
|
/**
|
|
13
13
|
* IDocumentService implementation that provides explicit snapshot to the document storage service.
|
|
14
14
|
*/
|
|
@@ -24,18 +24,18 @@ class LocalOdspDocumentService extends client_utils_1.TypedEventEmitter {
|
|
|
24
24
|
return this.odspResolvedUrl;
|
|
25
25
|
}
|
|
26
26
|
async connectToStorage() {
|
|
27
|
-
this.storageManager = new
|
|
27
|
+
this.storageManager = new localOdspDocumentStorageManager_js_1.LocalOdspDocumentStorageService(this.logger, this.localSnapshot);
|
|
28
28
|
return this.storageManager;
|
|
29
29
|
}
|
|
30
30
|
async connectToDeltaStorage() {
|
|
31
|
-
return new
|
|
31
|
+
return new localOdspDeltaStorageService_js_1.LocalOdspDeltaStorageService(this.logger, this.storageManager?.ops ?? []);
|
|
32
32
|
}
|
|
33
33
|
connectToDeltaStream(_client) {
|
|
34
34
|
const toThrow = new driver_utils_1.UsageError('"connectToDeltaStream" is not supported by LocalOdspDocumentService');
|
|
35
35
|
this.logger.sendErrorEvent({ eventName: "UnsupportedUsage" }, toThrow);
|
|
36
36
|
throw toThrow;
|
|
37
37
|
}
|
|
38
|
-
dispose(
|
|
38
|
+
dispose(error) {
|
|
39
39
|
// Do nothing
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localOdspDocumentService.js","sourceRoot":"","sources":["../../src/localOdspDriver/localOdspDocumentService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAAiE;AASjE,+DAA0D;AAG1D,
|
|
1
|
+
{"version":3,"file":"localOdspDocumentService.js","sourceRoot":"","sources":["../../src/localOdspDriver/localOdspDocumentService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAAiE;AASjE,+DAA0D;AAG1D,uFAAiF;AACjF,6FAAuF;AAEvF;;GAEG;AACH,MAAa,wBACZ,SAAQ,gCAAyC;IAMjD,YACkB,eAAiC,EACjC,MAA2B,EAC3B,aAAkC;QAEnD,KAAK,EAAE,CAAC;QAJS,oBAAe,GAAf,eAAe,CAAkB;QACjC,WAAM,GAAN,MAAM,CAAqB;QAC3B,kBAAa,GAAb,aAAa,CAAqB;QAN7C,aAAQ,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IASxC,CAAC;IAED,IAAW,WAAW;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,oEAA+B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,qBAAqB;QACjC,OAAO,IAAI,8DAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IAEM,oBAAoB,CAAC,OAAgB;QAC3C,MAAM,OAAO,GAAG,IAAI,yBAAU,CAC7B,qEAAqE,CACrE,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC;QACvE,MAAM,OAAO,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,KAAe;QAC7B,aAAa;IACd,CAAC;CACD;AAvCD,4DAuCC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TypedEventEmitter } from \"@fluid-internal/client-utils\";\nimport { ITelemetryLoggerExt } from \"@fluidframework/telemetry-utils\";\nimport {\n\tIDocumentDeltaStorageService,\n\tIDocumentService,\n\tIDocumentServiceEvents,\n\tIDocumentStorageService,\n\tIResolvedUrl,\n} from \"@fluidframework/driver-definitions\";\nimport { UsageError } from \"@fluidframework/driver-utils\";\nimport { IOdspResolvedUrl } from \"@fluidframework/odsp-driver-definitions\";\nimport { IClient } from \"@fluidframework/protocol-definitions\";\nimport { LocalOdspDeltaStorageService } from \"./localOdspDeltaStorageService.js\";\nimport { LocalOdspDocumentStorageService } from \"./localOdspDocumentStorageManager.js\";\n\n/**\n * IDocumentService implementation that provides explicit snapshot to the document storage service.\n */\nexport class LocalOdspDocumentService\n\textends TypedEventEmitter<IDocumentServiceEvents>\n\timplements IDocumentService\n{\n\tpublic policies = { storageOnly: true };\n\tprivate storageManager?: LocalOdspDocumentStorageService;\n\n\tconstructor(\n\t\tprivate readonly odspResolvedUrl: IOdspResolvedUrl,\n\t\tprivate readonly logger: ITelemetryLoggerExt,\n\t\tprivate readonly localSnapshot: Uint8Array | string,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic get resolvedUrl(): IResolvedUrl {\n\t\treturn this.odspResolvedUrl;\n\t}\n\n\tpublic async connectToStorage(): Promise<IDocumentStorageService> {\n\t\tthis.storageManager = new LocalOdspDocumentStorageService(this.logger, this.localSnapshot);\n\t\treturn this.storageManager;\n\t}\n\n\tpublic async connectToDeltaStorage(): Promise<IDocumentDeltaStorageService> {\n\t\treturn new LocalOdspDeltaStorageService(this.logger, this.storageManager?.ops ?? []);\n\t}\n\n\tpublic connectToDeltaStream(_client: IClient): never {\n\t\tconst toThrow = new UsageError(\n\t\t\t'\"connectToDeltaStream\" is not supported by LocalOdspDocumentService',\n\t\t);\n\t\tthis.logger.sendErrorEvent({ eventName: \"UnsupportedUsage\" }, toThrow);\n\t\tthrow toThrow;\n\t}\n\n\tpublic dispose(error?: unknown): void {\n\t\t// Do nothing\n\t}\n}\n"]}
|
|
@@ -4,20 +4,22 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { IDocumentService, IResolvedUrl } from "@fluidframework/driver-definitions";
|
|
6
6
|
import { ISummaryTree } from "@fluidframework/protocol-definitions";
|
|
7
|
-
import { ITelemetryBaseLogger
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
8
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
9
|
+
import { ICacheAndTracker } from "../epochTracker.js";
|
|
10
|
+
import { OdspDocumentServiceFactoryCore } from "../odspDocumentServiceFactoryCore.js";
|
|
10
11
|
/**
|
|
11
12
|
* Factory for creating sharepoint document service with a provided snapshot.
|
|
12
|
-
*
|
|
13
|
+
*
|
|
14
|
+
* @remarks Use if you don't want to connect to any kind of external/internal storages and want to provide
|
|
13
15
|
* content directly.
|
|
14
16
|
*/
|
|
15
17
|
export declare class LocalOdspDocumentServiceFactory extends OdspDocumentServiceFactoryCore {
|
|
16
18
|
private readonly localSnapshot;
|
|
17
|
-
private logger;
|
|
19
|
+
private readonly logger;
|
|
18
20
|
constructor(localSnapshot: Uint8Array | string);
|
|
19
21
|
private throwUnsupportedUsageError;
|
|
20
22
|
createContainer(_createNewSummary: ISummaryTree | undefined, _createNewResolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, _clientIsSummarizer?: boolean): never;
|
|
21
|
-
protected createDocumentServiceCore(resolvedUrl: IResolvedUrl, odspLogger:
|
|
23
|
+
protected createDocumentServiceCore(resolvedUrl: IResolvedUrl, odspLogger: ITelemetryLoggerExt, _cacheAndTrackerArg?: ICacheAndTracker, _clientIsSummarizer?: boolean): Promise<IDocumentService>;
|
|
22
24
|
}
|
|
23
25
|
//# sourceMappingURL=localOdspDocumentServiceFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localOdspDocumentServiceFactory.d.ts","sourceRoot":"","sources":["../../src/localOdspDriver/localOdspDocumentServiceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEpF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"localOdspDocumentServiceFactory.d.ts","sourceRoot":"","sources":["../../src/localOdspDriver/localOdspDocumentServiceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEpF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAGtF;;;;;GAKG;AACH,qBAAa,+BAAgC,SAAQ,8BAA8B;IAGtE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;gBAErC,aAAa,EAAE,UAAU,GAAG,MAAM;IAO/D,OAAO,CAAC,0BAA0B;IAQ3B,eAAe,CACrB,iBAAiB,EAAE,YAAY,GAAG,SAAS,EAC3C,qBAAqB,EAAE,YAAY,EACnC,MAAM,CAAC,EAAE,oBAAoB,EAC7B,mBAAmB,CAAC,EAAE,OAAO,GAC3B,KAAK;cAQQ,yBAAyB,CACxC,WAAW,EAAE,YAAY,EACzB,UAAU,EAAE,mBAAmB,EAC/B,mBAAmB,CAAC,EAAE,gBAAgB,EACtC,mBAAmB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,gBAAgB,CAAC;CAa5B"}
|
|
@@ -6,27 +6,29 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.LocalOdspDocumentServiceFactory = void 0;
|
|
8
8
|
const driver_utils_1 = require("@fluidframework/driver-utils");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
9
|
+
const odspUtils_js_1 = require("../odspUtils.js");
|
|
10
|
+
const odspDocumentServiceFactoryCore_js_1 = require("../odspDocumentServiceFactoryCore.js");
|
|
11
|
+
const localOdspDocumentService_js_1 = require("./localOdspDocumentService.js");
|
|
12
12
|
/**
|
|
13
13
|
* Factory for creating sharepoint document service with a provided snapshot.
|
|
14
|
-
*
|
|
14
|
+
*
|
|
15
|
+
* @remarks Use if you don't want to connect to any kind of external/internal storages and want to provide
|
|
15
16
|
* content directly.
|
|
16
17
|
*/
|
|
17
|
-
class LocalOdspDocumentServiceFactory extends
|
|
18
|
+
class LocalOdspDocumentServiceFactory extends odspDocumentServiceFactoryCore_js_1.OdspDocumentServiceFactoryCore {
|
|
18
19
|
constructor(localSnapshot) {
|
|
19
20
|
super((_options) => this.throwUnsupportedUsageError("Getting storage token"), (_options) => this.throwUnsupportedUsageError("Getting websocket token"));
|
|
20
21
|
this.localSnapshot = localSnapshot;
|
|
22
|
+
this.logger = (0, odspUtils_js_1.createOdspLogger)();
|
|
21
23
|
}
|
|
22
24
|
throwUnsupportedUsageError(unsupportedFuncName) {
|
|
23
25
|
const toThrow = new driver_utils_1.UsageError(`${unsupportedFuncName} is not supported by LocalOdspDocumentServiceFactory`);
|
|
24
|
-
this.logger
|
|
26
|
+
this.logger.sendErrorEvent({ eventName: "UnsupportedUsage" }, toThrow);
|
|
25
27
|
throw toThrow;
|
|
26
28
|
}
|
|
27
29
|
createContainer(_createNewSummary, _createNewResolvedUrl, logger, _clientIsSummarizer) {
|
|
28
30
|
const toThrow = new driver_utils_1.UsageError('"createContainer" is not supported by LocalOdspDocumentServiceFactory');
|
|
29
|
-
|
|
31
|
+
this.logger.sendErrorEvent({ eventName: "UnsupportedUsage" }, toThrow);
|
|
30
32
|
throw toThrow;
|
|
31
33
|
}
|
|
32
34
|
async createDocumentServiceCore(resolvedUrl, odspLogger, _cacheAndTrackerArg, _clientIsSummarizer) {
|
|
@@ -36,8 +38,7 @@ class LocalOdspDocumentServiceFactory extends odspDocumentServiceFactoryCore_1.O
|
|
|
36
38
|
if (_clientIsSummarizer) {
|
|
37
39
|
throw new driver_utils_1.UsageError('Invalid usage. "_clientIsSummarizer" should not be provided');
|
|
38
40
|
}
|
|
39
|
-
|
|
40
|
-
return new localOdspDocumentService_1.LocalOdspDocumentService((0, odspUtils_1.getOdspResolvedUrl)(resolvedUrl), odspLogger, this.localSnapshot);
|
|
41
|
+
return new localOdspDocumentService_js_1.LocalOdspDocumentService((0, odspUtils_js_1.getOdspResolvedUrl)(resolvedUrl), odspLogger, this.localSnapshot);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
exports.LocalOdspDocumentServiceFactory = LocalOdspDocumentServiceFactory;
|