diff --git a/modules/videobyteBidAdapter.js b/modules/videobyteBidAdapter.js index 076329d1c8b..172e0c763f4 100644 --- a/modules/videobyteBidAdapter.js +++ b/modules/videobyteBidAdapter.js @@ -1,5 +1,5 @@ +import { logMessage, logError, deepAccess, isFn, isPlainObject, isStr, isNumber, isArray, deepSetValue } from '../src/utils.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; -import * as utils from '../src/utils.js'; import {VIDEO} from '../src/mediaTypes.js'; const BIDDER_CODE = 'videobyte'; @@ -54,7 +54,7 @@ export const spec = { const {params} = bidRequest; let pubId = params.pubId; if (bidRequest.params.video && bidRequest.params.video.e2etest) { - utils.logMessage('E2E test mode enabled'); + logMessage('E2E test mode enabled'); pubId = 'e2etest' } return { @@ -98,7 +98,7 @@ export const spec = { bidResponses.push(bidResponse) } } else { - utils.logError('invalid server response received'); + logError('invalid server response received'); } return bidResponses; }, @@ -118,7 +118,7 @@ export const spec = { } serverResponses.forEach(resp => { - const userSync = utils.deepAccess(resp, 'body.ext.usersync'); + const userSync = deepAccess(resp, 'body.ext.usersync'); if (userSync) { let syncDetails = []; Object.keys(userSync).forEach(key => { @@ -152,8 +152,8 @@ export const spec = { function buildRequestData(bidRequest, bidderRequest) { const {params} = bidRequest; - const videoAdUnit = utils.deepAccess(bidRequest, 'mediaTypes.video', {}); - const videoBidderParams = utils.deepAccess(bidRequest, 'params.video', {}); + const videoAdUnit = deepAccess(bidRequest, 'mediaTypes.video', {}); + const videoBidderParams = deepAccess(bidRequest, 'params.video', {}); const videoParams = { ...videoAdUnit, @@ -194,7 +194,7 @@ function buildRequestData(bidRequest, bidderRequest) { size: '*' }; let floorData = bidRequest.params - if (utils.isFn(bidRequest.getFloor)) { + if (isFn(bidRequest.getFloor)) { floorData = bidRequest.getFloor(bidFloorRequest); } else { if (params.bidfloor) { @@ -226,7 +226,7 @@ function buildRequestData(bidRequest, bidderRequest) { }; // content - if (videoParams.content && utils.isPlainObject(videoParams.content)) { + if (videoParams.content && isPlainObject(videoParams.content)) { openrtbRequest.site.content = {}; const contentStringKeys = ['id', 'title', 'series', 'season', 'genre', 'contentrating', 'language']; const contentNumberkeys = ['episode', 'prodq', 'context', 'livestream', 'len']; @@ -234,33 +234,33 @@ function buildRequestData(bidRequest, bidderRequest) { const contentObjectKeys = ['ext']; for (const contentKey in videoBidderParams.content) { if ( - (contentStringKeys.indexOf(contentKey) > -1 && utils.isStr(videoParams.content[contentKey])) || - (contentNumberkeys.indexOf(contentKey) > -1 && utils.isNumber(videoParams.content[contentKey])) || - (contentObjectKeys.indexOf(contentKey) > -1 && utils.isPlainObject(videoParams.content[contentKey])) || - (contentArrayKeys.indexOf(contentKey) > -1 && utils.isArray(videoParams.content[contentKey]) && - videoParams.content[contentKey].every(catStr => utils.isStr(catStr)))) { + (contentStringKeys.indexOf(contentKey) > -1 && isStr(videoParams.content[contentKey])) || + (contentNumberkeys.indexOf(contentKey) > -1 && isNumber(videoParams.content[contentKey])) || + (contentObjectKeys.indexOf(contentKey) > -1 && isPlainObject(videoParams.content[contentKey])) || + (contentArrayKeys.indexOf(contentKey) > -1 && isArray(videoParams.content[contentKey]) && + videoParams.content[contentKey].every(catStr => isStr(catStr)))) { openrtbRequest.site.content[contentKey] = videoParams.content[contentKey]; } else { - utils.logMessage('videobyte bid adapter validation error: ', contentKey, ' is either not supported is OpenRTB V2.5 or value is undefined'); + logMessage('videobyte bid adapter validation error: ', contentKey, ' is either not supported is OpenRTB V2.5 or value is undefined'); } } } // adding schain object if (bidRequest.schain) { - utils.deepSetValue(openrtbRequest, 'source.ext.schain', bidRequest.schain); + deepSetValue(openrtbRequest, 'source.ext.schain', bidRequest.schain); openrtbRequest.source.ext.schain.nodes[0].rid = openrtbRequest.id; } // Attaching GDPR Consent Params if (bidderRequest.gdprConsent) { - utils.deepSetValue(openrtbRequest, 'user.ext.consent', bidderRequest.gdprConsent.consentString); - utils.deepSetValue(openrtbRequest, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0)); + deepSetValue(openrtbRequest, 'user.ext.consent', bidderRequest.gdprConsent.consentString); + deepSetValue(openrtbRequest, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0)); } // CCPA if (bidderRequest.uspConsent) { - utils.deepSetValue(openrtbRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent); + deepSetValue(openrtbRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent); } return openrtbRequest; } @@ -271,12 +271,12 @@ function validateVideo(bidRequest) { } if (!bidRequest.params.pubId) { - utils.logError('failed validation: publisher id not declared'); + logError('failed validation: publisher id not declared'); return false; } - const videoAdUnit = utils.deepAccess(bidRequest, 'mediaTypes.video', {}); - const videoBidderParams = utils.deepAccess(bidRequest, 'params.video', {}); + const videoAdUnit = deepAccess(bidRequest, 'mediaTypes.video', {}); + const videoBidderParams = deepAccess(bidRequest, 'params.video', {}); if (videoBidderParams && videoBidderParams.e2etest) { return true; @@ -288,16 +288,16 @@ function validateVideo(bidRequest) { }; if (!videoParams.context) { - utils.logError('failed validation: context id not declared'); + logError('failed validation: context id not declared'); return false; } if (videoParams.context !== 'instream') { - utils.logError('failed validation: only context instream is supported '); + logError('failed validation: only context instream is supported '); return false; } if (typeof videoParams.playerSize === 'undefined' || !Array.isArray(videoParams.playerSize) || !Array.isArray(videoParams.playerSize[0])) { - utils.logError('failed validation: player size not declared or is not in format [[w,h]]'); + logError('failed validation: player size not declared or is not in format [[w,h]]'); return false; } diff --git a/modules/videoreachBidAdapter.js b/modules/videoreachBidAdapter.js index c307fc3e865..61ecd55a2ef 100644 --- a/modules/videoreachBidAdapter.js +++ b/modules/videoreachBidAdapter.js @@ -1,5 +1,5 @@ +import { getValue, getBidIdParameter } from '../src/utils.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; -const utils = require('../src/utils.js'); const BIDDER_CODE = 'videoreach'; const ENDPOINT_URL = 'https://a.videoreach.com/hb/'; const GVLID = 547; @@ -17,12 +17,12 @@ export const spec = { let data = { data: validBidRequests.map(function(bid) { return { - TagId: utils.getValue(bid.params, 'TagId'), - adUnitCode: utils.getBidIdParameter('adUnitCode', bid), - bidId: utils.getBidIdParameter('bidId', bid), - bidderRequestId: utils.getBidIdParameter('bidderRequestId', bid), - auctionId: utils.getBidIdParameter('auctionId', bid), - transactionId: utils.getBidIdParameter('transactionId', bid) + TagId: getValue(bid.params, 'TagId'), + adUnitCode: getBidIdParameter('adUnitCode', bid), + bidId: getBidIdParameter('bidId', bid), + bidderRequestId: getBidIdParameter('bidderRequestId', bid), + auctionId: getBidIdParameter('auctionId', bid), + transactionId: getBidIdParameter('transactionId', bid) } }) }; diff --git a/modules/vidoomyBidAdapter.js b/modules/vidoomyBidAdapter.js index 78c19a38b6a..afb06e06d12 100644 --- a/modules/vidoomyBidAdapter.js +++ b/modules/vidoomyBidAdapter.js @@ -1,7 +1,7 @@ +import { logError, deepAccess } from '../src/utils.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; import {BANNER, VIDEO} from '../src/mediaTypes.js'; import {config} from '../src/config.js'; -import * as utils from '../src/utils.js'; import { Renderer } from '../src/Renderer.js'; import { INSTREAM, OUTSTREAM } from '../src/video.js'; @@ -13,22 +13,22 @@ const COOKIE_SYNC_JSON = 'https://vpaid.vidoomy.com/sync/urls.json'; const isBidRequestValid = bid => { if (!bid.params) { - utils.logError(BIDDER_CODE + ': bid.params should be non-empty'); + logError(BIDDER_CODE + ': bid.params should be non-empty'); return false; } if (!+bid.params.pid) { - utils.logError(BIDDER_CODE + ': bid.params.pid should be non-empty Number'); + logError(BIDDER_CODE + ': bid.params.pid should be non-empty Number'); return false; } if (!+bid.params.id) { - utils.logError(BIDDER_CODE + ': bid.params.id should be non-empty Number'); + logError(BIDDER_CODE + ': bid.params.id should be non-empty Number'); return false; } if (bid.params && bid.params.mediaTypes && bid.params.mediaTypes.video && bid.params.mediaTypes.video.context === INSTREAM && !bid.params.mediaTypes.video.playerSize) { - utils.logError(BIDDER_CODE + ': bid.params.mediaType.video should have a playerSize property to tell player size when is INSTREAM'); + logError(BIDDER_CODE + ': bid.params.mediaType.video should have a playerSize property to tell player size when is INSTREAM'); return false; } @@ -65,7 +65,7 @@ const buildRequests = (validBidRequests, bidderRequest) => { aElement.href = (bidderRequest.refererInfo && bidderRequest.refererInfo.referer) || top.location.href; const hostname = aElement.hostname - const videoContext = utils.deepAccess(bid, 'mediaTypes.video.context'); + const videoContext = deepAccess(bid, 'mediaTypes.video.context'); const queryParams = []; queryParams.push(['id', bid.params.id]); @@ -146,7 +146,7 @@ const interpretResponse = (serverResponse, bidRequest) => { responseBody.renderer = renderer; } catch (e) { responseBody.ad = responseBody.vastUrl; - utils.logError(BIDDER_CODE + ': error while installing renderer to show outstream ad'); + logError(BIDDER_CODE + ': error while installing renderer to show outstream ad'); } } } @@ -186,12 +186,12 @@ const interpretResponse = (serverResponse, bidRequest) => { if (isBidResponseValid(bid)) { bids.push(bid); } else { - utils.logError(BIDDER_CODE + ': server returns invalid response'); + logError(BIDDER_CODE + ': server returns invalid response'); } return bids; } catch (e) { - utils.logError(BIDDER_CODE + ': error parsing server response to Prebid format'); + logError(BIDDER_CODE + ': error parsing server response to Prebid format'); return []; } }; diff --git a/modules/viewdeosDXBidAdapter.js b/modules/viewdeosDXBidAdapter.js index 212759642f5..e3d02938c5b 100644 --- a/modules/viewdeosDXBidAdapter.js +++ b/modules/viewdeosDXBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js'; +import { deepAccess, isArray, flatten, logError, parseSizesInput } from '../src/utils.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; import {VIDEO, BANNER} from '../src/mediaTypes.js'; import {Renderer} from '../src/Renderer.js'; @@ -16,7 +16,7 @@ export const spec = { gvlid: 924, supportedMediaTypes: [VIDEO, BANNER], isBidRequestValid: function (bid) { - return !!utils.deepAccess(bid, 'params.aid'); + return !!deepAccess(bid, 'params.aid'); }, getUserSyncs: function (syncOptions, serverResponses) { const syncs = []; @@ -43,9 +43,9 @@ export const spec = { } if (syncOptions.pixelEnabled || syncOptions.iframeEnabled) { - utils.isArray(serverResponses) && serverResponses.forEach((response) => { + isArray(serverResponses) && serverResponses.forEach((response) => { if (response.body) { - if (utils.isArray(response.body)) { + if (isArray(response.body)) { response.body.forEach(b => { addSyncs(b); }) @@ -81,12 +81,12 @@ export const spec = { serverResponse = serverResponse.body; let bids = []; - if (!utils.isArray(serverResponse)) { + if (!isArray(serverResponse)) { return parseRTBResponse(serverResponse, bidderRequest); } serverResponse.forEach(serverBidResponse => { - bids = utils.flatten(bids, parseRTBResponse(serverBidResponse, bidderRequest)); + bids = flatten(bids, parseRTBResponse(serverBidResponse, bidderRequest)); }); return bids; @@ -94,7 +94,7 @@ export const spec = { }; function parseRTBResponse(serverResponse, bidderRequest) { - const isInvalidValidResp = !serverResponse || !utils.isArray(serverResponse.bids); + const isInvalidValidResp = !serverResponse || !isArray(serverResponse.bids); const bids = []; @@ -102,7 +102,7 @@ function parseRTBResponse(serverResponse, bidderRequest) { const extMessage = serverResponse && serverResponse.ext && serverResponse.ext.message ? `: ${serverResponse.ext.message}` : ''; const errorMessage = `in response for ${bidderRequest.bidderCode} adapter ${extMessage}`; - utils.logError(errorMessage); + logError(errorMessage); return bids; } @@ -125,15 +125,15 @@ function parseRTBResponse(serverResponse, bidderRequest) { function bidToTag(bidRequests, bidderRequest) { const tag = { - domain: utils.deepAccess(bidderRequest, 'refererInfo.referer') + domain: deepAccess(bidderRequest, 'refererInfo.referer') }; - if (utils.deepAccess(bidderRequest, 'gdprConsent.gdprApplies')) { + if (deepAccess(bidderRequest, 'gdprConsent.gdprApplies')) { tag.gdpr = 1; - tag.gdpr_consent = utils.deepAccess(bidderRequest, 'gdprConsent.consentString'); + tag.gdpr_consent = deepAccess(bidderRequest, 'gdprConsent.consentString'); } - if (utils.deepAccess(bidderRequest, 'bidderRequest.uspConsent')) { + if (deepAccess(bidderRequest, 'bidderRequest.uspConsent')) { tag.us_privacy = bidderRequest.uspConsent; } @@ -151,14 +151,14 @@ function bidToTag(bidRequests, bidderRequest) { * @returns {object} */ function prepareRTBRequestParams(_index, bid) { - const mediaType = utils.deepAccess(bid, 'mediaTypes.video') ? VIDEO : DISPLAY; + const mediaType = deepAccess(bid, 'mediaTypes.video') ? VIDEO : DISPLAY; const index = !_index ? '' : `${_index + 1}`; - const sizes = bid.sizes ? bid.sizes : (mediaType === VIDEO ? utils.deepAccess(bid, 'mediaTypes.video.playerSize') : utils.deepAccess(bid, 'mediaTypes.banner.sizes')); + const sizes = bid.sizes ? bid.sizes : (mediaType === VIDEO ? deepAccess(bid, 'mediaTypes.video.playerSize') : deepAccess(bid, 'mediaTypes.banner.sizes')); return { ['callbackId' + index]: bid.bidId, ['aid' + index]: bid.params.aid, ['ad_type' + index]: mediaType, - ['sizes' + index]: utils.parseSizesInput(sizes).join() + ['sizes' + index]: parseSizesInput(sizes).join() }; } @@ -168,8 +168,8 @@ function prepareRTBRequestParams(_index, bid) { * @returns {object} */ function getMediaType(bidderRequest) { - const videoMediaType = utils.deepAccess(bidderRequest, 'mediaTypes.video'); - const context = utils.deepAccess(bidderRequest, 'mediaTypes.video.context'); + const videoMediaType = deepAccess(bidderRequest, 'mediaTypes.video'); + const context = deepAccess(bidderRequest, 'mediaTypes.video.context'); return !videoMediaType ? DISPLAY : context === OUTSTREAM ? OUTSTREAM : VIDEO; } diff --git a/modules/visxBidAdapter.js b/modules/visxBidAdapter.js index fb9b21dc167..3c7431409d7 100644 --- a/modules/visxBidAdapter.js +++ b/modules/visxBidAdapter.js @@ -1,9 +1,8 @@ -import * as utils from '../src/utils.js'; +import { triggerPixel, parseSizesInput, deepAccess, logError } from '../src/utils.js'; import { registerBidder } from '../src/adapters/bidderFactory.js'; import { config } from '../src/config.js'; import { BANNER, VIDEO } from '../src/mediaTypes.js'; import { INSTREAM as VIDEO_INSTREAM } from '../src/video.js'; -const { parseSizesInput, logError, deepAccess } = utils; const BIDDER_CODE = 'visx'; const GVLID = 154; const BASE_URL = 'https://t.visx.net'; @@ -188,18 +187,18 @@ export const spec = { onSetTargeting: function(bid) { // Call '/track/pending' with the corresponding bid.requestId if (bid.ext && bid.ext.events && bid.ext.events.pending) { - utils.triggerPixel(bid.ext.events.pending); + triggerPixel(bid.ext.events.pending); } }, onBidWon: function(bid) { // Call '/track/win' with the corresponding bid.requestId if (bid.ext && bid.ext.events && bid.ext.events.win) { - utils.triggerPixel(bid.ext.events.win); + triggerPixel(bid.ext.events.win); } }, onTimeout: function(timeoutData) { // Call '/track/bid_timeout' with timeout data - utils.triggerPixel(buildUrl(TRACK_TIMEOUT_PATH) + '?data=' + JSON.stringify(timeoutData)); + triggerPixel(buildUrl(TRACK_TIMEOUT_PATH) + '?data=' + JSON.stringify(timeoutData)); } }; @@ -210,7 +209,7 @@ function buildUrl(path) { function makeBanner(bannerParams) { const bannerSizes = bannerParams && bannerParams.sizes; if (bannerSizes) { - const sizes = utils.parseSizesInput(bannerSizes); + const sizes = parseSizesInput(bannerSizes); if (sizes.length) { const format = sizes.map(size => { const [ width, height ] = size.split('x'); @@ -229,7 +228,7 @@ function makeVideo(videoParams = {}) { .reduce((result, param) => { result[param] = videoParams[param]; return result; - }, { w: utils.deepAccess(videoParams, 'playerSize.0.0'), h: utils.deepAccess(videoParams, 'playerSize.0.1') }); + }, { w: deepAccess(videoParams, 'playerSize.0.0'), h: deepAccess(videoParams, 'playerSize.0.1') }); if (video.w && video.h && video.mimes) { return video; diff --git a/modules/voxBidAdapter.js b/modules/voxBidAdapter.js index ba469c3c7ed..8db97800630 100644 --- a/modules/voxBidAdapter.js +++ b/modules/voxBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js' +import { _map, logWarn, deepAccess, isArray } from '../src/utils.js'; import { registerBidder } from '../src/adapters/bidderFactory.js' import {BANNER, VIDEO} from '../src/mediaTypes.js' import find from 'core-js-pure/features/array/find.js'; @@ -11,7 +11,7 @@ const VIDEO_RENDERER_URL = 'https://acdn.adnxs.com/video/outstream/ANOutstreamVi const TTL = 60; function buildBidRequests(validBidRequests) { - return utils._map(validBidRequests, function(validBidRequest) { + return _map(validBidRequests, function(validBidRequest) { const params = validBidRequest.params; const bidRequest = { bidId: validBidRequest.bidId, @@ -53,7 +53,7 @@ const createRenderer = (bid) => { try { renderer.setRender(outstreamRender); } catch (err) { - utils.logWarn('Prebid Error calling setRender on renderer', err); + logWarn('Prebid Error calling setRender on renderer', err); } return renderer; @@ -111,8 +111,8 @@ function hasVideoMandatoryParams(mediaTypes) { const isHasVideoContext = !!mediaTypes.video && (mediaTypes.video.context === 'instream' || mediaTypes.video.context === 'outstream'); const isPlayerSize = - !!utils.deepAccess(mediaTypes, 'video.playerSize') && - utils.isArray(utils.deepAccess(mediaTypes, 'video.playerSize')); + !!deepAccess(mediaTypes, 'video.playerSize') && + isArray(deepAccess(mediaTypes, 'video.playerSize')); return isHasVideoContext && isPlayerSize; } @@ -231,8 +231,8 @@ export const spec = { let bidRequests = JSON.parse(bidRequest.data).bidRequests; const serverBody = serverResponse.body; - if (serverBody && serverBody.bids && utils.isArray(serverBody.bids)) { - return utils._map(serverBody.bids, function(bid) { + if (serverBody && serverBody.bids && isArray(serverBody.bids)) { + return _map(serverBody.bids, function(bid) { let rawBid = find(bidRequests, function (item) { return item.bidId === bid.bidId; }); diff --git a/modules/vuukleBidAdapter.js b/modules/vuukleBidAdapter.js index 7a83bf4e331..ddf96b3e940 100644 --- a/modules/vuukleBidAdapter.js +++ b/modules/vuukleBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js'; +import { parseSizesInput } from '../src/utils.js'; import { registerBidder } from '../src/adapters/bidderFactory.js'; const BIDDER_CODE = 'vuukle'; @@ -14,7 +14,7 @@ export const spec = { buildRequests: function(bidRequests) { const requests = bidRequests.map(function (bid) { - const parseSized = utils.parseSizesInput(bid.sizes); + const parseSized = parseSizesInput(bid.sizes); const arrSize = parseSized[0].split('x'); const params = { url: encodeURIComponent(window.location.href), diff --git a/modules/waardexBidAdapter.js b/modules/waardexBidAdapter.js index bc60e151e39..ee17a71dd35 100644 --- a/modules/waardexBidAdapter.js +++ b/modules/waardexBidAdapter.js @@ -1,7 +1,7 @@ +import { logError, isArray, deepAccess, getBidIdParameter } from '../src/utils.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; import {BANNER, VIDEO} from '../src/mediaTypes.js'; import {config} from '../src/config.js'; -import * as utils from '../src/utils.js'; import find from 'core-js-pure/features/array/find.js'; const ENDPOINT = `https://hb.justbidit.xyz:8843/prebid`; @@ -9,38 +9,38 @@ const BIDDER_CODE = 'waardex'; const isBidRequestValid = bid => { if (!bid.bidId) { - utils.logError(BIDDER_CODE + ': bid.bidId should be non-empty'); + logError(BIDDER_CODE + ': bid.bidId should be non-empty'); return false; } if (!bid.params) { - utils.logError(BIDDER_CODE + ': bid.params should be non-empty'); + logError(BIDDER_CODE + ': bid.params should be non-empty'); return false; } if (!+bid.params.zoneId) { - utils.logError(BIDDER_CODE + ': bid.params.zoneId should be non-empty Number'); + logError(BIDDER_CODE + ': bid.params.zoneId should be non-empty Number'); return false; } if (bid.mediaTypes && bid.mediaTypes.video) { if (!bid.mediaTypes.video.playerSize) { - utils.logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty'); + logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty'); return false; } - if (!utils.isArray(bid.mediaTypes.video.playerSize)) { - utils.logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be an Array'); + if (!isArray(bid.mediaTypes.video.playerSize)) { + logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be an Array'); return false; } if (!bid.mediaTypes.video.playerSize[0]) { - utils.logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty'); + logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty'); return false; } - if (!utils.isArray(bid.mediaTypes.video.playerSize[0])) { - utils.logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty Array'); + if (!isArray(bid.mediaTypes.video.playerSize[0])) { + logError(BIDDER_CODE + ': bid.mediaTypes.video.playerSize should be non-empty Array'); return false; } } @@ -139,22 +139,22 @@ const transformSizes = requestSizes => { const createVideoObject = (videoMediaTypes, videoParams) => { return { - w: utils.deepAccess(videoMediaTypes, 'playerSize')[0][0], - h: utils.deepAccess(videoMediaTypes, 'playerSize')[0][1], - mimes: utils.getBidIdParameter('mimes', videoParams) || ['application/javascript', 'video/mp4', 'video/webm'], - minduration: utils.getBidIdParameter('minduration', videoParams) || 0, - maxduration: utils.getBidIdParameter('maxduration', videoParams) || 500, - protocols: utils.getBidIdParameter('protocols', videoParams) || [2, 3, 5, 6], - startdelay: utils.getBidIdParameter('startdelay', videoParams) || 0, - placement: utils.getBidIdParameter('placement', videoParams) || videoMediaTypes.context === 'outstream' ? 3 : 1, - skip: utils.getBidIdParameter('skip', videoParams) || 1, - skipafter: utils.getBidIdParameter('skipafter', videoParams) || 0, - minbitrate: utils.getBidIdParameter('minbitrate', videoParams) || 0, - maxbitrate: utils.getBidIdParameter('maxbitrate', videoParams) || 3500, - delivery: utils.getBidIdParameter('delivery', videoParams) || [2], - playbackmethod: utils.getBidIdParameter('playbackmethod', videoParams) || [1, 2, 3, 4], - api: utils.getBidIdParameter('api', videoParams) || [2], - linearity: utils.getBidIdParameter('linearity', videoParams) || 1 + w: deepAccess(videoMediaTypes, 'playerSize')[0][0], + h: deepAccess(videoMediaTypes, 'playerSize')[0][1], + mimes: getBidIdParameter('mimes', videoParams) || ['application/javascript', 'video/mp4', 'video/webm'], + minduration: getBidIdParameter('minduration', videoParams) || 0, + maxduration: getBidIdParameter('maxduration', videoParams) || 500, + protocols: getBidIdParameter('protocols', videoParams) || [2, 3, 5, 6], + startdelay: getBidIdParameter('startdelay', videoParams) || 0, + placement: getBidIdParameter('placement', videoParams) || videoMediaTypes.context === 'outstream' ? 3 : 1, + skip: getBidIdParameter('skip', videoParams) || 1, + skipafter: getBidIdParameter('skipafter', videoParams) || 0, + minbitrate: getBidIdParameter('minbitrate', videoParams) || 0, + maxbitrate: getBidIdParameter('maxbitrate', videoParams) || 3500, + delivery: getBidIdParameter('delivery', videoParams) || [2], + playbackmethod: getBidIdParameter('playbackmethod', videoParams) || [1, 2, 3, 4], + api: getBidIdParameter('api', videoParams) || [2], + linearity: getBidIdParameter('linearity', videoParams) || 1 }; }; diff --git a/modules/weboramaRtdProvider.js b/modules/weboramaRtdProvider.js index 141b88a48da..01086ad129f 100644 --- a/modules/weboramaRtdProvider.js +++ b/modules/weboramaRtdProvider.js @@ -19,7 +19,7 @@ * @property {?object} defaultProfile to be used if the profile is not found */ -import * as utils from '../src/utils.js'; +import { deepSetValue, logError, tryAppendQueryString, logMessage } from '../src/utils.js'; import {submodule} from '../src/hook.js'; import {ajax} from '../src/ajax.js'; import {config} from '../src/config.js'; @@ -51,10 +51,10 @@ function getTargetingData(adUnitsCodes, moduleConfig) { if (weboCtxConf.setOrtb2) { const ortb2 = config.getConfig('ortb2') || {}; if (profile[WEBO_CTX]) { - utils.deepSetValue(ortb2, 'site.ext.data.webo_ctx', profile[WEBO_CTX]); + deepSetValue(ortb2, 'site.ext.data.webo_ctx', profile[WEBO_CTX]); } if (profile[WEBO_DS]) { - utils.deepSetValue(ortb2, 'site.ext.data.webo_ds', profile[WEBO_DS]); + deepSetValue(ortb2, 'site.ext.data.webo_ds', profile[WEBO_DS]); } config.setConfig({ortb2: ortb2}); } @@ -73,7 +73,7 @@ function getTargetingData(adUnitsCodes, moduleConfig) { }, {}); return r; } catch (e) { - utils.logError('unable to format weborama rtd targeting data', e); + logError('unable to format weborama rtd targeting data', e); return {}; } } @@ -111,8 +111,8 @@ function fetchContextualProfile(weboCtxConf, onSuccess, onDone) { const token = weboCtxConf.token; let queryString = ''; - queryString = utils.tryAppendQueryString(queryString, 'token', token); - queryString = utils.tryAppendQueryString(queryString, 'url', targetURL); + queryString = tryAppendQueryString(queryString, 'token', token); + queryString = tryAppendQueryString(queryString, 'url', targetURL); const url = 'https://ctx.weborama.com/api/profile?' + queryString; @@ -125,7 +125,7 @@ function fetchContextualProfile(weboCtxConf, onSuccess, onDone) { onDone(); } catch (e) { onDone(); - utils.logError('unable to parse weborama data', e); + logError('unable to parse weborama data', e); } } else if (req.status === 204) { onDone(); @@ -133,7 +133,7 @@ function fetchContextualProfile(weboCtxConf, onSuccess, onDone) { }, error: function () { onDone(); - utils.logError('unable to get weborama data'); + logError('unable to get weborama data'); } }, null, @@ -156,9 +156,9 @@ function init(moduleConfig) { if (weboCtxConf.token) { fetchContextualProfile(weboCtxConf, setBigseaContextualProfile, - () => utils.logMessage('fetchContextualProfile on init is done')); + () => logMessage('fetchContextualProfile on init is done')); } else { - utils.logError('missing param "token" for weborama rtd module initialization'); + logError('missing param "token" for weborama rtd module initialization'); return false; } diff --git a/modules/winrBidAdapter.js b/modules/winrBidAdapter.js index b73758e9717..9213c113460 100644 --- a/modules/winrBidAdapter.js +++ b/modules/winrBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js'; +import { convertCamelToUnderscore, isArray, isNumber, isPlainObject, deepAccess, logError, convertTypes, getParameterByName, getBidRequest, isEmpty, transformBidderParamKeywords, isFn } from '../src/utils.js'; import { config } from '../src/config.js'; import { registerBidder } from '../src/adapters/bidderFactory.js'; import { BANNER } from '../src/mediaTypes.js'; @@ -139,16 +139,16 @@ export const spec = { Object.keys(userObjBid.params.user) .filter((param) => includes(USER_PARAMS, param)) .forEach((param) => { - let uparam = utils.convertCamelToUnderscore(param); + let uparam = convertCamelToUnderscore(param); if ( param === 'segments' && - utils.isArray(userObjBid.params.user[param]) + isArray(userObjBid.params.user[param]) ) { let segs = []; userObjBid.params.user[param].forEach((val) => { - if (utils.isNumber(val)) { + if (isNumber(val)) { segs.push({ id: val }); - } else if (utils.isPlainObject(val)) { + } else if (isPlainObject(val)) { segs.push(val); } }); @@ -228,12 +228,12 @@ export const spec = { if (bidRequests[0].userId) { let eids = []; - addUserId(eids, utils.deepAccess(bidRequests[0], `userId.flocId.id`), 'chrome.com', null); - addUserId(eids, utils.deepAccess(bidRequests[0], `userId.criteoId`), 'criteo.com', null); - addUserId(eids, utils.deepAccess(bidRequests[0], `userId.netId`), 'netid.de', null); - addUserId(eids, utils.deepAccess(bidRequests[0], `userId.idl_env`), 'liveramp.com', null); - addUserId(eids, utils.deepAccess(bidRequests[0], `userId.tdid`), 'adserver.org', 'TDID'); - addUserId(eids, utils.deepAccess(bidRequests[0], `userId.uid2.id`), 'uidapi.com', 'UID2'); + addUserId(eids, deepAccess(bidRequests[0], `userId.flocId.id`), 'chrome.com', null); + addUserId(eids, deepAccess(bidRequests[0], `userId.criteoId`), 'criteo.com', null); + addUserId(eids, deepAccess(bidRequests[0], `userId.netId`), 'netid.de', null); + addUserId(eids, deepAccess(bidRequests[0], `userId.idl_env`), 'liveramp.com', null); + addUserId(eids, deepAccess(bidRequests[0], `userId.tdid`), 'adserver.org', 'TDID'); + addUserId(eids, deepAccess(bidRequests[0], `userId.uid2.id`), 'uidapi.com', 'UID2'); if (eids.length) { payload.eids = eids; @@ -262,7 +262,7 @@ export const spec = { if (serverResponse && serverResponse.error) { errorMessage += `: ${serverResponse.error}`; } - utils.logError(errorMessage); + logError(errorMessage); return bids; } @@ -297,12 +297,12 @@ export const spec = { }, transformBidParams: function (params, isOpenRtb) { - params = utils.convertTypes( + params = convertTypes( { member: 'string', invCode: 'string', placementId: 'number', - keywords: utils.transformBidderParamKeywords, + keywords: transformBidderParamKeywords, publisherId: 'number', }, params @@ -322,7 +322,7 @@ export const spec = { } Object.keys(params).forEach((paramKey) => { - let convertedKey = utils.convertCamelToUnderscore(paramKey); + let convertedKey = convertCamelToUnderscore(paramKey); if (convertedKey !== paramKey) { params[convertedKey] = params[paramKey]; delete params[paramKey]; @@ -335,7 +335,7 @@ export const spec = { }; function isPopulatedArray(arr) { - return !!(utils.isArray(arr) && arr.length > 0); + return !!(isArray(arr) && arr.length > 0); } function deleteValues(keyPairObj) { @@ -352,7 +352,7 @@ function hasPurpose1Consent(bidderRequest) { bidderRequest.gdprConsent.apiVersion === 2 ) { result = !!( - utils.deepAccess( + deepAccess( bidderRequest.gdprConsent, 'vendorData.purpose.consents.1' ) === true @@ -375,7 +375,7 @@ function formatRequest(payload, bidderRequest) { } if ( - utils.getParameterByName('apn_test').toUpperCase() === 'TRUE' || + getParameterByName('apn_test').toUpperCase() === 'TRUE' || config.getConfig('apn_test') === true ) { options.customHeaders = { @@ -403,7 +403,7 @@ function formatRequest(payload, bidderRequest) { * @return Bid */ function newBid(serverBid, rtbBid, bidderRequest) { - const bidRequest = utils.getBidRequest(serverBid.uuid, [bidderRequest]); + const bidRequest = getBidRequest(serverBid.uuid, [bidderRequest]); const bid = { adType: rtbBid.ad_type, requestId: serverBid.uuid, @@ -463,7 +463,7 @@ function newBid(serverBid, rtbBid, bidderRequest) { }); } } catch (error) { - utils.logError('Error assigning ad', error); + logError('Error assigning ad', error); } return bid; } @@ -502,8 +502,8 @@ function bidToTag(bid) { if (bid.params.externalImpId) { tag.external_imp_id = bid.params.externalImpId; } - if (!utils.isEmpty(bid.params.keywords)) { - let keywords = utils.transformBidderParamKeywords(bid.params.keywords); + if (!isEmpty(bid.params.keywords)) { + let keywords = transformBidderParamKeywords(bid.params.keywords); if (keywords.length > 0) { keywords.forEach(deleteValues); @@ -511,7 +511,7 @@ function bidToTag(bid) { tag.keywords = keywords; } - let gpid = utils.deepAccess(bid, 'ortb2Imp.ext.data.pbadslot'); + let gpid = deepAccess(bid, 'ortb2Imp.ext.data.pbadslot'); if (gpid) { tag.gpid = gpid; } @@ -531,9 +531,9 @@ function transformSizes(requestSizes) { let sizeObj = {}; if ( - utils.isArray(requestSizes) && + isArray(requestSizes) && requestSizes.length === 2 && - !utils.isArray(requestSizes[0]) + !isArray(requestSizes[0]) ) { sizeObj.width = parseInt(requestSizes[0], 10); sizeObj.height = parseInt(requestSizes[1], 10); @@ -596,7 +596,7 @@ function addUserId(eids, id, source, rti) { } function getBidFloor(bid) { - if (!utils.isFn(bid.getFloor)) { + if (!isFn(bid.getFloor)) { return (bid.params.reserve) ? bid.params.reserve : null; } @@ -605,7 +605,7 @@ function getBidFloor(bid) { mediaType: '*', size: '*' }); - if (utils.isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') { + if (isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') { return floor.floor; } return null; diff --git a/modules/wipesBidAdapter.js b/modules/wipesBidAdapter.js index c08429ecc63..3d040fee8d3 100644 --- a/modules/wipesBidAdapter.js +++ b/modules/wipesBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js'; +import { logWarn } from '../src/utils.js'; import {config} from '../src/config.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; import {BANNER} from '../src/mediaTypes.js'; @@ -13,7 +13,7 @@ function isBidRequestValid(bid) { case !!(bid.params.asid): break; default: - utils.logWarn(`isBidRequestValid Error. ${bid.params}, please check your implementation.`); + logWarn(`isBidRequestValid Error. ${bid.params}, please check your implementation.`); return false; } return true; diff --git a/modules/yieldlabBidAdapter.js b/modules/yieldlabBidAdapter.js index c05ecbc15fc..9578f1aaa25 100644 --- a/modules/yieldlabBidAdapter.js +++ b/modules/yieldlabBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js' +import { _each, isPlainObject, isArray, deepAccess } from '../src/utils.js'; import { registerBidder } from '../src/adapters/bidderFactory.js' import find from 'core-js-pure/features/array/find.js' import { VIDEO, BANNER } from '../src/mediaTypes.js' @@ -36,7 +36,7 @@ export const spec = { json: true } - utils._each(validBidRequests, function (bid) { + _each(validBidRequests, function (bid) { adslotIds.push(bid.params.adslotId) if (bid.params.targeting) { query.t = createTargetingString(bid.params.targeting) @@ -44,12 +44,12 @@ export const spec = { if (bid.userIdAsEids && Array.isArray(bid.userIdAsEids)) { query.ids = createUserIdString(bid.userIdAsEids) } - if (bid.params.customParams && utils.isPlainObject(bid.params.customParams)) { + if (bid.params.customParams && isPlainObject(bid.params.customParams)) { for (let prop in bid.params.customParams) { query[prop] = bid.params.customParams[prop] } } - if (bid.schain && utils.isPlainObject(bid.schain) && Array.isArray(bid.schain.nodes)) { + if (bid.schain && isPlainObject(bid.schain) && Array.isArray(bid.schain.nodes)) { query.schain = createSchainString(bid.schain) } }) @@ -98,7 +98,7 @@ export const spec = { }) if (matchedBid) { - const adUnitSize = bidRequest.sizes.length === 2 && !utils.isArray(bidRequest.sizes[0]) ? bidRequest.sizes : bidRequest.sizes[0] + const adUnitSize = bidRequest.sizes.length === 2 && !isArray(bidRequest.sizes[0]) ? bidRequest.sizes : bidRequest.sizes[0] const adSize = bidRequest.params.adSize !== undefined ? parseSize(bidRequest.params.adSize) : (matchedBid.adsize !== undefined) ? parseSize(matchedBid.adsize) : adUnitSize const extId = bidRequest.params.extId !== undefined ? '&id=' + bidRequest.params.extId : '' const adType = matchedBid.adtype !== undefined ? matchedBid.adtype : '' @@ -156,7 +156,7 @@ export const spec = { * @returns {Boolean} */ function isVideo (format, adtype) { - return utils.deepAccess(format, 'mediaTypes.video') && adtype.toLowerCase() === 'video' + return deepAccess(format, 'mediaTypes.video') && adtype.toLowerCase() === 'video' } /** @@ -165,7 +165,7 @@ function isVideo (format, adtype) { * @returns {Boolean} */ function isOutstream (format) { - let context = utils.deepAccess(format, 'mediaTypes.video.context') + let context = deepAccess(format, 'mediaTypes.video.context') return (context === 'outstream') } @@ -175,8 +175,8 @@ function isOutstream (format) { * @returns {Array} */ function getPlayerSize (format) { - let playerSize = utils.deepAccess(format, 'mediaTypes.video.playerSize') - return (playerSize && utils.isArray(playerSize[0])) ? playerSize[0] : playerSize + let playerSize = deepAccess(format, 'mediaTypes.video.playerSize') + return (playerSize && isArray(playerSize[0])) ? playerSize[0] : playerSize } /** diff --git a/modules/yieldliftBidAdapter.js b/modules/yieldliftBidAdapter.js index 9398e2c7816..61b99d95605 100644 --- a/modules/yieldliftBidAdapter.js +++ b/modules/yieldliftBidAdapter.js @@ -1,5 +1,5 @@ +import { deepSetValue, logInfo, deepAccess } from '../src/utils.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; -import * as utils from '../src/utils.js'; import {BANNER} from '../src/mediaTypes.js'; const ENDPOINT_URL = 'https://x.yieldlift.com/auction'; @@ -58,18 +58,18 @@ export const spec = { // adding schain object if (validBidRequests[0].schain) { - utils.deepSetValue(openrtbRequest, 'source.ext.schain', validBidRequests[0].schain); + deepSetValue(openrtbRequest, 'source.ext.schain', validBidRequests[0].schain); } // Attaching GDPR Consent Params if (bidderRequest.gdprConsent) { - utils.deepSetValue(openrtbRequest, 'user.ext.consent', bidderRequest.gdprConsent.consentString); - utils.deepSetValue(openrtbRequest, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0)); + deepSetValue(openrtbRequest, 'user.ext.consent', bidderRequest.gdprConsent.consentString); + deepSetValue(openrtbRequest, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0)); } // CCPA if (bidderRequest.uspConsent) { - utils.deepSetValue(openrtbRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent); + deepSetValue(openrtbRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent); } const payloadString = JSON.stringify(openrtbRequest); @@ -102,12 +102,12 @@ export const spec = { }) }) } else { - utils.logInfo('yieldlift.interpretResponse :: no valid responses to interpret'); + logInfo('yieldlift.interpretResponse :: no valid responses to interpret'); } return bidResponses; }, getUserSyncs: function (syncOptions, serverResponses) { - utils.logInfo('yieldlift.getUserSyncs', 'syncOptions', syncOptions, 'serverResponses', serverResponses); + logInfo('yieldlift.getUserSyncs', 'syncOptions', syncOptions, 'serverResponses', serverResponses); let syncs = []; if (!syncOptions.iframeEnabled && !syncOptions.pixelEnabled) { @@ -115,7 +115,7 @@ export const spec = { } serverResponses.forEach(resp => { - const userSync = utils.deepAccess(resp, 'body.ext.usersync'); + const userSync = deepAccess(resp, 'body.ext.usersync'); if (userSync) { let syncDetails = []; Object.keys(userSync).forEach(key => { @@ -139,7 +139,7 @@ export const spec = { } } }); - utils.logInfo('yieldlift.getUserSyncs result=%o', syncs); + logInfo('yieldlift.getUserSyncs result=%o', syncs); return syncs; }, diff --git a/modules/yieldmoBidAdapter.js b/modules/yieldmoBidAdapter.js index a959ab92b61..f8f7d4a0e6a 100644 --- a/modules/yieldmoBidAdapter.js +++ b/modules/yieldmoBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js'; +import { getWindowTop, deepAccess, parseQueryStringParameters, isArrayOfNums, isArray, parseUrl, isEmpty, deepSetValue, isStr, isNumber, isInteger, isBoolean, logError } from '../src/utils.js'; import { BANNER, VIDEO } from '../src/mediaTypes.js'; import { registerBidder } from '../src/adapters/bidderFactory.js'; import { Renderer } from '../src/Renderer.js'; @@ -15,7 +15,7 @@ const OUTSTREAM_VIDEO_PLAYER_URL = 'https://prebid-outstream.yieldmo.com/bundle. const OPENRTB_VIDEO_BIDPARAMS = ['mimes', 'startdelay', 'placement', 'startdelay', 'skipafter', 'protocols', 'api', 'playbackmethod', 'maxduration', 'minduration', 'pos', 'skip', 'skippable']; const OPENRTB_VIDEO_SITEPARAMS = ['name', 'domain', 'cat', 'keywords']; -const LOCAL_WINDOW = utils.getWindowTop(); +const LOCAL_WINDOW = getWindowTop(); const DEFAULT_PLAYBACK_METHOD = 2; const DEFAULT_START_DELAY = 0; const VAST_TIMEOUT = 15000; @@ -63,10 +63,10 @@ export const spec = { h: LOCAL_WINDOW.innerHeight, userConsent: JSON.stringify({ // case of undefined, stringify will remove param - gdprApplies: utils.deepAccess(bidderRequest, 'gdprConsent.gdprApplies') || '', - cmp: utils.deepAccess(bidderRequest, 'gdprConsent.consentString') || '' + gdprApplies: deepAccess(bidderRequest, 'gdprConsent.gdprApplies') || '', + cmp: deepAccess(bidderRequest, 'gdprConsent.consentString') || '' }), - us_privacy: utils.deepAccess(bidderRequest, 'uspConsent') || '' + us_privacy: deepAccess(bidderRequest, 'uspConsent') || '' }; const mtp = window.navigator.maxTouchPoints; @@ -93,14 +93,14 @@ export const spec = { if (request.schain) { serverRequest.schain = JSON.stringify(request.schain); } - if (utils.deepAccess(request, 'params.lr_env')) { + if (deepAccess(request, 'params.lr_env')) { serverRequest.ats_envelope = request.params.lr_env; } }); serverRequest.p = '[' + serverRequest.p.toString() + ']'; // check if url exceeded max length - const url = `${BANNER_SERVER_ENDPOINT}?${utils.parseQueryStringParameters(serverRequest)}`; + const url = `${BANNER_SERVER_ENDPOINT}?${parseQueryStringParameters(serverRequest)}`; let extraCharacters = url.length - MAX_BANNER_REQUEST_URL_LENGTH; if (extraCharacters > 0) { for (let i = 0; i < BANNER_REQUEST_PROPERTIES_TO_REDUCE.length; i++) { @@ -167,14 +167,14 @@ registerBidder(spec); * @param {BidRequest} bidRequest bid request */ function hasBannerMediaType(bidRequest) { - return !!utils.deepAccess(bidRequest, 'mediaTypes.banner'); + return !!deepAccess(bidRequest, 'mediaTypes.banner'); } /** * @param {BidRequest} bidRequest bid request */ function hasVideoMediaType(bidRequest) { - return !!utils.deepAccess(bidRequest, 'mediaTypes.video'); + return !!deepAccess(bidRequest, 'mediaTypes.video'); } /** @@ -182,7 +182,7 @@ function hasVideoMediaType(bidRequest) { * @param request bid request */ function addPlacement(request) { - const gpid = utils.deepAccess(request, 'ortb2Imp.ext.data.pbadslot'); + const gpid = deepAccess(request, 'ortb2Imp.ext.data.pbadslot'); const placementInfo = { placement_id: request.adUnitCode, callback_id: request.bidId, @@ -231,7 +231,7 @@ function createNewBannerBid(response) { * @param bidRequest server request */ function createNewVideoBid(response, bidRequest) { - const imp = find((utils.deepAccess(bidRequest, 'data.imp') || []), imp => imp.id === response.impid); + const imp = find((deepAccess(bidRequest, 'data.imp') || []), imp => imp.id === response.impid); let result = { requestId: imp.id, @@ -310,7 +310,7 @@ function getPageDescription() { * @returns an id if there is one, or undefined */ function getId(request, idType) { - return (typeof utils.deepAccess(request, 'userId') === 'object') ? request.userId[idType] : undefined; + return (typeof deepAccess(request, 'userId') === 'object') ? request.userId[idType] : undefined; } /** @@ -348,7 +348,7 @@ function openRtbRequest(bidRequests, bidderRequest) { * @return Object OpenRTB's 'imp' (impression) object */ function openRtbImpression(bidRequest) { - const gpid = utils.deepAccess(bidRequest, 'ortb2Imp.ext.data.pbadslot'); + const gpid = deepAccess(bidRequest, 'ortb2Imp.ext.data.pbadslot'); const size = extractPlayerSize(bidRequest); const imp = { id: bidRequest.bidId, @@ -364,12 +364,12 @@ function openRtbImpression(bidRequest) { } }; - const mediaTypesParams = utils.deepAccess(bidRequest, 'mediaTypes.video'); + const mediaTypesParams = deepAccess(bidRequest, 'mediaTypes.video'); Object.keys(mediaTypesParams) .filter(param => includes(OPENRTB_VIDEO_BIDPARAMS, param)) .forEach(param => imp.video[param] = mediaTypesParams[param]); - const videoParams = utils.deepAccess(bidRequest, 'params.video'); + const videoParams = deepAccess(bidRequest, 'params.video'); Object.keys(videoParams) .filter(param => includes(OPENRTB_VIDEO_BIDPARAMS, param)) .forEach(param => imp.video[param] = videoParams[param]); @@ -403,10 +403,10 @@ function getBidFloor(bidRequest, mediaType) { * @return [number, number] || null Player's width and height, or undefined otherwise. */ function extractPlayerSize(bidRequest) { - const sizeArr = utils.deepAccess(bidRequest, 'mediaTypes.video.playerSize'); - if (utils.isArrayOfNums(sizeArr, 2)) { + const sizeArr = deepAccess(bidRequest, 'mediaTypes.video.playerSize'); + if (isArrayOfNums(sizeArr, 2)) { return sizeArr; - } else if (utils.isArray(sizeArr) && utils.isArrayOfNums(sizeArr[0], 2)) { + } else if (isArray(sizeArr) && isArrayOfNums(sizeArr[0], 2)) { return sizeArr[0]; } return null; @@ -420,8 +420,8 @@ function extractPlayerSize(bidRequest) { function openRtbSite(bidRequest, bidderRequest) { let result = {}; - const loc = utils.parseUrl(utils.deepAccess(bidderRequest, 'refererInfo.referer')); - if (!utils.isEmpty(loc)) { + const loc = parseUrl(deepAccess(bidderRequest, 'refererInfo.referer')); + if (!isEmpty(loc)) { result.page = `${loc.protocol}://${loc.hostname}${loc.pathname}`; } @@ -434,7 +434,7 @@ function openRtbSite(bidRequest, bidderRequest) { result.keywords = keywords.content; } - const siteParams = utils.deepAccess(bidRequest, 'params.site'); + const siteParams = deepAccess(bidRequest, 'params.site'); if (siteParams) { Object.keys(siteParams) .filter(param => includes(OPENRTB_VIDEO_SITEPARAMS, param)) @@ -447,7 +447,7 @@ function openRtbSite(bidRequest, bidderRequest) { * @return Object OpenRTB's 'device' object */ function openRtbDevice(bidRequest) { - const ip = utils.deepAccess(bidRequest, 'params.device.ip'); + const ip = deepAccess(bidRequest, 'params.device.ip'); const deviceObj = { ua: navigator.userAgent, language: (navigator.language || navigator.browserLanguage || navigator.userLanguage || navigator.systemLanguage), @@ -466,12 +466,12 @@ function openRtbDevice(bidRequest) { function populateOpenRtbGdpr(openRtbRequest, bidderRequest) { const gdpr = bidderRequest.gdprConsent; if (gdpr && 'gdprApplies' in gdpr) { - utils.deepSetValue(openRtbRequest, 'regs.ext.gdpr', gdpr.gdprApplies ? 1 : 0); - utils.deepSetValue(openRtbRequest, 'user.ext.consent', gdpr.consentString); + deepSetValue(openRtbRequest, 'regs.ext.gdpr', gdpr.gdprApplies ? 1 : 0); + deepSetValue(openRtbRequest, 'user.ext.consent', gdpr.consentString); } - const uspConsent = utils.deepAccess(bidderRequest, 'uspConsent'); + const uspConsent = deepAccess(bidderRequest, 'uspConsent'); if (uspConsent) { - utils.deepSetValue(openRtbRequest, 'regs.ext.us_privacy', uspConsent); + deepSetValue(openRtbRequest, 'regs.ext.us_privacy', uspConsent); } } @@ -504,8 +504,8 @@ function validateVideoParams(bid) { if (fieldPath.indexOf('video') === 0) { const valueFieldPath = 'params.' + fieldPath; const mediaFieldPath = 'mediaTypes.' + fieldPath; - const valueParams = utils.deepAccess(bid, valueFieldPath); - const mediaTypesParams = utils.deepAccess(bid, mediaFieldPath); + const valueParams = deepAccess(bid, valueFieldPath); + const mediaTypesParams = deepAccess(bid, mediaFieldPath); const hasValidValueParams = validateCb(valueParams); const hasValidMediaTypesParams = validateCb(mediaTypesParams); @@ -517,7 +517,7 @@ function validateVideoParams(bid) { } return valueParams || mediaTypesParams; } else { - const value = utils.deepAccess(bid, fieldPath); + const value = deepAccess(bid, fieldPath); if (!validateCb(value)) { errorCb(fieldPath, value, errorCbParam); } @@ -526,16 +526,16 @@ function validateVideoParams(bid) { } try { - validate('video.context', val => !utils.isEmpty(val), paramRequired); + validate('video.context', val => !isEmpty(val), paramRequired); - validate('params.placementId', val => !utils.isEmpty(val), paramRequired); + validate('params.placementId', val => !isEmpty(val), paramRequired); - validate('video.playerSize', val => utils.isArrayOfNums(val, 2) || - (utils.isArray(val) && val.every(v => utils.isArrayOfNums(v, 2))), + validate('video.playerSize', val => isArrayOfNums(val, 2) || + (isArray(val) && val.every(v => isArrayOfNums(v, 2))), paramInvalid, 'array of 2 integers, ex: [640,480] or [[640,480]]'); validate('video.mimes', val => isDefined(val), paramRequired); - validate('video.mimes', val => utils.isArray(val) && val.every(v => utils.isStr(v)), paramInvalid, + validate('video.mimes', val => isArray(val) && val.every(v => isStr(v)), paramInvalid, 'array of strings, ex: ["video/mp4"]'); const placement = validate('video.placement', val => isDefined(val), paramRequired); @@ -543,33 +543,33 @@ function validateVideoParams(bid) { if (placement === 1) { validate('video.startdelay', val => isDefined(val), (field, v) => paramRequired(field, v, 'placement == 1')); - validate('video.startdelay', val => utils.isNumber(val), paramInvalid, 'number, ex: 5'); + validate('video.startdelay', val => isNumber(val), paramInvalid, 'number, ex: 5'); } validate('video.protocols', val => isDefined(val), paramRequired); - validate('video.protocols', val => utils.isArrayOfNums(val) && val.every(v => (v >= 1 && v <= 6)), + validate('video.protocols', val => isArrayOfNums(val) && val.every(v => (v >= 1 && v <= 6)), paramInvalid, 'array of numbers, ex: [2,3]'); validate('video.api', val => isDefined(val), paramRequired); - validate('video.api', val => utils.isArrayOfNums(val) && val.every(v => (v >= 1 && v <= 6)), + validate('video.api', val => isArrayOfNums(val) && val.every(v => (v >= 1 && v <= 6)), paramInvalid, 'array of numbers, ex: [2,3]'); - validate('video.playbackmethod', val => !isDefined(val) || utils.isArrayOfNums(val), paramInvalid, + validate('video.playbackmethod', val => !isDefined(val) || isArrayOfNums(val), paramInvalid, 'array of integers, ex: [2,6]'); validate('video.maxduration', val => isDefined(val), paramRequired); - validate('video.maxduration', val => utils.isInteger(val), paramInvalid); - validate('video.minduration', val => !isDefined(val) || utils.isNumber(val), paramInvalid); - validate('video.skippable', val => !isDefined(val) || utils.isBoolean(val), paramInvalid); - validate('video.skipafter', val => !isDefined(val) || utils.isNumber(val), paramInvalid); - validate('video.pos', val => !isDefined(val) || utils.isNumber(val), paramInvalid); - validate('params.badv', val => !isDefined(val) || utils.isArray(val), paramInvalid, + validate('video.maxduration', val => isInteger(val), paramInvalid); + validate('video.minduration', val => !isDefined(val) || isNumber(val), paramInvalid); + validate('video.skippable', val => !isDefined(val) || isBoolean(val), paramInvalid); + validate('video.skipafter', val => !isDefined(val) || isNumber(val), paramInvalid); + validate('video.pos', val => !isDefined(val) || isNumber(val), paramInvalid); + validate('params.badv', val => !isDefined(val) || isArray(val), paramInvalid, 'array of strings, ex: ["ford.com","pepsi.com"]'); - validate('params.bcat', val => !isDefined(val) || utils.isArray(val), paramInvalid, + validate('params.bcat', val => !isDefined(val) || isArray(val), paramInvalid, 'array of strings, ex: ["IAB1-5","IAB1-6"]'); return true; } catch (e) { - utils.logError(e.message); + logError(e.message); return false; } } diff --git a/modules/yieldoneAnalyticsAdapter.js b/modules/yieldoneAnalyticsAdapter.js index 542c0917708..cb13503365e 100644 --- a/modules/yieldoneAnalyticsAdapter.js +++ b/modules/yieldoneAnalyticsAdapter.js @@ -1,10 +1,10 @@ +import { isArray, deepClone } from '../src/utils.js'; import {ajax} from '../src/ajax.js'; import adapter from '../src/AnalyticsAdapter.js'; import CONSTANTS from '../src/constants.json'; import adapterManager from '../src/adapterManager.js'; import { targeting } from '../src/targeting.js'; import { auctionManager } from '../src/auctionManager.js'; -import * as utils from '../src/utils.js'; const ANALYTICS_CODE = 'yieldone'; const analyticsType = 'endpoint'; @@ -42,7 +42,7 @@ function makeAdUnitNameMap() { } function addAdUnitNameForArray(ar, map) { - if (utils.isArray(ar)) { + if (isArray(ar)) { ar.forEach((it) => { addAdUnitName(it, map) }); } } @@ -51,14 +51,14 @@ function addAdUnitName(params, map) { if (params.adUnitCode && map[params.adUnitCode]) { params.adUnitName = map[params.adUnitCode]; } - if (utils.isArray(params.adUnits)) { + if (isArray(params.adUnits)) { params.adUnits.forEach((adUnit) => { if (adUnit.code && map[adUnit.code]) { adUnit.name = map[adUnit.code]; } }); } - if (utils.isArray(params.adUnitCodes)) { + if (isArray(params.adUnitCodes)) { params.adUnitNames = params.adUnitCodes.map((code) => map[code]); } ['bids', 'bidderRequests', 'bidsReceived', 'noBids'].forEach((it) => { @@ -71,13 +71,13 @@ const yieldoneAnalytics = Object.assign(adapter({analyticsType}), { track({eventType, args = {}}) { if (eventType === CONSTANTS.EVENTS.BID_REQUESTED) { const reqBidderId = `${args.bidderCode}_${args.auctionId}`; - requestedBidders[reqBidderId] = utils.deepClone(args); + requestedBidders[reqBidderId] = deepClone(args); requestedBidders[reqBidderId].bids = []; args.bids.forEach((bid) => { requestedBids[`${bid.bidId}_${bid.auctionId}`] = bid; }); } - if (eventType === CONSTANTS.EVENTS.BID_TIMEOUT && utils.isArray(args)) { + if (eventType === CONSTANTS.EVENTS.BID_TIMEOUT && isArray(args)) { const eventsStorage = yieldoneAnalytics.eventsStorage; const reqBidders = {}; args.forEach((bid) => { diff --git a/modules/yieldoneBidAdapter.js b/modules/yieldoneBidAdapter.js index 73c3d2e8808..b12f314da2e 100644 --- a/modules/yieldoneBidAdapter.js +++ b/modules/yieldoneBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js'; +import { deepAccess, isEmpty, parseSizesInput, isStr, logWarn } from '../src/utils.js'; import {config} from '../src/config.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; import { Renderer } from '../src/Renderer.js'; @@ -40,21 +40,21 @@ export const spec = { t: 'i' }; - const videoMediaType = utils.deepAccess(bidRequest, 'mediaTypes.video'); - if ((utils.isEmpty(bidRequest.mediaType) && utils.isEmpty(bidRequest.mediaTypes)) || + const videoMediaType = deepAccess(bidRequest, 'mediaTypes.video'); + if ((isEmpty(bidRequest.mediaType) && isEmpty(bidRequest.mediaTypes)) || (bidRequest.mediaType === BANNER || (bidRequest.mediaTypes && bidRequest.mediaTypes[BANNER]))) { - const sizes = utils.deepAccess(bidRequest, 'mediaTypes.banner.sizes') || bidRequest.sizes; - payload.sz = utils.parseSizesInput(sizes).join(','); + const sizes = deepAccess(bidRequest, 'mediaTypes.banner.sizes') || bidRequest.sizes; + payload.sz = parseSizesInput(sizes).join(','); } else if (bidRequest.mediaType === VIDEO || videoMediaType) { - const sizes = utils.deepAccess(bidRequest, 'mediaTypes.video.playerSize') || bidRequest.sizes; - const size = utils.parseSizesInput(sizes)[0]; + const sizes = deepAccess(bidRequest, 'mediaTypes.video.playerSize') || bidRequest.sizes; + const size = parseSizesInput(sizes)[0]; payload.w = size.split('x')[0]; payload.h = size.split('x')[1]; } // LiveRampID - const idlEnv = utils.deepAccess(bidRequest, 'userId.idl_env'); - if (utils.isStr(idlEnv) && !utils.isEmpty(idlEnv)) { + const idlEnv = deepAccess(bidRequest, 'userId.idl_env'); + if (isStr(idlEnv) && !isEmpty(idlEnv)) { payload.lr_env = idlEnv; } @@ -177,7 +177,7 @@ function newRenderer(response) { try { renderer.setRender(outstreamRender); } catch (err) { - utils.logWarn('Prebid Error calling setRender on newRenderer', err); + logWarn('Prebid Error calling setRender on newRenderer', err); } return renderer; @@ -199,7 +199,7 @@ function newCmerRenderer(response) { try { renderer.setRender(cmerRender); } catch (err) { - utils.logWarn('Prebid Error calling setRender on newRenderer', err); + logWarn('Prebid Error calling setRender on newRenderer', err); } return renderer; diff --git a/modules/yuktamediaAnalyticsAdapter.js b/modules/yuktamediaAnalyticsAdapter.js index 2ef2d251ace..080af9f3973 100644 --- a/modules/yuktamediaAnalyticsAdapter.js +++ b/modules/yuktamediaAnalyticsAdapter.js @@ -1,8 +1,8 @@ +import { getWindowLocation, generateUUID, parseUrl, buildUrl, logInfo, parseSizesInput, logError } from '../src/utils.js'; import { ajax } from '../src/ajax.js'; import adapter from '../src/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import CONSTANTS from '../src/constants.json'; -import * as utils from '../src/utils.js'; import { getStorageManager } from '../src/storageManager.js'; import { getRefererInfo } from '../src/refererDetection.js'; import strIncludes from 'core-js-pure/features/string/includes.js'; @@ -17,7 +17,7 @@ const events = { }; const localStoragePrefix = 'yuktamediaAnalytics_'; const utmTags = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content']; -const location = utils.getWindowLocation(); +const location = getWindowLocation(); const referer = getRefererInfo().referer; const _pageInfo = { userAgent: window.navigator.userAgent, @@ -25,13 +25,13 @@ const _pageInfo = { language: window.navigator.language, screenWidth: window.screen.width, screenHeight: window.screen.height, - pageViewId: utils.generateUUID(), + pageViewId: generateUUID(), host: location.host, path: location.pathname, search: location.search, hash: location.hash, referer: referer, - refererDomain: utils.parseUrl(referer).host, + refererDomain: parseUrl(referer).host, yuktamediaAnalyticsVersion: yuktamediaAnalyticsVersion, prebidVersion: $$PREBID_GLOBAL$$.version }; @@ -53,7 +53,7 @@ function isNavigatorSendBeaconSupported() { function updateSessionId() { if (isSessionIdTimeoutExpired()) { - let newSessionId = utils.generateUUID(); + let newSessionId = generateUUID(); storage.setDataInLocalStorage(localStoragePrefix.concat('session_id'), newSessionId); } initOptions.sessionId = getSessionId(); @@ -80,7 +80,7 @@ function isUtmTimeoutExpired() { function send(data, status) { data.initOptions = Object.assign(_pageInfo, initOptions); - const yuktamediaAnalyticsRequestUrl = utils.buildUrl({ + const yuktamediaAnalyticsRequestUrl = buildUrl({ protocol: 'https', hostname: 'analytics-prebid.yuktamedia.com', pathname: '/api/bids' @@ -97,13 +97,13 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin if (typeof args !== 'undefined') { switch (eventType) { case CONSTANTS.EVENTS.AUCTION_INIT: - utils.logInfo(localStoragePrefix + 'AUCTION_INIT:', JSON.stringify(args)); + logInfo(localStoragePrefix + 'AUCTION_INIT:', JSON.stringify(args)); if (typeof args.auctionId !== 'undefined' && args.auctionId.length) { events.auctions[args.auctionId] = { bids: {} }; } break; case CONSTANTS.EVENTS.BID_REQUESTED: - utils.logInfo(localStoragePrefix + 'BID_REQUESTED:', JSON.stringify(args)); + logInfo(localStoragePrefix + 'BID_REQUESTED:', JSON.stringify(args)); if (typeof args.auctionId !== 'undefined' && args.auctionId.length) { if (typeof events.auctions[args.auctionId] === 'undefined') { events.auctions[args.auctionId] = { bids: {} }; @@ -113,7 +113,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin events.auctions[args.auctionId]['bids'][bidRequest.bidId] = { bidder: bidRequest.bidder, adUnit: bidRequest.adUnitCode, - sizes: utils.parseSizesInput(bidRequest.sizes).toString(), + sizes: parseSizesInput(bidRequest.sizes).toString(), isBid: false, won: false, timeout: false, @@ -132,7 +132,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin } break; case CONSTANTS.EVENTS.BID_RESPONSE: - utils.logInfo(localStoragePrefix + 'BID_RESPONSE:', JSON.stringify(args)); + logInfo(localStoragePrefix + 'BID_RESPONSE:', JSON.stringify(args)); if (typeof args.auctionId !== 'undefined' && args.auctionId.length) { if (typeof events.auctions[args.auctionId] === 'undefined') { events.auctions[args.auctionId] = { bids: {} }; @@ -162,7 +162,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin } break; case CONSTANTS.EVENTS.NO_BID: - utils.logInfo(localStoragePrefix + 'NO_BID:', JSON.stringify(args)); + logInfo(localStoragePrefix + 'NO_BID:', JSON.stringify(args)); if (typeof args.auctionId !== 'undefined' && args.auctionId.length) { if (typeof events.auctions[args.auctionId] === 'undefined') { events.auctions[args.auctionId] = { bids: {} }; @@ -173,7 +173,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin } break; case CONSTANTS.EVENTS.BID_WON: - utils.logInfo(localStoragePrefix + 'BID_WON:', JSON.stringify(args)); + logInfo(localStoragePrefix + 'BID_WON:', JSON.stringify(args)); if (typeof initOptions.enableSession !== 'undefined' && initOptions.enableSession) { updateSessionId(); } @@ -189,7 +189,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin } break; case CONSTANTS.EVENTS.BID_TIMEOUT: - utils.logInfo(localStoragePrefix + 'BID_TIMEOUT:', JSON.stringify(args)); + logInfo(localStoragePrefix + 'BID_TIMEOUT:', JSON.stringify(args)); if (args.length) { args.forEach(timeout => { if (typeof timeout !== 'undefined' && typeof timeout.auctionId !== 'undefined' && timeout.auctionId.length) { @@ -205,7 +205,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin } break; case CONSTANTS.EVENTS.AUCTION_END: - utils.logInfo(localStoragePrefix + 'AUCTION_END:', JSON.stringify(args)); + logInfo(localStoragePrefix + 'AUCTION_END:', JSON.stringify(args)); if (typeof initOptions.enableSession !== 'undefined' && initOptions.enableSession) { updateSessionId(); } @@ -249,7 +249,7 @@ yuktamediaAnalyticsAdapter.originEnableAnalytics = yuktamediaAnalyticsAdapter.en yuktamediaAnalyticsAdapter.enableAnalytics = function (config) { if (config && config.options) { if (typeof config.options.pubId === 'undefined' || typeof config.options.pubKey === 'undefined') { - utils.logError('Need pubId and pubKey to log auction results. Please contact a YuktaMedia representative if you do not know your pubId and pubKey.'); + logError('Need pubId and pubKey to log auction results. Please contact a YuktaMedia representative if you do not know your pubId and pubKey.'); return; } } diff --git a/modules/zeotapIdPlusIdSystem.js b/modules/zeotapIdPlusIdSystem.js index 8f26cc827d6..5cb3a836cd8 100644 --- a/modules/zeotapIdPlusIdSystem.js +++ b/modules/zeotapIdPlusIdSystem.js @@ -4,7 +4,7 @@ * @module modules/zeotapIdPlusIdSystem * @requires module:modules/userId */ -import * as utils from '../src/utils.js' +import { isStr, isPlainObject } from '../src/utils.js'; import {submodule} from '../src/hook.js'; import { getStorageManager } from '../src/storageManager.js'; @@ -45,7 +45,7 @@ export const zeotapIdPlusSubmodule = { * @return { Object | string | undefined } */ decode(value) { - const id = value ? utils.isStr(value) ? value : utils.isPlainObject(value) ? value.id : undefined : undefined; + const id = value ? isStr(value) ? value : isPlainObject(value) ? value.id : undefined : undefined; return id ? { 'IDP': JSON.parse(atob(id)) } : undefined; diff --git a/modules/zetaBidAdapter.js b/modules/zetaBidAdapter.js index c6ce7e857ba..27650888677 100644 --- a/modules/zetaBidAdapter.js +++ b/modules/zetaBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js'; +import { logWarn } from '../src/utils.js'; import { registerBidder } from '../src/adapters/bidderFactory.js'; import {BANNER} from '../src/mediaTypes.js'; const BIDDER_CODE = 'zeta_global'; @@ -24,30 +24,30 @@ export const spec = { if (!(bid && bid.bidId && bid.params)) { - utils.logWarn('Invalid bid request - missing required bid data'); + logWarn('Invalid bid request - missing required bid data'); return false; } if (!(bid.params.user && bid.params.user.buyeruid)) { - utils.logWarn('Invalid bid request - missing required user data'); + logWarn('Invalid bid request - missing required user data'); return false; } if (!(bid.params.device && bid.params.device.ip)) { - utils.logWarn('Invalid bid request - missing required device data'); + logWarn('Invalid bid request - missing required device data'); return false; } if (!(bid.params.device.geo && bid.params.device.geo.country)) { - utils.logWarn('Invalid bid request - missing required geo data'); + logWarn('Invalid bid request - missing required geo data'); return false; } if (!bid.params.definerId) { - utils.logWarn('Invalid bid request - missing required definer data'); + logWarn('Invalid bid request - missing required definer data'); return false; } diff --git a/modules/zeta_global_sspBidAdapter.js b/modules/zeta_global_sspBidAdapter.js index e1ca61357f0..f526a50e098 100644 --- a/modules/zeta_global_sspBidAdapter.js +++ b/modules/zeta_global_sspBidAdapter.js @@ -1,4 +1,4 @@ -import * as utils from '../src/utils.js'; +import { logWarn, deepSetValue, deepAccess, isArray, isNumber, isBoolean, isStr } from '../src/utils.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; import {BANNER, VIDEO} from '../src/mediaTypes.js'; import {config} from '../src/config.js'; @@ -51,7 +51,7 @@ export const spec = { if (!(bid && bid.bidId && bid.params)) { - utils.logWarn('Invalid bid request - missing required bid data'); + logWarn('Invalid bid request - missing required bid data'); return false; } return true; @@ -115,13 +115,13 @@ export const spec = { // Attaching GDPR Consent Params if (bidderRequest && bidderRequest.gdprConsent) { - utils.deepSetValue(payload, 'user.ext.consent', bidderRequest.gdprConsent.consentString); - utils.deepSetValue(payload, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0)); + deepSetValue(payload, 'user.ext.consent', bidderRequest.gdprConsent.consentString); + deepSetValue(payload, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0)); } // CCPA if (bidderRequest && bidderRequest.uspConsent) { - utils.deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent); + deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent); } provideEids(request, payload); @@ -219,17 +219,17 @@ function buildBanner(request) { function buildVideo(request) { let video = {}; - const videoParams = utils.deepAccess(request, 'mediaTypes.video', {}); + const videoParams = deepAccess(request, 'mediaTypes.video', {}); for (const key in VIDEO_CUSTOM_PARAMS) { if (videoParams.hasOwnProperty(key)) { video[key] = checkParamDataType(key, videoParams[key], VIDEO_CUSTOM_PARAMS[key]); } } if (videoParams.playerSize) { - if (utils.isArray(videoParams.playerSize[0])) { + if (isArray(videoParams.playerSize[0])) { video.w = parseInt(videoParams.playerSize[0][0], 10); video.h = parseInt(videoParams.playerSize[0][1], 10); - } else if (utils.isNumber(videoParams.playerSize[0])) { + } else if (isNumber(videoParams.playerSize[0])) { video.w = parseInt(videoParams.playerSize[0], 10); video.h = parseInt(videoParams.playerSize[1], 10); } @@ -241,28 +241,28 @@ function checkParamDataType(key, value, datatype) { let functionToExecute; switch (datatype) { case DATA_TYPES.BOOLEAN: - functionToExecute = utils.isBoolean; + functionToExecute = isBoolean; break; case DATA_TYPES.NUMBER: - functionToExecute = utils.isNumber; + functionToExecute = isNumber; break; case DATA_TYPES.STRING: - functionToExecute = utils.isStr; + functionToExecute = isStr; break; case DATA_TYPES.ARRAY: - functionToExecute = utils.isArray; + functionToExecute = isArray; break; } if (functionToExecute(value)) { return value; } - utils.logWarn('Ignoring param key: ' + key + ', expects ' + datatype + ', found ' + typeof value); + logWarn('Ignoring param key: ' + key + ', expects ' + datatype + ', found ' + typeof value); return undefined; } function provideEids(request, payload) { if (Array.isArray(request.userIdAsEids) && request.userIdAsEids.length > 0) { - utils.deepSetValue(payload, 'user.ext.eids', request.userIdAsEids); + deepSetValue(payload, 'user.ext.eids', request.userIdAsEids); } }