@m10s/cmp
Version:
Package containing scripts used by Schibsteds' sites to integrate with Sourcepoint CMP
42 lines (38 loc) • 1.72 kB
JavaScript
import { setupPsiConfig, setupPsiConfigAsync } from './psi';
import { setupSccApi } from './scc';
import { setupTcfApi } from './tcf';
import { version } from './version';
import { loadMessagingScript, loadExternalToolsScript, loadTcfApi } from './utils/index';
import { checkIfShouldDisableOnWebview } from './utils/mobile';
import { getConsentHistory } from './sticky-consent/index';
import { getCookie } from './utils.js';
export function psi(window, document, navigator, config) {
loadExternalToolsScript(document, config);
setupPsiConfig(window, document, navigator, {...config, jsSdkVersion: version}, 'psi');
loadMessagingScript(config, document);
}
export function scc(window, document, navigator, config) {
loadExternalToolsScript(document, config);
setupPsiConfig(window, document, navigator, config, 'scc');
setupSccApi(window, config);
loadMessagingScript(config, document);
}
export async function tcf(window, document, navigator, config) {
// workaround for webviews. do not init sourcepoint if native consent is not passed
if (checkIfShouldDisableOnWebview(window, navigator, config)) {
console.warn('CMP: Native consent is not passed. Sourcepoint will not be initialized.');
return;
};
loadTcfApi(document);
loadExternalToolsScript(document, config);
if (config.enableUserCentric) {
await setupPsiConfigAsync(window, document, navigator, config, 'tcf');
} else {
setupPsiConfig(window, document, navigator, config, 'tcf');
}
setupTcfApi(window, config);
loadMessagingScript(config, document);
if (config.authId && !getCookie('CMP:stickyConsent')) {
getConsentHistory(window, config);
}
}