# Changelog ## Unreleased - Breaking: `storage.save` and `storage.delete` are removed; the server no longer accepts client storage writes. `client.storage` is read-only; module functions and the admin API write player storage. ## 0.2.1 - Docs only: README wording. ## 0.2.0 - `PlayerProfile.balances` (`CurrencyBalance[]`: `currency`, `balance`) replaces `wallets`, and the `Wallet` type is renamed `CurrencyBalance`. - `PlayerProfile.items` (`InventoryStack[]`: `item`, `quantity`) replaces `counters`. - Catalogs replace resources on the platform; no public type changes. - Module clients generated by `rudder client generate` 0.3.0 list the current kernel error codes in `RudderKernelError`. ## 0.1.0 First release as `@rudder/sdk`. Not compatible with `@rudder/js-sdk` 2.x. - `createClient({ projectKey })` creates the client; `baseUrl` defaults to `https://api.rudder.build`. - Kernel surface only: `auth`, `player` (player, identities, wallets, `counters`), `catalog`, `storage`, `modules`. Revision sync keys are `profile`, `catalog` and `storage`. - State objects expose `value` (was `data`), `status`, `error`, `load()`, `reload()` and `onChange()`. - `storage.save(type, data)` upserts the single item of a type; `storage.delete(type)` removes it. - `modules.call(module, fn, args?, { moduleVersion? })` resolves to `result` as `T`. It always sends `args` (`{}` when omitted), one `Idempotency-Key` per call reused on retries, and `X-Rudder-Module-Version: @` when a version is given. Retries up to 2 times with jittered backoff on network errors, 5xx and 409 `conflict`. A 422 rejects with `RudderModuleError` (`code`, `message`, `requestId`). - Typed module clients come from `rudder client generate --lang ts`. - Removed: `client.resources(slug)`, `client.projectStorage` and their types. ## 2.x (@rudder/js-sdk) Deprecated. Its history is in git before the 0.1.0 commit.