@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
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { AxiosRequestConfig, AxiosRequestHeaders } from "axios";
|
|
7
|
+
import { IR11sResponse } from "./restWrapper";
|
|
8
|
+
|
|
9
|
+
export abstract class RestWrapper {
|
|
10
|
+
constructor(
|
|
11
|
+
protected readonly baseurl?: string,
|
|
12
|
+
protected defaultQueryString: QueryStringType = {},
|
|
13
|
+
protected readonly maxBodyLength = 1000 * 1024 * 1024,
|
|
14
|
+
protected readonly maxContentLength = 1000 * 1024 * 1024,
|
|
15
|
+
) {}
|
|
16
|
+
|
|
17
|
+
public async get<T>(
|
|
18
|
+
url: string,
|
|
19
|
+
queryString?: QueryStringType,
|
|
20
|
+
headers?: AxiosRequestHeaders,
|
|
21
|
+
additionalOptions?: Partial<
|
|
22
|
+
Omit<
|
|
23
|
+
AxiosRequestConfig,
|
|
24
|
+
"baseURL" | "headers" | "maxBodyLength" | "maxContentLength" | "method" | "url"
|
|
25
|
+
>
|
|
26
|
+
>,
|
|
27
|
+
): Promise<IR11sResponse<T>> {
|
|
28
|
+
const options: AxiosRequestConfig = {
|
|
29
|
+
...additionalOptions,
|
|
30
|
+
baseURL: this.baseurl,
|
|
31
|
+
headers,
|
|
32
|
+
maxBodyLength: this.maxBodyLength,
|
|
33
|
+
maxContentLength: this.maxContentLength,
|
|
34
|
+
method: "GET",
|
|
35
|
+
url: `${url}${this.generateQueryString(queryString)}`,
|
|
36
|
+
};
|
|
37
|
+
return this.request<T>(options, 200);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public async post<T>(
|
|
41
|
+
url: string,
|
|
42
|
+
requestBody: any,
|
|
43
|
+
queryString?: QueryStringType,
|
|
44
|
+
headers?: AxiosRequestHeaders,
|
|
45
|
+
additionalOptions?: Partial<
|
|
46
|
+
Omit<
|
|
47
|
+
AxiosRequestConfig,
|
|
48
|
+
"baseURL" | "headers" | "maxBodyLength" | "maxContentLength" | "method" | "url"
|
|
49
|
+
>
|
|
50
|
+
>,
|
|
51
|
+
): Promise<IR11sResponse<T>> {
|
|
52
|
+
const options: AxiosRequestConfig = {
|
|
53
|
+
...additionalOptions,
|
|
54
|
+
baseURL: this.baseurl,
|
|
55
|
+
data: requestBody,
|
|
56
|
+
headers,
|
|
57
|
+
maxBodyLength: this.maxBodyLength,
|
|
58
|
+
maxContentLength: this.maxContentLength,
|
|
59
|
+
method: "POST",
|
|
60
|
+
url: `${url}${this.generateQueryString(queryString)}`,
|
|
61
|
+
};
|
|
62
|
+
return this.request<T>(options, 201);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public async delete<T>(
|
|
66
|
+
url: string,
|
|
67
|
+
queryString?: QueryStringType,
|
|
68
|
+
headers?: AxiosRequestHeaders,
|
|
69
|
+
additionalOptions?: Partial<
|
|
70
|
+
Omit<
|
|
71
|
+
AxiosRequestConfig,
|
|
72
|
+
"baseURL" | "headers" | "maxBodyLength" | "maxContentLength" | "method" | "url"
|
|
73
|
+
>
|
|
74
|
+
>,
|
|
75
|
+
): Promise<IR11sResponse<T>> {
|
|
76
|
+
const options: AxiosRequestConfig = {
|
|
77
|
+
...additionalOptions,
|
|
78
|
+
baseURL: this.baseurl,
|
|
79
|
+
headers,
|
|
80
|
+
maxBodyLength: this.maxBodyLength,
|
|
81
|
+
maxContentLength: this.maxContentLength,
|
|
82
|
+
method: "DELETE",
|
|
83
|
+
url: `${url}${this.generateQueryString(queryString)}`,
|
|
84
|
+
};
|
|
85
|
+
return this.request<T>(options, 204);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
public async patch<T>(
|
|
89
|
+
url: string,
|
|
90
|
+
requestBody: any,
|
|
91
|
+
queryString?: QueryStringType,
|
|
92
|
+
headers?: AxiosRequestHeaders,
|
|
93
|
+
additionalOptions?: Partial<
|
|
94
|
+
Omit<
|
|
95
|
+
AxiosRequestConfig,
|
|
96
|
+
"baseURL" | "headers" | "maxBodyLength" | "maxContentLength" | "method" | "url"
|
|
97
|
+
>
|
|
98
|
+
>,
|
|
99
|
+
): Promise<IR11sResponse<T>> {
|
|
100
|
+
const options: AxiosRequestConfig = {
|
|
101
|
+
...additionalOptions,
|
|
102
|
+
baseURL: this.baseurl,
|
|
103
|
+
data: requestBody,
|
|
104
|
+
headers,
|
|
105
|
+
maxBodyLength: this.maxBodyLength,
|
|
106
|
+
maxContentLength: this.maxContentLength,
|
|
107
|
+
method: "PATCH",
|
|
108
|
+
url: `${url}${this.generateQueryString(queryString)}`,
|
|
109
|
+
};
|
|
110
|
+
return this.request<T>(options, 200);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
protected abstract request<T>(
|
|
114
|
+
options: AxiosRequestConfig,
|
|
115
|
+
statusCode: number,
|
|
116
|
+
addNetworkCallProps?: boolean,
|
|
117
|
+
): Promise<IR11sResponse<T>>;
|
|
118
|
+
|
|
119
|
+
protected generateQueryString(queryStringValues?: QueryStringType) {
|
|
120
|
+
if (this.defaultQueryString || queryStringValues) {
|
|
121
|
+
const queryStringMap = { ...this.defaultQueryString, ...queryStringValues };
|
|
122
|
+
|
|
123
|
+
return getQueryString(queryStringMap);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return "";
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Generates query string from the given query parameters.
|
|
132
|
+
* @param queryParams - Query parameters from which to create a query.
|
|
133
|
+
*/
|
|
134
|
+
export function getQueryString(queryParams: QueryStringType): string {
|
|
135
|
+
let queryString = "";
|
|
136
|
+
for (const key of Object.keys(queryParams)) {
|
|
137
|
+
if (queryParams[key] !== undefined) {
|
|
138
|
+
const startChar = queryString === "" ? "?" : "&";
|
|
139
|
+
queryString += `${startChar}${key}=${encodeURIComponent(queryParams[key])}`;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return queryString;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export type QueryStringType = Record<string, string | number | boolean>;
|
|
@@ -4,162 +4,85 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type * as git from "@fluidframework/gitresources";
|
|
7
|
-
import type * as protocol from "@fluidframework/protocol-definitions";
|
|
8
7
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
IWholeSummaryPayload,
|
|
12
|
-
IWriteSummaryResponse,
|
|
8
|
+
IWholeSummaryPayload,
|
|
9
|
+
IWriteSummaryResponse,
|
|
13
10
|
} from "@fluidframework/server-services-client";
|
|
14
11
|
import { runWithRetry } from "@fluidframework/driver-utils";
|
|
15
|
-
import {
|
|
12
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
13
|
+
import { IGitManager } from "./storageContracts";
|
|
14
|
+
import { IR11sResponse } from "./restWrapper";
|
|
15
|
+
import { IWholeFlatSnapshot } from "./contracts";
|
|
16
16
|
|
|
17
17
|
export class RetriableGitManager implements IGitManager {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
public async createTree(files: protocol.ITree): Promise<git.ITree> {
|
|
92
|
-
return this.runWithRetry(
|
|
93
|
-
async () => this.internalGitManager.createTree(files),
|
|
94
|
-
"gitManager_createTree",
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
public async createCommit(commit: git.ICreateCommitParams): Promise<git.ICommit> {
|
|
99
|
-
return this.runWithRetry(
|
|
100
|
-
async () => this.internalGitManager.createCommit(commit),
|
|
101
|
-
"gitManager_createCommit",
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
public async getRef(ref: string): Promise<git.IRef> {
|
|
106
|
-
return this.runWithRetry(
|
|
107
|
-
async () => this.internalGitManager.getRef(ref),
|
|
108
|
-
"gitManager_getRef",
|
|
109
|
-
);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
public async createRef(branch: string, sha: string): Promise<git.IRef> {
|
|
113
|
-
return this.runWithRetry(
|
|
114
|
-
async () => this.internalGitManager.createRef(branch, sha),
|
|
115
|
-
"gitManager_createRef",
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
public async upsertRef(branch: string, commitSha: string): Promise<git.IRef> {
|
|
120
|
-
return this.runWithRetry(
|
|
121
|
-
async () => this.internalGitManager.upsertRef(branch, commitSha),
|
|
122
|
-
"gitManager_upsertRef",
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
public async write(branch: string,
|
|
127
|
-
inputTree: protocol.ITree,
|
|
128
|
-
parents: string[],
|
|
129
|
-
message: string): Promise<git.ICommit> {
|
|
130
|
-
return this.runWithRetry(
|
|
131
|
-
async () => this.internalGitManager.write(branch, inputTree, parents, message),
|
|
132
|
-
"gitManager_write",
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
public async createSummary(summary: IWholeSummaryPayload): Promise<IWriteSummaryResponse> {
|
|
137
|
-
return this.runWithRetry(
|
|
138
|
-
async () => this.internalGitManager.createSummary(summary),
|
|
139
|
-
"gitManager_createSummary",
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
public async deleteSummary(softDelete: boolean): Promise<void> {
|
|
144
|
-
return this.runWithRetry(
|
|
145
|
-
async () => this.internalGitManager.deleteSummary(softDelete),
|
|
146
|
-
"gitManager_deleteSummary",
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
public async getSummary(sha: string): Promise<IWholeFlatSummary> {
|
|
151
|
-
return this.runWithRetry(
|
|
152
|
-
async () => this.internalGitManager.getSummary(sha),
|
|
153
|
-
"gitManager_getSummary",
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
private async runWithRetry<T>(api: () => Promise<T>, callName: string): Promise<T> {
|
|
158
|
-
return runWithRetry(
|
|
159
|
-
api,
|
|
160
|
-
callName,
|
|
161
|
-
this.logger,
|
|
162
|
-
{}, // progress
|
|
163
|
-
);
|
|
164
|
-
}
|
|
18
|
+
constructor(
|
|
19
|
+
private readonly internalGitManager: IGitManager,
|
|
20
|
+
private readonly logger: ITelemetryLoggerExt,
|
|
21
|
+
) {}
|
|
22
|
+
|
|
23
|
+
public async getCommits(
|
|
24
|
+
sha: string,
|
|
25
|
+
count: number,
|
|
26
|
+
): Promise<IR11sResponse<git.ICommitDetails[]>> {
|
|
27
|
+
return this.runWithRetry(
|
|
28
|
+
async () => this.internalGitManager.getCommits(sha, count),
|
|
29
|
+
"gitManager_getCommits",
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public async getTree(root: string, recursive: boolean): Promise<IR11sResponse<git.ITree>> {
|
|
34
|
+
return this.runWithRetry(
|
|
35
|
+
async () => this.internalGitManager.getTree(root, recursive),
|
|
36
|
+
"gitManager_getTree",
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public async getBlob(sha: string): Promise<IR11sResponse<git.IBlob>> {
|
|
41
|
+
return this.runWithRetry(
|
|
42
|
+
async () => this.internalGitManager.getBlob(sha),
|
|
43
|
+
"gitManager_getBlob",
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public async createBlob(
|
|
48
|
+
content: string,
|
|
49
|
+
encoding: string,
|
|
50
|
+
): Promise<IR11sResponse<git.ICreateBlobResponse>> {
|
|
51
|
+
return this.runWithRetry(
|
|
52
|
+
async () => this.internalGitManager.createBlob(content, encoding),
|
|
53
|
+
"gitManager_createBlob",
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public async createGitTree(params: git.ICreateTreeParams): Promise<IR11sResponse<git.ITree>> {
|
|
58
|
+
return this.runWithRetry(
|
|
59
|
+
async () => this.internalGitManager.createGitTree(params),
|
|
60
|
+
"gitManager_createGitTree",
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public async createSummary(
|
|
65
|
+
summary: IWholeSummaryPayload,
|
|
66
|
+
): Promise<IR11sResponse<IWriteSummaryResponse>> {
|
|
67
|
+
return this.runWithRetry(
|
|
68
|
+
async () => this.internalGitManager.createSummary(summary),
|
|
69
|
+
"gitManager_createSummary",
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public async getSnapshot(sha: string): Promise<IR11sResponse<IWholeFlatSnapshot>> {
|
|
74
|
+
return this.runWithRetry(
|
|
75
|
+
async () => this.internalGitManager.getSnapshot(sha),
|
|
76
|
+
"gitManager_getSummary",
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
private async runWithRetry<T>(api: () => Promise<T>, callName: string): Promise<T> {
|
|
81
|
+
return runWithRetry(
|
|
82
|
+
api,
|
|
83
|
+
callName,
|
|
84
|
+
this.logger,
|
|
85
|
+
{}, // progress
|
|
86
|
+
);
|
|
87
|
+
}
|
|
165
88
|
}
|