Socket
Socket
Sign inDemoInstall

@schibsted/niche-ads

Package Overview
Dependencies
Maintainers
7
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@schibsted/niche-ads - npm Package Compare versions

Comparing version 4.0.2 to 4.0.3

128

lib/AdContext.js

@@ -1,2 +0,1 @@

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -11,26 +10,25 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AdContextProvider = void 0;
const react_1 = require("react");
const splitEvery_1 = require("./utils/splitEvery");
const appnexus_1 = require("./utils/appnexus");
const loadScript_1 = require("./utils/loadScript");
const collapse_1 = require("./appnexusMessageHandlers/collapse");
const useEvent_1 = require("./useEvent");
const getEventTarget_1 = require("./getEventTarget");
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useMemo, useRef, useEffect, useCallback } from 'react';
import getEventTarget from '@schibsted/niche-utils';
import splitEvery from './utils/splitEvery';
import { APPNEXUS_EVENT_TYPES, clearRequest, defineTag, getAdId, getUserId, isASTLoaded, loadTags, offEvent, onEvent, setPageOpts, setUpAPNObject, subscribeToASTLoad, } from './utils/appnexus';
import loadScript from './utils/loadScript';
import collapseAd from './appnexusMessageHandlers/collapse';
import useEvent from './useEvent';
function noop() {
return null;
}
const AdContext = (0, react_1.createContext)({});
const AdContext = createContext({});
const APPNEXUS_PLACEMENTS_PER_REQUEST_LIMIT = 12;
const buildKeywords = (cfg, device, pageType) => (Object.assign(Object.assign(Object.assign({}, cfg.common), cfg[device].common), cfg[device][pageType]));
function cleanUpPlacement(targetId) {
(0, appnexus_1.offEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adLoaded, targetId);
(0, appnexus_1.offEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adAvailable, targetId);
(0, appnexus_1.offEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adBadRequest, targetId);
(0, appnexus_1.offEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adError, targetId);
(0, appnexus_1.offEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adCollapse, targetId);
(0, appnexus_1.offEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adNoBid, targetId);
(0, appnexus_1.offEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adRequestFailure, targetId);
(0, appnexus_1.offEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adRequested, targetId);
offEvent(APPNEXUS_EVENT_TYPES.adLoaded, targetId);
offEvent(APPNEXUS_EVENT_TYPES.adAvailable, targetId);
offEvent(APPNEXUS_EVENT_TYPES.adBadRequest, targetId);
offEvent(APPNEXUS_EVENT_TYPES.adError, targetId);
offEvent(APPNEXUS_EVENT_TYPES.adCollapse, targetId);
offEvent(APPNEXUS_EVENT_TYPES.adNoBid, targetId);
offEvent(APPNEXUS_EVENT_TYPES.adRequestFailure, targetId);
offEvent(APPNEXUS_EVENT_TYPES.adRequested, targetId);
}

@@ -42,12 +40,12 @@ let resolveAdBlockerDetectedPromise;

