10.24.0 (2025-09-22)
10.23.0 (2025-06-05)
- express: Support express5 (fb6fd22)
10.22.3 (2025-01-28)
10.22.2 (2024-05-03)
10.22.1 (2024-04-11)
10.22.0 (2024-04-09)
- proxy version: Fix proxy package release flow (362045c)
10.21.0 (2024-04-09)
10.21.0 (2024-03-13)
- shrink proxy: bundles in fsxa-api are large which causes performance problems (ffc5658)
- shrink proxy: bundles in fsxa-api are large which causes performance problems (2aaf2b2)
- shrink proxy: bundles in fsxa-api are large which causes performance problems (c8727a3)
- shrink proxy: bundles in fsxa-api are large which causes performance problems (f0ad6ff)
- shrink proxy: bundles in fsxa-api are large which causes performance problems (646c74f)
- shrink proxy: bundles in fsxa-api are large which causes performance problems (e63157a)
- shrink proxy: bundles in fsxa-api are large which causes performance problems (dc54689)
10.20.0 (2024-03-04)
10.19.1 (2023-12-20)
10.19.0 (2023-11-09)
10.18.2 (2023-10-27)
10.18.1 (2023-10-18)
10.18.0 (2023-10-04)
10.17.0 (2023-09-22)
10.16.3 (2023-09-22)
10.16.3 (2023-09-22)
- Export missing HttpError class
10.16.2 (2023-08-16)
We made changes in the request body of calls sent to the remote-API. Specifically, a property name of the JSON body has changed from 'filter' to 'filters'. These calls are usually made internally within the content-API. Thus, these changes should not be breaking. If however for some reason you rely on internal API, be aware that this attribute name change could break your implementation.
10.16.1 (2023-07-31)
10.16.0 (2023-06-22)
10.15.1 (2023-06-21)
10.15.0 (2023-06-16)
10.14.1 (2023-06-14)
We would like to inform you that the project previously known as "FSXA-API" has recently undergone a name change. The project is now called "JavaScript Content API Library", but please note that this change solely affects the project's name, repository, and associated branding elements. The core code and functionality of the library remain unchanged. The purpose and scope of the library, as well as its intended usage and compatibility, remain consistent. The decision to change the name was made as the term "fsxa" no longer accurately represents the project's current scope, as other components beyond the fsxa-api are now discontinued. The name change aims to align the project's branding with its refined purpose and to avoid any confusion regarding its functionality.
10.14.0 (2023-06-13)
10.13.1 (2023-06-12)
10.13.0 (2023-06-07)
10.12.0 (2023-05-15)
10.11.3 (2023-05-09)
10.11.2 (2023-04-14)
10.11.1 (2023-03-21)
10.11.0 (2023-03-20)
10.10.3 (2023-03-17)
10.10.2 (2023-03-09)
- remoteapi: improve error handling in reference resolving (801a0ed)
10.10.1 (2023-02-28)
10.10.0 (2023-02-14)
10.9.0 (2023-02-02)
10.8.1 (2023-02-01)
10.8.0 (2023-01-24)
10.7.0 (2022-12-14)
10.6.7 (2022-11-14)
10.6.6 (2022-11-04)
10.6.5 (2022-10-27)
- radiobutton mapping: extend mapped value for radiobutton to include correct Option keys (#100) (d50039a)
10.6.4 (2022-10-21)
- fsxaremoteapi: fix caasitemsfilter method (0f2fd26)
10.6.3 (2022-10-20)
10.6.2 (2022-09-27)
10.6.1 (2022-09-22)
10.6.0 (2022-08-26)
- remote-references: provide access to remote project id when present in references (0dc9765)
10.5.1 (2022-08-26)
10.5.0 (2022-08-11)
10.4.0 (2022-08-11)
10.3.2 (2022-08-08)
10.3.1 (2022-08-02)
10.3.0 (2022-08-02)
10.2.1 (2022-07-19)
10.2.0 (2022-06-14)
10.1.1 (2022-06-10)
10.1.0 (2022-05-23)
10.0.0 (2022-05-17)
- caas-mapper: The structure of the CaasMapper output for Links in RichTextElements has been updated. Refer the CHANGELOG.md for more details.
Links inside of RichtTextElements will now be mapped in the same way as the value of CMS_INPUT_LINK.
Make sure your implementation is compliant with the new signature of Link | Record<string, any>.
Please refer the fsxa-api type-mapping.
9.0.2 (2022-05-06)
- remove prototype pollution in minimist sub-dependency (be7376a)
9.0.1 (2022-05-02)
9.0.0 (2022-04-21)
- The method
fetchProjectPropertieshas a new return type and interfaceImageMaphas a new structure.
- fetchProjectProperties: The return type of the method has changed. The function no longer returns an array of
ProjectProperties. Instead it now returns only theProjectPropertiesobject if found.
Example:
const projectProperties = await proxyAPI.fetchProjectProperties(parameters)- imageMap: The
resolutionproperty is now part of themediaproperty. Details can be found in the here.
New format:
"st_imagemap": {
"type": "ImageMap",
"areas": [],
"media": {
"type": "Image",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"previewId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx.en_GB",
"meta": {},
"description": null,
"resolutions": {
"myresolution": {
"fileSize": 31415,
"extension": "jpg",
"mimeType": "image/jpeg",
"width": 4711,
"height": 4711,
"url": "https://customer-media.e-spirit.cloud/.../image.jpg?rev=4711"
}
}
}
}8.4.0 (2022-03-24)
8.3.1 (2022-03-02)
8.3.0 (2022-02-25)
8.2.1 (2022-02-21)
8.2.0 (2022-02-15)
- CaaSMapper: Resolve remote references in CaaSMapper
8.1.0 (2022-02-11)
- FS_Reference: add optional section to reference types (fbedc26)
8.0.0 (2022-02-08)
- apiSingleton: "type" attribute needs to be added if objects of changed public interfaces are created in user code. Following interfaces have changed:
- PageBody
- Page
- Reference
- Option
- Link
- Card
- ImageMap
- GCAPage
- ProjectProperties
- Section
- Dataset
- Image
- File
Example: "Option" interface contains a "type" parameter. If your code uses the interface, you need to add the parameter "type".
compliant:
const anOption: Option = {
type: 'Option',
key: 'awesome',
value: 'example',
}non-compliant:
const anOption: Option = {
key: 'true',
value: 'example',
}Also interfaces for FSXAProxyApiConfig and CaaSApi_FSReference have changed. If you are using them in your code, make sure to be compliant to the current implementation.
Examples for compliant usages:
compliant:
const config: FSXAProxyApiConfig = {
clientUrl: '/someUrl',
serverUrl: 'localhost',
logLevel: LogLevel.0,
contentMode: FSXAContentMode.PREVIEW
}compliant:
const reference: CaaSApi_FSReference = {
fsType: 'FS_REFERENCE',
name: 'some name',
value: null,
}7.1.0 (2022-02-04)
7.0.2 (2022-01-20)
- tests: provide CaaSMapper tests (6c7389c)
7.0.1 (2022-01-14)
7.0.0 (2022-01-11)
- Previously fetchByFilter directly returned an array of returned items. Now this data is wrapped in an 'items' property. The returned object also includes pagination data now.
Previously fetchByFilter directly returned an array of returned items. Now this data is wrapped in an "items" property.
Example:
const { items } = fetchByFilter({...}) as { items: any[] }The returned object also includes pagination data ("page" and "pagesize") now.
If you are using "additionalParams" you can extend the pagination data with "totalPages" and "size" by passing count: true. Using "count" has performance implication for it involves querying the collection twice: once for counting and once of actually retrieving the data;
6.1.0 (2021-12-23)
If you are using a CustomMapper to handle CaaS requests, you need to implement following method signature in the mapper's utils object:
buildMediaUrl: (url: string, rev?: number) => stringThis method can be used to change returning URLs of CaaSApi_Media_Picture.
6.0.1 (2021-12-21)
6.0.0 (2021-12-07)
- add FSXAProxy, FSXARemoteApi and navigationFilter utilities (#58) (e909dc0), closes #44 #55 #57 #47 #49
- The FSXAApi class was removed and new classes FSXAProxyApi and FSXARemoteApi was added. Please read the migration guide in the CHANGELOG for more details.
Since the FSXAApi class has been seperated into two different API classes, the usage of the component needs to be adjusted.
API calls like fetchElement(), fetchByFilter(), fetchNavigation() and fetchProjectProperties() now have a different method signatures.
The parameters are now typed objects and some entries can even be omitted, due to the new default values.
To be compliant to the new signature, you can wrap the parameters of your method calls inside objects and add the corresponding key to your them.
Example:
api.fetchElement(req.body.id, req.body.locale, req.body?.additionalParams, req.body?.remote)does not compile
api.fetchElement({
id: req.body.id,
locale: req.body.locale,
additionalParams: req.body?.additionalParams,
remoteProject: req.body?.remote,
})new compliant solution
FSXAApi has been removed.
If you were using the FSXAApi in with mode: 'proxy' you should switch to the new FSXAProxyApi.
The FSXAContentMode can be omitted.
Example:
new FSXAApi(
FSXAContentMode.PREVIEW,
{
mode: 'proxy',
baseUrl: BASE_URL,
},
3
)does not compile
new FSXAProxyApi(BASE_URL, LogLevel.INFO)new compliant solution
FSXAApi has been removed.
If you were using the FSXAApi with mode: 'remote' you should switch to the new FSXARemoteApi.
Example:
new FSXAApi(FSXAContentMode.PREVIEW, {
mode: 'remote',
config: {
apiKey: API_KEY,
caas: CAAS_URL,
navigationService: NAVIGATION_SERVICE_URL,
tenantId: TENANT_ID,
projectId: PROJECT_ID,
remotes: REMOTES,
},
})does not compile
new FSXARemoteApi({
apikey: API_KEY,
caasURL: CAAS_URL,
navigationServiceURL: NAVIGATION_SERVICE_URL,
tenantID: TENANT_ID,
projectID: PROJECT_ID,
remotes: REMOTES,
contentMode: CONTENT_MODE,
})new compliant solution
The endpoint of /elements/:id has changed.
The :id will no longer be parsed.
Instead:
Provide the id in the POST request's body.
5.4.1 (2021-11-18)
- release management: deprecate an old release (8709044)
5.4.0 (2021-11-18)
- caasmapper: added type names to interfaces used by mapper (8a7bca0)
5.3.3 (2021-10-13)
5.3.2 (2021-08-24)
5.3.1 (2021-08-16)
5.3.0 (2021-06-29)
- querybuilder: fix ComparisonQueryOperatorEnum.IN request with empty array (a60925c)
5.2.1 (2021-06-11)
- express.ts: fix the body request locale error message (#26) (7c53fb4)
- express.ts: fix the deprecated method (#28) (c237cd4)
5.2.0 (2021-04-22)
- custom mapper: simplify custom mapper usage (#20) (9208eb5)
- navigation / pass extra headers: allow passing of extra headers to navigation service (#22) (62b749d)
5.1.1 (2021-03-22)
- locale: fix error, where country part of locale would not be used correctly (77d976d)
5.1.0 (2021-03-11)
- caasmapper: format section and link templates in FS_CATALOG entries to match section (b19fd63)
5.0.2 (2021-03-09)
5.0.1 (2021-03-03)
- caasmapper: enable RichText mapping for the CMS_INPUT_DOMTABLE as well (#14) (31436ed)
- 🐛 fixed additionalParams for fetchByFilter (#12) (7d694c8)
- caasmapper: map FILE entries (#5) (33872d8)
5.0.0 (2021-02-25)
- fetchprojectproperties: added fetchProjectProperties method and better development enviroment (7e15cf4)
- fetchprojectproperties: - This version only works with CaaSConnect module version 3.3.0 onwards.
4.1.1 (2021-02-11)
- xml-parser: add block type to RichTextElement (a261bd5)
- xml-parser: map div tag to block type (4467e83)
- xml-parser: map div tag to block type (f0ced59)
4.1.0 (2021-01-21)
4.0.7 (2021-01-21)
4.0.6 (2021-01-18)
- caasmapper: pass through unknown media-types as is (d85f2e7)
4.0.5 (2020-12-22)
- proxy: switch to POST-Requests to fix encoding issues. Parameters will be transferred as body (62b8a83)
4.0.4 (2020-12-22)
- proxy: fix error, where stringified JSON was not encoded (bdb4b4f)
4.0.3 (2020-12-22)
- proxy: fix bug, where params will all be stringified, when proxy mode is used (23c512a)
4.0.2 (2020-12-14)
- fetchnavigation: we fixed an error, where special chars in the initialPath would lead to errors (2cebd30)
4.0.1 (2020-12-14)
- references: fix unresolved referenes issue, when using fetchElement (6c26854)
4.0.0 (2020-12-13)
- removed fetchgcapages: we removed fetchGCAPages to remove redundancy in our API (dbeabbc)
- caas-mapper: meta-data from images is now available (23458b2)
- errors: we are now throwing 404 and 401 errors / renamed fetchPage to fetchElement (48cde97)
- richtext / dataset-query: richText will now be returned as json, obsolete mapDataQuery removed (82743df)
- removed fetchgcapages: - removed fetchGCAPages, use fetchByFilter instead
- errors: - renamed fetchPage to fetchElement. This method will now return mapped GCAPage / Image / Dataset as well -Methods will now throw errors, when an element is not found or the request was not authorized
- richtext / dataset-query: - RichText values are now returned as JSON
- Configuration Parameter
mapDataQuerywas removed
3.4.0 (2020-12-02)
- auto-resolve: fix bug, where urls got too long, when referended items where batch loaded (5a30ca6)
- mapper: fix static referenceId in FS_REFERENCE (dfdb397)
- pagination: added pagination support in fetchByFilter-method (631dd5b)
3.3.2 (2020-11-16)
- mapper: fix error, where Promise is returned for data-entries instead of resolved values (20c17b7)
3.3.1 (2020-11-16)
- mapper: fix error, where only one item per object was returned (74e0f38)
3.3.0 (2020-11-13)
- fetchbyfilter: fix warning about missing rh:doc property error (ec00790)
- custom-mapper: we've added a customMapper option that will override the default mapping (0849e73)
3.2.0 (2020-11-02)
- sectionreference: added SectionReference support (0a78e98)
3.1.0 (2020-10-28)
- logger, mapping: enable setting loglevel from outside and add new mapped types (0ab7cf6)
3.0.1 (2020-10-14)
- typescript / bundle: fixed ts defs and broken bundles (d293680)
3.0.0 (2020-10-12)
- datasources, misc: added datasource support + misc (4f0c439)
- datasources, misc: - tenantId in configuration object is now required
- we slightly changed the interface of the urls used in remote / proxy mode for compatibility reasons and a better integration into the express router. Please use the exposed routes and route-generators in future implementations
2.0.0 (2020-09-17)
- navigation: we added support for multi-language projects (2430896)
- navigation: the interface of the fetchNavigation changed. You now have to pass the initial path of your application and a fallback defaultLocale to the method.
Breaking Changes:
- We removed Axios as request-library and switched to fetch.
- We recommend to use (cross-fetch)[https://www.npmjs.com/package/cross-fetch] to polyfill fetch on the server side and to make this library work in SSR-Context.