prebid-universal-creative 1.17.2 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,86 +1,28 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // define getter function for harmony exports
37
- /******/ __webpack_require__.d = function(exports, name, getter) {
38
- /******/ if(!__webpack_require__.o(exports, name)) {
39
- /******/ Object.defineProperty(exports, name, {
40
- /******/ configurable: false,
41
- /******/ enumerable: true,
42
- /******/ get: getter
43
- /******/ });
44
- /******/ }
45
- /******/ };
46
- /******/
47
- /******/ // getDefaultExport function for compatibility with non-harmony modules
48
- /******/ __webpack_require__.n = function(module) {
49
- /******/ var getter = module && module.__esModule ?
50
- /******/ function getDefault() { return module['default']; } :
51
- /******/ function getModuleExports() { return module; };
52
- /******/ __webpack_require__.d(getter, 'a', getter);
53
- /******/ return getter;
54
- /******/ };
55
- /******/
56
- /******/ // Object.prototype.hasOwnProperty.call
57
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58
- /******/
59
- /******/ // __webpack_public_path__
60
- /******/ __webpack_require__.p = "";
61
- /******/
62
- /******/ // Load entry module and return exports
63
- /******/ return __webpack_require__(__webpack_require__.s = 4);
64
- /******/ })
65
- /************************************************************************/
66
- /******/ ([
67
- /* 0 */
68
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1
+ /******/ (function() { // webpackBootstrap
2
+ /******/ var __webpack_modules__ = ([
3
+ /* 0 */,
4
+ /* 1 */
5
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
69
6
 
70
7
  "use strict";
71
- /* harmony export (immutable) */ __webpack_exports__["i"] = triggerPixel;
72
- /* harmony export (immutable) */ __webpack_exports__["a"] = createTrackPixelHtml;
73
- /* harmony export (immutable) */ __webpack_exports__["j"] = writeAdUrl;
74
- /* harmony export (immutable) */ __webpack_exports__["g"] = sendRequest;
75
- /* harmony export (immutable) */ __webpack_exports__["d"] = getUUID;
76
- /* harmony export (immutable) */ __webpack_exports__["e"] = loadScript;
77
- /* harmony export (immutable) */ __webpack_exports__["b"] = getCreativeComment;
78
- /* harmony export (immutable) */ __webpack_exports__["c"] = getCreativeCommentMarkup;
79
- /* harmony export (immutable) */ __webpack_exports__["h"] = transformAuctionTargetingData;
80
- /* harmony export (immutable) */ __webpack_exports__["f"] = parseUrl;
81
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__domHelper__ = __webpack_require__(1);
82
8
 
83
9
 
10
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
11
+ Object.defineProperty(exports, "__esModule", ({
12
+ value: true
13
+ }));
14
+ exports.createTrackPixelHtml = createTrackPixelHtml;
15
+ exports.getCreativeComment = getCreativeComment;
16
+ exports.getCreativeCommentMarkup = getCreativeCommentMarkup;
17
+ exports.getUUID = getUUID;
18
+ exports.loadScript = loadScript;
19
+ exports.parseUrl = parseUrl;
20
+ exports.sendRequest = sendRequest;
21
+ exports.transformAuctionTargetingData = transformAuctionTargetingData;
22
+ exports.triggerPixel = triggerPixel;
23
+ exports.writeAdUrl = writeAdUrl;
24
+ var domHelper = _interopRequireWildcard(__webpack_require__(2));
25
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) { "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); } return f; })(e, t); }
84
26
  /**
85
27
  * Inserts an image pixel with the specified `url` for cookie sync
86
28
  * @param {string} url URL string of the image pixel to load
@@ -103,7 +45,7 @@ function createTrackPixelHtml(url) {
103
45
  return img;
104
46
  }
105
47
  function writeAdUrl(adUrl, width, height) {
106
- var iframe = __WEBPACK_IMPORTED_MODULE_0__domHelper__["a" /* getEmptyIframe */](height, width);
48
+ var iframe = domHelper.getEmptyIframe(height, width);
107
49
  iframe.src = adUrl;
108
50
  document.body.appendChild(iframe);
109
51
  }
@@ -298,18 +240,25 @@ function isStr(object) {
298
240
  ;
299
241
 
300
242
  /***/ }),
301
- /* 1 */
302
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
243
+ /* 2 */
244
+ /***/ (function(__unused_webpack_module, exports) {
303
245
 
304
246
  "use strict";
305
- /* harmony export (immutable) */ __webpack_exports__["c"] = makeIframe;
306
- /* harmony export (immutable) */ __webpack_exports__["a"] = getEmptyIframe;
307
- /* harmony export (immutable) */ __webpack_exports__["b"] = insertElement;
308
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
309
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
310
- function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
311
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
312
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
247
+
248
+
249
+ Object.defineProperty(exports, "__esModule", ({
250
+ value: true
251
+ }));
252
+ exports.getEmptyIframe = getEmptyIframe;
253
+ exports.insertElement = insertElement;
254
+ exports.makeIframe = makeIframe;
255
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
256
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
257
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
258
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) { n[e] = r[e]; } return n; }
259
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) { ; } } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
260
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
261
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
313
262
  /**
314
263
  * domHelper: a collection of helpful dom things
315
264
  */
@@ -374,16 +323,155 @@ function insertElement(elm, doc, target) {
374
323
  }
375
324
 
376
325
  /***/ }),
377
- /* 2 */
378
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
326
+ /* 3 */
327
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
379
328
 
380
329
  "use strict";
