@fluidframework/odsp-driver 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.225277
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-esm.json +4 -0
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/odsp-driver.api.md +309 -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 +496 -0
- package/dist/odsp-driver-beta.d.ts +160 -0
- package/dist/odsp-driver-public.d.ts +160 -0
- package/dist/odsp-driver-untrimmed.d.ts +565 -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 +18 -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.ts → ReadBufferUtils.d.mts} +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} +4 -6
- 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} +2 -1
- 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} +4 -5
- 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} +7 -1
- 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} +18 -55
- 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} +16 -1
- 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} +6 -8
- 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} +3 -2
- package/lib/createOdspUrl.d.mts.map +1 -0
- package/lib/{createOdspUrl.js → createOdspUrl.mjs} +2 -1
- package/lib/createOdspUrl.mjs.map +1 -0
- package/lib/{epochTracker.d.ts → epochTracker.d.mts} +35 -11
- 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} +2 -2
- package/lib/fetch.d.mts.map +1 -0
- package/lib/{fetch.js → fetch.mjs} +1 -1
- package/lib/fetch.mjs.map +1 -0
- package/lib/{fetchSnapshot.d.ts → fetchSnapshot.d.mts} +15 -10
- 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} +5 -8
- 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} +1 -5
- 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 → getUrlAndHeadersWithAuth.d.mts} +1 -1
- package/lib/getUrlAndHeadersWithAuth.d.mts.map +1 -0
- 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} +4 -3
- 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} +5 -6
- 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} +4 -4
- 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 +496 -0
- package/lib/odsp-driver-beta.d.mts +160 -0
- package/lib/odsp-driver-public.d.mts +160 -0
- package/lib/odsp-driver-untrimmed.d.mts +565 -0
- package/lib/{odspCache.d.ts → odspCache.d.mts} +20 -9
- 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} +10 -8
- 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} +34 -14
- 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} +15 -29
- 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} +6 -2
- 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} +20 -13
- 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} +7 -2
- 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} +18 -12
- 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} +9 -11
- 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} +13 -1
- 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} +7 -5
- 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} +2 -2
- 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} +12 -3
- 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} +7 -1
- 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} +3 -3
- 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} +9 -6
- 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} +6 -1
- 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} +37 -8
- 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} +4 -4
- 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} +2 -2
- package/lib/packageVersion.d.mts.map +1 -0
- package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
- package/lib/packageVersion.mjs.map +1 -0
- package/lib/{prefetchLatestSnapshot.d.ts → prefetchLatestSnapshot.d.mts} +14 -9
- 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} +6 -5
- 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} +3 -3
- 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} +7 -7
- 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} +49 -22
- 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 +87 -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 +329 -200
- 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.d.ts.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.d.ts.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.d.ts.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.d.ts.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
|
@@ -3,28 +3,34 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert } from "@fluidframework/
|
|
6
|
+
import { assert } from "@fluidframework/core-utils";
|
|
7
7
|
import { ISequencedDocumentMessage, ISnapshotTree } from "@fluidframework/protocol-definitions";
|
|
8
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
8
9
|
import { ISnapshotContents } from "./odspPublicUtils";
|
|
9
10
|
import { ReadBuffer } from "./ReadBufferUtils";
|
|
10
|
-
import { ISnapshotTreeEx } from "./contracts";
|
|
11
11
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
assertBlobCoreInstance,
|
|
13
|
+
getStringInstance,
|
|
14
|
+
assertBoolInstance,
|
|
15
|
+
assertNodeCoreInstance,
|
|
16
|
+
assertNumberInstance,
|
|
17
|
+
getNodeProps,
|
|
18
|
+
NodeCore,
|
|
19
|
+
NodeTypes,
|
|
20
|
+
TreeBuilder,
|
|
20
21
|
} from "./zipItDataRepresentationUtils";
|
|
22
|
+
import { measure } from "./odspUtils";
|
|
21
23
|
|
|
22
24
|
export const snapshotMinReadVersion = "1.0";
|
|
23
25
|
export const currentReadVersion = "1.0";
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* The parsing is significantly faster if the position of props is well known instead of dynamic. So these variables
|
|
29
|
+
* represents how many times slower parsing path is executed. This will be then logged into telemetry.
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export interface ISnapshotContentsWithProps extends ISnapshotContents {
|
|
33
|
+
telemetryProps: Record<string, number>;
|
|
28
34
|
}
|
|
29
35
|
|
|
30
36
|
/**
|
|
@@ -32,16 +38,38 @@ interface ISnapshotSection {
|
|
|
32
38
|
* @param node - tree node to read blob section from
|
|
33
39
|
*/
|
|
34
40
|
function readBlobSection(node: NodeTypes) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
assertNodeCoreInstance(node, "TreeBlobs should be of type NodeCore");
|
|
42
|
+
let slowBlobStructureCount = 0;
|
|
43
|
+
const blobs: Map<string, ArrayBuffer> = new Map();
|
|
44
|
+
for (const blob of node) {
|
|
45
|
+
assertNodeCoreInstance(blob, "blob should be node");
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Perf optimization - the most common cases!
|
|
49
|
+
* This is essentially unrolling code below for faster processing
|
|
50
|
+
* It speeds up tree parsing by 2-3x times!
|
|
51
|
+
*/
|
|
52
|
+
if (
|
|
53
|
+
blob.length === 4 &&
|
|
54
|
+
blob.getMaybeString(0) === "id" &&
|
|
55
|
+
blob.getMaybeString(2) === "data"
|
|
56
|
+
) {
|
|
57
|
+
// "id": <node name>
|
|
58
|
+
// "data": <blob>
|
|
59
|
+
blobs.set(blob.getString(1), blob.getBlob(3).arrayBuffer);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* More generalized workflow
|
|
65
|
+
*/
|
|
66
|
+
slowBlobStructureCount += 1;
|
|
67
|
+
const records = getNodeProps(blob);
|
|
68
|
+
assertBlobCoreInstance(records.data, "data should be of BlobCore type");
|
|
69
|
+
const id = getStringInstance(records.id, "blob id should be string");
|
|
70
|
+
blobs.set(id, records.data.arrayBuffer);
|
|
71
|
+
}
|
|
72
|
+
return { blobs, slowBlobStructureCount };
|
|
45
73
|
}
|
|
46
74
|
|
|
47
75
|
/**
|
|
@@ -49,17 +77,22 @@ function readBlobSection(node: NodeTypes) {
|
|
|
49
77
|
* @param node - tree node to read ops section from
|
|
50
78
|
*/
|
|
51
79
|
function readOpsSection(node: NodeTypes) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
80
|
+
assertNodeCoreInstance(node, "Deltas should be of type NodeCore");
|
|
81
|
+
const ops: ISequencedDocumentMessage[] = [];
|
|
82
|
+
const records = getNodeProps(node);
|
|
83
|
+
assertNumberInstance(records.firstSequenceNumber, "Seq number should be a number");
|
|
84
|
+
assertNodeCoreInstance(records.deltas, "Deltas should be a Node");
|
|
85
|
+
for (let i = 0; i < records.deltas.length; ++i) {
|
|
86
|
+
ops.push(JSON.parse(records.deltas.getString(i)));
|
|
87
|
+
}
|
|
88
|
+
// Due to a bug at service side, in an edge case service was serializing deltas even
|
|
89
|
+
// when there are no ops. So just make the code resilient to that bug. Service has also
|
|
90
|
+
// fixed that bug.
|
|
91
|
+
assert(
|
|
92
|
+
ops.length === 0 || records.firstSequenceNumber.valueOf() === ops[0].sequenceNumber,
|
|
93
|
+
0x280 /* "Validate first op seq number" */,
|
|
94
|
+
);
|
|
95
|
+
return ops;
|
|
63
96
|
}
|
|
64
97
|
|
|
65
98
|
/**
|
|
@@ -67,85 +100,168 @@ function readOpsSection(node: NodeTypes) {
|
|
|
67
100
|
* @param node - tree node to de-serialize from
|
|
68
101
|
*/
|
|
69
102
|
function readTreeSection(node: NodeCore) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
103
|
+
let slowTreeStructureCount = 0;
|
|
104
|
+
const trees = {};
|
|
105
|
+
const snapshotTree: ISnapshotTree = {
|
|
106
|
+
blobs: {},
|
|
107
|
+
trees,
|
|
108
|
+
};
|
|
109
|
+
for (const treeNode of node) {
|
|
110
|
+
assertNodeCoreInstance(treeNode, "tree nodes should be nodes");
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Perf optimization - the most common cases!
|
|
114
|
+
* This is essentially unrolling code below for faster processing
|
|
115
|
+
* It speeds up tree parsing by 2-3x times!
|
|
116
|
+
*/
|
|
117
|
+
const length = treeNode.length;
|
|
118
|
+
if (length > 0 && treeNode.getMaybeString(0) === "name") {
|
|
119
|
+
if (length === 4) {
|
|
120
|
+
const content = treeNode.getMaybeString(2);
|
|
121
|
+
// "name": <node name>
|
|
122
|
+
// "children": <blob id>
|
|
123
|
+
if (content === "children") {
|
|
124
|
+
const result = readTreeSection(treeNode.getNode(3));
|
|
125
|
+
trees[treeNode.getString(1)] = result.snapshotTree;
|
|
126
|
+
slowTreeStructureCount += result.slowTreeStructureCount;
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
// "name": <node name>
|
|
130
|
+
// "value": <blob id>
|
|
131
|
+
if (content === "value") {
|
|
132
|
+
snapshotTree.blobs[treeNode.getString(1)] = treeNode.getString(3);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// "name": <node name>
|
|
138
|
+
// "nodeType": 3
|
|
139
|
+
// "value": <blob id>
|
|
140
|
+
if (
|
|
141
|
+
length === 6 &&
|
|
142
|
+
treeNode.getMaybeString(2) === "nodeType" &&
|
|
143
|
+
treeNode.getMaybeString(4) === "value"
|
|
144
|
+
) {
|
|
145
|
+
snapshotTree.blobs[treeNode.getString(1)] = treeNode.getString(5);
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// "name": <node name>
|
|
150
|
+
// "unreferenced": true
|
|
151
|
+
// "children": <blob id>
|
|
152
|
+
if (
|
|
153
|
+
length === 6 &&
|
|
154
|
+
treeNode.getMaybeString(2) === "unreferenced" &&
|
|
155
|
+
treeNode.getMaybeString(4) === "children"
|
|
156
|
+
) {
|
|
157
|
+
const result = readTreeSection(treeNode.getNode(5));
|
|
158
|
+
trees[treeNode.getString(1)] = result.snapshotTree;
|
|
159
|
+
slowTreeStructureCount += result.slowTreeStructureCount;
|
|
160
|
+
assert(treeNode.getBool(3), 0x3db /* Unreferenced if present should be true */);
|
|
161
|
+
snapshotTree.unreferenced = true;
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* More generalized workflow
|
|
168
|
+
*/
|
|
169
|
+
slowTreeStructureCount += 1;
|
|
170
|
+
const records = getNodeProps(treeNode);
|
|
171
|
+
|
|
172
|
+
if (records.unreferenced !== undefined) {
|
|
173
|
+
assertBoolInstance(records.unreferenced, "Unreferenced flag should be bool");
|
|
174
|
+
assert(records.unreferenced, 0x281 /* "Unreferenced if present should be true" */);
|
|
175
|
+
snapshotTree.unreferenced = true;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const path = getStringInstance(records.name, "Path name should be string");
|
|
179
|
+
if (records.value !== undefined) {
|
|
180
|
+
snapshotTree.blobs[path] = getStringInstance(
|
|
181
|
+
records.value,
|
|
182
|
+
"Blob value should be string",
|
|
183
|
+
);
|
|
184
|
+
} else if (records.children !== undefined) {
|
|
185
|
+
assertNodeCoreInstance(records.children, "Trees should be of type NodeCore");
|
|
186
|
+
const result = readTreeSection(records.children);
|
|
187
|
+
trees[path] = result.snapshotTree;
|
|
188
|
+
slowTreeStructureCount += result.slowTreeStructureCount;
|
|
189
|
+
} else {
|
|
190
|
+
trees[path] = { blobs: {}, trees: {} };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return { snapshotTree, slowTreeStructureCount };
|
|
96
194
|
}
|
|
97
195
|
|
|
98
196
|
/**
|
|
99
197
|
* Recreates snapshot tree out of tree representation.
|
|
100
198
|
* @param node - tree node to de-serialize from
|
|
101
199
|
*/
|
|
102
|
-
function readSnapshotSection(node: NodeTypes)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
};
|
|
200
|
+
function readSnapshotSection(node: NodeTypes) {
|
|
201
|
+
assertNodeCoreInstance(node, "Snapshot should be of type NodeCore");
|
|
202
|
+
const records = getNodeProps(node);
|
|
203
|
+
|
|
204
|
+
assertNodeCoreInstance(records.treeNodes, "TreeNodes should be of type NodeCore");
|
|
205
|
+
assertNumberInstance(records.sequenceNumber, "sequenceNumber should be of type number");
|
|
206
|
+
const { snapshotTree, slowTreeStructureCount } = readTreeSection(records.treeNodes);
|
|
207
|
+
snapshotTree.id = getStringInstance(records.id, "snapshotId should be string");
|
|
208
|
+
const sequenceNumber = records.sequenceNumber.valueOf();
|
|
209
|
+
return {
|
|
210
|
+
sequenceNumber,
|
|
211
|
+
snapshotTree,
|
|
212
|
+
slowTreeStructureCount,
|
|
213
|
+
};
|
|
117
214
|
}
|
|
118
215
|
|
|
119
216
|
/**
|
|
120
217
|
* Converts snapshot from binary compact representation to tree/blobs/ops.
|
|
121
218
|
* @param buffer - Compact snapshot to be parsed into tree/blobs/ops.
|
|
122
|
-
* @returns
|
|
219
|
+
* @returns Tree, blobs and ops from the snapshot.
|
|
220
|
+
* @internal
|
|
123
221
|
*/
|
|
124
|
-
export function parseCompactSnapshotResponse(
|
|
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
|
-
|
|
222
|
+
export function parseCompactSnapshotResponse(
|
|
223
|
+
buffer: Uint8Array,
|
|
224
|
+
logger: ITelemetryLoggerExt,
|
|
225
|
+
): ISnapshotContentsWithProps {
|
|
226
|
+
const { builder, telemetryProps } = TreeBuilder.load(new ReadBuffer(buffer), logger);
|
|
227
|
+
assert(builder.length === 1, 0x219 /* "1 root should be there" */);
|
|
228
|
+
const root = builder.getNode(0);
|
|
229
|
+
|
|
230
|
+
const records = getNodeProps(root);
|
|
231
|
+
|
|
232
|
+
const mrv = getStringInstance(records.mrv, "minReadVersion should be string");
|
|
233
|
+
const cv = getStringInstance(records.cv, "createVersion should be string");
|
|
234
|
+
if (records.lsn !== undefined) {
|
|
235
|
+
assertNumberInstance(records.lsn, "lsn should be a number");
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
assert(
|
|
239
|
+
parseFloat(snapshotMinReadVersion) >= parseFloat(mrv),
|
|
240
|
+
0x20f /* "Driver min read version should >= to server minReadVersion" */,
|
|
241
|
+
);
|
|
242
|
+
assert(
|
|
243
|
+
parseFloat(cv) >= parseFloat(snapshotMinReadVersion),
|
|
244
|
+
0x210 /* "Snapshot should be created with minReadVersion or above" */,
|
|
245
|
+
);
|
|
246
|
+
assert(
|
|
247
|
+
currentReadVersion === cv,
|
|
248
|
+
0x2c2 /* "Create Version should be equal to currentReadVersion" */,
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
const [snapshot, durationSnapshotTree] = measure(() => readSnapshotSection(records.snapshot));
|
|
252
|
+
const [blobs, durationBlobs] = measure(() => readBlobSection(records.blobs));
|
|
253
|
+
|
|
254
|
+
return {
|
|
255
|
+
...snapshot,
|
|
256
|
+
...blobs,
|
|
257
|
+
ops: records.deltas !== undefined ? readOpsSection(records.deltas) : [],
|
|
258
|
+
latestSequenceNumber: records.lsn,
|
|
259
|
+
telemetryProps: {
|
|
260
|
+
...telemetryProps,
|
|
261
|
+
durationSnapshotTree,
|
|
262
|
+
durationBlobs,
|
|
263
|
+
slowTreeStructureCount: snapshot.slowTreeStructureCount,
|
|
264
|
+
slowBlobStructureCount: blobs.slowBlobStructureCount,
|
|
265
|
+
},
|
|
266
|
+
};
|
|
151
267
|
}
|
|
@@ -3,75 +3,93 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { stringToBuffer } from "@fluid-internal/client-utils";
|
|
7
|
+
import { assert } from "@fluidframework/core-utils";
|
|
8
|
+
import {
|
|
9
|
+
IBlob,
|
|
10
|
+
ISequencedDocumentMessage,
|
|
11
|
+
ISnapshotTree,
|
|
12
|
+
} from "@fluidframework/protocol-definitions";
|
|
8
13
|
import { snapshotMinReadVersion } from "./compactSnapshotParser";
|
|
9
14
|
import { ISnapshotContents } from "./odspPublicUtils";
|
|
10
|
-
import { ReadBuffer } from "./ReadBufferUtils";
|
|
11
15
|
import { TreeBuilderSerializer } from "./WriteBufferUtils";
|
|
12
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
addBoolProperty,
|
|
18
|
+
addNumberProperty,
|
|
19
|
+
addStringProperty,
|
|
20
|
+
addDictionaryStringProperty,
|
|
21
|
+
NodeCore,
|
|
22
|
+
} from "./zipItDataRepresentationUtils";
|
|
13
23
|
|
|
14
24
|
/**
|
|
15
25
|
* Writes header section of the snapshot.
|
|
16
26
|
* @param node - snapshot node to serialize to
|
|
17
27
|
* @param latestSequenceNumber - latest seq number of the container.
|
|
18
|
-
*/
|
|
28
|
+
*/
|
|
19
29
|
function writeSnapshotProps(node: NodeCore, latestSequenceNumber: number) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
30
|
+
addStringProperty(node, "mrv", snapshotMinReadVersion);
|
|
31
|
+
addStringProperty(node, "cv", snapshotMinReadVersion);
|
|
32
|
+
addNumberProperty(node, "lsn", latestSequenceNumber);
|
|
23
33
|
}
|
|
24
34
|
|
|
25
35
|
/**
|
|
26
36
|
* Represents blobs in the tree.
|
|
27
37
|
* @param snapshotNode - node to serialize to.
|
|
28
38
|
* @param blobs - blobs that is being serialized
|
|
29
|
-
*/
|
|
39
|
+
*/
|
|
30
40
|
function writeBlobsSection(snapshotNode: NodeCore, blobs: Map<string, IBlob | ArrayBuffer>) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
snapshotNode.addDictionaryString("blobs");
|
|
42
|
+
const blobsNode = snapshotNode.addNode("list");
|
|
43
|
+
for (const [storageBlobId, blob] of blobs) {
|
|
44
|
+
const blobNode = blobsNode.addNode();
|
|
45
|
+
addDictionaryStringProperty(blobNode, "id", storageBlobId);
|
|
46
|
+
blobNode.addString("data");
|
|
47
|
+
if (blob instanceof ArrayBuffer) {
|
|
48
|
+
blobNode.addBlob(new Uint8Array(blob));
|
|
49
|
+
} else {
|
|
50
|
+
blobNode.addBlob(
|
|
51
|
+
new Uint8Array(stringToBuffer(blob.contents, blob.encoding ?? "utf-8")),
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
43
55
|
}
|
|
44
56
|
|
|
45
57
|
/**
|
|
46
58
|
* Represents and serializes tree part of the snapshot
|
|
47
59
|
* @param snapshotNode - tree node to serialize to
|
|
48
60
|
* @param snapshotTree - snapshot tree that is being serialized
|
|
49
|
-
*/
|
|
61
|
+
*/
|
|
50
62
|
function writeTreeSection(snapshotNode: NodeCore, snapshotTree: ISnapshotTree) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
63
|
+
snapshotNode.addDictionaryString("treeNodes");
|
|
64
|
+
const treesNode = snapshotNode.addNode("list");
|
|
65
|
+
writeTreeSectionCore(treesNode, snapshotTree);
|
|
54
66
|
}
|
|
55
67
|
|
|
56
68
|
function writeTreeSectionCore(treesNode: NodeCore, snapshotTree: ISnapshotTree) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
for (const [path, value] of Object.entries(snapshotTree.trees)) {
|
|
70
|
+
const treeNode = treesNode.addNode();
|
|
71
|
+
// Many leaf nodes in the tree have same names like "content", "body", "header"
|
|
72
|
+
// We could be smarter here and not use dictionary where we are sure reuse is unlikely, but
|
|
73
|
+
// it does not feel like it's worth it.
|
|
74
|
+
addDictionaryStringProperty(treeNode, "name", path);
|
|
75
|
+
if (snapshotTree.unreferenced) {
|
|
76
|
+
addBoolProperty(treeNode, "unreferenced", snapshotTree.unreferenced);
|
|
77
|
+
}
|
|
78
|
+
// Only write children prop if either blobs or trees are present.
|
|
79
|
+
if (Object.keys(value.blobs).length > 0 || Object.keys(value.trees).length > 0) {
|
|
80
|
+
treeNode.addDictionaryString("children");
|
|
81
|
+
const childNode = treeNode.addNode("list");
|
|
82
|
+
writeTreeSectionCore(childNode, value);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (snapshotTree.blobs) {
|
|
87
|
+
for (const [path, id] of Object.entries(snapshotTree.blobs)) {
|
|
88
|
+
const blobNode = treesNode.addNode();
|
|
89
|
+
addDictionaryStringProperty(blobNode, "name", path);
|
|
90
|
+
addDictionaryStringProperty(blobNode, "value", id);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
75
93
|
}
|
|
76
94
|
|
|
77
95
|
/**
|
|
@@ -80,75 +98,78 @@ function writeTreeSectionCore(treesNode: NodeCore, snapshotTree: ISnapshotTree)
|
|
|
80
98
|
* @param snapshotTree - snapshot tree that is being serialized
|
|
81
99
|
* @param blobs - blobs mapping of the snapshot
|
|
82
100
|
* @param snapshotSequenceNumber - seq number at which snapshot is taken
|
|
83
|
-
*/
|
|
101
|
+
*/
|
|
84
102
|
function writeSnapshotSection(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
103
|
+
rootNode: NodeCore,
|
|
104
|
+
snapshotTree: ISnapshotTree,
|
|
105
|
+
snapshotSequenceNumber: number,
|
|
88
106
|
) {
|
|
89
|
-
|
|
90
|
-
|
|
107
|
+
rootNode.addDictionaryString("snapshot");
|
|
108
|
+
const snapshotNode = rootNode.addNode();
|
|
91
109
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
110
|
+
const snapshotId = snapshotTree.id;
|
|
111
|
+
assert(snapshotId !== undefined, 0x21b /* "Snapshot id should be provided" */);
|
|
112
|
+
addStringProperty(snapshotNode, "id", snapshotId);
|
|
113
|
+
addStringProperty(snapshotNode, "message", `Snapshot@${snapshotSequenceNumber}`);
|
|
114
|
+
addNumberProperty(snapshotNode, "sequenceNumber", snapshotSequenceNumber);
|
|
97
115
|
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
// Add Trees
|
|
117
|
+
writeTreeSection(snapshotNode, snapshotTree);
|
|
100
118
|
}
|
|
101
119
|
|
|
102
120
|
/**
|
|
103
121
|
* Represents ops in the tree.
|
|
104
122
|
* @param rootNode - node to serialize to.
|
|
105
123
|
* @param ops - ops that is being serialized
|
|
106
|
-
*/
|
|
124
|
+
*/
|
|
107
125
|
function writeOpsSection(rootNode: NodeCore, ops: ISequencedDocumentMessage[]) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
126
|
+
let firstSequenceNumber: number | undefined;
|
|
127
|
+
if (ops.length > 0) {
|
|
128
|
+
firstSequenceNumber = ops[0].sequenceNumber;
|
|
129
|
+
}
|
|
130
|
+
if (firstSequenceNumber !== undefined) {
|
|
131
|
+
rootNode.addDictionaryString("deltas");
|
|
132
|
+
const opsNode = rootNode.addNode();
|
|
133
|
+
addNumberProperty(opsNode, "firstSequenceNumber", firstSequenceNumber);
|
|
134
|
+
opsNode.addDictionaryString("deltas");
|
|
135
|
+
const deltaNode = opsNode.addNode("list");
|
|
136
|
+
ops.forEach((op) => {
|
|
137
|
+
deltaNode.addString(JSON.stringify(op));
|
|
138
|
+
});
|
|
139
|
+
}
|
|
122
140
|
}
|
|
123
141
|
|
|
124
142
|
/**
|
|
125
143
|
* Converts trees/blobs/ops to binary compact representation.
|
|
126
144
|
* @param snapshotContents - snapshot tree contents to serialize
|
|
127
|
-
* @returns
|
|
145
|
+
* @returns ReadBuffer - binary representation of the data.
|
|
128
146
|
*/
|
|
129
|
-
export function convertToCompactSnapshot(snapshotContents: ISnapshotContents):
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
147
|
+
export function convertToCompactSnapshot(snapshotContents: ISnapshotContents): Uint8Array {
|
|
148
|
+
const builder = new TreeBuilderSerializer();
|
|
149
|
+
// Create the root node.
|
|
150
|
+
const rootNode = builder.addNode();
|
|
151
|
+
assert(
|
|
152
|
+
snapshotContents.sequenceNumber !== undefined,
|
|
153
|
+
0x21c /* "Seq number should be provided" */,
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
let latestSequenceNumber = snapshotContents.latestSequenceNumber;
|
|
157
|
+
if (latestSequenceNumber === undefined) {
|
|
158
|
+
latestSequenceNumber =
|
|
159
|
+
snapshotContents.ops.length > 0
|
|
160
|
+
? snapshotContents.ops[snapshotContents.ops.length - 1].sequenceNumber
|
|
161
|
+
: snapshotContents.sequenceNumber;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
writeSnapshotProps(rootNode, latestSequenceNumber);
|
|
165
|
+
|
|
166
|
+
writeSnapshotSection(rootNode, snapshotContents.snapshotTree, snapshotContents.sequenceNumber);
|
|
167
|
+
|
|
168
|
+
// Add Blobs
|
|
169
|
+
writeBlobsSection(rootNode, snapshotContents.blobs);
|
|
170
|
+
|
|
171
|
+
// Then write the ops node.
|
|
172
|
+
writeOpsSection(rootNode, snapshotContents.ops);
|
|
173
|
+
|
|
174
|
+
return builder.serialize();
|
|
154
175
|
}
|