@ninetailed/experience.js 7.3.2 → 7.4.1

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.
Files changed (3) hide show
  1. package/index.cjs +11 -4
  2. package/index.js +11 -4
  3. package/package.json +2 -2
package/index.cjs CHANGED
@@ -428,10 +428,17 @@ class Ninetailed {
428
428
  element
429
429
  } = payload,
430
430
  remaingPayload = __rest(payload, ["element"]);
431
- this.observedElements.set(element, remaingPayload);
432
- this.elementSeenObserver.observe(element, Object.assign({
433
- delay: this.componentViewTrackingThreshold
434
- }, options));
431
+ if (!(element instanceof Element)) {
432
+ const isObject = typeof element === 'object' && element !== null;
433
+ const constructorName = isObject ? element.constructor.name : '';
434
+ const isConstructorNameNotObject = constructorName && constructorName !== 'Object';
435
+ experience_jsShared.logger.warn(`ElementSeenObserver.observeElement was called with an invalid element. Expected an Element but got ${typeof element}${isConstructorNameNotObject ? ` of type ${constructorName}` : ''}. This call will be ignored.`);
436
+ } else {
437
+ this.observedElements.set(element, remaingPayload);
438
+ this.elementSeenObserver.observe(element, Object.assign({
439
+ delay: this.componentViewTrackingThreshold
440
+ }, options));
441
+ }
435
442
  };
436
443
  this.unobserveElement = element => {
437
444
  this.observedElements.delete(element);
package/index.js CHANGED
@@ -421,10 +421,17 @@ class Ninetailed {
421
421
  element
422
422
  } = payload,
423
423
  remaingPayload = __rest(payload, ["element"]);
424
- this.observedElements.set(element, remaingPayload);
425
- this.elementSeenObserver.observe(element, Object.assign({
426
- delay: this.componentViewTrackingThreshold
427
- }, options));
424
+ if (!(element instanceof Element)) {
425
+ const isObject = typeof element === 'object' && element !== null;
426
+ const constructorName = isObject ? element.constructor.name : '';
427
+ const isConstructorNameNotObject = constructorName && constructorName !== 'Object';
428
+ logger.warn(`ElementSeenObserver.observeElement was called with an invalid element. Expected an Element but got ${typeof element}${isConstructorNameNotObject ? ` of type ${constructorName}` : ''}. This call will be ignored.`);
429
+ } else {
430
+ this.observedElements.set(element, remaingPayload);
431
+ this.elementSeenObserver.observe(element, Object.assign({
432
+ delay: this.componentViewTrackingThreshold
433
+ }, options));
434
+ }
428
435
  };
429
436
  this.unobserveElement = element => {
430
437
  this.observedElements.delete(element);
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@ninetailed/experience.js",
3
- "version": "7.3.2",
3
+ "version": "7.4.1",
4
4
  "module": "./index.js",
5
5
  "main": "./index.cjs",
6
6
  "type": "module",
7
7
  "types": "./index.d.ts",
8
8
  "dependencies": {
9
- "@ninetailed/experience.js-shared": "7.3.2",
9
+ "@ninetailed/experience.js-shared": "7.4.1",
10
10
  "analytics": "0.8.1",
11
11
  "zod": "3.21.4"
12
12
  },