@fluidframework/odsp-driver 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.224419
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.js +12 -12
- package/.mocharc.js +12 -0
- package/CHANGELOG.md +162 -0
- package/README.md +56 -0
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/odsp-driver.api.md +310 -0
- package/dist/{ReadBufferUtils.js → ReadBufferUtils.cjs} +16 -9
- package/dist/ReadBufferUtils.cjs.map +1 -0
- package/dist/ReadBufferUtils.d.ts.map +1 -1
- package/dist/{WriteBufferUtils.js → WriteBufferUtils.cjs} +73 -69
- package/dist/WriteBufferUtils.cjs.map +1 -0
- package/dist/WriteBufferUtils.d.ts +3 -5
- package/dist/WriteBufferUtils.d.ts.map +1 -1
- package/dist/{checkUrl.js → checkUrl.cjs} +7 -6
- package/dist/checkUrl.cjs.map +1 -0
- package/dist/checkUrl.d.ts +1 -0
- package/dist/checkUrl.d.ts.map +1 -1
- package/dist/compactSnapshotParser.cjs +207 -0
- package/dist/compactSnapshotParser.cjs.map +1 -0
- package/dist/compactSnapshotParser.d.ts +12 -3
- package/dist/compactSnapshotParser.d.ts.map +1 -1
- package/dist/{compactSnapshotWriter.js → compactSnapshotWriter.cjs} +43 -33
- package/dist/compactSnapshotWriter.cjs.map +1 -0
- package/dist/compactSnapshotWriter.d.ts +2 -3
- package/dist/compactSnapshotWriter.d.ts.map +1 -1
- package/dist/{constants.js → constants.cjs} +7 -1
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/{contracts.js → contracts.cjs} +1 -1
- package/dist/contracts.cjs.map +1 -0
- package/dist/contracts.d.ts +16 -53
- package/dist/contracts.d.ts.map +1 -1
- package/dist/{contractsPublic.js → contractsPublic.cjs} +9 -3
- package/dist/contractsPublic.cjs.map +1 -0
- package/dist/contractsPublic.d.ts +15 -0
- package/dist/contractsPublic.d.ts.map +1 -1
- package/dist/createFile.cjs +177 -0
- package/dist/createFile.cjs.map +1 -0
- package/dist/createFile.d.ts +6 -10
- package/dist/createFile.d.ts.map +1 -1
- package/dist/createNewContainerOnExistingFile.cjs +60 -0
- package/dist/createNewContainerOnExistingFile.cjs.map +1 -0
- package/dist/createNewContainerOnExistingFile.d.ts +22 -0
- package/dist/createNewContainerOnExistingFile.d.ts.map +1 -0
- package/dist/createNewModule.cjs +12 -0
- package/dist/createNewModule.cjs.map +1 -0
- package/dist/createNewModule.d.ts +7 -0
- package/dist/createNewModule.d.ts.map +1 -0
- package/dist/createNewUtils.cjs +203 -0
- package/dist/createNewUtils.cjs.map +1 -0
- package/dist/createNewUtils.d.ts +16 -0
- package/dist/createNewUtils.d.ts.map +1 -1
- package/dist/{createOdspCreateContainerRequest.js → createOdspCreateContainerRequest.cjs} +8 -4
- package/dist/createOdspCreateContainerRequest.cjs.map +1 -0
- package/dist/createOdspCreateContainerRequest.d.ts +5 -3
- package/dist/createOdspCreateContainerRequest.d.ts.map +1 -1
- package/dist/{createOdspUrl.js → createOdspUrl.cjs} +2 -1
- package/dist/createOdspUrl.cjs.map +1 -0
- package/dist/createOdspUrl.d.ts +1 -0
- package/dist/createOdspUrl.d.ts.map +1 -1
- package/dist/{epochTracker.js → epochTracker.cjs} +102 -48
- package/dist/epochTracker.cjs.map +1 -0
- package/dist/epochTracker.d.ts +32 -8
- package/dist/epochTracker.d.ts.map +1 -1
- package/dist/{fetch.js → fetch.cjs} +1 -1
- package/dist/fetch.cjs.map +1 -0
- package/dist/fetch.d.ts +1 -1
- package/dist/fetch.d.ts.map +1 -1
- package/dist/{fetchSnapshot.js → fetchSnapshot.cjs} +192 -176
- package/dist/fetchSnapshot.cjs.map +1 -0
- package/dist/fetchSnapshot.d.ts +10 -5
- package/dist/fetchSnapshot.d.ts.map +1 -1
- package/dist/{getFileLink.js → getFileLink.cjs} +52 -41
- package/dist/getFileLink.cjs.map +1 -0
- package/dist/getFileLink.d.ts +4 -7
- package/dist/getFileLink.d.ts.map +1 -1
- package/dist/{getQueryString.js → getQueryString.cjs} +1 -1
- package/dist/getQueryString.cjs.map +1 -0
- package/dist/getQueryString.d.ts.map +1 -1
- package/dist/{getUrlAndHeadersWithAuth.js → getUrlAndHeadersWithAuth.cjs} +4 -2
- package/dist/getUrlAndHeadersWithAuth.cjs.map +1 -0
- package/dist/getUrlAndHeadersWithAuth.d.ts.map +1 -1
- package/dist/index.cjs +59 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/localOdspDriver/localOdspDeltaStorageService.cjs +35 -0
- package/dist/localOdspDriver/localOdspDeltaStorageService.cjs.map +1 -0
- package/dist/localOdspDriver/localOdspDeltaStorageService.d.ts +17 -0
- package/dist/localOdspDriver/localOdspDeltaStorageService.d.ts.map +1 -0
- package/dist/localOdspDriver/{localOdspDocumentService.js → localOdspDocumentService.cjs} +7 -5
- package/dist/localOdspDriver/localOdspDocumentService.cjs.map +1 -0
- package/dist/localOdspDriver/localOdspDocumentService.d.ts +3 -2
- package/dist/localOdspDriver/localOdspDocumentService.d.ts.map +1 -1
- package/dist/localOdspDriver/{localOdspDocumentServiceFactory.js → localOdspDocumentServiceFactory.cjs} +9 -10
- package/dist/localOdspDriver/localOdspDocumentServiceFactory.cjs.map +1 -0
- package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts +2 -3
- package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +1 -1
- package/dist/localOdspDriver/{localOdspDocumentStorageManager.js → localOdspDocumentStorageManager.cjs} +13 -11
- package/dist/localOdspDriver/localOdspDocumentStorageManager.cjs.map +1 -0
- package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts +2 -2
- package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +1 -1
- package/dist/odsp-driver-alpha.d.ts +497 -0
- package/dist/odsp-driver-beta.d.ts +159 -0
- package/dist/odsp-driver-public.d.ts +159 -0
- package/dist/odsp-driver-untrimmed.d.ts +566 -0
- package/dist/{odspCache.js → odspCache.cjs} +9 -10
- package/dist/odspCache.cjs.map +1 -0
- package/dist/odspCache.d.ts +19 -4
- package/dist/odspCache.d.ts.map +1 -1
- package/dist/odspDelayLoadedDeltaStream.cjs +291 -0
- package/dist/odspDelayLoadedDeltaStream.cjs.map +1 -0
- package/dist/odspDelayLoadedDeltaStream.d.ts +75 -0
- package/dist/odspDelayLoadedDeltaStream.d.ts.map +1 -0
- package/dist/{odspDeltaStorageService.js → odspDeltaStorageService.cjs} +70 -71
- package/dist/odspDeltaStorageService.cjs.map +1 -0
- package/dist/odspDeltaStorageService.d.ts +8 -6
- package/dist/odspDeltaStorageService.d.ts.map +1 -1
- package/dist/{odspDocumentDeltaConnection.js → odspDocumentDeltaConnection.cjs} +224 -113
- package/dist/odspDocumentDeltaConnection.cjs.map +1 -0
- package/dist/odspDocumentDeltaConnection.d.ts +32 -12
- package/dist/odspDocumentDeltaConnection.d.ts.map +1 -1
- package/dist/odspDocumentService.cjs +225 -0
- package/dist/odspDocumentService.cjs.map +1 -0
- package/dist/odspDocumentService.d.ts +11 -25
- package/dist/odspDocumentService.d.ts.map +1 -1
- package/dist/{odspDocumentServiceFactory.js → odspDocumentServiceFactory.cjs} +8 -5
- package/dist/odspDocumentServiceFactory.cjs.map +1 -0
- package/dist/odspDocumentServiceFactory.d.ts +4 -0
- package/dist/odspDocumentServiceFactory.d.ts.map +1 -1
- package/dist/odspDocumentServiceFactoryCore.cjs +196 -0
- package/dist/odspDocumentServiceFactoryCore.cjs.map +1 -0
- package/dist/odspDocumentServiceFactoryCore.d.ts +16 -11
- package/dist/odspDocumentServiceFactoryCore.d.ts.map +1 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.cjs +20 -0
- package/dist/odspDocumentServiceFactoryWithCodeSplit.cjs.map +1 -0
- package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts +5 -0
- package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
- package/dist/odspDocumentStorageManager.cjs +490 -0
- package/dist/odspDocumentStorageManager.cjs.map +1 -0
- package/dist/odspDocumentStorageManager.d.ts +11 -5
- package/dist/odspDocumentStorageManager.d.ts.map +1 -1
- package/dist/{odspDocumentStorageServiceBase.js → odspDocumentStorageServiceBase.cjs} +32 -34
- package/dist/odspDocumentStorageServiceBase.cjs.map +1 -0
- package/dist/odspDocumentStorageServiceBase.d.ts +7 -9
- package/dist/odspDocumentStorageServiceBase.d.ts.map +1 -1
- package/dist/{odspDriverUrlResolver.js → odspDriverUrlResolver.cjs} +50 -36
- package/dist/odspDriverUrlResolver.cjs.map +1 -0
- package/dist/odspDriverUrlResolver.d.ts +12 -0
- package/dist/odspDriverUrlResolver.d.ts.map +1 -1
- package/dist/{odspDriverUrlResolverForShareLink.js → odspDriverUrlResolverForShareLink.cjs} +37 -26
- package/dist/odspDriverUrlResolverForShareLink.cjs.map +1 -0
- package/dist/odspDriverUrlResolverForShareLink.d.ts +5 -3
- package/dist/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
- package/dist/{odspError.js → odspError.cjs} +7 -3
- package/dist/odspError.cjs.map +1 -0
- package/dist/odspError.d.ts.map +1 -1
- package/dist/{odspFluidFileLink.js → odspFluidFileLink.cjs} +25 -18
- package/dist/odspFluidFileLink.cjs.map +1 -0
- package/dist/odspFluidFileLink.d.ts +10 -1
- package/dist/odspFluidFileLink.d.ts.map +1 -1
- package/dist/odspLocationRedirection.cjs +24 -0
- package/dist/odspLocationRedirection.cjs.map +1 -0
- package/dist/odspLocationRedirection.d.ts +14 -0
- package/dist/odspLocationRedirection.d.ts.map +1 -0
- package/dist/{odspPublicUtils.js → odspPublicUtils.cjs} +7 -4
- package/dist/odspPublicUtils.cjs.map +1 -0
- package/dist/odspPublicUtils.d.ts +6 -0
- package/dist/odspPublicUtils.d.ts.map +1 -1
- package/dist/{odspSnapshotParser.js → odspSnapshotParser.cjs} +11 -12
- package/dist/odspSnapshotParser.cjs.map +1 -0
- package/dist/odspSnapshotParser.d.ts.map +1 -1
- package/dist/{odspSummaryUploadManager.js → odspSummaryUploadManager.cjs} +47 -34
- package/dist/odspSummaryUploadManager.cjs.map +1 -0
- package/dist/odspSummaryUploadManager.d.ts +7 -4
- package/dist/odspSummaryUploadManager.d.ts.map +1 -1
- package/dist/{odspUrlHelper.js → odspUrlHelper.cjs} +9 -3
- package/dist/odspUrlHelper.cjs.map +1 -0
- package/dist/odspUrlHelper.d.ts +5 -0
- package/dist/odspUrlHelper.d.ts.map +1 -1
- package/dist/{odspUtils.js → odspUtils.cjs} +118 -30
- package/dist/odspUtils.cjs.map +1 -0
- package/dist/odspUtils.d.ts +35 -6
- package/dist/odspUtils.d.ts.map +1 -1
- package/dist/{opsCaching.js → opsCaching.cjs} +25 -9
- package/dist/opsCaching.cjs.map +1 -0
- package/dist/opsCaching.d.ts +3 -3
- package/dist/opsCaching.d.ts.map +1 -1
- package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
- package/dist/packageVersion.cjs.map +1 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/prefetchLatestSnapshot.cjs +100 -0
- package/dist/prefetchLatestSnapshot.cjs.map +1 -0
- package/dist/prefetchLatestSnapshot.d.ts +12 -7
- package/dist/prefetchLatestSnapshot.d.ts.map +1 -1
- package/dist/{retryErrorsStorageAdapter.js → retryErrorsStorageAdapter.cjs} +13 -6
- package/dist/retryErrorsStorageAdapter.cjs.map +1 -0
- package/dist/retryErrorsStorageAdapter.d.ts +5 -4
- package/dist/retryErrorsStorageAdapter.d.ts.map +1 -1
- package/dist/{retryUtils.js → retryUtils.cjs} +30 -14
- package/dist/retryUtils.cjs.map +1 -0
- package/dist/retryUtils.d.ts +2 -2
- package/dist/retryUtils.d.ts.map +1 -1
- package/dist/socketModule.cjs +10 -0
- package/dist/socketModule.cjs.map +1 -0
- package/dist/socketModule.d.ts +7 -0
- package/dist/socketModule.d.ts.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/{vroom.js → vroom.cjs} +24 -9
- package/dist/vroom.cjs.map +1 -0
- package/dist/vroom.d.ts +4 -4
- package/dist/vroom.d.ts.map +1 -1
- package/dist/{zipItDataRepresentationUtils.js → zipItDataRepresentationUtils.cjs} +227 -118
- package/dist/zipItDataRepresentationUtils.cjs.map +1 -0
- package/dist/zipItDataRepresentationUtils.d.ts +47 -20
- package/dist/zipItDataRepresentationUtils.d.ts.map +1 -1
- package/lib/ReadBufferUtils.d.mts.map +1 -0
- package/lib/{ReadBufferUtils.js → ReadBufferUtils.mjs} +14 -7
- package/lib/ReadBufferUtils.mjs.map +1 -0
- package/lib/{WriteBufferUtils.d.ts → WriteBufferUtils.d.mts} +3 -5
- package/lib/WriteBufferUtils.d.mts.map +1 -0
- package/lib/{WriteBufferUtils.js → WriteBufferUtils.mjs} +68 -64
- package/lib/WriteBufferUtils.mjs.map +1 -0
- package/lib/{checkUrl.d.ts → checkUrl.d.mts} +1 -0
- package/lib/checkUrl.d.mts.map +1 -0
- package/lib/{checkUrl.js → checkUrl.mjs} +7 -6
- package/lib/checkUrl.mjs.map +1 -0
- package/lib/compactSnapshotParser.d.mts +24 -0
- package/lib/compactSnapshotParser.d.mts.map +1 -0
- package/lib/compactSnapshotParser.mjs +203 -0
- package/lib/compactSnapshotParser.mjs.map +1 -0
- package/lib/{compactSnapshotWriter.d.ts → compactSnapshotWriter.d.mts} +3 -4
- package/lib/compactSnapshotWriter.d.mts.map +1 -0
- package/lib/{compactSnapshotWriter.js → compactSnapshotWriter.mjs} +41 -31
- package/lib/compactSnapshotWriter.mjs.map +1 -0
- package/lib/{constants.d.ts → constants.d.mts} +6 -0
- package/lib/constants.d.mts.map +1 -0
- package/lib/{constants.js → constants.mjs} +7 -1
- package/lib/constants.mjs.map +1 -0
- package/lib/{contracts.d.ts → contracts.d.mts} +17 -54
- package/lib/contracts.d.mts.map +1 -0
- package/lib/{contracts.js → contracts.mjs} +1 -1
- package/lib/contracts.mjs.map +1 -0
- package/lib/{contractsPublic.d.ts → contractsPublic.d.mts} +15 -0
- package/lib/contractsPublic.d.mts.map +1 -0
- package/lib/{contractsPublic.js → contractsPublic.mjs} +7 -1
- package/lib/contractsPublic.mjs.map +1 -0
- package/lib/createFile.d.mts +18 -0
- package/lib/createFile.d.mts.map +1 -0
- package/lib/createFile.mjs +171 -0
- package/lib/createFile.mjs.map +1 -0
- package/lib/createNewContainerOnExistingFile.d.mts +22 -0
- package/lib/createNewContainerOnExistingFile.d.mts.map +1 -0
- package/lib/createNewContainerOnExistingFile.mjs +56 -0
- package/lib/createNewContainerOnExistingFile.mjs.map +1 -0
- package/lib/createNewModule.d.mts +7 -0
- package/lib/createNewModule.d.mts.map +1 -0
- package/lib/createNewModule.mjs +7 -0
- package/lib/createNewModule.mjs.map +1 -0
- package/lib/createNewUtils.d.mts +27 -0
- package/lib/createNewUtils.d.mts.map +1 -0
- package/lib/createNewUtils.mjs +197 -0
- package/lib/createNewUtils.mjs.map +1 -0
- package/lib/{createOdspCreateContainerRequest.d.ts → createOdspCreateContainerRequest.d.mts} +5 -7
- package/lib/createOdspCreateContainerRequest.d.mts.map +1 -0
- package/lib/{createOdspCreateContainerRequest.js → createOdspCreateContainerRequest.mjs} +8 -4
- package/lib/createOdspCreateContainerRequest.mjs.map +1 -0
- package/lib/{createOdspUrl.d.ts → createOdspUrl.d.mts} +2 -1
- package/lib/{createOdspUrl.d.ts.map → createOdspUrl.d.mts.map} +1 -1
- package/lib/{createOdspUrl.js → createOdspUrl.mjs} +2 -1
- package/lib/createOdspUrl.mjs.map +1 -0
- package/lib/{epochTracker.d.ts → epochTracker.d.mts} +34 -10
- package/lib/epochTracker.d.mts.map +1 -0
- package/lib/{epochTracker.js → epochTracker.mjs} +97 -43
- package/lib/epochTracker.mjs.map +1 -0
- package/lib/{fetch.d.ts → fetch.d.mts} +1 -1
- package/lib/{fetch.d.ts.map → fetch.d.mts.map} +1 -1
- package/lib/{fetch.js → fetch.mjs} +1 -1
- package/lib/fetch.mjs.map +1 -0
- package/lib/{fetchSnapshot.d.ts → fetchSnapshot.d.mts} +14 -9
- package/lib/fetchSnapshot.d.mts.map +1 -0
- package/lib/{fetchSnapshot.js → fetchSnapshot.mjs} +185 -167
- package/lib/fetchSnapshot.mjs.map +1 -0
- package/lib/{getFileLink.d.ts → getFileLink.d.mts} +4 -7
- package/lib/getFileLink.d.mts.map +1 -0
- package/lib/{getFileLink.js → getFileLink.mjs} +49 -38
- package/lib/getFileLink.mjs.map +1 -0
- package/lib/{getQueryString.d.ts → getQueryString.d.mts} +0 -4
- package/lib/getQueryString.d.mts.map +1 -0
- package/lib/{getQueryString.js → getQueryString.mjs} +1 -1
- package/lib/getQueryString.mjs.map +1 -0
- package/lib/{getUrlAndHeadersWithAuth.d.ts.map → getUrlAndHeadersWithAuth.d.mts.map} +1 -1
- package/lib/{getUrlAndHeadersWithAuth.js → getUrlAndHeadersWithAuth.mjs} +4 -2
- package/lib/getUrlAndHeadersWithAuth.mjs.map +1 -0
- package/lib/index.d.mts +24 -0
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +22 -0
- package/lib/index.mjs.map +1 -0
- package/lib/localOdspDriver/localOdspDeltaStorageService.d.mts +17 -0
- package/lib/localOdspDriver/localOdspDeltaStorageService.d.mts.map +1 -0
- package/lib/localOdspDriver/localOdspDeltaStorageService.mjs +31 -0
- package/lib/localOdspDriver/localOdspDeltaStorageService.mjs.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentService.d.ts → localOdspDocumentService.d.mts} +3 -2
- package/lib/localOdspDriver/localOdspDocumentService.d.mts.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentService.js → localOdspDocumentService.mjs} +8 -6
- package/lib/localOdspDriver/localOdspDocumentService.mjs.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentServiceFactory.d.ts → localOdspDocumentServiceFactory.d.mts} +4 -5
- package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.mts.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentServiceFactory.js → localOdspDocumentServiceFactory.mjs} +9 -10
- package/lib/localOdspDriver/localOdspDocumentServiceFactory.mjs.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentStorageManager.d.ts → localOdspDocumentStorageManager.d.mts} +3 -3
- package/lib/localOdspDriver/localOdspDocumentStorageManager.d.mts.map +1 -0
- package/lib/localOdspDriver/{localOdspDocumentStorageManager.js → localOdspDocumentStorageManager.mjs} +11 -9
- package/lib/localOdspDriver/localOdspDocumentStorageManager.mjs.map +1 -0
- package/lib/odsp-driver-alpha.d.mts +497 -0
- package/lib/odsp-driver-beta.d.mts +159 -0
- package/lib/odsp-driver-public.d.mts +159 -0
- package/lib/odsp-driver-untrimmed.d.mts +566 -0
- package/lib/{odspCache.d.ts → odspCache.d.mts} +19 -8
- package/lib/odspCache.d.mts.map +1 -0
- package/lib/{odspCache.js → odspCache.mjs} +6 -11
- package/lib/odspCache.mjs.map +1 -0
- package/lib/odspDelayLoadedDeltaStream.d.mts +75 -0
- package/lib/odspDelayLoadedDeltaStream.d.mts.map +1 -0
- package/lib/odspDelayLoadedDeltaStream.mjs +287 -0
- package/lib/odspDelayLoadedDeltaStream.mjs.map +1 -0
- package/lib/{odspDeltaStorageService.d.ts → odspDeltaStorageService.d.mts} +9 -7
- package/lib/odspDeltaStorageService.d.mts.map +1 -0
- package/lib/{odspDeltaStorageService.js → odspDeltaStorageService.mjs} +70 -68
- package/lib/odspDeltaStorageService.mjs.map +1 -0
- package/lib/{odspDocumentDeltaConnection.d.ts → odspDocumentDeltaConnection.d.mts} +33 -13
- package/lib/odspDocumentDeltaConnection.d.mts.map +1 -0
- package/lib/{odspDocumentDeltaConnection.js → odspDocumentDeltaConnection.mjs} +214 -103
- package/lib/odspDocumentDeltaConnection.mjs.map +1 -0
- package/lib/{odspDocumentService.d.ts → odspDocumentService.d.mts} +14 -28
- package/lib/odspDocumentService.d.mts.map +1 -0
- package/lib/odspDocumentService.mjs +221 -0
- package/lib/odspDocumentService.mjs.map +1 -0
- package/lib/{odspDocumentServiceFactory.d.ts → odspDocumentServiceFactory.d.mts} +5 -1
- package/lib/odspDocumentServiceFactory.d.mts.map +1 -0
- package/lib/{odspDocumentServiceFactory.js → odspDocumentServiceFactory.mjs} +8 -6
- package/lib/odspDocumentServiceFactory.mjs.map +1 -0
- package/lib/{odspDocumentServiceFactoryCore.d.ts → odspDocumentServiceFactoryCore.d.mts} +17 -12
- package/lib/odspDocumentServiceFactoryCore.d.mts.map +1 -0
- package/lib/odspDocumentServiceFactoryCore.mjs +192 -0
- package/lib/odspDocumentServiceFactoryCore.mjs.map +1 -0
- package/lib/{odspDocumentServiceFactoryWithCodeSplit.d.ts → odspDocumentServiceFactoryWithCodeSplit.d.mts} +6 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.d.mts.map +1 -0
- package/lib/{odspDocumentServiceFactoryWithCodeSplit.js → odspDocumentServiceFactoryWithCodeSplit.mjs} +8 -3
- package/lib/odspDocumentServiceFactoryWithCodeSplit.mjs.map +1 -0
- package/lib/{odspDocumentStorageManager.d.ts → odspDocumentStorageManager.d.mts} +17 -11
- package/lib/odspDocumentStorageManager.d.mts.map +1 -0
- package/lib/odspDocumentStorageManager.mjs +486 -0
- package/lib/odspDocumentStorageManager.mjs.map +1 -0
- package/lib/{odspDocumentStorageServiceBase.d.ts → odspDocumentStorageServiceBase.d.mts} +8 -10
- package/lib/odspDocumentStorageServiceBase.d.mts.map +1 -0
- package/lib/{odspDocumentStorageServiceBase.js → odspDocumentStorageServiceBase.mjs} +31 -33
- package/lib/odspDocumentStorageServiceBase.mjs.map +1 -0
- package/lib/{odspDriverUrlResolver.d.ts → odspDriverUrlResolver.d.mts} +12 -0
- package/lib/odspDriverUrlResolver.d.mts.map +1 -0
- package/lib/{odspDriverUrlResolver.js → odspDriverUrlResolver.mjs} +50 -40
- package/lib/odspDriverUrlResolver.mjs.map +1 -0
- package/lib/{odspDriverUrlResolverForShareLink.d.ts → odspDriverUrlResolverForShareLink.d.mts} +6 -4
- package/lib/odspDriverUrlResolverForShareLink.d.mts.map +1 -0
- package/lib/{odspDriverUrlResolverForShareLink.js → odspDriverUrlResolverForShareLink.mjs} +36 -29
- package/lib/odspDriverUrlResolverForShareLink.mjs.map +1 -0
- package/lib/{odspError.d.ts → odspError.d.mts} +1 -1
- package/lib/odspError.d.mts.map +1 -0
- package/lib/{odspError.js → odspError.mjs} +7 -3
- package/lib/odspError.mjs.map +1 -0
- package/lib/{odspFluidFileLink.d.ts → odspFluidFileLink.d.mts} +11 -2
- package/lib/odspFluidFileLink.d.mts.map +1 -0
- package/lib/{odspFluidFileLink.js → odspFluidFileLink.mjs} +23 -16
- package/lib/odspFluidFileLink.mjs.map +1 -0
- package/lib/odspLocationRedirection.d.mts +14 -0
- package/lib/odspLocationRedirection.d.mts.map +1 -0
- package/lib/odspLocationRedirection.mjs +20 -0
- package/lib/odspLocationRedirection.mjs.map +1 -0
- package/lib/{odspPublicUtils.d.ts → odspPublicUtils.d.mts} +6 -0
- package/lib/odspPublicUtils.d.mts.map +1 -0
- package/lib/{odspPublicUtils.js → odspPublicUtils.mjs} +5 -2
- package/lib/odspPublicUtils.mjs.map +1 -0
- package/lib/{odspSnapshotParser.d.ts → odspSnapshotParser.d.mts} +2 -2
- package/lib/odspSnapshotParser.d.mts.map +1 -0
- package/lib/{odspSnapshotParser.js → odspSnapshotParser.mjs} +10 -11
- package/lib/odspSnapshotParser.mjs.map +1 -0
- package/lib/{odspSummaryUploadManager.d.ts → odspSummaryUploadManager.d.mts} +8 -5
- package/lib/odspSummaryUploadManager.d.mts.map +1 -0
- package/lib/{odspSummaryUploadManager.js → odspSummaryUploadManager.mjs} +41 -32
- package/lib/odspSummaryUploadManager.mjs.map +1 -0
- package/lib/{odspUrlHelper.d.ts → odspUrlHelper.d.mts} +5 -0
- package/lib/odspUrlHelper.d.mts.map +1 -0
- package/lib/{odspUrlHelper.js → odspUrlHelper.mjs} +9 -3
- package/lib/odspUrlHelper.mjs.map +1 -0
- package/lib/{odspUtils.d.ts → odspUtils.d.mts} +36 -7
- package/lib/odspUtils.d.mts.map +1 -0
- package/lib/{odspUtils.js → odspUtils.mjs} +109 -27
- package/lib/odspUtils.mjs.map +1 -0
- package/lib/{opsCaching.d.ts → opsCaching.d.mts} +3 -3
- package/lib/opsCaching.d.mts.map +1 -0
- package/lib/{opsCaching.js → opsCaching.mjs} +23 -7
- package/lib/opsCaching.mjs.map +1 -0
- package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
- package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +1 -1
- package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
- package/lib/packageVersion.mjs.map +1 -0
- package/lib/{prefetchLatestSnapshot.d.ts → prefetchLatestSnapshot.d.mts} +13 -8
- package/lib/prefetchLatestSnapshot.d.mts.map +1 -0
- package/lib/prefetchLatestSnapshot.mjs +96 -0
- package/lib/prefetchLatestSnapshot.mjs.map +1 -0
- package/lib/{retryErrorsStorageAdapter.d.ts → retryErrorsStorageAdapter.d.mts} +5 -4
- package/lib/retryErrorsStorageAdapter.d.mts.map +1 -0
- package/lib/{retryErrorsStorageAdapter.js → retryErrorsStorageAdapter.mjs} +13 -6
- package/lib/retryErrorsStorageAdapter.mjs.map +1 -0
- package/lib/{retryUtils.d.ts → retryUtils.d.mts} +2 -2
- package/lib/retryUtils.d.mts.map +1 -0
- package/lib/{retryUtils.js → retryUtils.mjs} +27 -11
- package/lib/retryUtils.mjs.map +1 -0
- package/lib/socketModule.d.mts +7 -0
- package/lib/socketModule.d.mts.map +1 -0
- package/lib/socketModule.mjs +7 -0
- package/lib/socketModule.mjs.map +1 -0
- package/lib/{vroom.d.ts → vroom.d.mts} +6 -6
- package/lib/vroom.d.mts.map +1 -0
- package/lib/{vroom.js → vroom.mjs} +24 -9
- package/lib/vroom.mjs.map +1 -0
- package/lib/{zipItDataRepresentationUtils.d.ts → zipItDataRepresentationUtils.d.mts} +48 -21
- package/lib/zipItDataRepresentationUtils.d.mts.map +1 -0
- package/lib/{zipItDataRepresentationUtils.js → zipItDataRepresentationUtils.mjs} +213 -111
- package/lib/zipItDataRepresentationUtils.mjs.map +1 -0
- package/package.json +89 -69
- package/prettier.config.cjs +8 -0
- package/src/ReadBufferUtils.ts +51 -44
- package/src/WriteBufferUtils.ts +203 -181
- package/src/checkUrl.ts +16 -15
- package/src/compactSnapshotParser.ts +219 -103
- package/src/compactSnapshotWriter.ts +118 -97
- package/src/constants.ts +7 -0
- package/src/contracts.ts +96 -136
- package/src/contractsPublic.ts +31 -16
- package/src/createFile.ts +243 -305
- package/src/createNewContainerOnExistingFile.ts +93 -0
- package/src/createNewModule.ts +7 -0
- package/src/createNewUtils.ts +266 -56
- package/src/createOdspCreateContainerRequest.ts +22 -18
- package/src/createOdspUrl.ts +12 -13
- package/src/epochTracker.ts +596 -457
- package/src/fetch.ts +4 -4
- package/src/fetchSnapshot.ts +583 -508
- package/src/getFileLink.ts +194 -155
- package/src/getQueryString.ts +11 -9
- package/src/getUrlAndHeadersWithAuth.ts +34 -33
- package/src/index.ts +42 -18
- package/src/localOdspDriver/localOdspDeltaStorageService.ts +49 -0
- package/src/localOdspDriver/localOdspDocumentService.ts +40 -38
- package/src/localOdspDriver/localOdspDocumentServiceFactory.ts +46 -43
- package/src/localOdspDriver/localOdspDocumentStorageManager.ts +55 -50
- package/src/odspCache.ts +112 -90
- package/src/odspDelayLoadedDeltaStream.ts +459 -0
- package/src/odspDeltaStorageService.ts +232 -221
- package/src/odspDocumentDeltaConnection.ts +751 -563
- package/src/odspDocumentService.ts +324 -523
- package/src/odspDocumentServiceFactory.ts +20 -21
- package/src/odspDocumentServiceFactoryCore.ts +325 -202
- package/src/odspDocumentServiceFactoryWithCodeSplit.ts +20 -20
- package/src/odspDocumentStorageManager.ts +730 -534
- package/src/odspDocumentStorageServiceBase.ts +279 -254
- package/src/odspDriverUrlResolver.ts +230 -188
- package/src/odspDriverUrlResolverForShareLink.ts +223 -203
- package/src/odspError.ts +27 -19
- package/src/odspFluidFileLink.ts +106 -87
- package/src/odspLocationRedirection.ts +26 -0
- package/src/odspPublicUtils.ts +20 -14
- package/src/odspSnapshotParser.ts +53 -46
- package/src/odspSummaryUploadManager.ts +243 -218
- package/src/odspUrlHelper.ts +81 -71
- package/src/odspUtils.ts +401 -259
- package/src/opsCaching.ts +214 -193
- package/src/packageVersion.ts +1 -1
- package/src/prefetchLatestSnapshot.ts +142 -80
- package/src/retryErrorsStorageAdapter.ts +92 -77
- package/src/retryUtils.ts +80 -57
- package/src/socketModule.ts +8 -0
- package/src/vroom.ts +92 -83
- package/src/zipItDataRepresentationUtils.ts +534 -394
- package/tsc-multi.test.json +4 -0
- package/tsconfig.json +11 -13
- package/.editorconfig +0 -7
- package/dist/ReadBufferUtils.js.map +0 -1
- package/dist/WriteBufferUtils.js.map +0 -1
- package/dist/checkUrl.js.map +0 -1
- package/dist/compactSnapshotParser.js +0 -115
- package/dist/compactSnapshotParser.js.map +0 -1
- package/dist/compactSnapshotWriter.js.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/contracts.js.map +0 -1
- package/dist/contractsPublic.js.map +0 -1
- package/dist/createFile.js +0 -242
- package/dist/createFile.js.map +0 -1
- package/dist/createNewUtils.js +0 -67
- package/dist/createNewUtils.js.map +0 -1
- package/dist/createOdspCreateContainerRequest.js.map +0 -1
- package/dist/createOdspUrl.js.map +0 -1
- package/dist/epochTracker.js.map +0 -1
- package/dist/fetch.js.map +0 -1
- package/dist/fetchSnapshot.js.map +0 -1
- package/dist/getFileLink.js.map +0 -1
- package/dist/getQueryString.js.map +0 -1
- package/dist/getSocketIo.d.ts +0 -11
- package/dist/getSocketIo.d.ts.map +0 -1
- package/dist/getSocketIo.js +0 -20
- package/dist/getSocketIo.js.map +0 -1
- package/dist/getUrlAndHeadersWithAuth.js.map +0 -1
- package/dist/index.js +0 -41
- package/dist/index.js.map +0 -1
- package/dist/localOdspDriver/localOdspDocumentService.js.map +0 -1
- package/dist/localOdspDriver/localOdspDocumentServiceFactory.js.map +0 -1
- package/dist/localOdspDriver/localOdspDocumentStorageManager.js.map +0 -1
- package/dist/odspCache.js.map +0 -1
- package/dist/odspDeltaStorageService.js.map +0 -1
- package/dist/odspDocumentDeltaConnection.js.map +0 -1
- package/dist/odspDocumentService.js +0 -364
- package/dist/odspDocumentService.js.map +0 -1
- package/dist/odspDocumentServiceFactory.js.map +0 -1
- package/dist/odspDocumentServiceFactoryCore.js +0 -118
- package/dist/odspDocumentServiceFactoryCore.js.map +0 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.js +0 -34
- package/dist/odspDocumentServiceFactoryWithCodeSplit.js.map +0 -1
- package/dist/odspDocumentStorageManager.js +0 -356
- package/dist/odspDocumentStorageManager.js.map +0 -1
- package/dist/odspDocumentStorageServiceBase.js.map +0 -1
- package/dist/odspDriverUrlResolver.js.map +0 -1
- package/dist/odspDriverUrlResolverForShareLink.js.map +0 -1
- package/dist/odspError.js.map +0 -1
- package/dist/odspFluidFileLink.js.map +0 -1
- package/dist/odspPublicUtils.js.map +0 -1
- package/dist/odspSnapshotParser.js.map +0 -1
- package/dist/odspSummaryUploadManager.js.map +0 -1
- package/dist/odspUrlHelper.js.map +0 -1
- package/dist/odspUtils.js.map +0 -1
- package/dist/opsCaching.js.map +0 -1
- package/dist/packageVersion.js.map +0 -1
- package/dist/prefetchLatestSnapshot.js +0 -57
- package/dist/prefetchLatestSnapshot.js.map +0 -1
- package/dist/retryErrorsStorageAdapter.js.map +0 -1
- package/dist/retryUtils.js.map +0 -1
- package/dist/vroom.js.map +0 -1
- package/dist/zipItDataRepresentationUtils.js.map +0 -1
- package/lib/ReadBufferUtils.d.ts.map +0 -1
- package/lib/ReadBufferUtils.js.map +0 -1
- package/lib/WriteBufferUtils.d.ts.map +0 -1
- package/lib/WriteBufferUtils.js.map +0 -1
- package/lib/checkUrl.d.ts.map +0 -1
- package/lib/checkUrl.js.map +0 -1
- package/lib/compactSnapshotParser.d.ts +0 -15
- package/lib/compactSnapshotParser.d.ts.map +0 -1
- package/lib/compactSnapshotParser.js +0 -111
- package/lib/compactSnapshotParser.js.map +0 -1
- package/lib/compactSnapshotWriter.d.ts.map +0 -1
- package/lib/compactSnapshotWriter.js.map +0 -1
- package/lib/constants.d.ts.map +0 -1
- package/lib/constants.js.map +0 -1
- package/lib/contracts.d.ts.map +0 -1
- package/lib/contracts.js.map +0 -1
- package/lib/contractsPublic.d.ts.map +0 -1
- package/lib/contractsPublic.js.map +0 -1
- package/lib/createFile.d.ts +0 -22
- package/lib/createFile.d.ts.map +0 -1
- package/lib/createFile.js +0 -235
- package/lib/createFile.js.map +0 -1
- package/lib/createNewUtils.d.ts +0 -11
- package/lib/createNewUtils.d.ts.map +0 -1
- package/lib/createNewUtils.js +0 -63
- package/lib/createNewUtils.js.map +0 -1
- package/lib/createOdspCreateContainerRequest.d.ts.map +0 -1
- package/lib/createOdspCreateContainerRequest.js.map +0 -1
- package/lib/createOdspUrl.js.map +0 -1
- package/lib/epochTracker.d.ts.map +0 -1
- package/lib/epochTracker.js.map +0 -1
- package/lib/fetch.js.map +0 -1
- package/lib/fetchSnapshot.d.ts.map +0 -1
- package/lib/fetchSnapshot.js.map +0 -1
- package/lib/getFileLink.d.ts.map +0 -1
- package/lib/getFileLink.js.map +0 -1
- package/lib/getQueryString.d.ts.map +0 -1
- package/lib/getQueryString.js.map +0 -1
- package/lib/getSocketIo.d.ts +0 -11
- package/lib/getSocketIo.d.ts.map +0 -1
- package/lib/getSocketIo.js +0 -13
- package/lib/getSocketIo.js.map +0 -1
- package/lib/getUrlAndHeadersWithAuth.js.map +0 -1
- package/lib/index.d.ts +0 -21
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -29
- package/lib/index.js.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentService.d.ts.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentService.js.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentServiceFactory.js.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +0 -1
- package/lib/localOdspDriver/localOdspDocumentStorageManager.js.map +0 -1
- package/lib/odspCache.d.ts.map +0 -1
- package/lib/odspCache.js.map +0 -1
- package/lib/odspDeltaStorageService.d.ts.map +0 -1
- package/lib/odspDeltaStorageService.js.map +0 -1
- package/lib/odspDocumentDeltaConnection.d.ts.map +0 -1
- package/lib/odspDocumentDeltaConnection.js.map +0 -1
- package/lib/odspDocumentService.d.ts.map +0 -1
- package/lib/odspDocumentService.js +0 -360
- package/lib/odspDocumentService.js.map +0 -1
- package/lib/odspDocumentServiceFactory.d.ts.map +0 -1
- package/lib/odspDocumentServiceFactory.js.map +0 -1
- package/lib/odspDocumentServiceFactoryCore.d.ts.map +0 -1
- package/lib/odspDocumentServiceFactoryCore.js +0 -114
- package/lib/odspDocumentServiceFactoryCore.js.map +0 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +0 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.js.map +0 -1
- package/lib/odspDocumentStorageManager.d.ts.map +0 -1
- package/lib/odspDocumentStorageManager.js +0 -352
- package/lib/odspDocumentStorageManager.js.map +0 -1
- package/lib/odspDocumentStorageServiceBase.d.ts.map +0 -1
- package/lib/odspDocumentStorageServiceBase.js.map +0 -1
- package/lib/odspDriverUrlResolver.d.ts.map +0 -1
- package/lib/odspDriverUrlResolver.js.map +0 -1
- package/lib/odspDriverUrlResolverForShareLink.d.ts.map +0 -1
- package/lib/odspDriverUrlResolverForShareLink.js.map +0 -1
- package/lib/odspError.d.ts.map +0 -1
- package/lib/odspError.js.map +0 -1
- package/lib/odspFluidFileLink.d.ts.map +0 -1
- package/lib/odspFluidFileLink.js.map +0 -1
- package/lib/odspPublicUtils.d.ts.map +0 -1
- package/lib/odspPublicUtils.js.map +0 -1
- package/lib/odspSnapshotParser.d.ts.map +0 -1
- package/lib/odspSnapshotParser.js.map +0 -1
- package/lib/odspSummaryUploadManager.d.ts.map +0 -1
- package/lib/odspSummaryUploadManager.js.map +0 -1
- package/lib/odspUrlHelper.d.ts.map +0 -1
- package/lib/odspUrlHelper.js.map +0 -1
- package/lib/odspUtils.d.ts.map +0 -1
- package/lib/odspUtils.js.map +0 -1
- package/lib/opsCaching.d.ts.map +0 -1
- package/lib/opsCaching.js.map +0 -1
- package/lib/packageVersion.js.map +0 -1
- package/lib/prefetchLatestSnapshot.d.ts.map +0 -1
- package/lib/prefetchLatestSnapshot.js +0 -53
- package/lib/prefetchLatestSnapshot.js.map +0 -1
- package/lib/retryErrorsStorageAdapter.d.ts.map +0 -1
- package/lib/retryErrorsStorageAdapter.js.map +0 -1
- package/lib/retryUtils.d.ts.map +0 -1
- package/lib/retryUtils.js.map +0 -1
- package/lib/vroom.d.ts.map +0 -1
- package/lib/vroom.js.map +0 -1
- package/lib/zipItDataRepresentationUtils.d.ts.map +0 -1
- package/lib/zipItDataRepresentationUtils.js.map +0 -1
- package/src/getSocketIo.ts +0 -14
- package/tsconfig.esnext.json +0 -7
- /package/lib/{ReadBufferUtils.d.ts → ReadBufferUtils.d.mts} +0 -0
- /package/lib/{getUrlAndHeadersWithAuth.d.ts → getUrlAndHeadersWithAuth.d.mts} +0 -0
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.OdspDocumentServiceFactoryCore = void 0;
|
|
8
|
-
const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
|
|
9
|
-
const driver_utils_1 = require("@fluidframework/driver-utils");
|
|
10
|
-
const uuid_1 = require("uuid");
|
|
11
|
-
const odspCache_1 = require("./odspCache");
|
|
12
|
-
const epochTracker_1 = require("./epochTracker");
|
|
13
|
-
const odspDocumentService_1 = require("./odspDocumentService");
|
|
14
|
-
const odspUtils_1 = require("./odspUtils");
|
|
15
|
-
const createFile_1 = require("./createFile");
|
|
16
|
-
/**
|
|
17
|
-
* Factory for creating the sharepoint document service. Use this if you want to
|
|
18
|
-
* use the sharepoint implementation.
|
|
19
|
-
*
|
|
20
|
-
* This constructor should be used by environments that support dynamic imports and that wish
|
|
21
|
-
* to leverage code splitting as a means to keep bundles as small as possible.
|
|
22
|
-
*/
|
|
23
|
-
class OdspDocumentServiceFactoryCore {
|
|
24
|
-
/**
|
|
25
|
-
* @param getStorageToken - function that can provide the storage token for a given site. This is
|
|
26
|
-
* is also referred to as the "Vroom" token in SPO.
|
|
27
|
-
* @param getWebsocketToken - function that can provide a token for accessing the web socket. This is also
|
|
28
|
-
* to as the "Push" token in SPO. If undefined then websocket token is expected to be returned with joinSession
|
|
29
|
-
* response payload.
|
|
30
|
-
* @param storageFetchWrapper - if not provided FetchWrapper will be used
|
|
31
|
-
* @param deltasFetchWrapper - if not provided FetchWrapper will be used
|
|
32
|
-
* @param persistedCache - PersistedCache provided by host for use in this session.
|
|
33
|
-
*/
|
|
34
|
-
constructor(getStorageToken, getWebsocketToken, getSocketIOClient, persistedCache = new odspCache_1.LocalPersistentCache(), hostPolicy = {}) {
|
|
35
|
-
var _a;
|
|
36
|
-
this.getStorageToken = getStorageToken;
|
|
37
|
-
this.getWebsocketToken = getWebsocketToken;
|
|
38
|
-
this.getSocketIOClient = getSocketIOClient;
|
|
39
|
-
this.persistedCache = persistedCache;
|
|
40
|
-
this.hostPolicy = hostPolicy;
|
|
41
|
-
this.protocolName = "fluid-odsp:";
|
|
42
|
-
this.nonPersistentCache = new odspCache_1.NonPersistentCache();
|
|
43
|
-
if (this.hostPolicy.isolateSocketCache === true) {
|
|
44
|
-
// create the key to separate the socket reuse cache
|
|
45
|
-
this.socketReferenceKeyPrefix = (0, uuid_1.v4)();
|
|
46
|
-
}
|
|
47
|
-
// Set enableRedeemFallback by default as true.
|
|
48
|
-
this.hostPolicy.enableRedeemFallback = (_a = this.hostPolicy.enableRedeemFallback) !== null && _a !== void 0 ? _a : true;
|
|
49
|
-
this.hostPolicy.sessionOptions = Object.assign({ forceAccessTokenViaAuthorizationHeader: true }, this.hostPolicy.sessionOptions);
|
|
50
|
-
}
|
|
51
|
-
async createContainer(createNewSummary, createNewResolvedUrl, logger, clientIsSummarizer) {
|
|
52
|
-
var _a, _b;
|
|
53
|
-
(0, driver_utils_1.ensureFluidResolvedUrl)(createNewResolvedUrl);
|
|
54
|
-
let odspResolvedUrl = (0, odspUtils_1.getOdspResolvedUrl)(createNewResolvedUrl);
|
|
55
|
-
const resolvedUrlData = {
|
|
56
|
-
siteUrl: odspResolvedUrl.siteUrl,
|
|
57
|
-
driveId: odspResolvedUrl.driveId,
|
|
58
|
-
itemId: odspResolvedUrl.itemId,
|
|
59
|
-
};
|
|
60
|
-
const [, queryString] = odspResolvedUrl.url.split("?");
|
|
61
|
-
const searchParams = new URLSearchParams(queryString);
|
|
62
|
-
const filePath = searchParams.get("path");
|
|
63
|
-
if (filePath === undefined || filePath === null) {
|
|
64
|
-
throw new Error("File path should be provided!!");
|
|
65
|
-
}
|
|
66
|
-
const protocolSummary = createNewSummary === null || createNewSummary === void 0 ? void 0 : createNewSummary.tree[".protocol"];
|
|
67
|
-
if (protocolSummary) {
|
|
68
|
-
const documentAttributes = (0, driver_utils_1.getDocAttributesFromProtocolSummary)(protocolSummary);
|
|
69
|
-
if ((documentAttributes === null || documentAttributes === void 0 ? void 0 : documentAttributes.sequenceNumber) !== 0) {
|
|
70
|
-
throw new Error("Seq number in detached ODSP container should be 0");
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const newFileInfo = {
|
|
74
|
-
driveId: odspResolvedUrl.driveId,
|
|
75
|
-
siteUrl: odspResolvedUrl.siteUrl,
|
|
76
|
-
filePath,
|
|
77
|
-
filename: odspResolvedUrl.fileName,
|
|
78
|
-
// set createLinkType to undefined if enableShareLinkWithCreate is set to false,
|
|
79
|
-
// so that share link creation with create file can be enabled
|
|
80
|
-
createLinkType: this.hostPolicy.enableShareLinkWithCreate ?
|
|
81
|
-
(_b = (_a = odspResolvedUrl.shareLinkInfo) === null || _a === void 0 ? void 0 : _a.createLink) === null || _b === void 0 ? void 0 : _b.type : undefined,
|
|
82
|
-
};
|
|
83
|
-
const odspLogger = (0, odspUtils_1.createOdspLogger)(logger);
|
|
84
|
-
const fileEntry = { resolvedUrl: odspResolvedUrl, docId: odspResolvedUrl.hashedDocumentId };
|
|
85
|
-
const cacheAndTracker = (0, epochTracker_1.createOdspCacheAndTracker)(this.persistedCache, this.nonPersistentCache, fileEntry, odspLogger, clientIsSummarizer);
|
|
86
|
-
return telemetry_utils_1.PerformanceEvent.timedExecAsync(odspLogger, {
|
|
87
|
-
eventName: "CreateNew",
|
|
88
|
-
isWithSummaryUpload: true,
|
|
89
|
-
}, async (event) => {
|
|
90
|
-
var _a, _b;
|
|
91
|
-
odspResolvedUrl = await (0, createFile_1.createNewFluidFile)((0, odspUtils_1.toInstrumentedOdspTokenFetcher)(odspLogger, resolvedUrlData, this.getStorageToken, true /* throwOnNullToken */), newFileInfo, odspLogger, createNewSummary, cacheAndTracker.epochTracker, fileEntry, (_a = this.hostPolicy.cacheCreateNewSummary) !== null && _a !== void 0 ? _a : true, !!((_b = this.hostPolicy.sessionOptions) === null || _b === void 0 ? void 0 : _b.forceAccessTokenViaAuthorizationHeader), odspResolvedUrl.isClpCompliantApp);
|
|
92
|
-
const docService = this.createDocumentServiceCore(odspResolvedUrl, odspLogger, cacheAndTracker, clientIsSummarizer);
|
|
93
|
-
event.end({
|
|
94
|
-
docId: odspResolvedUrl.hashedDocumentId,
|
|
95
|
-
});
|
|
96
|
-
return docService;
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
async createDocumentService(resolvedUrl, logger, clientIsSummarizer) {
|
|
100
|
-
return this.createDocumentServiceCore(resolvedUrl, (0, odspUtils_1.createOdspLogger)(logger), undefined, clientIsSummarizer);
|
|
101
|
-
}
|
|
102
|
-
async createDocumentServiceCore(resolvedUrl, odspLogger, cacheAndTrackerArg, clientIsSummarizer) {
|
|
103
|
-
const odspResolvedUrl = (0, odspUtils_1.getOdspResolvedUrl)(resolvedUrl);
|
|
104
|
-
const resolvedUrlData = {
|
|
105
|
-
siteUrl: odspResolvedUrl.siteUrl,
|
|
106
|
-
driveId: odspResolvedUrl.driveId,
|
|
107
|
-
itemId: odspResolvedUrl.itemId,
|
|
108
|
-
};
|
|
109
|
-
const cacheAndTracker = cacheAndTrackerArg !== null && cacheAndTrackerArg !== void 0 ? cacheAndTrackerArg : (0, epochTracker_1.createOdspCacheAndTracker)(this.persistedCache, this.nonPersistentCache, { resolvedUrl: odspResolvedUrl, docId: odspResolvedUrl.hashedDocumentId }, odspLogger, clientIsSummarizer);
|
|
110
|
-
const storageTokenFetcher = (0, odspUtils_1.toInstrumentedOdspTokenFetcher)(odspLogger, resolvedUrlData, this.getStorageToken, true /* throwOnNullToken */);
|
|
111
|
-
const webSocketTokenFetcher = this.getWebsocketToken === undefined
|
|
112
|
-
? undefined
|
|
113
|
-
: async (options) => (0, odspUtils_1.toInstrumentedOdspTokenFetcher)(odspLogger, resolvedUrlData, this.getWebsocketToken, false /* throwOnNullToken */)(options, "GetWebsocketToken");
|
|
114
|
-
return odspDocumentService_1.OdspDocumentService.create(resolvedUrl, storageTokenFetcher, webSocketTokenFetcher, odspLogger, this.getSocketIOClient, cacheAndTracker.cache, this.hostPolicy, cacheAndTracker.epochTracker, this.socketReferenceKeyPrefix, clientIsSummarizer);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
exports.OdspDocumentServiceFactoryCore = OdspDocumentServiceFactoryCore;
|
|
118
|
-
//# sourceMappingURL=odspDocumentServiceFactoryCore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"odspDocumentServiceFactoryCore.js","sourceRoot":"","sources":["../src/odspDocumentServiceFactoryCore.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 { ITelemetryBaseLogger } from \"@fluidframework/common-definitions\";\nimport {\n IDocumentService,\n IDocumentServiceFactory,\n IResolvedUrl,\n} from \"@fluidframework/driver-definitions\";\nimport { ISummaryTree } from \"@fluidframework/protocol-definitions\";\nimport {\n TelemetryLogger,\n PerformanceEvent,\n} from \"@fluidframework/telemetry-utils\";\nimport {\n getDocAttributesFromProtocolSummary,\n ensureFluidResolvedUrl,\n} from \"@fluidframework/driver-utils\";\nimport {\n TokenFetchOptions,\n OdspResourceTokenFetchOptions,\n TokenFetcher,\n IPersistedCache,\n HostStoragePolicy,\n IFileEntry,\n IOdspUrlParts,\n} from \"@fluidframework/odsp-driver-definitions\";\nimport type { io as SocketIOClientStatic } from \"socket.io-client\";\nimport { v4 as uuid } from \"uuid\";\nimport {\n LocalPersistentCache,\n NonPersistentCache,\n} from \"./odspCache\";\nimport {\n createOdspCacheAndTracker,\n ICacheAndTracker,\n} from \"./epochTracker\";\nimport { OdspDocumentService } from \"./odspDocumentService\";\nimport { INewFileInfo, getOdspResolvedUrl, createOdspLogger, toInstrumentedOdspTokenFetcher } from \"./odspUtils\";\nimport { createNewFluidFile } from \"./createFile\";\n\n/**\n * Factory for creating the sharepoint document service. Use this if you want to\n * use the sharepoint implementation.\n *\n * This constructor should be used by environments that support dynamic imports and that wish\n * to leverage code splitting as a means to keep bundles as small as possible.\n */\nexport class OdspDocumentServiceFactoryCore implements IDocumentServiceFactory {\n public readonly protocolName = \"fluid-odsp:\";\n\n private readonly nonPersistentCache = new NonPersistentCache();\n private readonly socketReferenceKeyPrefix?: string;\n\n public async createContainer(\n createNewSummary: ISummaryTree | undefined,\n createNewResolvedUrl: IResolvedUrl,\n logger?: ITelemetryBaseLogger,\n clientIsSummarizer?: boolean,\n ): Promise<IDocumentService> {\n ensureFluidResolvedUrl(createNewResolvedUrl);\n\n let odspResolvedUrl = getOdspResolvedUrl(createNewResolvedUrl);\n const resolvedUrlData: IOdspUrlParts = {\n siteUrl: odspResolvedUrl.siteUrl,\n driveId: odspResolvedUrl.driveId,\n itemId: odspResolvedUrl.itemId,\n };\n const [, queryString] = odspResolvedUrl.url.split(\"?\");\n\n const searchParams = new URLSearchParams(queryString);\n const filePath = searchParams.get(\"path\");\n if (filePath === undefined || filePath === null) {\n throw new Error(\"File path should be provided!!\");\n }\n\n const protocolSummary = createNewSummary?.tree[\".protocol\"];\n if (protocolSummary) {\n const documentAttributes = getDocAttributesFromProtocolSummary(protocolSummary as ISummaryTree);\n if (documentAttributes?.sequenceNumber !== 0) {\n throw new Error(\"Seq number in detached ODSP container should be 0\");\n }\n }\n\n const newFileInfo: INewFileInfo = {\n driveId: odspResolvedUrl.driveId,\n siteUrl: odspResolvedUrl.siteUrl,\n filePath,\n filename: odspResolvedUrl.fileName,\n // set createLinkType to undefined if enableShareLinkWithCreate is set to false,\n // so that share link creation with create file can be enabled\n createLinkType: this.hostPolicy.enableShareLinkWithCreate ?\n odspResolvedUrl.shareLinkInfo?.createLink?.type : undefined,\n };\n\n const odspLogger = createOdspLogger(logger);\n\n const fileEntry: IFileEntry = { resolvedUrl: odspResolvedUrl, docId: odspResolvedUrl.hashedDocumentId };\n const cacheAndTracker = createOdspCacheAndTracker(\n this.persistedCache,\n this.nonPersistentCache,\n fileEntry,\n odspLogger,\n clientIsSummarizer);\n\n return PerformanceEvent.timedExecAsync(\n odspLogger,\n {\n eventName: \"CreateNew\",\n isWithSummaryUpload: true,\n },\n async (event) => {\n odspResolvedUrl = await createNewFluidFile(\n toInstrumentedOdspTokenFetcher(\n odspLogger,\n resolvedUrlData,\n this.getStorageToken,\n true /* throwOnNullToken */,\n ),\n newFileInfo,\n odspLogger,\n createNewSummary,\n cacheAndTracker.epochTracker,\n fileEntry,\n this.hostPolicy.cacheCreateNewSummary ?? true,\n !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader,\n odspResolvedUrl.isClpCompliantApp,\n );\n const docService = this.createDocumentServiceCore(odspResolvedUrl, odspLogger,\n cacheAndTracker, clientIsSummarizer);\n event.end({\n docId: odspResolvedUrl.hashedDocumentId,\n });\n return docService;\n });\n }\n\n /**\n * @param getStorageToken - function that can provide the storage token for a given site. This is\n * is also referred to as the \"Vroom\" token in SPO.\n * @param getWebsocketToken - function that can provide a token for accessing the web socket. This is also\n * to as the \"Push\" token in SPO. If undefined then websocket token is expected to be returned with joinSession\n * response payload.\n * @param storageFetchWrapper - if not provided FetchWrapper will be used\n * @param deltasFetchWrapper - if not provided FetchWrapper will be used\n * @param persistedCache - PersistedCache provided by host for use in this session.\n */\n constructor(\n private readonly getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>,\n private readonly getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined,\n private readonly getSocketIOClient: () => Promise<typeof SocketIOClientStatic>,\n protected persistedCache: IPersistedCache = new LocalPersistentCache(),\n private readonly hostPolicy: HostStoragePolicy = {},\n ) {\n if (this.hostPolicy.isolateSocketCache === true) {\n // create the key to separate the socket reuse cache\n this.socketReferenceKeyPrefix = uuid();\n }\n // Set enableRedeemFallback by default as true.\n this.hostPolicy.enableRedeemFallback = this.hostPolicy.enableRedeemFallback ?? true;\n this.hostPolicy.sessionOptions = {\n forceAccessTokenViaAuthorizationHeader: true,\n ...this.hostPolicy.sessionOptions,\n };\n }\n\n public async createDocumentService(\n resolvedUrl: IResolvedUrl,\n logger?: ITelemetryBaseLogger,\n clientIsSummarizer?: boolean,\n ): Promise<IDocumentService> {\n return this.createDocumentServiceCore(resolvedUrl, createOdspLogger(logger), undefined, clientIsSummarizer);\n }\n\n protected async createDocumentServiceCore(\n resolvedUrl: IResolvedUrl,\n odspLogger: TelemetryLogger,\n cacheAndTrackerArg?: ICacheAndTracker,\n clientIsSummarizer?: boolean,\n ): Promise<IDocumentService> {\n const odspResolvedUrl = getOdspResolvedUrl(resolvedUrl);\n const resolvedUrlData: IOdspUrlParts = {\n siteUrl: odspResolvedUrl.siteUrl,\n driveId: odspResolvedUrl.driveId,\n itemId: odspResolvedUrl.itemId,\n };\n const cacheAndTracker = cacheAndTrackerArg ?? createOdspCacheAndTracker(\n this.persistedCache,\n this.nonPersistentCache,\n { resolvedUrl: odspResolvedUrl, docId: odspResolvedUrl.hashedDocumentId },\n odspLogger,\n clientIsSummarizer);\n\n const storageTokenFetcher = toInstrumentedOdspTokenFetcher(\n odspLogger,\n resolvedUrlData,\n this.getStorageToken,\n true /* throwOnNullToken */,\n );\n\n const webSocketTokenFetcher = this.getWebsocketToken === undefined\n ? undefined\n : async (options: TokenFetchOptions) => toInstrumentedOdspTokenFetcher(\n odspLogger,\n resolvedUrlData,\n this.getWebsocketToken!,\n false /* throwOnNullToken */,\n )(options, \"GetWebsocketToken\");\n\n return OdspDocumentService.create(\n resolvedUrl,\n storageTokenFetcher,\n webSocketTokenFetcher,\n odspLogger,\n this.getSocketIOClient,\n cacheAndTracker.cache,\n this.hostPolicy,\n cacheAndTracker.epochTracker,\n this.socketReferenceKeyPrefix,\n clientIsSummarizer,\n );\n }\n}\n"]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.OdspDocumentServiceFactoryWithCodeSplit = void 0;
|
|
27
|
-
const odspDocumentServiceFactoryCore_1 = require("./odspDocumentServiceFactoryCore");
|
|
28
|
-
class OdspDocumentServiceFactoryWithCodeSplit extends odspDocumentServiceFactoryCore_1.OdspDocumentServiceFactoryCore {
|
|
29
|
-
constructor(getStorageToken, getWebsocketToken, persistedCache, hostPolicy) {
|
|
30
|
-
super(getStorageToken, getWebsocketToken, async () => Promise.resolve().then(() => __importStar(require("./getSocketIo"))).then((m) => m.getSocketIo()), persistedCache, hostPolicy);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.OdspDocumentServiceFactoryWithCodeSplit = OdspDocumentServiceFactoryWithCodeSplit;
|
|
34
|
-
//# sourceMappingURL=odspDocumentServiceFactoryWithCodeSplit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"odspDocumentServiceFactoryWithCodeSplit.js","sourceRoot":"","sources":["../src/odspDocumentServiceFactoryWithCodeSplit.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;AASH,qFAAkF;AAElF,MAAa,uCACT,SAAQ,+DAA8B;IAEtC,YACI,eAA4D,EAC5D,iBAA0E,EAC1E,cAAgC,EAChC,UAA8B;QAE9B,KAAK,CACD,eAAe,EACf,iBAAiB,EACjB,KAAK,IAAI,EAAE,CAAC,kDAAO,eAAe,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAChE,cAAc,EACd,UAAU,CACb,CAAC;IACN,CAAC;CACJ;AAjBD,0FAiBC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDocumentServiceFactory } from \"@fluidframework/driver-definitions\";\nimport {\n OdspResourceTokenFetchOptions,\n TokenFetcher,\n IPersistedCache,\n HostStoragePolicy,\n} from \"@fluidframework/odsp-driver-definitions\";\nimport { OdspDocumentServiceFactoryCore } from \"./odspDocumentServiceFactoryCore\";\n\nexport class OdspDocumentServiceFactoryWithCodeSplit\n extends OdspDocumentServiceFactoryCore\n implements IDocumentServiceFactory {\n constructor(\n getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>,\n getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined,\n persistedCache?: IPersistedCache,\n hostPolicy?: HostStoragePolicy,\n ) {\n super(\n getStorageToken,\n getWebsocketToken,\n async () => import(\"./getSocketIo\").then((m) => m.getSocketIo()),\n persistedCache,\n hostPolicy,\n );\n }\n}\n"]}
|
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.OdspDocumentStorageService = exports.defaultSummarizerCacheExpiryTimeout = void 0;
|
|
8
|
-
const common_utils_1 = require("@fluidframework/common-utils");
|
|
9
|
-
const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
|
|
10
|
-
const driver_definitions_1 = require("@fluidframework/driver-definitions");
|
|
11
|
-
const driver_utils_1 = require("@fluidframework/driver-utils");
|
|
12
|
-
const odsp_driver_definitions_1 = require("@fluidframework/odsp-driver-definitions");
|
|
13
|
-
const fetchSnapshot_1 = require("./fetchSnapshot");
|
|
14
|
-
const getUrlAndHeadersWithAuth_1 = require("./getUrlAndHeadersWithAuth");
|
|
15
|
-
const odspUtils_1 = require("./odspUtils");
|
|
16
|
-
const odspSummaryUploadManager_1 = require("./odspSummaryUploadManager");
|
|
17
|
-
const packageVersion_1 = require("./packageVersion");
|
|
18
|
-
const odspDocumentStorageServiceBase_1 = require("./odspDocumentStorageServiceBase");
|
|
19
|
-
exports.defaultSummarizerCacheExpiryTimeout = 60 * 1000; // 60 seconds.
|
|
20
|
-
/* eslint-disable max-len */
|
|
21
|
-
// An implementation of Promise.race that gives you the winner of the promise race
|
|
22
|
-
async function promiseRaceWithWinner(promises) {
|
|
23
|
-
return new Promise((resolve, reject) => {
|
|
24
|
-
promises.forEach((p, index) => {
|
|
25
|
-
p.then((v) => resolve({ index, value: v })).catch(reject);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDocumentStorageServiceBase {
|
|
30
|
-
constructor(odspResolvedUrl, getStorageToken, logger, fetchFullSnapshot, cache, hostPolicy, epochTracker, flushCallback, snapshotFormatFetchType) {
|
|
31
|
-
var _a;
|
|
32
|
-
super();
|
|
33
|
-
this.odspResolvedUrl = odspResolvedUrl;
|
|
34
|
-
this.getStorageToken = getStorageToken;
|
|
35
|
-
this.logger = logger;
|
|
36
|
-
this.fetchFullSnapshot = fetchFullSnapshot;
|
|
37
|
-
this.cache = cache;
|
|
38
|
-
this.hostPolicy = hostPolicy;
|
|
39
|
-
this.epochTracker = epochTracker;
|
|
40
|
-
this.flushCallback = flushCallback;
|
|
41
|
-
this.snapshotFormatFetchType = snapshotFormatFetchType;
|
|
42
|
-
this.firstVersionCall = true;
|
|
43
|
-
// Driver specified limits for snapshot size and time.
|
|
44
|
-
/**
|
|
45
|
-
* NOTE: While commit cfff6e3 added restrictions to prevent large payloads, snapshot failures will continue to
|
|
46
|
-
* happen until blob request throttling is implemented. Until then, as a temporary fix we set arbitrarily large
|
|
47
|
-
* snapshot size and timeout limits so that such failures are unlikely to occur.
|
|
48
|
-
*/
|
|
49
|
-
this.maxSnapshotSizeLimit = 500000000; // 500 MB
|
|
50
|
-
this.maxSnapshotFetchTimeout = 120000; // 2 min
|
|
51
|
-
// limits the amount of parallel "attachment" blob uploads
|
|
52
|
-
this.createBlobRateLimiter = new driver_utils_1.RateLimiter(1);
|
|
53
|
-
this.documentId = this.odspResolvedUrl.hashedDocumentId;
|
|
54
|
-
this.snapshotUrl = this.odspResolvedUrl.endpoints.snapshotStorageUrl;
|
|
55
|
-
this.attachmentPOSTUrl = this.odspResolvedUrl.endpoints.attachmentPOSTStorageUrl;
|
|
56
|
-
this.attachmentGETUrl = this.odspResolvedUrl.endpoints.attachmentGETStorageUrl;
|
|
57
|
-
this.odspSummaryUploadManager = new odspSummaryUploadManager_1.OdspSummaryUploadManager(this.snapshotUrl, getStorageToken, logger, epochTracker, !!((_a = this.hostPolicy.sessionOptions) === null || _a === void 0 ? void 0 : _a.forceAccessTokenViaAuthorizationHeader));
|
|
58
|
-
}
|
|
59
|
-
async createBlob(file) {
|
|
60
|
-
this.checkAttachmentPOSTUrl();
|
|
61
|
-
const response = await (0, odspUtils_1.getWithRetryForTokenRefresh)(async (options) => {
|
|
62
|
-
var _a;
|
|
63
|
-
const storageToken = await this.getStorageToken(options, "CreateBlob");
|
|
64
|
-
const { url, headers } = (0, getUrlAndHeadersWithAuth_1.getUrlAndHeadersWithAuth)(`${this.attachmentPOSTUrl}/content`, storageToken, !!((_a = this.hostPolicy.sessionOptions) === null || _a === void 0 ? void 0 : _a.forceAccessTokenViaAuthorizationHeader));
|
|
65
|
-
headers["Content-Type"] = "application/octet-stream";
|
|
66
|
-
return telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, {
|
|
67
|
-
eventName: "createBlob",
|
|
68
|
-
size: file.byteLength,
|
|
69
|
-
waitQueueLength: this.createBlobRateLimiter.waitQueueLength,
|
|
70
|
-
}, async (event) => {
|
|
71
|
-
const res = await this.createBlobRateLimiter.schedule(async () => this.epochTracker.fetchAndParseAsJSON(url, {
|
|
72
|
-
body: file,
|
|
73
|
-
headers,
|
|
74
|
-
method: "POST",
|
|
75
|
-
}, "createBlob"));
|
|
76
|
-
event.end(Object.assign({ blobId: res.content.id }, res.propsToLog));
|
|
77
|
-
return res;
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
return response.content;
|
|
81
|
-
}
|
|
82
|
-
async fetchBlobFromStorage(blobId, evicted) {
|
|
83
|
-
this.checkAttachmentGETUrl();
|
|
84
|
-
const blob = await (0, odspUtils_1.getWithRetryForTokenRefresh)(async (options) => {
|
|
85
|
-
var _a;
|
|
86
|
-
const storageToken = await this.getStorageToken(options, "GetBlob");
|
|
87
|
-
const unAuthedUrl = `${this.attachmentGETUrl}/${encodeURIComponent(blobId)}/content`;
|
|
88
|
-
const { url, headers } = (0, getUrlAndHeadersWithAuth_1.getUrlAndHeadersWithAuth)(unAuthedUrl, storageToken, !!((_a = this.hostPolicy.sessionOptions) === null || _a === void 0 ? void 0 : _a.forceAccessTokenViaAuthorizationHeader));
|
|
89
|
-
return telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, {
|
|
90
|
-
eventName: "readDataBlob",
|
|
91
|
-
blobId,
|
|
92
|
-
evicted,
|
|
93
|
-
headers: Object.keys(headers).length !== 0 ? true : undefined,
|
|
94
|
-
waitQueueLength: this.epochTracker.rateLimiter.waitQueueLength,
|
|
95
|
-
}, async (event) => {
|
|
96
|
-
const res = await this.epochTracker.fetchArray(url, { headers }, "blob");
|
|
97
|
-
event.end(Object.assign(Object.assign({ waitQueueLength: this.epochTracker.rateLimiter.waitQueueLength }, res.propsToLog), { attempts: options.refresh ? 2 : 1 }));
|
|
98
|
-
const cacheControl = res.headers.get("cache-control");
|
|
99
|
-
if (cacheControl === undefined || !(cacheControl.includes("private") || cacheControl.includes("public"))) {
|
|
100
|
-
this.logger.sendErrorEvent(Object.assign({ eventName: "NonCacheableBlob", cacheControl,
|
|
101
|
-
blobId }, res.propsToLog));
|
|
102
|
-
}
|
|
103
|
-
return res.content;
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
this.blobCache.setBlob(blobId, blob);
|
|
107
|
-
return blob;
|
|
108
|
-
}
|
|
109
|
-
async getSnapshotTree(version, scenarioName) {
|
|
110
|
-
if (!this.snapshotUrl) {
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
return super.getSnapshotTree(version, scenarioName);
|
|
114
|
-
}
|
|
115
|
-
async getVersions(blobid, count, scenarioName) {
|
|
116
|
-
// Regular load workflow uses blobId === documentID to indicate "latest".
|
|
117
|
-
if (blobid !== this.documentId && blobid) {
|
|
118
|
-
// FluidFetch & FluidDebugger tools use empty sting to query for versions
|
|
119
|
-
// In such case we need to make a call against SPO to give full picture to the tool.
|
|
120
|
-
// Otherwise, each commit calls getVersions but odsp doesn't have a history for each commit
|
|
121
|
-
// return the blobid as is
|
|
122
|
-
return [
|
|
123
|
-
{
|
|
124
|
-
id: blobid,
|
|
125
|
-
treeId: undefined,
|
|
126
|
-
},
|
|
127
|
-
];
|
|
128
|
-
}
|
|
129
|
-
// Can't really make a call if we do not have URL
|
|
130
|
-
if (!this.snapshotUrl) {
|
|
131
|
-
return [];
|
|
132
|
-
}
|
|
133
|
-
// If count is one, we can use the trees/latest API, which returns the latest version and trees in a single request for better performance
|
|
134
|
-
// Do it only once - we might get more here due to summarizer - it needs only container tree, not full snapshot.
|
|
135
|
-
if (this.firstVersionCall && count === 1 && (blobid === null || blobid === this.documentId)) {
|
|
136
|
-
const hostSnapshotOptions = this.hostPolicy.snapshotOptions;
|
|
137
|
-
const odspSnapshotCacheValue = await telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, { eventName: "ObtainSnapshot" }, async (event) => {
|
|
138
|
-
const props = {};
|
|
139
|
-
let retrievedSnapshot;
|
|
140
|
-
// Here's the logic to grab the persistent cache snapshot implemented by the host
|
|
141
|
-
// Epoch tracker is responsible for communicating with the persistent cache, handling epochs and cache versions
|
|
142
|
-
const cachedSnapshotP = this.epochTracker.get((0, odspUtils_1.createCacheSnapshotKey)(this.odspResolvedUrl))
|
|
143
|
-
.then(async (snapshotCachedEntry) => {
|
|
144
|
-
var _a;
|
|
145
|
-
if (snapshotCachedEntry !== undefined) {
|
|
146
|
-
// If the cached entry does not contain the entry time, then assign it a default of 30 days old.
|
|
147
|
-
const age = Date.now() - ((_a = snapshotCachedEntry.cacheEntryTime) !== null && _a !== void 0 ? _a : (Date.now() - 30 * 24 * 60 * 60 * 1000));
|
|
148
|
-
// In order to decrease the number of times we have to execute a snapshot refresh,
|
|
149
|
-
// if this is the summarizer and we have a cache entry but it is past the defaultSummarizerCacheExpiryTimeout,
|
|
150
|
-
// force the network retrieval instead as there might be a more recent snapshot available.
|
|
151
|
-
// See: https://github.com/microsoft/FluidFramework/issues/8995 for additional information.
|
|
152
|
-
if (this.hostPolicy.summarizerClient) {
|
|
153
|
-
if (age > exports.defaultSummarizerCacheExpiryTimeout) {
|
|
154
|
-
props.cacheSummarizerExpired = true;
|
|
155
|
-
return undefined;
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
props.cacheSummarizerExpired = false;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
// Record the cache age
|
|
162
|
-
props.cacheEntryAge = age;
|
|
163
|
-
}
|
|
164
|
-
return snapshotCachedEntry;
|
|
165
|
-
});
|
|
166
|
-
// Based on the concurrentSnapshotFetch policy:
|
|
167
|
-
// Either retrieve both the network and cache snapshots concurrently and pick the first to return,
|
|
168
|
-
// or grab the cache value and then the network value if the cache value returns undefined.
|
|
169
|
-
let method;
|
|
170
|
-
if (this.hostPolicy.concurrentSnapshotFetch && !this.hostPolicy.summarizerClient) {
|
|
171
|
-
const networkSnapshotP = this.fetchSnapshot(hostSnapshotOptions, scenarioName);
|
|
172
|
-
// Ensure that failures on both paths are ignored initially.
|
|
173
|
-
// I.e. if cache fails for some reason, we will proceed with network result.
|
|
174
|
-
// And vice versa - if (for example) client is offline and network request fails first, we
|
|
175
|
-
// do want to attempt to succeed with cached data!
|
|
176
|
-
const promiseRaceWinner = await promiseRaceWithWinner([
|
|
177
|
-
cachedSnapshotP.catch(() => undefined),
|
|
178
|
-
networkSnapshotP.catch(() => undefined),
|
|
179
|
-
]);
|
|
180
|
-
retrievedSnapshot = promiseRaceWinner.value;
|
|
181
|
-
method = promiseRaceWinner.index === 0 ? "cache" : "network";
|
|
182
|
-
if (retrievedSnapshot === undefined) {
|
|
183
|
-
// if network failed -> wait for cache ( then return network failure)
|
|
184
|
-
// If cache returned empty or failed -> wait for network (success of failure)
|
|
185
|
-
if (promiseRaceWinner.index === 1) {
|
|
186
|
-
retrievedSnapshot = await cachedSnapshotP;
|
|
187
|
-
method = "cache";
|
|
188
|
-
}
|
|
189
|
-
if (retrievedSnapshot === undefined) {
|
|
190
|
-
retrievedSnapshot = await networkSnapshotP;
|
|
191
|
-
method = "network";
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
// Note: There's a race condition here - another caller may come past the undefined check
|
|
197
|
-
// while the first caller is awaiting later async code in this block.
|
|
198
|
-
retrievedSnapshot = await cachedSnapshotP;
|
|
199
|
-
method = retrievedSnapshot !== undefined ? "cache" : "network";
|
|
200
|
-
if (retrievedSnapshot === undefined) {
|
|
201
|
-
retrievedSnapshot = await this.fetchSnapshot(hostSnapshotOptions, scenarioName);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
if (method === "network") {
|
|
205
|
-
props.cacheEntryAge = undefined;
|
|
206
|
-
}
|
|
207
|
-
event.end(Object.assign(Object.assign({}, props), { method }));
|
|
208
|
-
return retrievedSnapshot;
|
|
209
|
-
});
|
|
210
|
-
// Successful call, make network calls only
|
|
211
|
-
this.firstVersionCall = false;
|
|
212
|
-
const id = this.initializeFromSnapshot(odspSnapshotCacheValue);
|
|
213
|
-
return id ? [{ id, treeId: undefined }] : [];
|
|
214
|
-
}
|
|
215
|
-
return (0, odspUtils_1.getWithRetryForTokenRefresh)(async (options) => {
|
|
216
|
-
var _a;
|
|
217
|
-
const storageToken = await this.getStorageToken(options, "GetVersions");
|
|
218
|
-
const { url, headers } = (0, getUrlAndHeadersWithAuth_1.getUrlAndHeadersWithAuth)(`${this.snapshotUrl}/versions?top=${count}`, storageToken, !!((_a = this.hostPolicy.sessionOptions) === null || _a === void 0 ? void 0 : _a.forceAccessTokenViaAuthorizationHeader));
|
|
219
|
-
// Fetch the latest snapshot versions for the document
|
|
220
|
-
const response = await telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, {
|
|
221
|
-
eventName: "getVersions",
|
|
222
|
-
headers: Object.keys(headers).length !== 0 ? true : undefined,
|
|
223
|
-
}, async () => this.epochTracker.fetchAndParseAsJSON(url, { headers }, "versions", undefined, scenarioName));
|
|
224
|
-
const versionsResponse = response.content;
|
|
225
|
-
if (!versionsResponse) {
|
|
226
|
-
throw new driver_utils_1.NonRetryableError("No response from /versions endpoint", driver_definitions_1.DriverErrorType.genericNetworkError, { driverVersion: packageVersion_1.pkgVersion });
|
|
227
|
-
}
|
|
228
|
-
if (!Array.isArray(versionsResponse.value)) {
|
|
229
|
-
throw new driver_utils_1.NonRetryableError("Incorrect response from /versions endpoint, expected an array", driver_definitions_1.DriverErrorType.genericNetworkError, { driverVersion: packageVersion_1.pkgVersion });
|
|
230
|
-
}
|
|
231
|
-
return versionsResponse.value.map((version) => {
|
|
232
|
-
return {
|
|
233
|
-
id: version.id,
|
|
234
|
-
treeId: undefined,
|
|
235
|
-
};
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
async fetchSnapshot(hostSnapshotOptions, scenarioName) {
|
|
240
|
-
return this.fetchSnapshotCore(hostSnapshotOptions, scenarioName).catch((error) => {
|
|
241
|
-
// Issue #5895:
|
|
242
|
-
// If we are offline, this error is retryable. But that means that RetriableDocumentStorageService
|
|
243
|
-
// will run in circles calling getSnapshotTree, which would result in OdspDocumentStorageService class
|
|
244
|
-
// going getVersions / individual blob download path. This path is very slow, and will not work with
|
|
245
|
-
// delay-loaded data stores and ODSP storage deleting old snapshots and blobs.
|
|
246
|
-
if (typeof error === "object" && error !== null) {
|
|
247
|
-
error.canRetry = false;
|
|
248
|
-
}
|
|
249
|
-
throw error;
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
async fetchSnapshotCore(hostSnapshotOptions, scenarioName) {
|
|
253
|
-
var _a, _b;
|
|
254
|
-
const snapshotOptions = Object.assign(Object.assign({ mds: this.maxSnapshotSizeLimit }, hostSnapshotOptions), { timeout: (hostSnapshotOptions === null || hostSnapshotOptions === void 0 ? void 0 : hostSnapshotOptions.timeout) ? Math.min(hostSnapshotOptions.timeout, this.maxSnapshotFetchTimeout) : this.maxSnapshotFetchTimeout });
|
|
255
|
-
// No limit on size of snapshot or time to fetch, as otherwise we fail all clients to summarize
|
|
256
|
-
if (this.hostPolicy.summarizerClient) {
|
|
257
|
-
snapshotOptions.mds = undefined;
|
|
258
|
-
snapshotOptions.timeout = undefined;
|
|
259
|
-
}
|
|
260
|
-
const snapshotDownloader = async (finalOdspResolvedUrl, storageToken, options, controller) => {
|
|
261
|
-
return (0, fetchSnapshot_1.downloadSnapshot)(finalOdspResolvedUrl, storageToken, this.logger, options, this.snapshotFormatFetchType, controller, this.epochTracker, scenarioName);
|
|
262
|
-
};
|
|
263
|
-
const putInCache = async (valueWithEpoch) => {
|
|
264
|
-
return this.cache.persistedCache.put((0, odspUtils_1.createCacheSnapshotKey)(this.odspResolvedUrl),
|
|
265
|
-
// Epoch tracker will add the epoch and version to the value here. So just send value to cache.
|
|
266
|
-
valueWithEpoch.value);
|
|
267
|
-
};
|
|
268
|
-
const removeEntries = async () => this.cache.persistedCache.removeEntries();
|
|
269
|
-
try {
|
|
270
|
-
const odspSnapshot = await (0, fetchSnapshot_1.fetchSnapshotWithRedeem)(this.odspResolvedUrl, this.getStorageToken, snapshotOptions, !!((_a = this.hostPolicy.sessionOptions) === null || _a === void 0 ? void 0 : _a.forceAccessTokenViaAuthorizationHeader), this.logger, snapshotDownloader, putInCache, removeEntries, this.hostPolicy.enableRedeemFallback);
|
|
271
|
-
return odspSnapshot;
|
|
272
|
-
}
|
|
273
|
-
catch (error) {
|
|
274
|
-
const errorType = error.errorType;
|
|
275
|
-
// If the snapshot size is too big and the host specified the size limitation(specified in hostSnapshotOptions), then don't try to fetch the snapshot again.
|
|
276
|
-
if ((errorType === odsp_driver_definitions_1.OdspErrorType.snapshotTooBig && (hostSnapshotOptions === null || hostSnapshotOptions === void 0 ? void 0 : hostSnapshotOptions.mds) !== undefined) && (this.hostPolicy.summarizerClient !== true)) {
|
|
277
|
-
throw error;
|
|
278
|
-
}
|
|
279
|
-
// If the first snapshot request was with blobs and we either timed out or the size was too big, then try to fetch without blobs.
|
|
280
|
-
if ((errorType === odsp_driver_definitions_1.OdspErrorType.snapshotTooBig || errorType === odsp_driver_definitions_1.OdspErrorType.fetchTimeout) && snapshotOptions.blobs) {
|
|
281
|
-
this.logger.sendErrorEvent({
|
|
282
|
-
eventName: "TreeLatest_SecondCall",
|
|
283
|
-
errorType,
|
|
284
|
-
});
|
|
285
|
-
const snapshotOptionsWithoutBlobs = Object.assign(Object.assign({}, snapshotOptions), { blobs: 0, mds: undefined, timeout: undefined });
|
|
286
|
-
const odspSnapshot = await (0, fetchSnapshot_1.fetchSnapshotWithRedeem)(this.odspResolvedUrl, this.getStorageToken, snapshotOptionsWithoutBlobs, !!((_b = this.hostPolicy.sessionOptions) === null || _b === void 0 ? void 0 : _b.forceAccessTokenViaAuthorizationHeader), this.logger, snapshotDownloader, putInCache, removeEntries, this.hostPolicy.enableRedeemFallback);
|
|
287
|
-
return odspSnapshot;
|
|
288
|
-
}
|
|
289
|
-
throw error;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
async uploadSummaryWithContext(summary, context) {
|
|
293
|
-
var _a;
|
|
294
|
-
this.checkSnapshotUrl();
|
|
295
|
-
// Enable flushing only if we have single commit summary and this is not the initial summary for an empty file
|
|
296
|
-
if (".protocol" in summary.tree && context.ackHandle !== undefined) {
|
|
297
|
-
let retry = 1;
|
|
298
|
-
for (;;) {
|
|
299
|
-
const result = await this.flushCallback();
|
|
300
|
-
const seq = result.lastPersistedSequenceNumber;
|
|
301
|
-
if (seq !== undefined && seq >= context.referenceSequenceNumber) {
|
|
302
|
-
break;
|
|
303
|
-
}
|
|
304
|
-
if (retry > 3) {
|
|
305
|
-
this.logger.sendErrorEvent(Object.assign(Object.assign({ eventName: "FlushFailure" }, result), { retry, referenceSequenceNumber: context.referenceSequenceNumber }));
|
|
306
|
-
break;
|
|
307
|
-
}
|
|
308
|
-
this.logger.sendPerformanceEvent(Object.assign(Object.assign({ eventName: "FlushExtraCall" }, result), { retry, referenceSequenceNumber: context.referenceSequenceNumber }));
|
|
309
|
-
retry++;
|
|
310
|
-
await (0, common_utils_1.delay)(1000 * ((_a = result.retryAfter) !== null && _a !== void 0 ? _a : 1));
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
const id = await this.odspSummaryUploadManager.writeSummaryTree(summary, context);
|
|
314
|
-
return id;
|
|
315
|
-
}
|
|
316
|
-
checkSnapshotUrl() {
|
|
317
|
-
if (!this.snapshotUrl) {
|
|
318
|
-
throw new driver_utils_1.NonRetryableError("Method failed because no snapshot url was available", driver_definitions_1.DriverErrorType.genericError, { driverVersion: packageVersion_1.pkgVersion });
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
checkAttachmentPOSTUrl() {
|
|
322
|
-
if (!this.attachmentPOSTUrl) {
|
|
323
|
-
throw new driver_utils_1.NonRetryableError("Method failed because no attachment POST url was available", driver_definitions_1.DriverErrorType.genericError, { driverVersion: packageVersion_1.pkgVersion });
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
checkAttachmentGETUrl() {
|
|
327
|
-
if (!this.attachmentGETUrl) {
|
|
328
|
-
throw new driver_utils_1.NonRetryableError("Method failed because no attachment GET url was available", driver_definitions_1.DriverErrorType.genericError, { driverVersion: packageVersion_1.pkgVersion });
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
async fetchTreeFromSnapshot(id, scenarioName) {
|
|
332
|
-
return (0, odspUtils_1.getWithRetryForTokenRefresh)(async (options) => {
|
|
333
|
-
var _a, _b;
|
|
334
|
-
const storageToken = await this.getStorageToken(options, "ReadCommit");
|
|
335
|
-
const snapshotDownloader = async (url, fetchOptions) => {
|
|
336
|
-
return this.epochTracker.fetchAndParseAsJSON(url, fetchOptions, "snapshotTree", undefined, scenarioName);
|
|
337
|
-
};
|
|
338
|
-
const snapshot = await (0, fetchSnapshot_1.fetchSnapshot)(this.snapshotUrl, storageToken, id, this.fetchFullSnapshot, !!((_a = this.hostPolicy.sessionOptions) === null || _a === void 0 ? void 0 : _a.forceAccessTokenViaAuthorizationHeader), this.logger, snapshotDownloader);
|
|
339
|
-
let treeId = "";
|
|
340
|
-
if (snapshot.snapshotTree) {
|
|
341
|
-
(0, common_utils_1.assert)(snapshot.snapshotTree.id !== undefined, 0x222 /* "Root tree should contain the id!!" */);
|
|
342
|
-
treeId = snapshot.snapshotTree.id;
|
|
343
|
-
this.setRootTree(treeId, snapshot.snapshotTree);
|
|
344
|
-
}
|
|
345
|
-
if (snapshot.blobs) {
|
|
346
|
-
this.initBlobsCache(snapshot.blobs);
|
|
347
|
-
}
|
|
348
|
-
// If the version id doesn't match with the id of the tree, then use the id of first tree which in that case
|
|
349
|
-
// will be the actual id of tree to be fetched.
|
|
350
|
-
return (_b = this.commitCache.get(id)) !== null && _b !== void 0 ? _b : this.commitCache.get(treeId);
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
exports.OdspDocumentStorageService = OdspDocumentStorageService;
|
|
355
|
-
/* eslint-enable max-len */
|
|
356
|
-
//# sourceMappingURL=odspDocumentStorageManager.js.map
|