Skip to content

feat(realtime): add postgres_changes filter builder, new operators and select#2463

Merged
mandarini merged 1 commit into
masterfrom
feat/support-new-realtime-features
Jun 30, 2026
Merged

feat(realtime): add postgres_changes filter builder, new operators and select#2463
mandarini merged 1 commit into
masterfrom
feat/support-new-realtime-features

Conversation

@filipecabaco

Copy link
Copy Markdown
Member

🔍 Description

  • New filter operators — added PostgREST-parity operators to Postgres Changes filters: like, ilike, is, match, imatch, isdistinct (on top of existing eq/neq/lt/lte/gt/gte/in), exposed via the RealtimePostgresChangesFilterOperator type.
  • not. negation — any operator can be negated; supported in raw strings (status=not.in.(draft,archived)) and via the builder's generic .not(column, operator, value).
  • AND composition — multiple comma-separated conditions are ANDed (amount=gt.100,status=in.(open,pending)); the builder chains them automatically.
  • select columns — new select?: string[] on the changes filter to receive only chosen columns instead of the full row (smaller payloads).
  • postgresChangesFilter() builder — fluent, type-checked filter builder (class RealtimePostgresFilterBuilder, modeled on postgrest-js) accepted directly in the filter field and serialized internally; verbatim/no-escaping with guards that throw on unrepresentable input (top-level comma, empty in).
  • Backward compatibility — filter accepts string | RealtimePostgresFilterBuilder, so existing string filters keep working unchanged; a test asserts string and builder produce identical wire output.

@filipecabaco filipecabaco requested review from a team as code owners June 19, 2026 16:06
@github-actions github-actions Bot added the realtime-js Related to the realtime-js library. label Jun 19, 2026
@pkg-pr-new

pkg-pr-new Bot commented Jun 19, 2026

Copy link
Copy Markdown

Open in StackBlitz

@supabase/auth-js

npm i https://pkg.pr.new/@supabase/auth-js@2463

@supabase/functions-js

npm i https://pkg.pr.new/@supabase/functions-js@2463

@supabase/postgrest-js

npm i https://pkg.pr.new/@supabase/postgrest-js@2463

@supabase/realtime-js

npm i https://pkg.pr.new/@supabase/realtime-js@2463

@supabase/storage-js

npm i https://pkg.pr.new/@supabase/storage-js@2463

@supabase/supabase-js

npm i https://pkg.pr.new/@supabase/supabase-js@2463

commit: bb20a48

@filipecabaco filipecabaco force-pushed the feat/support-new-realtime-features branch from 4df23ab to 1b19e6a Compare June 19, 2026 21:43
@filipecabaco filipecabaco requested review from a team as code owners June 19, 2026 21:43
…d select

- New filter operators — added PostgREST-parity operators to Postgres Changes
  filters: like, ilike, is, match, imatch, isdistinct (on top of existing
  eq/neq/lt/lte/gt/gte/in), exposed via the RealtimePostgresChangesFilterOperator type.
- not. negation — any operator can be negated; supported in raw strings
  (status=not.in.(draft,archived)) and via the builder's generic .not(column, operator, value).
- AND composition — multiple comma-separated conditions are ANDed
  (amount=gt.100,status=in.(open,pending)); the builder chains them automatically.
- select columns — new select?: string[] on the changes filter to receive only
  chosen columns instead of the full row (smaller payloads).
- postgresChangesFilter() builder — fluent, type-checked filter builder (class
  RealtimePostgresFilterBuilder, modeled on postgrest-js) accepted directly in the
  filter field and serialized internally; verbatim/no-escaping with guards that throw
  on unrepresentable input (top-level comma, empty in).
- Backward compatibility — filter accepts string | RealtimePostgresFilterBuilder, so
  existing string filters keep working unchanged; a test asserts string and builder
  produce identical wire output.
@filipecabaco filipecabaco force-pushed the feat/support-new-realtime-features branch from 1b19e6a to bb20a48 Compare June 22, 2026 18:26
@mandarini mandarini merged commit 65e5729 into master Jun 30, 2026
24 checks passed
@mandarini mandarini deleted the feat/support-new-realtime-features branch June 30, 2026 07:18
mandarini pushed a commit to supabase/ssr that referenced this pull request Jun 30, 2026
This PR updates `@supabase/supabase-js` to v2.110.0.

**Source**: supabase-js-stable-release

---

## Release Notes

## v2.110.0

## 2.110.0 (2026-06-30)

### 🚀 Features

- **repo:** drop Node.js 20 support
([#2482](supabase/supabase-js#2482))

### ❤️ Thank You

- Katerina Skroumpelou @mandarini
## v2.109.0

## 2.109.0 (2026-06-30)

### 🚀 Features

- **auth:** add custom_claims_allowlist to custom providers admin API
([#2473](supabase/supabase-js#2473))
- **realtime:** add postgres_changes filter builder, new operators and
select ([#2463](supabase/supabase-js#2463))
- **storage:** expose purgeCache for buckets and single objects
([#2429](supabase/supabase-js#2429))

### 🩹 Fixes

- **functions:** honor a caller's Content-Type override regardless of
casing ([#2455](supabase/supabase-js#2455))
- **realtime:** pin @supabase/phoenix and browser test CDN deps
([#2457](supabase/supabase-js#2457))
- **realtime:** add replication connection system message option
([#2470](supabase/supabase-js#2470))
- **storage:** keep sortBy defaults when list() is given a partial
sortBy ([#2454](supabase/supabase-js#2454))

### ❤️ Thank You

- Anubhav Anand @i-anubhav-anand
- Cemal Kılıç @cemalkilic
- Claude Opus 4.8 (1M context)
- Filipe Cabaço @filipecabaco
- Katerina Skroumpelou @mandarini
- Lenny
- Rodrigo Mansueli @mansueli
## v2.108.2

## 2.108.2 (2026-06-15)

### 🩹 Fixes

- **auth:** preserve valid session on refresh failure and cooldown
repeat failures
([#2436](supabase/supabase-js#2436))
- **realtime:** clarify httpSend() 404 error and server migration note
([#2444](supabase/supabase-js#2444))
- **release:** pin Deno and bound JSR publish to survive stranded-task
hangs ([#2439](supabase/supabase-js#2439))
- **release:** restore JSR publish flags and enable for beta
([#2440](supabase/supabase-js#2440))

### ❤️ Thank You

- Katerina Skroumpelou @mandarini
## v2.108.1

## 2.108.1 (2026-06-09)

### 🩹 Fixes

- **ci:** forward DOGFOOD_APP_CLIENT_ID to dogfood workflow
([#2434](supabase/supabase-js#2434))
- **postgrest:** then typing
([#2349](supabase/supabase-js#2349))

### ❤️ Thank You

- Katerina Skroumpelou @mandarini
- Vaibhav @7ttp

This PR was created automatically.

Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

realtime-js Related to the realtime-js library.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants