From c8dc4a3baf0d276f7dcf06b3ceb9eb8702c7fa14 Mon Sep 17 00:00:00 2001 From: Lukas Klingsbo Date: Fri, 14 Aug 2026 12:06:11 +0200 Subject: [PATCH] feat!: rename the realtime_client package to supabase_realtime The package name says nothing about Supabase and does not match how the rest of the packages are named. It is published as supabase_realtime from v3 onwards, with the library entrypoint renamed to match. No public types are renamed, so this is a package rename only. The X-Client-Info header still reports realtime-dart for telemetry continuity, matching the decision made for supabase_auth. --- .github/ISSUE_TEMPLATE/bug_report.yml | 6 +-- .github/workflows/label-issues.yml | 1 + .github/workflows/release-pana.yml | 2 +- .github/workflows/test.yml | 8 ++-- AGENTS.md | 6 +-- MIGRATION.md | 42 ++++++++++++++++--- README.md | 2 +- packages/realtime_client/lib/src/version.dart | 1 - .../lib/src/realtime_client_options.dart | 2 +- packages/supabase/lib/supabase.dart | 2 +- packages/supabase/pubspec.yaml | 2 +- packages/supabase_common/README.md | 2 +- packages/supabase_flutter/README.md | 2 +- .../CHANGELOG.md | 0 .../LICENSE | 0 .../README.md | 8 +++- .../analysis_options.yaml | 0 .../dart_test.yaml | 0 .../example/main.dart | 2 +- .../lib/src/constants.dart | 2 +- .../lib/src/message.dart | 4 +- .../lib/src/push.dart | 8 ++-- .../lib/src/realtime_channel.dart | 12 +++--- .../lib/src/realtime_client.dart | 12 +++--- .../lib/src/realtime_presence.dart | 4 +- .../lib/src/retry_timer.dart | 0 .../lib/src/serializer.dart | 0 .../lib/src/transformers.dart | 0 .../lib/src/types.dart | 2 +- .../supabase_realtime/lib/src/version.dart | 1 + .../lib/src/websocket/websocket.dart | 0 .../lib/src/websocket/websocket_io.dart | 0 .../lib/src/websocket/websocket_stub.dart | 0 .../lib/src/websocket/websocket_web.dart | 0 .../lib/supabase_realtime.dart} | 0 .../pubspec.yaml | 6 +-- .../test/channel_test.dart | 8 ++-- .../test/heartbeat_test.dart | 2 +- .../test/message_test.dart | 4 +- .../test/mock_test.dart | 4 +- .../test/postgres_change_filter_test.dart | 2 +- .../test/realtime_integration_test.dart | 2 +- .../test/retry_timer_test.dart | 2 +- .../test/serializer_test.dart | 2 +- .../test/socket_test.dart | 6 +-- .../test/socket_test_stubs.dart | 4 +- .../test/transformers_test.dart | 2 +- .../test/types_test.dart | 2 +- .../test/utils/realtime_test_utils.dart | 2 +- .../test/websocket_io_test.dart | 2 +- pubspec.yaml | 2 +- sdk-compliance.yaml | 2 +- .../20240101000001_realtime_todos.sql | 2 +- 53 files changed, 113 insertions(+), 76 deletions(-) delete mode 100644 packages/realtime_client/lib/src/version.dart rename packages/{realtime_client => supabase_realtime}/CHANGELOG.md (100%) rename packages/{realtime_client => supabase_realtime}/LICENSE (100%) rename packages/{realtime_client => supabase_realtime}/README.md (83%) rename packages/{realtime_client => supabase_realtime}/analysis_options.yaml (100%) rename packages/{realtime_client => supabase_realtime}/dart_test.yaml (100%) rename packages/{realtime_client => supabase_realtime}/example/main.dart (95%) rename packages/{realtime_client => supabase_realtime}/lib/src/constants.dart (97%) rename packages/{realtime_client => supabase_realtime}/lib/src/message.dart (92%) rename packages/{realtime_client => supabase_realtime}/lib/src/push.dart (93%) rename packages/{realtime_client => supabase_realtime}/lib/src/realtime_channel.dart (98%) rename packages/{realtime_client => supabase_realtime}/lib/src/realtime_client.dart (98%) rename packages/{realtime_client => supabase_realtime}/lib/src/realtime_presence.dart (98%) rename packages/{realtime_client => supabase_realtime}/lib/src/retry_timer.dart (100%) rename packages/{realtime_client => supabase_realtime}/lib/src/serializer.dart (100%) rename packages/{realtime_client => supabase_realtime}/lib/src/transformers.dart (100%) rename packages/{realtime_client => supabase_realtime}/lib/src/types.dart (99%) create mode 100644 packages/supabase_realtime/lib/src/version.dart rename packages/{realtime_client => supabase_realtime}/lib/src/websocket/websocket.dart (100%) rename packages/{realtime_client => supabase_realtime}/lib/src/websocket/websocket_io.dart (100%) rename packages/{realtime_client => supabase_realtime}/lib/src/websocket/websocket_stub.dart (100%) rename packages/{realtime_client => supabase_realtime}/lib/src/websocket/websocket_web.dart (100%) rename packages/{realtime_client/lib/realtime_client.dart => supabase_realtime/lib/supabase_realtime.dart} (100%) rename packages/{realtime_client => supabase_realtime}/pubspec.yaml (90%) rename packages/{realtime_client => supabase_realtime}/test/channel_test.dart (99%) rename packages/{realtime_client => supabase_realtime}/test/heartbeat_test.dart (97%) rename packages/{realtime_client => supabase_realtime}/test/message_test.dart (97%) rename packages/{realtime_client => supabase_realtime}/test/mock_test.dart (99%) rename packages/{realtime_client => supabase_realtime}/test/postgres_change_filter_test.dart (98%) rename packages/{realtime_client => supabase_realtime}/test/realtime_integration_test.dart (99%) rename packages/{realtime_client => supabase_realtime}/test/retry_timer_test.dart (90%) rename packages/{realtime_client => supabase_realtime}/test/serializer_test.dart (99%) rename packages/{realtime_client => supabase_realtime}/test/socket_test.dart (99%) rename packages/{realtime_client => supabase_realtime}/test/socket_test_stubs.dart (89%) rename packages/{realtime_client => supabase_realtime}/test/transformers_test.dart (99%) rename packages/{realtime_client => supabase_realtime}/test/types_test.dart (97%) rename packages/{realtime_client => supabase_realtime}/test/utils/realtime_test_utils.dart (99%) rename packages/{realtime_client => supabase_realtime}/test/websocket_io_test.dart (96%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 3307c0525..d85a03949 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -25,7 +25,7 @@ body: - supabase - supabase_auth - postgrest - - realtime_client + - supabase_realtime - storage_client - functions_client - yet_another_json_isolate @@ -58,10 +58,10 @@ body: Output of `flutter doctor -v`, plus the versions of the affected packages. On Linux/macOS: - `dart pub deps | grep -E "supabase|postgrest|storage_client|realtime_client|functions_client"` + `dart pub deps | grep -E "supabase|postgrest|storage_client|functions_client"` On Windows: - `dart pub deps | findstr "supabase postgrest storage_client realtime_client functions_client"` + `dart pub deps | findstr "supabase postgrest storage_client functions_client"` render: shell placeholder: Flutter, Dart and package versions validations: diff --git a/.github/workflows/label-issues.yml b/.github/workflows/label-issues.yml index ff32e0499..8d387fe0b 100644 --- a/.github/workflows/label-issues.yml +++ b/.github/workflows/label-issues.yml @@ -27,6 +27,7 @@ jobs: "storage_client": "storage", "realtime": "realtime", "realtime_client": "realtime", + "supabase_realtime": "realtime", "postgrest": "postgrest", "functions": "functions", "functions_client": "functions", diff --git a/.github/workflows/release-pana.yml b/.github/workflows/release-pana.yml index 7248398cf..e018c6139 100644 --- a/.github/workflows/release-pana.yml +++ b/.github/workflows/release-pana.yml @@ -27,12 +27,12 @@ jobs: package: - functions_client - postgrest - - realtime_client - storage_client - supabase - supabase_auth - supabase_common - supabase_flutter + - supabase_realtime - supabase_typegen - yet_another_json_isolate steps: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0568bed2f..9c72f5e4c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -64,7 +64,7 @@ jobs: echo "Affected packages:" echo "$CHANGED" - DART_PACKAGES="functions_client postgrest realtime_client storage_client supabase supabase_auth supabase_common supabase_typegen yet_another_json_isolate" + DART_PACKAGES="functions_client postgrest storage_client supabase supabase_auth supabase_common supabase_realtime supabase_typegen yet_another_json_isolate" entries=() for package in $DART_PACKAGES; do @@ -72,11 +72,11 @@ jobs: continue fi case "$package" in - postgrest|realtime_client|storage_client|supabase|supabase_auth) backend=true ;; + postgrest|storage_client|supabase|supabase_auth|supabase_realtime) backend=true ;; *) backend=false ;; esac case "$package" in - postgrest|realtime_client|storage_client|supabase|supabase_auth) concurrency="1" ;; + postgrest|storage_client|supabase|supabase_auth|supabase_realtime) concurrency="1" ;; *) concurrency="0" ;; esac entries+=("{\"name\":\"$package\",\"backend\":$backend,\"concurrency\":\"$concurrency\"}") @@ -344,7 +344,7 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel-finished: true - carryforward: 'functions_client,postgrest,realtime_client,storage_client,supabase,supabase_auth,supabase_common,supabase_typegen,yet_another_json_isolate,supabase_flutter' + carryforward: 'functions_client,postgrest,storage_client,supabase,supabase_auth,supabase_common,supabase_realtime,supabase_typegen,yet_another_json_isolate,supabase_flutter' fail-on-error: false test-result: diff --git a/AGENTS.md b/AGENTS.md index e9ef41dfd..1e40c0b13 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,7 +14,7 @@ The repository follows a layered dependency structure: - **supabase**: Core Dart client that orchestrates all service clients - **supabase_auth**: Authentication client (sessions, JWT, OAuth) - **postgrest**: Database query client with ORM-style API -- **realtime_client**: WebSocket client for real-time subscriptions +- **supabase_realtime**: WebSocket client for real-time subscriptions - **storage_client**: File storage client with retry logic - **functions_client**: Edge functions invocation client - **yet_another_json_isolate**: JSON parsing in separate isolate for performance @@ -52,9 +52,9 @@ melos format ### Testing -Most packages have unit tests. The `postgrest`, `supabase_auth`, `realtime_client`, and `storage_client` packages run against a local Supabase stack started with the Supabase CLI. This requires Docker and the [Supabase CLI](https://supabase.com/docs/guides/local-development/cli/getting-started) installed. +Most packages have unit tests. The `postgrest`, `supabase_auth`, `supabase_realtime`, and `storage_client` packages run against a local Supabase stack started with the Supabase CLI. This requires Docker and the [Supabase CLI](https://supabase.com/docs/guides/local-development/cli/getting-started) installed. -**For packages requiring a backend (postgrest, supabase_auth, realtime_client, storage_client):** +**For packages requiring a backend (postgrest, supabase_auth, supabase_realtime, storage_client):** ```bash # 1. Start the local Supabase stack from the repository root diff --git a/MIGRATION.md b/MIGRATION.md index ebb517370..046bfea13 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -4,7 +4,7 @@ This document describes the breaking changes you need to be aware of when upgrad versions of the Supabase Flutter SDK, together with the steps required to migrate your code. All packages in this repository are released together for a major version, so a single section -covers `supabase_flutter`, `supabase`, `supabase_auth`, `postgrest`, `realtime_client`, `storage_client` +covers `supabase_flutter`, `supabase`, `supabase_auth`, `postgrest`, `supabase_realtime`, `storage_client` and `functions_client`. Every symbol mentioned here is re-exported from `supabase_flutter`, so the snippets apply whether you depend on the individual package or on the Flutter one. @@ -76,6 +76,38 @@ example to hide it in an import. Nothing about the wire format changes. The `X-Client-Info` header still identifies this client as `gotrue-dart`, and the `gotrue_meta_security` field in captcha payloads is unchanged. +### The `realtime_client` package is now `supabase_realtime` + +`realtime_client` says nothing about Supabase and does not match how the rest of the packages are +named. The package is published as `supabase_realtime` from v3 onwards, and the `realtime_client` +package is discontinued on pub.dev when v3 ships. + +If you depend on `supabase_flutter` or `supabase` you do not need to change anything, both pull in +`supabase_realtime` for you and re-export it. + +If you depend on the realtime client directly, rename the dependency and the import: + +```yaml +# Before +dependencies: + realtime_client: ^2.13.0 + +# After +dependencies: + supabase_realtime: ^3.0.0 +``` + +```dart +// Before +import 'package:realtime_client/realtime_client.dart'; + +// After +import 'package:supabase_realtime/supabase_realtime.dart'; +``` + +The rename does not touch any type names. `RealtimeClient`, `RealtimeChannel` and the rest keep +theirs, and the `X-Client-Info` header still identifies this client as `realtime-dart`. + ### `RealtimeClient.connectionState` is now typed `RealtimeClient` used to expose the socket state twice: a typed `connState` field and a stringly @@ -181,8 +213,8 @@ ones below are the renames you can actually hit. | Before | After | Package | | --- | --- | --- | -| `SocketStates` | `SocketState` | `realtime_client` | -| `PostgresTypes` | `PostgresType` | `realtime_client` | +| `SocketStates` | `SocketState` | `supabase_realtime` | +| `PostgresTypes` | `PostgresType` | `supabase_realtime` | | `AuthenticatorAssuranceLevels` | `AuthenticatorAssuranceLevel` | `supabase_auth` | | `LoadTableSnapshots` | `TableSnapshotScope` | `storage_client` | @@ -368,8 +400,8 @@ already inert: unused types, options the client ignored, or values the server ne | `User.confirmedAt` | `User.emailConfirmedAt` | `supabase_auth` | | `ReturningOption` | none, it was unused | `postgrest` | | `PostgrestClient.auth()` | `PostgrestClient.setAuth()` | `postgrest` | -| `RealtimeClient.longpollerTimeout` | none, there is no longpoll transport | `realtime_client` | -| `ChannelResponse.rateLimited` | none, it was never returned | `realtime_client` | +| `RealtimeClient.longpollerTimeout` | none, there is no longpoll transport | `supabase_realtime` | +| `ChannelResponse.rateLimited` | none, it was never returned | `supabase_realtime` | | `FileObject.lastAccessedAt`, `FileObjectV2.lastAccessedAt` | none, the server does not populate it | `storage_client` | | `AuthUser` | `User` | `supabase` | | `RealtimeClientOptions.eventsPerSecond` | none, it was already ignored | `supabase` | diff --git a/README.md b/README.md index 29e55e27f..f686a7779 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ To install on a locally developed app: ## Testing -The tests for the packages `postgrest`, `supabase_auth`, `realtime_client` and `storage_client` run against a +The tests for the packages `postgrest`, `supabase_auth`, `supabase_realtime` and `storage_client` run against a local Supabase stack. To run these tests locally you need `docker` and the [Supabase CLI](https://supabase.com/docs/guides/local-development/cli/getting-started) installed. diff --git a/packages/realtime_client/lib/src/version.dart b/packages/realtime_client/lib/src/version.dart deleted file mode 100644 index fa973751b..000000000 --- a/packages/realtime_client/lib/src/version.dart +++ /dev/null @@ -1 +0,0 @@ -const version = '2.13.0'; diff --git a/packages/supabase/lib/src/realtime_client_options.dart b/packages/supabase/lib/src/realtime_client_options.dart index 5a0c75e1c..a43f1b9e9 100644 --- a/packages/supabase/lib/src/realtime_client_options.dart +++ b/packages/supabase/lib/src/realtime_client_options.dart @@ -1,4 +1,4 @@ -import 'package:realtime_client/realtime_client.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; /// {@template realtime_client_options} /// Options to pass to the RealtimeClient. diff --git a/packages/supabase/lib/supabase.dart b/packages/supabase/lib/supabase.dart index ecaa9d377..a1ef142ae 100644 --- a/packages/supabase/lib/supabase.dart +++ b/packages/supabase/lib/supabase.dart @@ -6,7 +6,7 @@ library; export 'package:functions_client/functions_client.dart'; export 'package:supabase_auth/supabase_auth.dart'; export 'package:postgrest/postgrest.dart'; -export 'package:realtime_client/realtime_client.dart'; +export 'package:supabase_realtime/supabase_realtime.dart'; export 'package:storage_client/storage_client.dart'; export 'src/realtime_client_options.dart'; diff --git a/packages/supabase/pubspec.yaml b/packages/supabase/pubspec.yaml index 7fbae5b84..db90ee109 100644 --- a/packages/supabase/pubspec.yaml +++ b/packages/supabase/pubspec.yaml @@ -22,10 +22,10 @@ dependencies: http: ^1.6.0 meta: ^1.7.0 postgrest: 2.9.1 - realtime_client: 2.13.0 storage_client: 2.8.0 supabase_auth: 3.0.0-dev.1 supabase_common: 0.1.2 + supabase_realtime: 3.0.0-dev.1 yet_another_json_isolate: 2.1.1 logging: ^1.3.0 diff --git a/packages/supabase_common/README.md b/packages/supabase_common/README.md index a0d8d1507..26bcf6b5e 100644 --- a/packages/supabase_common/README.md +++ b/packages/supabase_common/README.md @@ -7,7 +7,7 @@ > do not depend on it directly. Shared internal utilities used across the Supabase Dart and Flutter client -packages (`supabase_auth`, `postgrest`, `realtime_client`, `storage_client`, +packages (`supabase_auth`, `postgrest`, `supabase_realtime`, `storage_client`, `functions_client`, `supabase`, `supabase_flutter`). This package holds code that would otherwise be duplicated across those diff --git a/packages/supabase_flutter/README.md b/packages/supabase_flutter/README.md index ca4078c30..8c7478f68 100644 --- a/packages/supabase_flutter/README.md +++ b/packages/supabase_flutter/README.md @@ -591,7 +591,7 @@ supabaseLogger.onRecord.listen((record) { - `supabase`: `Logger('supabase.supabase')` - `postgrest`: `Logger('supabase.postgrest')` - `supabase_auth`: `Logger('supabase.auth')` -- `realtime_client`: `Logger('supabase.realtime')` +- `supabase_realtime`: `Logger('supabase.realtime')` - `storage_client`: `Logger('supabase.storage')` - `functions_client`: `Logger('supabase.functions')` diff --git a/packages/realtime_client/CHANGELOG.md b/packages/supabase_realtime/CHANGELOG.md similarity index 100% rename from packages/realtime_client/CHANGELOG.md rename to packages/supabase_realtime/CHANGELOG.md diff --git a/packages/realtime_client/LICENSE b/packages/supabase_realtime/LICENSE similarity index 100% rename from packages/realtime_client/LICENSE rename to packages/supabase_realtime/LICENSE diff --git a/packages/realtime_client/README.md b/packages/supabase_realtime/README.md similarity index 83% rename from packages/realtime_client/README.md rename to packages/supabase_realtime/README.md index 2dd5aa14e..8438a033d 100644 --- a/packages/realtime_client/README.md +++ b/packages/supabase_realtime/README.md @@ -4,7 +4,7 @@ Supabase Logo -

