---
title: SDK
id: changelog-sdk
slug: /changelog/sdk
description: A TypeScript library to use ShowpadJS
---

# SDK Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/).

## [3.1.3] 2024-09-12

### Fixed

- Added workaround for missing implementation of AxiosError status property to ensure token refresh on 401 responses.

## [3.1.2] 2024-07-17

### Fixed

- Fix API token retrieval (edge cases).

## [3.1.0] 2024-06-24

### Changed

- Added `addAssetsToCurrentContext` and `closeExtension` functions to Showpad.

## [3.0.1] 2024-06-11

### Fixed

- Incorrect chunking of AppsDB entries with encoded characters.

## [3.0.0] 2023-12-01

### Breaking Changes

- When using `parseConfig` or `parseEnrichedConfig`, the `localLabels` option will also be taken into account on
  production. This change was needed to support the
  [local testing flow](https://developer.showpad.com/docs/appsv2/app-development/debug-app#local-testing). You should only send `localLabels: true`
  in local development mode.

:::warning Warning

Be sure to never send `localLabels: true` in the packaged app. Doing so would load the locally embedded `config.json`
instead of the live configuration saved by the Administrator.

:::

### Changed

- The SDK now allows a v1 Experience app or any extension point in a v2
  Experience app to be served from localhost enabling an improved development
  flow where each extension point or app can be loaded from localhost in the
  correct context in web app or the admin platform.
- No longer uses the Proxy App for local development.
- No longer offers the `Showpadize` option.

## [2.4.1] 2023-09-11

### Changed

- Make an `AxiosError` thrown in development consistent with an `AxiosEror`
  thrown in production mode. Some properties (eg the `response` property) were
  missing in development mode.

## [2.4.0] 2023-05-03

### Added

- Added memoization to the `getCollections` function.
- Added `createRecord`, `setRecord` and `deleteRecord` functions to Sdm.
- Added types `TrackEventPageView` and `TrackEventEvent`

### Changed

- Admins do not need to pass the authentication parameter for `createStore`,
  `setGlobalStoreEntryValue` and `deleteGlobalStoreEntry`

## [2.3.1] 2023-03-29

### Fixed

- Fixed the `Known Issues` section in `README.md`.
- To have the desired memoization effect also the core functions needed to be
  memoized as they call each other.

## [2.3.0] - 2023-03-23

### Added

- Added support for folder app links as argument for the `getAssetsInFolder`
  method.
- Following functions are now memoized: `getVersion()`, `getDeviceInfo()`,
  `getUserInfo()`, `hasFeature()`, `parseConfig()`, `parseEnrichedConfig()`,
  `isAdmin()` and `getAppContext()`. This also fixes problems with collection
  functions where `hasFeature()` was called too quickly after each other and was
  discarded the second time.

## [2.2.1] - 2023-01-27

### Fixed

- On the Windows app, `getDeviceInfo().app` will also return `web`. `windows`
  will never be returned

## [2.2.0] - 2023-01-24

### Added

- Added `getShowpadFile` and `getShowpadPreview` to fetch raw files from
  Showpad.
- Added support for storing `undefined` values in arrays and objects.

### Fixed

- Fixed unexpected conversion of `undefined` values to `null`.

## [2.2.0-beta.3] - 2022-12-22

### Added

- Added support for `addAssetsToCollections` and `addAssetsToSharedSpaces`.
- Added `openShowpadUrl` method to programmatically invoke `showpad://` urls.
  (https://help.showpad.com/hc/en-us/articles/211957029-Showpad-URL-scheme-requirements)
- Added support for the Showpad url scheme on `development` and `showpadize`.
  (https://help.showpad.com/hc/en-us/articles/211957029-Showpad-URL-scheme-requirements)

### Fixed

- When calling `getShowpadOAuthApi()` from an alias subdomain the returned `url`
  changed to the new subdomain resulting in a CORS error. Also dependant methods
  were impacted: `getShowpadOAuthApiInteractive()`, `getShowpadOAuthInstance()`,
  `getShowpadOAuthInstanceInteractive()`.

## [2.2.0-beta.2] - 2022-11-03

### Added

- Added optional `options` for the `openAssetViewer()` method to pass `page`
  and/or `modal`:
  https://help.showpad.com/hc/en-us/articles/211957029-Showpad-URL-scheme-requirements
- Added support for api `v4` in `getShowpadInstance`, `getShowpadOAuthInstance`,
  and `getShowpadOAuthInstanceInteractive`.

### Fixed

- `RecordType` should also allow optional fields. See `type-fest`
  [fix](https://github.com/sindresorhus/type-fest/pull/465).
- Fixed bug where the `SDK` thinks its running in development inside a HTML
  Asset on `iOS` and `Android`.
- The `showpadApiCache` is now user suffixed to prevent usage of tokens from
  other users.
- JSBI is used to handle `BigInt`
- `trackExperienceEvent()` and `trackExperiencePageview()` had a wrong
  signature.

## [2.2.0-beta.1] - 2022-09-26

### Changed

- Changed AppsDB record type from `Scalar` to `JsonValue` known from the
  `type-fest` package.
- Changed minimal NODE version to `>= 15.0.0`.
- Changed entry point in `package.json` from `module` to `exports` as this it
  the NodeJS standard:
  https://stackoverflow.com/questions/42708484/what-is-the-module-package-json-field-for.
- `TrackEventPageView` has been renamed to `PageViewTouchpoint` and now hold the
  correct fields for the touchpoint.
- `TrackEventEvent` has been renamed to `EventTouchpoint` and now hold the
  correct fields for the touchpoint.

### Fixed

- Fixed `Uncaught (in promise) Error` error when calling `onShowpadLibLoaded` in
  an external context.

## [2.1.8] - 2022-06-20

### Added

- Added support for `arraybuffer` & `blob` response on the Proxy app or
  Showpadize.
- Added `V3ApiRef` type.

### Fixed

- Fixed `formData` filename was lost when using the Proxy app or Showpadize.
- An owner is now also considered as an admin in `isAdmin()`.

### Removed

- Removed `V3EventType` and `V3ExportsEvent` types.

### Changed

- All types starting with `Cms` have been renamed to start with `Sdm`.
- All properties of types starting with `cms` have been renamed to start with
  `sdm`.

## [2.1.7] - 2022-04-13

This release marks the first stable release of the Experience App SDK. Previous
versions are deprecated and should be updated ASAP.

## [1.1.0] - 2021-10-08

Public release.

## [1.0.0] - 2021-10-01

Internal release.
