Files
rudder-js-sdk/CHANGELOG.md
T
rudder 3ab2d4a6cf
CI / check (push) Successful in 56s
Initial commit
2026-08-12 14:02:25 +03:00

2.9 KiB

Changelog

0.3.0

Breaking changes — the package was aligned with the Rudder SDK glossary and the regenerated wire types (src/generated, apigen). No compatibility shims are provided.

Auth

  • client.auth.loginViaDevice(region, language, nickname?) replaced by client.auth.loginWithDevice(options?: { region?, language?, nickname? }). Default region is now 'global' (was 'en'); default language stays 'en'.
  • New client.auth.onAuthStateChange(cb) — fires immediately with the current state, then on every 'signed-in' | 'signed-out' transition (login, logout, and unrecoverable session expiry in the transport).
  • New client.auth.isAuthenticated.

Client configuration

  • tokenStore in RudderClientOptions is now optional. Default: localStorage-backed store with a silent in-memory fallback where localStorage is unavailable (SSR, private mode). New createDefaultTokenStore() export.
  • Invalid client options (baseUrl / projectKey missing) now throw RudderError with code: 'sdk/invalid-options' instead of a plain Error.
  • New onEffectError option — called when an effect handler throws (default: console.error); previously such errors were swallowed silently.

Renames

  • client.configclient.remoteConfig (canonical glossary name).
  • client.battlepassclient.battlePass; BattlepassServiceBattlePassService.
  • Effects: onBattlepass / BattlepassEffectonBattlePass / BattlePassEffect; onBattlepassLevel / BattlepassLevelEffectonBattlePassLevel / BattlePassLevelEffect.
  • Generated types: SdkQuestQuest; *Battlepass* request/response types → *BattlePass*.
  • Internal transport sendAsyncrequest (not part of the public surface).

Leaderboards

  • Removed LeaderboardsService.getRanking(slug, limit) and LeaderboardsService.submitScore(slug, score). Single path: client.leaderboards.findBySlug(slug)handle.list(limit?) / handle.submit(score).

Errors

  • RudderNetworkError.inner → standard Error.cause.
  • RudderHttpError.code is typed as RudderErrorCode | (string & {}) (generated union of server error codes, plus room for unknown strings).
  • New exports: RudderErrorCode (type), RudderErrorCodes (constants), SDK_ERROR_INVALID_OPTIONS, RudderErrorCodeLike (type).

Public surface

  • The barrel no longer exports getOrCreateDeviceId, domain classes (PlayerDomain, …) or service constructors (AuthService, …) as values — they remain available as types. Instances live on the client.
  • SubmittedBy is no longer re-exported (UGC is unsupported on web).

Bundle

  • The scenario engine and the IndexedDB plan store are loaded lazily (dynamic import) on first login / first runtime access — a thin client never pulls the scenario machinery into the initial chunk.
  • The package now ships both ESM (dist/index.js) and CJS (dist/index.cjs) builds with matching exports entries.