realtime_client

+

supabase_realtime

Dart client library for Supabase Realtime, to listen to changes in a PostgreSQL database over websockets. @@ -19,11 +19,15 @@

-[![pub package](https://img.shields.io/pub/v/realtime_client.svg)](https://pub.dev/packages/realtime_client) +[![pub package](https://img.shields.io/pub/v/supabase_realtime.svg)](https://pub.dev/packages/supabase_realtime) [![pub test](https://github.com/supabase/supabase-flutter/workflows/Test/badge.svg)](https://github.com/supabase/supabase-flutter/actions?query=workflow%3ATest)
+> **Note** +> +> This package was published as `realtime_client` up to and including v2. That package is discontinued in favour of `supabase_realtime`. + ## Docs The docs can be found on the official Supabase website. diff --git a/packages/realtime_client/analysis_options.yaml b/packages/supabase_realtime/analysis_options.yaml similarity index 100% rename from packages/realtime_client/analysis_options.yaml rename to packages/supabase_realtime/analysis_options.yaml diff --git a/packages/realtime_client/dart_test.yaml b/packages/supabase_realtime/dart_test.yaml similarity index 100% rename from packages/realtime_client/dart_test.yaml rename to packages/supabase_realtime/dart_test.yaml diff --git a/packages/realtime_client/example/main.dart b/packages/supabase_realtime/example/main.dart similarity index 95% rename from packages/realtime_client/example/main.dart rename to packages/supabase_realtime/example/main.dart index 2e2eceac4..ac6ee3618 100644 --- a/packages/realtime_client/example/main.dart +++ b/packages/supabase_realtime/example/main.dart @@ -1,4 +1,4 @@ -import 'package:realtime_client/realtime_client.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; /// Example to use with Supabase Realtime https://supabase.com/ Future main() async { diff --git a/packages/realtime_client/lib/src/constants.dart b/packages/supabase_realtime/lib/src/constants.dart similarity index 97% rename from packages/realtime_client/lib/src/constants.dart rename to packages/supabase_realtime/lib/src/constants.dart index 68cec0a8c..9cf07064e 100644 --- a/packages/realtime_client/lib/src/constants.dart +++ b/packages/supabase_realtime/lib/src/constants.dart @@ -1,5 +1,5 @@ import 'package:meta/meta.dart'; -import 'package:realtime_client/src/version.dart'; +import 'package:supabase_realtime/src/version.dart'; import 'package:supabase_common/supabase_common.dart'; class Constants { diff --git a/packages/realtime_client/lib/src/message.dart b/packages/supabase_realtime/lib/src/message.dart similarity index 92% rename from packages/realtime_client/lib/src/message.dart rename to packages/supabase_realtime/lib/src/message.dart index 8a54dcc51..6f32fde2d 100644 --- a/packages/realtime_client/lib/src/message.dart +++ b/packages/supabase_realtime/lib/src/message.dart @@ -1,5 +1,5 @@ -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/constants.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/constants.dart'; import 'package:meta/meta.dart'; @internal diff --git a/packages/realtime_client/lib/src/push.dart b/packages/supabase_realtime/lib/src/push.dart similarity index 93% rename from packages/realtime_client/lib/src/push.dart rename to packages/supabase_realtime/lib/src/push.dart index 07510b0b5..e08819df7 100644 --- a/packages/realtime_client/lib/src/push.dart +++ b/packages/supabase_realtime/lib/src/push.dart @@ -1,9 +1,9 @@ import 'dart:async'; -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/constants.dart'; -import 'package:realtime_client/src/message.dart'; -import 'package:realtime_client/src/types.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/constants.dart'; +import 'package:supabase_realtime/src/message.dart'; +import 'package:supabase_realtime/src/types.dart'; import 'package:meta/meta.dart'; @internal diff --git a/packages/realtime_client/lib/src/realtime_channel.dart b/packages/supabase_realtime/lib/src/realtime_channel.dart similarity index 98% rename from packages/realtime_client/lib/src/realtime_channel.dart rename to packages/supabase_realtime/lib/src/realtime_channel.dart index 5048b424f..132b67526 100644 --- a/packages/realtime_client/lib/src/realtime_channel.dart +++ b/packages/supabase_realtime/lib/src/realtime_channel.dart @@ -5,12 +5,12 @@ import 'dart:typed_data'; import 'package:collection/collection.dart'; import 'package:http/http.dart'; import 'package:meta/meta.dart'; -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/constants.dart'; -import 'package:realtime_client/src/push.dart'; -import 'package:realtime_client/src/retry_timer.dart'; -import 'package:realtime_client/src/transformers.dart'; -import 'package:realtime_client/src/types.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/constants.dart'; +import 'package:supabase_realtime/src/push.dart'; +import 'package:supabase_realtime/src/retry_timer.dart'; +import 'package:supabase_realtime/src/transformers.dart'; +import 'package:supabase_realtime/src/types.dart'; class RealtimeChannel { final Map> _bindings = {}; diff --git a/packages/realtime_client/lib/src/realtime_client.dart b/packages/supabase_realtime/lib/src/realtime_client.dart similarity index 98% rename from packages/realtime_client/lib/src/realtime_client.dart rename to packages/supabase_realtime/lib/src/realtime_client.dart index 1b811ebc3..a03241e15 100644 --- a/packages/realtime_client/lib/src/realtime_client.dart +++ b/packages/supabase_realtime/lib/src/realtime_client.dart @@ -6,12 +6,12 @@ import 'package:collection/collection.dart'; import 'package:http/http.dart'; import 'package:logging/logging.dart'; import 'package:meta/meta.dart'; -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/constants.dart'; -import 'package:realtime_client/src/message.dart'; -import 'package:realtime_client/src/retry_timer.dart'; -import 'package:realtime_client/src/serializer.dart'; -import 'package:realtime_client/src/websocket/websocket.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/constants.dart'; +import 'package:supabase_realtime/src/message.dart'; +import 'package:supabase_realtime/src/retry_timer.dart'; +import 'package:supabase_realtime/src/serializer.dart'; +import 'package:supabase_realtime/src/websocket/websocket.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; typedef WebSocketTransport = diff --git a/packages/realtime_client/lib/src/realtime_presence.dart b/packages/supabase_realtime/lib/src/realtime_presence.dart similarity index 98% rename from packages/realtime_client/lib/src/realtime_presence.dart rename to packages/supabase_realtime/lib/src/realtime_presence.dart index aa740f22d..e7eadaf21 100644 --- a/packages/realtime_client/lib/src/realtime_presence.dart +++ b/packages/supabase_realtime/lib/src/realtime_presence.dart @@ -1,6 +1,6 @@ // ignore_for_file: public_member_api_docs, sort_constructors_first -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/types.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/types.dart'; /// A single shared state between users with Realtime Presence. class Presence { diff --git a/packages/realtime_client/lib/src/retry_timer.dart b/packages/supabase_realtime/lib/src/retry_timer.dart similarity index 100% rename from packages/realtime_client/lib/src/retry_timer.dart rename to packages/supabase_realtime/lib/src/retry_timer.dart diff --git a/packages/realtime_client/lib/src/serializer.dart b/packages/supabase_realtime/lib/src/serializer.dart similarity index 100% rename from packages/realtime_client/lib/src/serializer.dart rename to packages/supabase_realtime/lib/src/serializer.dart diff --git a/packages/realtime_client/lib/src/transformers.dart b/packages/supabase_realtime/lib/src/transformers.dart similarity index 100% rename from packages/realtime_client/lib/src/transformers.dart rename to packages/supabase_realtime/lib/src/transformers.dart diff --git a/packages/realtime_client/lib/src/types.dart b/packages/supabase_realtime/lib/src/types.dart similarity index 99% rename from packages/realtime_client/lib/src/types.dart rename to packages/supabase_realtime/lib/src/types.dart index eeb589668..724e08925 100644 --- a/packages/realtime_client/lib/src/types.dart +++ b/packages/supabase_realtime/lib/src/types.dart @@ -1,7 +1,7 @@ // ignore_for_file: public_member_api_docs, sort_constructors_first import 'package:collection/collection.dart'; import 'package:meta/meta.dart'; -import 'package:realtime_client/realtime_client.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; typedef BindingCallback = void Function(dynamic payload, [dynamic ref]); diff --git a/packages/supabase_realtime/lib/src/version.dart b/packages/supabase_realtime/lib/src/version.dart new file mode 100644 index 000000000..7f2f1c7d4 --- /dev/null +++ b/packages/supabase_realtime/lib/src/version.dart @@ -0,0 +1 @@ +const version = '3.0.0-dev.1'; diff --git a/packages/realtime_client/lib/src/websocket/websocket.dart b/packages/supabase_realtime/lib/src/websocket/websocket.dart similarity index 100% rename from packages/realtime_client/lib/src/websocket/websocket.dart rename to packages/supabase_realtime/lib/src/websocket/websocket.dart diff --git a/packages/realtime_client/lib/src/websocket/websocket_io.dart b/packages/supabase_realtime/lib/src/websocket/websocket_io.dart similarity index 100% rename from packages/realtime_client/lib/src/websocket/websocket_io.dart rename to packages/supabase_realtime/lib/src/websocket/websocket_io.dart diff --git a/packages/realtime_client/lib/src/websocket/websocket_stub.dart b/packages/supabase_realtime/lib/src/websocket/websocket_stub.dart similarity index 100% rename from packages/realtime_client/lib/src/websocket/websocket_stub.dart rename to packages/supabase_realtime/lib/src/websocket/websocket_stub.dart diff --git a/packages/realtime_client/lib/src/websocket/websocket_web.dart b/packages/supabase_realtime/lib/src/websocket/websocket_web.dart similarity index 100% rename from packages/realtime_client/lib/src/websocket/websocket_web.dart rename to packages/supabase_realtime/lib/src/websocket/websocket_web.dart diff --git a/packages/realtime_client/lib/realtime_client.dart b/packages/supabase_realtime/lib/supabase_realtime.dart similarity index 100% rename from packages/realtime_client/lib/realtime_client.dart rename to packages/supabase_realtime/lib/supabase_realtime.dart diff --git a/packages/realtime_client/pubspec.yaml b/packages/supabase_realtime/pubspec.yaml similarity index 90% rename from packages/realtime_client/pubspec.yaml rename to packages/supabase_realtime/pubspec.yaml index 0f18da230..1bedb9e37 100644 --- a/packages/realtime_client/pubspec.yaml +++ b/packages/supabase_realtime/pubspec.yaml @@ -1,8 +1,8 @@ -name: realtime_client +name: supabase_realtime description: Listens to changes in a PostgreSQL Database and via websockets. This is for usage with Supabase Realtime server. -version: 2.13.0 +version: 3.0.0-dev.1 homepage: 'https://supabase.com' -repository: 'https://github.com/supabase/supabase-flutter/tree/main/packages/realtime_client' +repository: 'https://github.com/supabase/supabase-flutter/tree/main/packages/supabase_realtime' issue_tracker: 'https://github.com/supabase/supabase-flutter/issues' documentation: 'https://supabase.com/docs/reference/dart/subscribe' topics: diff --git a/packages/realtime_client/test/channel_test.dart b/packages/supabase_realtime/test/channel_test.dart similarity index 99% rename from packages/realtime_client/test/channel_test.dart rename to packages/supabase_realtime/test/channel_test.dart index a2e55b82a..488bea20f 100644 --- a/packages/realtime_client/test/channel_test.dart +++ b/packages/supabase_realtime/test/channel_test.dart @@ -3,10 +3,10 @@ import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/constants.dart'; -import 'package:realtime_client/src/push.dart'; -import 'package:realtime_client/src/types.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/constants.dart'; +import 'package:supabase_realtime/src/push.dart'; +import 'package:supabase_realtime/src/types.dart'; import 'package:test/test.dart'; void main() { diff --git a/packages/realtime_client/test/heartbeat_test.dart b/packages/supabase_realtime/test/heartbeat_test.dart similarity index 97% rename from packages/realtime_client/test/heartbeat_test.dart rename to packages/supabase_realtime/test/heartbeat_test.dart index 5e2548a9a..7776bdf28 100644 --- a/packages/realtime_client/test/heartbeat_test.dart +++ b/packages/supabase_realtime/test/heartbeat_test.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:realtime_client/realtime_client.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; import 'package:test/test.dart'; void main() { diff --git a/packages/realtime_client/test/message_test.dart b/packages/supabase_realtime/test/message_test.dart similarity index 97% rename from packages/realtime_client/test/message_test.dart rename to packages/supabase_realtime/test/message_test.dart index 018956f62..c9808bd25 100644 --- a/packages/realtime_client/test/message_test.dart +++ b/packages/supabase_realtime/test/message_test.dart @@ -1,5 +1,5 @@ -import 'package:realtime_client/src/constants.dart'; -import 'package:realtime_client/src/message.dart'; +import 'package:supabase_realtime/src/constants.dart'; +import 'package:supabase_realtime/src/message.dart'; import 'package:test/test.dart'; void main() { diff --git a/packages/realtime_client/test/mock_test.dart b/packages/supabase_realtime/test/mock_test.dart similarity index 99% rename from packages/realtime_client/test/mock_test.dart rename to packages/supabase_realtime/test/mock_test.dart index d3e16635f..20e3b165f 100644 --- a/packages/realtime_client/test/mock_test.dart +++ b/packages/supabase_realtime/test/mock_test.dart @@ -2,8 +2,8 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/constants.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/constants.dart'; import 'package:test/test.dart'; void main() { diff --git a/packages/realtime_client/test/postgres_change_filter_test.dart b/packages/supabase_realtime/test/postgres_change_filter_test.dart similarity index 98% rename from packages/realtime_client/test/postgres_change_filter_test.dart rename to packages/supabase_realtime/test/postgres_change_filter_test.dart index 16f27b766..80d5b4776 100644 --- a/packages/realtime_client/test/postgres_change_filter_test.dart +++ b/packages/supabase_realtime/test/postgres_change_filter_test.dart @@ -1,4 +1,4 @@ -import 'package:realtime_client/realtime_client.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; import 'package:test/test.dart'; void main() { diff --git a/packages/realtime_client/test/realtime_integration_test.dart b/packages/supabase_realtime/test/realtime_integration_test.dart similarity index 99% rename from packages/realtime_client/test/realtime_integration_test.dart rename to packages/supabase_realtime/test/realtime_integration_test.dart index f4eac9c98..44022731e 100644 --- a/packages/realtime_client/test/realtime_integration_test.dart +++ b/packages/supabase_realtime/test/realtime_integration_test.dart @@ -4,7 +4,7 @@ library; import 'dart:async'; import 'package:postgres/postgres.dart'; -import 'package:realtime_client/realtime_client.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; import 'package:test/test.dart'; import 'utils/realtime_test_utils.dart'; diff --git a/packages/realtime_client/test/retry_timer_test.dart b/packages/supabase_realtime/test/retry_timer_test.dart similarity index 90% rename from packages/realtime_client/test/retry_timer_test.dart rename to packages/supabase_realtime/test/retry_timer_test.dart index f0bccbe50..a0ead0989 100644 --- a/packages/realtime_client/test/retry_timer_test.dart +++ b/packages/supabase_realtime/test/retry_timer_test.dart @@ -1,4 +1,4 @@ -import 'package:realtime_client/src/retry_timer.dart'; +import 'package:supabase_realtime/src/retry_timer.dart'; import 'package:test/test.dart'; void main() { diff --git a/packages/realtime_client/test/serializer_test.dart b/packages/supabase_realtime/test/serializer_test.dart similarity index 99% rename from packages/realtime_client/test/serializer_test.dart rename to packages/supabase_realtime/test/serializer_test.dart index 0a2c94cd4..2c13ff7b7 100644 --- a/packages/realtime_client/test/serializer_test.dart +++ b/packages/supabase_realtime/test/serializer_test.dart @@ -1,7 +1,7 @@ import 'dart:convert'; import 'dart:typed_data'; -import 'package:realtime_client/src/serializer.dart'; +import 'package:supabase_realtime/src/serializer.dart'; import 'package:test/test.dart'; /// Builds a `kind = userBroadcast` (4) binary frame the same way the server diff --git a/packages/realtime_client/test/socket_test.dart b/packages/supabase_realtime/test/socket_test.dart similarity index 99% rename from packages/realtime_client/test/socket_test.dart rename to packages/supabase_realtime/test/socket_test.dart index b2339c9f6..7b317ab2a 100644 --- a/packages/realtime_client/test/socket_test.dart +++ b/packages/supabase_realtime/test/socket_test.dart @@ -5,9 +5,9 @@ import 'dart:typed_data'; import 'package:crypto/crypto.dart'; import 'package:mocktail/mocktail.dart'; -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/constants.dart'; -import 'package:realtime_client/src/message.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/constants.dart'; +import 'package:supabase_realtime/src/message.dart'; import 'package:test/test.dart'; import 'package:web_socket_channel/io.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; diff --git a/packages/realtime_client/test/socket_test_stubs.dart b/packages/supabase_realtime/test/socket_test_stubs.dart similarity index 89% rename from packages/realtime_client/test/socket_test_stubs.dart rename to packages/supabase_realtime/test/socket_test_stubs.dart index 7cdbec43f..235aae6c0 100644 --- a/packages/realtime_client/test/socket_test_stubs.dart +++ b/packages/supabase_realtime/test/socket_test_stubs.dart @@ -1,6 +1,6 @@ import 'package:mocktail/mocktail.dart'; -import 'package:realtime_client/realtime_client.dart'; -import 'package:realtime_client/src/push.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; +import 'package:supabase_realtime/src/push.dart'; import 'package:web_socket_channel/io.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; diff --git a/packages/realtime_client/test/transformers_test.dart b/packages/supabase_realtime/test/transformers_test.dart similarity index 99% rename from packages/realtime_client/test/transformers_test.dart rename to packages/supabase_realtime/test/transformers_test.dart index 38e752c96..8d027aeba 100644 --- a/packages/realtime_client/test/transformers_test.dart +++ b/packages/supabase_realtime/test/transformers_test.dart @@ -1,4 +1,4 @@ -import 'package:realtime_client/src/transformers.dart'; +import 'package:supabase_realtime/src/transformers.dart'; import 'package:test/test.dart'; void main() { diff --git a/packages/realtime_client/test/types_test.dart b/packages/supabase_realtime/test/types_test.dart similarity index 97% rename from packages/realtime_client/test/types_test.dart rename to packages/supabase_realtime/test/types_test.dart index 92acdc715..7819b5e03 100644 --- a/packages/realtime_client/test/types_test.dart +++ b/packages/supabase_realtime/test/types_test.dart @@ -1,4 +1,4 @@ -import 'package:realtime_client/realtime_client.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; import 'package:test/test.dart'; Map payloadWith(Object? commitTimestamp) => { diff --git a/packages/realtime_client/test/utils/realtime_test_utils.dart b/packages/supabase_realtime/test/utils/realtime_test_utils.dart similarity index 99% rename from packages/realtime_client/test/utils/realtime_test_utils.dart rename to packages/supabase_realtime/test/utils/realtime_test_utils.dart index 0e692082d..a4d945039 100644 --- a/packages/realtime_client/test/utils/realtime_test_utils.dart +++ b/packages/supabase_realtime/test/utils/realtime_test_utils.dart @@ -4,7 +4,7 @@ import 'dart:io'; import 'package:crypto/crypto.dart'; import 'package:postgres/postgres.dart'; -import 'package:realtime_client/realtime_client.dart'; +import 'package:supabase_realtime/supabase_realtime.dart'; import 'package:supabase_common/testing.dart'; export 'package:supabase_common/testing.dart'; diff --git a/packages/realtime_client/test/websocket_io_test.dart b/packages/supabase_realtime/test/websocket_io_test.dart similarity index 96% rename from packages/realtime_client/test/websocket_io_test.dart rename to packages/supabase_realtime/test/websocket_io_test.dart index 7296d10b8..5a35c7b5c 100644 --- a/packages/realtime_client/test/websocket_io_test.dart +++ b/packages/supabase_realtime/test/websocket_io_test.dart @@ -6,7 +6,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:crypto/crypto.dart'; -import 'package:realtime_client/src/websocket/websocket_io.dart'; +import 'package:supabase_realtime/src/websocket/websocket_io.dart'; import 'package:test/test.dart'; /// Minimal WebSocket server that completes the opening handshake but never diff --git a/pubspec.yaml b/pubspec.yaml index 587abb511..88ab4a956 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -9,7 +9,7 @@ workspace: - packages/functions_client - packages/supabase_auth - packages/postgrest - - packages/realtime_client + - packages/supabase_realtime - packages/storage_client - packages/supabase - packages/supabase/example diff --git a/sdk-compliance.yaml b/sdk-compliance.yaml index 6b06bba92..ec6cdbf7b 100644 --- a/sdk-compliance.yaml +++ b/sdk-compliance.yaml @@ -15,7 +15,7 @@ # explains why. # # Verified against the source in this repository (packages/supabase_auth, postgrest, -# storage_client, realtime_client, functions_client, supabase, supabase_flutter). +# storage_client, supabase_realtime, functions_client, supabase, supabase_flutter). # Unlisted features default to not_implemented. sdk: flutter diff --git a/supabase/migrations/20240101000001_realtime_todos.sql b/supabase/migrations/20240101000001_realtime_todos.sql index 117cbdee4..db8662d4b 100644 --- a/supabase/migrations/20240101000001_realtime_todos.sql +++ b/supabase/migrations/20240101000001_realtime_todos.sql @@ -1,4 +1,4 @@ --- Table used to exercise postgres_changes in the realtime_client integration tests. +-- Table used to exercise postgres_changes in the supabase_realtime integration tests. -- Ported from the former infra/realtime_client/db/00-schema.sql (the roles and -- schemas it created by hand are already provided by the Supabase CLI stack). create table if not exists public.todos (