function AdContextProvider({ adsConfig, cdn, children, cogwheelCdn, device, wallpaper, glimr, eids }) {
const adScriptsReady = (0, react_1.useRef)(false);
const placements = (0, react_1.useRef)({});
const placementsConfig = (0, react_1.useRef)([]);
const placementsMediation = (0, react_1.useRef)({});
const retryLoadAds = (0, react_1.useRef)(false);
const scriptsLoadPromise = (0, react_1.useRef)();
const hasClearPlacementsBeenCalledLast = (0, react_1.useRef)(false);
const adsEventTarget = (0, react_1.useRef)((0, getEventTarget_1.default)());
const ppids = (0, react_1.useRef)();
const sendEvent = (0, react_1.useCallback)((targetId, placement, placementConfig) => {
const adScriptsReady = useRef(false);
const placements = useRef({});
const placementsConfig = useRef([]);
const placementsMediation = useRef({});
const retryLoadAds = useRef(false);
const scriptsLoadPromise = useRef();
const hasClearPlacementsBeenCalledLast = useRef(false);
const adsEventTarget = useRef(getEventTarget());
const ppids = useRef();
const sendEvent = useCallback((targetId, placement, placementConfig) => {
adsEventTarget.current.dispatchEvent(new CustomEvent(targetId, {

@@ -60,3 +58,3 @@ detail: {

}, []);
(0, react_1.useEffect)(() => {
useEffect(() => {
// resends data to newly attached palacements that use usePlacement

@@ -76,11 +74,11 @@ adsEventTarget.current.addEventListener('resend', (e) => {

// handles messages sent by ads library on window object
const messageHandler = (0, useEvent_1.default)((event) => __awaiter(this, void 0, void 0, function* () {
const messageHandler = useEvent((event) => __awaiter(this, void 0, void 0, function* () {
if (wallpaper.enabled) {
const attachWallpaperImageToPageBody = yield Promise.resolve().then(() => require('./appnexusMessageHandlers/wallpaper'));
const attachWallpaperImageToPageBody = yield import('./appnexusMessageHandlers/wallpaper');
attachWallpaperImageToPageBody.default(event, wallpaper);
}
(0, collapse_1.default)(event);
collapseAd(event);
}));
// attaches listener for ads messages on window object
(0, react_1.useEffect)(() => {
useEffect(() => {
window.addEventListener('message', messageHandler);

@@ -91,3 +89,3 @@ return () => {

}, [messageHandler]);
const loadAds = (0, useEvent_1.default)(({ pageType, keywords, allowlist, blocklist }) => __awaiter(this, void 0, void 0, function* () {
const loadAds = useEvent(({ pageType, keywords, allowlist, blocklist }) => __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d;

@@ -107,5 +105,5 @@ hasClearPlacementsBeenCalledLast.current = false;

placementsMediation.current = {};
(0, appnexus_1.clearRequest)();
const pageOptions = Object.assign(Object.assign({}, adsConfig.options), { keywords: Object.assign(Object.assign(Object.assign({}, buildKeywords(adsConfig.keywords, device, pageType)), keywords), { 'aa-sch-externalid_src': Boolean((0, appnexus_1.getAdId)()) + Boolean((0, appnexus_1.getUserId)()), 'aa-sch-schuserhash': ['0'], 'aa-sch-schenvhash': ['0'] }), user: {
externalUid: (0, appnexus_1.getAdId)(),
clearRequest();
const pageOptions = Object.assign(Object.assign({}, adsConfig.options), { keywords: Object.assign(Object.assign(Object.assign({}, buildKeywords(adsConfig.keywords, device, pageType)), keywords), { 'aa-sch-externalid_src': Boolean(getAdId()) + Boolean(getUserId()), 'aa-sch-schuserhash': ['0'], 'aa-sch-schenvhash': ['0'] }), user: {
externalUid: getAdId(),
} });

@@ -132,3 +130,3 @@ if (((_a = ppids.current) === null || _a === void 0 ? void 0 : _a.PPID1) || ((_b = ppids.current) === null || _b === void 0 ? void 0 : _b.PPID2)) {

if (glimr.enabled && (yield glimr.shouldLoad())) {
const { getGlimrTags } = yield Promise.resolve().then(() => require('./utils/glimr'));
const { getGlimrTags } = yield import('./utils/glimr');
const glimrTags = yield getGlimrTags(glimr);

@@ -140,3 +138,3 @@ if (glimrTags) {

}
(0, appnexus_1.setPageOpts)(pageOptions);
setPageOpts(pageOptions);
let newPlacementConfig = (_c = adsConfig.placements[device][pageType]) === null || _c === void 0 ? void 0 : _c.filter((placement) => placement.invCode);

@@ -157,3 +155,3 @@ if (!newPlacementConfig) {

if (((_d = placementsConfig.current) === null || _d === void 0 ? void 0 : _d.length) > 0) {
const placementsConfigsChunks = (0, splitEvery_1.default)(APPNEXUS_PLACEMENTS_PER_REQUEST_LIMIT, placementsConfig.current);
const placementsConfigsChunks = splitEvery(APPNEXUS_PLACEMENTS_PER_REQUEST_LIMIT, placementsConfig.current);
const setPlacement = (placement, placementConfig) => {

@@ -165,4 +163,4 @@ placements.current = Object.assign(Object.assign({}, placements.current), { [placementConfig.targetId]: placement });

placementsConfigChunk.forEach((placementConfig) => {
(0, appnexus_1.defineTag)(Object.assign(Object.assign({}, adsConfig.placements.common), placementConfig));
(0, appnexus_1.onEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adLoaded, placementConfig.targetId, (data) => {
defineTag(Object.assign(Object.assign({}, adsConfig.placements.common), placementConfig));
onEvent(APPNEXUS_EVENT_TYPES.adLoaded, placementConfig.targetId, (data) => {
if (data.source === 'csm') {

@@ -175,29 +173,29 @@ placementsMediation.current[placementConfig.targetId] = true;

});
(0, appnexus_1.onEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adAvailable, placementConfig.targetId, (data) => {
onEvent(APPNEXUS_EVENT_TYPES.adAvailable, placementConfig.targetId, (data) => {
setPlacement(data, placementConfig);
});
(0, appnexus_1.onEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adBadRequest, placementConfig.targetId, () => {
onEvent(APPNEXUS_EVENT_TYPES.adBadRequest, placementConfig.targetId, () => {
setPlacement(null, placementConfig);
});
(0, appnexus_1.onEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adError, placementConfig.targetId, () => {
onEvent(APPNEXUS_EVENT_TYPES.adError, placementConfig.targetId, () => {
setPlacement(null, placementConfig);
});
(0, appnexus_1.onEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adCollapse, placementConfig.targetId, () => {
onEvent(APPNEXUS_EVENT_TYPES.adCollapse, placementConfig.targetId, () => {
setPlacement(null, placementConfig);
});
(0, appnexus_1.onEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adNoBid, placementConfig.targetId, () => {
onEvent(APPNEXUS_EVENT_TYPES.adNoBid, placementConfig.targetId, () => {
setPlacement(null, placementConfig);
});
(0, appnexus_1.onEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adRequestFailure, placementConfig.targetId, () => {
onEvent(APPNEXUS_EVENT_TYPES.adRequestFailure, placementConfig.targetId, () => {
setPlacement(null, placementConfig);
});
(0, appnexus_1.onEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adRequested, placementConfig.targetId, () => {
onEvent(APPNEXUS_EVENT_TYPES.adRequested, placementConfig.targetId, () => {
setPlacement(undefined, placementConfig);
});
});
(0, appnexus_1.loadTags)();
loadTags();
});
}
}));
const handleLoadAdsReload = (0, useEvent_1.default)(() => {
const handleLoadAdsReload = useEvent(() => {
if (retryLoadAds.current) {

@@ -210,6 +208,6 @@ const params = retryLoadAds.current;

// handles edge case when devie changes from undefined to something useful
(0, react_1.useEffect)(() => {
useEffect(() => {
handleLoadAdsReload();
}, [device, handleLoadAdsReload]);
const clearPlacements = (0, useEvent_1.default)(() => {
const clearPlacements = useEvent(() => {
hasClearPlacementsBeenCalledLast.current = true;

@@ -223,3 +221,3 @@ placementsConfig.current.forEach((placementConfig) => {

});
(0, react_1.useEffect)(() => {
useEffect(() => {
adsEventTarget.current.addEventListener('ppids', (e) => {

@@ -232,12 +230,12 @@ ppids.current = e.detail;

}, [handleLoadAdsReload, eids.required]);
(0, react_1.useEffect)(() => {
useEffect(() => {
scriptsLoadPromise.current = Promise.all([
(0, loadScript_1.default)(cdn, 'adsScript'),
(0, loadScript_1.default)(cogwheelCdn, 'cogwheelScript'),
loadScript(cdn, 'adsScript'),
loadScript(cogwheelCdn, 'cogwheelScript'),
])
.then(() => {
if (!(0, appnexus_1.isASTLoaded)()) {
(0, appnexus_1.setUpAPNObject)();
if (!isASTLoaded()) {
setUpAPNObject();
}
(0, appnexus_1.subscribeToASTLoad)((ready) => {
subscribeToASTLoad((ready) => {
adScriptsReady.current = ready;

@@ -253,3 +251,3 @@ handleLoadAdsReload();

}, [cdn, cogwheelCdn, handleLoadAdsReload]);
const value = (0, react_1.useMemo)(() => ({
const value = useMemo(() => ({
loadAds,

@@ -260,5 +258,4 @@ clearPlacements,

}), [loadAds, clearPlacements]);
return <AdContext.Provider value={value}>{children}</AdContext.Provider>;
return _jsx(AdContext.Provider, { value: value, children: children });
}
exports.AdContextProvider = AdContextProvider;
AdContextProvider.defaultProps = {

@@ -282,2 +279,3 @@ cdn: 'https://acdn.adnxs.com/ast/ast.js',

};
exports.default = AdContext;
export { AdContextProvider };
export default AdContext;

@@ -1,4 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const appnexus_1 = require("../utils/appnexus");
import { APPNEXUS_EVENT_TYPES, emitEvent } from '../utils/appnexus';
function collapseAd(messageListenerEvent = {}) {

@@ -8,5 +6,5 @@ const { data } = messageListenerEvent;

const targetId = data.replace(/^collapseAd:/, '');
(0, appnexus_1.emitEvent)(appnexus_1.APPNEXUS_EVENT_TYPES.adCollapse, targetId);
emitEvent(APPNEXUS_EVENT_TYPES.adCollapse, targetId);
}
}
exports.default = collapseAd;
export default collapseAd;

@@ -1,3 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**

@@ -24,2 +22,2 @@ * This is an event handler for postMessage sent from wallpaper ad iframe.

}
exports.default = attachWallpaperImageToPageBody;
export default attachWallpaperImageToPageBody;

@@ -1,14 +0,6 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fireImpressionTrackers = exports.useClearPlacements = exports.useLoadAds = exports.usePlacement = exports.AdContextProvider = exports.AdContext = void 0;
const AdContext_1 = require("./AdContext");
exports.AdContext = AdContext_1.default;
Object.defineProperty(exports, "AdContextProvider", { enumerable: true, get: function () { return AdContext_1.AdContextProvider; } });
const appnexus_1 = require("./utils/appnexus");
Object.defineProperty(exports, "fireImpressionTrackers", { enumerable: true, get: function () { return appnexus_1.fireImpressionTrackers; } });
const usePlacement_1 = require("./usePlacement");
exports.usePlacement = usePlacement_1.default;
const useLoadAds_1 = require("./useLoadAds");
exports.useLoadAds = useLoadAds_1.default;
const useClearPlacements_1 = require("./useClearPlacements");
exports.useClearPlacements = useClearPlacements_1.default;
import AdContext, { AdContextProvider } from './AdContext';
import { fireImpressionTrackers } from './utils/appnexus';
import usePlacement from './usePlacement';
import useLoadAds from './useLoadAds';
import useClearPlacements from './useClearPlacements';
export { AdContext, AdContextProvider, usePlacement, useLoadAds, useClearPlacements, fireImpressionTrackers };

@@ -1,9 +0,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const AdContext_1 = require("./AdContext");
import { useContext } from 'react';
import AdContext from './AdContext';
const useClearPlacements = () => {
const { clearPlacements } = (0, react_1.useContext)(AdContext_1.default);
const { clearPlacements } = useContext(AdContext);
return clearPlacements;
};
exports.default = useClearPlacements;
export default useClearPlacements;

@@ -1,9 +0,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
import { useCallback, useRef } from 'react';
function useEvent(handler) {
const handlerRef = (0, react_1.useRef)(handler);
const handlerRef = useRef(handler);
handlerRef.current = handler;
return (0, react_1.useCallback)((...args) => handlerRef.current(...args), []);
return useCallback((...args) => handlerRef.current(...args), []);
}
exports.default = useEvent;
export default useEvent;

@@ -1,9 +0,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const AdContext_1 = require("./AdContext");
import { useContext } from 'react';
import AdContext from './AdContext';
const useLoadAds = () => {
const { loadAds } = (0, react_1.useContext)(AdContext_1.default);
const { loadAds } = useContext(AdContext);
return loadAds;
};
exports.default = useLoadAds;
export default useLoadAds;

@@ -1,12 +0,10 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const appnexus_1 = require("./utils/appnexus");
const AdContext_1 = require("./AdContext");
const useEvent_1 = require("./useEvent");
import { useContext, useEffect, useMemo, useState } from 'react';
import { showTag } from './utils/appnexus';
import AdContext from './AdContext';
import useEvent from './useEvent';
const usePlacement = (targetId) => {
const { adsEventTarget } = (0, react_1.useContext)(AdContext_1.default);
const [placement, setPlacement] = (0, react_1.useState)();
const [placementConfig, setPlacementConfig] = (0, react_1.useState)();
(0, react_1.useEffect)(() => {
const { adsEventTarget } = useContext(AdContext);
const [placement, setPlacement] = useState();
const [placementConfig, setPlacementConfig] = useState();
useEffect(() => {
const listener = (e) => {

@@ -26,9 +24,9 @@ const data = e.detail;

}, [adsEventTarget, targetId]);
const showAd = (0, useEvent_1.default)(() => {
const showAd = useEvent(() => {
if (placement === null || placement === void 0 ? void 0 : placement.targetId) {
(0, appnexus_1.showTag)(placement.targetId);
showTag(placement.targetId);
}
});
return (0, react_1.useMemo)(() => [placement, showAd, placementConfig], [placement, placementConfig, showAd]);
return useMemo(() => [placement, showAd, placementConfig], [placement, placementConfig, showAd]);
};
exports.default = usePlacement;
export default usePlacement;

@@ -1,4 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAdId = exports.getUserId = exports.fireImpressionTrackers = exports.emitEvent = exports.onEvent = exports.offEvent = exports.setPageOpts = exports.showTag = exports.refresh = exports.loadTags = exports.clearRequest = exports.defineTag = exports.setUpAPNObject = exports.subscribeToASTLoad = exports.isASTLoaded = exports.APPNEXUS_EVENT_TYPES = void 0;
const apntagLoadSubscribers = [];

@@ -27,3 +24,3 @@ let apntag = {

const getCookie = () => decodeURIComponent(document.cookie.replace(new RegExp(`(?:(?:^|.*;)\\s*${encodeURIComponent('_pulse2data').replace(/[-.+*]/g, '\\$&')}\\s*\\=\\s*([^;]*).*$)|^.*$`), '$1')) || false;
exports.APPNEXUS_EVENT_TYPES = {
export const APPNEXUS_EVENT_TYPES = {
adRequested: 'adRequested',

@@ -38,5 +35,4 @@ adAvailable: 'adAvailable',

};
const isASTLoaded = () => apntag.loaded;
exports.isASTLoaded = isASTLoaded;
const subscribeToASTLoad = (callback) => {
export const isASTLoaded = () => apntag.loaded;
export const subscribeToASTLoad = (callback) => {
if (apntag.loaded === true) {

@@ -49,4 +45,3 @@ callback(apntag.loaded);

};
exports.subscribeToASTLoad = subscribeToASTLoad;
const setUpAPNObject = () => {
export const setUpAPNObject = () => {
var _a;

@@ -58,36 +53,23 @@ // eslint-disable-next-line no-multi-assign

};
exports.setUpAPNObject = setUpAPNObject;
const defineTag = (tagDefinition) => addToQueue(() => apntag.defineTag(tagDefinition));
exports.defineTag = defineTag;
const clearRequest = () => addToQueue(() => apntag.clearRequest());
exports.clearRequest = clearRequest;
const loadTags = () => {
export const defineTag = (tagDefinition) => addToQueue(() => apntag.defineTag(tagDefinition));
export const clearRequest = () => addToQueue(() => apntag.clearRequest());
export const loadTags = () => {
setTimeout(() => addToQueue(() => apntag.loadTags()), 0);
};
exports.loadTags = loadTags;
const refresh = (targetIds) => addToQueue(() => apntag.refresh(targetIds));
exports.refresh = refresh;
const showTag = (targetId) => addToQueue(() => apntag.showTag(targetId));
exports.showTag = showTag;
const setPageOpts = (options) => addToQueue(() => apntag.setPageOpts(options));
exports.setPageOpts = setPageOpts;
const offEvent = (eventType, targetId) => addToQueue(() => apntag.offEvent(eventType, targetId));
exports.offEvent = offEvent;
const onEvent = (eventType, targetId, handler) => addToQueue(() => apntag.onEvent(eventType, targetId, handler));
exports.onEvent = onEvent;
const emitEvent = (eventType, targetId) => addToQueue(() => apntag.emitEvent(targetId, eventType));
exports.emitEvent = emitEvent;
const fireImpressionTrackers = (adPlacement) => {
export const refresh = (targetIds) => addToQueue(() => apntag.refresh(targetIds));
export const showTag = (targetId) => addToQueue(() => apntag.showTag(targetId));
export const setPageOpts = (options) => addToQueue(() => apntag.setPageOpts(options));
export const offEvent = (eventType, targetId) => addToQueue(() => apntag.offEvent(eventType, targetId));
export const onEvent = (eventType, targetId, handler) => addToQueue(() => apntag.onEvent(eventType, targetId, handler));
export const emitEvent = (eventType, targetId) => addToQueue(() => apntag.emitEvent(targetId, eventType));
export const fireImpressionTrackers = (adPlacement) => {
addToQueue(() => apntag.fireImpressionTrackers(adPlacement));
};
exports.fireImpressionTrackers = fireImpressionTrackers;
const getUserId = () => {
export const getUserId = () => {
const cookie = getCookie();
return cookie ? cookie.split(',')[2] : undefined;
};
exports.getUserId = getUserId;
const getAdId = () => {
export const getAdId = () => {
const cookie = getCookie();
return cookie ? cookie.split(',')[9] : undefined;
};
exports.getAdId = getAdId;

@@ -1,2 +0,1 @@

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -11,19 +10,17 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getGlimrTags = void 0;
const localStorage_1 = require("./localStorage");
import { saveToLocalStorageWithExpiration, getFromLocalStorageWithExpiration } from './localStorage';
const CLIENT_ID = 'H3IYO2A4LD43YPFZIJLN';
const LOCAL_STORAGE_KEY = 'glimrTags';
const LOCAL_STORAGE_EXPIRATION = 24 * 60 * 60 * 1000;
function getGlimrTags(options) {
export function getGlimrTags(options) {
return __awaiter(this, void 0, void 0, function* () {
const cachedTags = (0, localStorage_1.getFromLocalStorageWithExpiration)(options.localStorageKey || LOCAL_STORAGE_KEY, options.localStorageExpiration || LOCAL_STORAGE_EXPIRATION);
const cachedTags = getFromLocalStorageWithExpiration(options.localStorageKey || LOCAL_STORAGE_KEY, options.localStorageExpiration || LOCAL_STORAGE_EXPIRATION);
if (cachedTags) {
return cachedTags;
}
const glimr = yield Promise.resolve().then(() => require('glimr-sdk'));
const glimr = yield import('glimr-sdk');
glimr.setTagCacheTimeInSeconds(300); // 300 is max https://developer.glimr.io/docs/retrieving-audiences#settagcachetimeinseconds
return new Promise((resolve) => {
glimr.getTags(options.clientId || CLIENT_ID, (tags) => {
(0, localStorage_1.saveToLocalStorageWithExpiration)(options.localStorageKey || LOCAL_STORAGE_KEY, tags);
saveToLocalStorageWithExpiration(options.localStorageKey || LOCAL_STORAGE_KEY, tags);
resolve(tags);

@@ -34,2 +31,1 @@ });

}
exports.getGlimrTags = getGlimrTags;

@@ -1,3 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function loadScript(url, id) {

@@ -19,2 +17,2 @@ return new Promise((resolve, reject) => {

}
exports.default = loadScript;
export default loadScript;

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFromLocalStorageWithExpiration = exports.saveToLocalStorageWithExpiration = void 0;
function saveToLocalStorageWithExpiration(key, value) {
export function saveToLocalStorageWithExpiration(key, value) {
try {

@@ -18,4 +15,3 @@ if (value) {

}
exports.saveToLocalStorageWithExpiration = saveToLocalStorageWithExpiration;
function getFromLocalStorageWithExpiration(key, expiration) {
export function getFromLocalStorageWithExpiration(key, expiration) {
try {

@@ -32,2 +28,1 @@ const data = JSON.parse(window.localStorage.getItem(key));

}
exports.getFromLocalStorageWithExpiration = getFromLocalStorageWithExpiration;

@@ -1,3 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function splitEvery(chunkSize, array) {

@@ -8,2 +6,2 @@ return new Array(Math.ceil(array.length / chunkSize))

}
exports.default = splitEvery;
export default splitEvery;
{
"name": "@schibsted/niche-ads",
"version": "4.0.2",
"version": "4.0.3",
"description": "Package containing ads logic reappearing across our projects",

@@ -32,5 +32,6 @@ "main": "lib/index.js",

"dependencies": {
"@schibsted/niche-utils": "^0.0.8",
"glimr-sdk": "^3.3.3"
},
"gitHead": "5a8a82fc1ac371f69ee448fe23840b3421e2288a"
"gitHead": "de0ff01bb09e047458022d48bcfb26cd089cc50b"
}
import { createContext, useMemo, useRef, useEffect, useCallback } from 'react';
import getEventTarget from '@schibsted/niche-utils';
import splitEvery from './utils/splitEvery';

@@ -20,3 +21,2 @@ import {

import useEvent from './useEvent';
import getEventTarget from './getEventTarget';

@@ -23,0 +23,0 @@ function noop() {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc