UNPKG

@adv-ui/boros-tcf-stub

Version:

Adevinta GDPR - Transparency and Consent Framework - Stub for Boros TCF

81 lines (52 loc) 2.86 kB
# Boros TCF Stub [![Build status](https://travis-ci.org/scm-spain/boros-tcf-stub.svg?branch=master)](https://travis-ci.org/scm-spain/boros-tcf-stub) [![codecov](https://codecov.io/gh/scm-spain/boros-tcf-stub/branch/master/graph/badge.svg)](https://codecov.io/gh/scm-spain/boros-tcf-stub) [![GitHub license](https://img.shields.io/github/license/scm-spain/boros-tcf-stub.svg)](https://github.com/scm-spain/boros-tcf-stub/blob/master/LICENSE) [![npm version](https://img.shields.io/npm/v/@adv-ui/boros-tcf-stub.svg)](https://www.npmjs.com/package/@adv-ui/boros-tcf-stub) ## Table of Contents * [About](#about) * [Features](#features) * [Usage](#usage) * [License](#license) ## About The Boros TCF stub implements the [standard TCF v2 stub](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#how-does-the-cmp-stub-api-work) ## Features - Registers the `__tcfapiLocator` frame - Stubs the `window.__tcfapi` responding immediately to the commands - `ping` [See PingReturn in the stubbed __tcfapi](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#requirements-for-the-cmp-stub-api-script) - `pending` returns the pending calls accumulated while calling `window.__tcfapi` commands - `onReady` returns the optional registered `onReady` callback - Initializes the cross-framee communication via `postMessagee`, [see usage details](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#how-can-vendors-that-use-iframes-call-the-cmp-api-from-an-iframe) ## Usage ### As an importable module > Use it this way if you're generating your own initialization **Install** ``` npm i @adv-ui/boros-tcf-stub --save ``` **Register the Stub** ``` import registerStub from '../main' // do your magic registerStub() ``` **Register the Stub with an onReady callback** This allows creating additional commands that can have access to the Boros TCF API facade. ``` import registerStub from '../main' const onReady = api => initializeCustomCommands(api) registerStub({onReady}) ``` > The `onReady` callback will be called after Boros TCF initializes the `window.__tcfapi` and before processing any pending command in the stub's queue. > Remember that the Stub **must** be registered before any script depending on the TCF is loaded ### As a standalone script **Add it to the `head` tag** ``` <script src="https://c.dcdn.es/borostcf/stub/BorosTcfStub.pro.js" async="false" /> ``` > This does not accept registering an `onReady` callback. Import the `registerStub` and generate your own script if it's a need. ## License Boros TCF Stub is [MIT licensed](./LICENSE).