Skip to content

Commit 4e760cb

Browse files
committed
Merge remote-tracking branch 'upstream/master' into synodim
2 parents 4e2998b + df8f841 commit 4e760cb

38 files changed

+547
-361
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ module.exports = {
8787
// We don't need super strict typing in test utilities
8888
"@typescript-eslint/explicit-function-return-type": "off",
8989
"@typescript-eslint/explicit-member-accessibility": "off",
90+
"@typescript-eslint/ban-ts-comment": "off",
9091
},
9192
},
9293
],

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
blank_issues_enabled: false
12
contact_links:
23
- name: Questions & support
34
url: https://matrix.to/#/#element-web:matrix.org

CHANGELOG.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
1+
Changes in [1.11.31](https://github.com/vector-im/element-web/releases/tag/v1.11.31) (2023-05-10)
2+
=================================================================================================
3+
4+
## ✨ Features
5+
* Improve Content-Security-Policy ([\#25210](https://github.com/vector-im/element-web/pull/25210)).
6+
* Add UIFeature.locationSharing to hide location sharing ([\#10727](https://github.com/matrix-org/matrix-react-sdk/pull/10727)).
7+
* Memoize field validation results ([\#10714](https://github.com/matrix-org/matrix-react-sdk/pull/10714)).
8+
* Commands for plain text editor ([\#10567](https://github.com/matrix-org/matrix-react-sdk/pull/10567)). Contributed by @alunturner.
9+
* Allow 16 lines of text in the rich text editors ([\#10670](https://github.com/matrix-org/matrix-react-sdk/pull/10670)). Contributed by @alunturner.
10+
* Bail out of `RoomSettingsDialog` when room is not found ([\#10662](https://github.com/matrix-org/matrix-react-sdk/pull/10662)). Contributed by @kerryarchibald.
11+
* Element-R: Populate device list for right-panel ([\#10671](https://github.com/matrix-org/matrix-react-sdk/pull/10671)). Contributed by @florianduros.
12+
* Make existing and new issue URLs configurable ([\#10710](https://github.com/matrix-org/matrix-react-sdk/pull/10710)). Fixes #24424.
13+
* Fix usages of ARIA tabpanel ([\#10628](https://github.com/matrix-org/matrix-react-sdk/pull/10628)). Fixes #25016.
14+
* Element-R: Starting a DMs with a user ([\#10673](https://github.com/matrix-org/matrix-react-sdk/pull/10673)). Contributed by @florianduros.
15+
* ARIA Accessibility improvements ([\#10675](https://github.com/matrix-org/matrix-react-sdk/pull/10675)).
16+
* ARIA Accessibility improvements ([\#10674](https://github.com/matrix-org/matrix-react-sdk/pull/10674)).
17+
* Add arrow key controls to emoji and reaction pickers ([\#10637](https://github.com/matrix-org/matrix-react-sdk/pull/10637)). Fixes #17189.
18+
* Translate credits in help about section ([\#10676](https://github.com/matrix-org/matrix-react-sdk/pull/10676)).
19+
20+
## 🐛 Bug Fixes
21+
* Fix: reveal images when image previews are disabled ([\#10781](https://github.com/matrix-org/matrix-react-sdk/pull/10781)). Fixes #25271. Contributed by @kerryarchibald.
22+
* Fix autocomplete not resetting properly on message send ([\#10741](https://github.com/matrix-org/matrix-react-sdk/pull/10741)). Fixes #25170.
23+
* Fix start_sso not working with guests disabled ([\#10720](https://github.com/matrix-org/matrix-react-sdk/pull/10720)). Fixes #16624.
24+
* Fix soft crash with Element call widgets ([\#10684](https://github.com/matrix-org/matrix-react-sdk/pull/10684)).
25+
* Send correct receipt when marking a room as read ([\#10730](https://github.com/matrix-org/matrix-react-sdk/pull/10730)). Fixes #25207.
26+
* Offload some more waveform processing onto a worker ([\#9223](https://github.com/matrix-org/matrix-react-sdk/pull/9223)). Fixes #19756.
27+
* Consolidate login errors ([\#10722](https://github.com/matrix-org/matrix-react-sdk/pull/10722)). Fixes #17520.
28+
* Fix all rooms search generating permalinks to wrong room id ([\#10625](https://github.com/matrix-org/matrix-react-sdk/pull/10625)). Fixes #25115.
29+
* Posthog properly handle Analytics ID changing from under us ([\#10702](https://github.com/matrix-org/matrix-react-sdk/pull/10702)). Fixes #25187.
30+
* Fix Clock being read as an absolute time rather than duration ([\#10706](https://github.com/matrix-org/matrix-react-sdk/pull/10706)). Fixes #22582.
31+
* Properly translate errors in `ChangePassword.tsx` so they show up translated to the user but not in our logs ([\#10615](https://github.com/matrix-org/matrix-react-sdk/pull/10615)). Fixes #9597. Contributed by @MadLittleMods.
32+
* Honour feature toggles in guest mode ([\#10651](https://github.com/matrix-org/matrix-react-sdk/pull/10651)). Fixes #24513. Contributed by @andybalaam.
33+
* Fix default content in devtools event sender ([\#10699](https://github.com/matrix-org/matrix-react-sdk/pull/10699)). Contributed by @tulir.
34+
* Fix a crash when a call ends while you're in it ([\#10681](https://github.com/matrix-org/matrix-react-sdk/pull/10681)). Fixes #25153.
35+
* Fix lack of screen reader indication when triggering auto complete ([\#10664](https://github.com/matrix-org/matrix-react-sdk/pull/10664)). Fixes #11011.
36+
* Fix typing tile duplicating users ([\#10678](https://github.com/matrix-org/matrix-react-sdk/pull/10678)). Fixes #25165.
37+
* Fix wrong room topic tooltip position ([\#10667](https://github.com/matrix-org/matrix-react-sdk/pull/10667)). Fixes #25158.
38+
* Fix create subspace dialog not working ([\#10652](https://github.com/matrix-org/matrix-react-sdk/pull/10652)). Fixes #24882.
39+
140
Changes in [1.11.30](https://github.com/vector-im/element-web/releases/tag/v1.11.30) (2023-04-25)
241
=================================================================================================
342

code_style.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -281,11 +281,15 @@ Inheriting all the rules of TypeScript, the following additionally apply:
281281
Note: We use PostCSS + some plugins to process our styles. It looks like SCSS, but actually it is not.
282282

283283
1. Class names must be prefixed with "mx\_".
284-
2. Class names should denote the component which defines them, followed by any context:
285-
1. mx_MyFoo
286-
2. mx_MyFoo_avatar
287-
3. mx_MyFoo_avatar--user
288-
3. Use the `$font` and `$spacing` variables instead of manual values.
284+
2. Class names must denote the component which defines them, followed by any context.
285+
The context is not further specified here in terms of meaning or syntax.
286+
Use whatever is appropriate for your implementation use case.
287+
Some examples:
288+
1. `mx_MyFoo`
289+
2. `mx_MyFoo_avatar`
290+
3. `mx_MyFoo_avatarUser`
291+
4. `mx_MyFoo_avatar--user`
292+
3. Use the `$font` variables instead of manual values.
289293
4. Keep indentation/nesting to a minimum. Maximum suggested nesting is 5 layers.
290294
5. Use the whole class name instead of shortcuts:
291295

docs/config.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,7 @@ Currently, the following UI feature flags are supported:
508508
timeline for recent messages. When false day dates will be used.
509509
- `UIFeature.BulkUnverifiedSessionsReminder` - Display popup reminders to verify or remove unverified sessions. Defaults
510510
to true.
511+
- `UIFeature.locationSharing` - Whether or not location sharing menus will be shown.
511512

512513
## Undocumented / developer options
513514

docs/labs.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,6 @@ theme definition.
100100

101101
For some sample themes, check out [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes).
102102

103-
## Message preview tweaks
104-
105-
To enable message previews in the left panel for reactions in all rooms, enable `feature_roomlist_preview_reactions_all`.
106-
107-
To enable message previews for reactions in DMs only, enable `feature_roomlist_preview_reactions_dms`. This is ignored when it is enabled for all rooms.
108-
109103
## Dehydrated devices (`feature_dehydration`)
110104

111105
Allows users to receive encrypted messages by creating a device that is stored

package.json

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "element-web",
3-
"version": "1.11.30",
3+
"version": "1.11.31",
44
"description": "A feature-rich client for Matrix.org",
55
"author": "New Vector Ltd.",
66
"repository": {
@@ -65,16 +65,16 @@
6565
},
6666
"resolutions": {
6767
"@types/react-dom": "17.0.19",
68-
"@types/react": "17.0.55"
68+
"@types/react": "17.0.58"
6969
},
7070
"dependencies": {
71-
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz",
71+
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz",
7272
"@matrix-org/react-sdk-module-api": "^0.0.4",
7373
"gfm.css": "^1.1.2",
7474
"jsrsasign": "^10.5.25",
7575
"katex": "^0.16.0",
76-
"matrix-js-sdk": "25.0.0",
77-
"matrix-react-sdk": "3.71.1",
76+
"matrix-js-sdk": "25.1.0",
77+
"matrix-react-sdk": "3.72.0",
7878
"matrix-widget-api": "^1.3.1",
7979
"react": "17.0.2",
8080
"react-dom": "17.0.2",
@@ -104,10 +104,11 @@
104104
"@svgr/webpack": "^5.5.0",
105105
"@testing-library/react": "^12.1.5",
106106
"@types/jest": "^29.0.0",
107+
"@types/jitsi-meet": "^2.0.2",
107108
"@types/jsrsasign": "^10.5.4",
108109
"@types/modernizr": "^3.5.3",
109110
"@types/node": "^16",
110-
"@types/react": "17.0.55",
111+
"@types/react": "17.0.58",
111112
"@types/react-dom": "17.0.19",
112113
"@types/sanitize-html": "^2.3.1",
113114
"@types/ua-parser-js": "^0.7.36",
@@ -121,7 +122,7 @@
121122
"cpx": "^1.5.0",
122123
"css-loader": "^4",
123124
"dotenv": "^16.0.2",
124-
"eslint": "8.35.0",
125+
"eslint": "8.38.0",
125126
"eslint-config-google": "^0.14.0",
126127
"eslint-config-prettier": "^8.5.0",
127128
"eslint-plugin-deprecate": "^0.7.0",
@@ -147,7 +148,7 @@
147148
"matrix-web-i18n": "^1.4.0",
148149
"mini-css-extract-plugin": "^1",
149150
"minimist": "^1.2.6",
150-
"mkdirp": "^2.0.0",
151+
"mkdirp": "^3.0.0",
151152
"modernizr": "^3.12.0",
152153
"node-fetch": "^2.6.7",
153154
"optimize-css-assets-webpack-plugin": "^6.0.0",
@@ -161,9 +162,9 @@
161162
"postcss-preset-env": "^6.7.0",
162163
"postcss-scss": "^4.0.4",
163164
"postcss-simple-vars": "^5.0.2",
164-
"prettier": "2.8.4",
165+
"prettier": "2.8.7",
165166
"raw-loader": "^4.0.2",
166-
"rimraf": "^3.0.2",
167+
"rimraf": "^5.0.0",
167168
"semver": "^7.3.7",
168169
"simple-proxy-agent": "^1.1.0",
169170
"string-replace-loader": "3",
@@ -174,7 +175,7 @@
174175
"terser-webpack-plugin": "^4.0.0",
175176
"ts-node": "^10.9.1",
176177
"ts-prune": "^0.10.3",
177-
"typescript": "5.0.3",
178+
"typescript": "5.0.4",
178179
"webpack": "^4.46.0",
179180
"webpack-cli": "^3.3.12",
180181
"webpack-dev-server": "^3.11.2",

scripts/build-jitsi.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
const fs = require("fs");
77
const path = require("path");
8-
const mkdirp = require("mkdirp");
8+
const { mkdirpSync } = require("mkdirp");
99
const fetch = require("node-fetch");
1010
const ProxyAgent = require("simple-proxy-agent");
1111

1212
console.log("Making webapp directory");
13-
mkdirp.sync("webapp");
13+
mkdirpSync("webapp");
1414

1515
// curl -s https://meet.element.io/libs/external_api.min.js > ./webapp/jitsi_external_api.min.js
1616
console.log("Downloading Jitsi script");

src/@types/jitsi-meet.d.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
Copyright 2023 The Matrix.org Foundation C.I.C.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
import "jitsi-meet";
18+
19+
declare module "jitsi-meet" {
20+
interface ExternalAPIEventCallbacks {
21+
errorOccurred: (e: { error: Error & { isFatal?: boolean } }) => void;
22+
}
23+
24+
interface JitsiMeetExternalAPI {
25+
executeCommand(command: "setTileView", value: boolean): void;
26+
}
27+
}
28+
29+
export as namespace Jitsi;

src/async-components/structures/CompatibilityView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ limitations under the License.
1717
import * as React from "react";
1818
import { _t } from "matrix-react-sdk/src/languageHandler";
1919
import SdkConfig from "matrix-react-sdk/src/SdkConfig";
20-
2120
// directly import the style here as this layer does not support rethemedex at this time so no matrix-react-sdk
2221
// PostCSS variables will be accessible.
2322
import "../../../res/css/structures/ErrorView.pcss";
23+
import { ReactNode } from "react";
2424

2525
interface IProps {
2626
onAccept(): void;
@@ -91,7 +91,7 @@ const CompatibilityView: React.FC<IProps> = ({ onAccept }) => {
9191
android = [];
9292
}
9393

94-
let mobileHeader = <h2 id="step2_heading">{_t("Use %(brand)s on mobile", { brand })}</h2>;
94+
let mobileHeader: ReactNode = <h2 id="step2_heading">{_t("Use %(brand)s on mobile", { brand })}</h2>;
9595
if (!android.length && !ios) {
9696
mobileHeader = null;
9797
}

src/components/views/auth/VectorAuthPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import SdkConfig from "matrix-react-sdk/src/SdkConfig";
2020
import VectorAuthFooter from "./VectorAuthFooter";
2121

2222
export default class VectorAuthPage extends React.PureComponent {
23-
private static welcomeBackgroundUrl;
23+
private static welcomeBackgroundUrl?: string;
2424

2525
// cache the url as a static to prevent it changing without refreshing
2626
private static getWelcomeBackgroundUrl(): string {

src/favicon.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,14 @@ export default class Favicon {
7272
// get height and width of the favicon
7373
this.canvas.height = this.baseImage.height > 0 ? this.baseImage.height : 32;
7474
this.canvas.width = this.baseImage.width > 0 ? this.baseImage.width : 32;
75-
this.context = this.canvas.getContext("2d");
75+
this.context = this.canvas.getContext("2d")!;
7676
this.ready();
7777
};
78-
this.baseImage.setAttribute("src", lastIcon.getAttribute("href"));
78+
this.baseImage.setAttribute("src", lastIcon.getAttribute("href")!);
7979
} else {
8080
this.canvas.height = this.baseImage.height = 32;
8181
this.canvas.width = this.baseImage.width = 32;
82-
this.context = this.canvas.getContext("2d");
82+
this.context = this.canvas.getContext("2d")!;
8383
this.ready();
8484
}
8585
}
@@ -239,7 +239,7 @@ export default class Favicon {
239239
const icons: HTMLLinkElement[] = [];
240240
const links = window.document.getElementsByTagName("head")[0].getElementsByTagName("link");
241241
for (const link of links) {
242-
if (/(^|\s)icon(\s|$)/i.test(link.getAttribute("rel"))) {
242+
if (link.hasAttribute("rel") && /(^|\s)icon(\s|$)/i.test(link.getAttribute("rel")!)) {
243243
icons.push(link);
244244
}
245245
}

src/i18n/strings/nb_NO.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,8 @@
2525
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Vennligst installer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, eller <safariLink>Safari</safariLink> for den beste opplevelsen.",
2626
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s bruker avanserte nettleserfunksjoner som ikke støttes av din nåværende nettleser.",
2727
"Open": "Åpne",
28-
"Use %(brand)s on mobile": "Bruk %(brand)s på mobil"
28+
"Use %(brand)s on mobile": "Bruk %(brand)s på mobil",
29+
"Decentralised, encrypted chat &amp; collaboration powered by $matrixLogo": "Desentralisert, kryptert chat & samhandling basert på $matrixLogo",
30+
"%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s på %(osName)s",
31+
"%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s"
2932
}

src/i18n/strings/pt.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@
2525
"Failed to start": "Erro ao iniciar",
2626
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s utiliza funções avançadas que não são suportadas pelo teu atual browser.",
2727
"Your browser can't run %(brand)s": "O teu browser não consegue executar %(brand)s",
28-
"Use %(brand)s on mobile": "Usar %(brand)s no telemóvel"
28+
"Use %(brand)s on mobile": "Usar %(brand)s no telemóvel",
29+
"Decentralised, encrypted chat &amp; collaboration powered by $matrixLogo": "Chat descentralizado e encriptado &amp; colaboração alimentada por $matrixLogo"
2930
}

src/vector/app.tsx

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,16 @@ import React, { ReactElement } from "react";
2525
import PlatformPeg from "matrix-react-sdk/src/PlatformPeg";
2626
import { UserFriendlyError } from "matrix-react-sdk/src/languageHandler";
2727
import AutoDiscoveryUtils from "matrix-react-sdk/src/utils/AutoDiscoveryUtils";
28-
import { AutoDiscovery } from "matrix-js-sdk/src/autodiscovery";
28+
import { AutoDiscovery, ClientConfig } from "matrix-js-sdk/src/autodiscovery";
2929
import * as Lifecycle from "matrix-react-sdk/src/Lifecycle";
3030
import SdkConfig, { parseSsoRedirectOptions } from "matrix-react-sdk/src/SdkConfig";
3131
import { IConfigOptions } from "matrix-react-sdk/src/IConfigOptions";
3232
import { logger } from "matrix-js-sdk/src/logger";
3333
import { createClient } from "matrix-js-sdk/src/matrix";
3434
import { SnakedObject } from "matrix-react-sdk/src/utils/SnakedObject";
3535
import MatrixChat from "matrix-react-sdk/src/components/structures/MatrixChat";
36+
import { ValidatedServerConfig } from "matrix-react-sdk/src/utils/ValidatedServerConfig";
37+
import { QueryDict, encodeParams } from "matrix-js-sdk/src/utils";
3638

3739
import { parseQs } from "./url_utils";
3840
import VectorBasePlatform from "./platform/VectorBasePlatform";
@@ -55,24 +57,19 @@ window.matrixLogger = logger;
5557
// If we're in electron, we should never pass through a file:// URL otherwise
5658
// the identity server will try to 302 the browser to it, which breaks horribly.
5759
// so in that instance, hardcode to use app.element.io for now instead.
58-
function makeRegistrationUrl(params: object): string {
59-
let url;
60+
function makeRegistrationUrl(params: QueryDict): string {
61+
let url: string;
6062
if (window.location.protocol === "vector:") {
6163
url = "https://app.element.io/#/register";
6264
} else {
6365
url = window.location.protocol + "//" + window.location.host + window.location.pathname + "#/register";
6466
}
6567

66-
const keys = Object.keys(params);
67-
for (let i = 0; i < keys.length; ++i) {
68-
if (i === 0) {
69-
url += "?";
70-
} else {
71-
url += "&";
72-
}
73-
const k = keys[i];
74-
url += k + "=" + encodeURIComponent(params[k]);
68+
const encodedParams = encodeParams(params);
69+
if (encodedParams) {
70+
url += "?" + encodedParams;
7571
}
72+
7673
return url;
7774
}
7875

@@ -117,18 +114,19 @@ export async function loadApp(fragParams: {}): Promise<ReactElement> {
117114
if (!hasPossibleToken && !isReturningFromSso && autoRedirect) {
118115
logger.log("Bypassing app load to redirect to SSO");
119116
const tempCli = createClient({
120-
baseUrl: config.validated_server_config.hsUrl,
121-
idBaseUrl: config.validated_server_config.isUrl,
117+
baseUrl: config.validated_server_config!.hsUrl,
118+
idBaseUrl: config.validated_server_config!.isUrl,
122119
});
123-
PlatformPeg.get().startSingleSignOn(tempCli, "sso", `/${getScreenFromLocation(window.location).screen}`);
120+
PlatformPeg.get()!.startSingleSignOn(tempCli, "sso", `/${getScreenFromLocation(window.location).screen}`);
124121

125122
// We return here because startSingleSignOn() will asynchronously redirect us. We don't
126123
// care to wait for it, and don't want to show any UI while we wait (not even half a welcome
127124
// page). As such, just don't even bother loading the MatrixChat component.
128-
return;
125+
return <React.Fragment />;
129126
}
130127

131-
const defaultDeviceName = snakedConfig.get("default_device_display_name") ?? platform.getDefaultDeviceDisplayName();
128+
const defaultDeviceName =
129+
snakedConfig.get("default_device_display_name") ?? platform?.getDefaultDeviceDisplayName();
132130

133131
return (
134132
<MatrixChat
@@ -146,7 +144,7 @@ export async function loadApp(fragParams: {}): Promise<ReactElement> {
146144
}
147145

148146
async function verifyServerConfig(): Promise<IConfigOptions> {
149-
let validatedConfig;
147+
let validatedConfig: ValidatedServerConfig;
150148
try {
151149
logger.log("Verifying homeserver configuration");
152150

@@ -197,7 +195,7 @@ async function verifyServerConfig(): Promise<IConfigOptions> {
197195
}
198196
}
199197

200-
let discoveryResult = null;
198+
let discoveryResult: ClientConfig | undefined;
201199
if (wkConfig) {
202200
logger.log("Config uses a default_server_config - validating object");
203201
discoveryResult = await AutoDiscovery.fromDiscoveryConfig(wkConfig);

0 commit comments

Comments
 (0)