381
- /* harmony export (immutable) */ __webpack_exports__["b"] = isAmp;
382
- /* harmony export (immutable) */ __webpack_exports__["d"] = isSafeFrame;
383
- /* unused harmony export isCrossDomain */
384
- /* unused harmony export canInspectWindow */
385
- /* harmony export (immutable) */ __webpack_exports__["a"] = canLocatePrebid;
386
- /* harmony export (immutable) */ __webpack_exports__["c"] = isMobileApp;
330
+
331
+
332
+ Object.defineProperty(exports, "__esModule", ({
333
+ value: true
334
+ }));
335
+ exports.renderBannerOrDisplayAd = renderBannerOrDisplayAd;
336
+ exports.renderCrossDomain = renderCrossDomain;
337
+ exports.renderLegacy = renderLegacy;
338
+ var _utils = __webpack_require__(1);
339
+ var _environment = __webpack_require__(4);
340
+ var _domHelper = __webpack_require__(2);
341
+ var _messaging = __webpack_require__(5);
342
+ var _dynamicRenderer = __webpack_require__(6);
343
+ function renderBannerOrDisplayAd(doc, dataObject) {
344
+ var targetingData = (0, _utils.transformAuctionTargetingData)(dataObject);
345
+ if (!(0, _environment.canLocatePrebid)(window)) {
346
+ renderCrossDomain(window, targetingData.adId, targetingData.adServerDomain, targetingData.pubUrl);
347
+ } else {
348
+ renderLegacy(doc, targetingData.adId);
349
+ }
350
+ }
351
+
352
+ /**
353
+ * Calls prebid.js renderAd function to render ad
354
+ * @param {Object} doc Document
355
+ * @param {string} adId Id of creative to render
356
+ */
357
+ function renderLegacy(doc, adId) {
358
+ var found = false;
359
+ var w = window;
360
+ for (var i = 0; i < 10; i++) {
361
+ w = w.parent;
362
+ if (w.pbjs) {
363
+ try {
364
+ w.pbjs.renderAd(doc, adId);
365
+ found = true;
366
+ break;
367
+ } catch (e) {
368
+ continue;
369
+ }
370
+ }
371
+ }
372
+ if (!found) {
373
+ console.error("Unable to locate pbjs.renderAd function!");
374
+ }
375
+ }
376
+
377
+ /**
378
+ * Render ad in safeframe using postmessage
379
+ * @param {string} adId Id of creative to render
380
+ * @param {string} pubAdServerDomain publisher adserver domain name
381
+ * @param {string} pubUrl Url of publisher page
382
+ */
383
+ function renderCrossDomain(win, adId) {
384
+ var pubAdServerDomain = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
385
+ var pubUrl = arguments.length > 3 ? arguments[3] : undefined;
386
+ var windowLocation = win.location;
387
+ var adServerDomain = pubAdServerDomain || win.location.hostname;
388
+ var fullAdServerDomain = windowLocation.protocol + '//' + adServerDomain;
389
+ var sendMessage = (0, _messaging.prebidMessenger)(pubUrl, win);
390
+ var signalRenderResult = function signalRenderResult(errorInfo) {
391
+ return sendMessage((0, _messaging.renderEventMessage)(adId, errorInfo));
392
+ };
393
+ function renderAd(ev) {
394
+ var key = ev.message ? "message" : "data";
395
+ var adObject = {};
396
+ try {
397
+ adObject = JSON.parse(ev[key]);
398
+ } catch (e) {
399
+ return;
400
+ }
401
+ if (adObject.message && adObject.message === "Prebid Response" && adObject.adId === adId) {
402
+ if ((0, _dynamicRenderer.hasDynamicRenderer)(adObject)) {
403
+ (0, _dynamicRenderer.runDynamicRenderer)(adId, adObject, sendMessage, win);
404
+ return;
405
+ }
406
+ try {
407
+ var body = win.document.body;
408
+ var ad = adObject.ad;
409
+ var url = adObject.adUrl;
410
+ var width = adObject.width;
411
+ var height = adObject.height;
412
+ if (adObject.mediaType === "video") {
413
+ signalRenderResult({
414
+ reason: "preventWritingOnMainDocument",
415
+ message: "Cannot render video ad ".concat(adId)
416
+ });
417
+ console.log("Error trying to write ad.");
418
+ } else if (ad) {
419
+ var iframe = (0, _domHelper.getEmptyIframe)(adObject.height, adObject.width);
420
+ body.appendChild(iframe);
421
+ iframe.contentDocument.open();
422
+ iframe.contentDocument.write(ad);
423
+ iframe.contentDocument.close();
424
+ signalRenderResult();
425
+ } else if (url) {
426
+ var _iframe = (0, _domHelper.getEmptyIframe)(height, width);
427
+ _iframe.style.display = "inline";
428
+ _iframe.style.overflow = "hidden";
429
+ _iframe.src = url;
430
+ (0, _domHelper.insertElement)(_iframe, document, "body");
431
+ signalRenderResult();
432
+ } else {
433
+ signalRenderResult({
434
+ reason: "noAd",
435
+ message: "No ad for ".concat(adId)
436
+ });
437
+ console.log("Error trying to write ad. No ad markup or adUrl for ".concat(adId));
438
+ }
439
+ } catch (e) {
440
+ signalRenderResult({
441
+ reason: "exception",
442
+ message: e.message
443
+ });
444
+ console.log("Error in rendering ad", e);
445
+ }
446
+ }
447
+ }
448
+ function requestAdFromPrebid() {
449
+ var message = {
450
+ message: 'Prebid Request',
451
+ adId: adId,
452
+ adServerDomain: fullAdServerDomain
453
+ };
454
+ sendMessage(message, renderAd);
455
+ }
456
+ requestAdFromPrebid();
457
+ }
458
+
459
+ /***/ }),
460
+ /* 4 */
461
+ /***/ (function(__unused_webpack_module, exports) {
462
+
463
+ "use strict";
464
+
465
+
466
+ Object.defineProperty(exports, "__esModule", ({
467
+ value: true
468
+ }));
469
+ exports.canInspectWindow = canInspectWindow;
470
+ exports.canLocatePrebid = canLocatePrebid;
471
+ exports.isAmp = isAmp;
472
+ exports.isCrossDomain = isCrossDomain;
473
+ exports.isMobileApp = isMobileApp;
474
+ exports.isSafeFrame = isSafeFrame;
387
475
  /***************************************
388
476
  * Detect Environment Helper Functions
389
477
  ***************************************/
@@ -468,28 +556,30 @@ function isMobileApp(env) {
468
556
  }
469
557
 
470
558
  /***/ }),
471
- /* 3 */
472
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
559
+ /* 5 */
560
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
473
561
 
474
562
  "use strict";
