@fluidframework/driver-utils 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 +17 -7
- package/.mocharc.js +12 -0
- package/CHANGELOG.md +141 -0
- package/README.md +68 -1
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/driver-utils.api.md +401 -0
- package/dist/adapters/compression/compressionTypes.cjs +20 -0
- package/dist/adapters/compression/compressionTypes.cjs.map +1 -0
- package/dist/adapters/compression/compressionTypes.d.ts +23 -0
- package/dist/adapters/compression/compressionTypes.d.ts.map +1 -0
- package/dist/adapters/compression/documentServiceCompressionAdapter.cjs +23 -0
- package/dist/adapters/compression/documentServiceCompressionAdapter.cjs.map +1 -0
- package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts +13 -0
- package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts.map +1 -0
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.cjs +31 -0
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.cjs.map +1 -0
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts +16 -0
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -0
- package/dist/adapters/compression/index.cjs +15 -0
- package/dist/adapters/compression/index.cjs.map +1 -0
- package/dist/adapters/compression/index.d.ts +8 -0
- package/dist/adapters/compression/index.d.ts.map +1 -0
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.cjs +370 -0
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.cjs.map +1 -0
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +165 -0
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts.map +1 -0
- package/dist/adapters/compression/summaryblob/index.cjs +11 -0
- package/dist/adapters/compression/summaryblob/index.cjs.map +1 -0
- package/dist/adapters/compression/summaryblob/index.d.ts +6 -0
- package/dist/adapters/compression/summaryblob/index.d.ts.map +1 -0
- package/dist/adapters/index.cjs +14 -0
- package/dist/adapters/index.cjs.map +1 -0
- package/dist/adapters/index.d.ts +7 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/predefinedAdapters.cjs +52 -0
- package/dist/adapters/predefinedAdapters.cjs.map +1 -0
- package/dist/adapters/predefinedAdapters.d.ts +21 -0
- package/dist/adapters/predefinedAdapters.d.ts.map +1 -0
- package/dist/blob.cjs +65 -0
- package/dist/blob.cjs.map +1 -0
- package/dist/blob.d.ts +56 -0
- package/dist/blob.d.ts.map +1 -0
- package/dist/{buildSnapshotTree.js → buildSnapshotTree.cjs} +7 -5
- package/dist/buildSnapshotTree.cjs.map +1 -0
- package/dist/buildSnapshotTree.d.ts +1 -0
- package/dist/buildSnapshotTree.d.ts.map +1 -1
- package/dist/documentServiceFactoryProxy.cjs +27 -0
- package/dist/documentServiceFactoryProxy.cjs.map +1 -0
- package/dist/documentServiceFactoryProxy.d.ts +19 -0
- package/dist/documentServiceFactoryProxy.d.ts.map +1 -0
- package/dist/documentServiceProxy.cjs +36 -0
- package/dist/documentServiceProxy.cjs.map +1 -0
- package/dist/documentServiceProxy.d.ts +21 -0
- package/dist/documentServiceProxy.d.ts.map +1 -0
- package/dist/{documentStorageServiceProxy.js → documentStorageServiceProxy.cjs} +10 -8
- package/dist/documentStorageServiceProxy.cjs.map +1 -0
- package/dist/documentStorageServiceProxy.d.ts +5 -2
- package/dist/documentStorageServiceProxy.d.ts.map +1 -1
- package/dist/driver-utils-alpha.d.ts +163 -0
- package/dist/driver-utils-beta.d.ts +178 -0
- package/dist/driver-utils-public.d.ts +178 -0
- package/dist/driver-utils-untrimmed.d.ts +590 -0
- package/dist/{error.js → error.cjs} +10 -3
- package/dist/error.cjs.map +1 -0
- package/dist/error.d.ts +8 -3
- package/dist/error.d.ts.map +1 -1
- package/dist/index.cjs +69 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +16 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/{insecureUrlResolver.js → insecureUrlResolver.cjs} +10 -11
- package/dist/insecureUrlResolver.cjs.map +1 -0
- package/dist/insecureUrlResolver.d.ts +1 -0
- package/dist/insecureUrlResolver.d.ts.map +1 -1
- package/dist/messageRecognition.cjs +38 -0
- package/dist/messageRecognition.cjs.map +1 -0
- package/dist/messageRecognition.d.ts +16 -26
- package/dist/messageRecognition.d.ts.map +1 -1
- package/dist/{network.js → network.cjs} +86 -24
- package/dist/network.cjs.map +1 -0
- package/dist/network.d.ts +69 -20
- package/dist/network.d.ts.map +1 -1
- package/dist/networkUtils.cjs +29 -0
- package/dist/networkUtils.cjs.map +1 -0
- package/dist/networkUtils.d.ts +4 -10
- package/dist/networkUtils.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/{parallelRequests.js → parallelRequests.cjs} +146 -74
- package/dist/parallelRequests.cjs.map +1 -0
- package/dist/parallelRequests.d.ts +19 -6
- package/dist/parallelRequests.d.ts.map +1 -1
- package/dist/{prefetchDocumentStorageService.js → prefetchDocumentStorageService.cjs} +7 -4
- package/dist/prefetchDocumentStorageService.cjs.map +1 -0
- package/dist/prefetchDocumentStorageService.d.ts +4 -2
- package/dist/prefetchDocumentStorageService.d.ts.map +1 -1
- package/dist/{rateLimiter.js → rateLimiter.cjs} +6 -3
- package/dist/rateLimiter.cjs.map +1 -0
- package/dist/rateLimiter.d.ts +3 -0
- package/dist/rateLimiter.d.ts.map +1 -1
- package/dist/readAndParse.cjs +28 -0
- package/dist/readAndParse.cjs.map +1 -0
- package/dist/readAndParse.d.ts +10 -4
- package/dist/readAndParse.d.ts.map +1 -1
- package/dist/runWithRetry.cjs +108 -0
- package/dist/runWithRetry.cjs.map +1 -0
- package/dist/runWithRetry.d.ts +26 -7
- package/dist/runWithRetry.d.ts.map +1 -1
- package/dist/{summaryForCreateNew.js → summaryForCreateNew.cjs} +20 -19
- package/dist/summaryForCreateNew.cjs.map +1 -0
- package/dist/summaryForCreateNew.d.ts +17 -4
- package/dist/summaryForCreateNew.d.ts.map +1 -1
- package/dist/{treeConversions.js → treeConversions.cjs} +16 -18
- package/dist/treeConversions.cjs.map +1 -0
- package/dist/treeConversions.d.ts +1 -0
- package/dist/treeConversions.d.ts.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/lib/adapters/compression/compressionTypes.d.mts +23 -0
- package/lib/adapters/compression/compressionTypes.d.mts.map +1 -0
- package/lib/adapters/compression/compressionTypes.mjs +17 -0
- package/lib/adapters/compression/compressionTypes.mjs.map +1 -0
- package/lib/adapters/compression/documentServiceCompressionAdapter.d.mts +13 -0
- package/lib/adapters/compression/documentServiceCompressionAdapter.d.mts.map +1 -0
- package/lib/adapters/compression/documentServiceCompressionAdapter.mjs +19 -0
- package/lib/adapters/compression/documentServiceCompressionAdapter.mjs.map +1 -0
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.mts +16 -0
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.mts.map +1 -0
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.mjs +27 -0
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.mjs.map +1 -0
- package/lib/adapters/compression/index.d.mts +8 -0
- package/lib/adapters/compression/index.d.mts.map +1 -0
- package/lib/adapters/compression/index.mjs +8 -0
- package/lib/adapters/compression/index.mjs.map +1 -0
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.mts +165 -0
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.mts.map +1 -0
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.mjs +366 -0
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.mjs.map +1 -0
- package/lib/adapters/compression/summaryblob/index.d.mts +6 -0
- package/lib/adapters/compression/summaryblob/index.d.mts.map +1 -0
- package/lib/adapters/compression/summaryblob/index.mjs +6 -0
- package/lib/adapters/compression/summaryblob/index.mjs.map +1 -0
- package/lib/adapters/index.d.mts +7 -0
- package/lib/adapters/index.d.mts.map +1 -0
- package/lib/adapters/index.mjs +7 -0
- package/lib/adapters/index.mjs.map +1 -0
- package/lib/adapters/predefinedAdapters.d.mts +21 -0
- package/lib/adapters/predefinedAdapters.d.mts.map +1 -0
- package/lib/adapters/predefinedAdapters.mjs +47 -0
- package/lib/adapters/predefinedAdapters.mjs.map +1 -0
- package/lib/blob.d.mts +56 -0
- package/lib/blob.d.mts.map +1 -0
- package/lib/blob.mjs +59 -0
- package/lib/blob.mjs.map +1 -0
- package/lib/{buildSnapshotTree.d.ts → buildSnapshotTree.d.mts} +1 -0
- package/lib/buildSnapshotTree.d.mts.map +1 -0
- package/lib/{buildSnapshotTree.js → buildSnapshotTree.mjs} +6 -4
- package/lib/buildSnapshotTree.mjs.map +1 -0
- package/lib/documentServiceFactoryProxy.d.mts +19 -0
- package/lib/documentServiceFactoryProxy.d.mts.map +1 -0
- package/lib/documentServiceFactoryProxy.mjs +23 -0
- package/lib/documentServiceFactoryProxy.mjs.map +1 -0
- package/lib/documentServiceProxy.d.mts +21 -0
- package/lib/documentServiceProxy.d.mts.map +1 -0
- package/lib/documentServiceProxy.mjs +32 -0
- package/lib/documentServiceProxy.mjs.map +1 -0
- package/lib/{documentStorageServiceProxy.d.ts → documentStorageServiceProxy.d.mts} +5 -2
- package/lib/documentStorageServiceProxy.d.mts.map +1 -0
- package/lib/{documentStorageServiceProxy.js → documentStorageServiceProxy.mjs} +10 -8
- package/lib/documentStorageServiceProxy.mjs.map +1 -0
- package/lib/driver-utils-alpha.d.mts +163 -0
- package/lib/driver-utils-beta.d.mts +178 -0
- package/lib/driver-utils-public.d.mts +178 -0
- package/lib/driver-utils-untrimmed.d.mts +590 -0
- package/lib/error.d.mts +16 -0
- package/lib/error.d.mts.map +1 -0
- package/lib/error.mjs +19 -0
- package/lib/error.mjs.map +1 -0
- package/lib/index.d.mts +21 -0
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +21 -0
- package/lib/index.mjs.map +1 -0
- package/lib/{insecureUrlResolver.d.ts → insecureUrlResolver.d.mts} +1 -0
- package/lib/insecureUrlResolver.d.mts.map +1 -0
- package/lib/{insecureUrlResolver.js → insecureUrlResolver.mjs} +10 -11
- package/lib/insecureUrlResolver.mjs.map +1 -0
- package/lib/messageRecognition.d.mts +24 -0
- package/lib/messageRecognition.d.mts.map +1 -0
- package/lib/messageRecognition.mjs +29 -0
- package/lib/messageRecognition.mjs.map +1 -0
- package/lib/{network.d.ts → network.d.mts} +69 -20
- package/lib/network.d.mts.map +1 -0
- package/lib/{network.js → network.mjs} +85 -23
- package/lib/network.mjs.map +1 -0
- package/lib/networkUtils.d.mts +11 -0
- package/lib/networkUtils.d.mts.map +1 -0
- package/lib/networkUtils.mjs +25 -0
- package/lib/networkUtils.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/{parallelRequests.d.ts → parallelRequests.d.mts} +19 -6
- package/lib/parallelRequests.d.mts.map +1 -0
- package/lib/{parallelRequests.js → parallelRequests.mjs} +119 -52
- package/lib/parallelRequests.mjs.map +1 -0
- package/lib/{prefetchDocumentStorageService.d.ts → prefetchDocumentStorageService.d.mts} +5 -7
- package/lib/prefetchDocumentStorageService.d.mts.map +1 -0
- package/lib/{prefetchDocumentStorageService.js → prefetchDocumentStorageService.mjs} +7 -8
- package/lib/prefetchDocumentStorageService.mjs.map +1 -0
- package/lib/{rateLimiter.d.ts → rateLimiter.d.mts} +3 -0
- package/lib/rateLimiter.d.mts.map +1 -0
- package/lib/{rateLimiter.js → rateLimiter.mjs} +5 -2
- package/lib/rateLimiter.mjs.map +1 -0
- package/lib/readAndParse.d.mts +20 -0
- package/lib/readAndParse.d.mts.map +1 -0
- package/lib/readAndParse.mjs +24 -0
- package/lib/readAndParse.mjs.map +1 -0
- package/lib/{runWithRetry.d.ts → runWithRetry.d.mts} +26 -7
- package/lib/runWithRetry.d.mts.map +1 -0
- package/lib/runWithRetry.mjs +103 -0
- package/lib/runWithRetry.mjs.map +1 -0
- package/lib/{summaryForCreateNew.d.ts → summaryForCreateNew.d.mts} +17 -4
- package/lib/summaryForCreateNew.d.mts.map +1 -0
- package/lib/{summaryForCreateNew.js → summaryForCreateNew.mjs} +18 -17
- package/lib/summaryForCreateNew.mjs.map +1 -0
- package/lib/{treeConversions.d.ts → treeConversions.d.mts} +1 -0
- package/lib/treeConversions.d.mts.map +1 -0
- package/lib/{treeConversions.js → treeConversions.mjs} +12 -14
- package/lib/treeConversions.mjs.map +1 -0
- package/package.json +88 -64
- package/prettier.config.cjs +8 -0
- package/src/adapters/compression/compressionTypes.ts +25 -0
- package/src/adapters/compression/documentServiceCompressionAdapter.ts +28 -0
- package/src/adapters/compression/documentServiceFactoryCompressionAdapter.ts +54 -0
- package/src/adapters/compression/index.ts +12 -0
- package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts +451 -0
- package/src/adapters/compression/summaryblob/index.ts +9 -0
- package/src/adapters/index.ts +13 -0
- package/src/adapters/predefinedAdapters.ts +74 -0
- package/src/blob.ts +77 -0
- package/src/buildSnapshotTree.ts +58 -53
- package/src/documentServiceFactoryProxy.ts +47 -0
- package/src/documentServiceProxy.ts +46 -0
- package/src/documentStorageServiceProxy.ts +52 -37
- package/src/error.ts +13 -8
- package/src/index.ts +51 -21
- package/src/insecureUrlResolver.ts +125 -120
- package/src/messageRecognition.ts +24 -53
- package/src/network.ts +189 -111
- package/src/networkUtils.ts +24 -49
- package/src/packageVersion.ts +1 -1
- package/src/parallelRequests.ts +630 -519
- package/src/prefetchDocumentStorageService.ts +79 -74
- package/src/rateLimiter.ts +33 -30
- package/src/readAndParse.ts +18 -9
- package/src/runWithRetry.ts +145 -85
- package/src/summaryForCreateNew.ts +48 -29
- package/src/treeConversions.ts +49 -70
- package/tsc-multi.test.json +4 -0
- package/tsconfig.json +10 -12
- package/dist/blobAggregationStorage.d.ts +0 -43
- package/dist/blobAggregationStorage.d.ts.map +0 -1
- package/dist/blobAggregationStorage.js +0 -318
- package/dist/blobAggregationStorage.js.map +0 -1
- package/dist/blobCacheStorageService.d.ts +0 -16
- package/dist/blobCacheStorageService.d.ts.map +0 -1
- package/dist/blobCacheStorageService.js +0 -29
- package/dist/blobCacheStorageService.js.map +0 -1
- package/dist/buildSnapshotTree.js.map +0 -1
- package/dist/documentStorageServiceProxy.js.map +0 -1
- package/dist/emptyDocumentDeltaStorageService.d.ts +0 -13
- package/dist/emptyDocumentDeltaStorageService.d.ts.map +0 -1
- package/dist/emptyDocumentDeltaStorageService.js +0 -20
- package/dist/emptyDocumentDeltaStorageService.js.map +0 -1
- package/dist/error.js.map +0 -1
- package/dist/fluidResolvedUrl.d.ts +0 -8
- package/dist/fluidResolvedUrl.d.ts.map +0 -1
- package/dist/fluidResolvedUrl.js +0 -16
- package/dist/fluidResolvedUrl.js.map +0 -1
- package/dist/index.js +0 -38
- package/dist/index.js.map +0 -1
- package/dist/insecureUrlResolver.js.map +0 -1
- package/dist/messageRecognition.js +0 -73
- package/dist/messageRecognition.js.map +0 -1
- package/dist/multiDocumentServiceFactory.d.ts +0 -16
- package/dist/multiDocumentServiceFactory.d.ts.map +0 -1
- package/dist/multiDocumentServiceFactory.js +0 -63
- package/dist/multiDocumentServiceFactory.js.map +0 -1
- package/dist/multiUrlResolver.d.ts +0 -20
- package/dist/multiUrlResolver.d.ts.map +0 -1
- package/dist/multiUrlResolver.js +0 -45
- package/dist/multiUrlResolver.js.map +0 -1
- package/dist/network.js.map +0 -1
- package/dist/networkUtils.js +0 -59
- package/dist/networkUtils.js.map +0 -1
- package/dist/packageVersion.js.map +0 -1
- package/dist/parallelRequests.js.map +0 -1
- package/dist/prefetchDocumentStorageService.js.map +0 -1
- package/dist/rateLimiter.js.map +0 -1
- package/dist/readAndParse.js +0 -22
- package/dist/readAndParse.js.map +0 -1
- package/dist/runWithRetry.js +0 -69
- package/dist/runWithRetry.js.map +0 -1
- package/dist/summaryForCreateNew.js.map +0 -1
- package/dist/treeConversions.js.map +0 -1
- package/dist/treeUtils.d.ts +0 -51
- package/dist/treeUtils.d.ts.map +0 -1
- package/dist/treeUtils.js +0 -85
- package/dist/treeUtils.js.map +0 -1
- package/lib/blobAggregationStorage.d.ts +0 -43
- package/lib/blobAggregationStorage.d.ts.map +0 -1
- package/lib/blobAggregationStorage.js +0 -313
- package/lib/blobAggregationStorage.js.map +0 -1
- package/lib/blobCacheStorageService.d.ts +0 -16
- package/lib/blobCacheStorageService.d.ts.map +0 -1
- package/lib/blobCacheStorageService.js +0 -25
- package/lib/blobCacheStorageService.js.map +0 -1
- package/lib/buildSnapshotTree.d.ts.map +0 -1
- package/lib/buildSnapshotTree.js.map +0 -1
- package/lib/documentStorageServiceProxy.d.ts.map +0 -1
- package/lib/documentStorageServiceProxy.js.map +0 -1
- package/lib/emptyDocumentDeltaStorageService.d.ts +0 -13
- package/lib/emptyDocumentDeltaStorageService.d.ts.map +0 -1
- package/lib/emptyDocumentDeltaStorageService.js +0 -16
- package/lib/emptyDocumentDeltaStorageService.js.map +0 -1
- package/lib/error.d.ts +0 -11
- package/lib/error.d.ts.map +0 -1
- package/lib/error.js +0 -13
- package/lib/error.js.map +0 -1
- package/lib/fluidResolvedUrl.d.ts +0 -8
- package/lib/fluidResolvedUrl.d.ts.map +0 -1
- package/lib/fluidResolvedUrl.js +0 -11
- package/lib/fluidResolvedUrl.js.map +0 -1
- package/lib/index.d.ts +0 -26
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -26
- package/lib/index.js.map +0 -1
- package/lib/insecureUrlResolver.d.ts.map +0 -1
- package/lib/insecureUrlResolver.js.map +0 -1
- package/lib/messageRecognition.d.ts +0 -38
- package/lib/messageRecognition.d.ts.map +0 -1
- package/lib/messageRecognition.js +0 -67
- package/lib/messageRecognition.js.map +0 -1
- package/lib/multiDocumentServiceFactory.d.ts +0 -16
- package/lib/multiDocumentServiceFactory.d.ts.map +0 -1
- package/lib/multiDocumentServiceFactory.js +0 -59
- package/lib/multiDocumentServiceFactory.js.map +0 -1
- package/lib/multiUrlResolver.d.ts +0 -20
- package/lib/multiUrlResolver.d.ts.map +0 -1
- package/lib/multiUrlResolver.js +0 -40
- package/lib/multiUrlResolver.js.map +0 -1
- package/lib/network.d.ts.map +0 -1
- package/lib/network.js.map +0 -1
- package/lib/networkUtils.d.ts +0 -17
- package/lib/networkUtils.d.ts.map +0 -1
- package/lib/networkUtils.js +0 -54
- package/lib/networkUtils.js.map +0 -1
- package/lib/packageVersion.js.map +0 -1
- package/lib/parallelRequests.d.ts.map +0 -1
- package/lib/parallelRequests.js.map +0 -1
- package/lib/prefetchDocumentStorageService.d.ts.map +0 -1
- package/lib/prefetchDocumentStorageService.js.map +0 -1
- package/lib/rateLimiter.d.ts.map +0 -1
- package/lib/rateLimiter.js.map +0 -1
- package/lib/readAndParse.d.ts +0 -14
- package/lib/readAndParse.d.ts.map +0 -1
- package/lib/readAndParse.js +0 -18
- package/lib/readAndParse.js.map +0 -1
- package/lib/runWithRetry.d.ts.map +0 -1
- package/lib/runWithRetry.js +0 -65
- package/lib/runWithRetry.js.map +0 -1
- package/lib/summaryForCreateNew.d.ts.map +0 -1
- package/lib/summaryForCreateNew.js.map +0 -1
- package/lib/treeConversions.d.ts.map +0 -1
- package/lib/treeConversions.js.map +0 -1
- package/lib/treeUtils.d.ts +0 -51
- package/lib/treeUtils.d.ts.map +0 -1
- package/lib/treeUtils.js +0 -80
- package/lib/treeUtils.js.map +0 -1
- package/src/blobAggregationStorage.ts +0 -374
- package/src/blobCacheStorageService.ts +0 -32
- package/src/emptyDocumentDeltaStorageService.ts +0 -24
- package/src/fluidResolvedUrl.ts +0 -15
- package/src/multiDocumentServiceFactory.ts +0 -80
- package/src/multiUrlResolver.ts +0 -51
- package/src/treeUtils.ts +0 -111
- package/tsconfig.esnext.json +0 -7
package/src/blob.ts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
FileMode,
|
|
8
|
+
IBlob,
|
|
9
|
+
IAttachment,
|
|
10
|
+
ITree,
|
|
11
|
+
TreeEntry,
|
|
12
|
+
} from "@fluidframework/protocol-definitions";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Basic implementation of a blob ITreeEntry
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export class BlobTreeEntry {
|
|
19
|
+
public readonly mode = FileMode.File;
|
|
20
|
+
public readonly type = TreeEntry.Blob;
|
|
21
|
+
public readonly value: IBlob;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Creates a blob ITreeEntry
|
|
25
|
+
* @param path - path of entry
|
|
26
|
+
* @param contents - blob contents
|
|
27
|
+
* @param encoding - encoding of contents; defaults to utf-8
|
|
28
|
+
*/
|
|
29
|
+
constructor(
|
|
30
|
+
public readonly path: string,
|
|
31
|
+
contents: string,
|
|
32
|
+
encoding: "utf-8" | "base64" = "utf-8",
|
|
33
|
+
) {
|
|
34
|
+
this.value = { contents, encoding };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Basic implementation of a tree ITreeEntry
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export class TreeTreeEntry {
|
|
43
|
+
public readonly mode = FileMode.Directory;
|
|
44
|
+
public readonly type = TreeEntry.Tree;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Creates a tree ITreeEntry
|
|
48
|
+
* @param path - path of entry
|
|
49
|
+
* @param value - subtree
|
|
50
|
+
*/
|
|
51
|
+
constructor(
|
|
52
|
+
public readonly path: string,
|
|
53
|
+
public readonly value: ITree,
|
|
54
|
+
) {}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Basic implementation of an attachment ITreeEntry
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
export class AttachmentTreeEntry {
|
|
62
|
+
public readonly mode = FileMode.File;
|
|
63
|
+
public readonly type = TreeEntry.Attachment;
|
|
64
|
+
public readonly value: IAttachment;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Creates an attachment ITreeEntry
|
|
68
|
+
* @param path - path of entry
|
|
69
|
+
* @param id - id of external blob attachment
|
|
70
|
+
*/
|
|
71
|
+
constructor(
|
|
72
|
+
public readonly path: string,
|
|
73
|
+
public readonly id: string,
|
|
74
|
+
) {
|
|
75
|
+
this.value = { id };
|
|
76
|
+
}
|
|
77
|
+
}
|
package/src/buildSnapshotTree.ts
CHANGED
|
@@ -3,60 +3,64 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { stringToBuffer } from "@fluid-internal/client-utils";
|
|
7
|
+
import { assert } from "@fluidframework/core-utils";
|
|
7
8
|
import * as git from "@fluidframework/gitresources";
|
|
8
9
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
FileMode,
|
|
11
|
+
ISnapshotTree,
|
|
12
|
+
ITreeEntry,
|
|
13
|
+
TreeEntry,
|
|
13
14
|
} from "@fluidframework/protocol-definitions";
|
|
14
|
-
import {
|
|
15
|
+
import { buildGitTreeHierarchy } from "@fluidframework/protocol-base";
|
|
15
16
|
import { v4 as uuid } from "uuid";
|
|
16
17
|
|
|
17
18
|
function flattenCore(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
path: string,
|
|
20
|
+
treeEntries: ITreeEntry[],
|
|
21
|
+
blobMap: Map<string, ArrayBufferLike>,
|
|
21
22
|
): git.ITreeEntry[] {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const entries: git.ITreeEntry[] = [];
|
|
24
|
+
for (const treeEntry of treeEntries) {
|
|
25
|
+
const subPath = `${path}${treeEntry.path}`;
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
if (treeEntry.type === TreeEntry.Blob) {
|
|
28
|
+
const blob = treeEntry.value;
|
|
29
|
+
const buffer = stringToBuffer(blob.contents, blob.encoding);
|
|
30
|
+
const id = uuid();
|
|
31
|
+
blobMap.set(id, buffer);
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
33
|
+
const entry: git.ITreeEntry = {
|
|
34
|
+
mode: FileMode[treeEntry.mode],
|
|
35
|
+
path: subPath,
|
|
36
|
+
sha: id,
|
|
37
|
+
size: 0,
|
|
38
|
+
type: "blob",
|
|
39
|
+
url: "",
|
|
40
|
+
};
|
|
41
|
+
entries.push(entry);
|
|
42
|
+
} else if (treeEntry.type === TreeEntry.Tree) {
|
|
43
|
+
assert(
|
|
44
|
+
treeEntry.type === TreeEntry.Tree,
|
|
45
|
+
0x101 /* "Unexpected tree entry type on flatten!" */,
|
|
46
|
+
);
|
|
47
|
+
const t = treeEntry.value;
|
|
48
|
+
const entry: git.ITreeEntry = {
|
|
49
|
+
mode: FileMode[treeEntry.mode],
|
|
50
|
+
path: subPath,
|
|
51
|
+
sha: "",
|
|
52
|
+
size: -1,
|
|
53
|
+
type: "tree",
|
|
54
|
+
url: "",
|
|
55
|
+
};
|
|
56
|
+
entries.push(entry);
|
|
53
57
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
const subTreeEntries = flattenCore(`${subPath}/`, t.entries, blobMap);
|
|
59
|
+
entries.push(...subTreeEntries);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
58
62
|
|
|
59
|
-
|
|
63
|
+
return entries;
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
/**
|
|
@@ -67,12 +71,12 @@ function flattenCore(
|
|
|
67
71
|
* @returns A flatten with of the ITreeEntry
|
|
68
72
|
*/
|
|
69
73
|
function flatten(tree: ITreeEntry[], blobMap: Map<string, ArrayBufferLike>): git.ITree {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
const entries = flattenCore("", tree, blobMap);
|
|
75
|
+
return {
|
|
76
|
+
sha: "",
|
|
77
|
+
tree: entries,
|
|
78
|
+
url: "",
|
|
79
|
+
};
|
|
76
80
|
}
|
|
77
81
|
|
|
78
82
|
/**
|
|
@@ -82,11 +86,12 @@ function flatten(tree: ITreeEntry[], blobMap: Map<string, ArrayBufferLike>): git
|
|
|
82
86
|
* @param blobMap - a map of blob's sha1 to content that gets filled with content from entries
|
|
83
87
|
* NOTE: blobMap's validity is contingent on the returned promise's resolution
|
|
84
88
|
* @returns the hierarchical tree
|
|
89
|
+
* @internal
|
|
85
90
|
*/
|
|
86
91
|
export function buildSnapshotTree(
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
entries: ITreeEntry[],
|
|
93
|
+
blobMap: Map<string, ArrayBufferLike>,
|
|
89
94
|
): ISnapshotTree {
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
const flattened = flatten(entries, blobMap);
|
|
96
|
+
return buildGitTreeHierarchy(flattened);
|
|
92
97
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
7
|
+
import {
|
|
8
|
+
IDocumentService,
|
|
9
|
+
IDocumentServiceFactory,
|
|
10
|
+
IResolvedUrl,
|
|
11
|
+
} from "@fluidframework/driver-definitions";
|
|
12
|
+
import { ISummaryTree } from "@fluidframework/protocol-definitions";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* This abstract class implements IDocumentServiceFactory interface. It uses delegation pattern.
|
|
16
|
+
* It delegates all calls to IDocumentServiceFactory implementation passed to constructor.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export abstract class DocumentServiceFactoryProxy implements IDocumentServiceFactory {
|
|
20
|
+
constructor(private readonly _serviceFactory: IDocumentServiceFactory) {}
|
|
21
|
+
|
|
22
|
+
public get serviceFactory(): IDocumentServiceFactory {
|
|
23
|
+
return this._serviceFactory;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public async createContainer(
|
|
27
|
+
createNewSummary: ISummaryTree | undefined,
|
|
28
|
+
createNewResolvedUrl: IResolvedUrl,
|
|
29
|
+
logger?: ITelemetryBaseLogger,
|
|
30
|
+
clientIsSummarizer?: boolean,
|
|
31
|
+
): Promise<IDocumentService> {
|
|
32
|
+
return this.serviceFactory.createContainer(
|
|
33
|
+
createNewSummary,
|
|
34
|
+
createNewResolvedUrl,
|
|
35
|
+
logger,
|
|
36
|
+
clientIsSummarizer,
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public async createDocumentService(
|
|
41
|
+
resolvedUrl: IResolvedUrl,
|
|
42
|
+
logger?: ITelemetryBaseLogger,
|
|
43
|
+
clientIsSummarizer?: boolean,
|
|
44
|
+
): Promise<IDocumentService> {
|
|
45
|
+
return this.serviceFactory.createDocumentService(resolvedUrl, logger, clientIsSummarizer);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
IDocumentDeltaConnection,
|
|
8
|
+
IDocumentDeltaStorageService,
|
|
9
|
+
IDocumentService,
|
|
10
|
+
IDocumentStorageService,
|
|
11
|
+
IResolvedUrl,
|
|
12
|
+
} from "@fluidframework/driver-definitions";
|
|
13
|
+
import { IClient } from "@fluidframework/protocol-definitions";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* This abstract class implements IDocumentService interface. It uses delegation pattern.
|
|
17
|
+
* It delegates all calls to IDocumentService implementation passed to constructor.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
export abstract class DocumentServiceProxy implements IDocumentService {
|
|
21
|
+
constructor(private readonly _service: IDocumentService) {}
|
|
22
|
+
|
|
23
|
+
public get service(): IDocumentService {
|
|
24
|
+
return this._service;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public async connectToStorage(): Promise<IDocumentStorageService> {
|
|
28
|
+
return this._service.connectToStorage();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public async connectToDeltaStorage(): Promise<IDocumentDeltaStorageService> {
|
|
32
|
+
return this._service.connectToDeltaStorage();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public async connectToDeltaStream(client: IClient): Promise<IDocumentDeltaConnection> {
|
|
36
|
+
return this._service.connectToDeltaStream(client);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public dispose(error?: any): void {
|
|
40
|
+
this._service.dispose(error);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public get resolvedUrl(): IResolvedUrl {
|
|
44
|
+
return this._service.resolvedUrl;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -4,56 +4,71 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
FetchSource,
|
|
8
|
+
IDocumentStorageService,
|
|
9
|
+
IDocumentStorageServicePolicies,
|
|
10
|
+
ISummaryContext,
|
|
10
11
|
} from "@fluidframework/driver-definitions";
|
|
11
12
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
ICreateBlobResponse,
|
|
14
|
+
ISnapshotTree,
|
|
15
|
+
ISummaryHandle,
|
|
16
|
+
ISummaryTree,
|
|
17
|
+
IVersion,
|
|
17
18
|
} from "@fluidframework/protocol-definitions";
|
|
18
19
|
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
19
23
|
export class DocumentStorageServiceProxy implements IDocumentStorageService {
|
|
20
|
-
|
|
24
|
+
private _policies: IDocumentStorageServicePolicies | undefined;
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
public set policies(policies: IDocumentStorageServicePolicies | undefined) {
|
|
27
|
+
this._policies = policies;
|
|
28
|
+
}
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
public get policies() {
|
|
31
|
+
return this._policies ?? this.internalStorageService.policies;
|
|
32
|
+
}
|
|
29
33
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
public get repositoryUrl(): string {
|
|
35
|
+
return this.internalStorageService.repositoryUrl;
|
|
36
|
+
}
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
constructor(protected readonly internalStorageService: IDocumentStorageService) {}
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
public async getSnapshotTree(
|
|
41
|
+
version?: IVersion,
|
|
42
|
+
scenarioName?: string,
|
|
43
|
+
): Promise<ISnapshotTree | null> {
|
|
44
|
+
return this.internalStorageService.getSnapshotTree(version, scenarioName);
|
|
45
|
+
}
|
|
39
46
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
public async getVersions(
|
|
48
|
+
versionId: string | null,
|
|
49
|
+
count: number,
|
|
50
|
+
scenarioName?: string,
|
|
51
|
+
fetchSource?: FetchSource,
|
|
52
|
+
): Promise<IVersion[]> {
|
|
53
|
+
return this.internalStorageService.getVersions(versionId, count, scenarioName, fetchSource);
|
|
54
|
+
}
|
|
43
55
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
56
|
+
public async uploadSummaryWithContext(
|
|
57
|
+
summary: ISummaryTree,
|
|
58
|
+
context: ISummaryContext,
|
|
59
|
+
): Promise<string> {
|
|
60
|
+
return this.internalStorageService.uploadSummaryWithContext(summary, context);
|
|
61
|
+
}
|
|
47
62
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
63
|
+
public async downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree> {
|
|
64
|
+
return this.internalStorageService.downloadSummary(handle);
|
|
65
|
+
}
|
|
51
66
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
67
|
+
public async createBlob(file: ArrayBufferLike): Promise<ICreateBlobResponse> {
|
|
68
|
+
return this.internalStorageService.createBlob(file);
|
|
69
|
+
}
|
|
55
70
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
71
|
+
public async readBlob(blobId: string): Promise<ArrayBufferLike> {
|
|
72
|
+
return this.internalStorageService.readBlob(blobId);
|
|
73
|
+
}
|
|
59
74
|
}
|
package/src/error.ts
CHANGED
|
@@ -3,15 +3,20 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
// eslint-disable-next-line import/no-deprecated
|
|
7
|
+
import { DriverErrorType, IDriverErrorBase } from "@fluidframework/driver-definitions";
|
|
6
8
|
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
|
|
7
9
|
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Error indicating an API is being used improperly resulting in an invalid operation.
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export class UsageError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
|
|
15
|
+
// eslint-disable-next-line import/no-deprecated
|
|
16
|
+
readonly errorType = DriverErrorType.usageError;
|
|
17
|
+
readonly canRetry = false;
|
|
11
18
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
super(message, { usageError: true });
|
|
16
|
-
}
|
|
19
|
+
constructor(message: string) {
|
|
20
|
+
super(message, { usageError: true });
|
|
21
|
+
}
|
|
17
22
|
}
|
package/src/index.ts
CHANGED
|
@@ -3,24 +3,54 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
6
|
+
export { buildSnapshotTree } from "./buildSnapshotTree";
|
|
7
|
+
export { BlobTreeEntry, TreeTreeEntry, AttachmentTreeEntry } from "./blob";
|
|
8
|
+
export { DocumentStorageServiceProxy } from "./documentStorageServiceProxy";
|
|
9
|
+
export { UsageError } from "./error";
|
|
10
|
+
export { InsecureUrlResolver } from "./insecureUrlResolver";
|
|
11
|
+
export { canBeCoalescedByService, isRuntimeMessage, MessageType2 } from "./messageRecognition";
|
|
12
|
+
export {
|
|
13
|
+
AuthorizationError,
|
|
14
|
+
canRetryOnError,
|
|
15
|
+
createGenericNetworkError,
|
|
16
|
+
createWriteError,
|
|
17
|
+
DeltaStreamConnectionForbiddenError,
|
|
18
|
+
DriverErrorTelemetryProps,
|
|
19
|
+
FluidInvalidSchemaError,
|
|
20
|
+
GenericNetworkError,
|
|
21
|
+
getRetryDelayFromError,
|
|
22
|
+
getRetryDelaySecondsFromError,
|
|
23
|
+
isOnline,
|
|
24
|
+
LocationRedirectionError,
|
|
25
|
+
NetworkErrorBasic,
|
|
26
|
+
NonRetryableError,
|
|
27
|
+
OnlineStatus,
|
|
28
|
+
RetryableError,
|
|
29
|
+
ThrottlingError,
|
|
30
|
+
} from "./network";
|
|
31
|
+
export { logNetworkFailure } from "./networkUtils";
|
|
32
|
+
export {
|
|
33
|
+
emptyMessageStream,
|
|
34
|
+
ParallelRequests,
|
|
35
|
+
Queue,
|
|
36
|
+
requestOps,
|
|
37
|
+
streamFromMessages,
|
|
38
|
+
streamObserver,
|
|
39
|
+
} from "./parallelRequests";
|
|
40
|
+
export { PrefetchDocumentStorageService } from "./prefetchDocumentStorageService";
|
|
41
|
+
export { RateLimiter } from "./rateLimiter";
|
|
42
|
+
export { readAndParse } from "./readAndParse";
|
|
43
|
+
export { calculateMaxWaitTime, IProgress, runWithRetry } from "./runWithRetry";
|
|
44
|
+
export {
|
|
45
|
+
CombinedAppAndProtocolSummary,
|
|
46
|
+
getDocAttributesFromProtocolSummary,
|
|
47
|
+
getQuorumValuesFromProtocolSummary,
|
|
48
|
+
isCombinedAppAndProtocolSummary,
|
|
49
|
+
} from "./summaryForCreateNew";
|
|
50
|
+
export { convertSummaryTreeToSnapshotITree } from "./treeConversions";
|
|
51
|
+
export {
|
|
52
|
+
applyStorageCompression,
|
|
53
|
+
ICompressionStorageConfig,
|
|
54
|
+
SummaryCompressionAlgorithm,
|
|
55
|
+
blobHeadersBlobName,
|
|
56
|
+
} from "./adapters";
|