@fluidframework/routerlicious-driver 2.74.0 → 2.81.0-374083
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/CHANGELOG.md +4 -0
- package/dist/documentDeltaConnection.d.ts.map +1 -1
- package/dist/documentDeltaConnection.js +2 -1
- package/dist/documentDeltaConnection.js.map +1 -1
- package/dist/errorUtils.d.ts +1 -0
- package/dist/errorUtils.d.ts.map +1 -1
- package/dist/historian.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/r11sLayerCompatState.d.ts.map +1 -1
- package/dist/r11sLayerCompatState.js +2 -1
- package/dist/r11sLayerCompatState.js.map +1 -1
- package/{lib/axios.cjs → dist/request.cjs} +1 -1
- package/dist/request.cjs.map +1 -0
- package/dist/request.d.cts +30 -0
- package/dist/request.d.cts.map +1 -0
- package/dist/restWrapper.d.ts +2 -2
- package/dist/restWrapper.d.ts.map +1 -1
- package/dist/restWrapper.js +9 -5
- package/dist/restWrapper.js.map +1 -1
- package/dist/restWrapperBase.d.ts +7 -7
- package/dist/restWrapperBase.d.ts.map +1 -1
- package/dist/restWrapperBase.js.map +1 -1
- package/dist/shreddedSummaryDocumentStorageService.d.ts.map +1 -1
- package/dist/shreddedSummaryDocumentStorageService.js +1 -0
- package/dist/shreddedSummaryDocumentStorageService.js.map +1 -1
- package/dist/wholeSummaryDocumentStorageService.d.ts.map +1 -1
- package/dist/wholeSummaryDocumentStorageService.js +1 -0
- package/dist/wholeSummaryDocumentStorageService.js.map +1 -1
- package/eslint.config.mts +4 -4
- package/lib/documentDeltaConnection.d.ts.map +1 -1
- package/lib/documentDeltaConnection.js +2 -1
- package/lib/documentDeltaConnection.js.map +1 -1
- package/lib/errorUtils.d.ts +1 -0
- package/lib/errorUtils.d.ts.map +1 -1
- package/lib/historian.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/r11sLayerCompatState.d.ts.map +1 -1
- package/lib/r11sLayerCompatState.js +2 -1
- package/lib/r11sLayerCompatState.js.map +1 -1
- package/{dist/axios.cjs → lib/request.cjs} +1 -1
- package/lib/request.cjs.map +1 -0
- package/lib/request.d.cts +30 -0
- package/lib/request.d.cts.map +1 -0
- package/lib/restWrapper.d.ts +2 -2
- package/lib/restWrapper.d.ts.map +1 -1
- package/lib/restWrapper.js +9 -5
- package/lib/restWrapper.js.map +1 -1
- package/lib/restWrapperBase.d.ts +7 -7
- package/lib/restWrapperBase.d.ts.map +1 -1
- package/lib/restWrapperBase.js.map +1 -1
- package/lib/shreddedSummaryDocumentStorageService.d.ts.map +1 -1
- package/lib/shreddedSummaryDocumentStorageService.js +1 -0
- package/lib/shreddedSummaryDocumentStorageService.js.map +1 -1
- package/lib/wholeSummaryDocumentStorageService.d.ts.map +1 -1
- package/lib/wholeSummaryDocumentStorageService.js +1 -0
- package/lib/wholeSummaryDocumentStorageService.js.map +1 -1
- package/package.json +21 -22
- package/src/documentDeltaConnection.ts +1 -0
- package/src/historian.ts +1 -1
- package/src/packageVersion.ts +1 -1
- package/src/r11sLayerCompatState.ts +2 -2
- package/src/request.cts +32 -0
- package/src/restWrapper.ts +16 -12
- package/src/restWrapperBase.ts +15 -15
- package/src/shreddedSummaryDocumentStorageService.ts +1 -0
- package/src/wholeSummaryDocumentStorageService.ts +1 -0
- package/.eslintrc.cjs +0 -23
- package/dist/axios.cjs.map +0 -1
- package/dist/axios.d.cts +0 -7
- package/dist/axios.d.cts.map +0 -1
- package/lib/axios.cjs.map +0 -1
- package/lib/axios.d.cts +0 -7
- package/lib/axios.d.cts.map +0 -1
- package/src/axios.cts +0 -8
package/src/restWrapper.ts
CHANGED
|
@@ -25,7 +25,6 @@ import {
|
|
|
25
25
|
import fetch from "cross-fetch";
|
|
26
26
|
import safeStringify from "json-stringify-safe";
|
|
27
27
|
|
|
28
|
-
import type { AxiosRequestConfig, RawAxiosRequestHeaders } from "./axios.cjs";
|
|
29
28
|
import {
|
|
30
29
|
getUrlForTelemetry,
|
|
31
30
|
RouterliciousErrorTypes,
|
|
@@ -33,21 +32,22 @@ import {
|
|
|
33
32
|
} from "./errorUtils.js";
|
|
34
33
|
import { pkgVersion as driverVersion } from "./packageVersion.js";
|
|
35
34
|
import { addOrUpdateQueryParams, type QueryStringType } from "./queryStringUtils.js";
|
|
35
|
+
import type { RequestConfig, RawRequestHeaders } from "./request.cjs";
|
|
36
36
|
import { RestWrapper } from "./restWrapperBase.js";
|
|
37
37
|
import { ITokenProvider, ITokenResponse } from "./tokens.js";
|
|
38
38
|
|
|
39
39
|
type AuthorizationHeaderGetter = (token: ITokenResponse) => string;
|
|
40
40
|
export type TokenFetcher = (refresh?: boolean) => Promise<ITokenResponse>;
|
|
41
41
|
|
|
42
|
-
const buildRequestUrl = (requestConfig:
|
|
42
|
+
const buildRequestUrl = (requestConfig: RequestConfig): string =>
|
|
43
43
|
requestConfig.baseURL !== undefined
|
|
44
44
|
? `${requestConfig.baseURL ?? ""}${requestConfig.url ?? ""}`
|
|
45
45
|
: (requestConfig.url ?? "");
|
|
46
46
|
|
|
47
|
-
const
|
|
47
|
+
const buildRequestInitConfig = (requestConfig: RequestConfig): RequestInit => {
|
|
48
48
|
const requestInit: RequestInit = {
|
|
49
49
|
method: requestConfig.method,
|
|
50
|
-
// NOTE:
|
|
50
|
+
// NOTE: Although the RequestHeaders type permits non-string values in the header, here we are
|
|
51
51
|
// guaranteed the requestConfig only has string values in its header.
|
|
52
52
|
headers: requestConfig.headers as Record<string, string>,
|
|
53
53
|
body: requestConfig.data,
|
|
@@ -139,7 +139,7 @@ class RouterliciousRestWrapper extends RestWrapper {
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
protected async request<T>(
|
|
142
|
-
requestConfig:
|
|
142
|
+
requestConfig: RequestConfig,
|
|
143
143
|
statusCode: number,
|
|
144
144
|
canRetry = true,
|
|
145
145
|
): Promise<IR11sResponse<T>> {
|
|
@@ -151,7 +151,7 @@ class RouterliciousRestWrapper extends RestWrapper {
|
|
|
151
151
|
// Build the complete request url including baseUrl, url and query params. (all except 'retry' query param)
|
|
152
152
|
let completeRequestUrl = addOrUpdateQueryParams(
|
|
153
153
|
buildRequestUrl(requestConfig),
|
|
154
|
-
requestConfig.params,
|
|
154
|
+
requestConfig.params ?? {},
|
|
155
155
|
);
|
|
156
156
|
|
|
157
157
|
// Check whether this request has been made before or if it is a retry.
|
|
@@ -164,13 +164,17 @@ class RouterliciousRestWrapper extends RestWrapper {
|
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
-
const config = {
|
|
167
|
+
const config: RequestConfig = {
|
|
168
168
|
...requestConfig,
|
|
169
169
|
headers: await this.generateHeaders(requestConfig.headers),
|
|
170
170
|
};
|
|
171
171
|
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
// RestLessClient.translate() returns AxiosRequestConfig (from server-services-client),
|
|
173
|
+
// which is structurally compatible with our RequestConfig type.
|
|
174
|
+
const translatedConfig: RequestConfig = this.useRestLess
|
|
175
|
+
? (this.restLess.translate(config) as RequestConfig)
|
|
176
|
+
: config;
|
|
177
|
+
const fetchRequestConfig = buildRequestInitConfig(translatedConfig);
|
|
174
178
|
|
|
175
179
|
const res = await this.rateLimiter.schedule(async () => {
|
|
176
180
|
const perfStart = performanceNow();
|
|
@@ -292,11 +296,11 @@ class RouterliciousRestWrapper extends RestWrapper {
|
|
|
292
296
|
}
|
|
293
297
|
|
|
294
298
|
private async generateHeaders(
|
|
295
|
-
requestHeaders?:
|
|
296
|
-
): Promise<
|
|
299
|
+
requestHeaders?: RawRequestHeaders | undefined,
|
|
300
|
+
): Promise<RawRequestHeaders> {
|
|
297
301
|
const token = await this.getToken();
|
|
298
302
|
assert(token !== undefined, 0x679 /* token should be present */);
|
|
299
|
-
const headers:
|
|
303
|
+
const headers: RawRequestHeaders = {
|
|
300
304
|
...requestHeaders,
|
|
301
305
|
[DriverVersionHeaderName]: driverVersion,
|
|
302
306
|
// NOTE: If this.authorizationHeader is undefined, should "Authorization" be removed entirely?
|
package/src/restWrapperBase.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type {
|
|
7
|
-
import {
|
|
6
|
+
import type { QueryStringType } from "./queryStringUtils.js";
|
|
7
|
+
import type { RequestConfig, RequestHeaders } from "./request.cjs";
|
|
8
8
|
import { IR11sResponse } from "./restWrapper.js";
|
|
9
9
|
|
|
10
10
|
export abstract class RestWrapper {
|
|
@@ -24,15 +24,15 @@ export abstract class RestWrapper {
|
|
|
24
24
|
public async get<T>(
|
|
25
25
|
url: string,
|
|
26
26
|
queryString?: QueryStringType,
|
|
27
|
-
headers?:
|
|
27
|
+
headers?: RequestHeaders,
|
|
28
28
|
additionalOptions?: Partial<
|
|
29
29
|
Omit<
|
|
30
|
-
|
|
30
|
+
RequestConfig,
|
|
31
31
|
"baseURL" | "headers" | "maxBodyLength" | "maxContentLength" | "method" | "url"
|
|
32
32
|
>
|
|
33
33
|
>,
|
|
34
34
|
): Promise<IR11sResponse<T>> {
|
|
35
|
-
const options:
|
|
35
|
+
const options: RequestConfig = {
|
|
36
36
|
...additionalOptions,
|
|
37
37
|
baseURL: this.baseurl,
|
|
38
38
|
headers,
|
|
@@ -56,15 +56,15 @@ export abstract class RestWrapper {
|
|
|
56
56
|
url: string,
|
|
57
57
|
requestBody: any,
|
|
58
58
|
queryString?: QueryStringType,
|
|
59
|
-
headers?:
|
|
59
|
+
headers?: RequestHeaders,
|
|
60
60
|
additionalOptions?: Partial<
|
|
61
61
|
Omit<
|
|
62
|
-
|
|
62
|
+
RequestConfig,
|
|
63
63
|
"baseURL" | "headers" | "maxBodyLength" | "maxContentLength" | "method" | "url"
|
|
64
64
|
>
|
|
65
65
|
>,
|
|
66
66
|
): Promise<IR11sResponse<T>> {
|
|
67
|
-
const options:
|
|
67
|
+
const options: RequestConfig = {
|
|
68
68
|
...additionalOptions,
|
|
69
69
|
baseURL: this.baseurl,
|
|
70
70
|
data: requestBody,
|
|
@@ -87,15 +87,15 @@ export abstract class RestWrapper {
|
|
|
87
87
|
public async delete<T>(
|
|
88
88
|
url: string,
|
|
89
89
|
queryString?: QueryStringType,
|
|
90
|
-
headers?:
|
|
90
|
+
headers?: RequestHeaders,
|
|
91
91
|
additionalOptions?: Partial<
|
|
92
92
|
Omit<
|
|
93
|
-
|
|
93
|
+
RequestConfig,
|
|
94
94
|
"baseURL" | "headers" | "maxBodyLength" | "maxContentLength" | "method" | "url"
|
|
95
95
|
>
|
|
96
96
|
>,
|
|
97
97
|
): Promise<IR11sResponse<T>> {
|
|
98
|
-
const options:
|
|
98
|
+
const options: RequestConfig = {
|
|
99
99
|
...additionalOptions,
|
|
100
100
|
baseURL: this.baseurl,
|
|
101
101
|
headers,
|
|
@@ -119,15 +119,15 @@ export abstract class RestWrapper {
|
|
|
119
119
|
url: string,
|
|
120
120
|
requestBody: any,
|
|
121
121
|
queryString?: QueryStringType,
|
|
122
|
-
headers?:
|
|
122
|
+
headers?: RequestHeaders,
|
|
123
123
|
additionalOptions?: Partial<
|
|
124
124
|
Omit<
|
|
125
|
-
|
|
125
|
+
RequestConfig,
|
|
126
126
|
"baseURL" | "headers" | "maxBodyLength" | "maxContentLength" | "method" | "url"
|
|
127
127
|
>
|
|
128
128
|
>,
|
|
129
129
|
): Promise<IR11sResponse<T>> {
|
|
130
|
-
const options:
|
|
130
|
+
const options: RequestConfig = {
|
|
131
131
|
...additionalOptions,
|
|
132
132
|
baseURL: this.baseurl,
|
|
133
133
|
data: requestBody,
|
|
@@ -142,7 +142,7 @@ export abstract class RestWrapper {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
protected abstract request<T>(
|
|
145
|
-
options:
|
|
145
|
+
options: RequestConfig,
|
|
146
146
|
statusCode: number,
|
|
147
147
|
addNetworkCallProps?: boolean,
|
|
148
148
|
): Promise<IR11sResponse<T>>;
|
|
@@ -76,6 +76,7 @@ export class ShreddedSummaryDocumentStorageService implements IDocumentStorageSe
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
public async getVersions(versionId: string | null, count: number): Promise<IVersion[]> {
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- using ?? could change behavior for falsy values
|
|
79
80
|
const id = versionId ? versionId : this.id;
|
|
80
81
|
const commits = await PerformanceEvent.timedExecAsync(
|
|
81
82
|
this.logger,
|
|
@@ -142,6 +142,7 @@ export class WholeSummaryDocumentStorageService implements IDocumentStorageServi
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
// Otherwise, get the latest version of the document as normal.
|
|
145
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- using ?? could change behavior for falsy values
|
|
145
146
|
const id = versionId ? versionId : this.id;
|
|
146
147
|
const commits = await PerformanceEvent.timedExecAsync(
|
|
147
148
|
this.logger,
|
package/.eslintrc.cjs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
module.exports = {
|
|
7
|
-
extends: [
|
|
8
|
-
require.resolve("@fluidframework/eslint-config-fluid/minimal-deprecated"),
|
|
9
|
-
"prettier",
|
|
10
|
-
],
|
|
11
|
-
parserOptions: {
|
|
12
|
-
project: ["./tsconfig.json", "./src/test/tsconfig.json"],
|
|
13
|
-
},
|
|
14
|
-
rules: {
|
|
15
|
-
"@typescript-eslint/no-non-null-assertion": "off",
|
|
16
|
-
"@typescript-eslint/strict-boolean-expressions": "off",
|
|
17
|
-
"no-case-declarations": "off",
|
|
18
|
-
"@fluid-internal/fluid/no-unchecked-record-access": "warn",
|
|
19
|
-
|
|
20
|
-
// Disabled because the rule is crashing on this package - AB#51780
|
|
21
|
-
"@typescript-eslint/unbound-method": "off",
|
|
22
|
-
},
|
|
23
|
-
};
|
package/dist/axios.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"axios.cjs","sourceRoot":"","sources":["../src/axios.cts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders } from \"axios\";\n\nexport { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders };\n"]}
|
package/dist/axios.d.cts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import type { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders } from "axios";
|
|
6
|
-
export { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders };
|
|
7
|
-
//# sourceMappingURL=axios.d.cts.map
|
package/dist/axios.d.cts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"axios.d.cts","sourceRoot":"","sources":["../src/axios.cts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,CAAC"}
|
package/lib/axios.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"axios.cjs","sourceRoot":"","sources":["../src/axios.cts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders } from \"axios\";\n\nexport { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders };\n"]}
|
package/lib/axios.d.cts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import type { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders } from "axios";
|
|
6
|
-
export { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders };
|
|
7
|
-
//# sourceMappingURL=axios.d.cts.map
|
package/lib/axios.d.cts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"axios.d.cts","sourceRoot":"","sources":["../src/axios.cts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,CAAC"}
|
package/src/axios.cts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders } from "axios";
|
|
7
|
-
|
|
8
|
-
export { AxiosRequestConfig, AxiosRequestHeaders, RawAxiosRequestHeaders };
|