Skip to content

Commit 2e055d0

Browse files
authored
[Blazor] Update npm dependencies (#36088) (#36273)
* Updates npm dependencies to their latest versions. * Standardizes build process for our JS dependencies on webpack 5 with babel, etc. * Updates dependencies for the auth packages to their latest versions. * Fixes test assets so that they can be run locally.
1 parent 77a2bda commit 2e055d0

38 files changed

+6564
-4183
lines changed

.azure/pipelines/jobs/default-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,9 @@ jobs:
170170
displayName: Start background dump collection
171171
- ${{ if eq(parameters.installNodeJs, 'true') }}:
172172
- task: NodeTool@0
173-
displayName: Install Node 10.x
173+
displayName: Install Node 14.x
174174
inputs:
175-
versionSpec: 10.x
175+
versionSpec: 14.x
176176
- ${{ if eq(parameters.agentOs, 'Windows') }}:
177177
- task: NuGetToolInstaller@1
178178
- task: NuGetCommand@2

eng/targets/Helix.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<IsMacHelixQueue Condition="$(HelixTargetQueue.Contains('OSX')) or $(HelixTargetQueue.Contains('macOs'))">true</IsMacHelixQueue>
2121
<HelixTestName>$(MSBuildProjectName)--$(TargetFramework)</HelixTestName>
2222
<LoggingTestingDisableFileLogging Condition="'$(IsHelixJob)' == 'true'">false</LoggingTestingDisableFileLogging>
23-
<NodeVersion>10.15.3</NodeVersion>
23+
<NodeVersion>14.17.6</NodeVersion>
2424
<TestDependsOnAspNetPackages>false</TestDependsOnAspNetPackages>
2525
<TestDependsOnAspNetRuntime>false</TestDependsOnAspNetRuntime>
2626
</PropertyGroup>

src/Components/Web.JS/dist/Release/blazor.server.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Components/Web.JS/dist/Release/blazor.webview.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Components/Web.JS/package.json

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,27 @@
1818
"test": "jest"
1919
},
2020
"devDependencies": {
21-
"@babel/core": "^7.13.10",
22-
"@babel/preset-env": "^7.13.10",
21+
"@babel/core": "^7.15.0",
22+
"@babel/preset-env": "^7.15.0",
2323
"@microsoft/dotnet-js-interop": "link:../../JSInterop/Microsoft.JSInterop.JS/src",
2424
"@microsoft/signalr": "link:../../SignalR/clients/ts/signalr",
2525
"@microsoft/signalr-protocol-msgpack": "link:../../SignalR/clients/ts/signalr-protocol-msgpack",
26-
"@types/emscripten": "^1.39.4",
27-
"@types/jest": "^26.0.20",
28-
"@types/jsdom": "^16.2.7",
29-
"@typescript-eslint/eslint-plugin": "^4.17.0",
30-
"@typescript-eslint/parser": "^4.17.0",
31-
"babel-jest": "^26.6.3",
32-
"eslint": "^7.21.0",
33-
"inspectpack": "^4.6.1",
34-
"jest": "^26.6.3",
26+
"@types/emscripten": "^1.39.5",
27+
"@types/jest": "^27.0.1",
28+
"@types/jsdom": "^16.2.13",
29+
"@typescript-eslint/eslint-plugin": "^4.29.3",
30+
"@typescript-eslint/parser": "^4.29.3",
31+
"babel-jest": "^27.1.0",
32+
"eslint": "^7.32.0",
33+
"inspectpack": "^4.7.1",
34+
"jest": "^27.1.0",
3535
"rimraf": "^3.0.2",
36-
"terser": "^5.6.0",
37-
"ts-jest": "^26.5.3",
38-
"ts-loader": "^8.0.17",
39-
"typescript": "^4.2.3",
40-
"webpack": "^5.24.4",
41-
"webpack-cli": "^4.5.0"
36+
"terser": "^5.7.2",
37+
"ts-jest": "^27.0.5",
38+
"ts-loader": "^9.2.5",
39+
"typescript": "^4.4.2",
40+
"webpack": "^5.51.1",
41+
"webpack-cli": "^4.8.0"
4242
},
4343
"resolutions": {
4444
"**/set-value": "^3.0.2"

src/Components/Web.JS/src/Boot.Server.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,17 @@ async function initializeConnection(options: CircuitStartOptions, logger: Logger
139139
try {
140140
await connection.start();
141141
} catch (ex) {
142-
unhandledError(connection, ex, logger);
142+
unhandledError(connection, ex as Error, logger);
143143

144-
if (ex.innerErrors && ex.innerErrors.some(e => e.errorType === 'UnsupportedTransportError' && e.transport === HttpTransportType.WebSockets)) {
144+
if (!isNestedError(ex)) {
145+
showErrorNotification();
146+
} else if (ex.innerErrors && ex.innerErrors.some(e => e.errorType === 'UnsupportedTransportError' && e.transport === HttpTransportType.WebSockets)) {
145147
showErrorNotification('Unable to connect, please ensure you are using an updated browser that supports WebSockets.');
146148
} else if (ex.innerErrors && ex.innerErrors.some(e => e.errorType === 'FailedToStartTransportError' && e.transport === HttpTransportType.WebSockets)) {
147149
showErrorNotification('Unable to connect, please ensure WebSockets are available. A VPN or proxy may be blocking the connection.');
148150
} else if (ex.innerErrors && ex.innerErrors.some(e => e.errorType === 'DisabledTransportError' && e.transport === HttpTransportType.LongPolling)) {
149151
logger.log(LogLevel.Error, 'Unable to initiate a SignalR connection to the server. This might be because the server is not configured to support WebSockets. To troubleshoot this, visit https://aka.ms/blazor-server-websockets-error.');
150152
showErrorNotification();
151-
} else {
152-
showErrorNotification();
153153
}
154154
}
155155

@@ -166,8 +166,14 @@ async function initializeConnection(options: CircuitStartOptions, logger: Logger
166166
});
167167

168168
return connection;
169+
170+
function isNestedError(error: any): error is AggregateError {
171+
return error && ('innerErrors' in error);
172+
}
169173
}
170174

175+
type AggregateError = Error & { innerErrors: { errorType: string, transport: HttpTransportType }[] };
176+
171177
function unhandledError(connection: HubConnection, err: Error, logger: Logger): void {
172178
logger.log(LogLevel.Error, err);
173179

src/Components/Web.JS/src/Platform/Circuits/CircuitStreamingInterop.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export function sendJSDataStream(connection: HubConnection, data: ArrayBufferVie
4747
chunkId++;
4848
}
4949
} catch (error) {
50-
await connection.send('ReceiveJSDataChunk', streamId, -1, null, error.toString());
50+
await connection.send('ReceiveJSDataChunk', streamId, -1, null, (error as Error).toString());
5151
}
5252
}, 0);
5353
};

src/Components/Web.JS/src/Platform/Circuits/DefaultReconnectDisplay.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class DefaultReconnectDisplay implements ReconnectDisplay {
4242
this.button = this.modal.querySelector('button')!;
4343
this.reloadParagraph = this.modal.querySelector('p')!;
4444
this.loader = this.getLoader();
45-
45+
4646
this.message.after(this.loader);
4747

4848
this.button.addEventListener('click', async () => {
@@ -59,7 +59,7 @@ export class DefaultReconnectDisplay implements ReconnectDisplay {
5959
}
6060
} catch (err) {
6161
// We got an exception, server is currently unavailable
62-
this.logger.log(LogLevel.Error, err);
62+
this.logger.log(LogLevel.Error, err as Error);
6363
this.failed();
6464
}
6565
});
@@ -126,7 +126,7 @@ export class DefaultReconnectDisplay implements ReconnectDisplay {
126126
loader.animate([
127127
{ transform: 'rotate(0deg)' },
128128
{ transform: 'rotate(360deg)' }
129-
], {
129+
], {
130130
duration: 2000,
131131
iterations: Infinity
132132
});

src/Components/Web.JS/src/Platform/Circuits/DefaultReconnectionHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class ReconnectionProcess {
8282
return;
8383
} catch (err) {
8484
// We got an exception so will try again momentarily
85-
this.logger.log(LogLevel.Error, err);
85+
this.logger.log(LogLevel.Error, err as Error);
8686
}
8787
}
8888

src/Components/Web.JS/src/Platform/Circuits/RenderQueue.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ export class RenderQueue {
5454
renderBatch(this.browserRendererId, new OutOfProcessRenderBatch(batchData));
5555
await this.completeBatch(connection, receivedBatchId);
5656
} catch (error) {
57-
this.fatalError = error.toString();
57+
this.fatalError = (error as Error).toString();
5858
this.logger.log(LogLevel.Error, `There was an error applying batch ${receivedBatchId}.`);
5959

6060
// If there's a rendering exception, notify server *and* throw on client
61-
connection.send('OnRenderCompleted', receivedBatchId, error.toString());
61+
connection.send('OnRenderCompleted', receivedBatchId, (error as Error).toString());
6262
throw error;
6363
}
6464
}

0 commit comments

Comments
 (0)