@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
package/src/odspUtils.ts
CHANGED
|
@@ -3,35 +3,43 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITelemetryProperties, ITelemetryBaseLogger
|
|
6
|
+
import { ITelemetryProperties, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
7
7
|
import { IResolvedUrl, DriverErrorType } from "@fluidframework/driver-definitions";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
isOnline,
|
|
10
|
+
OnlineStatus,
|
|
11
|
+
RetryableError,
|
|
12
|
+
NonRetryableError,
|
|
13
|
+
NetworkErrorBasic,
|
|
14
14
|
} from "@fluidframework/driver-utils";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { performance } from "@fluid-internal/client-utils";
|
|
16
|
+
import { assert } from "@fluidframework/core-utils";
|
|
17
17
|
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
ITelemetryLoggerExt,
|
|
19
|
+
PerformanceEvent,
|
|
20
|
+
TelemetryDataTag,
|
|
21
|
+
createChildLogger,
|
|
22
|
+
wrapError,
|
|
23
|
+
} from "@fluidframework/telemetry-utils";
|
|
24
|
+
import {
|
|
25
|
+
fetchIncorrectResponse,
|
|
26
|
+
throwOdspNetworkError,
|
|
27
|
+
getSPOAndGraphRequestIdsFromResponse,
|
|
21
28
|
} from "@fluidframework/odsp-doclib-utils";
|
|
22
29
|
import {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
IOdspResolvedUrl,
|
|
31
|
+
TokenFetchOptions,
|
|
32
|
+
OdspErrorType,
|
|
33
|
+
tokenFromResponse,
|
|
34
|
+
isTokenFromCache,
|
|
35
|
+
OdspResourceTokenFetchOptions,
|
|
36
|
+
ShareLinkTypes,
|
|
37
|
+
ISharingLinkKind,
|
|
38
|
+
TokenFetcher,
|
|
39
|
+
ICacheEntry,
|
|
40
|
+
snapshotKey,
|
|
41
|
+
InstrumentedStorageTokenFetcher,
|
|
42
|
+
IOdspUrlParts,
|
|
35
43
|
} from "@fluidframework/odsp-driver-definitions";
|
|
36
44
|
import { fetch } from "./fetch";
|
|
37
45
|
import { pkgVersion as driverVersion } from "./packageVersion";
|
|
@@ -42,24 +50,27 @@ export const getWithRetryForTokenRefreshRepeat = "getWithRetryForTokenRefreshRep
|
|
|
42
50
|
/** Parse the given url and return the origin (host name) */
|
|
43
51
|
export const getOrigin = (url: string) => new URL(url).origin;
|
|
44
52
|
|
|
53
|
+
/**
|
|
54
|
+
* @alpha
|
|
55
|
+
*/
|
|
45
56
|
export interface IOdspResponse<T> {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
content: T;
|
|
58
|
+
headers: Map<string, string>;
|
|
59
|
+
propsToLog: ITelemetryProperties;
|
|
60
|
+
duration: number;
|
|
50
61
|
}
|
|
51
62
|
|
|
52
63
|
export interface TokenFetchOptionsEx extends TokenFetchOptions {
|
|
53
|
-
|
|
54
|
-
|
|
64
|
+
/** previous error we hit in getWithRetryForTokenRefresh */
|
|
65
|
+
previousError?: any;
|
|
55
66
|
}
|
|
56
67
|
|
|
57
68
|
function headersToMap(headers: Headers) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
const newHeaders = new Map<string, string>();
|
|
70
|
+
for (const [key, value] of headers.entries()) {
|
|
71
|
+
newHeaders.set(key, value);
|
|
72
|
+
}
|
|
73
|
+
return newHeaders;
|
|
63
74
|
}
|
|
64
75
|
|
|
65
76
|
/**
|
|
@@ -68,90 +79,118 @@ function headersToMap(headers: Headers) {
|
|
|
68
79
|
* token on failure. Only specific cases get retry call with refresh = true, all other / unknown errors
|
|
69
80
|
* simply propagate to caller
|
|
70
81
|
*/
|
|
71
|
-
export async function getWithRetryForTokenRefresh<T>(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
82
|
+
export async function getWithRetryForTokenRefresh<T>(
|
|
83
|
+
get: (options: TokenFetchOptionsEx) => Promise<T>,
|
|
84
|
+
) {
|
|
85
|
+
return get({ refresh: false }).catch(async (e) => {
|
|
86
|
+
const options: TokenFetchOptionsEx = { refresh: true, previousError: e };
|
|
87
|
+
switch (e.errorType) {
|
|
88
|
+
// If the error is 401 or 403 refresh the token and try once more.
|
|
89
|
+
case DriverErrorType.authorizationError:
|
|
90
|
+
return get({ ...options, claims: e.claims, tenantId: e.tenantId });
|
|
91
|
+
|
|
92
|
+
case DriverErrorType.incorrectServerResponse: // some error on the wire, retry once
|
|
93
|
+
case OdspErrorType.fetchTokenError: // If the token was null, then retry once.
|
|
94
|
+
return get(options);
|
|
95
|
+
|
|
96
|
+
default:
|
|
97
|
+
// Caller may determine that it wants one retry
|
|
98
|
+
if (e[getWithRetryForTokenRefreshRepeat] === true) {
|
|
99
|
+
return get(options);
|
|
100
|
+
}
|
|
101
|
+
throw e;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
91
104
|
}
|
|
92
105
|
|
|
93
106
|
export async function fetchHelper(
|
|
94
|
-
|
|
95
|
-
|
|
107
|
+
requestInfo: RequestInfo,
|
|
108
|
+
requestInit: RequestInit | undefined,
|
|
96
109
|
): Promise<IOdspResponse<Response>> {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
110
|
+
const start = performance.now();
|
|
111
|
+
|
|
112
|
+
// Node-fetch and dom have conflicting typing, force them to work by casting for now
|
|
113
|
+
return fetch(requestInfo, requestInit).then(
|
|
114
|
+
async (fetchResponse) => {
|
|
115
|
+
const response = fetchResponse as any as Response;
|
|
116
|
+
// Let's assume we can retry.
|
|
117
|
+
if (!response) {
|
|
118
|
+
throw new NonRetryableError(
|
|
119
|
+
// pre-0.58 error message: No response from fetch call
|
|
120
|
+
"No response from ODSP fetch call",
|
|
121
|
+
DriverErrorType.incorrectServerResponse,
|
|
122
|
+
{ driverVersion },
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
if (!response.ok || response.status < 200 || response.status >= 300) {
|
|
126
|
+
throwOdspNetworkError(
|
|
127
|
+
// pre-0.58 error message prefix: odspFetchError
|
|
128
|
+
`ODSP fetch error [${response.status}]`,
|
|
129
|
+
response.status,
|
|
130
|
+
response,
|
|
131
|
+
await response.text(),
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const headers = headersToMap(response.headers);
|
|
136
|
+
return {
|
|
137
|
+
content: response,
|
|
138
|
+
headers,
|
|
139
|
+
propsToLog: getSPOAndGraphRequestIdsFromResponse(headers),
|
|
140
|
+
duration: performance.now() - start,
|
|
141
|
+
};
|
|
142
|
+
},
|
|
143
|
+
(error) => {
|
|
144
|
+
const online = isOnline();
|
|
145
|
+
|
|
146
|
+
// The error message may not be suitable to log for privacy reasons, so tag it as such
|
|
147
|
+
const taggedErrorMessage = {
|
|
148
|
+
value: `${error}`, // This uses toString for objects, which often results in `${error.name}: ${error.message}`
|
|
149
|
+
tag: TelemetryDataTag.UserData,
|
|
150
|
+
};
|
|
151
|
+
// After redacting URLs we believe the error message is safe to log
|
|
152
|
+
const urlRegex = /((http|https):\/\/(\S*))/i;
|
|
153
|
+
const redactedErrorText = taggedErrorMessage.value.replace(urlRegex, "REDACTED_URL");
|
|
154
|
+
|
|
155
|
+
// This error is thrown by fetch() when AbortSignal is provided and it gets cancelled
|
|
156
|
+
if (error.name === "AbortError") {
|
|
157
|
+
throw new RetryableError("Fetch Timeout (AbortError)", OdspErrorType.fetchTimeout, {
|
|
158
|
+
driverVersion,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
// TCP/IP timeout
|
|
162
|
+
if (redactedErrorText.includes("ETIMEDOUT")) {
|
|
163
|
+
throw new RetryableError("Fetch Timeout (ETIMEDOUT)", OdspErrorType.fetchTimeout, {
|
|
164
|
+
driverVersion,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// eslint-disable-next-line unicorn/prefer-ternary
|
|
169
|
+
if (online === OnlineStatus.Offline) {
|
|
170
|
+
throw new RetryableError(
|
|
171
|
+
// pre-0.58 error message prefix: Offline
|
|
172
|
+
`ODSP fetch failure (Offline): ${redactedErrorText}`,
|
|
173
|
+
DriverErrorType.offlineError,
|
|
174
|
+
{
|
|
175
|
+
driverVersion,
|
|
176
|
+
rawErrorMessage: taggedErrorMessage,
|
|
177
|
+
},
|
|
178
|
+
);
|
|
179
|
+
} else {
|
|
180
|
+
// It is perhaps still possible that this is due to being offline, the error does not reveal enough
|
|
181
|
+
// information to conclude. Could also be DNS errors, malformed fetch request, CSP violation, etc.
|
|
182
|
+
throw new RetryableError(
|
|
183
|
+
// pre-0.58 error message prefix: Fetch error
|
|
184
|
+
`ODSP fetch failure: ${redactedErrorText}`,
|
|
185
|
+
DriverErrorType.fetchFailure,
|
|
186
|
+
{
|
|
187
|
+
driverVersion,
|
|
188
|
+
rawErrorMessage: taggedErrorMessage,
|
|
189
|
+
},
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
);
|
|
155
194
|
}
|
|
156
195
|
|
|
157
196
|
/**
|
|
@@ -160,19 +199,32 @@ export async function fetchHelper(
|
|
|
160
199
|
* @param requestInit - fetch requestInit
|
|
161
200
|
*/
|
|
162
201
|
export async function fetchArray(
|
|
163
|
-
|
|
164
|
-
|
|
202
|
+
requestInfo: RequestInfo,
|
|
203
|
+
requestInit: RequestInit | undefined,
|
|
165
204
|
): Promise<IOdspResponse<ArrayBuffer>> {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
205
|
+
const { content, headers, propsToLog, duration } = await fetchHelper(requestInfo, requestInit);
|
|
206
|
+
let arrayBuffer: ArrayBuffer;
|
|
207
|
+
try {
|
|
208
|
+
arrayBuffer = await content.arrayBuffer();
|
|
209
|
+
} catch (e) {
|
|
210
|
+
// Parsing can fail and message could contain full request URI, including
|
|
211
|
+
// tokens, etc. So do not log error object itself.
|
|
212
|
+
throwOdspNetworkError(
|
|
213
|
+
"Error while parsing fetch response",
|
|
214
|
+
fetchIncorrectResponse,
|
|
215
|
+
content, // response
|
|
216
|
+
undefined, // response text
|
|
217
|
+
propsToLog,
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
propsToLog.bodySize = arrayBuffer.byteLength;
|
|
222
|
+
return {
|
|
223
|
+
headers,
|
|
224
|
+
content: arrayBuffer,
|
|
225
|
+
propsToLog,
|
|
226
|
+
duration,
|
|
227
|
+
};
|
|
176
228
|
}
|
|
177
229
|
|
|
178
230
|
/**
|
|
@@ -181,159 +233,249 @@ export async function fetchArray(
|
|
|
181
233
|
* @param requestInit - fetch requestInit
|
|
182
234
|
*/
|
|
183
235
|
export async function fetchAndParseAsJSONHelper<T>(
|
|
184
|
-
|
|
185
|
-
|
|
236
|
+
requestInfo: RequestInfo,
|
|
237
|
+
requestInit: RequestInit | undefined,
|
|
186
238
|
): Promise<IOdspResponse<T>> {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
239
|
+
const { content, headers, propsToLog, duration } = await fetchHelper(requestInfo, requestInit);
|
|
240
|
+
let text: string | undefined;
|
|
241
|
+
try {
|
|
242
|
+
text = await content.text();
|
|
243
|
+
} catch (e) {
|
|
244
|
+
// JSON.parse() can fail and message would container full request URI, including
|
|
245
|
+
// tokens... It fails for me with "Unexpected end of JSON input" quite often - an attempt to download big file
|
|
246
|
+
// (many ops) almost always ends up with this error - I'd guess 1% of op request end up here... It always
|
|
247
|
+
// succeeds on retry.
|
|
248
|
+
// So do not log error object itself.
|
|
249
|
+
throwOdspNetworkError(
|
|
250
|
+
// pre-0.58 error message: errorWhileParsingFetchResponse
|
|
251
|
+
"Error while parsing fetch response",
|
|
252
|
+
fetchIncorrectResponse,
|
|
253
|
+
content, // response
|
|
254
|
+
text,
|
|
255
|
+
propsToLog,
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
propsToLog.bodySize = text.length;
|
|
260
|
+
const res = {
|
|
261
|
+
headers,
|
|
262
|
+
content: JSON.parse(text),
|
|
263
|
+
propsToLog,
|
|
264
|
+
duration,
|
|
265
|
+
};
|
|
266
|
+
return res;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export interface IFileInfoBase {
|
|
270
|
+
type: "New" | "Existing";
|
|
271
|
+
siteUrl: string;
|
|
272
|
+
driveId: string;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
export interface INewFileInfo extends IFileInfoBase {
|
|
276
|
+
type: "New";
|
|
277
|
+
filename: string;
|
|
278
|
+
filePath: string;
|
|
279
|
+
/**
|
|
280
|
+
* application can request creation of a share link along with the creation of a new file
|
|
281
|
+
* by passing in an optional param to specify the kind of sharing link
|
|
282
|
+
* (at the time of adding this comment Sept/2021), odsp only supports csl
|
|
283
|
+
* ShareLinkTypes will deprecated in future. Use ISharingLinkKind instead which specifies both
|
|
284
|
+
* share link type and the role type.
|
|
285
|
+
*/
|
|
286
|
+
createLinkType?: ShareLinkTypes | ISharingLinkKind;
|
|
214
287
|
}
|
|
215
288
|
|
|
216
|
-
export interface
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
*/
|
|
226
|
-
createLinkType?: ShareLinkTypes;
|
|
289
|
+
export interface IExistingFileInfo extends IFileInfoBase {
|
|
290
|
+
type: "Existing";
|
|
291
|
+
itemId: string;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
export function isNewFileInfo(
|
|
295
|
+
fileInfo: INewFileInfo | IExistingFileInfo,
|
|
296
|
+
): fileInfo is INewFileInfo {
|
|
297
|
+
return fileInfo.type === undefined || fileInfo.type === "New";
|
|
227
298
|
}
|
|
228
299
|
|
|
229
300
|
export function getOdspResolvedUrl(resolvedUrl: IResolvedUrl): IOdspResolvedUrl {
|
|
230
|
-
|
|
231
|
-
|
|
301
|
+
assert(
|
|
302
|
+
(resolvedUrl as IOdspResolvedUrl).odspResolvedUrl === true,
|
|
303
|
+
0x1de /* "Not an ODSP resolved url" */,
|
|
304
|
+
);
|
|
305
|
+
return resolvedUrl as IOdspResolvedUrl;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* @internal
|
|
310
|
+
*/
|
|
311
|
+
export function isOdspResolvedUrl(resolvedUrl: IResolvedUrl): resolvedUrl is IOdspResolvedUrl {
|
|
312
|
+
return "odspResolvedUrl" in resolvedUrl && resolvedUrl.odspResolvedUrl === true;
|
|
232
313
|
}
|
|
233
314
|
|
|
234
315
|
export const createOdspLogger = (logger?: ITelemetryBaseLogger) =>
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
316
|
+
createChildLogger({
|
|
317
|
+
logger,
|
|
318
|
+
namespace: "OdspDriver",
|
|
319
|
+
properties: {
|
|
320
|
+
all: {
|
|
321
|
+
driverVersion,
|
|
322
|
+
},
|
|
323
|
+
},
|
|
324
|
+
});
|
|
244
325
|
|
|
245
326
|
export function evalBlobsAndTrees(snapshot: IOdspSnapshot) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
327
|
+
let numTrees = 0;
|
|
328
|
+
let numBlobs = 0;
|
|
329
|
+
let encodedBlobsSize = 0;
|
|
330
|
+
let decodedBlobsSize = 0;
|
|
331
|
+
for (const tree of snapshot.trees) {
|
|
332
|
+
for (const treeEntry of tree.entries) {
|
|
333
|
+
if (treeEntry.type === "blob") {
|
|
334
|
+
numBlobs++;
|
|
335
|
+
} else if (treeEntry.type === "tree") {
|
|
336
|
+
numTrees++;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (snapshot.blobs !== undefined) {
|
|
341
|
+
for (const blob of snapshot.blobs) {
|
|
342
|
+
decodedBlobsSize += blob.size;
|
|
343
|
+
encodedBlobsSize += blob.content.length;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return { numTrees, numBlobs, encodedBlobsSize, decodedBlobsSize };
|
|
266
347
|
}
|
|
267
348
|
|
|
268
349
|
export function toInstrumentedOdspTokenFetcher(
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
350
|
+
logger: ITelemetryLoggerExt,
|
|
351
|
+
resolvedUrlParts: IOdspUrlParts,
|
|
352
|
+
tokenFetcher: TokenFetcher<OdspResourceTokenFetchOptions>,
|
|
353
|
+
throwOnNullToken: boolean,
|
|
273
354
|
): InstrumentedStorageTokenFetcher {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
355
|
+
return async (
|
|
356
|
+
options: TokenFetchOptions,
|
|
357
|
+
name: string,
|
|
358
|
+
alwaysRecordTokenFetchTelemetry: boolean = false,
|
|
359
|
+
) => {
|
|
360
|
+
// Telemetry note: if options.refresh is true, there is a potential perf issue:
|
|
361
|
+
// Host should optimize and provide non-expired tokens on all critical paths.
|
|
362
|
+
// Exceptions: race conditions around expiration, revoked tokens, host that does not care
|
|
363
|
+
// (fluid-fetcher)
|
|
364
|
+
return PerformanceEvent.timedExecAsync(
|
|
365
|
+
logger,
|
|
366
|
+
{
|
|
367
|
+
eventName: `${name}_GetToken`,
|
|
368
|
+
attempts: options.refresh ? 2 : 1,
|
|
369
|
+
hasClaims: !!options.claims,
|
|
370
|
+
hasTenantId: !!options.tenantId,
|
|
371
|
+
},
|
|
372
|
+
async (event) =>
|
|
373
|
+
tokenFetcher({
|
|
374
|
+
...options,
|
|
375
|
+
...resolvedUrlParts,
|
|
376
|
+
}).then(
|
|
377
|
+
(tokenResponse) => {
|
|
378
|
+
const token = tokenFromResponse(tokenResponse);
|
|
379
|
+
// This event alone generates so many events that is materially impacts cost of telemetry
|
|
380
|
+
// Thus do not report end event when it comes back quickly.
|
|
381
|
+
// Note that most of the hosts do not report if result is comming from cache or not,
|
|
382
|
+
// so we can't rely on that here. But always record if specified explicitly for cases such as
|
|
383
|
+
// calling trees/latest during load.
|
|
384
|
+
if (alwaysRecordTokenFetchTelemetry || event.duration >= 32) {
|
|
385
|
+
event.end({
|
|
386
|
+
fromCache: isTokenFromCache(tokenResponse),
|
|
387
|
+
isNull: token === null,
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
if (token === null && throwOnNullToken) {
|
|
391
|
+
throw new NonRetryableError(
|
|
392
|
+
// pre-0.58 error message: Token is null for ${name} call
|
|
393
|
+
`The Host-provided token fetcher returned null`,
|
|
394
|
+
OdspErrorType.fetchTokenError,
|
|
395
|
+
{ method: name, driverVersion },
|
|
396
|
+
);
|
|
397
|
+
}
|
|
398
|
+
return token;
|
|
399
|
+
},
|
|
400
|
+
(error) => {
|
|
401
|
+
// There is an important but unofficial contract here where token providers can set canRetry: true
|
|
402
|
+
// to hook into the driver's retry logic (e.g. the retry loop when initiating a connection)
|
|
403
|
+
const rawCanRetry = error?.canRetry;
|
|
404
|
+
const tokenError = wrapError(
|
|
405
|
+
error,
|
|
406
|
+
(errorMessage) =>
|
|
407
|
+
new NetworkErrorBasic(
|
|
408
|
+
`The Host-provided token fetcher threw an error`,
|
|
409
|
+
OdspErrorType.fetchTokenError,
|
|
410
|
+
typeof rawCanRetry === "boolean"
|
|
411
|
+
? rawCanRetry
|
|
412
|
+
: false /* canRetry */,
|
|
413
|
+
{ method: name, errorMessage, driverVersion },
|
|
414
|
+
),
|
|
415
|
+
);
|
|
416
|
+
throw tokenError;
|
|
417
|
+
},
|
|
418
|
+
),
|
|
419
|
+
{ cancel: "generic" },
|
|
420
|
+
);
|
|
421
|
+
};
|
|
323
422
|
}
|
|
324
423
|
|
|
325
424
|
export function createCacheSnapshotKey(odspResolvedUrl: IOdspResolvedUrl): ICacheEntry {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
425
|
+
const cacheEntry: ICacheEntry = {
|
|
426
|
+
type: snapshotKey,
|
|
427
|
+
key: odspResolvedUrl.fileVersion ?? "",
|
|
428
|
+
file: {
|
|
429
|
+
resolvedUrl: odspResolvedUrl,
|
|
430
|
+
docId: odspResolvedUrl.hashedDocumentId,
|
|
431
|
+
},
|
|
432
|
+
};
|
|
433
|
+
return cacheEntry;
|
|
335
434
|
}
|
|
336
435
|
|
|
337
436
|
// 80KB is the max body size that we can put in ump post body for server to be able to accept it.
|
|
338
437
|
// Keeping it 78KB to be a little cautious. As per the telemetry 99p is less than 78KB.
|
|
339
438
|
export const maxUmpPostBodySize = 79872;
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Build request parameters to request for the creation of a sharing link along with the creation of the file
|
|
442
|
+
* through the /snapshot api call.
|
|
443
|
+
* @param shareLinkType - Kind of sharing link requested
|
|
444
|
+
* @returns A string of request parameters that can be concatenated with the base URI
|
|
445
|
+
*/
|
|
446
|
+
export function buildOdspShareLinkReqParams(
|
|
447
|
+
shareLinkType: ShareLinkTypes | ISharingLinkKind | undefined,
|
|
448
|
+
) {
|
|
449
|
+
if (!shareLinkType) {
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
const scope = (shareLinkType as ISharingLinkKind).scope;
|
|
453
|
+
if (!scope) {
|
|
454
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
455
|
+
return `createLinkType=${shareLinkType}`;
|
|
456
|
+
}
|
|
457
|
+
let shareLinkRequestParams = `createLinkScope=${scope}`;
|
|
458
|
+
const role = (shareLinkType as ISharingLinkKind).role;
|
|
459
|
+
shareLinkRequestParams = role
|
|
460
|
+
? `${shareLinkRequestParams}&createLinkRole=${role}`
|
|
461
|
+
: shareLinkRequestParams;
|
|
462
|
+
return shareLinkRequestParams;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
export function measure<T>(callback: () => T): [T, number] {
|
|
466
|
+
const start = performance.now();
|
|
467
|
+
const result = callback();
|
|
468
|
+
const time = performance.now() - start;
|
|
469
|
+
return [result, time];
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
export async function measureP<T>(callback: () => Promise<T>): Promise<[T, number]> {
|
|
473
|
+
const start = performance.now();
|
|
474
|
+
const result = await callback();
|
|
475
|
+
const time = performance.now() - start;
|
|
476
|
+
return [result, time];
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
export function getJoinSessionCacheKey(odspResolvedUrl: IOdspResolvedUrl) {
|
|
480
|
+
return `${odspResolvedUrl.hashedDocumentId}/joinsession`;
|
|
481
|
+
}
|