@brndts/brndts-ads 1.14.1 → 1.14.3
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.
- package/dist/index.js +225 -42
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +225 -42
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -49906,18 +49906,18 @@ var browserPerformanceTimeOrigin = function() {
|
|
49906
49906
|
// node_modules/@sentry/core/build/esm/utils-hoist/misc.js
|
49907
49907
|
function uuid4() {
|
49908
49908
|
var gbl = GLOBAL_OBJ;
|
49909
|
-
var
|
49909
|
+
var crypto2 = gbl.crypto || gbl.msCrypto;
|
49910
49910
|
var getRandomByte = function() {
|
49911
49911
|
return Math.random() * 16;
|
49912
49912
|
};
|
49913
49913
|
try {
|
49914
|
-
if (
|
49915
|
-
return
|
49914
|
+
if (crypto2 && crypto2.randomUUID) {
|
49915
|
+
return crypto2.randomUUID().replace(/-/g, "");
|
49916
49916
|
}
|
49917
|
-
if (
|
49917
|
+
if (crypto2 && crypto2.getRandomValues) {
|
49918
49918
|
getRandomByte = function() {
|
49919
49919
|
var typedArray = new Uint8Array(1);
|
49920
|
-
|
49920
|
+
crypto2.getRandomValues(typedArray);
|
49921
49921
|
return typedArray[0];
|
49922
49922
|
};
|
49923
49923
|
}
|
@@ -75485,7 +75485,9 @@ var DailymotionMediaElement = /*#__PURE__*/ function(GenericMediaElement) {
|
|
75485
75485
|
this.context.elements.original = target;
|
75486
75486
|
var _ref = _sliced_to_array(target.src.match(URLMatch) || [], 2), _ = _ref[0], videoId = _ref[1];
|
75487
75487
|
var container = document.createElement("div");
|
75488
|
+
this.rootNode = target;
|
75488
75489
|
container.id = "BRNDTS";
|
75490
|
+
container.dataset.__brndts_k = target.dataset.__brndts_k;
|
75489
75491
|
elements_default.wrap(target, container);
|
75490
75492
|
window.dailymotion.createPlayer(target.id, {
|
75491
75493
|
video: videoId
|
@@ -76574,6 +76576,48 @@ var MediaElementFactory = /*#__PURE__*/ function() {
|
|
76574
76576
|
return null;
|
76575
76577
|
}
|
76576
76578
|
},
|
76579
|
+
{
|
76580
|
+
key: "isElement",
|
76581
|
+
value: function isElement(element) {
|
76582
|
+
switch(element.tagName){
|
76583
|
+
case "DIV":
|
76584
|
+
var hasSrc = _MediaElementFactory.getElementAttribute(element, "src");
|
76585
|
+
if (hasSrc) {
|
76586
|
+
var _hasSrc = _sliced_to_array(hasSrc, 2), el = _hasSrc[0], value2 = _hasSrc[1];
|
76587
|
+
var provider2 = getProviderByUrl(value2);
|
76588
|
+
if (provider2) {
|
76589
|
+
return el;
|
76590
|
+
}
|
76591
|
+
}
|
76592
|
+
var hasBradMaxPID = _MediaElementFactory.getElementAttribute(element, "data-bradmax-player-pid");
|
76593
|
+
if (hasBradMaxPID) {
|
76594
|
+
var _hasBradMaxPID = _sliced_to_array(hasBradMaxPID, 2), el1 = _hasBradMaxPID[0], value21 = _hasBradMaxPID[1];
|
76595
|
+
return el1;
|
76596
|
+
}
|
76597
|
+
var isVideoJS = element.querySelector("video-js");
|
76598
|
+
if (isVideoJS) {
|
76599
|
+
return isVideoJS;
|
76600
|
+
}
|
76601
|
+
return null;
|
76602
|
+
case "IFRAME":
|
76603
|
+
var url2 = element.getAttribute("src");
|
76604
|
+
if (!url2) {
|
76605
|
+
return null;
|
76606
|
+
}
|
76607
|
+
var provider = getProviderByUrl(url2);
|
76608
|
+
if (!provider || provider !== "YOUTUBE" && provider !== "DAILYMOTION") {
|
76609
|
+
return null;
|
76610
|
+
}
|
76611
|
+
case "VIDEO-JS":
|
76612
|
+
return element;
|
76613
|
+
case "AUDIO":
|
76614
|
+
case "VIDEO":
|
76615
|
+
return element;
|
76616
|
+
default:
|
76617
|
+
return null;
|
76618
|
+
}
|
76619
|
+
}
|
76620
|
+
},
|
76577
76621
|
{
|
76578
76622
|
key: "getElements",
|
76579
76623
|
value: function getElements(targets) {
|
@@ -84171,12 +84215,15 @@ var VideoAd = /*#__PURE__*/ function() {
|
|
84171
84215
|
logger: context.logger,
|
84172
84216
|
service: context.service
|
84173
84217
|
};
|
84218
|
+
videoAdContext.elements.original = target.cloneNode(true);
|
84174
84219
|
var media = MediaElementFactory.get(videoAdContext, target);
|
84175
84220
|
if (!media) {
|
84176
84221
|
throw new Error("No media element found!");
|
84177
84222
|
}
|
84223
|
+
if (media.view) {
|
84224
|
+
media.view.brndts_VE = this;
|
84225
|
+
}
|
84178
84226
|
videoAdContext.media = media;
|
84179
|
-
videoAdContext.elements.original = target.cloneNode(true);
|
84180
84227
|
this.recorderFactory = new RecorderFactory(this.context);
|
84181
84228
|
this.videoAdContext = videoAdContext;
|
84182
84229
|
this.presentationFactory = new PresentationModeFactory(this.videoAdContext);
|
@@ -84389,38 +84436,119 @@ var VideoAd = /*#__PURE__*/ function() {
|
|
84389
84436
|
return VideoAd;
|
84390
84437
|
}();
|
84391
84438
|
// src/Ads/VideoAds/VideoAds.ts
|
84439
|
+
function makeKey() {
|
84440
|
+
var _crypto;
|
84441
|
+
if ((_crypto = crypto) === null || _crypto === void 0 ? void 0 : _crypto.getRandomValues) {
|
84442
|
+
var a = new Uint32Array(2);
|
84443
|
+
crypto.getRandomValues(a);
|
84444
|
+
return a[0].toString(36) + a[1].toString(36);
|
84445
|
+
}
|
84446
|
+
return Math.random().toString(36).slice(2) + Date.now().toString(36);
|
84447
|
+
}
|
84448
|
+
function ensureKey(el) {
|
84449
|
+
if (!el.dataset.__brndts_k) {
|
84450
|
+
var key;
|
84451
|
+
if (el.closest("[data-__brndts_k]")) {
|
84452
|
+
var _el_closest;
|
84453
|
+
key = (_el_closest = el.closest("[data-__brndts_k]")) === null || _el_closest === void 0 ? void 0 : _el_closest.dataset.__brndts_k;
|
84454
|
+
}
|
84455
|
+
el.dataset.__brndts_k = key || makeKey();
|
84456
|
+
}
|
84457
|
+
return el.dataset.__brndts_k;
|
84458
|
+
}
|
84392
84459
|
var VideoAds = /*#__PURE__*/ function() {
|
84393
84460
|
"use strict";
|
84394
84461
|
function VideoAds(context) {
|
84395
84462
|
_class_call_check(this, VideoAds);
|
84396
|
-
this.
|
84463
|
+
this.byEl = /* @__PURE__ */ new WeakMap();
|
84464
|
+
// Element -> VideoAd
|
84465
|
+
this.byKey = /* @__PURE__ */ new Map();
|
84466
|
+
// key -> { inst: VideoAd, el: Element }
|
84467
|
+
this.pendingCleanup = /* @__PURE__ */ new Map();
|
84397
84468
|
this.handlePageMutation = this.handlePageMutation.bind(this);
|
84469
|
+
this.attachOrTransfer = this.attachOrTransfer.bind(this);
|
84470
|
+
this.scheduleCleanupIfGone = this.scheduleCleanupIfGone.bind(this);
|
84471
|
+
this.scanAndAttach = functions_default.debounce(this.scanAndAttach.bind(this), 50);
|
84398
84472
|
this.context = context;
|
84399
84473
|
}
|
84400
84474
|
_create_class(VideoAds, [
|
84401
84475
|
{
|
84402
|
-
key: "
|
84403
|
-
value: function
|
84404
|
-
|
84405
|
-
|
84406
|
-
|
84407
|
-
|
84408
|
-
|
84409
|
-
|
84410
|
-
|
84411
|
-
|
84476
|
+
key: "attachOrTransfer",
|
84477
|
+
value: function attachOrTransfer(el) {
|
84478
|
+
if (!_instanceof(el, Element)) {
|
84479
|
+
return;
|
84480
|
+
}
|
84481
|
+
;
|
84482
|
+
var key = ensureKey(el);
|
84483
|
+
var known = this.byKey.get(key);
|
84484
|
+
if (known) {
|
84485
|
+
if (known.el !== el) {
|
84486
|
+
var tid = this.pendingCleanup.get(key);
|
84487
|
+
if (tid) {
|
84488
|
+
clearTimeout(tid);
|
84489
|
+
this.pendingCleanup.delete(key);
|
84412
84490
|
}
|
84491
|
+
var inst2 = known.inst;
|
84492
|
+
this.byEl.delete(known.el);
|
84493
|
+
this.byEl.set(el, inst2);
|
84494
|
+
known.el = el;
|
84495
|
+
this.byKey.set(key, known);
|
84413
84496
|
}
|
84414
|
-
|
84415
|
-
|
84416
|
-
|
84417
|
-
|
84418
|
-
|
84419
|
-
|
84420
|
-
|
84421
|
-
|
84422
|
-
|
84497
|
+
return;
|
84498
|
+
}
|
84499
|
+
var inst = new VideoAd(this.context, el);
|
84500
|
+
this.byEl.set(el, inst);
|
84501
|
+
this.byKey.set(key, {
|
84502
|
+
inst: inst,
|
84503
|
+
el: el
|
84504
|
+
});
|
84505
|
+
inst.start();
|
84506
|
+
}
|
84507
|
+
},
|
84508
|
+
{
|
84509
|
+
// --- cleanup when nodes are actually gone (with a grace period) ---
|
84510
|
+
key: "scheduleCleanupIfGone",
|
84511
|
+
value: function scheduleCleanupIfGone(el) {
|
84512
|
+
var _this = this;
|
84513
|
+
var delayMs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 800;
|
84514
|
+
var _el_dataset;
|
84515
|
+
var key = (_el_dataset = el.dataset) === null || _el_dataset === void 0 ? void 0 : _el_dataset.__brndts_k;
|
84516
|
+
if (!key) {
|
84517
|
+
return;
|
84518
|
+
}
|
84519
|
+
if (!this.byKey.has(key) || this.pendingCleanup.has(key)) {
|
84520
|
+
return;
|
84521
|
+
}
|
84522
|
+
var tid = setTimeout(function() {
|
84523
|
+
var entry = _this.byKey.get(key);
|
84524
|
+
if (entry && !entry.el.isConnected) {
|
84525
|
+
var _entry_inst_destroy, _entry_inst;
|
84526
|
+
(_entry_inst_destroy = (_entry_inst = entry.inst).destroy) === null || _entry_inst_destroy === void 0 ? void 0 : _entry_inst_destroy.call(_entry_inst);
|
84527
|
+
_this.byEl.delete(entry.el);
|
84528
|
+
_this.byKey.delete(key);
|
84423
84529
|
}
|
84530
|
+
_this.pendingCleanup.delete(key);
|
84531
|
+
}, delayMs);
|
84532
|
+
this.pendingCleanup.set(key, tid);
|
84533
|
+
}
|
84534
|
+
},
|
84535
|
+
{
|
84536
|
+
// --- DOM wiring: scan + observer ---
|
84537
|
+
key: "scanAndAttach",
|
84538
|
+
value: function scanAndAttach() {
|
84539
|
+
var _this = this;
|
84540
|
+
var medias = MediaElementFactory.getElements(this.context.selectors.targets);
|
84541
|
+
medias.forEach(function(el) {
|
84542
|
+
return _this.attachOrTransfer(el);
|
84543
|
+
});
|
84544
|
+
}
|
84545
|
+
},
|
84546
|
+
{
|
84547
|
+
// small debounce
|
84548
|
+
key: "handleMedias",
|
84549
|
+
value: function handleMedias() {
|
84550
|
+
try {
|
84551
|
+
this.scanAndAttach();
|
84424
84552
|
} catch (error) {
|
84425
84553
|
if (_instanceof(error, Error)) {
|
84426
84554
|
ErrorHandler.handle(error);
|
@@ -84431,25 +84559,41 @@ var VideoAds = /*#__PURE__*/ function() {
|
|
84431
84559
|
{
|
84432
84560
|
key: "start",
|
84433
84561
|
value: function start() {
|
84562
|
+
var _this = this;
|
84434
84563
|
if (!this.context.supports.api) {
|
84435
84564
|
this.context.logger.error("Setup failed: no support");
|
84436
84565
|
return;
|
84437
84566
|
}
|
84438
|
-
this.
|
84567
|
+
var medias = MediaElementFactory.getElements(this.context.selectors.targets);
|
84568
|
+
medias.forEach(function(el) {
|
84569
|
+
return _this.attachOrTransfer(el);
|
84570
|
+
});
|
84439
84571
|
}
|
84440
84572
|
},
|
84441
84573
|
{
|
84442
84574
|
key: "handlePageMutation",
|
84443
|
-
value: function handlePageMutation() {
|
84444
|
-
},
|
84445
|
-
{
|
84446
|
-
key: "updateSize",
|
84447
|
-
value: function updateSize() {
|
84575
|
+
value: function handlePageMutation(mutations) {
|
84448
84576
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
84449
84577
|
try {
|
84450
|
-
for(var _iterator =
|
84451
|
-
var
|
84452
|
-
|
84578
|
+
for(var _iterator = mutations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
84579
|
+
var rec = _step.value;
|
84580
|
+
rec.removedNodes.forEach(function(n) {
|
84581
|
+
if (n.nodeType === 1) {
|
84582
|
+
var stack = [
|
84583
|
+
n
|
84584
|
+
];
|
84585
|
+
while(stack.length){
|
84586
|
+
var _node_dataset;
|
84587
|
+
var node = stack.pop();
|
84588
|
+
if ((_node_dataset = node.dataset) === null || _node_dataset === void 0 ? void 0 : _node_dataset.__brndts_k) {}
|
84589
|
+
;
|
84590
|
+
for(var c = node.firstElementChild; c; c = c.nextElementSibling){
|
84591
|
+
stack.push(c);
|
84592
|
+
}
|
84593
|
+
;
|
84594
|
+
}
|
84595
|
+
}
|
84596
|
+
});
|
84453
84597
|
}
|
84454
84598
|
} catch (err) {
|
84455
84599
|
_didIteratorError = true;
|
@@ -84465,25 +84609,64 @@ var VideoAds = /*#__PURE__*/ function() {
|
|
84465
84609
|
}
|
84466
84610
|
}
|
84467
84611
|
}
|
84612
|
+
this.scanAndAttach();
|
84613
|
+
}
|
84614
|
+
},
|
84615
|
+
{
|
84616
|
+
key: "updateSize",
|
84617
|
+
value: function updateSize() {
|
84618
|
+
var _this = this;
|
84619
|
+
this.byKey.forEach(function(value2, key) {
|
84620
|
+
var tid = _this.pendingCleanup.get(key);
|
84621
|
+
if (!tid) {
|
84622
|
+
var _value2_inst_updateSize, _value2_inst;
|
84623
|
+
(_value2_inst_updateSize = (_value2_inst = value2.inst).updateSize) === null || _value2_inst_updateSize === void 0 ? void 0 : _value2_inst_updateSize.call(_value2_inst);
|
84624
|
+
}
|
84625
|
+
});
|
84468
84626
|
}
|
84469
84627
|
},
|
84470
84628
|
{
|
84471
84629
|
key: "getVideoAd",
|
84472
84630
|
value: function getVideoAd(index) {
|
84631
|
+
if (this.byKey.size === 0) {
|
84632
|
+
return void 0;
|
84633
|
+
}
|
84473
84634
|
if (index === void 0) {
|
84474
|
-
return this.
|
84635
|
+
return this.byKey.values().next().value.inst;
|
84475
84636
|
}
|
84476
|
-
|
84637
|
+
if (index < 0 || index >= this.byKey.size) {
|
84638
|
+
return void 0;
|
84639
|
+
}
|
84640
|
+
var keys = Array.from(this.byKey.keys());
|
84641
|
+
var key = keys[index];
|
84642
|
+
if (!key) {
|
84643
|
+
return void 0;
|
84644
|
+
}
|
84645
|
+
var entry = this.byKey.get(key);
|
84646
|
+
if (!entry) {
|
84647
|
+
return void 0;
|
84648
|
+
}
|
84649
|
+
return entry.inst;
|
84477
84650
|
}
|
84478
84651
|
},
|
84479
84652
|
{
|
84480
84653
|
key: "destroy",
|
84481
84654
|
value: function destroy() {
|
84655
|
+
var _this = this;
|
84482
84656
|
this.context.logger.log("destroying video ads");
|
84483
|
-
this.
|
84484
|
-
|
84657
|
+
this.byKey.forEach(function(value2, key) {
|
84658
|
+
var _value2_inst_destroy, _value2_inst;
|
84659
|
+
var tid = _this.pendingCleanup.get(key);
|
84660
|
+
if (tid) {
|
84661
|
+
clearTimeout(tid);
|
84662
|
+
_this.pendingCleanup.delete(key);
|
84663
|
+
}
|
84664
|
+
(_value2_inst_destroy = (_value2_inst = value2.inst).destroy) === null || _value2_inst_destroy === void 0 ? void 0 : _value2_inst_destroy.call(_value2_inst);
|
84665
|
+
_this.byEl.delete(value2.el);
|
84666
|
+
_this.byKey.delete(key);
|
84485
84667
|
});
|
84486
|
-
this.
|
84668
|
+
this.pendingCleanup.clear();
|
84669
|
+
this.byEl = /* @__PURE__ */ new WeakMap();
|
84487
84670
|
this.context.logger.log("destroyed video ads");
|
84488
84671
|
}
|
84489
84672
|
}
|
@@ -84504,8 +84687,8 @@ var Ads = /*#__PURE__*/ function() {
|
|
84504
84687
|
_create_class(Ads, [
|
84505
84688
|
{
|
84506
84689
|
key: "handlePageMutation",
|
84507
|
-
value: function handlePageMutation() {
|
84508
|
-
this.videoAds.handlePageMutation();
|
84690
|
+
value: function handlePageMutation(mutations) {
|
84691
|
+
this.videoAds.handlePageMutation(mutations);
|
84509
84692
|
this.staticAds.handlePageMutation();
|
84510
84693
|
}
|
84511
84694
|
},
|