@fluidframework/driver-utils 2.0.0-rc.1.0.3 → 2.0.0-rc.2.0.0
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 → .eslintrc.cjs} +5 -2
- package/{.mocharc.js → .mocharc.cjs} +1 -1
- package/CHANGELOG.md +32 -0
- package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
- package/api-extractor-lint.json +1 -1
- package/api-extractor.json +1 -1
- package/api-report/driver-utils.api.md +22 -18
- package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts +2 -2
- package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts.map +1 -1
- package/dist/adapters/compression/documentServiceCompressionAdapter.js +8 -4
- package/dist/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts +2 -2
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -1
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js +7 -7
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
- package/dist/adapters/compression/index.d.ts +3 -3
- package/dist/adapters/compression/index.d.ts.map +1 -1
- package/dist/adapters/compression/index.js +7 -7
- package/dist/adapters/compression/index.js.map +1 -1
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +2 -2
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts.map +1 -1
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +11 -11
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
- package/dist/adapters/compression/summaryblob/index.d.ts +1 -1
- package/dist/adapters/compression/summaryblob/index.d.ts.map +1 -1
- package/dist/adapters/compression/summaryblob/index.js +3 -3
- package/dist/adapters/compression/summaryblob/index.js.map +1 -1
- package/dist/adapters/index.d.ts +2 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +6 -6
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/predefinedAdapters.d.ts +1 -1
- package/dist/adapters/predefinedAdapters.d.ts.map +1 -1
- package/dist/adapters/predefinedAdapters.js +4 -4
- package/dist/adapters/predefinedAdapters.js.map +1 -1
- package/dist/documentServiceProxy.d.ts +3 -2
- package/dist/documentServiceProxy.d.ts.map +1 -1
- package/dist/documentServiceProxy.js +3 -1
- package/dist/documentServiceProxy.js.map +1 -1
- package/dist/documentStorageServiceProxy.d.ts +2 -2
- package/dist/documentStorageServiceProxy.d.ts.map +1 -1
- package/dist/documentStorageServiceProxy.js +7 -3
- package/dist/documentStorageServiceProxy.js.map +1 -1
- package/dist/driver-utils-alpha.d.ts +6 -2
- package/dist/driver-utils-beta.d.ts +10 -2
- package/dist/driver-utils-public.d.ts +10 -2
- package/dist/driver-utils-untrimmed.d.ts +30 -17
- package/dist/error.d.ts +2 -2
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +1 -3
- package/dist/error.js.map +1 -1
- package/dist/index.d.ts +17 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -62
- package/dist/index.js.map +1 -1
- package/dist/insecureUrlResolver.d.ts +3 -2
- package/dist/insecureUrlResolver.d.ts.map +1 -1
- package/dist/insecureUrlResolver.js +9 -7
- package/dist/insecureUrlResolver.js.map +1 -1
- package/dist/network.d.ts +13 -10
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +9 -12
- package/dist/network.js.map +1 -1
- package/dist/networkUtils.d.ts +2 -3
- package/dist/networkUtils.d.ts.map +1 -1
- package/dist/networkUtils.js +3 -3
- package/dist/networkUtils.js.map +1 -1
- package/dist/package.json +3 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/parallelRequests.d.ts +3 -3
- package/dist/parallelRequests.d.ts.map +1 -1
- package/dist/parallelRequests.js +10 -10
- package/dist/parallelRequests.js.map +1 -1
- package/dist/prefetchDocumentStorageService.d.ts +1 -1
- package/dist/prefetchDocumentStorageService.d.ts.map +1 -1
- package/dist/prefetchDocumentStorageService.js +4 -4
- package/dist/prefetchDocumentStorageService.js.map +1 -1
- package/dist/runWithRetry.js +6 -6
- package/dist/runWithRetry.js.map +1 -1
- package/dist/storageUtils.d.ts +13 -0
- package/dist/storageUtils.d.ts.map +1 -0
- package/dist/storageUtils.js +17 -0
- package/dist/storageUtils.js.map +1 -0
- package/dist/treeConversions.d.ts.map +1 -1
- package/dist/treeConversions.js +7 -6
- package/dist/treeConversions.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/adapters/compression/{compressionTypes.d.mts → compressionTypes.d.ts} +1 -1
- package/lib/adapters/compression/compressionTypes.d.ts.map +1 -0
- package/lib/adapters/compression/{compressionTypes.mjs → compressionTypes.js} +1 -1
- package/lib/adapters/compression/compressionTypes.js.map +1 -0
- package/lib/adapters/compression/{documentServiceCompressionAdapter.d.mts → documentServiceCompressionAdapter.d.ts} +3 -3
- package/lib/adapters/compression/documentServiceCompressionAdapter.d.ts.map +1 -0
- package/lib/adapters/compression/{documentServiceCompressionAdapter.mjs → documentServiceCompressionAdapter.js} +7 -3
- package/lib/adapters/compression/documentServiceCompressionAdapter.js.map +1 -0
- package/lib/adapters/compression/{documentServiceFactoryCompressionAdapter.d.mts → documentServiceFactoryCompressionAdapter.d.ts} +3 -3
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -0
- package/lib/adapters/compression/{documentServiceFactoryCompressionAdapter.mjs → documentServiceFactoryCompressionAdapter.js} +4 -4
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -0
- package/lib/adapters/compression/{index.d.mts → index.d.ts} +4 -4
- package/lib/adapters/compression/index.d.ts.map +1 -0
- package/lib/adapters/compression/{index.mjs → index.js} +4 -4
- package/lib/adapters/compression/index.js.map +1 -0
- package/lib/adapters/compression/summaryblob/{documentStorageServiceSummaryBlobCompressionAdapter.d.mts → documentStorageServiceSummaryBlobCompressionAdapter.d.ts} +3 -3
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts.map +1 -0
- package/lib/adapters/compression/summaryblob/{documentStorageServiceSummaryBlobCompressionAdapter.mjs → documentStorageServiceSummaryBlobCompressionAdapter.js} +3 -3
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -0
- package/lib/adapters/compression/summaryblob/{index.mjs → index.d.ts} +2 -2
- package/lib/adapters/compression/summaryblob/index.d.ts.map +1 -0
- package/lib/adapters/compression/summaryblob/{index.d.mts → index.js} +2 -2
- package/lib/adapters/compression/summaryblob/index.js.map +1 -0
- package/lib/adapters/{index.d.mts → index.d.ts} +3 -3
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/adapters/{index.mjs → index.js} +3 -3
- package/lib/adapters/index.js.map +1 -0
- package/lib/adapters/{predefinedAdapters.d.mts → predefinedAdapters.d.ts} +2 -2
- package/lib/adapters/predefinedAdapters.d.ts.map +1 -0
- package/lib/adapters/{predefinedAdapters.mjs → predefinedAdapters.js} +2 -2
- package/lib/adapters/predefinedAdapters.js.map +1 -0
- package/lib/{blob.d.mts → blob.d.ts} +1 -1
- package/lib/blob.d.ts.map +1 -0
- package/lib/{blob.mjs → blob.js} +1 -1
- package/lib/blob.js.map +1 -0
- package/lib/{buildSnapshotTree.d.mts → buildSnapshotTree.d.ts} +1 -1
- package/lib/buildSnapshotTree.d.ts.map +1 -0
- package/lib/{buildSnapshotTree.mjs → buildSnapshotTree.js} +1 -1
- package/lib/buildSnapshotTree.js.map +1 -0
- package/lib/{documentServiceFactoryProxy.d.mts → documentServiceFactoryProxy.d.ts} +1 -1
- package/lib/documentServiceFactoryProxy.d.ts.map +1 -0
- package/lib/{documentServiceFactoryProxy.mjs → documentServiceFactoryProxy.js} +1 -1
- package/lib/documentServiceFactoryProxy.js.map +1 -0
- package/lib/{documentServiceProxy.d.mts → documentServiceProxy.d.ts} +4 -3
- package/lib/documentServiceProxy.d.ts.map +1 -0
- package/lib/{documentServiceProxy.mjs → documentServiceProxy.js} +4 -2
- package/lib/documentServiceProxy.js.map +1 -0
- package/lib/{documentStorageServiceProxy.d.mts → documentStorageServiceProxy.d.ts} +3 -3
- package/lib/documentStorageServiceProxy.d.ts.map +1 -0
- package/lib/{documentStorageServiceProxy.mjs → documentStorageServiceProxy.js} +8 -4
- package/lib/documentStorageServiceProxy.js.map +1 -0
- package/lib/{driver-utils-alpha.d.mts → driver-utils-alpha.d.ts} +6 -2
- package/lib/{driver-utils-public.d.mts → driver-utils-beta.d.ts} +10 -2
- package/lib/{driver-utils-beta.d.mts → driver-utils-public.d.ts} +10 -2
- package/lib/{driver-utils-untrimmed.d.mts → driver-utils-untrimmed.d.ts} +30 -17
- package/lib/{error.d.mts → error.d.ts} +3 -3
- package/lib/error.d.ts.map +1 -0
- package/lib/{error.mjs → error.js} +3 -4
- package/lib/error.js.map +1 -0
- package/lib/{index.d.mts → index.d.ts} +18 -17
- package/lib/index.d.ts.map +1 -0
- package/lib/{index.mjs → index.js} +18 -17
- package/lib/index.js.map +1 -0
- package/lib/{insecureUrlResolver.d.mts → insecureUrlResolver.d.ts} +4 -3
- package/lib/insecureUrlResolver.d.ts.map +1 -0
- package/lib/{insecureUrlResolver.mjs → insecureUrlResolver.js} +10 -8
- package/lib/insecureUrlResolver.js.map +1 -0
- package/lib/{messageRecognition.d.mts → messageRecognition.d.ts} +5 -1
- package/lib/messageRecognition.d.ts.map +1 -0
- package/lib/{messageRecognition.mjs → messageRecognition.js} +5 -1
- package/lib/messageRecognition.js.map +1 -0
- package/lib/{network.d.mts → network.d.ts} +14 -11
- package/lib/network.d.ts.map +1 -0
- package/lib/{network.mjs → network.js} +11 -16
- package/lib/network.js.map +1 -0
- package/lib/networkUtils.d.ts +10 -0
- package/lib/networkUtils.d.ts.map +1 -0
- package/lib/{networkUtils.mjs → networkUtils.js} +2 -2
- package/lib/networkUtils.js.map +1 -0
- package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
- package/lib/packageVersion.d.ts.map +1 -0
- package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
- package/lib/packageVersion.js.map +1 -0
- package/lib/{parallelRequests.d.mts → parallelRequests.d.ts} +4 -4
- package/lib/parallelRequests.d.ts.map +1 -0
- package/lib/{parallelRequests.mjs → parallelRequests.js} +10 -5
- package/lib/parallelRequests.js.map +1 -0
- package/lib/{prefetchDocumentStorageService.d.mts → prefetchDocumentStorageService.d.ts} +6 -2
- package/lib/prefetchDocumentStorageService.d.ts.map +1 -0
- package/lib/{prefetchDocumentStorageService.mjs → prefetchDocumentStorageService.js} +7 -3
- package/lib/prefetchDocumentStorageService.js.map +1 -0
- package/lib/{rateLimiter.d.mts → rateLimiter.d.ts} +1 -1
- package/lib/rateLimiter.d.ts.map +1 -0
- package/lib/{rateLimiter.mjs → rateLimiter.js} +1 -1
- package/lib/rateLimiter.js.map +1 -0
- package/lib/{readAndParse.d.mts → readAndParse.d.ts} +1 -1
- package/lib/readAndParse.d.ts.map +1 -0
- package/lib/{readAndParse.mjs → readAndParse.js} +1 -1
- package/lib/readAndParse.js.map +1 -0
- package/lib/{runWithRetry.d.mts → runWithRetry.d.ts} +1 -1
- package/lib/runWithRetry.d.ts.map +1 -0
- package/lib/{runWithRetry.mjs → runWithRetry.js} +3 -3
- package/lib/runWithRetry.js.map +1 -0
- package/lib/storageUtils.d.ts +13 -0
- package/lib/storageUtils.d.ts.map +1 -0
- package/lib/storageUtils.js +13 -0
- package/lib/storageUtils.js.map +1 -0
- package/lib/{summaryForCreateNew.d.mts → summaryForCreateNew.d.ts} +1 -1
- package/lib/summaryForCreateNew.d.ts.map +1 -0
- package/lib/{summaryForCreateNew.mjs → summaryForCreateNew.js} +1 -1
- package/lib/summaryForCreateNew.js.map +1 -0
- package/lib/test/insecureUrlResolverTest.spec.js +101 -0
- package/lib/test/insecureUrlResolverTest.spec.js.map +1 -0
- package/lib/test/parallelRequests.spec.js +186 -0
- package/lib/test/parallelRequests.spec.js.map +1 -0
- package/lib/test/rateLimiter.spec.js +85 -0
- package/lib/test/rateLimiter.spec.js.map +1 -0
- package/lib/test/runWithRetry.spec.js +180 -0
- package/lib/test/runWithRetry.spec.js.map +1 -0
- package/lib/test/summaryCompressionData.js +170 -0
- package/lib/test/summaryCompressionData.js.map +1 -0
- package/lib/test/summaryCompresssionTester.spec.js +429 -0
- package/lib/test/summaryCompresssionTester.spec.js.map +1 -0
- package/lib/test/types/validateDriverUtilsPrevious.generated.js +108 -0
- package/lib/test/types/validateDriverUtilsPrevious.generated.js.map +1 -0
- package/lib/{treeConversions.d.mts → treeConversions.d.ts} +1 -1
- package/lib/treeConversions.d.ts.map +1 -0
- package/lib/{treeConversions.mjs → treeConversions.js} +4 -3
- package/lib/treeConversions.js.map +1 -0
- package/package.json +82 -28
- package/src/adapters/compression/documentServiceCompressionAdapter.ts +9 -3
- package/src/adapters/compression/documentServiceFactoryCompressionAdapter.ts +4 -4
- package/src/adapters/compression/index.ts +3 -3
- package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts +2 -2
- package/src/adapters/compression/summaryblob/index.ts +1 -1
- package/src/adapters/index.ts +2 -2
- package/src/adapters/predefinedAdapters.ts +1 -1
- package/src/documentServiceProxy.ts +9 -2
- package/src/documentStorageServiceProxy.ts +12 -4
- package/src/error.ts +2 -4
- package/src/index.ts +17 -16
- package/src/insecureUrlResolver.ts +8 -6
- package/src/network.ts +11 -16
- package/src/networkUtils.ts +3 -4
- package/src/packageVersion.ts +1 -1
- package/src/parallelRequests.ts +11 -11
- package/src/prefetchDocumentStorageService.ts +2 -2
- package/src/runWithRetry.ts +2 -2
- package/src/storageUtils.ts +18 -0
- package/src/treeConversions.ts +3 -2
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +2 -5
- package/lib/adapters/compression/compressionTypes.d.mts.map +0 -1
- package/lib/adapters/compression/compressionTypes.mjs.map +0 -1
- package/lib/adapters/compression/documentServiceCompressionAdapter.d.mts.map +0 -1
- package/lib/adapters/compression/documentServiceCompressionAdapter.mjs.map +0 -1
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.mts.map +0 -1
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.mjs.map +0 -1
- package/lib/adapters/compression/index.d.mts.map +0 -1
- package/lib/adapters/compression/index.mjs.map +0 -1
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.mts.map +0 -1
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.mjs.map +0 -1
- package/lib/adapters/compression/summaryblob/index.d.mts.map +0 -1
- package/lib/adapters/compression/summaryblob/index.mjs.map +0 -1
- package/lib/adapters/index.d.mts.map +0 -1
- package/lib/adapters/index.mjs.map +0 -1
- package/lib/adapters/predefinedAdapters.d.mts.map +0 -1
- package/lib/adapters/predefinedAdapters.mjs.map +0 -1
- package/lib/blob.d.mts.map +0 -1
- package/lib/blob.mjs.map +0 -1
- package/lib/buildSnapshotTree.d.mts.map +0 -1
- package/lib/buildSnapshotTree.mjs.map +0 -1
- package/lib/documentServiceFactoryProxy.d.mts.map +0 -1
- package/lib/documentServiceFactoryProxy.mjs.map +0 -1
- package/lib/documentServiceProxy.d.mts.map +0 -1
- package/lib/documentServiceProxy.mjs.map +0 -1
- package/lib/documentStorageServiceProxy.d.mts.map +0 -1
- package/lib/documentStorageServiceProxy.mjs.map +0 -1
- package/lib/error.d.mts.map +0 -1
- package/lib/error.mjs.map +0 -1
- package/lib/index.d.mts.map +0 -1
- package/lib/index.mjs.map +0 -1
- package/lib/insecureUrlResolver.d.mts.map +0 -1
- package/lib/insecureUrlResolver.mjs.map +0 -1
- package/lib/messageRecognition.d.mts.map +0 -1
- package/lib/messageRecognition.mjs.map +0 -1
- package/lib/network.d.mts.map +0 -1
- package/lib/network.mjs.map +0 -1
- package/lib/networkUtils.d.mts +0 -11
- package/lib/networkUtils.d.mts.map +0 -1
- package/lib/networkUtils.mjs.map +0 -1
- package/lib/packageVersion.d.mts.map +0 -1
- package/lib/packageVersion.mjs.map +0 -1
- package/lib/parallelRequests.d.mts.map +0 -1
- package/lib/parallelRequests.mjs.map +0 -1
- package/lib/prefetchDocumentStorageService.d.mts.map +0 -1
- package/lib/prefetchDocumentStorageService.mjs.map +0 -1
- package/lib/rateLimiter.d.mts.map +0 -1
- package/lib/rateLimiter.mjs.map +0 -1
- package/lib/readAndParse.d.mts.map +0 -1
- package/lib/readAndParse.mjs.map +0 -1
- package/lib/runWithRetry.d.mts.map +0 -1
- package/lib/runWithRetry.mjs.map +0 -1
- package/lib/summaryForCreateNew.d.mts.map +0 -1
- package/lib/summaryForCreateNew.mjs.map +0 -1
- package/lib/treeConversions.d.mts.map +0 -1
- package/lib/treeConversions.mjs.map +0 -1
|
@@ -7,6 +7,6 @@ export {
|
|
|
7
7
|
SummaryCompressionAlgorithm,
|
|
8
8
|
ICompressionStorageConfig,
|
|
9
9
|
DefaultCompressionStorageConfig,
|
|
10
|
-
} from "./compressionTypes";
|
|
11
|
-
export { DocumentServiceFactoryCompressionAdapter } from "./documentServiceFactoryCompressionAdapter";
|
|
12
|
-
export { blobHeadersBlobName } from "./summaryblob";
|
|
10
|
+
} from "./compressionTypes.js";
|
|
11
|
+
export { DocumentServiceFactoryCompressionAdapter } from "./documentServiceFactoryCompressionAdapter.js";
|
|
12
|
+
export { blobHeadersBlobName } from "./summaryblob/index.js";
|
package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts
CHANGED
|
@@ -16,8 +16,8 @@ import {
|
|
|
16
16
|
SummaryType,
|
|
17
17
|
} from "@fluidframework/protocol-definitions";
|
|
18
18
|
import { compress, decompress } from "lz4js";
|
|
19
|
-
import { DocumentStorageServiceProxy } from "../../../documentStorageServiceProxy";
|
|
20
|
-
import { ICompressionStorageConfig, SummaryCompressionAlgorithm } from "
|
|
19
|
+
import { DocumentStorageServiceProxy } from "../../../documentStorageServiceProxy.js";
|
|
20
|
+
import { ICompressionStorageConfig, SummaryCompressionAlgorithm } from "..//index.js";
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* @internal
|
package/src/adapters/index.ts
CHANGED
|
@@ -8,6 +8,6 @@ export {
|
|
|
8
8
|
ICompressionStorageConfig,
|
|
9
9
|
DefaultCompressionStorageConfig,
|
|
10
10
|
blobHeadersBlobName,
|
|
11
|
-
} from "./compression";
|
|
11
|
+
} from "./compression/index.js";
|
|
12
12
|
|
|
13
|
-
export { applyStorageCompression } from "./predefinedAdapters";
|
|
13
|
+
export { applyStorageCompression } from "./predefinedAdapters.js";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
DocumentServiceFactoryCompressionAdapter,
|
|
10
10
|
ICompressionStorageConfig,
|
|
11
11
|
DefaultCompressionStorageConfig,
|
|
12
|
-
} from "./compression";
|
|
12
|
+
} from "./compression/index.js";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* This method optionally applies compression to the given document service factory. The compression
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
6
7
|
import {
|
|
7
8
|
IDocumentDeltaConnection,
|
|
8
9
|
IDocumentDeltaStorageService,
|
|
9
10
|
IDocumentService,
|
|
11
|
+
IDocumentServiceEvents,
|
|
10
12
|
IDocumentStorageService,
|
|
11
13
|
IResolvedUrl,
|
|
12
14
|
} from "@fluidframework/driver-definitions";
|
|
@@ -17,8 +19,13 @@ import { IClient } from "@fluidframework/protocol-definitions";
|
|
|
17
19
|
* It delegates all calls to IDocumentService implementation passed to constructor.
|
|
18
20
|
*/
|
|
19
21
|
|
|
20
|
-
export abstract class DocumentServiceProxy
|
|
21
|
-
|
|
22
|
+
export abstract class DocumentServiceProxy
|
|
23
|
+
extends TypedEventEmitter<IDocumentServiceEvents>
|
|
24
|
+
implements IDocumentService
|
|
25
|
+
{
|
|
26
|
+
constructor(private readonly _service: IDocumentService) {
|
|
27
|
+
super();
|
|
28
|
+
}
|
|
22
29
|
|
|
23
30
|
public get service(): IDocumentService {
|
|
24
31
|
return this._service;
|
|
@@ -7,6 +7,8 @@ import {
|
|
|
7
7
|
FetchSource,
|
|
8
8
|
IDocumentStorageService,
|
|
9
9
|
IDocumentStorageServicePolicies,
|
|
10
|
+
ISnapshot,
|
|
11
|
+
ISnapshotFetchOptions,
|
|
10
12
|
ISummaryContext,
|
|
11
13
|
} from "@fluidframework/driver-definitions";
|
|
12
14
|
import {
|
|
@@ -16,6 +18,7 @@ import {
|
|
|
16
18
|
ISummaryTree,
|
|
17
19
|
IVersion,
|
|
18
20
|
} from "@fluidframework/protocol-definitions";
|
|
21
|
+
import { UsageError } from "@fluidframework/telemetry-utils";
|
|
19
22
|
|
|
20
23
|
/**
|
|
21
24
|
* @internal
|
|
@@ -31,10 +34,6 @@ export class DocumentStorageServiceProxy implements IDocumentStorageService {
|
|
|
31
34
|
return this._policies ?? this.internalStorageService.policies;
|
|
32
35
|
}
|
|
33
36
|
|
|
34
|
-
public get repositoryUrl(): string {
|
|
35
|
-
return this.internalStorageService.repositoryUrl;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
37
|
constructor(protected readonly internalStorageService: IDocumentStorageService) {}
|
|
39
38
|
|
|
40
39
|
public async getSnapshotTree(
|
|
@@ -44,6 +43,15 @@ export class DocumentStorageServiceProxy implements IDocumentStorageService {
|
|
|
44
43
|
return this.internalStorageService.getSnapshotTree(version, scenarioName);
|
|
45
44
|
}
|
|
46
45
|
|
|
46
|
+
public async getSnapshot(snapshotFetchOptions?: ISnapshotFetchOptions): Promise<ISnapshot> {
|
|
47
|
+
if (this.internalStorageService.getSnapshot !== undefined) {
|
|
48
|
+
return this.internalStorageService.getSnapshot(snapshotFetchOptions);
|
|
49
|
+
}
|
|
50
|
+
throw new UsageError(
|
|
51
|
+
"getSnapshot api should exist on internal storage in documentStorageServiceProxy class",
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
47
55
|
public async getVersions(
|
|
48
56
|
versionId: string | null,
|
|
49
57
|
count: number,
|
package/src/error.ts
CHANGED
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
import { DriverErrorType, IDriverErrorBase } from "@fluidframework/driver-definitions";
|
|
6
|
+
import { DriverErrorTypes, IDriverErrorBase } from "@fluidframework/driver-definitions";
|
|
8
7
|
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -12,8 +11,7 @@ import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
|
|
|
12
11
|
* @internal
|
|
13
12
|
*/
|
|
14
13
|
export class UsageError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
|
|
15
|
-
|
|
16
|
-
readonly errorType = DriverErrorType.usageError;
|
|
14
|
+
readonly errorType = DriverErrorTypes.usageError;
|
|
17
15
|
readonly canRetry = false;
|
|
18
16
|
|
|
19
17
|
constructor(message: string) {
|
package/src/index.ts
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
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";
|
|
6
|
+
export { buildSnapshotTree } from "./buildSnapshotTree.js";
|
|
7
|
+
export { BlobTreeEntry, TreeTreeEntry, AttachmentTreeEntry } from "./blob.js";
|
|
8
|
+
export { DocumentStorageServiceProxy } from "./documentStorageServiceProxy.js";
|
|
9
|
+
export { UsageError } from "./error.js";
|
|
10
|
+
export { InsecureUrlResolver } from "./insecureUrlResolver.js";
|
|
11
|
+
export { canBeCoalescedByService, isRuntimeMessage, MessageType2 } from "./messageRecognition.js";
|
|
12
12
|
export {
|
|
13
13
|
AuthorizationError,
|
|
14
14
|
canRetryOnError,
|
|
@@ -27,8 +27,8 @@ export {
|
|
|
27
27
|
OnlineStatus,
|
|
28
28
|
RetryableError,
|
|
29
29
|
ThrottlingError,
|
|
30
|
-
} from "./network";
|
|
31
|
-
export { logNetworkFailure } from "./networkUtils";
|
|
30
|
+
} from "./network.js";
|
|
31
|
+
export { logNetworkFailure } from "./networkUtils.js";
|
|
32
32
|
export {
|
|
33
33
|
emptyMessageStream,
|
|
34
34
|
ParallelRequests,
|
|
@@ -36,21 +36,22 @@ export {
|
|
|
36
36
|
requestOps,
|
|
37
37
|
streamFromMessages,
|
|
38
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";
|
|
39
|
+
} from "./parallelRequests.js";
|
|
40
|
+
export { PrefetchDocumentStorageService } from "./prefetchDocumentStorageService.js";
|
|
41
|
+
export { RateLimiter } from "./rateLimiter.js";
|
|
42
|
+
export { readAndParse } from "./readAndParse.js";
|
|
43
|
+
export { calculateMaxWaitTime, IProgress, runWithRetry } from "./runWithRetry.js";
|
|
44
44
|
export {
|
|
45
45
|
CombinedAppAndProtocolSummary,
|
|
46
46
|
getDocAttributesFromProtocolSummary,
|
|
47
47
|
getQuorumValuesFromProtocolSummary,
|
|
48
48
|
isCombinedAppAndProtocolSummary,
|
|
49
|
-
} from "./summaryForCreateNew";
|
|
50
|
-
export { convertSummaryTreeToSnapshotITree } from "./treeConversions";
|
|
49
|
+
} from "./summaryForCreateNew.js";
|
|
50
|
+
export { convertSummaryTreeToSnapshotITree } from "./treeConversions.js";
|
|
51
51
|
export {
|
|
52
52
|
applyStorageCompression,
|
|
53
53
|
ICompressionStorageConfig,
|
|
54
54
|
SummaryCompressionAlgorithm,
|
|
55
55
|
blobHeadersBlobName,
|
|
56
|
-
} from "./adapters";
|
|
56
|
+
} from "./adapters/index.js";
|
|
57
|
+
export { isInstanceOfISnapshot } from "./storageUtils.js";
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { parse } from "url";
|
|
7
6
|
import { assert } from "@fluidframework/core-utils";
|
|
8
7
|
import { IRequest } from "@fluidframework/core-interfaces";
|
|
9
8
|
import { IResolvedUrl, IUrlResolver, DriverHeader } from "@fluidframework/driver-definitions";
|
|
@@ -17,7 +16,7 @@ import Axios from "axios";
|
|
|
17
16
|
* http://localhost:8080/<documentId>/<path>.
|
|
18
17
|
*
|
|
19
18
|
* We then need to map that to a Fluid based URL. These are of the form
|
|
20
|
-
*
|
|
19
|
+
* https://orderingUrl/<tenantId>/<documentId>/<path>.
|
|
21
20
|
*
|
|
22
21
|
* The tenantId/documentId pair defines the 'full' document ID the service makes use of. The path is then an optional
|
|
23
22
|
* part of the URL that the document interprets and maps to a data store. It's exactly similar to how a web service
|
|
@@ -31,6 +30,7 @@ export class InsecureUrlResolver implements IUrlResolver {
|
|
|
31
30
|
private readonly hostUrl: string,
|
|
32
31
|
private readonly ordererUrl: string,
|
|
33
32
|
private readonly storageUrl: string,
|
|
33
|
+
private readonly deltaStreamUrl: string,
|
|
34
34
|
private readonly tenantId: string,
|
|
35
35
|
private readonly bearer: string,
|
|
36
36
|
private readonly isForNodeTest: boolean = false,
|
|
@@ -66,7 +66,7 @@ export class InsecureUrlResolver implements IUrlResolver {
|
|
|
66
66
|
Authorization: `Bearer ${this.bearer}`,
|
|
67
67
|
};
|
|
68
68
|
const resolvedP = Axios.post<IResolvedUrl>(
|
|
69
|
-
`${this.hostUrl}/
|
|
69
|
+
`${this.hostUrl}/apis/load`,
|
|
70
70
|
{
|
|
71
71
|
url: request.url,
|
|
72
72
|
},
|
|
@@ -97,6 +97,7 @@ export class InsecureUrlResolver implements IUrlResolver {
|
|
|
97
97
|
const createNewResponse: IResolvedUrl = {
|
|
98
98
|
endpoints: {
|
|
99
99
|
deltaStorageUrl: `${this.ordererUrl}/deltas/${encodedTenantId}/new`,
|
|
100
|
+
deltaStreamUrl: this.deltaStreamUrl,
|
|
100
101
|
ordererUrl: this.ordererUrl,
|
|
101
102
|
storageUrl: `${this.storageUrl}/repos/${encodedTenantId}`,
|
|
102
103
|
},
|
|
@@ -104,7 +105,7 @@ export class InsecureUrlResolver implements IUrlResolver {
|
|
|
104
105
|
id: "",
|
|
105
106
|
tokens: {},
|
|
106
107
|
type: "fluid",
|
|
107
|
-
url: `
|
|
108
|
+
url: `https://${host}/${encodedTenantId}/new`,
|
|
108
109
|
};
|
|
109
110
|
return createNewResponse;
|
|
110
111
|
}
|
|
@@ -113,7 +114,7 @@ export class InsecureUrlResolver implements IUrlResolver {
|
|
|
113
114
|
!documentRelativePath || documentRelativePath.startsWith("/")
|
|
114
115
|
? documentRelativePath
|
|
115
116
|
: `/${documentRelativePath}`;
|
|
116
|
-
const documentUrl = `
|
|
117
|
+
const documentUrl = `https://${host}/${encodedTenantId}/${encodedDocId}${relativePath}${queryParams}`;
|
|
117
118
|
|
|
118
119
|
const deltaStorageUrl = `${this.ordererUrl}/deltas/${encodedTenantId}/${encodedDocId}`;
|
|
119
120
|
const storageUrl = `${this.storageUrl}/repos/${encodedTenantId}`;
|
|
@@ -121,6 +122,7 @@ export class InsecureUrlResolver implements IUrlResolver {
|
|
|
121
122
|
const response: IResolvedUrl = {
|
|
122
123
|
endpoints: {
|
|
123
124
|
deltaStorageUrl,
|
|
125
|
+
deltaStreamUrl: this.deltaStreamUrl,
|
|
124
126
|
ordererUrl: this.ordererUrl,
|
|
125
127
|
storageUrl,
|
|
126
128
|
},
|
|
@@ -133,7 +135,7 @@ export class InsecureUrlResolver implements IUrlResolver {
|
|
|
133
135
|
}
|
|
134
136
|
|
|
135
137
|
public async getAbsoluteUrl(resolvedUrl: IResolvedUrl, relativeUrl: string): Promise<string> {
|
|
136
|
-
const parsedUrl =
|
|
138
|
+
const parsedUrl = new URL(resolvedUrl.url);
|
|
137
139
|
const [, , documentId] = parsedUrl.pathname?.split("/") ?? [];
|
|
138
140
|
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
139
141
|
assert(!!documentId, 0x273 /* "Invalid document id from parsed URL" */);
|
package/src/network.ts
CHANGED
|
@@ -7,13 +7,11 @@ import {
|
|
|
7
7
|
IThrottlingWarning,
|
|
8
8
|
IDriverErrorBase,
|
|
9
9
|
IAuthorizationError,
|
|
10
|
-
// eslint-disable-next-line import/no-deprecated
|
|
11
|
-
DriverErrorType,
|
|
12
10
|
ILocationRedirectionError,
|
|
13
11
|
IResolvedUrl,
|
|
14
12
|
DriverErrorTypes,
|
|
15
13
|
} from "@fluidframework/driver-definitions";
|
|
16
|
-
import {
|
|
14
|
+
import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
17
15
|
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
|
|
18
16
|
|
|
19
17
|
/**
|
|
@@ -46,7 +44,7 @@ export function isOnline(): OnlineStatus {
|
|
|
46
44
|
* Telemetry props with driver-specific required properties
|
|
47
45
|
* @internal
|
|
48
46
|
*/
|
|
49
|
-
export type DriverErrorTelemetryProps =
|
|
47
|
+
export type DriverErrorTelemetryProps = ITelemetryBaseProperties & {
|
|
50
48
|
driverVersion: string | undefined;
|
|
51
49
|
};
|
|
52
50
|
|
|
@@ -55,8 +53,10 @@ export type DriverErrorTelemetryProps = ITelemetryProperties & {
|
|
|
55
53
|
* @internal
|
|
56
54
|
*/
|
|
57
55
|
export class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
/**
|
|
57
|
+
* {@inheritDoc @fluidframework/telemetry-utils#IFluidErrorBase.errorType}
|
|
58
|
+
*/
|
|
59
|
+
readonly errorType = DriverErrorTypes.genericNetworkError;
|
|
60
60
|
|
|
61
61
|
constructor(
|
|
62
62
|
message: string,
|
|
@@ -75,8 +75,7 @@ export class FluidInvalidSchemaError
|
|
|
75
75
|
extends LoggingError
|
|
76
76
|
implements IDriverErrorBase, IFluidErrorBase
|
|
77
77
|
{
|
|
78
|
-
|
|
79
|
-
readonly errorType = DriverErrorType.fluidInvalidSchema;
|
|
78
|
+
readonly errorType = DriverErrorTypes.fluidInvalidSchema;
|
|
80
79
|
readonly canRetry = false;
|
|
81
80
|
|
|
82
81
|
constructor(message: string, props: DriverErrorTelemetryProps) {
|
|
@@ -91,8 +90,7 @@ export class DeltaStreamConnectionForbiddenError
|
|
|
91
90
|
extends LoggingError
|
|
92
91
|
implements IDriverErrorBase, IFluidErrorBase
|
|
93
92
|
{
|
|
94
|
-
|
|
95
|
-
static readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;
|
|
93
|
+
static readonly errorType = DriverErrorTypes.deltaStreamConnectionForbidden;
|
|
96
94
|
readonly errorType = DeltaStreamConnectionForbiddenError.errorType;
|
|
97
95
|
readonly canRetry = false;
|
|
98
96
|
readonly storageOnlyReason: string | undefined;
|
|
@@ -110,8 +108,7 @@ export class AuthorizationError
|
|
|
110
108
|
extends LoggingError
|
|
111
109
|
implements IAuthorizationError, IFluidErrorBase
|
|
112
110
|
{
|
|
113
|
-
|
|
114
|
-
readonly errorType = DriverErrorType.authorizationError;
|
|
111
|
+
readonly errorType = DriverErrorTypes.authorizationError;
|
|
115
112
|
readonly canRetry = false;
|
|
116
113
|
|
|
117
114
|
constructor(
|
|
@@ -132,8 +129,7 @@ export class LocationRedirectionError
|
|
|
132
129
|
extends LoggingError
|
|
133
130
|
implements ILocationRedirectionError, IFluidErrorBase
|
|
134
131
|
{
|
|
135
|
-
|
|
136
|
-
readonly errorType = DriverErrorType.locationRedirection;
|
|
132
|
+
readonly errorType = DriverErrorTypes.locationRedirection;
|
|
137
133
|
readonly canRetry = false;
|
|
138
134
|
|
|
139
135
|
constructor(
|
|
@@ -191,8 +187,7 @@ export class RetryableError<T extends string> extends NetworkErrorBasic<T> {
|
|
|
191
187
|
* @internal
|
|
192
188
|
*/
|
|
193
189
|
export class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {
|
|
194
|
-
|
|
195
|
-
readonly errorType = DriverErrorType.throttlingError;
|
|
190
|
+
readonly errorType = DriverErrorTypes.throttlingError;
|
|
196
191
|
readonly canRetry = true;
|
|
197
192
|
|
|
198
193
|
constructor(
|
package/src/networkUtils.ts
CHANGED
|
@@ -3,16 +3,15 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { isOnline, OnlineStatus, canRetryOnError } from "./network";
|
|
6
|
+
import { ITelemetryLoggerExt, type ITelemetryErrorEventExt } from "@fluidframework/telemetry-utils";
|
|
7
|
+
import { isOnline, OnlineStatus, canRetryOnError } from "./network.js";
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* @internal
|
|
12
11
|
*/
|
|
13
12
|
export function logNetworkFailure(
|
|
14
13
|
logger: ITelemetryLoggerExt,
|
|
15
|
-
event:
|
|
14
|
+
event: ITelemetryErrorEventExt,
|
|
16
15
|
error?: any,
|
|
17
16
|
) {
|
|
18
17
|
const newEvent = { ...event };
|
package/src/packageVersion.ts
CHANGED
package/src/parallelRequests.ts
CHANGED
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { performance } from "@fluid-internal/client-utils";
|
|
6
|
-
import {
|
|
6
|
+
import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
7
7
|
import { assert, Deferred } from "@fluidframework/core-utils";
|
|
8
8
|
import { ITelemetryLoggerExt, PerformanceEvent } from "@fluidframework/telemetry-utils";
|
|
9
9
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
10
10
|
import { IDeltasFetchResult, IStream, IStreamResult } from "@fluidframework/driver-definitions";
|
|
11
|
-
import { getRetryDelayFromError, canRetryOnError, createGenericNetworkError } from "./network";
|
|
12
|
-
import { logNetworkFailure } from "./networkUtils";
|
|
11
|
+
import { getRetryDelayFromError, canRetryOnError, createGenericNetworkError } from "./network.js";
|
|
12
|
+
import { logNetworkFailure } from "./networkUtils.js";
|
|
13
13
|
// For now, this package is versioned and released in unison with the specific drivers
|
|
14
|
-
import { pkgVersion as driverVersion } from "./packageVersion";
|
|
15
|
-
import { calculateMaxWaitTime } from "./runWithRetry";
|
|
14
|
+
import { pkgVersion as driverVersion } from "./packageVersion.js";
|
|
15
|
+
import { calculateMaxWaitTime } from "./runWithRetry.js";
|
|
16
16
|
|
|
17
17
|
// We double this value in first try in when we calculate time to wait for in "calculateMaxWaitTime" function.
|
|
18
18
|
const MissingFetchDelayInMs = 50;
|
|
@@ -59,7 +59,7 @@ export class ParallelRequests<T> {
|
|
|
59
59
|
from: number,
|
|
60
60
|
to: number,
|
|
61
61
|
strongTo: boolean,
|
|
62
|
-
props:
|
|
62
|
+
props: ITelemetryBaseProperties,
|
|
63
63
|
) => Promise<{ partial: boolean; cancel: boolean; payload: T[] }>,
|
|
64
64
|
private readonly responseCallback: (payload: T[]) => void,
|
|
65
65
|
) {
|
|
@@ -411,8 +411,8 @@ const waitForOnline = async (): Promise<void> => {
|
|
|
411
411
|
* @returns An object with resulting ops and cancellation / partial result flags
|
|
412
412
|
*/
|
|
413
413
|
async function getSingleOpBatch(
|
|
414
|
-
get: (telemetryProps:
|
|
415
|
-
props:
|
|
414
|
+
get: (telemetryProps: ITelemetryBaseProperties) => Promise<IDeltasFetchResult>,
|
|
415
|
+
props: ITelemetryBaseProperties,
|
|
416
416
|
strongTo: boolean,
|
|
417
417
|
logger: ITelemetryLoggerExt,
|
|
418
418
|
signal?: AbortSignal,
|
|
@@ -539,7 +539,7 @@ export function requestOps(
|
|
|
539
539
|
get: (
|
|
540
540
|
from: number,
|
|
541
541
|
to: number,
|
|
542
|
-
telemetryProps:
|
|
542
|
+
telemetryProps: ITelemetryBaseProperties,
|
|
543
543
|
) => Promise<IDeltasFetchResult>,
|
|
544
544
|
concurrency: number,
|
|
545
545
|
fromTotal: number,
|
|
@@ -554,7 +554,7 @@ export function requestOps(
|
|
|
554
554
|
let length = 0;
|
|
555
555
|
const queue = new Queue<ISequencedDocumentMessage[]>();
|
|
556
556
|
|
|
557
|
-
const propsTotal:
|
|
557
|
+
const propsTotal: ITelemetryBaseProperties = {
|
|
558
558
|
fromTotal,
|
|
559
559
|
toTotal,
|
|
560
560
|
};
|
|
@@ -575,7 +575,7 @@ export function requestOps(
|
|
|
575
575
|
from: number,
|
|
576
576
|
to: number,
|
|
577
577
|
strongTo: boolean,
|
|
578
|
-
propsPerRequest:
|
|
578
|
+
propsPerRequest: ITelemetryBaseProperties,
|
|
579
579
|
) => {
|
|
580
580
|
requests++;
|
|
581
581
|
return getSingleOpBatch(
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { LoaderCachingPolicy } from "@fluidframework/driver-definitions";
|
|
6
6
|
import { ISnapshotTree, IVersion } from "@fluidframework/protocol-definitions";
|
|
7
|
-
import { DocumentStorageServiceProxy } from "./documentStorageServiceProxy";
|
|
8
|
-
import { canRetryOnError } from "./network";
|
|
7
|
+
import { DocumentStorageServiceProxy } from "./documentStorageServiceProxy.js";
|
|
8
|
+
import { canRetryOnError } from "./network.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @internal
|
package/src/runWithRetry.ts
CHANGED
|
@@ -7,8 +7,8 @@ import { ITelemetryLoggerExt, isFluidError } from "@fluidframework/telemetry-uti
|
|
|
7
7
|
import { performance } from "@fluid-internal/client-utils";
|
|
8
8
|
import { delay } from "@fluidframework/core-utils";
|
|
9
9
|
import { DriverErrorTypes } from "@fluidframework/driver-definitions";
|
|
10
|
-
import { canRetryOnError, getRetryDelayFromError, NonRetryableError } from "./network";
|
|
11
|
-
import { pkgVersion } from "./packageVersion";
|
|
10
|
+
import { canRetryOnError, getRetryDelayFromError, NonRetryableError } from "./network.js";
|
|
11
|
+
import { pkgVersion } from "./packageVersion.js";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Interface describing an object passed to various network APIs.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { ISnapshot } from "@fluidframework/driver-definitions";
|
|
7
|
+
import { ISnapshotTree } from "@fluidframework/protocol-definitions";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Utility API to check if the type of snapshot contents is `ISnapshot`.
|
|
11
|
+
* @internal
|
|
12
|
+
* @param obj - obj whose type needs to be identified.
|
|
13
|
+
*/
|
|
14
|
+
export function isInstanceOfISnapshot(
|
|
15
|
+
obj: ISnapshotTree | ISnapshot | undefined,
|
|
16
|
+
): obj is ISnapshot {
|
|
17
|
+
return obj !== undefined && "snapshotFormatV" in obj && obj.snapshotFormatV === 1;
|
|
18
|
+
}
|
package/src/treeConversions.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
import { Uint8ArrayToString } from "@fluid-internal/client-utils";
|
|
7
7
|
import { unreachableCase } from "@fluidframework/core-utils";
|
|
8
8
|
import { ISummaryTree, ITree, ITreeEntry, SummaryType } from "@fluidframework/protocol-definitions";
|
|
9
|
-
import { AttachmentTreeEntry, BlobTreeEntry, TreeTreeEntry } from "./blob";
|
|
10
|
-
import { isCombinedAppAndProtocolSummary } from "./summaryForCreateNew";
|
|
9
|
+
import { AttachmentTreeEntry, BlobTreeEntry, TreeTreeEntry } from "./blob.js";
|
|
10
|
+
import { isCombinedAppAndProtocolSummary } from "./summaryForCreateNew.js";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Converts ISummaryTree to ITree format.
|
|
@@ -61,5 +61,6 @@ export function convertSummaryTreeToSnapshotITree(summaryTree: ISummaryTree): IT
|
|
|
61
61
|
return {
|
|
62
62
|
entries,
|
|
63
63
|
unreferenced: summaryTree.unreferenced,
|
|
64
|
+
groupId: summaryTree.groupId,
|
|
64
65
|
};
|
|
65
66
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends":
|
|
3
|
-
"../../../common/build/build-common/tsconfig.base.json",
|
|
4
|
-
"../../../common/build/build-common/tsconfig.cjs.json",
|
|
5
|
-
],
|
|
2
|
+
"extends": "../../../common/build/build-common/tsconfig.node16.json",
|
|
6
3
|
"include": ["src/**/*"],
|
|
7
4
|
"exclude": ["src/test/**/*"],
|
|
8
5
|
"compilerOptions": {
|
|
9
6
|
"rootDir": "./src",
|
|
10
|
-
"outDir": "./
|
|
7
|
+
"outDir": "./lib",
|
|
11
8
|
},
|
|
12
9
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compressionTypes.d.mts","sourceRoot":"","sources":["../../../src/adapters/compression/compressionTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,oBAAY,2BAA2B;IACtC,IAAI,IAAI;IACR,GAAG,IAAI;CACP;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC,SAAS,EAAE,2BAA2B,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,+BAA+B;;;CAG3C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compressionTypes.mjs","sourceRoot":"","sources":["../../../src/adapters/compression/compressionTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACtC,6EAAQ,CAAA;IACR,2EAAO,CAAA;AACR,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC;AAUD,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC9C,SAAS,EAAE,2BAA2B,CAAC,GAAG;IAC1C,iBAAiB,EAAE,GAAG;CACtB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * @public\n */\nexport enum SummaryCompressionAlgorithm {\n\tNone = 0,\n\tLZ4 = 1,\n}\n\n/**\n * @public\n */\nexport interface ICompressionStorageConfig {\n\talgorithm: SummaryCompressionAlgorithm;\n\tminSizeToCompress: number;\n}\n\nexport const DefaultCompressionStorageConfig = {\n\talgorithm: SummaryCompressionAlgorithm.LZ4,\n\tminSizeToCompress: 500,\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documentServiceCompressionAdapter.d.mts","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC;OACvF,EAAE,oBAAoB,EAAE;OAExB,EAAE,yBAAyB,EAAE;AAEpC,qBAAa,iCAAkC,SAAQ,oBAAoB;IAGzE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADxB,OAAO,EAAE,gBAAgB,EACR,OAAO,EAAE,yBAAyB;IAKvC,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC;CASjE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documentServiceCompressionAdapter.mjs","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAE,oBAAoB,EAAE;OACxB,EAAE,wCAAwC,IAAI,mDAAmD,EAAE;AAG1G,MAAM,OAAO,iCAAkC,SAAQ,oBAAoB;IAC1E,YACC,OAAyB,EACR,OAAkC;QAEnD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFE,YAAO,GAAP,OAAO,CAA2B;IAGpD,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC5B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,mDAAmD,CACtE,OAAO,EACP,IAAI,CAAC,OAAO,CACZ,CAAC;QACF,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDocumentService, IDocumentStorageService } from \"@fluidframework/driver-definitions\";\nimport { DocumentServiceProxy } from \"../../documentServiceProxy\";\nimport { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from \"./summaryblob\";\nimport { ICompressionStorageConfig } from \"./compressionTypes\";\n\nexport class DocumentServiceCompressionAdapter extends DocumentServiceProxy {\n\tconstructor(\n\t\tservice: IDocumentService,\n\t\tprivate readonly _config: ICompressionStorageConfig,\n\t) {\n\t\tsuper(service);\n\t}\n\n\tpublic async connectToStorage(): Promise<IDocumentStorageService> {\n\t\tconst storage = await super.connectToStorage();\n\t\tconst wrapped = new DocumentStorageServiceSummaryBlobCompressionAdapter(\n\t\t\tstorage,\n\t\t\tthis._config,\n\t\t);\n\t\tawait wrapped.getSnapshotTree();\n\t\treturn wrapped;\n\t}\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documentServiceFactoryCompressionAdapter.d.mts","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceFactoryCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EAAE,oBAAoB,EAAE,MAAM,iCAAiC;OAC/D,EACN,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,MAAM,oCAAoC;OACpC,EAAE,YAAY,EAAE,MAAM,sCAAsC;OAC5D,EAAE,2BAA2B,EAAE;OAC/B,EAAE,yBAAyB,EAAE;AAIpC,qBAAa,wCAAyC,SAAQ,2BAA2B;IAGvF,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADxB,cAAc,EAAE,uBAAuB,EACtB,OAAO,EAAE,yBAAyB;IAKvC,eAAe,CAC3B,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,oBAAoB,EAAE,YAAY,EAClC,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAmBf,qBAAqB,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAIxF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documentServiceFactoryCompressionAdapter.mjs","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceFactoryCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;OASI,EAAE,2BAA2B,EAAE;OAE/B,EAAE,wCAAwC,IAAI,mDAAmD,EAAE;OACnG,EAAE,iCAAiC,EAAE;AAE5C,MAAM,OAAO,wCAAyC,SAAQ,2BAA2B;IACxF,YACC,cAAuC,EACtB,OAAkC;QAEnD,KAAK,CAAC,cAAc,CAAC,CAAC;QAFL,YAAO,GAAP,OAAO,CAA2B;IAGpD,CAAC;IAEM,KAAK,CAAC,eAAe,CAC3B,gBAA0C,EAC1C,oBAAkC,EAClC,MAA6B,EAC7B,kBAA4B;QAE5B,IAAI,gBAAgB,KAAK,SAAS,EAAE;YACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;YACtC,MAAM,YAAY,GACjB,mDAAmD,CAAC,eAAe,CAClE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAiB,EAC7C,gBAAgB,CAChB,CAAC;YACH,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;SAC7C;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CACxD,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,EACN,kBAAkB,CAClB,CAAC;QACF,OAAO,IAAI,iCAAiC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,WAAyB;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC7E,OAAO,IAAI,iCAAiC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport {\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIResolvedUrl,\n} from \"@fluidframework/driver-definitions\";\nimport { ISummaryTree } from \"@fluidframework/protocol-definitions\";\nimport { DocumentServiceFactoryProxy } from \"../../documentServiceFactoryProxy\";\nimport { ICompressionStorageConfig } from \"./compressionTypes\";\nimport { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from \"./summaryblob\";\nimport { DocumentServiceCompressionAdapter } from \"./documentServiceCompressionAdapter\";\n\nexport class DocumentServiceFactoryCompressionAdapter extends DocumentServiceFactoryProxy {\n\tconstructor(\n\t\tserviceFactory: IDocumentServiceFactory,\n\t\tprivate readonly _config: ICompressionStorageConfig,\n\t) {\n\t\tsuper(serviceFactory);\n\t}\n\n\tpublic async createContainer(\n\t\tcreateNewSummary: ISummaryTree | undefined,\n\t\tcreateNewResolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\tif (createNewSummary !== undefined) {\n\t\t\tconst configForInitial = this._config;\n\t\t\tconst newAppSumary =\n\t\t\t\tDocumentStorageServiceSummaryBlobCompressionAdapter.compressSummary(\n\t\t\t\t\tcreateNewSummary.tree[\".app\"] as ISummaryTree,\n\t\t\t\t\tconfigForInitial,\n\t\t\t\t);\n\t\t\tcreateNewSummary.tree[\".app\"] = newAppSumary;\n\t\t}\n\t\tconst service = await this.serviceFactory.createContainer(\n\t\t\tcreateNewSummary,\n\t\t\tcreateNewResolvedUrl,\n\t\t\tlogger,\n\t\t\tclientIsSummarizer,\n\t\t);\n\t\treturn new DocumentServiceCompressionAdapter(service, this._config);\n\t}\n\n\tpublic async createDocumentService(resolvedUrl: IResolvedUrl): Promise<IDocumentService> {\n\t\tconst service = await this.serviceFactory.createDocumentService(resolvedUrl);\n\t\treturn new DocumentServiceCompressionAdapter(service, this._config);\n\t}\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/adapters/compression/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EACN,2BAA2B,EAC3B,yBAAyB,EACzB,+BAA+B,GAC/B;OACM,EAAE,wCAAwC,EAAE;OAC5C,EAAE,mBAAmB,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/adapters/compression/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAEI,EACN,2BAA2B,EAE3B,+BAA+B,GAC/B;OACM,EAAE,wCAAwC,EAAE;OAC5C,EAAE,mBAAmB,EAAE","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport {\n\tSummaryCompressionAlgorithm,\n\tICompressionStorageConfig,\n\tDefaultCompressionStorageConfig,\n} from \"./compressionTypes\";\nexport { DocumentServiceFactoryCompressionAdapter } from \"./documentServiceFactoryCompressionAdapter\";\nexport { blobHeadersBlobName } from \"./summaryblob\";\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documentStorageServiceSummaryBlobCompressionAdapter.d.mts","sourceRoot":"","sources":["../../../../src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAII,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,oCAAoC;OACtF,EACN,aAAa,EAEb,cAAc,EACd,YAAY,EACZ,QAAQ,EAGR,MAAM,sCAAsC;OAEtC,EAAE,2BAA2B,EAAE;OAC/B,EAAE,yBAAyB,EAA+B;AAEjE;;GAEG;AACH,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAG3D;;;;;;;;;;;GAWG;AACH,qBAAa,wCAAyC,SAAQ,2BAA2B;IAKvF,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJzB,OAAO,CAAC,qBAAqB,CAAkB;gBAG9C,OAAO,EAAE,uBAAuB,EACf,OAAO,EAAE,yBAAyB;IAKpD,IAAW,OAAO,IAAI,uBAAuB,CAE5C;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAMxB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAOpC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmBnC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAK5C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAoBjC;IAEF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAgBjC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAwBzB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAqBzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAoCjC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAkBxC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAOpC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IASnC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAsBnC;;;;;OAKG;WACW,eAAe,CAC5B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,yBAAyB,GAC/B,YAAY;IAaf;;;;OAIG;IACmB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAYpE;;;;;;;OAOG;IACmB,eAAe,CACpC,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,EAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAE/B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAShC;;;;;OAKG;IACmB,wBAAwB,CAC7C,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC;IAQlB;;;;OAIG;IACmB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;CAYhF"}
|