475
- /* unused harmony export PREBID_EVENT */
476
- /* unused harmony export AD_RENDER_SUCCEEDED */
477
- /* unused harmony export AD_RENDER_FAILED */
478
- /* harmony export (immutable) */ __webpack_exports__["a"] = prebidMessenger;
479
- /* harmony export (immutable) */ __webpack_exports__["b"] = renderEventMessage;
480
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_js__ = __webpack_require__(0);
481
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
482
-
483
- var PREBID_EVENT = 'Prebid Event';
484
- var AD_RENDER_SUCCEEDED = 'adRenderSucceeded';
485
- var AD_RENDER_FAILED = 'adRenderFailed';
563
+
564
+
565
+ Object.defineProperty(exports, "__esModule", ({
566
+ value: true
567
+ }));
568
+ exports.PREBID_EVENT = exports.AD_RENDER_SUCCEEDED = exports.AD_RENDER_FAILED = void 0;
569
+ exports.prebidMessenger = prebidMessenger;
570
+ exports.renderEventMessage = renderEventMessage;
571
+ var _utils = __webpack_require__(1);
572
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
573
+ var PREBID_EVENT = exports.PREBID_EVENT = 'Prebid Event';
574
+ var AD_RENDER_SUCCEEDED = exports.AD_RENDER_SUCCEEDED = 'adRenderSucceeded';
575
+ var AD_RENDER_FAILED = exports.AD_RENDER_FAILED = 'adRenderFailed';
486
576
  function prebidMessenger(publisherURL) {
487
577
  var win = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
488
578
  var prebidDomain = function () {
489
579
  if (publisherURL == null) {
490
580
  return null;
491
581
  }
492
- var parsedUrl = Object(__WEBPACK_IMPORTED_MODULE_0__utils_js__["f" /* parseUrl */])(publisherURL);
582
+ var parsedUrl = (0, _utils.parseUrl)(publisherURL);
493
583
  return parsedUrl.protocol + '://' + parsedUrl.host;
494
584
  }();
495
585
  function isPrebidWindow(win) {
@@ -541,197 +631,29 @@ function renderEventMessage(adId, errorInfo) {
541
631
  } : null);
542
632
  }
543
633
 
544
- /***/ }),
545
- /* 4 */
546
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
547
-
548
- "use strict";
549
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
550
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(0);
551
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__renderingManager__ = __webpack_require__(5);
552
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mobileAndAmpRender__ = __webpack_require__(7);
553
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__environment__ = __webpack_require__(2);
554
- /**
555
- * legacy.js
556
- * This is deprecated code, publishers should not use one .js creative to handle all different types of creative.
557
- * To reduce bytes transfered for each ad, publishers should use specific .js based on hb_format targeting key-value.
558
- *
559
- * This file is inserted into the prebid creative as a placeholder for the winning prebid creative. It should support the following formats:
560
- * - Banner
561
- * - AMP
562
- * - Mobile
563
- * - Outstream Video
564
- * - All safeFrame creatives
565
- */
566
-
567
-
568
-
569
-
570
-
571
- window.ucTag = window.ucTag || {};
572
- window.ucTag.renderAd = function (doc, dataObject) {
573
- var targetingData = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["h" /* transformAuctionTargetingData */])(dataObject);
574
- if (Object(__WEBPACK_IMPORTED_MODULE_3__environment__["c" /* isMobileApp */])(targetingData.env) || Object(__WEBPACK_IMPORTED_MODULE_3__environment__["b" /* isAmp */])(targetingData.uuid, window)) {
575
- Object(__WEBPACK_IMPORTED_MODULE_2__mobileAndAmpRender__["a" /* renderAmpOrMobileAd */])(dataObject);
576
- } else {
577
- Object(__WEBPACK_IMPORTED_MODULE_1__renderingManager__["a" /* renderBannerOrDisplayAd */])(doc, dataObject);
578
- }
579
- };
580
-
581
- /***/ }),
582
- /* 5 */
583
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
584
-
585
- "use strict";
586
- /* harmony export (immutable) */ __webpack_exports__["a"] = renderBannerOrDisplayAd;
587
- /* unused harmony export renderLegacy */
588
- /* unused harmony export renderCrossDomain */
589
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(0);
590
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__environment__ = __webpack_require__(2);
591
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__domHelper__ = __webpack_require__(1);
592
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__messaging_js__ = __webpack_require__(3);
593
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dynamicRenderer_js__ = __webpack_require__(6);
594
-
595
-
596
-
597
-
598
-
599
- function renderBannerOrDisplayAd(doc, dataObject) {
600
- var targetingData = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["h" /* transformAuctionTargetingData */])(dataObject);
601
- if (!Object(__WEBPACK_IMPORTED_MODULE_1__environment__["a" /* canLocatePrebid */])(window)) {
602
- renderCrossDomain(window, targetingData.adId, targetingData.adServerDomain, targetingData.pubUrl);
603
- } else {
604
- renderLegacy(doc, targetingData.adId);
605
- }
606
- }
607
-
608
- /**
609
- * Calls prebid.js renderAd function to render ad
610
- * @param {Object} doc Document
611
- * @param {string} adId Id of creative to render
612
- */
613
- function renderLegacy(doc, adId) {
614
- var found = false;
615
- var w = window;
616
- for (var i = 0; i < 10; i++) {
617
- w = w.parent;
618
- if (w.pbjs) {
619
- try {
620
- w.pbjs.renderAd(doc, adId);
621
- found = true;
622
- break;
623
- } catch (e) {
624
- continue;
625
- }
626
- }
627
- }
628
- if (!found) {
629
- console.error("Unable to locate pbjs.renderAd function!");
630
- }
631
- }
632
-
633
- /**
634
- * Render ad in safeframe using postmessage
635
- * @param {string} adId Id of creative to render
636
- * @param {string} pubAdServerDomain publisher adserver domain name
637
- * @param {string} pubUrl Url of publisher page
638
- */
639
- function renderCrossDomain(win, adId) {
640
- var pubAdServerDomain = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
641
- var pubUrl = arguments.length > 3 ? arguments[3] : undefined;
642
- var windowLocation = win.location;
643
- var adServerDomain = pubAdServerDomain || win.location.hostname;
644
- var fullAdServerDomain = windowLocation.protocol + '//' + adServerDomain;
645
- var sendMessage = Object(__WEBPACK_IMPORTED_MODULE_3__messaging_js__["a" /* prebidMessenger */])(pubUrl, win);
646
- var signalRenderResult = function signalRenderResult(errorInfo) {
647
- return sendMessage(Object(__WEBPACK_IMPORTED_MODULE_3__messaging_js__["b" /* renderEventMessage */])(adId, errorInfo));
648
- };
649
- function renderAd(ev) {
650
- var key = ev.message ? "message" : "data";
651
- var adObject = {};
652
- try {
653
- adObject = JSON.parse(ev[key]);
654
- } catch (e) {
655
- return;
656
- }
657
- if (adObject.message && adObject.message === "Prebid Response" && adObject.adId === adId) {
658
- if (Object(__WEBPACK_IMPORTED_MODULE_4__dynamicRenderer_js__["a" /* hasDynamicRenderer */])(adObject)) {
659
- Object(__WEBPACK_IMPORTED_MODULE_4__dynamicRenderer_js__["b" /* runDynamicRenderer */])(adId, adObject, sendMessage, win);
660
- return;
661
- }
662
- try {
663
- var body = win.document.body;
664
- var ad = adObject.ad;
665
- var url = adObject.adUrl;
666
- var width = adObject.width;
667
- var height = adObject.height;
668
- if (adObject.mediaType === "video") {
669
- signalRenderResult({
670
- reason: "preventWritingOnMainDocument",
671
- message: "Cannot render video ad ".concat(adId)
672
- });
673
- console.log("Error trying to write ad.");
674
- } else if (ad) {
675
- var iframe = Object(__WEBPACK_IMPORTED_MODULE_2__domHelper__["a" /* getEmptyIframe */])(adObject.height, adObject.width);
676
- body.appendChild(iframe);
677
- iframe.contentDocument.open();
678
- iframe.contentDocument.write(ad);
679
- iframe.contentDocument.close();
680
- signalRenderResult();
681
- } else if (url) {
682
- var _iframe = Object(__WEBPACK_IMPORTED_MODULE_2__domHelper__["a" /* getEmptyIframe */])(height, width);
683
- _iframe.style.display = "inline";
684
- _iframe.style.overflow = "hidden";
685
- _iframe.src = url;
686
- Object(__WEBPACK_IMPORTED_MODULE_2__domHelper__["b" /* insertElement */])(_iframe, document, "body");
687
- signalRenderResult();
688
- } else {
689
- signalRenderResult({
690
- reason: "noAd",
691
- message: "No ad for ".concat(adId)
692
- });
693
- console.log("Error trying to write ad. No ad markup or adUrl for ".concat(adId));
694
- }
695
- } catch (e) {
696
- signalRenderResult({
697
- reason: "exception",
698
- message: e.message
699
- });
700
- console.log("Error in rendering ad", e);
701
- }
702
- }
703
- }
704
- function requestAdFromPrebid() {
705
- var message = {
706
- message: 'Prebid Request',
707
- adId: adId,
708
- adServerDomain: fullAdServerDomain
709
- };
710
- sendMessage(message, renderAd);
711
- }
712
- requestAdFromPrebid();
713
- }
714
-
715
634
  /***/ }),
