@fluidframework/driver-utils 2.0.0-dev-rc.2.0.0.246488 → 2.0.0-dev-rc.3.0.0.253463
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/api-report/driver-utils.api.md +18 -18
- package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts +1 -1
- package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts.map +1 -1
- package/dist/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts +1 -1
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -1
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js +1 -1
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.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 +7 -7
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.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 +2 -2
- package/dist/adapters/predefinedAdapters.js.map +1 -1
- package/dist/blob.d.ts +1 -1
- package/dist/blob.d.ts.map +1 -1
- package/dist/blob.js.map +1 -1
- package/dist/buildSnapshotTree.d.ts.map +1 -1
- package/dist/buildSnapshotTree.js +3 -3
- package/dist/buildSnapshotTree.js.map +1 -1
- package/dist/documentServiceFactoryProxy.d.ts +1 -1
- package/dist/documentServiceFactoryProxy.d.ts.map +1 -1
- package/dist/documentServiceFactoryProxy.js.map +1 -1
- package/dist/documentServiceProxy.d.ts +1 -1
- package/dist/documentServiceProxy.d.ts.map +1 -1
- package/dist/documentServiceProxy.js.map +1 -1
- package/dist/documentStorageServiceProxy.d.ts +1 -1
- package/dist/documentStorageServiceProxy.d.ts.map +1 -1
- package/dist/documentStorageServiceProxy.js +2 -2
- package/dist/documentStorageServiceProxy.js.map +1 -1
- package/dist/driver-utils-alpha.d.ts +18 -18
- package/dist/driver-utils-beta.d.ts +18 -18
- package/dist/driver-utils-public.d.ts +18 -18
- package/dist/driver-utils-untrimmed.d.ts +18 -18
- package/dist/error.d.ts +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +2 -2
- package/dist/error.js.map +1 -1
- package/dist/insecureUrlResolver.d.ts +1 -1
- package/dist/insecureUrlResolver.d.ts.map +1 -1
- package/dist/insecureUrlResolver.js +5 -5
- package/dist/insecureUrlResolver.js.map +1 -1
- package/dist/network.d.ts +3 -2
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +8 -8
- package/dist/network.js.map +1 -1
- package/dist/networkUtils.d.ts +1 -1
- package/dist/networkUtils.d.ts.map +1 -1
- package/dist/networkUtils.js.map +1 -1
- 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 +2 -2
- package/dist/parallelRequests.d.ts.map +1 -1
- package/dist/parallelRequests.js +29 -29
- 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 +2 -2
- package/dist/prefetchDocumentStorageService.js.map +1 -1
- package/dist/rateLimiter.js +2 -2
- package/dist/rateLimiter.js.map +1 -1
- package/dist/readAndParse.d.ts +1 -1
- package/dist/readAndParse.d.ts.map +1 -1
- package/dist/readAndParse.js.map +1 -1
- package/dist/runWithRetry.d.ts.map +1 -1
- package/dist/runWithRetry.js +4 -4
- package/dist/runWithRetry.js.map +1 -1
- package/dist/storageUtils.d.ts +1 -1
- package/dist/storageUtils.d.ts.map +1 -1
- package/dist/storageUtils.js.map +1 -1
- package/dist/summaryForCreateNew.d.ts +1 -1
- package/dist/summaryForCreateNew.d.ts.map +1 -1
- package/dist/summaryForCreateNew.js.map +1 -1
- package/dist/treeConversions.d.ts.map +1 -1
- package/dist/treeConversions.js +2 -2
- package/dist/treeConversions.js.map +1 -1
- package/lib/adapters/compression/documentServiceCompressionAdapter.d.ts +1 -1
- package/lib/adapters/compression/documentServiceCompressionAdapter.d.ts.map +1 -1
- package/lib/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts +1 -1
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -1
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js +1 -1
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +2 -2
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts.map +1 -1
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +2 -2
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
- package/lib/adapters/predefinedAdapters.d.ts +1 -1
- package/lib/adapters/predefinedAdapters.d.ts.map +1 -1
- package/lib/adapters/predefinedAdapters.js +2 -2
- package/lib/adapters/predefinedAdapters.js.map +1 -1
- package/lib/blob.d.ts +1 -1
- package/lib/blob.d.ts.map +1 -1
- package/lib/blob.js.map +1 -1
- package/lib/buildSnapshotTree.d.ts.map +1 -1
- package/lib/buildSnapshotTree.js +2 -2
- package/lib/buildSnapshotTree.js.map +1 -1
- package/lib/documentServiceFactoryProxy.d.ts +1 -1
- package/lib/documentServiceFactoryProxy.d.ts.map +1 -1
- package/lib/documentServiceFactoryProxy.js.map +1 -1
- package/lib/documentServiceProxy.d.ts +1 -1
- package/lib/documentServiceProxy.d.ts.map +1 -1
- package/lib/documentServiceProxy.js.map +1 -1
- package/lib/documentStorageServiceProxy.d.ts +1 -1
- package/lib/documentStorageServiceProxy.d.ts.map +1 -1
- package/lib/documentStorageServiceProxy.js +1 -1
- package/lib/documentStorageServiceProxy.js.map +1 -1
- package/lib/driver-utils-alpha.d.ts +18 -18
- package/lib/driver-utils-beta.d.ts +18 -18
- package/lib/driver-utils-public.d.ts +18 -18
- package/lib/driver-utils-untrimmed.d.ts +18 -18
- package/lib/error.d.ts +1 -1
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +1 -1
- package/lib/error.js.map +1 -1
- package/lib/insecureUrlResolver.d.ts +1 -1
- package/lib/insecureUrlResolver.d.ts.map +1 -1
- package/lib/insecureUrlResolver.js +2 -2
- package/lib/insecureUrlResolver.js.map +1 -1
- package/lib/network.d.ts +3 -2
- package/lib/network.d.ts.map +1 -1
- package/lib/network.js +2 -2
- package/lib/network.js.map +1 -1
- package/lib/networkUtils.d.ts +1 -1
- package/lib/networkUtils.d.ts.map +1 -1
- package/lib/networkUtils.js +1 -1
- package/lib/networkUtils.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/parallelRequests.d.ts +2 -2
- package/lib/parallelRequests.d.ts.map +1 -1
- package/lib/parallelRequests.js +3 -3
- package/lib/parallelRequests.js.map +1 -1
- package/lib/prefetchDocumentStorageService.d.ts +1 -1
- package/lib/prefetchDocumentStorageService.d.ts.map +1 -1
- package/lib/prefetchDocumentStorageService.js +1 -1
- package/lib/prefetchDocumentStorageService.js.map +1 -1
- package/lib/rateLimiter.js +1 -1
- package/lib/rateLimiter.js.map +1 -1
- package/lib/readAndParse.d.ts +1 -1
- package/lib/readAndParse.d.ts.map +1 -1
- package/lib/readAndParse.js.map +1 -1
- package/lib/runWithRetry.d.ts.map +1 -1
- package/lib/runWithRetry.js +3 -3
- package/lib/runWithRetry.js.map +1 -1
- package/lib/storageUtils.d.ts +1 -1
- package/lib/storageUtils.d.ts.map +1 -1
- package/lib/storageUtils.js.map +1 -1
- package/lib/summaryForCreateNew.d.ts +1 -1
- package/lib/summaryForCreateNew.d.ts.map +1 -1
- package/lib/summaryForCreateNew.js.map +1 -1
- package/lib/treeConversions.d.ts.map +1 -1
- package/lib/treeConversions.js +1 -1
- package/lib/treeConversions.js.map +1 -1
- package/lib/tsdoc-metadata.json +11 -0
- package/package.json +14 -23
- package/src/adapters/compression/documentServiceCompressionAdapter.ts +7 -2
- package/src/adapters/compression/documentServiceFactoryCompressionAdapter.ts +4 -2
- package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts +7 -3
- package/src/adapters/predefinedAdapters.ts +4 -3
- package/src/blob.ts +1 -1
- package/src/buildSnapshotTree.ts +2 -2
- package/src/documentServiceFactoryProxy.ts +1 -1
- package/src/documentServiceProxy.ts +1 -1
- package/src/documentStorageServiceProxy.ts +2 -2
- package/src/error.ts +1 -1
- package/src/insecureUrlResolver.ts +6 -2
- package/src/network.ts +5 -6
- package/src/networkUtils.ts +3 -2
- package/src/packageVersion.ts +1 -1
- package/src/parallelRequests.ts +10 -4
- package/src/prefetchDocumentStorageService.ts +2 -1
- package/src/rateLimiter.ts +1 -1
- package/src/readAndParse.ts +1 -1
- package/src/runWithRetry.ts +5 -3
- package/src/storageUtils.ts +1 -1
- package/src/summaryForCreateNew.ts +3 -3
- package/src/treeConversions.ts +2 -1
- package/lib/test/insecureUrlResolverTest.spec.js +0 -101
- package/lib/test/insecureUrlResolverTest.spec.js.map +0 -1
- package/lib/test/parallelRequests.spec.js +0 -186
- package/lib/test/parallelRequests.spec.js.map +0 -1
- package/lib/test/rateLimiter.spec.js +0 -85
- package/lib/test/rateLimiter.spec.js.map +0 -1
- package/lib/test/runWithRetry.spec.js +0 -180
- package/lib/test/runWithRetry.spec.js.map +0 -1
- package/lib/test/summaryCompressionData.js +0 -170
- package/lib/test/summaryCompressionData.js.map +0 -1
- package/lib/test/summaryCompresssionTester.spec.js +0 -429
- package/lib/test/summaryCompresssionTester.spec.js.map +0 -1
- package/lib/test/types/validateDriverUtilsPrevious.generated.js +0 -108
- package/lib/test/types/validateDriverUtilsPrevious.generated.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/driver-utils",
|
|
3
|
-
"version": "2.0.0-dev-rc.
|
|
3
|
+
"version": "2.0.0-dev-rc.3.0.0.253463",
|
|
4
4
|
"description": "Collection of utility functions for Fluid drivers",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -14,16 +14,6 @@
|
|
|
14
14
|
"type": "module",
|
|
15
15
|
"exports": {
|
|
16
16
|
".": {
|
|
17
|
-
"import": {
|
|
18
|
-
"types": "./lib/index.d.ts",
|
|
19
|
-
"default": "./lib/index.js"
|
|
20
|
-
},
|
|
21
|
-
"require": {
|
|
22
|
-
"types": "./dist/index.d.ts",
|
|
23
|
-
"default": "./dist/index.js"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"./public": {
|
|
27
17
|
"import": {
|
|
28
18
|
"types": "./lib/driver-utils-public.d.ts",
|
|
29
19
|
"default": "./lib/index.js"
|
|
@@ -77,21 +67,22 @@
|
|
|
77
67
|
"temp-directory": "nyc/.nyc_output"
|
|
78
68
|
},
|
|
79
69
|
"dependencies": {
|
|
80
|
-
"@fluid-internal/client-utils": "2.0.0-dev-rc.
|
|
81
|
-
"@fluidframework/core-interfaces": "2.0.0-dev-rc.
|
|
82
|
-
"@fluidframework/core-utils": "2.0.0-dev-rc.
|
|
83
|
-
"@fluidframework/driver-definitions": "2.0.0-dev-rc.
|
|
70
|
+
"@fluid-internal/client-utils": "2.0.0-dev-rc.3.0.0.253463",
|
|
71
|
+
"@fluidframework/core-interfaces": "2.0.0-dev-rc.3.0.0.253463",
|
|
72
|
+
"@fluidframework/core-utils": "2.0.0-dev-rc.3.0.0.253463",
|
|
73
|
+
"@fluidframework/driver-definitions": "2.0.0-dev-rc.3.0.0.253463",
|
|
84
74
|
"@fluidframework/gitresources": "^4.0.0",
|
|
85
75
|
"@fluidframework/protocol-base": "^4.0.0",
|
|
86
76
|
"@fluidframework/protocol-definitions": "^3.2.0",
|
|
87
|
-
"@fluidframework/telemetry-utils": "2.0.0-dev-rc.
|
|
77
|
+
"@fluidframework/telemetry-utils": "2.0.0-dev-rc.3.0.0.253463",
|
|
88
78
|
"axios": "^1.6.2",
|
|
89
79
|
"lz4js": "^0.2.0",
|
|
90
80
|
"uuid": "^9.0.0"
|
|
91
81
|
},
|
|
92
82
|
"devDependencies": {
|
|
93
|
-
"@arethetypeswrong/cli": "^0.
|
|
94
|
-
"@
|
|
83
|
+
"@arethetypeswrong/cli": "^0.15.2",
|
|
84
|
+
"@biomejs/biome": "^1.6.2",
|
|
85
|
+
"@fluid-internal/mocha-test-setup": "2.0.0-dev-rc.3.0.0.253463",
|
|
95
86
|
"@fluid-tools/build-cli": "^0.34.0",
|
|
96
87
|
"@fluidframework/build-common": "^2.0.3",
|
|
97
88
|
"@fluidframework/build-tools": "^0.34.0",
|
|
@@ -153,16 +144,16 @@
|
|
|
153
144
|
"build:test:cjs": "fluid-tsc commonjs --project ./src/test/tsconfig.cjs.json",
|
|
154
145
|
"build:test:esm": "tsc --project ./src/test/tsconfig.json",
|
|
155
146
|
"check:are-the-types-wrong": "attw --pack . --entrypoints .",
|
|
147
|
+
"check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
|
|
156
148
|
"check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
|
|
157
149
|
"ci:build:docs": "api-extractor run",
|
|
158
150
|
"clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
|
|
159
151
|
"eslint": "eslint --format stylish src",
|
|
160
152
|
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
161
|
-
"format": "
|
|
162
|
-
"
|
|
163
|
-
"lint
|
|
164
|
-
"
|
|
165
|
-
"prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore",
|
|
153
|
+
"format": "fluid-build --task format .",
|
|
154
|
+
"format:prettier": "prettier --write . --cache --ignore-path ../../../.prettierignore",
|
|
155
|
+
"lint": "fluid-build . --task lint",
|
|
156
|
+
"lint:fix": "fluid-build . --task eslint:fix --task format",
|
|
166
157
|
"test": "npm run test:mocha",
|
|
167
158
|
"test:coverage": "c8 npm test",
|
|
168
159
|
"test:mocha": "npm run test:mocha:esm && echo skipping cjs to avoid overhead - npm run test:mocha:cjs",
|
|
@@ -3,10 +3,15 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
IDocumentService,
|
|
8
|
+
IDocumentStorageService,
|
|
9
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
10
|
+
|
|
7
11
|
import { DocumentServiceProxy } from "../../documentServiceProxy.js";
|
|
8
|
-
|
|
12
|
+
|
|
9
13
|
import { ICompressionStorageConfig } from "./compressionTypes.js";
|
|
14
|
+
import { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from "./summaryblob/index.js";
|
|
10
15
|
|
|
11
16
|
export class DocumentServiceCompressionAdapter extends DocumentServiceProxy {
|
|
12
17
|
constructor(
|
|
@@ -8,12 +8,14 @@ import {
|
|
|
8
8
|
IDocumentService,
|
|
9
9
|
IDocumentServiceFactory,
|
|
10
10
|
IResolvedUrl,
|
|
11
|
-
} from "@fluidframework/driver-definitions";
|
|
11
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
12
12
|
import { ISummaryTree } from "@fluidframework/protocol-definitions";
|
|
13
|
+
|
|
13
14
|
import { DocumentServiceFactoryProxy } from "../../documentServiceFactoryProxy.js";
|
|
15
|
+
|
|
14
16
|
import { ICompressionStorageConfig } from "./compressionTypes.js";
|
|
15
|
-
import { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from "./summaryblob/index.js";
|
|
16
17
|
import { DocumentServiceCompressionAdapter } from "./documentServiceCompressionAdapter.js";
|
|
18
|
+
import { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from "./summaryblob/index.js";
|
|
17
19
|
|
|
18
20
|
export class DocumentServiceFactoryCompressionAdapter extends DocumentServiceFactoryProxy {
|
|
19
21
|
constructor(
|
package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts
CHANGED
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { IsoBuffer } from "@fluid-internal/client-utils";
|
|
7
|
-
import { assert } from "@fluidframework/core-utils";
|
|
8
|
-
import {
|
|
7
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
8
|
+
import {
|
|
9
|
+
IDocumentStorageService,
|
|
10
|
+
ISummaryContext,
|
|
11
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
9
12
|
import {
|
|
10
13
|
ISnapshotTree,
|
|
11
14
|
ISummaryBlob,
|
|
@@ -16,8 +19,9 @@ import {
|
|
|
16
19
|
SummaryType,
|
|
17
20
|
} from "@fluidframework/protocol-definitions";
|
|
18
21
|
import { compress, decompress } from "lz4js";
|
|
19
|
-
|
|
22
|
+
|
|
20
23
|
import { ICompressionStorageConfig, SummaryCompressionAlgorithm } from "..//index.js";
|
|
24
|
+
import { DocumentStorageServiceProxy } from "../../../documentStorageServiceProxy.js";
|
|
21
25
|
|
|
22
26
|
/**
|
|
23
27
|
* @internal
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert } from "@fluidframework/core-utils";
|
|
7
|
-
import { IDocumentServiceFactory } from "@fluidframework/driver-definitions";
|
|
6
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { IDocumentServiceFactory } from "@fluidframework/driver-definitions/internal";
|
|
8
|
+
|
|
8
9
|
import {
|
|
10
|
+
DefaultCompressionStorageConfig,
|
|
9
11
|
DocumentServiceFactoryCompressionAdapter,
|
|
10
12
|
ICompressionStorageConfig,
|
|
11
|
-
DefaultCompressionStorageConfig,
|
|
12
13
|
} from "./compression/index.js";
|
|
13
14
|
|
|
14
15
|
/**
|
package/src/blob.ts
CHANGED
package/src/buildSnapshotTree.ts
CHANGED
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { stringToBuffer } from "@fluid-internal/client-utils";
|
|
7
|
-
import { assert } from "@fluidframework/core-utils";
|
|
7
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
8
8
|
import * as git from "@fluidframework/gitresources";
|
|
9
|
+
import { buildGitTreeHierarchy } from "@fluidframework/protocol-base";
|
|
9
10
|
import {
|
|
10
11
|
FileMode,
|
|
11
12
|
ISnapshotTree,
|
|
12
13
|
ITreeEntry,
|
|
13
14
|
TreeEntry,
|
|
14
15
|
} from "@fluidframework/protocol-definitions";
|
|
15
|
-
import { buildGitTreeHierarchy } from "@fluidframework/protocol-base";
|
|
16
16
|
import { v4 as uuid } from "uuid";
|
|
17
17
|
|
|
18
18
|
function flattenCore(
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
IDocumentServiceEvents,
|
|
12
12
|
IDocumentStorageService,
|
|
13
13
|
IResolvedUrl,
|
|
14
|
-
} from "@fluidframework/driver-definitions";
|
|
14
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
15
15
|
import { IClient } from "@fluidframework/protocol-definitions";
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
ISnapshot,
|
|
11
11
|
ISnapshotFetchOptions,
|
|
12
12
|
ISummaryContext,
|
|
13
|
-
} from "@fluidframework/driver-definitions";
|
|
13
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
14
14
|
import {
|
|
15
15
|
ICreateBlobResponse,
|
|
16
16
|
ISnapshotTree,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
ISummaryTree,
|
|
19
19
|
IVersion,
|
|
20
20
|
} from "@fluidframework/protocol-definitions";
|
|
21
|
-
import { UsageError } from "@fluidframework/telemetry-utils";
|
|
21
|
+
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* @internal
|
package/src/error.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { DriverErrorTypes, IDriverErrorBase } from "@fluidframework/driver-definitions";
|
|
7
|
-
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
|
|
7
|
+
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils/internal";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Error indicating an API is being used improperly resulting in an invalid operation.
|
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert } from "@fluidframework/core-utils";
|
|
7
6
|
import { IRequest } from "@fluidframework/core-interfaces";
|
|
8
|
-
import {
|
|
7
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
8
|
+
import {
|
|
9
|
+
DriverHeader,
|
|
10
|
+
IResolvedUrl,
|
|
11
|
+
IUrlResolver,
|
|
12
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
9
13
|
import Axios from "axios";
|
|
10
14
|
|
|
11
15
|
/**
|
package/src/network.ts
CHANGED
|
@@ -3,16 +3,15 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
7
|
+
import { DriverErrorTypes, IDriverErrorBase } from "@fluidframework/driver-definitions";
|
|
6
8
|
import {
|
|
7
|
-
IThrottlingWarning,
|
|
8
|
-
IDriverErrorBase,
|
|
9
9
|
IAuthorizationError,
|
|
10
10
|
ILocationRedirectionError,
|
|
11
11
|
IResolvedUrl,
|
|
12
|
-
|
|
13
|
-
} from "@fluidframework/driver-definitions";
|
|
14
|
-
import {
|
|
15
|
-
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
|
|
12
|
+
IThrottlingWarning,
|
|
13
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
14
|
+
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils/internal";
|
|
16
15
|
|
|
17
16
|
/**
|
|
18
17
|
* @internal
|
package/src/networkUtils.ts
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import { type ITelemetryErrorEventExt, ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
7
|
+
|
|
8
|
+
import { OnlineStatus, canRetryOnError, isOnline } from "./network.js";
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* @internal
|
package/src/packageVersion.ts
CHANGED
package/src/parallelRequests.ts
CHANGED
|
@@ -5,11 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
import { performance } from "@fluid-internal/client-utils";
|
|
7
7
|
import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
8
|
-
import { assert, Deferred } from "@fluidframework/core-utils";
|
|
9
|
-
import {
|
|
8
|
+
import { assert, Deferred } from "@fluidframework/core-utils/internal";
|
|
9
|
+
import {
|
|
10
|
+
IDeltasFetchResult,
|
|
11
|
+
IStream,
|
|
12
|
+
IStreamResult,
|
|
13
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
10
14
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
15
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
16
|
+
import { PerformanceEvent } from "@fluidframework/telemetry-utils/internal";
|
|
17
|
+
|
|
18
|
+
import { canRetryOnError, createGenericNetworkError, getRetryDelayFromError } from "./network.js";
|
|
13
19
|
import { logNetworkFailure } from "./networkUtils.js";
|
|
14
20
|
// For now, this package is versioned and released in unison with the specific drivers
|
|
15
21
|
import { pkgVersion as driverVersion } from "./packageVersion.js";
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { LoaderCachingPolicy } from "@fluidframework/driver-definitions";
|
|
6
|
+
import { LoaderCachingPolicy } from "@fluidframework/driver-definitions/internal";
|
|
7
7
|
import { ISnapshotTree, IVersion } from "@fluidframework/protocol-definitions";
|
|
8
|
+
|
|
8
9
|
import { DocumentStorageServiceProxy } from "./documentStorageServiceProxy.js";
|
|
9
10
|
import { canRetryOnError } from "./network.js";
|
|
10
11
|
|
package/src/rateLimiter.ts
CHANGED
package/src/readAndParse.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { bufferToString } from "@fluid-internal/client-utils";
|
|
7
|
-
import { IDocumentStorageService } from "@fluidframework/driver-definitions";
|
|
7
|
+
import { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Read a blob from {@link @fluidframework/driver-definitions#IDocumentStorageService} and
|
package/src/runWithRetry.ts
CHANGED
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITelemetryLoggerExt, isFluidError } from "@fluidframework/telemetry-utils";
|
|
7
6
|
import { performance } from "@fluid-internal/client-utils";
|
|
8
|
-
import { delay } from "@fluidframework/core-utils";
|
|
7
|
+
import { delay } from "@fluidframework/core-utils/internal";
|
|
9
8
|
import { DriverErrorTypes } from "@fluidframework/driver-definitions";
|
|
10
|
-
import {
|
|
9
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
10
|
+
import { isFluidError } from "@fluidframework/telemetry-utils/internal";
|
|
11
|
+
|
|
12
|
+
import { NonRetryableError, canRetryOnError, getRetryDelayFromError } from "./network.js";
|
|
11
13
|
import { pkgVersion } from "./packageVersion.js";
|
|
12
14
|
|
|
13
15
|
/**
|
package/src/storageUtils.ts
CHANGED
package/src/treeConversions.ts
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { Uint8ArrayToString } from "@fluid-internal/client-utils";
|
|
7
|
-
import { unreachableCase } from "@fluidframework/core-utils";
|
|
7
|
+
import { unreachableCase } from "@fluidframework/core-utils/internal";
|
|
8
8
|
import { ISummaryTree, ITree, ITreeEntry, SummaryType } from "@fluidframework/protocol-definitions";
|
|
9
|
+
|
|
9
10
|
import { AttachmentTreeEntry, BlobTreeEntry, TreeTreeEntry } from "./blob.js";
|
|
10
11
|
import { isCombinedAppAndProtocolSummary } from "./summaryForCreateNew.js";
|
|
11
12
|
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { strict as assert } from "assert";
|
|
6
|
-
import { DriverHeader } from "@fluidframework/driver-definitions";
|
|
7
|
-
import { InsecureUrlResolver } from "../insecureUrlResolver.js";
|
|
8
|
-
describe("Insecure Url Resolver Test", () => {
|
|
9
|
-
const deltaStreamUrl = "https://localhost.deltaStream";
|
|
10
|
-
const hostUrl = "https://localhost";
|
|
11
|
-
const ordererUrl = "https://localhost.orderer";
|
|
12
|
-
const storageUrl = "https://localhost.storage";
|
|
13
|
-
const tenantId = "tenantId";
|
|
14
|
-
const bearer = "bearer";
|
|
15
|
-
const fileName = "fileName";
|
|
16
|
-
let resolver;
|
|
17
|
-
let request;
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
resolver = new InsecureUrlResolver(hostUrl, ordererUrl, storageUrl, deltaStreamUrl, tenantId, bearer);
|
|
20
|
-
request = resolver.createCreateNewRequest(fileName);
|
|
21
|
-
// Mocking window since the resolver depends on window.location.host
|
|
22
|
-
if (typeof window === "undefined" && typeof global === "object") {
|
|
23
|
-
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
24
|
-
global["window"] = {
|
|
25
|
-
location: { host: "localhost" },
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
it("Create New Request", async () => {
|
|
30
|
-
assert(
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
32
|
-
!!request.headers?.[DriverHeader.createNew], "Request should contain create new header");
|
|
33
|
-
const url = `${hostUrl}?fileName=${fileName}`;
|
|
34
|
-
assert.strictEqual(request.url, url, "Request url should match");
|
|
35
|
-
});
|
|
36
|
-
it("Resolved CreateNew Request", async () => {
|
|
37
|
-
const resolvedUrl = (await resolver.resolve(request));
|
|
38
|
-
const documentUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}`;
|
|
39
|
-
assert.strictEqual(resolvedUrl.endpoints.ordererUrl, ordererUrl, "Orderer url should match");
|
|
40
|
-
assert.strictEqual(resolvedUrl.url, documentUrl, "Document url should match");
|
|
41
|
-
});
|
|
42
|
-
it("Test RequestUrl for a data store", async () => {
|
|
43
|
-
const resolvedUrl = await resolver.resolve(request);
|
|
44
|
-
const expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}`;
|
|
45
|
-
assert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, "resolved url is wrong");
|
|
46
|
-
const dataStoreId = "dataStore";
|
|
47
|
-
const absoluteUrl = await resolver.getAbsoluteUrl(resolvedUrl, dataStoreId);
|
|
48
|
-
const expectedUrl = `${hostUrl}/${tenantId}/${fileName}/${dataStoreId}`;
|
|
49
|
-
assert.strictEqual(absoluteUrl, expectedUrl, "Url should match");
|
|
50
|
-
});
|
|
51
|
-
it("Test RequestUrl for url with only document id", async () => {
|
|
52
|
-
const testRequest = {
|
|
53
|
-
url: `https://localhost/${fileName}`,
|
|
54
|
-
headers: {},
|
|
55
|
-
};
|
|
56
|
-
const resolvedUrl = await resolver.resolve(testRequest);
|
|
57
|
-
const expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}`;
|
|
58
|
-
assert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, "resolved url is wrong");
|
|
59
|
-
});
|
|
60
|
-
it("Test RequestUrl for url with data store ids", async () => {
|
|
61
|
-
const testRequest = {
|
|
62
|
-
url: `https://localhost/${fileName}/dataStore1/dataStore2`,
|
|
63
|
-
headers: {},
|
|
64
|
-
};
|
|
65
|
-
const resolvedUrl = await resolver.resolve(testRequest);
|
|
66
|
-
const expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}/dataStore1/dataStore2`;
|
|
67
|
-
assert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, "resolved url is wrong");
|
|
68
|
-
const dataStoreId = "dataStore";
|
|
69
|
-
const absoluteUrl = await resolver.getAbsoluteUrl(resolvedUrl, dataStoreId);
|
|
70
|
-
const expectedResponseUrl = `${hostUrl}/${tenantId}/${fileName}/${dataStoreId}`;
|
|
71
|
-
assert.strictEqual(absoluteUrl, expectedResponseUrl, "response url is wrong");
|
|
72
|
-
});
|
|
73
|
-
it("Test RequestUrl for url with a slash at the end", async () => {
|
|
74
|
-
const testRequest = {
|
|
75
|
-
url: `https://localhost/${fileName}/`,
|
|
76
|
-
headers: {},
|
|
77
|
-
};
|
|
78
|
-
const resolvedUrl = await resolver.resolve(testRequest);
|
|
79
|
-
const expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}/`;
|
|
80
|
-
assert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, "resolved url is wrong");
|
|
81
|
-
});
|
|
82
|
-
it("Test RequestUrl for url with 2 slashes at the end", async () => {
|
|
83
|
-
const testRequest = {
|
|
84
|
-
url: `https://localhost/${fileName}//`,
|
|
85
|
-
headers: {},
|
|
86
|
-
};
|
|
87
|
-
const resolvedUrl = await resolver.resolve(testRequest);
|
|
88
|
-
const expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}//`;
|
|
89
|
-
assert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, "resolved url is wrong");
|
|
90
|
-
});
|
|
91
|
-
it("Test RequestUrl for url with special characters", async () => {
|
|
92
|
-
const testRequest = {
|
|
93
|
-
url: `https://localhost/${fileName}/!@$123/dataStore!@$`,
|
|
94
|
-
headers: {},
|
|
95
|
-
};
|
|
96
|
-
const resolvedUrl = await resolver.resolve(testRequest);
|
|
97
|
-
const expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}/!@$123/dataStore!@$`;
|
|
98
|
-
assert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, "resolved url is wrong");
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
//# sourceMappingURL=insecureUrlResolverTest.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insecureUrlResolverTest.spec.js","sourceRoot":"","sources":["../../src/test/insecureUrlResolverTest.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { strict as assert } from \"assert\";\nimport { DriverHeader, IResolvedUrl } from \"@fluidframework/driver-definitions\";\nimport { IRequest } from \"@fluidframework/core-interfaces\";\nimport { InsecureUrlResolver } from \"../insecureUrlResolver.js\";\n\ndescribe(\"Insecure Url Resolver Test\", () => {\n\tconst deltaStreamUrl = \"https://localhost.deltaStream\";\n\tconst hostUrl = \"https://localhost\";\n\tconst ordererUrl = \"https://localhost.orderer\";\n\tconst storageUrl = \"https://localhost.storage\";\n\tconst tenantId = \"tenantId\";\n\tconst bearer = \"bearer\";\n\tconst fileName = \"fileName\";\n\tlet resolver: InsecureUrlResolver;\n\tlet request: IRequest;\n\n\tbeforeEach(() => {\n\t\tresolver = new InsecureUrlResolver(\n\t\t\thostUrl,\n\t\t\tordererUrl,\n\t\t\tstorageUrl,\n\t\t\tdeltaStreamUrl,\n\t\t\ttenantId,\n\t\t\tbearer,\n\t\t);\n\t\trequest = resolver.createCreateNewRequest(fileName);\n\n\t\t// Mocking window since the resolver depends on window.location.host\n\t\tif (typeof window === \"undefined\" && typeof global === \"object\") {\n\t\t\t// eslint-disable-next-line @typescript-eslint/dot-notation\n\t\t\tglobal[\"window\"] = {\n\t\t\t\tlocation: { host: \"localhost\" } as unknown as Location,\n\t\t\t} as unknown as Window & typeof globalThis;\n\t\t}\n\t});\n\n\tit(\"Create New Request\", async () => {\n\t\tassert(\n\t\t\t// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n\t\t\t!!request.headers?.[DriverHeader.createNew],\n\t\t\t\"Request should contain create new header\",\n\t\t);\n\t\tconst url = `${hostUrl}?fileName=${fileName}`;\n\t\tassert.strictEqual(request.url, url, \"Request url should match\");\n\t});\n\n\tit(\"Resolved CreateNew Request\", async () => {\n\t\tconst resolvedUrl = (await resolver.resolve(request)) as IResolvedUrl;\n\t\tconst documentUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}`;\n\t\tassert.strictEqual(\n\t\t\tresolvedUrl.endpoints.ordererUrl,\n\t\t\tordererUrl,\n\t\t\t\"Orderer url should match\",\n\t\t);\n\t\tassert.strictEqual(resolvedUrl.url, documentUrl, \"Document url should match\");\n\t});\n\n\tit(\"Test RequestUrl for a data store\", async () => {\n\t\tconst resolvedUrl = await resolver.resolve(request);\n\n\t\tconst expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}`;\n\t\tassert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, \"resolved url is wrong\");\n\n\t\tconst dataStoreId = \"dataStore\";\n\t\tconst absoluteUrl = await resolver.getAbsoluteUrl(resolvedUrl, dataStoreId);\n\n\t\tconst expectedUrl = `${hostUrl}/${tenantId}/${fileName}/${dataStoreId}`;\n\t\tassert.strictEqual(absoluteUrl, expectedUrl, \"Url should match\");\n\t});\n\n\tit(\"Test RequestUrl for url with only document id\", async () => {\n\t\tconst testRequest: IRequest = {\n\t\t\turl: `https://localhost/${fileName}`,\n\t\t\theaders: {},\n\t\t};\n\t\tconst resolvedUrl = await resolver.resolve(testRequest);\n\n\t\tconst expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}`;\n\t\tassert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, \"resolved url is wrong\");\n\t});\n\n\tit(\"Test RequestUrl for url with data store ids\", async () => {\n\t\tconst testRequest: IRequest = {\n\t\t\turl: `https://localhost/${fileName}/dataStore1/dataStore2`,\n\t\t\theaders: {},\n\t\t};\n\t\tconst resolvedUrl = await resolver.resolve(testRequest);\n\n\t\tconst expectedResolvedUrl = `https://${\n\t\t\tnew URL(ordererUrl).host\n\t\t}/${tenantId}/${fileName}/dataStore1/dataStore2`;\n\t\tassert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, \"resolved url is wrong\");\n\n\t\tconst dataStoreId = \"dataStore\";\n\t\tconst absoluteUrl = await resolver.getAbsoluteUrl(resolvedUrl, dataStoreId);\n\n\t\tconst expectedResponseUrl = `${hostUrl}/${tenantId}/${fileName}/${dataStoreId}`;\n\t\tassert.strictEqual(absoluteUrl, expectedResponseUrl, \"response url is wrong\");\n\t});\n\n\tit(\"Test RequestUrl for url with a slash at the end\", async () => {\n\t\tconst testRequest: IRequest = {\n\t\t\turl: `https://localhost/${fileName}/`,\n\t\t\theaders: {},\n\t\t};\n\t\tconst resolvedUrl = await resolver.resolve(testRequest);\n\n\t\tconst expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}/`;\n\t\tassert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, \"resolved url is wrong\");\n\t});\n\n\tit(\"Test RequestUrl for url with 2 slashes at the end\", async () => {\n\t\tconst testRequest: IRequest = {\n\t\t\turl: `https://localhost/${fileName}//`,\n\t\t\theaders: {},\n\t\t};\n\t\tconst resolvedUrl = await resolver.resolve(testRequest);\n\n\t\tconst expectedResolvedUrl = `https://${new URL(ordererUrl).host}/${tenantId}/${fileName}//`;\n\t\tassert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, \"resolved url is wrong\");\n\t});\n\n\tit(\"Test RequestUrl for url with special characters\", async () => {\n\t\tconst testRequest: IRequest = {\n\t\t\turl: `https://localhost/${fileName}/!@$123/dataStore!@$`,\n\t\t\theaders: {},\n\t\t};\n\t\tconst resolvedUrl = await resolver.resolve(testRequest);\n\n\t\tconst expectedResolvedUrl = `https://${\n\t\t\tnew URL(ordererUrl).host\n\t\t}/${tenantId}/${fileName}/!@$123/dataStore!@$`;\n\t\tassert.strictEqual(resolvedUrl?.url, expectedResolvedUrl, \"resolved url is wrong\");\n\t});\n});\n"]}
|