@adv-ui/boros-tcf
Version:
Adevinta GDPR - Transparency and Consent Framework - API
95 lines (66 loc) • 2.99 kB
Markdown

[](https://travis-ci.org/scm-spain/boros-tcf)
[](https://codecov.io/gh/scm-spain/boros-tcf)
[](https://github.com/scm-spain/boros-tcf/blob/master/LICENSE)
[](https://www.npmjs.com/package/@adv-ui/boros-tcf)
- [About](
- [Features](
- [License](
**Boros TCF** is a stand alone Consent Management Provider solution compliant with the "Transparency & Consent Framework version 2.0" standard established by the [IAB Europe](https://iabeurope.eu/tcf-2-0/).
* Initialization with Stub, [see details here](https://github.com/scm-spain/boros-tcf-stub)
* Extra cookie storage
A cookie named "borosTcf" is stored with the user consents stringified data, encoded in Base64.
Sample `borosTcf` value: `eyJwb2xpY3lWZXJzaW9uIjoyLCJjbXBWZXJzaW9uIjoxLCJwdXJwb3NlIjp7ImNvbnNlbnRzIjp7IjEiOnRydWUsIjIiOnRydWUsIjMiOnRydWUsIjQiOnRydWUsIjUiOnRydWUsIjYiOnRydWUsIjciOnRydWUsIjgiOnRydWUsIjkiOnRydWUsIjEwIjp0cnVlfX0sInNwZWNpYWxGZWF0dXJlcyI6eyIxIjp0cnVlfX0=`
The encoded data in this sample value, and the cookie encoded data structure is:
```
{
"policyVersion": 2,
"cmpVersion": 1,
"purpose": {
"consents": {
"1": true,
"2": true,
"3": true,
"4": true,
"5": true,
"6": true,
"7": true,
"8": true,
"9": true,
"10": true
}
},
"specialFeatures": {
"1": true
}
}
```
To decode the cookie, p.ex.:
```
// Java
String decoded = new String(Base64.getDecoder().decode(cookieValue));
// Node
const decoded = Buffer.from(cookieValue, 'base64').toString()
```
`npm i @adv-ui/boros-tcf`
```
import BorosTcf from '@adv-ui/boros-tcf'
const borosTcf = BorosTcf.init()
```
**Allowed initialization parameters**
`BorosTcf.init({language, reporter})`
- `language` (optional, defaults to 'es'), a valid two-letter ISO 639-1 language code
- `reporter` (optional), a function which can receive `(event, payload)` parameters. Boros TCF relevant actions will be notified to the reporter, which can be used p.ex. to debug.
> Boros TCF actually will report events
> - LISTENER_ERROR: any error on registered event status listeners
> - USE_CASE_CALLED: any call to the use cases, which has finished OK
> - USE_CASE_ERROR: any call to the use cases, which has failed due to an error
> - LOAD_CONSENT_ERROR: loading the stored consent catched an error and an empty consent will be returned
Boros TCF is [MIT licensed](./LICENSE).