Skip to content

Releases: azhukaudev/convex-angular

v1.7.0

08 Apr 21:00

Choose a tag to compare

✨ Features

  • Add Angular SSR preload and hydration helpers for server-side Convex fetches, transfer-state serialization, and injectPreloadedQuery() client hydration.
  • Add callable injectMutation() and injectAction() helpers plus .withOptimisticUpdate(...) chains with independent state per optimistic flow.
  • Add React-style paginated query status values and aggregate isLoading() support.

⚠️ Breaking Changes

  • Change injectQueries() to React-parity queries() semantics: each keyed value is now result | Error | undefined, replacing the previous results(), errors(), statuses(), and aggregate isLoading() API.

  • Change injectMutation() and injectAction() to callable helpers instead of .mutate() and .run() methods, and move optimistic mutation configuration to .withOptimisticUpdate(...).

  • Require native Convex Clerk integration in provideClerkAuth(): sessionClaims are now required and JWT template-based Clerk tokens are no longer supported.

🐛 Bug Fixes

  • Clear stale injectQuery() data while a subscription is in an active error state.
  • Stabilize Convex argument identity across query helpers and paginated optimistic updates.
  • Reset paginated queries correctly after first-page failures and align pagination semantics and validation with Convex React.
  • Stop action and mutation helpers from updating state after their Angular scope is destroyed.
  • Surface Auth0 and Clerk token fetch failures as auth errors instead of treating them as ordinary sign-out.
  • Preserve the return URL in convexAuthGuard login redirects.
  • Align auth reauth lifecycle and helper semantics more closely with Convex React behavior.
  • Require Auth0 detailed ID token responses for auth integration correctness.
  • Fix injectQuery() argument cache hydration.
  • Align the demo frontend routes, providers, and examples with the current convex-angular API.

📖 Documentation

  • Rewrite the injectQueries() docs and landing-page examples to use queries() and Angular-friendly derived computed() helpers.
  • Document the new SSR preload and hydration APIs, callable mutation/action helpers, pagination status changes, and updated Clerk/Auth0 integration requirements.

View changes on GitHub: v1.6.0...v1.7.0

v1.6.0

12 Mar 19:20

Choose a tag to compare

✨ Features

  • Add injectQueries() for keyed multi-query subscriptions with per-key results(), errors(), statuses(), and aggregate isLoading().
  • Add injectPrewarmQuery() to warm the local Convex cache before navigation or other anticipated UI work.
  • Add injectConvexConnectionState() for reactive Convex connection diagnostics.
  • Add paginated optimistic update helpers for updating cached paginated query results during optimistic mutations.

⚠️ Breaking Changes

  • Enforce root-only provideConvexAuth() registration by throwing on duplicate or nested auth provider setup.

🐛 Bug Fixes

  • Ignore stale injectQuery() subscription callbacks so outdated responses do not overwrite newer state.
  • Ignore stale injectPaginatedQuery() callbacks and throw a clear error when experimental paginated query support is unavailable on the Convex client.
  • Scope Convex auth state to the root injector to prevent inconsistent auth sync across nested provider scopes.

📖 Documentation

  • Document injectQueries(), injectPrewarmQuery(), injectConvexConnectionState(), and paginated optimistic update helpers in both READMEs.
  • Add new frontend examples for multi-query subscriptions, connection state, prewarming queries, and paginated optimistic updates.

View changes on GitHub: v1.5.0...v1.6.0

v1.5.0

08 Mar 19:54

Choose a tag to compare

⚠️ Breaking Changes

  • Change injectQuery(), injectMutation(), and injectAction() so data() is typed as T | undefined, matching the existing initial, skipped, and reset runtime states.

🐛 Bug Fixes

  • Make injectMutation().mutate() and injectAction().run() reject on failure after updating the reactive error state.
  • Ignore stale mutation and action completions so only the latest invocation updates reactive state.

📖 Documentation

  • Document rejected promise behavior for mutate() and run() in both READMEs.
  • Document the corrected data() typing in both READMEs.

View changes on GitHub: v1.4.0...v1.5.0

v1.4.0

07 Mar 22:38

Choose a tag to compare

✨ Features

  • Rework injectAuth() auth sync so status() stays loading until Convex confirms the current token with the backend.
  • Extend ConvexAuthProvider with optional reauthVersion and error signals, and update built-in Clerk/Auth0 integrations to wire auth sync through provideConvexAuth() automatically.

📖 Documentation

  • Clarify injectAuth() loading/authenticated/error semantics and document the optional ConvexAuthProvider reauth/error hooks in both READMEs.

View changes on GitHub: v1.3.0...v1.4.0

v1.3.0

07 Mar 13:56

Choose a tag to compare

✨ Features

  • Add optional injectRef support to all public inject* helpers so they can be created outside the initial Angular injection context

📖 Documentation

  • Document injectRef usage for creating helpers outside the initial injection context.

View changes on GitHub: v1.2.0...v1.3.0

v1.2.0

07 Mar 13:06

Choose a tag to compare

⚠️ Breaking Changes

  • injectPaginatedQuery(...) now takes a plain options object, initialNumItems accepts number | Signal<number>, and the legacy () => options form was removed.

📖 Documentation

  • Update README and JSDoc examples to use object-form injectPaginatedQuery(...) options and signal-based initialNumItems.

View changes on GitHub: v1.1.0...v1.2.0

v1.1.0

04 Mar 12:29

Choose a tag to compare

✨ Features

  • Enforce root-only Convex setup by validating provideConvex(...) registrations and throwing on duplicate or nested provider scopes.

⚠️ Breaking Changes

  • provideConvex(...) now returns EnvironmentProviders and must be configured exactly once in root app providers.

📖 Documentation

  • Clarify root-only provideConvex(...) setup requirements in package and repository READMEs.

View changes on GitHub: v1.0.4...v1.1.0

v1.0.4

16 Feb 21:13

Choose a tag to compare

📖 Documentation

  • Refresh README examples and fix inconsistencies (requirements note, safer injectQuery, updated pagination/guard snippets, auth examples now use useExisting, repo dev commands).

View changes on GitHub: v1.0.3...v1.0.4

v1.0.3

14 Feb 16:49

Choose a tag to compare

✨ Features

  • Add provideConvexAuthFromExisting(...) to wire CONVEX_AUTH to an existing injectable auth provider instance (avoids accidental duplicate instances)

📖 Documentation

  • Update Custom Auth Provider examples to use useExisting and warn that useClass can create a second instance so auth signal changes won’t reach Convex auth sync
  • Add a @convex-dev/auth integration snippet and clarify that provideConvexAuth() handles setAuth/clearAuth automatically when isAuthenticated changes
  • Align JSDoc auth provider/token examples to prefer useExisting

View changes on GitHub: v1.0.2...v1.0.3

v1.0.2

27 Jan 20:09

Choose a tag to compare

🐛 Bug Fixes

  • Clear Convex auth when the provider is loading or unauthenticated to avoid stale tokens
  • Auto-initialize auth sync when registering auth providers so queries refresh on sign-in/out

📖 Documentation

  • Document automatic auth sync initialization and logout behavior

View changes on GitHub: v1.0.1...v1.0.2