Change8

v2.105.5-beta.0

Breaking Changes
📦 supabase-jsView on GitHub →
2 breaking2 features🐛 14 fixes🔧 15 symbols

Summary

This beta release introduces significant new features, including WebAuthn passkey support in Auth and deferred disconnect in Realtime. It also includes several bug fixes, notably ensuring errors are consistently wrapped as PostgrestError and modifying the Storage 'exists' behavior.

⚠️ Breaking Changes

  • Postgrest: Errors returned from processResponse are now consistently wrapped in a PostgrestError instance. Consumers relying on specific error types thrown directly might need adjustment.
  • Storage: The exists method no longer throws an error if the file does not exist; it now returns false. Code that previously relied on catching an error for non-existent files must be updated to check the boolean return value.

Migration Steps

  1. If you relied on the 'exists' method in Storage throwing an error when a file is missing, update your code to check the returned boolean value instead.
  2. Review error handling in Postgrest operations, as errors from processResponse are now guaranteed to be instances of PostgrestError.

✨ New Features

  • Auth now supports WebAuthn registration, authentication, and management via passkey support.
  • Realtime now implements deferred disconnect functionality.

🐛 Bug Fixes

  • Auth: Forwarded lockAcquireTimeout to SupabaseAuthClient.
  • Auth: Added toJSON method to WebAuthnError for correct JSON serialization.
  • Auth: Narrowed OAuth/CustomProvider types to resolve downstream consumer typecheck issues.
  • Auth: Return null from getItemAsync when JSON parsing fails.
  • Misc: Widened enum-like unions using (string & {}) for improved forward compatibility.
  • Misc: Reduced usage of 'any' type across packages.
  • Postgrest: Wrapped errors in PostgrestError instance upon processResponse.
  • Postgrest: Unified insert and upsert signatures.
  • Postgrest: Restored non-Error abort detection within fetch catch block.
  • Realtime: Annotated Timer/Vsn getters to prevent deep phoenix imports.
  • Realtime: Surface a real Error when encountering a transport-level CHANNEL_ERROR.
  • Realtime: Added guard for sessionStorage access in browsers with restricted storage.
  • Storage: Forwarded the duplex option for stream uploads via uploadToSignedUrl.
  • Storage: Fixed issue where exists method threw an error when a file did not exist.

Affected Symbols