diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml
index e6e4909..73bf502 100644
--- a/.github/workflows/test-package.yml
+++ b/.github/workflows/test-package.yml
@@ -47,7 +47,7 @@
       matrix:
         # Add macos-latest and/or windows-latest if relevant for this package.
         os: [ubuntu-latest]
-        sdk: [3.1.0, dev]
+        sdk: [3.2.0, dev]
     steps:
       - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
       - uses: dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 36822cf..fef1e31 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
-## 4.1.3-dev
+## 4.1.3
 
-- Update the minimum Dart SDK version to `3.1.0`.
+- Update the minimum Dart SDK version to `3.2.0`.
 
 ## 4.1.2
 
diff --git a/lib/client/sse_client.dart b/lib/client/sse_client.dart
index 86dac10..96cd1f3 100644
--- a/lib/client/sse_client.dart
+++ b/lib/client/sse_client.dart
@@ -4,12 +4,12 @@
 
 import 'dart:async';
 import 'dart:convert';
-import 'dart:html';
+import 'dart:js_interop';
 
-import 'package:js/js.dart';
 import 'package:logging/logging.dart';
 import 'package:pool/pool.dart';
 import 'package:stream_channel/stream_channel.dart';
+import 'package:web/helpers.dart';
 
 import '../src/util/uuid.dart';
 
@@ -52,14 +52,15 @@
             ? generateUuidV4()
             : '$debugKey-${generateUuidV4()}' {
     _serverUrl = '$serverUrl?sseClientId=$_clientId';
-    _eventSource = EventSource(_serverUrl, withCredentials: true);
+    _eventSource =
+        EventSource(_serverUrl, EventSourceInit(withCredentials: true));
     _eventSource.onOpen.first.whenComplete(() {
       _onConnected.complete();
       _outgoingController.stream
           .listen(_onOutgoingMessage, onDone: _onOutgoingDone);
     });
-    _eventSource.addEventListener('message', _onIncomingMessage);
-    _eventSource.addEventListener('control', _onIncomingControlMessage);
+    _eventSource.addEventListener('message', _onIncomingMessage.toJS);
+    _eventSource.addEventListener('control', _onIncomingControlMessage.toJS);
 
     _eventSource.onOpen.listen((_) {
       _errorTimer?.cancel();
@@ -114,7 +115,7 @@
 
   void _onIncomingControlMessage(Event message) {
     var data = (message as MessageEvent).data;
-    if (data == 'close') {
+    if (data.dartify() == 'close') {
       close();
     } else {
       throw UnsupportedError('[$_clientId] Illegal Control Message "$data"');
@@ -147,8 +148,10 @@
         final url = '$_serverUrl&messageId=${++_lastMessageId}';
         await _fetch(
             url,
-            _FetchOptions(
-                method: 'POST', body: encodedMessage, credentials: 'include'));
+            RequestInit(
+                method: 'POST',
+                body: encodedMessage?.toJS,
+                credentials: 'include'));
       } catch (error) {
         final augmentedError =
             '[$_clientId] SSE client failed to send $message:\n $error';
@@ -159,20 +162,5 @@
   }
 }
 
-// Custom implementation of Fetch API until Dart supports GET vs. POST,
-// credentials, etc. See https://github.com/dart-lang/http/issues/595.
-@JS('fetch')
-external Object _nativeJsFetch(String resourceUrl, _FetchOptions options);
-
-Future<dynamic> _fetch(String resourceUrl, _FetchOptions options) =>
-    promiseToFuture(_nativeJsFetch(resourceUrl, options));
-
-@JS()
-@anonymous
-class _FetchOptions {
-  external factory _FetchOptions({
-    required String method, // e.g., 'GET', 'POST'
-    required String credentials, // e.g., 'omit', 'same-origin', 'include'
-    required String? body,
-  });
-}
+Future<void> _fetch(String resourceUrl, RequestInit options) =>
+    window.fetch(resourceUrl.toJS, options).toDart;
diff --git a/lib/src/server/sse_handler.dart b/lib/src/server/sse_handler.dart
index d4b7e06..c235c20 100644
--- a/lib/src/server/sse_handler.dart
+++ b/lib/src/server/sse_handler.dart
@@ -158,7 +158,7 @@
       // period.
       // If the connection comes back, this will be cancelled and all messages
       // left in the queue tried again.
-      _keepAliveTimer = Timer(_keepAlive!, _close);
+      _keepAliveTimer = Timer(_keepAlive, _close);
     }
   }
 
diff --git a/pubspec.yaml b/pubspec.yaml
index 1258266..8581f8e 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: sse
-version: 4.1.3-dev
+version: 4.1.3
 description: >-
   Provides client and server functionality for setting up bi-directional
   communication through Server Sent Events (SSE) and corresponding POST
@@ -7,7 +7,7 @@
 repository: https://github.com/dart-lang/sse
 
 environment:
-  sdk: ^3.1.0
+  sdk: ^3.2.0
 
 dependencies:
   async: ^2.0.8
@@ -17,6 +17,7 @@
   pool: ^1.5.0
   shelf: ^1.1.0
   stream_channel: ^2.0.0
+  web: '>=0.3.0 <0.5.0'
 
 dev_dependencies:
   dart_flutter_team_lints: ^2.0.0
diff --git a/test/web/index.dart b/test/web/index.dart
index e149372..fadb147 100644
--- a/test/web/index.dart
+++ b/test/web/index.dart
@@ -2,9 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'dart:html';
-
 import 'package:sse/client/sse_client.dart';
+import 'package:web/helpers.dart';
 
 void main() {
   var channel = SseClient('/test');