716
635
  /* 6 */
717
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
636
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
718
637
 
719
638
  "use strict";
720
- /* unused harmony export MIN_RENDERER_VERSION */
721
- /* harmony export (immutable) */ __webpack_exports__["a"] = hasDynamicRenderer;
722
- /* harmony export (immutable) */ __webpack_exports__["b"] = runDynamicRenderer;
723
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__domHelper_js__ = __webpack_require__(1);
724
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__messaging_js__ = __webpack_require__(3);
725
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
726
639
 
727
640
 
728
- var MIN_RENDERER_VERSION = 3;
641
+ Object.defineProperty(exports, "__esModule", ({
642
+ value: true
643
+ }));
644
+ exports.MIN_RENDERER_VERSION = void 0;
645
+ exports.hasDynamicRenderer = hasDynamicRenderer;
646
+ exports.runDynamicRenderer = runDynamicRenderer;
647
+ var _domHelper = __webpack_require__(2);
648
+ var _messaging = __webpack_require__(5);
649
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
650
+ var MIN_RENDERER_VERSION = exports.MIN_RENDERER_VERSION = 3;
729
651
  function hasDynamicRenderer(message) {
730
652
  return typeof message.renderer === 'string' && parseInt(message.rendererVersion, 10) >= MIN_RENDERER_VERSION;
731
653
  }
732
654
  function runDynamicRenderer(adId, data, _sendMessage) {
733
655
  var win = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : window;
734
- var mkFrame = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : __WEBPACK_IMPORTED_MODULE_0__domHelper_js__["c" /* makeIframe */];
656
+ var mkFrame = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _domHelper.makeIframe;
735
657
  var renderer = mkFrame(win.document, {
736
658
  width: 0,
737
659
  height: 0,
@@ -742,7 +664,7 @@ function runDynamicRenderer(adId, data, _sendMessage) {
742
664
  return new Promise(function (resolve, reject) {
743
665
  function onError() {
744
666
  var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
745
- _sendMessage(Object(__WEBPACK_IMPORTED_MODULE_1__messaging_js__["b" /* renderEventMessage */])(adId, {
667
+ _sendMessage((0, _messaging.renderEventMessage)(adId, {
746
668
  reason: e.reason || 'exception',
747
669
  message: e.message
748
670
  }));
@@ -771,7 +693,7 @@ function runDynamicRenderer(adId, data, _sendMessage) {
771
693
  }, payload), onResponse ? guard(onResponse) : undefined);
772
694
  }
773
695
  }, win)).then(function () {
774
- return _sendMessage(Object(__WEBPACK_IMPORTED_MODULE_1__messaging_js__["b" /* renderEventMessage */])(adId));
696
+ return _sendMessage((0, _messaging.renderEventMessage)(adId));
775
697
  }, onError).then(resolve);
776
698
  });
777
699
  win.document.body.appendChild(renderer);
@@ -780,18 +702,19 @@ function runDynamicRenderer(adId, data, _sendMessage) {
780
702
 
781
703
  /***/ }),
782
704
  /* 7 */
783
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
705
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
784
706
 
785
707
  "use strict";
786
- /* harmony export (immutable) */ __webpack_exports__["a"] = renderAmpOrMobileAd;
787
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(0);
788
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__environment__ = __webpack_require__(2);
789
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__domHelper__ = __webpack_require__(1);
790
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__postscribeRender__ = __webpack_require__(8);
791
-
792
-
793
708
 
794
709
 
710
+ Object.defineProperty(exports, "__esModule", ({
711
+ value: true
712
+ }));
713
+ exports.renderAmpOrMobileAd = renderAmpOrMobileAd;
714
+ var _utils = __webpack_require__(1);
715
+ var _environment = __webpack_require__(4);
716
+ var _domHelper = __webpack_require__(2);
717
+ var _postscribeRender = __webpack_require__(8);
795
718
  var DEFAULT_CACHE_HOST = 'prebid.adnxs.com';
796
719
  var DEFAULT_CACHE_PATH = '/pbc/v1/cache';
797
720
 
@@ -805,7 +728,7 @@ var DEFAULT_CACHE_PATH = '/pbc/v1/cache';
805
728
  * @param {Bool} isMobileApp flag to detect mobile app
806
729
  */
807
730
  function renderAmpOrMobileAd(dataObject) {
808
- var targetingData = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["h" /* transformAuctionTargetingData */])(dataObject);
731
+ var targetingData = (0, _utils.transformAuctionTargetingData)(dataObject);
809
732
  var cacheHost = targetingData.cacheHost,
810
733
  cachePath = targetingData.cachePath,
811
734
  uuid = targetingData.uuid,
@@ -822,7 +745,7 @@ function renderAmpOrMobileAd(dataObject) {
822
745
  var adUrl = "".concat(getCacheEndpoint(cacheHost, cachePath), "?uuid=").concat(uuid);
823
746
  //register creative right away to not miss initial geom-update
824
747
  updateIframe(size);
825
- Object(__WEBPACK_IMPORTED_MODULE_0__utils__["g" /* sendRequest */])(adUrl, responseCallback(Object(__WEBPACK_IMPORTED_MODULE_1__environment__["c" /* isMobileApp */])(targetingData.env), hbPb));
748
+ (0, _utils.sendRequest)(adUrl, responseCallback((0, _environment.isMobileApp)(targetingData.env), hbPb));
826
749
  }
827
750
  }
828
751
 
@@ -858,8 +781,8 @@ function resizeIframe(width, height) {
858
781
  var iframeWidth = window.innerWidth;
859
782
  var iframeHeight = window.innerHeight;
860
783
  if (iframeWidth !== width || iframeHeight !== height) {
861
- if (Object(__WEBPACK_IMPORTED_MODULE_1__environment__["d" /* isSafeFrame */])(window)) {
862
- var resize = function resize(status) {
784
+ if ((0, _environment.isSafeFrame)(window)) {
785
+ var resize = function resize() {
863
786
  var newWidth = width - iframeWidth;
864
787
  var newHeight = height - iframeHeight;
865
788
  window.$sf.ext.expand({
@@ -901,13 +824,13 @@ function responseCallback(isMobileApp, hbPb) {
901
824
  return function (response) {
902
825
  var bidObject = parseResponse(response);
903
826
  var auctionPrice = bidObject.price || hbPb;
904
- var ad = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["c" /* getCreativeCommentMarkup */])(bidObject);
827
+ var ad = (0, _utils.getCreativeCommentMarkup)(bidObject);
905
828
  var width = bidObject.width ? bidObject.width : bidObject.w;
906
829
  var height = bidObject.height ? bidObject.height : bidObject.h;
907
830
 
908
831
  // When Prebid Universal Creative reads from Prebid Cache, we need to have it check for the existence of the wurl parameter. If it exists, hit it.
909
832
  if (bidObject.wurl) {
910
- Object(__WEBPACK_IMPORTED_MODULE_0__utils__["i" /* triggerPixel */])(decodeURIComponent(bidObject.wurl));
833
+ (0, _utils.triggerPixel)(decodeURIComponent(bidObject.wurl));
911
834
  }
912
835
  if (bidObject.adm) {
913
836
  if (auctionPrice) {
@@ -921,14 +844,14 @@ function responseCallback(isMobileApp, hbPb) {
921
844
  }
922
845
  ad += isMobileApp ? constructMarkup(bidObject.adm, width, height) : bidObject.adm;
923
846
  if (bidObject.nurl) {
924
- ad += Object(__WEBPACK_IMPORTED_MODULE_0__utils__["a" /* createTrackPixelHtml */])(decodeURIComponent(bidObject.nurl));
847
+ ad += (0, _utils.createTrackPixelHtml)(decodeURIComponent(bidObject.nurl));
925
848
  }
926
849
  if (bidObject.burl) {
927
850
  var triggerBurl = function triggerBurl() {
928
- Object(__WEBPACK_IMPORTED_MODULE_0__utils__["i" /* triggerPixel */])(bidObject.burl);
851
+ (0, _utils.triggerPixel)(bidObject.burl);
929
852
  };
930
853
  if (isMobileApp) {
931
- var mraidScript = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* loadScript */])(window, 'mraid.js', function () {
854
+ (0, _utils.loadScript)(window, 'mraid.js', function () {
932
855
  // Success loading MRAID
933
856
  var result = registerMRAIDViewableEvent(triggerBurl);
934
857
  if (!result) {
@@ -940,18 +863,17 @@ function responseCallback(isMobileApp, hbPb) {
940
863
  triggerBurl(); // Not a mobile app
941
864
  }
942
865
  }
943
-
944
- Object(__WEBPACK_IMPORTED_MODULE_3__postscribeRender__["a" /* writeAdHtml */])(ad);
866
+ (0, _postscribeRender.writeAdHtml)(ad);
945
867
  } else if (bidObject.nurl) {
946
868
  if (isMobileApp) {
947
- var adhtml = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* loadScript */])(window, bidObject.nurl);
869
+ var adhtml = (0, _utils.loadScript)(window, bidObject.nurl);
948
870
  ad += constructMarkup(adhtml.outerHTML, width, height);
949
- Object(__WEBPACK_IMPORTED_MODULE_3__postscribeRender__["a" /* writeAdHtml */])(ad);
871
+ (0, _postscribeRender.writeAdHtml)(ad);
950
872
  } else {
951
873
  var nurl = bidObject.nurl;
952
- var commentElm = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["b" /* getCreativeComment */])(bidObject);
953
- Object(__WEBPACK_IMPORTED_MODULE_2__domHelper__["b" /* insertElement */])(commentElm, document, 'body');
954
- Object(__WEBPACK_IMPORTED_MODULE_0__utils__["j" /* writeAdUrl */])(nurl, width, height);
874
+ var commentElm = (0, _utils.getCreativeComment)(bidObject);
875
+ (0, _domHelper.insertElement)(commentElm, document, 'body');
876
+ (0, _utils.writeAdUrl)(nurl, width, height);
955
877
  }
956
878
  }
957
879
  };
@@ -981,7 +903,7 @@ function parseResponse(response) {
981
903
  * @returns {string} creative markup
982
904
  */
983
905
  function constructMarkup(ad, width, height) {
984
- var id = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["d" /* getUUID */])();
906
+ var id = (0, _utils.getUUID)();
985
907
  return "<div id=\"".concat(id, "\" style=\"border-style: none; position: absolute; width:100%; height:100%;\">\n <div id=\"").concat(id, "_inner\" style=\"margin: 0 auto; width:").concat(width, "px; height:").concat(height, "px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);\">").concat(ad, "</div>\n </div>");
986
908
  }
987
909
  function registerMRAIDViewableEvent(callback) {
@@ -1026,26 +948,83 @@ function registerMRAIDViewableEvent(callback) {
1026
948
 
1027
949
  /***/ }),
1028
950
  /* 8 */
1029
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
951
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1030
952
 
1031
953
  "use strict";
1032
- /* harmony export (immutable) */ __webpack_exports__["a"] = writeAdHtml;
1033
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_postscribe__ = __webpack_require__(9);
1034
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_postscribe___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_postscribe__);
1035
954
 
955
+
956
+ Object.defineProperty(exports, "__esModule", ({
957
+ value: true
958
+ }));
959
+ exports.writeAdHtml = writeAdHtml;
960
+ var _postscribe = _interopRequireDefault(__webpack_require__(9));
961
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
962
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
963
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
964
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
965
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
966
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
967
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) { n[e] = r[e]; } return n; }
1036
968
  function writeAdHtml(markup) {
1037
- var ps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : __WEBPACK_IMPORTED_MODULE_0_postscribe___default.a;
969
+ var ps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _postscribe["default"];
1038
970
  // remove <?xml> and <!doctype> tags
1039
971
  // https://github.com/prebid/prebid-universal-creative/issues/134
1040
- markup = markup.replace(/\<(\?xml|(\!DOCTYPE[^\>\[]+(\[[^\]]+)?))+[^>]+\>/gi, '');
1041
- ps(document.body, markup, {
972
+ markup = markup.replace(/<\?xml\b[^>]*(?:\?>|>)/gi, '').replace(/<!doctype\b[^>\[]*(?:\[[^\]]*\][^>]*)?>/gi, '');
973
+ var finalMarkup;
974
+ try {
975
+ finalMarkup = normalizeMarkup(markup);
976
+ } catch (error) {
977
+ console.error("Error normalizing markup:", error.message);
978
+ finalMarkup = markup;
979
+ }
980
+ ps(document.body, finalMarkup, {
1042
981
  error: console.error
1043
982
  });
1044
983
  }
1045
984
 
985
+ /**
986
+ * Normalizes an HTML string by parsing and re-serializing it,
987
+ * returning the content between custom PUC_START and PUC_END markers.
988
+ *
989
+ * This function is specifically aimed at addressing an issue with `postscribe` where double quotes inside single-quoted
990
+ * HTML attributes are not correctly escaped.
991
+ */
992
+ function normalizeMarkup(markup) {
993
+ var timestamp = Date.now();
994
+ var startMarkerId = "PUC_START_".concat(timestamp);
995
+ var endMarkerId = "PUC_END_".concat(timestamp);
996
+ var startMarker = "<div id=\"".concat(startMarkerId, "\"></div>");
997
+ var endMarker = "<div id=\"".concat(endMarkerId, "\"></div>");
998
+ var doc = new DOMParser().parseFromString("".concat(startMarker).concat(markup).concat(endMarker), "text/html");
999
+ var textMap = new Map();
1000
+ var textId = 0;
1001
+ var replaceTextNodes = function replaceTextNodes(node) {
1002
+ if (node.nodeType === Node.TEXT_NODE && node.textContent.trim()) {
1003
+ var id = "PUC_NODE_TEXT_".concat(textId++, "_").concat(timestamp);
1004
+ textMap.set(id, node.textContent);
1005
+ var span = doc.createElement("span");
1006
+ span.dataset.textId = id;
1007
+ node.parentNode.replaceChild(span, node);
1008
+ } else {
1009
+ _toConsumableArray(node.childNodes).forEach(replaceTextNodes);
1010
+ }
1011
+ };
1012
+ var current = doc.querySelector("#".concat(startMarkerId)).nextSibling;
1013
+ var end = doc.querySelector("#".concat(endMarkerId));
1014
+ while (current && current !== end) {
1015
+ replaceTextNodes(current);
1016
+ current = current.nextSibling;
1017
+ }
1018
+ var serialized = new XMLSerializer().serializeToString(doc);
1019
+ var snippet = serialized.split(startMarker)[1].split(endMarker)[0].replace(/<span data-text-id="(PUC_NODE_TEXT_\d+_\d+)"[^>]*><\/span>/g, function (_, id) {
1020
+ return textMap.get(id) || "";
1021
+ });
1022
+ return snippet.trim();
1023
+ }
1024
+
1046
1025
  /***/ }),
1047
1026
  /* 9 */
1048
- /***/ (function(module, exports, __webpack_require__) {
1027
+ /***/ (function(module) {
1049
1028
 
1050
1029
  /**
1051
1030
  * @file postscribe
@@ -1059,19 +1038,15 @@ function writeAdHtml(markup) {
1059
1038
  (function webpackUniversalModuleDefinition(root, factory) {
1060
1039
  if(true)
1061
1040
  module.exports = factory();
1062
- else if(typeof define === 'function' && define.amd)
1063
- define([], factory);
1064
- else if(typeof exports === 'object')
1065
- exports["postscribe"] = factory();
1066
- else
1067
- root["postscribe"] = factory();
1041
+ else // removed by dead control flow
1042
+ {}
1068
1043
  })(this, function() {
1069
1044
  return /******/ (function(modules) { // webpackBootstrap
1070
1045
  /******/ // The module cache
1071
1046
  /******/ var installedModules = {};
1072
1047
  /******/
1073
1048
  /******/ // The require function
1074
- /******/ function __webpack_require__(moduleId) {
1049
+ /******/ function __nested_webpack_require_791__(moduleId) {
1075
1050
  /******/
1076
1051
  /******/ // Check if module is in cache
1077
1052
  /******/ if(installedModules[moduleId])
@@ -1085,7 +1060,7 @@ return /******/ (function(modules) { // webpackBootstrap
1085
1060
  /******/ };
1086
1061
  /******/
1087
1062
  /******/ // Execute the module function
1088
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
1063
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_791__);
1089
1064
  /******/
1090
1065
  /******/ // Flag the module as loaded
1091
1066
  /******/ module.loaded = true;
@@ -1096,25 +1071,25 @@ return /******/ (function(modules) { // webpackBootstrap
1096
1071
  /******/
1097
1072
  /******/
1098
1073
  /******/ // expose the modules object (__webpack_modules__)
1099
- /******/ __webpack_require__.m = modules;
1074
+ /******/ __nested_webpack_require_791__.m = modules;
1100
1075
  /******/
1101
1076
  /******/ // expose the module cache
1102
- /******/ __webpack_require__.c = installedModules;
1077
+ /******/ __nested_webpack_require_791__.c = installedModules;
1103
1078
  /******/
1104
1079
  /******/ // __webpack_public_path__
1105
- /******/ __webpack_require__.p = "";
1080
+ /******/ __nested_webpack_require_791__.p = "";
1106
1081
  /******/
1107
1082
  /******/ // Load entry module and return exports
1108
- /******/ return __webpack_require__(0);
1083
+ /******/ return __nested_webpack_require_791__(0);
1109
1084
  /******/ })
1110
1085
  /************************************************************************/
1111
1086
  /******/ ([
1112
1087
  /* 0 */
1113
- /***/ function(module, exports, __webpack_require__) {
1088
+ /***/ function(module, exports, __nested_webpack_require_2071__) {
1114
1089
 
1115
1090
  'use strict';
1116
1091
 
1117
- var _postscribe = __webpack_require__(1);
1092
+ var _postscribe = __nested_webpack_require_2071__(1);
1118
1093
 
1119
1094
  var _postscribe2 = _interopRequireDefault(_postscribe);
1120
1095
 
@@ -1124,7 +1099,7 @@ return /******/ (function(modules) { // webpackBootstrap
1124
1099
 
1125
1100
  /***/ },
1126
1101
  /* 1 */
1127
- /***/ function(module, exports, __webpack_require__) {
1102
+ /***/ function(module, exports, __nested_webpack_require_2410__) {
1128
1103
 
1129
1104
  'use strict';
1130
1105
 
@@ -1134,11 +1109,11 @@ return /******/ (function(modules) { // webpackBootstrap
1134
1109
 
1135
1110
  exports['default'] = postscribe;
1136
1111
 
1137
- var _writeStream = __webpack_require__(2);
1112
+ var _writeStream = __nested_webpack_require_2410__(2);
1138
1113
 
1139
1114
  var _writeStream2 = _interopRequireDefault(_writeStream);
1140
1115
 
1141
- var _utils = __webpack_require__(4);
1116
+ var _utils = __nested_webpack_require_2410__(4);
1142
1117
 
1143
1118
  var utils = _interopRequireWildcard(_utils);
1144
1119
 
@@ -1362,7 +1337,7 @@ return /******/ (function(modules) { // webpackBootstrap
1362
1337
 
1363
1338
  /***/ },
1364
1339
  /* 2 */
1365
- /***/ function(module, exports, __webpack_require__) {
1340
+ /***/ function(module, exports, __nested_webpack_require_7899__) {
1366
1341
 
1367
1342
  'use strict';
1368
1343
 
@@ -1370,11 +1345,11 @@ return /******/ (function(modules) { // webpackBootstrap
1370
1345
 
1371
1346
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
1372
1347
 
1373
- var _prescribe = __webpack_require__(3);
1348
+ var _prescribe = __nested_webpack_require_7899__(3);
1374
1349
 
1375
1350
  var _prescribe2 = _interopRequireDefault(_prescribe);
1376
1351
 
1377
- var _utils = __webpack_require__(4);
1352
+ var _utils = __nested_webpack_require_7899__(4);
1378
1353
 
1379
1354
  var utils = _interopRequireWildcard(_utils);
1380
1355
 
@@ -2056,19 +2031,15 @@ return /******/ (function(modules) { // webpackBootstrap
2056
2031
  (function webpackUniversalModuleDefinition(root, factory) {
2057
2032
  if(true)
2058
2033
  module.exports = factory();
2059
- else if(typeof define === 'function' && define.amd)
2060
- define([], factory);
2061
- else if(typeof exports === 'object')
2062
- exports["Prescribe"] = factory();
2063
- else
2064
- root["Prescribe"] = factory();
2034
+ else // removed by dead control flow
2035
+ {}
2065
2036
  })(this, function() {
2066
2037
  return /******/ (function(modules) { // webpackBootstrap
2067
2038
  /******/ // The module cache
2068
2039
  /******/ var installedModules = {};
2069
2040
 
2070
2041
  /******/ // The require function
2071
- /******/ function __webpack_require__(moduleId) {
2042
+ /******/ function __nested_webpack_require_26473__(moduleId) {
2072
2043
 
2073
2044
  /******/ // Check if module is in cache
2074
2045
  /******/ if(installedModules[moduleId])
@@ -2082,7 +2053,7 @@ return /******/ (function(modules) { // webpackBootstrap
2082
2053
  /******/ };
2083
2054
 
2084
2055
  /******/ // Execute the module function
2085
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
2056
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_26473__);
2086
2057
 
2087
2058
  /******/ // Flag the module as loaded
2088
2059
  /******/ module.loaded = true;
@@ -2093,25 +2064,25 @@ return /******/ (function(modules) { // webpackBootstrap
2093
2064
 
2094
2065
 
2095
2066
  /******/ // expose the modules object (__webpack_modules__)
2096
- /******/ __webpack_require__.m = modules;
2067
+ /******/ __nested_webpack_require_26473__.m = modules;
2097
2068
 
2098
2069
  /******/ // expose the module cache
2099
- /******/ __webpack_require__.c = installedModules;
2070
+ /******/ __nested_webpack_require_26473__.c = installedModules;
2100
2071
 
2101
2072
  /******/ // __webpack_public_path__
2102
- /******/ __webpack_require__.p = "";
2073
+ /******/ __nested_webpack_require_26473__.p = "";
2103
2074
 
2104
2075
  /******/ // Load entry module and return exports
2105
- /******/ return __webpack_require__(0);
2076
+ /******/ return __nested_webpack_require_26473__(0);
2106
2077
  /******/ })
2107
2078
  /************************************************************************/
2108
2079
  /******/ ([
2109
2080
  /* 0 */
2110
- /***/ function(module, exports, __webpack_require__) {
2081
+ /***/ function(module, exports, __nested_webpack_require_27712__) {
2111
2082
 
2112
2083
  'use strict';
2113
2084
 
2114
- var _HtmlParser = __webpack_require__(1);
2085
+ var _HtmlParser = __nested_webpack_require_27712__(1);
2115
2086
 
2116
2087
  var _HtmlParser2 = _interopRequireDefault(_HtmlParser);
2117
2088
 
@@ -2121,25 +2092,25 @@ return /******/ (function(modules) { // webpackBootstrap
2121
2092
 
2122
2093
  /***/ },
2123
2094
  /* 1 */
2124
- /***/ function(module, exports, __webpack_require__) {
2095
+ /***/ function(module, exports, __nested_webpack_require_28061__) {
2125
2096
 
2126
2097
  'use strict';
2127
2098
 
2128
2099
  exports.__esModule = true;
2129
2100
 
2130
- var _supports = __webpack_require__(2);
2101
+ var _supports = __nested_webpack_require_28061__(2);
2131
2102
 
2132
2103
  var supports = _interopRequireWildcard(_supports);
2133
2104
 
2134
- var _streamReaders = __webpack_require__(3);
2105
+ var _streamReaders = __nested_webpack_require_28061__(3);
2135
2106
 
2136
2107
  var streamReaders = _interopRequireWildcard(_streamReaders);
2137
2108
 
2138
- var _fixedReadTokenFactory = __webpack_require__(6);
2109
+ var _fixedReadTokenFactory = __nested_webpack_require_28061__(6);
2139
2110
 
2140
2111
  var _fixedReadTokenFactory2 = _interopRequireDefault(_fixedReadTokenFactory);
2141
2112
 
2142
- var _utils = __webpack_require__(5);
2113
+ var _utils = __nested_webpack_require_28061__(5);
2143
2114
 
2144
2115
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2145
2116
 
@@ -2406,7 +2377,7 @@ return /******/ (function(modules) { // webpackBootstrap
2406
2377
 
2407
2378
  /***/ },
2408
2379
  /* 3 */
2409
- /***/ function(module, exports, __webpack_require__) {
2380
+ /***/ function(module, exports, __nested_webpack_require_35326__) {
2410
2381
 
2411
2382
  'use strict';
2412
2383
 
@@ -2420,7 +2391,7 @@ return /******/ (function(modules) { // webpackBootstrap
2420
2391
  exports.atomicTag = atomicTag;
2421
2392
  exports.endTag = endTag;
2422
2393
 
2423
- var _tokens = __webpack_require__(4);
2394
+ var _tokens = __nested_webpack_require_35326__(4);
2424
2395
 
2425
2396
  /**
2426
2397
  * Regular Expressions for parsing tags and attributes
@@ -2533,14 +2504,14 @@ return /******/ (function(modules) { // webpackBootstrap
2533
2504
 
2534
2505
  /***/ },
2535
2506
  /* 4 */
2536
- /***/ function(module, exports, __webpack_require__) {
2507
+ /***/ function(module, exports, __nested_webpack_require_39304__) {
2537
2508
 
2538
2509
  'use strict';
2539
2510
 
2540
2511
  exports.__esModule = true;
2541
2512
  exports.EndTagToken = exports.AtomicTagToken = exports.StartTagToken = exports.TagToken = exports.CharsToken = exports.CommentToken = exports.Token = undefined;
2542
2513
 
2543
- var _utils = __webpack_require__(5);
2514
+ var _utils = __nested_webpack_require_39304__(5);
2544
2515
 
2545
2516
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2546
2517
 
@@ -3137,4 +3108,65 @@ return /******/ (function(modules) { // webpackBootstrap
3137
3108
  //# sourceMappingURL=postscribe.js.map
3138
3109
 
3139
3110
  /***/ })
3140
- /******/ ]);
3111
+ /******/ ]);
3112
+ /************************************************************************/
3113
+ /******/ // The module cache
3114
+ /******/ var __webpack_module_cache__ = {};
3115
+ /******/
3116
+ /******/ // The require function
3117
+ /******/ function __webpack_require__(moduleId) {
3118
+ /******/ // Check if module is in cache
3119
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
3120
+ /******/ if (cachedModule !== undefined) {
3121
+ /******/ return cachedModule.exports;
3122
+ /******/ }
3123
+ /******/ // Create a new module (and put it into the cache)
3124
+ /******/ var module = __webpack_module_cache__[moduleId] = {
3125
+ /******/ // no module.id needed
3126
+ /******/ // no module.loaded needed
3127
+ /******/ exports: {}
3128
+ /******/ };
3129
+ /******/
3130
+ /******/ // Execute the module function
3131
+ /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
3132
+ /******/
3133
+ /******/ // Return the exports of the module
3134
+ /******/ return module.exports;
3135
+ /******/ }
3136
+ /******/
3137
+ /************************************************************************/
3138
+ var __webpack_exports__ = {};
3139
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
3140
+ !function() {
3141
+ "use strict";
3142
+
3143
+
3144
+ var _utils = __webpack_require__(1);
3145
+ var _renderingManager = __webpack_require__(3);
3146
+ var _mobileAndAmpRender = __webpack_require__(7);
3147
+ var _environment = __webpack_require__(4);
3148
+ /**
3149
+ * legacy.js
3150
+ * This is deprecated code, publishers should not use one .js creative to handle all different types of creative.
3151
+ * To reduce bytes transfered for each ad, publishers should use specific .js based on hb_format targeting key-value.
3152
+ *
3153
+ * This file is inserted into the prebid creative as a placeholder for the winning prebid creative. It should support the following formats:
3154
+ * - Banner
3155
+ * - AMP
3156
+ * - Mobile
3157
+ * - Outstream Video
3158
+ * - All safeFrame creatives
3159
+ */
3160
+
3161
+ window.ucTag = window.ucTag || {};
3162
+ window.ucTag.renderAd = function (doc, dataObject) {
3163
+ var targetingData = (0, _utils.transformAuctionTargetingData)(dataObject);
3164
+ if ((0, _environment.isMobileApp)(targetingData.env) || (0, _environment.isAmp)(targetingData.uuid, window)) {
3165
+ (0, _mobileAndAmpRender.renderAmpOrMobileAd)(dataObject);
3166
+ } else {
3167
+ (0, _renderingManager.renderBannerOrDisplayAd)(doc, dataObject);
3168
+ }
3169
+ };
3170
+ }();
3171
+ /******/ })()
3172
+ ;