@fluidframework/routerlicious-driver 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 +10 -12
- package/.mocharc.js +12 -0
- package/CHANGELOG.md +156 -0
- package/README.md +39 -1
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/routerlicious-driver.api.md +108 -0
- package/dist/cache.cjs +30 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.ts +7 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/{definitions.js → contracts.cjs} +1 -1
- package/dist/contracts.cjs.map +1 -0
- package/dist/contracts.d.ts +42 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/{createNewUtils.js → createNewUtils.cjs} +7 -5
- package/dist/createNewUtils.cjs.map +1 -0
- package/dist/createNewUtils.d.ts +1 -1
- package/dist/createNewUtils.d.ts.map +1 -1
- package/dist/{defaultTokenProvider.js → defaultTokenProvider.cjs} +2 -1
- package/dist/defaultTokenProvider.cjs.map +1 -0
- package/dist/defaultTokenProvider.d.ts +1 -0
- package/dist/defaultTokenProvider.d.ts.map +1 -1
- package/dist/definitions.cjs +7 -0
- package/dist/definitions.cjs.map +1 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/deltaStorageService.cjs +122 -0
- package/dist/deltaStorageService.cjs.map +1 -0
- package/dist/deltaStorageService.d.ts +7 -6
- package/dist/deltaStorageService.d.ts.map +1 -1
- package/dist/{documentDeltaConnection.js → documentDeltaConnection.cjs} +8 -13
- package/dist/documentDeltaConnection.cjs.map +1 -0
- package/dist/documentDeltaConnection.d.ts +3 -4
- package/dist/documentDeltaConnection.d.ts.map +1 -1
- package/dist/{documentService.js → documentService.cjs} +61 -64
- package/dist/documentService.cjs.map +1 -0
- package/dist/documentService.d.ts +12 -4
- package/dist/documentService.d.ts.map +1 -1
- package/dist/{documentServiceFactory.js → documentServiceFactory.cjs} +87 -33
- package/dist/documentServiceFactory.cjs.map +1 -0
- package/dist/documentServiceFactory.d.ts +5 -3
- package/dist/documentServiceFactory.d.ts.map +1 -1
- package/dist/{documentStorageService.js → documentStorageService.cjs} +18 -16
- package/dist/documentStorageService.cjs.map +1 -0
- package/dist/documentStorageService.d.ts +4 -3
- package/dist/documentStorageService.d.ts.map +1 -1
- package/dist/errorUtils.cjs +87 -0
- package/dist/errorUtils.cjs.map +1 -0
- package/dist/errorUtils.d.ts +56 -10
- package/dist/errorUtils.d.ts.map +1 -1
- package/dist/gitManager.cjs +46 -0
- package/dist/gitManager.cjs.map +1 -0
- package/dist/gitManager.d.ts +27 -0
- package/dist/gitManager.d.ts.map +1 -0
- package/dist/historian.cjs +72 -0
- package/dist/historian.cjs.map +1 -0
- package/dist/historian.d.ts +34 -0
- package/dist/historian.d.ts.map +1 -0
- package/dist/index.cjs +19 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +5 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/mapWithExpiration.cjs +105 -0
- package/dist/mapWithExpiration.cjs.map +1 -0
- package/dist/mapWithExpiration.d.ts +34 -0
- package/dist/mapWithExpiration.d.ts.map +1 -0
- package/dist/{nullBlobStorageService.js → nullBlobStorageService.cjs} +5 -5
- package/dist/nullBlobStorageService.cjs.map +1 -0
- package/dist/nullBlobStorageService.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/{policies.js → policies.cjs} +1 -1
- package/dist/policies.cjs.map +1 -0
- package/dist/policies.d.ts +22 -9
- package/dist/policies.d.ts.map +1 -1
- package/dist/r11sSnapshotParser.cjs +73 -0
- package/dist/r11sSnapshotParser.cjs.map +1 -0
- package/dist/r11sSnapshotParser.d.ts +14 -0
- package/dist/r11sSnapshotParser.d.ts.map +1 -0
- package/dist/restWrapper.cjs +249 -0
- package/dist/restWrapper.cjs.map +1 -0
- package/dist/restWrapper.d.ts +32 -12
- package/dist/restWrapper.d.ts.map +1 -1
- package/dist/restWrapperBase.cjs +89 -0
- package/dist/restWrapperBase.cjs.map +1 -0
- package/dist/restWrapperBase.d.ts +26 -0
- package/dist/restWrapperBase.d.ts.map +1 -0
- package/dist/retriableGitManager.cjs +40 -0
- package/dist/retriableGitManager.cjs.map +1 -0
- package/dist/retriableGitManager.d.ts +13 -23
- package/dist/retriableGitManager.d.ts.map +1 -1
- package/dist/routerlicious-driver-alpha.d.ts +92 -0
- package/dist/routerlicious-driver-beta.d.ts +98 -0
- package/dist/routerlicious-driver-public.d.ts +98 -0
- package/dist/routerlicious-driver-untrimmed.d.ts +261 -0
- package/dist/{shreddedSummaryDocumentStorageService.js → shreddedSummaryDocumentStorageService.cjs} +41 -34
- package/dist/shreddedSummaryDocumentStorageService.cjs.map +1 -0
- package/dist/shreddedSummaryDocumentStorageService.d.ts +6 -5
- package/dist/shreddedSummaryDocumentStorageService.d.ts.map +1 -1
- package/dist/storageContracts.cjs +7 -0
- package/dist/storageContracts.cjs.map +1 -0
- package/dist/storageContracts.d.ts +45 -0
- package/dist/storageContracts.d.ts.map +1 -0
- package/dist/summaryTreeUploadManager.cjs +110 -0
- package/dist/summaryTreeUploadManager.cjs.map +1 -0
- package/dist/summaryTreeUploadManager.d.ts +23 -0
- package/dist/summaryTreeUploadManager.d.ts.map +1 -0
- package/dist/{tokens.js → tokens.cjs} +1 -1
- package/dist/tokens.cjs.map +1 -0
- package/dist/tokens.d.ts +34 -5
- package/dist/tokens.d.ts.map +1 -1
- package/dist/treeUtils.cjs +107 -0
- package/dist/treeUtils.cjs.map +1 -0
- package/dist/treeUtils.d.ts +58 -0
- package/dist/treeUtils.d.ts.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/{urlUtils.js → urlUtils.cjs} +21 -25
- package/dist/urlUtils.cjs.map +1 -0
- package/dist/urlUtils.d.ts +2 -2
- package/dist/urlUtils.d.ts.map +1 -1
- package/dist/wholeSummaryDocumentStorageService.cjs +253 -0
- package/dist/wholeSummaryDocumentStorageService.cjs.map +1 -0
- package/dist/wholeSummaryDocumentStorageService.d.ts +10 -8
- package/dist/wholeSummaryDocumentStorageService.d.ts.map +1 -1
- package/dist/wholeSummaryUploadManager.cjs +37 -0
- package/dist/wholeSummaryUploadManager.cjs.map +1 -0
- package/dist/wholeSummaryUploadManager.d.ts +16 -0
- package/dist/wholeSummaryUploadManager.d.ts.map +1 -0
- package/lib/{cache.d.ts → cache.d.mts} +7 -0
- package/lib/cache.d.mts.map +1 -0
- package/lib/cache.mjs +25 -0
- package/lib/cache.mjs.map +1 -0
- package/lib/contracts.d.mts +42 -0
- package/lib/contracts.d.mts.map +1 -0
- package/lib/{definitions.js → contracts.mjs} +1 -1
- package/lib/contracts.mjs.map +1 -0
- package/lib/{createNewUtils.d.ts → createNewUtils.d.mts} +1 -1
- package/lib/{createNewUtils.d.ts.map → createNewUtils.d.mts.map} +1 -1
- package/lib/{createNewUtils.js → createNewUtils.mjs} +7 -5
- package/lib/createNewUtils.mjs.map +1 -0
- package/lib/{defaultTokenProvider.d.ts → defaultTokenProvider.d.mts} +2 -1
- package/lib/defaultTokenProvider.d.mts.map +1 -0
- package/lib/{defaultTokenProvider.js → defaultTokenProvider.mjs} +2 -1
- package/lib/defaultTokenProvider.mjs.map +1 -0
- package/lib/definitions.d.mts.map +1 -0
- package/lib/definitions.mjs +6 -0
- package/{dist/definitions.js.map → lib/definitions.mjs.map} +1 -1
- package/lib/{deltaStorageService.d.ts → deltaStorageService.d.mts} +8 -7
- package/lib/deltaStorageService.d.mts.map +1 -0
- package/lib/deltaStorageService.mjs +117 -0
- package/lib/deltaStorageService.mjs.map +1 -0
- package/lib/{documentDeltaConnection.d.ts → documentDeltaConnection.d.mts} +3 -4
- package/lib/documentDeltaConnection.d.mts.map +1 -0
- package/lib/{documentDeltaConnection.js → documentDeltaConnection.mjs} +8 -13
- package/lib/documentDeltaConnection.mjs.map +1 -0
- package/lib/{documentService.d.ts → documentService.d.mts} +16 -8
- package/lib/documentService.d.mts.map +1 -0
- package/lib/{documentService.js → documentService.mjs} +60 -44
- package/lib/documentService.mjs.map +1 -0
- package/lib/{documentServiceFactory.d.ts → documentServiceFactory.d.mts} +7 -5
- package/lib/documentServiceFactory.d.mts.map +1 -0
- package/lib/{documentServiceFactory.js → documentServiceFactory.mjs} +88 -34
- package/lib/documentServiceFactory.mjs.map +1 -0
- package/lib/{documentStorageService.d.ts → documentStorageService.d.mts} +7 -6
- package/lib/documentStorageService.d.mts.map +1 -0
- package/lib/{documentStorageService.js → documentStorageService.mjs} +19 -17
- package/lib/documentStorageService.mjs.map +1 -0
- package/lib/errorUtils.d.mts +93 -0
- package/lib/errorUtils.d.mts.map +1 -0
- package/lib/errorUtils.mjs +81 -0
- package/lib/errorUtils.mjs.map +1 -0
- package/lib/gitManager.d.mts +27 -0
- package/lib/gitManager.d.mts.map +1 -0
- package/lib/gitManager.mjs +42 -0
- package/lib/gitManager.mjs.map +1 -0
- package/lib/historian.d.mts +34 -0
- package/lib/historian.d.mts.map +1 -0
- package/lib/historian.mjs +67 -0
- package/lib/historian.mjs.map +1 -0
- package/lib/index.d.mts +10 -0
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +8 -0
- package/lib/index.mjs.map +1 -0
- package/lib/mapWithExpiration.d.mts +34 -0
- package/lib/mapWithExpiration.d.mts.map +1 -0
- package/lib/mapWithExpiration.mjs +101 -0
- package/lib/mapWithExpiration.mjs.map +1 -0
- package/lib/nullBlobStorageService.d.mts.map +1 -0
- package/lib/{nullBlobStorageService.js → nullBlobStorageService.mjs} +5 -5
- package/lib/nullBlobStorageService.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/{policies.d.ts → policies.d.mts} +22 -9
- package/lib/policies.d.mts.map +1 -0
- package/lib/{policies.js → policies.mjs} +1 -1
- package/lib/policies.mjs.map +1 -0
- package/lib/r11sSnapshotParser.d.mts +14 -0
- package/lib/r11sSnapshotParser.d.mts.map +1 -0
- package/lib/r11sSnapshotParser.mjs +69 -0
- package/lib/r11sSnapshotParser.mjs.map +1 -0
- package/lib/restWrapper.d.mts +53 -0
- package/lib/restWrapper.d.mts.map +1 -0
- package/lib/restWrapper.mjs +236 -0
- package/lib/restWrapper.mjs.map +1 -0
- package/lib/restWrapperBase.d.mts +26 -0
- package/lib/restWrapperBase.d.mts.map +1 -0
- package/lib/restWrapperBase.mjs +84 -0
- package/lib/restWrapperBase.mjs.map +1 -0
- package/lib/retriableGitManager.d.mts +24 -0
- package/lib/retriableGitManager.d.mts.map +1 -0
- package/lib/retriableGitManager.mjs +36 -0
- package/lib/retriableGitManager.mjs.map +1 -0
- package/lib/routerlicious-driver-alpha.d.mts +92 -0
- package/lib/routerlicious-driver-beta.d.mts +98 -0
- package/lib/routerlicious-driver-public.d.mts +98 -0
- package/lib/routerlicious-driver-untrimmed.d.mts +261 -0
- package/lib/{shreddedSummaryDocumentStorageService.d.ts → shreddedSummaryDocumentStorageService.d.mts} +9 -8
- package/lib/shreddedSummaryDocumentStorageService.d.mts.map +1 -0
- package/lib/{shreddedSummaryDocumentStorageService.js → shreddedSummaryDocumentStorageService.mjs} +41 -34
- package/lib/shreddedSummaryDocumentStorageService.mjs.map +1 -0
- package/lib/storageContracts.d.mts +45 -0
- package/lib/storageContracts.d.mts.map +1 -0
- package/lib/storageContracts.mjs +6 -0
- package/lib/storageContracts.mjs.map +1 -0
- package/lib/summaryTreeUploadManager.d.mts +23 -0
- package/lib/summaryTreeUploadManager.d.mts.map +1 -0
- package/lib/summaryTreeUploadManager.mjs +106 -0
- package/lib/summaryTreeUploadManager.mjs.map +1 -0
- package/lib/{tokens.d.ts → tokens.d.mts} +34 -5
- package/lib/tokens.d.mts.map +1 -0
- package/lib/{tokens.js → tokens.mjs} +1 -1
- package/lib/tokens.mjs.map +1 -0
- package/lib/treeUtils.d.mts +58 -0
- package/lib/treeUtils.d.mts.map +1 -0
- package/lib/treeUtils.mjs +100 -0
- package/lib/treeUtils.mjs.map +1 -0
- package/lib/{urlUtils.d.ts → urlUtils.d.mts} +2 -2
- package/lib/urlUtils.d.mts.map +1 -0
- package/lib/urlUtils.mjs +38 -0
- package/lib/urlUtils.mjs.map +1 -0
- package/lib/{wholeSummaryDocumentStorageService.d.ts → wholeSummaryDocumentStorageService.d.mts} +12 -10
- package/lib/wholeSummaryDocumentStorageService.d.mts.map +1 -0
- package/lib/wholeSummaryDocumentStorageService.mjs +249 -0
- package/lib/wholeSummaryDocumentStorageService.mjs.map +1 -0
- package/lib/wholeSummaryUploadManager.d.mts +16 -0
- package/lib/wholeSummaryUploadManager.d.mts.map +1 -0
- package/lib/wholeSummaryUploadManager.mjs +33 -0
- package/lib/wholeSummaryUploadManager.mjs.map +1 -0
- package/package.json +104 -68
- package/prettier.config.cjs +8 -0
- package/src/cache.ts +25 -9
- package/src/contracts.ts +60 -0
- package/src/createNewUtils.ts +26 -24
- package/src/defaultTokenProvider.ts +14 -15
- package/src/definitions.ts +2 -2
- package/src/deltaStorageService.ts +145 -91
- package/src/documentDeltaConnection.ts +54 -52
- package/src/documentService.ts +272 -242
- package/src/documentServiceFactory.ts +338 -237
- package/src/documentStorageService.ts +92 -84
- package/src/errorUtils.ts +117 -79
- package/src/gitManager.ts +67 -0
- package/src/historian.ts +121 -0
- package/src/index.ts +15 -8
- package/src/mapWithExpiration.ts +124 -0
- package/src/nullBlobStorageService.ts +24 -21
- package/src/packageVersion.ts +1 -1
- package/src/policies.ts +51 -38
- package/src/r11sSnapshotParser.ts +82 -0
- package/src/restWrapper.ts +400 -216
- package/src/restWrapperBase.ts +146 -0
- package/src/retriableGitManager.ts +76 -153
- package/src/shreddedSummaryDocumentStorageService.ts +214 -195
- package/src/storageContracts.ts +63 -0
- package/src/summaryTreeUploadManager.ts +155 -0
- package/src/tokens.ts +74 -39
- package/src/treeUtils.ts +138 -0
- package/src/urlUtils.ts +27 -28
- package/src/wholeSummaryDocumentStorageService.ts +352 -252
- package/src/wholeSummaryUploadManager.ts +64 -0
- package/tsc-multi.test.json +4 -0
- package/tsconfig.json +10 -13
- package/dist/cache.js +0 -20
- package/dist/cache.js.map +0 -1
- package/dist/createNewUtils.js.map +0 -1
- package/dist/defaultTokenProvider.js.map +0 -1
- package/dist/deltaStorageService.js +0 -82
- package/dist/deltaStorageService.js.map +0 -1
- package/dist/documentDeltaConnection.js.map +0 -1
- package/dist/documentService.js.map +0 -1
- package/dist/documentServiceFactory.js.map +0 -1
- package/dist/documentStorageService.js.map +0 -1
- package/dist/errorUtils.js +0 -56
- package/dist/errorUtils.js.map +0 -1
- package/dist/index.js +0 -25
- package/dist/index.js.map +0 -1
- package/dist/nullBlobStorageService.js.map +0 -1
- package/dist/packageVersion.js.map +0 -1
- package/dist/policies.js.map +0 -1
- package/dist/restWrapper.js +0 -153
- package/dist/restWrapper.js.map +0 -1
- package/dist/retriableGitManager.js +0 -76
- package/dist/retriableGitManager.js.map +0 -1
- package/dist/shreddedSummaryDocumentStorageService.js.map +0 -1
- package/dist/tokens.js.map +0 -1
- package/dist/urlUtils.js.map +0 -1
- package/dist/wholeSummaryDocumentStorageService.js +0 -191
- package/dist/wholeSummaryDocumentStorageService.js.map +0 -1
- package/lib/cache.d.ts.map +0 -1
- package/lib/cache.js +0 -16
- package/lib/cache.js.map +0 -1
- package/lib/createNewUtils.js.map +0 -1
- package/lib/defaultTokenProvider.d.ts.map +0 -1
- package/lib/defaultTokenProvider.js.map +0 -1
- package/lib/definitions.d.ts.map +0 -1
- package/lib/definitions.js.map +0 -1
- package/lib/deltaStorageService.d.ts.map +0 -1
- package/lib/deltaStorageService.js +0 -77
- package/lib/deltaStorageService.js.map +0 -1
- package/lib/documentDeltaConnection.d.ts.map +0 -1
- package/lib/documentDeltaConnection.js.map +0 -1
- package/lib/documentService.d.ts.map +0 -1
- package/lib/documentService.js.map +0 -1
- package/lib/documentServiceFactory.d.ts.map +0 -1
- package/lib/documentServiceFactory.js.map +0 -1
- package/lib/documentStorageService.d.ts.map +0 -1
- package/lib/documentStorageService.js.map +0 -1
- package/lib/errorUtils.d.ts +0 -47
- package/lib/errorUtils.d.ts.map +0 -1
- package/lib/errorUtils.js +0 -50
- package/lib/errorUtils.js.map +0 -1
- package/lib/index.d.ts +0 -13
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -13
- package/lib/index.js.map +0 -1
- package/lib/nullBlobStorageService.d.ts.map +0 -1
- package/lib/nullBlobStorageService.js.map +0 -1
- package/lib/packageVersion.js.map +0 -1
- package/lib/policies.d.ts.map +0 -1
- package/lib/policies.js.map +0 -1
- package/lib/restWrapper.d.ts +0 -33
- package/lib/restWrapper.d.ts.map +0 -1
- package/lib/restWrapper.js +0 -144
- package/lib/restWrapper.js.map +0 -1
- package/lib/retriableGitManager.d.ts +0 -34
- package/lib/retriableGitManager.d.ts.map +0 -1
- package/lib/retriableGitManager.js +0 -72
- package/lib/retriableGitManager.js.map +0 -1
- package/lib/shreddedSummaryDocumentStorageService.d.ts.map +0 -1
- package/lib/shreddedSummaryDocumentStorageService.js.map +0 -1
- package/lib/tokens.d.ts.map +0 -1
- package/lib/tokens.js.map +0 -1
- package/lib/urlUtils.d.ts.map +0 -1
- package/lib/urlUtils.js +0 -42
- package/lib/urlUtils.js.map +0 -1
- package/lib/wholeSummaryDocumentStorageService.d.ts.map +0 -1
- package/lib/wholeSummaryDocumentStorageService.js +0 -187
- package/lib/wholeSummaryDocumentStorageService.js.map +0 -1
- package/tsconfig.esnext.json +0 -7
- /package/lib/{definitions.d.ts → definitions.d.mts} +0 -0
- /package/lib/{nullBlobStorageService.d.ts → nullBlobStorageService.d.mts} +0 -0
|
@@ -3,270 +3,368 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert } from "@fluidframework/
|
|
6
|
+
import { assert } from "@fluidframework/core-utils";
|
|
7
|
+
import { getW3CData } from "@fluidframework/driver-base";
|
|
7
8
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
FiveDaysMs,
|
|
10
|
+
IDocumentService,
|
|
11
|
+
IDocumentServiceFactory,
|
|
12
|
+
IDocumentStorageServicePolicies,
|
|
13
|
+
IResolvedUrl,
|
|
14
|
+
LoaderCachingPolicy,
|
|
12
15
|
} from "@fluidframework/driver-definitions";
|
|
13
|
-
import { ITelemetryBaseLogger } from "@fluidframework/
|
|
16
|
+
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
14
17
|
import { ISummaryTree } from "@fluidframework/protocol-definitions";
|
|
15
18
|
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
getDocAttributesFromProtocolSummary,
|
|
20
|
+
getQuorumValuesFromProtocolSummary,
|
|
21
|
+
isCombinedAppAndProtocolSummary,
|
|
22
|
+
RateLimiter,
|
|
20
23
|
} from "@fluidframework/driver-utils";
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
24
|
+
import { createChildLogger, PerformanceEvent } from "@fluidframework/telemetry-utils";
|
|
25
|
+
import {
|
|
26
|
+
ISession,
|
|
27
|
+
convertSummaryTreeToWholeSummaryTree,
|
|
28
|
+
} from "@fluidframework/server-services-client";
|
|
23
29
|
import { DocumentService } from "./documentService";
|
|
24
30
|
import { IRouterliciousDriverPolicies } from "./policies";
|
|
25
31
|
import { ITokenProvider } from "./tokens";
|
|
26
|
-
import {
|
|
27
|
-
|
|
32
|
+
import {
|
|
33
|
+
RouterliciousOrdererRestWrapper,
|
|
34
|
+
RouterliciousStorageRestWrapper,
|
|
35
|
+
toInstrumentedR11sOrdererTokenFetcher,
|
|
36
|
+
toInstrumentedR11sStorageTokenFetcher,
|
|
37
|
+
} from "./restWrapper";
|
|
28
38
|
import { parseFluidUrl, replaceDocumentIdInPath, getDiscoveredFluidResolvedUrl } from "./urlUtils";
|
|
29
|
-
import { InMemoryCache } from "./cache";
|
|
39
|
+
import { ICache, InMemoryCache, NullCache } from "./cache";
|
|
30
40
|
import { pkgVersion as driverVersion } from "./packageVersion";
|
|
31
41
|
import { ISnapshotTreeVersion } from "./definitions";
|
|
42
|
+
import { INormalizedWholeSnapshot } from "./contracts";
|
|
43
|
+
|
|
44
|
+
const maximumSnapshotCacheDurationMs: FiveDaysMs = 432_000_000; // 5 days in ms
|
|
32
45
|
|
|
33
46
|
const defaultRouterliciousDriverPolicies: IRouterliciousDriverPolicies = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
enablePrefetch: true,
|
|
48
|
+
maxConcurrentStorageRequests: 100,
|
|
49
|
+
maxConcurrentOrdererRequests: 100,
|
|
50
|
+
enableDiscovery: false,
|
|
51
|
+
enableWholeSummaryUpload: false,
|
|
52
|
+
enableRestLess: true,
|
|
53
|
+
enableInternalSummaryCaching: true,
|
|
54
|
+
enableLongPollingDowngrade: true,
|
|
55
|
+
isEphemeralContainer: false,
|
|
41
56
|
};
|
|
42
57
|
|
|
43
58
|
/**
|
|
44
59
|
* Factory for creating the routerlicious document service. Use this if you want to
|
|
45
60
|
* use the routerlicious implementation.
|
|
61
|
+
* @internal
|
|
46
62
|
*/
|
|
47
63
|
export class RouterliciousDocumentServiceFactory implements IDocumentServiceFactory {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
64
|
+
private readonly driverPolicies: IRouterliciousDriverPolicies;
|
|
65
|
+
private readonly blobCache: ICache<ArrayBufferLike>;
|
|
66
|
+
private readonly wholeSnapshotTreeCache: ICache<INormalizedWholeSnapshot> = new NullCache();
|
|
67
|
+
private readonly shreddedSummaryTreeCache: ICache<ISnapshotTreeVersion> = new NullCache();
|
|
68
|
+
|
|
69
|
+
constructor(
|
|
70
|
+
private readonly tokenProvider: ITokenProvider,
|
|
71
|
+
driverPolicies: Partial<IRouterliciousDriverPolicies> = {},
|
|
72
|
+
) {
|
|
73
|
+
// Use the maximum allowed by the policy (IDocumentStorageServicePolicies.maximumCacheDurationMs set below)
|
|
74
|
+
const snapshotCacheExpiryMs: FiveDaysMs = maximumSnapshotCacheDurationMs;
|
|
75
|
+
|
|
76
|
+
this.driverPolicies = {
|
|
77
|
+
...defaultRouterliciousDriverPolicies,
|
|
78
|
+
...driverPolicies,
|
|
79
|
+
};
|
|
80
|
+
this.blobCache = new InMemoryCache<ArrayBufferLike>();
|
|
81
|
+
if (this.driverPolicies.enableInternalSummaryCaching) {
|
|
82
|
+
if (this.driverPolicies.enableWholeSummaryUpload) {
|
|
83
|
+
this.wholeSnapshotTreeCache = new InMemoryCache<INormalizedWholeSnapshot>(
|
|
84
|
+
snapshotCacheExpiryMs,
|
|
85
|
+
);
|
|
86
|
+
} else {
|
|
87
|
+
this.shreddedSummaryTreeCache = new InMemoryCache<ISnapshotTreeVersion>(
|
|
88
|
+
snapshotCacheExpiryMs,
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createContainer}
|
|
96
|
+
*
|
|
97
|
+
* @throws {@link DocumentPostCreateError}
|
|
98
|
+
* If an exception is thrown while invoking the provided {@link ITokenProvider.documentPostCreateCallback}.
|
|
99
|
+
*/
|
|
100
|
+
public async createContainer(
|
|
101
|
+
createNewSummary: ISummaryTree | undefined,
|
|
102
|
+
resolvedUrl: IResolvedUrl,
|
|
103
|
+
logger?: ITelemetryBaseLogger,
|
|
104
|
+
clientIsSummarizer?: boolean,
|
|
105
|
+
): Promise<IDocumentService> {
|
|
106
|
+
if (createNewSummary === undefined) {
|
|
107
|
+
throw new Error("Empty file summary creation isn't supported in this driver.");
|
|
108
|
+
}
|
|
109
|
+
assert(!!resolvedUrl.endpoints.ordererUrl, 0x0b2 /* "Missing orderer URL!" */);
|
|
110
|
+
let parsedUrl = parseFluidUrl(resolvedUrl.url);
|
|
111
|
+
if (!parsedUrl.pathname) {
|
|
112
|
+
throw new Error("Parsed url should contain tenant and doc Id!!");
|
|
113
|
+
}
|
|
114
|
+
const [, tenantId] = parsedUrl.pathname.split("/");
|
|
115
|
+
|
|
116
|
+
if (!isCombinedAppAndProtocolSummary(createNewSummary)) {
|
|
117
|
+
throw new Error("Protocol and App Summary required in the full summary");
|
|
118
|
+
}
|
|
119
|
+
const protocolSummary = createNewSummary.tree[".protocol"];
|
|
120
|
+
const appSummary = createNewSummary.tree[".app"];
|
|
121
|
+
|
|
122
|
+
const documentAttributes = getDocAttributesFromProtocolSummary(protocolSummary);
|
|
123
|
+
const quorumValues = getQuorumValuesFromProtocolSummary(protocolSummary);
|
|
52
124
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
125
|
+
const logger2 = createChildLogger({ logger, namespace: "RouterliciousDriver" });
|
|
126
|
+
const ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(
|
|
127
|
+
tenantId,
|
|
128
|
+
undefined /* documentId */,
|
|
129
|
+
this.tokenProvider,
|
|
130
|
+
logger2,
|
|
131
|
+
);
|
|
132
|
+
const rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);
|
|
133
|
+
const ordererRestWrapper = await RouterliciousOrdererRestWrapper.load(
|
|
134
|
+
ordererTokenFetcher,
|
|
135
|
+
logger2,
|
|
136
|
+
rateLimiter,
|
|
137
|
+
this.driverPolicies.enableRestLess,
|
|
138
|
+
resolvedUrl.endpoints.ordererUrl,
|
|
139
|
+
);
|
|
62
140
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
141
|
+
const res = await PerformanceEvent.timedExecAsync(
|
|
142
|
+
logger2,
|
|
143
|
+
{
|
|
144
|
+
eventName: "CreateNew",
|
|
145
|
+
details: JSON.stringify({
|
|
146
|
+
enableDiscovery: this.driverPolicies.enableDiscovery,
|
|
147
|
+
sequenceNumber: documentAttributes.sequenceNumber,
|
|
148
|
+
isEphemeralContainer: this.driverPolicies.isEphemeralContainer,
|
|
149
|
+
}),
|
|
150
|
+
},
|
|
151
|
+
async (event) => {
|
|
152
|
+
// @TODO: Remove returned "string" type when removing back-compat code
|
|
153
|
+
const postRes = (
|
|
154
|
+
await ordererRestWrapper.post<
|
|
155
|
+
{ id: string; token?: string; session?: ISession } | string
|
|
156
|
+
>(`/documents/${tenantId}`, {
|
|
157
|
+
summary: convertSummaryTreeToWholeSummaryTree(undefined, appSummary),
|
|
158
|
+
sequenceNumber: documentAttributes.sequenceNumber,
|
|
159
|
+
values: quorumValues,
|
|
160
|
+
enableDiscovery: this.driverPolicies.enableDiscovery,
|
|
161
|
+
generateToken: this.tokenProvider.documentPostCreateCallback !== undefined,
|
|
162
|
+
isEphemeralContainer: this.driverPolicies.isEphemeralContainer,
|
|
163
|
+
enableAnyBinaryBlobOnFirstSummary: true,
|
|
164
|
+
})
|
|
165
|
+
).content;
|
|
85
166
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const quorumValues = getQuorumValuesFromProtocolSummary(protocolSummary);
|
|
167
|
+
event.end({
|
|
168
|
+
docId: typeof postRes === "string" ? postRes : postRes.id,
|
|
169
|
+
});
|
|
170
|
+
return postRes;
|
|
171
|
+
},
|
|
172
|
+
);
|
|
93
173
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
tenantId,
|
|
98
|
-
undefined,
|
|
99
|
-
this.tokenProvider,
|
|
100
|
-
logger2,
|
|
101
|
-
rateLimiter,
|
|
102
|
-
this.driverPolicies.enableRestLess,
|
|
103
|
-
resolvedUrl.endpoints.ordererUrl,
|
|
104
|
-
);
|
|
174
|
+
// For supporting backward compatibility, when the request has generateToken === true, it will return
|
|
175
|
+
// an object instead of string
|
|
176
|
+
// @TODO: Remove the logic when no need to support back-compat
|
|
105
177
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const postRes = await ordererRestWrapper.post<
|
|
118
|
-
{ id: string; token?: string; session?: ISession; } | string
|
|
119
|
-
>(`/documents/${tenantId}`, {
|
|
120
|
-
summary: convertSummaryToCreateNewSummary(appSummary),
|
|
121
|
-
sequenceNumber: documentAttributes.sequenceNumber,
|
|
122
|
-
values: quorumValues,
|
|
123
|
-
enableDiscovery: this.driverPolicies.enableDiscovery,
|
|
124
|
-
generateToken:
|
|
125
|
-
this.tokenProvider.documentPostCreateCallback !==
|
|
126
|
-
undefined,
|
|
127
|
-
});
|
|
178
|
+
let documentId: string;
|
|
179
|
+
let token: string | undefined;
|
|
180
|
+
let session: ISession | undefined;
|
|
181
|
+
if (typeof res === "string") {
|
|
182
|
+
documentId = res;
|
|
183
|
+
} else {
|
|
184
|
+
documentId = res.id;
|
|
185
|
+
token = res.token;
|
|
186
|
+
session = this.driverPolicies.enableDiscovery ? res.session : undefined;
|
|
187
|
+
}
|
|
188
|
+
parsedUrl = parseFluidUrl(resolvedUrl.url);
|
|
128
189
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
190
|
+
// @TODO: Remove token from the condition, checking the documentPostCreateCallback !== undefined
|
|
191
|
+
// is sufficient to determine if the token will be undefined or not.
|
|
192
|
+
try {
|
|
193
|
+
await PerformanceEvent.timedExecAsync(
|
|
194
|
+
logger2,
|
|
195
|
+
{
|
|
196
|
+
eventName: "DocPostCreateCallback",
|
|
197
|
+
docId: documentId,
|
|
198
|
+
},
|
|
199
|
+
async () => {
|
|
200
|
+
if (token && this.tokenProvider.documentPostCreateCallback !== undefined) {
|
|
201
|
+
return this.tokenProvider.documentPostCreateCallback(documentId, token);
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
);
|
|
205
|
+
} catch (error: any) {
|
|
206
|
+
throw new DocumentPostCreateError(error);
|
|
207
|
+
}
|
|
135
208
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
209
|
+
parsedUrl.set("pathname", replaceDocumentIdInPath(parsedUrl.pathname, documentId));
|
|
210
|
+
const deltaStorageUrl = resolvedUrl.endpoints.deltaStorageUrl;
|
|
211
|
+
if (!deltaStorageUrl) {
|
|
212
|
+
throw new Error(
|
|
213
|
+
`All endpoints urls must be provided. [deltaStorageUrl:${deltaStorageUrl}]`,
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
const parsedDeltaStorageUrl = new URL(deltaStorageUrl);
|
|
217
|
+
parsedDeltaStorageUrl.pathname = replaceDocumentIdInPath(
|
|
218
|
+
parsedDeltaStorageUrl.pathname,
|
|
219
|
+
documentId,
|
|
220
|
+
);
|
|
139
221
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
222
|
+
return this.createDocumentService(
|
|
223
|
+
{
|
|
224
|
+
...resolvedUrl,
|
|
225
|
+
url: parsedUrl.toString(),
|
|
226
|
+
id: documentId,
|
|
227
|
+
endpoints: {
|
|
228
|
+
...resolvedUrl.endpoints,
|
|
229
|
+
deltaStorageUrl: parsedDeltaStorageUrl.toString(),
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
logger,
|
|
233
|
+
clientIsSummarizer,
|
|
234
|
+
session,
|
|
235
|
+
);
|
|
236
|
+
}
|
|
151
237
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
238
|
+
/**
|
|
239
|
+
* {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createDocumentService}
|
|
240
|
+
*
|
|
241
|
+
* @returns Routerlicious document service.
|
|
242
|
+
*/
|
|
243
|
+
public async createDocumentService(
|
|
244
|
+
resolvedUrl: IResolvedUrl,
|
|
245
|
+
logger?: ITelemetryBaseLogger,
|
|
246
|
+
clientIsSummarizer?: boolean,
|
|
247
|
+
session?: ISession,
|
|
248
|
+
): Promise<IDocumentService> {
|
|
249
|
+
const parsedUrl = parseFluidUrl(resolvedUrl.url);
|
|
250
|
+
const [, tenantId, documentId] = parsedUrl.pathname.split("/");
|
|
251
|
+
if (!documentId || !tenantId) {
|
|
252
|
+
throw new Error(
|
|
253
|
+
`Couldn't parse documentId and/or tenantId. [documentId:${documentId}][tenantId:${tenantId}]`,
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
const logger2 = createChildLogger({
|
|
257
|
+
logger,
|
|
258
|
+
namespace: "RouterliciousDriver",
|
|
259
|
+
properties: {
|
|
260
|
+
all: { driverVersion },
|
|
261
|
+
},
|
|
262
|
+
});
|
|
169
263
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
264
|
+
const ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(
|
|
265
|
+
tenantId,
|
|
266
|
+
documentId,
|
|
267
|
+
this.tokenProvider,
|
|
268
|
+
logger2,
|
|
269
|
+
);
|
|
270
|
+
const storageTokenFetcher = toInstrumentedR11sStorageTokenFetcher(
|
|
271
|
+
tenantId,
|
|
272
|
+
documentId,
|
|
273
|
+
this.tokenProvider,
|
|
274
|
+
logger2,
|
|
275
|
+
);
|
|
276
|
+
const ordererTokenP = ordererTokenFetcher();
|
|
277
|
+
const storageTokenP = storageTokenFetcher();
|
|
178
278
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
},
|
|
189
|
-
logger,
|
|
190
|
-
clientIsSummarizer,
|
|
191
|
-
session,
|
|
192
|
-
);
|
|
193
|
-
}
|
|
279
|
+
const rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);
|
|
280
|
+
const ordererRestWrapper = await RouterliciousOrdererRestWrapper.load(
|
|
281
|
+
ordererTokenFetcher,
|
|
282
|
+
logger2,
|
|
283
|
+
rateLimiter,
|
|
284
|
+
this.driverPolicies.enableRestLess,
|
|
285
|
+
undefined /* baseUrl */,
|
|
286
|
+
ordererTokenP,
|
|
287
|
+
);
|
|
194
288
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
*/
|
|
200
|
-
public async createDocumentService(
|
|
201
|
-
resolvedUrl: IResolvedUrl,
|
|
202
|
-
logger?: ITelemetryBaseLogger,
|
|
203
|
-
clientIsSummarizer?: boolean,
|
|
204
|
-
session?: ISession,
|
|
205
|
-
): Promise<IDocumentService> {
|
|
206
|
-
ensureFluidResolvedUrl(resolvedUrl);
|
|
289
|
+
const discoverFluidResolvedUrl = async (): Promise<IResolvedUrl> => {
|
|
290
|
+
if (!this.driverPolicies.enableDiscovery) {
|
|
291
|
+
return resolvedUrl;
|
|
292
|
+
}
|
|
207
293
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
294
|
+
const discoveredSession = await PerformanceEvent.timedExecAsync(
|
|
295
|
+
logger2,
|
|
296
|
+
{
|
|
297
|
+
eventName: "DiscoverSession",
|
|
298
|
+
docId: documentId,
|
|
299
|
+
},
|
|
300
|
+
async (event) => {
|
|
301
|
+
// The service responds with the current document session associated with the container.
|
|
302
|
+
const response = await ordererRestWrapper.get<ISession>(
|
|
303
|
+
`${resolvedUrl.endpoints.ordererUrl}/documents/${tenantId}/session/${documentId}`,
|
|
304
|
+
);
|
|
305
|
+
event.end({
|
|
306
|
+
...response.propsToLog,
|
|
307
|
+
...getW3CData(response.requestUrl, "xmlhttprequest"),
|
|
308
|
+
});
|
|
309
|
+
return response.content;
|
|
310
|
+
},
|
|
311
|
+
);
|
|
312
|
+
return getDiscoveredFluidResolvedUrl(resolvedUrl, discoveredSession);
|
|
313
|
+
};
|
|
314
|
+
const fluidResolvedUrl: IResolvedUrl =
|
|
315
|
+
session !== undefined
|
|
316
|
+
? getDiscoveredFluidResolvedUrl(resolvedUrl, session)
|
|
317
|
+
: await discoverFluidResolvedUrl();
|
|
215
318
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
logger2,
|
|
226
|
-
rateLimiter,
|
|
227
|
-
this.driverPolicies.enableRestLess,
|
|
228
|
-
resolvedUrl.endpoints.ordererUrl,
|
|
229
|
-
);
|
|
319
|
+
const storageUrl = fluidResolvedUrl.endpoints.storageUrl;
|
|
320
|
+
const ordererUrl = fluidResolvedUrl.endpoints.ordererUrl;
|
|
321
|
+
const deltaStorageUrl = fluidResolvedUrl.endpoints.deltaStorageUrl;
|
|
322
|
+
const deltaStreamUrl = fluidResolvedUrl.endpoints.deltaStreamUrl || ordererUrl; // backward compatibility
|
|
323
|
+
if (!ordererUrl || !deltaStorageUrl) {
|
|
324
|
+
throw new Error(
|
|
325
|
+
`All endpoints urls must be provided. [ordererUrl:${ordererUrl}][deltaStorageUrl:${deltaStorageUrl}]`,
|
|
326
|
+
);
|
|
327
|
+
}
|
|
230
328
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
`/documents/${tenantId}/session/${documentId}`);
|
|
241
|
-
});
|
|
242
|
-
return getDiscoveredFluidResolvedUrl(resolvedUrl, discoveredSession);
|
|
243
|
-
};
|
|
244
|
-
const fluidResolvedUrl: IFluidResolvedUrl = session !== undefined
|
|
245
|
-
? getDiscoveredFluidResolvedUrl(resolvedUrl, session)
|
|
246
|
-
: await discoverFluidResolvedUrl();
|
|
329
|
+
const storageRestWrapper = await RouterliciousStorageRestWrapper.load(
|
|
330
|
+
tenantId,
|
|
331
|
+
storageTokenFetcher,
|
|
332
|
+
logger2,
|
|
333
|
+
new RateLimiter(this.driverPolicies.maxConcurrentStorageRequests),
|
|
334
|
+
this.driverPolicies.enableRestLess,
|
|
335
|
+
storageUrl,
|
|
336
|
+
storageTokenP,
|
|
337
|
+
);
|
|
247
338
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
}
|
|
339
|
+
const documentStorageServicePolicies: IDocumentStorageServicePolicies = {
|
|
340
|
+
caching: this.driverPolicies.enablePrefetch
|
|
341
|
+
? LoaderCachingPolicy.Prefetch
|
|
342
|
+
: LoaderCachingPolicy.NoCaching,
|
|
343
|
+
maximumCacheDurationMs: maximumSnapshotCacheDurationMs,
|
|
344
|
+
};
|
|
255
345
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
346
|
+
return new DocumentService(
|
|
347
|
+
fluidResolvedUrl,
|
|
348
|
+
ordererUrl,
|
|
349
|
+
deltaStorageUrl,
|
|
350
|
+
deltaStreamUrl,
|
|
351
|
+
storageUrl,
|
|
352
|
+
logger2,
|
|
353
|
+
this.tokenProvider,
|
|
354
|
+
tenantId,
|
|
355
|
+
documentId,
|
|
356
|
+
ordererRestWrapper,
|
|
357
|
+
documentStorageServicePolicies,
|
|
358
|
+
this.driverPolicies,
|
|
359
|
+
this.blobCache,
|
|
360
|
+
this.wholeSnapshotTreeCache,
|
|
361
|
+
this.shreddedSummaryTreeCache,
|
|
362
|
+
discoverFluidResolvedUrl,
|
|
363
|
+
storageRestWrapper,
|
|
364
|
+
storageTokenFetcher,
|
|
365
|
+
ordererTokenFetcher,
|
|
366
|
+
);
|
|
367
|
+
}
|
|
270
368
|
}
|
|
271
369
|
|
|
272
370
|
/**
|
|
@@ -279,18 +377,21 @@ export class RouterliciousDocumentServiceFactory implements IDocumentServiceFact
|
|
|
279
377
|
* @remarks TODO: examples of suggested actions for recovery.
|
|
280
378
|
* - How would a user delete the created document?
|
|
281
379
|
* - What would a retry pattern look like here?
|
|
380
|
+
* @internal
|
|
282
381
|
*/
|
|
283
382
|
export class DocumentPostCreateError extends Error {
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
383
|
+
public constructor(
|
|
384
|
+
/**
|
|
385
|
+
* Inner error being wrapped.
|
|
386
|
+
*/
|
|
387
|
+
private readonly innerError: Error,
|
|
388
|
+
) {
|
|
389
|
+
super(innerError.message);
|
|
390
|
+
}
|
|
292
391
|
|
|
293
|
-
|
|
392
|
+
public readonly name = "DocumentPostCreateError";
|
|
294
393
|
|
|
295
|
-
|
|
394
|
+
public get stack() {
|
|
395
|
+
return this.innerError.stack;
|
|
396
|
+
}
|
|
296
397
|
}
|