• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 28433368938
86%

Build:
DEFAULT BRANCH: main
Ran 30 Jun 2026 09:12AM UTC
Jobs 8
Files 80
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Jun 2026 09:11AM UTC coverage: 85.602% (-0.08%) from 85.678%
28433368938

push

github

web-flow
chore: enforce web and WASM compatibility via lint and CI (#1498)

## What

Adds guardrails so the Flutter-facing packages stay compatible with the
Web platform and the WASM runtime, following up on the manual fix in
#1497.

## How

Three changes:

1. **Lint rule (`supabase_lints`)** — enables the `avoid-banned-imports`
DCM rule for all library code:
- bans `dart:html`, `dart:js`, `dart:js_util` (work on JS-web but break
WASM) in favour of `dart:js_interop` + `package:web`,
   - bans `dart:ffi` (unavailable on web and WASM),
- restricts `dart:io` to conditional `_io.dart` files, so a
non-conditional `dart:io` import (exactly the bug #1497 fixed) is caught
automatically.

The ban is scoped to `lib/` only, so VM-only test files that
legitimately use `dart:io` are not affected.

2. **`realtime_client`** — raises the `web_socket_channel` floor to
`^3.0.0`. `HtmlWebSocketChannel` was moved onto `package:web` in 2.4.1;
the previous `>=2.3.0` floor allowed a `dart:html`-based version that is
not WASM-compatible.

3. **CI** — adds a `flutter build web --wasm` step on the example app so
a web or WASM regression fails the build. A lint cannot see into
dependencies, so the build is the real safety net.

## Verification

- `dcm analyze packages` flags only the `dart:io` import in
`supabase_auth.dart` (the one #1497 removes) and nothing else,
confirming no false positives on tests or conditional `_io.dart` stubs.
- `flutter build web --wasm` succeeds for the example app with
`web_socket_channel ^3.0.0`.

## Depends on

This depends on #1497. Until that merges, the new DCM rule fails on the
remaining `dart:io` import in `supabase_auth.dart`. Merge #1497 first,
then rebase this.

SDK-1102

4132 of 4827 relevant lines covered (85.6%)

3.73 hits per line

Coverage Regressions

Lines Coverage ∆ File
32
65.74
0.32% packages/supabase_flutter/lib/src/supabase_auth.dart
Jobs
ID Job ID Ran Files Coverage
1 storage_client - 28433368938.1 30 Jun 2026 09:14AM UTC 5
92.97
GitHub Action Run
2 gotrue - 28433368938.2 30 Jun 2026 09:15AM UTC 26
84.2
GitHub Action Run
3 yet_another_json_isolate - 28433368938.3 30 Jun 2026 09:12AM UTC 1
79.03
GitHub Action Run
4 postgrest - 28433368938.4 30 Jun 2026 09:14AM UTC 9
84.29
GitHub Action Run
5 functions_client - 28433368938.5 30 Jun 2026 09:12AM UTC 2
98.57
GitHub Action Run
6 supabase_flutter - 28433368938.6 30 Jun 2026 09:13AM UTC 11
78.73
GitHub Action Run
7 realtime_client - 28433368938.7 30 Jun 2026 09:15AM UTC 11
88.4
GitHub Action Run
8 supabase - 28433368938.8 30 Jun 2026 09:13AM UTC 15
81.8
GitHub Action Run
Source Files on build 28433368938
  • Tree
  • List 80
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28433368938
  • 558bba48 on github
  • Prev Build on main (#28404380966)
  • Next Build on main (#28437115472)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc