@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.js
CHANGED
@@ -49920,18 +49920,18 @@ var browserPerformanceTimeOrigin = function() {
|
|
49920
49920
|
// node_modules/@sentry/core/build/esm/utils-hoist/misc.js
|
49921
49921
|
function uuid4() {
|
49922
49922
|
var gbl = GLOBAL_OBJ;
|
49923
|
-
var
|
49923
|
+
var crypto2 = gbl.crypto || gbl.msCrypto;
|
49924
49924
|
var getRandomByte = function() {
|
49925
49925
|
return Math.random() * 16;
|
49926
49926
|
};
|
49927
49927
|
try {
|
49928
|
-
if (
|
49929
|
-
return
|
49928
|
+
if (crypto2 && crypto2.randomUUID) {
|
49929
|
+
return crypto2.randomUUID().replace(/-/g, "");
|
49930
49930
|
}
|
49931
|
-
if (
|
49931
|
+
if (crypto2 && crypto2.getRandomValues) {
|
49932
49932
|
getRandomByte = function() {
|
49933
49933
|
var typedArray = new Uint8Array(1);
|
49934
|
-
|
49934
|
+
crypto2.getRandomValues(typedArray);
|
49935
49935
|
return typedArray[0];
|
49936
49936
|
};
|
49937
49937
|
}
|
@@ -75398,7 +75398,9 @@ var DailymotionMediaElement = /*#__PURE__*/ function(GenericMediaElement) {
|
|
75398
75398
|
this.context.elements.original = target;
|
75399
75399
|
var _ref = _sliced_to_array(target.src.match(URLMatch) || [], 2), _ = _ref[0], videoId = _ref[1];
|
75400
75400
|
var container = document.createElement("div");
|
75401
|
+
this.rootNode = target;
|
75401
75402
|
container.id = "BRNDTS";
|
75403
|
+
container.dataset.__brndts_k = target.dataset.__brndts_k;
|
75402
75404
|
elements_default.wrap(target, container);
|
75403
75405
|
window.dailymotion.createPlayer(target.id, {
|
75404
75406
|
video: videoId
|
@@ -76484,6 +76486,48 @@ var MediaElementFactory = /*#__PURE__*/ function() {
|
|
76484
76486
|
return null;
|
76485
76487
|
}
|
76486
76488
|
},
|
76489
|
+
{
|
76490
|
+
key: "isElement",
|
76491
|
+
value: function isElement(element) {
|
76492
|
+
switch(element.tagName){
|
76493
|
+
case "DIV":
|
76494
|
+
var hasSrc = _MediaElementFactory.getElementAttribute(element, "src");
|
76495
|
+
if (hasSrc) {
|
76496
|
+
var _hasSrc = _sliced_to_array(hasSrc, 2), el = _hasSrc[0], value2 = _hasSrc[1];
|
76497
|
+
var provider2 = getProviderByUrl(value2);
|
76498
|
+
if (provider2) {
|
76499
|
+
return el;
|
76500
|
+
}
|
76501
|
+
}
|
76502
|
+
var hasBradMaxPID = _MediaElementFactory.getElementAttribute(element, "data-bradmax-player-pid");
|
76503
|
+
if (hasBradMaxPID) {
|
76504
|
+
var _hasBradMaxPID = _sliced_to_array(hasBradMaxPID, 2), el1 = _hasBradMaxPID[0], value21 = _hasBradMaxPID[1];
|
76505
|
+
return el1;
|
76506
|
+
}
|
76507
|
+
var isVideoJS = element.querySelector("video-js");
|
76508
|
+
if (isVideoJS) {
|
76509
|
+
return isVideoJS;
|
76510
|
+
}
|
76511
|
+
return null;
|
76512
|
+
case "IFRAME":
|
76513
|
+
var url2 = element.getAttribute("src");
|
76514
|
+
if (!url2) {
|
76515
|
+
return null;
|
76516
|
+
}
|
76517
|
+
var provider = getProviderByUrl(url2);
|
76518
|
+
if (!provider || provider !== "YOUTUBE" && provider !== "DAILYMOTION") {
|
76519
|
+
return null;
|
76520
|
+
}
|
76521
|
+
case "VIDEO-JS":
|
76522
|
+
return element;
|
76523
|
+
case "AUDIO":
|
76524
|
+
case "VIDEO":
|
76525
|
+
return element;
|
76526
|
+
default:
|
76527
|
+
return null;
|
76528
|
+
}
|
76529
|
+
}
|
76530
|
+
},
|
76487
76531
|
{
|
76488
76532
|
key: "getElements",
|
76489
76533
|
value: function getElements(targets) {
|
@@ -84032,12 +84076,15 @@ var VideoAd = /*#__PURE__*/ function() {
|
|
84032
84076
|
logger: context.logger,
|
84033
84077
|
service: context.service
|
84034
84078
|
};
|
84079
|
+
videoAdContext.elements.original = target.cloneNode(true);
|
84035
84080
|
var media = MediaElementFactory.get(videoAdContext, target);
|
84036
84081
|
if (!media) {
|
84037
84082
|
throw new Error("No media element found!");
|
84038
84083
|
}
|
84084
|
+
if (media.view) {
|
84085
|
+
media.view.brndts_VE = this;
|
84086
|
+
}
|
84039
84087
|
videoAdContext.media = media;
|
84040
|
-
videoAdContext.elements.original = target.cloneNode(true);
|
84041
84088
|
this.recorderFactory = new RecorderFactory(this.context);
|
84042
84089
|
this.videoAdContext = videoAdContext;
|
84043
84090
|
this.presentationFactory = new PresentationModeFactory(this.videoAdContext);
|
@@ -84250,37 +84297,118 @@ var VideoAd = /*#__PURE__*/ function() {
|
|
84250
84297
|
return VideoAd;
|
84251
84298
|
}();
|
84252
84299
|
// src/Ads/VideoAds/VideoAds.ts
|
84300
|
+
function makeKey() {
|
84301
|
+
var _crypto;
|
84302
|
+
if ((_crypto = crypto) === null || _crypto === void 0 ? void 0 : _crypto.getRandomValues) {
|
84303
|
+
var a = new Uint32Array(2);
|
84304
|
+
crypto.getRandomValues(a);
|
84305
|
+
return a[0].toString(36) + a[1].toString(36);
|
84306
|
+
}
|
84307
|
+
return Math.random().toString(36).slice(2) + Date.now().toString(36);
|
84308
|
+
}
|
84309
|
+
function ensureKey(el) {
|
84310
|
+
if (!el.dataset.__brndts_k) {
|
84311
|
+
var key;
|
84312
|
+
if (el.closest("[data-__brndts_k]")) {
|
84313
|
+
var _el_closest;
|
84314
|
+
key = (_el_closest = el.closest("[data-__brndts_k]")) === null || _el_closest === void 0 ? void 0 : _el_closest.dataset.__brndts_k;
|
84315
|
+
}
|
84316
|
+
el.dataset.__brndts_k = key || makeKey();
|
84317
|
+
}
|
84318
|
+
return el.dataset.__brndts_k;
|
84319
|
+
}
|
84253
84320
|
var VideoAds = /*#__PURE__*/ function() {
|
84254
84321
|
function VideoAds(context) {
|
84255
84322
|
_class_call_check(this, VideoAds);
|
84256
|
-
this.
|
84323
|
+
this.byEl = /* @__PURE__ */ new WeakMap();
|
84324
|
+
// Element -> VideoAd
|
84325
|
+
this.byKey = /* @__PURE__ */ new Map();
|
84326
|
+
// key -> { inst: VideoAd, el: Element }
|
84327
|
+
this.pendingCleanup = /* @__PURE__ */ new Map();
|
84257
84328
|
this.handlePageMutation = this.handlePageMutation.bind(this);
|
84329
|
+
this.attachOrTransfer = this.attachOrTransfer.bind(this);
|
84330
|
+
this.scheduleCleanupIfGone = this.scheduleCleanupIfGone.bind(this);
|
84331
|
+
this.scanAndAttach = functions_default.debounce(this.scanAndAttach.bind(this), 50);
|
84258
84332
|
this.context = context;
|
84259
84333
|
}
|
84260
84334
|
_create_class(VideoAds, [
|
84261
84335
|
{
|
84262
|
-
key: "
|
84263
|
-
value: function
|
84264
|
-
|
84265
|
-
|
84266
|
-
|
84267
|
-
|
84268
|
-
|
84269
|
-
|
84270
|
-
|
84271
|
-
|
84336
|
+
key: "attachOrTransfer",
|
84337
|
+
value: function attachOrTransfer(el) {
|
84338
|
+
if (!_instanceof(el, Element)) {
|
84339
|
+
return;
|
84340
|
+
}
|
84341
|
+
;
|
84342
|
+
var key = ensureKey(el);
|
84343
|
+
var known = this.byKey.get(key);
|
84344
|
+
if (known) {
|
84345
|
+
if (known.el !== el) {
|
84346
|
+
var tid = this.pendingCleanup.get(key);
|
84347
|
+
if (tid) {
|
84348
|
+
clearTimeout(tid);
|
84349
|
+
this.pendingCleanup.delete(key);
|
84272
84350
|
}
|
84351
|
+
var inst2 = known.inst;
|
84352
|
+
this.byEl.delete(known.el);
|
84353
|
+
this.byEl.set(el, inst2);
|
84354
|
+
known.el = el;
|
84355
|
+
this.byKey.set(key, known);
|
84273
84356
|
}
|
84274
|
-
|
84275
|
-
|
84276
|
-
|
84277
|
-
|
84278
|
-
|
84279
|
-
|
84280
|
-
|
84281
|
-
|
84282
|
-
|
84357
|
+
return;
|
84358
|
+
}
|
84359
|
+
var inst = new VideoAd(this.context, el);
|
84360
|
+
this.byEl.set(el, inst);
|
84361
|
+
this.byKey.set(key, {
|
84362
|
+
inst: inst,
|
84363
|
+
el: el
|
84364
|
+
});
|
84365
|
+
inst.start();
|
84366
|
+
}
|
84367
|
+
},
|
84368
|
+
{
|
84369
|
+
// --- cleanup when nodes are actually gone (with a grace period) ---
|
84370
|
+
key: "scheduleCleanupIfGone",
|
84371
|
+
value: function scheduleCleanupIfGone(el) {
|
84372
|
+
var _this = this;
|
84373
|
+
var delayMs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 800;
|
84374
|
+
var _el_dataset;
|
84375
|
+
var key = (_el_dataset = el.dataset) === null || _el_dataset === void 0 ? void 0 : _el_dataset.__brndts_k;
|
84376
|
+
if (!key) {
|
84377
|
+
return;
|
84378
|
+
}
|
84379
|
+
if (!this.byKey.has(key) || this.pendingCleanup.has(key)) {
|
84380
|
+
return;
|
84381
|
+
}
|
84382
|
+
var tid = setTimeout(function() {
|
84383
|
+
var entry = _this.byKey.get(key);
|
84384
|
+
if (entry && !entry.el.isConnected) {
|
84385
|
+
var _entry_inst_destroy, _entry_inst;
|
84386
|
+
(_entry_inst_destroy = (_entry_inst = entry.inst).destroy) === null || _entry_inst_destroy === void 0 ? void 0 : _entry_inst_destroy.call(_entry_inst);
|
84387
|
+
_this.byEl.delete(entry.el);
|
84388
|
+
_this.byKey.delete(key);
|
84283
84389
|
}
|
84390
|
+
_this.pendingCleanup.delete(key);
|
84391
|
+
}, delayMs);
|
84392
|
+
this.pendingCleanup.set(key, tid);
|
84393
|
+
}
|
84394
|
+
},
|
84395
|
+
{
|
84396
|
+
// --- DOM wiring: scan + observer ---
|
84397
|
+
key: "scanAndAttach",
|
84398
|
+
value: function scanAndAttach() {
|
84399
|
+
var _this = this;
|
84400
|
+
var medias = MediaElementFactory.getElements(this.context.selectors.targets);
|
84401
|
+
medias.forEach(function(el) {
|
84402
|
+
return _this.attachOrTransfer(el);
|
84403
|
+
});
|
84404
|
+
}
|
84405
|
+
},
|
84406
|
+
{
|
84407
|
+
// small debounce
|
84408
|
+
key: "handleMedias",
|
84409
|
+
value: function handleMedias() {
|
84410
|
+
try {
|
84411
|
+
this.scanAndAttach();
|
84284
84412
|
} catch (error) {
|
84285
84413
|
if (_instanceof(error, Error)) {
|
84286
84414
|
ErrorHandler.handle(error);
|
@@ -84291,25 +84419,41 @@ var VideoAds = /*#__PURE__*/ function() {
|
|
84291
84419
|
{
|
84292
84420
|
key: "start",
|
84293
84421
|
value: function start() {
|
84422
|
+
var _this = this;
|
84294
84423
|
if (!this.context.supports.api) {
|
84295
84424
|
this.context.logger.error("Setup failed: no support");
|
84296
84425
|
return;
|
84297
84426
|
}
|
84298
|
-
this.
|
84427
|
+
var medias = MediaElementFactory.getElements(this.context.selectors.targets);
|
84428
|
+
medias.forEach(function(el) {
|
84429
|
+
return _this.attachOrTransfer(el);
|
84430
|
+
});
|
84299
84431
|
}
|
84300
84432
|
},
|
84301
84433
|
{
|
84302
84434
|
key: "handlePageMutation",
|
84303
|
-
value: function handlePageMutation() {
|
84304
|
-
},
|
84305
|
-
{
|
84306
|
-
key: "updateSize",
|
84307
|
-
value: function updateSize() {
|
84435
|
+
value: function handlePageMutation(mutations) {
|
84308
84436
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
84309
84437
|
try {
|
84310
|
-
for(var _iterator =
|
84311
|
-
var
|
84312
|
-
|
84438
|
+
for(var _iterator = mutations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
84439
|
+
var rec = _step.value;
|
84440
|
+
rec.removedNodes.forEach(function(n) {
|
84441
|
+
if (n.nodeType === 1) {
|
84442
|
+
var stack = [
|
84443
|
+
n
|
84444
|
+
];
|
84445
|
+
while(stack.length){
|
84446
|
+
var _node_dataset;
|
84447
|
+
var node = stack.pop();
|
84448
|
+
if ((_node_dataset = node.dataset) === null || _node_dataset === void 0 ? void 0 : _node_dataset.__brndts_k) {}
|
84449
|
+
;
|
84450
|
+
for(var c = node.firstElementChild; c; c = c.nextElementSibling){
|
84451
|
+
stack.push(c);
|
84452
|
+
}
|
84453
|
+
;
|
84454
|
+
}
|
84455
|
+
}
|
84456
|
+
});
|
84313
84457
|
}
|
84314
84458
|
} catch (err) {
|
84315
84459
|
_didIteratorError = true;
|
@@ -84325,25 +84469,64 @@ var VideoAds = /*#__PURE__*/ function() {
|
|
84325
84469
|
}
|
84326
84470
|
}
|
84327
84471
|
}
|
84472
|
+
this.scanAndAttach();
|
84473
|
+
}
|
84474
|
+
},
|
84475
|
+
{
|
84476
|
+
key: "updateSize",
|
84477
|
+
value: function updateSize() {
|
84478
|
+
var _this = this;
|
84479
|
+
this.byKey.forEach(function(value2, key) {
|
84480
|
+
var tid = _this.pendingCleanup.get(key);
|
84481
|
+
if (!tid) {
|
84482
|
+
var _value2_inst_updateSize, _value2_inst;
|
84483
|
+
(_value2_inst_updateSize = (_value2_inst = value2.inst).updateSize) === null || _value2_inst_updateSize === void 0 ? void 0 : _value2_inst_updateSize.call(_value2_inst);
|
84484
|
+
}
|
84485
|
+
});
|
84328
84486
|
}
|
84329
84487
|
},
|
84330
84488
|
{
|
84331
84489
|
key: "getVideoAd",
|
84332
84490
|
value: function getVideoAd(index) {
|
84491
|
+
if (this.byKey.size === 0) {
|
84492
|
+
return void 0;
|
84493
|
+
}
|
84333
84494
|
if (index === void 0) {
|
84334
|
-
return this.
|
84495
|
+
return this.byKey.values().next().value.inst;
|
84335
84496
|
}
|
84336
|
-
|
84497
|
+
if (index < 0 || index >= this.byKey.size) {
|
84498
|
+
return void 0;
|
84499
|
+
}
|
84500
|
+
var keys = Array.from(this.byKey.keys());
|
84501
|
+
var key = keys[index];
|
84502
|
+
if (!key) {
|
84503
|
+
return void 0;
|
84504
|
+
}
|
84505
|
+
var entry = this.byKey.get(key);
|
84506
|
+
if (!entry) {
|
84507
|
+
return void 0;
|
84508
|
+
}
|
84509
|
+
return entry.inst;
|
84337
84510
|
}
|
84338
84511
|
},
|
84339
84512
|
{
|
84340
84513
|
key: "destroy",
|
84341
84514
|
value: function destroy() {
|
84515
|
+
var _this = this;
|
84342
84516
|
this.context.logger.log("destroying video ads");
|
84343
|
-
this.
|
84344
|
-
|
84517
|
+
this.byKey.forEach(function(value2, key) {
|
84518
|
+
var _value2_inst_destroy, _value2_inst;
|
84519
|
+
var tid = _this.pendingCleanup.get(key);
|
84520
|
+
if (tid) {
|
84521
|
+
clearTimeout(tid);
|
84522
|
+
_this.pendingCleanup.delete(key);
|
84523
|
+
}
|
84524
|
+
(_value2_inst_destroy = (_value2_inst = value2.inst).destroy) === null || _value2_inst_destroy === void 0 ? void 0 : _value2_inst_destroy.call(_value2_inst);
|
84525
|
+
_this.byEl.delete(value2.el);
|
84526
|
+
_this.byKey.delete(key);
|
84345
84527
|
});
|
84346
|
-
this.
|
84528
|
+
this.pendingCleanup.clear();
|
84529
|
+
this.byEl = /* @__PURE__ */ new WeakMap();
|
84347
84530
|
this.context.logger.log("destroyed video ads");
|
84348
84531
|
}
|
84349
84532
|
}
|
@@ -84363,8 +84546,8 @@ var Ads = /*#__PURE__*/ function() {
|
|
84363
84546
|
_create_class(Ads, [
|
84364
84547
|
{
|
84365
84548
|
key: "handlePageMutation",
|
84366
|
-
value: function handlePageMutation() {
|
84367
|
-
this.videoAds.handlePageMutation();
|
84549
|
+
value: function handlePageMutation(mutations) {
|
84550
|
+
this.videoAds.handlePageMutation(mutations);
|
84368
84551
|
this.staticAds.handlePageMutation();
|
84369
84552
|
}
|
84370
84553
|
},
|