@schibsted/niche-ads
Advanced tools
Comparing version 4.0.2 to 4.0.3
@@ -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() { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
57179
3
41
1128
+ Added@schibsted/niche-utils@0.0.8(transitive)