@fluidframework/driver-utils 1.4.0-115997 → 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/network.ts
CHANGED
|
@@ -4,166 +4,244 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
IThrottlingWarning,
|
|
8
|
+
IDriverErrorBase,
|
|
9
|
+
IAuthorizationError,
|
|
10
|
+
// eslint-disable-next-line import/no-deprecated
|
|
11
|
+
DriverErrorType,
|
|
12
|
+
ILocationRedirectionError,
|
|
13
|
+
IResolvedUrl,
|
|
14
|
+
DriverErrorTypes,
|
|
11
15
|
} from "@fluidframework/driver-definitions";
|
|
12
|
-
import { ITelemetryProperties } from "@fluidframework/
|
|
16
|
+
import { ITelemetryProperties } from "@fluidframework/core-interfaces";
|
|
13
17
|
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
|
|
14
18
|
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
15
22
|
export enum OnlineStatus {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
Offline,
|
|
24
|
+
Online,
|
|
25
|
+
Unknown,
|
|
19
26
|
}
|
|
20
27
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
/**
|
|
29
|
+
* It tells if we have local connection only - we might not have connection to web.
|
|
30
|
+
* No solution for node.js (other than resolve dns names / ping specific sites)
|
|
31
|
+
* Can also use window.addEventListener("online" / "offline")
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
24
34
|
export function isOnline(): OnlineStatus {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
if (
|
|
36
|
+
typeof navigator === "object" &&
|
|
37
|
+
navigator !== null &&
|
|
38
|
+
typeof navigator.onLine === "boolean"
|
|
39
|
+
) {
|
|
40
|
+
return navigator.onLine ? OnlineStatus.Online : OnlineStatus.Offline;
|
|
41
|
+
}
|
|
42
|
+
return OnlineStatus.Unknown;
|
|
29
43
|
}
|
|
30
44
|
|
|
31
45
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* any or unknown in various function signatures that pass errors around.
|
|
35
|
-
*
|
|
36
|
-
* "Any" in the interface name is a nod to the fact that errorType has lost its type constraint.
|
|
37
|
-
* It will be either DriverErrorType or the specific driver's specialized error type enum,
|
|
38
|
-
* but we can't reference a specific driver's error type enum in this code.
|
|
46
|
+
* Telemetry props with driver-specific required properties
|
|
47
|
+
* @internal
|
|
39
48
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** Telemetry props with driver-specific required properties */
|
|
45
|
-
export type DriverErrorTelemetryProps = ITelemetryProperties & { driverVersion: string | undefined; };
|
|
49
|
+
export type DriverErrorTelemetryProps = ITelemetryProperties & {
|
|
50
|
+
driverVersion: string | undefined;
|
|
51
|
+
};
|
|
46
52
|
|
|
47
53
|
/**
|
|
48
54
|
* Generic network error class.
|
|
55
|
+
* @internal
|
|
49
56
|
*/
|
|
50
57
|
export class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
// eslint-disable-next-line import/no-deprecated
|
|
59
|
+
readonly errorType = DriverErrorType.genericNetworkError;
|
|
60
|
+
|
|
61
|
+
constructor(
|
|
62
|
+
message: string,
|
|
63
|
+
readonly canRetry: boolean,
|
|
64
|
+
props: DriverErrorTelemetryProps,
|
|
65
|
+
) {
|
|
66
|
+
super(message, props);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* FluidInvalidSchema error class.
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
export class FluidInvalidSchemaError
|
|
75
|
+
extends LoggingError
|
|
76
|
+
implements IDriverErrorBase, IFluidErrorBase
|
|
77
|
+
{
|
|
78
|
+
// eslint-disable-next-line import/no-deprecated
|
|
79
|
+
readonly errorType = DriverErrorType.fluidInvalidSchema;
|
|
80
|
+
readonly canRetry = false;
|
|
81
|
+
|
|
82
|
+
constructor(message: string, props: DriverErrorTelemetryProps) {
|
|
83
|
+
super(message, props);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
export class DeltaStreamConnectionForbiddenError
|
|
91
|
+
extends LoggingError
|
|
92
|
+
implements IDriverErrorBase, IFluidErrorBase
|
|
93
|
+
{
|
|
94
|
+
// eslint-disable-next-line import/no-deprecated
|
|
95
|
+
static readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;
|
|
96
|
+
readonly errorType = DeltaStreamConnectionForbiddenError.errorType;
|
|
97
|
+
readonly canRetry = false;
|
|
98
|
+
readonly storageOnlyReason: string | undefined;
|
|
99
|
+
|
|
100
|
+
constructor(message: string, props: DriverErrorTelemetryProps, storageOnlyReason?: string) {
|
|
101
|
+
super(message, { ...props, statusCode: 400 });
|
|
102
|
+
this.storageOnlyReason = storageOnlyReason;
|
|
103
|
+
}
|
|
60
104
|
}
|
|
61
105
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
106
|
+
/**
|
|
107
|
+
* @internal
|
|
108
|
+
*/
|
|
109
|
+
export class AuthorizationError
|
|
110
|
+
extends LoggingError
|
|
111
|
+
implements IAuthorizationError, IFluidErrorBase
|
|
112
|
+
{
|
|
113
|
+
// eslint-disable-next-line import/no-deprecated
|
|
114
|
+
readonly errorType = DriverErrorType.authorizationError;
|
|
115
|
+
readonly canRetry = false;
|
|
116
|
+
|
|
117
|
+
constructor(
|
|
118
|
+
message: string,
|
|
119
|
+
readonly claims: string | undefined,
|
|
120
|
+
readonly tenantId: string | undefined,
|
|
121
|
+
props: DriverErrorTelemetryProps,
|
|
122
|
+
) {
|
|
123
|
+
// don't log claims or tenantId
|
|
124
|
+
super(message, props, new Set(["claims", "tenantId"]));
|
|
125
|
+
}
|
|
77
126
|
}
|
|
78
127
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
128
|
+
/**
|
|
129
|
+
* @internal
|
|
130
|
+
*/
|
|
131
|
+
export class LocationRedirectionError
|
|
132
|
+
extends LoggingError
|
|
133
|
+
implements ILocationRedirectionError, IFluidErrorBase
|
|
134
|
+
{
|
|
135
|
+
// eslint-disable-next-line import/no-deprecated
|
|
136
|
+
readonly errorType = DriverErrorType.locationRedirection;
|
|
137
|
+
readonly canRetry = false;
|
|
138
|
+
|
|
139
|
+
constructor(
|
|
140
|
+
message: string,
|
|
141
|
+
readonly redirectUrl: IResolvedUrl,
|
|
142
|
+
props: DriverErrorTelemetryProps,
|
|
143
|
+
) {
|
|
144
|
+
// do not log redirectURL
|
|
145
|
+
super(message, props, new Set(["redirectUrl"]));
|
|
146
|
+
}
|
|
92
147
|
}
|
|
93
148
|
|
|
149
|
+
/**
|
|
150
|
+
* @internal
|
|
151
|
+
*/
|
|
94
152
|
export class NetworkErrorBasic<T extends string> extends LoggingError implements IFluidErrorBase {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
153
|
+
constructor(
|
|
154
|
+
message: string,
|
|
155
|
+
readonly errorType: T,
|
|
156
|
+
readonly canRetry: boolean,
|
|
157
|
+
props: DriverErrorTelemetryProps,
|
|
158
|
+
) {
|
|
159
|
+
super(message, props);
|
|
160
|
+
}
|
|
103
161
|
}
|
|
104
162
|
|
|
163
|
+
/**
|
|
164
|
+
* @internal
|
|
165
|
+
*/
|
|
105
166
|
export class NonRetryableError<T extends string> extends NetworkErrorBasic<T> {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
167
|
+
constructor(
|
|
168
|
+
message: string,
|
|
169
|
+
readonly errorType: T,
|
|
170
|
+
props: DriverErrorTelemetryProps,
|
|
171
|
+
) {
|
|
172
|
+
super(message, errorType, false, props);
|
|
173
|
+
}
|
|
113
174
|
}
|
|
114
175
|
|
|
176
|
+
/**
|
|
177
|
+
* @internal
|
|
178
|
+
*/
|
|
115
179
|
export class RetryableError<T extends string> extends NetworkErrorBasic<T> {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
180
|
+
constructor(
|
|
181
|
+
message: string,
|
|
182
|
+
readonly errorType: T,
|
|
183
|
+
props: DriverErrorTelemetryProps,
|
|
184
|
+
) {
|
|
185
|
+
super(message, errorType, true, props);
|
|
186
|
+
}
|
|
123
187
|
}
|
|
124
188
|
|
|
125
189
|
/**
|
|
126
190
|
* Throttling error class - used to communicate all throttling errors
|
|
191
|
+
* @internal
|
|
127
192
|
*/
|
|
128
193
|
export class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
194
|
+
// eslint-disable-next-line import/no-deprecated
|
|
195
|
+
readonly errorType = DriverErrorType.throttlingError;
|
|
196
|
+
readonly canRetry = true;
|
|
197
|
+
|
|
198
|
+
constructor(
|
|
199
|
+
message: string,
|
|
200
|
+
readonly retryAfterSeconds: number,
|
|
201
|
+
props: DriverErrorTelemetryProps,
|
|
202
|
+
) {
|
|
203
|
+
super(message, props);
|
|
204
|
+
}
|
|
139
205
|
}
|
|
140
206
|
|
|
207
|
+
/**
|
|
208
|
+
* @internal
|
|
209
|
+
*/
|
|
141
210
|
export const createWriteError = (message: string, props: DriverErrorTelemetryProps) =>
|
|
142
|
-
|
|
211
|
+
new NonRetryableError(message, DriverErrorTypes.writeError, props);
|
|
143
212
|
|
|
213
|
+
/**
|
|
214
|
+
* @internal
|
|
215
|
+
*/
|
|
144
216
|
export function createGenericNetworkError(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
217
|
+
message: string,
|
|
218
|
+
retryInfo: { canRetry: boolean; retryAfterMs?: number },
|
|
219
|
+
props: DriverErrorTelemetryProps,
|
|
148
220
|
): ThrottlingError | GenericNetworkError {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
return new GenericNetworkError(message, retryInfo.canRetry, props);
|
|
221
|
+
if (retryInfo.retryAfterMs !== undefined && retryInfo.canRetry) {
|
|
222
|
+
return new ThrottlingError(message, retryInfo.retryAfterMs / 1000, props);
|
|
223
|
+
}
|
|
224
|
+
return new GenericNetworkError(message, retryInfo.canRetry, props);
|
|
154
225
|
}
|
|
155
226
|
|
|
156
227
|
/**
|
|
157
228
|
* Check if a connection error can be retried. Unless explicitly allowed, retry is disallowed.
|
|
158
229
|
* I.e. asserts or unexpected exceptions in our code result in container failure.
|
|
159
230
|
* @param error - The error to inspect for ability to retry
|
|
231
|
+
* @internal
|
|
160
232
|
*/
|
|
161
233
|
export const canRetryOnError = (error: any): boolean => error?.canRetry === true;
|
|
162
234
|
|
|
163
|
-
/**
|
|
235
|
+
/**
|
|
236
|
+
* Check retryAfterSeconds property on error
|
|
237
|
+
* @internal
|
|
238
|
+
*/
|
|
164
239
|
export const getRetryDelaySecondsFromError = (error: any): number | undefined =>
|
|
165
|
-
|
|
240
|
+
error?.retryAfterSeconds as number | undefined;
|
|
166
241
|
|
|
167
|
-
/**
|
|
168
|
-
|
|
169
|
-
|
|
242
|
+
/**
|
|
243
|
+
* Check retryAfterSeconds property on error and convert to ms
|
|
244
|
+
* @internal
|
|
245
|
+
*/
|
|
246
|
+
export const getRetryDelayFromError = (error: any): number | undefined =>
|
|
247
|
+
error?.retryAfterSeconds !== undefined ? error.retryAfterSeconds * 1000 : undefined;
|
package/src/networkUtils.ts
CHANGED
|
@@ -3,58 +3,33 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITelemetryErrorEvent
|
|
6
|
+
import { ITelemetryErrorEvent } from "@fluidframework/core-interfaces";
|
|
7
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
7
8
|
import { isOnline, OnlineStatus, canRetryOnError } from "./network";
|
|
8
9
|
|
|
9
|
-
export function logNetworkFailure(logger: ITelemetryLogger, event: ITelemetryErrorEvent, error?: any) {
|
|
10
|
-
const newEvent = { ...event };
|
|
11
|
-
|
|
12
|
-
const errorOnlineProp = error.online;
|
|
13
|
-
newEvent.online = typeof errorOnlineProp === "string"
|
|
14
|
-
? errorOnlineProp
|
|
15
|
-
: OnlineStatus[isOnline()];
|
|
16
|
-
|
|
17
|
-
if (typeof navigator === "object" && navigator !== null) {
|
|
18
|
-
const nav = navigator as any;
|
|
19
|
-
const connection = nav.connection ?? nav.mozConnection ?? nav.webkitConnection;
|
|
20
|
-
if (connection !== null && typeof connection === "object") {
|
|
21
|
-
newEvent.connectionType = connection.type;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// non-retryable errors are fatal and should be logged as errors
|
|
26
|
-
newEvent.category = canRetryOnError(error) ? "generic" : "error";
|
|
27
|
-
logger.sendTelemetryEvent(newEvent, error);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
10
|
/**
|
|
31
|
-
*
|
|
32
|
-
* If connected, waits minimum of minDelay anyway (between network retries)
|
|
33
|
-
* If disconnected, polls every 30 seconds anyway, to make sure we are not getting stuck because of wrong signal
|
|
34
|
-
* Note that browsers will have false positives (like having Hyper-V adapter on machine,
|
|
35
|
-
* or machine connected to router that is not connected to internet)
|
|
36
|
-
* But there should be no false negatives.
|
|
37
|
-
* The only exception - Opera returns false when user enters "Work Offline" mode, regardless of actual connectivity.
|
|
11
|
+
* @internal
|
|
38
12
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
13
|
+
export function logNetworkFailure(
|
|
14
|
+
logger: ITelemetryLoggerExt,
|
|
15
|
+
event: ITelemetryErrorEvent,
|
|
16
|
+
error?: any,
|
|
17
|
+
) {
|
|
18
|
+
const newEvent = { ...event };
|
|
19
|
+
|
|
20
|
+
const errorOnlineProp = error?.online;
|
|
21
|
+
newEvent.online =
|
|
22
|
+
typeof errorOnlineProp === "string" ? errorOnlineProp : OnlineStatus[isOnline()];
|
|
23
|
+
|
|
24
|
+
if (typeof navigator === "object" && navigator !== null) {
|
|
25
|
+
const nav = navigator as any;
|
|
26
|
+
const connection = nav.connection ?? nav.mozConnection ?? nav.webkitConnection;
|
|
27
|
+
if (connection !== null && typeof connection === "object") {
|
|
28
|
+
newEvent.connectionType = connection.type;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
44
31
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (isOnline() === OnlineStatus.Offline) {
|
|
49
|
-
if (window?.addEventListener !== undefined) {
|
|
50
|
-
listener = () => {
|
|
51
|
-
resolve();
|
|
52
|
-
window.removeEventListener("online", listener);
|
|
53
|
-
};
|
|
54
|
-
window.addEventListener("online", listener, false);
|
|
55
|
-
delay = Math.max(minDelay, offlinePollFrequency);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
setTimeout(listener, delay);
|
|
59
|
-
});
|
|
32
|
+
// non-retryable errors are fatal and should be logged as errors
|
|
33
|
+
newEvent.category = canRetryOnError(error) ? "generic" : "error";
|
|
34
|
+
logger.sendTelemetryEvent(newEvent, error);
|
|
60
35
|
}
|
package/src/packageVersion.ts
CHANGED