@braze/web-sdk 6.3.0 → 6.4.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.
Files changed (132) hide show
  1. package/index.d.ts +35 -3
  2. package/package.json +1 -1
  3. package/shared-lib/encoding-utils.js +1 -1
  4. package/shared-lib/event-types.js +23 -23
  5. package/shared-lib/guid.js +25 -6
  6. package/shared-lib/indexed-db-adapter.js +7 -7
  7. package/shared-lib/logger.js +2 -2
  8. package/shared-lib/supported-options.js +22 -21
  9. package/src/Banner/display/banner-to-html.js +2 -2
  10. package/src/Banner/display/detect-banner-impressions.js +7 -7
  11. package/src/Banner/index.js +2 -0
  12. package/src/Banner/request-banners-refresh.js +6 -6
  13. package/src/Banner/ui/insert-banner.js +4 -4
  14. package/src/Card/card-manager-factory.js +5 -5
  15. package/src/Card/card-manager.js +4 -4
  16. package/src/Card/display/card-display.js +7 -7
  17. package/src/Card/log-card-dismissal.js +3 -3
  18. package/src/Card/log-content-card-click.js +3 -3
  19. package/src/Card/log-content-card-impressions.js +6 -6
  20. package/src/Card/models/card.js +7 -7
  21. package/src/Card/util/card-factory.js +6 -6
  22. package/src/ContentCards/content-cards-provider-factory.js +14 -10
  23. package/src/ContentCards/content-cards-provider.js +28 -28
  24. package/src/ContentCards/content-cards.js +4 -4
  25. package/src/ContentCards/get-cached-content-cards.js +2 -2
  26. package/src/ContentCards/request-content-cards-refresh.js +2 -2
  27. package/src/ContentCards/subscribe-to-content-cards-updates.js +3 -3
  28. package/src/ContentCards/ui/show-content-cards.js +8 -8
  29. package/src/Core/add-sdk-metadata.js +2 -2
  30. package/src/Core/change-user.js +5 -5
  31. package/src/Core/disable-sdk.js +3 -3
  32. package/src/Core/enable-sdk.js +3 -3
  33. package/src/Core/get-user.js +1 -1
  34. package/src/Core/is-disabled.js +1 -1
  35. package/src/Core/log-custom-event.js +9 -9
  36. package/src/Core/log-purchase.js +7 -7
  37. package/src/Core/open-session.js +11 -11
  38. package/src/Core/set-sdk-authentication-signature.js +2 -2
  39. package/src/Core/wipe-data.js +5 -5
  40. package/src/DUST/dust-provider-factory.js +20 -0
  41. package/src/DUST/dust-provider.js +288 -0
  42. package/src/DUST/index.js +3 -0
  43. package/src/DUST/subscribe-to-dust.js +24 -0
  44. package/src/DUST/types.js +1 -0
  45. package/src/FeatureFlags/feature-flags-provider-factory.js +9 -9
  46. package/src/FeatureFlags/feature-flags-provider.js +38 -38
  47. package/src/FeatureFlags/get-all-feature-flags.js +3 -3
  48. package/src/FeatureFlags/get-feature-flag.js +3 -3
  49. package/src/FeatureFlags/log-feature-flag-impression.js +5 -5
  50. package/src/FeatureFlags/refresh-feature-flags.js +5 -5
  51. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +3 -3
  52. package/src/InAppMessage/defer-in-app-message.js +1 -1
  53. package/src/InAppMessage/display/html-message-to-html.js +5 -5
  54. package/src/InAppMessage/display/in-app-message-to-html.js +22 -22
  55. package/src/InAppMessage/display/modal-utils.js +5 -5
  56. package/src/InAppMessage/get-deferred-in-app-message.js +1 -1
  57. package/src/InAppMessage/in-app-message-factory.js +4 -4
  58. package/src/InAppMessage/in-app-message-manager.js +80 -80
  59. package/src/InAppMessage/log-in-app-message-button-click.js +5 -5
  60. package/src/InAppMessage/log-in-app-message-click.js +5 -5
  61. package/src/InAppMessage/log-in-app-message-html-click.js +5 -5
  62. package/src/InAppMessage/log-in-app-message-impression.js +1 -1
  63. package/src/InAppMessage/models/control-message.js +1 -1
  64. package/src/InAppMessage/models/full-screen-message.js +12 -12
  65. package/src/InAppMessage/models/html-message.js +14 -14
  66. package/src/InAppMessage/models/in-app-message-button.js +4 -4
  67. package/src/InAppMessage/models/in-app-message.js +119 -121
  68. package/src/InAppMessage/models/modal-message.js +12 -12
  69. package/src/InAppMessage/models/slide-up-message.js +21 -21
  70. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  71. package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
  72. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +3 -3
  73. package/src/InAppMessage/ui/remove-all-visible-in-app-messages.js +18 -0
  74. package/src/InAppMessage/ui/show-in-app-message.js +24 -24
  75. package/src/Push/is-push-blocked.js +2 -2
  76. package/src/Push/is-push-permission-granted.js +2 -2
  77. package/src/Push/is-push-supported.js +2 -2
  78. package/src/Push/push-manager-factory.js +8 -8
  79. package/src/Push/push-manager.js +90 -90
  80. package/src/Push/utils/push-utils.js +17 -17
  81. package/src/User/user-manager.js +12 -12
  82. package/src/User/user.js +48 -48
  83. package/src/common/constants.js +1 -0
  84. package/src/common/content-cards-display.js +20 -20
  85. package/src/common/event-logger.js +4 -4
  86. package/src/common/properties-base.js +16 -16
  87. package/src/l10n/l10n-manager-factory.js +2 -2
  88. package/src/l10n/l10n-manager.js +1 -1
  89. package/src/managers/auth-manager.js +29 -29
  90. package/src/managers/braze-instance.js +141 -133
  91. package/src/managers/device-manager.js +18 -18
  92. package/src/managers/network-manager.js +139 -139
  93. package/src/managers/server-config-manager.js +99 -82
  94. package/src/managers/session-manager.js +32 -32
  95. package/src/managers/storage-manager-factory.js +8 -8
  96. package/src/managers/storage-manager.js +76 -74
  97. package/src/managers/subscription-manager.js +10 -10
  98. package/src/models/backend-errors.js +5 -5
  99. package/src/models/braze-event.js +9 -9
  100. package/src/models/device.js +2 -2
  101. package/src/models/identifier.js +12 -12
  102. package/src/models/push-token.js +12 -12
  103. package/src/models/request-result.js +1 -1
  104. package/src/models/server-config.js +38 -34
  105. package/src/request-controller.js +136 -134
  106. package/src/triggers/models/custom-event-data.js +4 -4
  107. package/src/triggers/models/custom-event-property-data.js +5 -5
  108. package/src/triggers/models/filter-set.js +8 -8
  109. package/src/triggers/models/filter.js +30 -30
  110. package/src/triggers/models/in-app-message-click-data.js +1 -1
  111. package/src/triggers/models/purchase-data.js +1 -1
  112. package/src/triggers/models/purchase-property-data.js +2 -2
  113. package/src/triggers/models/push-click-data.js +1 -1
  114. package/src/triggers/models/trigger-condition.js +36 -36
  115. package/src/triggers/models/trigger-events.js +2 -2
  116. package/src/triggers/models/trigger.js +15 -15
  117. package/src/triggers/triggers-provider-factory.js +3 -3
  118. package/src/triggers/triggers-provider.js +25 -25
  119. package/src/ui/js/attach-css.js +3 -3
  120. package/src/ui/js/load-font-awesome.js +2 -2
  121. package/src/util/base-device-parser.js +3 -3
  122. package/src/util/braze-actions.js +3 -3
  123. package/src/util/browser-detector.js +13 -13
  124. package/src/util/client-hints-parser.js +6 -6
  125. package/src/util/component-utils.js +1 -1
  126. package/src/util/dom-utils.js +10 -10
  127. package/src/util/key-codes.js +1 -1
  128. package/src/util/net.js +1 -1
  129. package/src/util/request-header-utils.js +22 -22
  130. package/src/util/user-agent-parser.js +14 -14
  131. package/src/util/validation-utils.js +14 -13
  132. package/src/util/window-utils.js +1 -1
@@ -1,11 +1,11 @@
1
1
  import ai from "./client-hints-parser.js";
2
2
  import gi from "./user-agent-parser.js";
3
- import { Browsers as oi, OperatingSystems as so } from "./device-constants.js";
4
- class di {
3
+ import { Browsers as di, OperatingSystems as so } from "./device-constants.js";
4
+ class Si {
5
5
  constructor() {
6
6
  let t;
7
7
  (t =
8
- navigator.userAgent.toLowerCase().includes(oi.Sg.toLowerCase()) ||
8
+ navigator.userAgent.toLowerCase().includes(di.Sg.toLowerCase()) ||
9
9
  !navigator.userAgentData
10
10
  ? gi
11
11
  : ai),
@@ -14,7 +14,7 @@ class di {
14
14
  (this.browser = this.vg.ef()),
15
15
  (this.version = this.vg.ff()),
16
16
  (this.OS = null),
17
- this.Ja().then((t) => (this.OS = t));
17
+ this.rc().then((t) => (this.OS = t));
18
18
  const i = navigator;
19
19
  (this.language = (
20
20
  i.userLanguage ||
@@ -23,18 +23,18 @@ class di {
23
23
  i.systemLanguage ||
24
24
  ""
25
25
  ).toLowerCase()),
26
- (this.Pa = di.xg(this.userAgent));
26
+ (this.Ja = Si.xg(this.userAgent));
27
27
  }
28
- bE() {
29
- return this.browser === oi.Bg;
28
+ fE() {
29
+ return this.browser === di.Bg;
30
30
  }
31
- Ka() {
31
+ nc() {
32
32
  return this.OS || null;
33
33
  }
34
- Ja() {
34
+ rc() {
35
35
  return this.OS
36
36
  ? Promise.resolve(this.OS)
37
- : this.vg.Ja(di.Og).then((t) => ((this.OS = t), t));
37
+ : this.vg.rc(Si.Og).then((t) => ((this.OS = t), t));
38
38
  }
39
39
  static xg(t) {
40
40
  t = t.toLowerCase();
@@ -63,7 +63,7 @@ class di {
63
63
  return !1;
64
64
  }
65
65
  }
66
- di.Og = [
66
+ Si.Og = [
67
67
  { string: navigator.platform, cf: "Win", identity: so.kg },
68
68
  { string: navigator.platform, cf: "Mac", identity: so.Pg },
69
69
  { string: navigator.platform, cf: "BlackBerry", identity: "BlackBerry" },
@@ -91,5 +91,5 @@ di.Og = [
91
91
  { string: navigator.userAgent, cf: ["Android"], identity: so.Dg },
92
92
  { string: navigator.platform, cf: "Linux", identity: "Linux" },
93
93
  ];
94
- const ro = new di();
95
- export { ro as default, di as BrowserDetector };
94
+ const ro = new Si();
95
+ export { ro as default, Si as BrowserDetector };
@@ -1,5 +1,5 @@
1
1
  import ge from "./base-device-parser.js";
2
- import { Browsers as oi } from "./device-constants.js";
2
+ import { Browsers as di } from "./device-constants.js";
3
3
  export default class ai extends ge {
4
4
  constructor() {
5
5
  if (
@@ -9,7 +9,7 @@ export default class ai extends ge {
9
9
  (this.version = null),
10
10
  this.userAgentData)
11
11
  ) {
12
- const t = this.gc();
12
+ const t = this.Vc();
13
13
  (this.browser = t.browser || "Unknown Browser"),
14
14
  (this.version = t.version || "Unknown Version");
15
15
  }
@@ -21,7 +21,7 @@ export default class ai extends ge {
21
21
  ff() {
22
22
  return this.version;
23
23
  }
24
- Ja(t) {
24
+ rc(t) {
25
25
  if (this.OS) return Promise.resolve(this.OS);
26
26
  const s = (s) => {
27
27
  for (let r = 0; r < t.length; r++) {
@@ -36,12 +36,12 @@ export default class ai extends ge {
36
36
  .then((t) => (t.platform ? s(t.platform) : navigator.platform))
37
37
  .catch(() => navigator.platform);
38
38
  }
39
- gc() {
39
+ Vc() {
40
40
  const t = {},
41
41
  s = this.userAgentData.brands;
42
42
  if (s && s.length)
43
43
  for (const r of s) {
44
- const s = this.vc(oi),
44
+ const s = this.Gc(di),
45
45
  i = r.brand.match(s);
46
46
  if (i && i.length > 0) {
47
47
  (t.browser = i[0]), (t.version = r.version);
@@ -50,7 +50,7 @@ export default class ai extends ge {
50
50
  }
51
51
  return t;
52
52
  }
53
- vc(t) {
53
+ Gc(t) {
54
54
  const s = [];
55
55
  for (const r in t) {
56
56
  const i = r;
@@ -16,7 +16,7 @@ export function createCloseButton(t, o, e, r = "ltr") {
16
16
  n.appendChild(l),
17
17
  l.setAttribute("aria-hidden", "true"),
18
18
  n.addEventListener("keydown", (t) => {
19
- (t.keyCode !== ie.lo && t.keyCode !== ie.Ze) ||
19
+ (t.keyCode !== ie.do && t.keyCode !== ie.lo) ||
20
20
  (e(), t.stopPropagation());
21
21
  }),
22
22
  (n.onclick = (t) => {
@@ -18,15 +18,15 @@ export function _isInView(t, n = !1, e = !1, s = !1) {
18
18
  !s)
19
19
  );
20
20
  }
21
- export const DOMUtils = { Ic: null, Mo: _isInView };
22
- export const DIRECTIONS = { ko: "up", xo: "down", Zt: "left", ae: "right" };
21
+ export const DOMUtils = { Wc: null, Do: _isInView };
22
+ export const DIRECTIONS = { xo: "up", Co: "down", Zt: "left", ae: "right" };
23
23
  export function supportsPassive() {
24
- if (null == DOMUtils.Ic) {
25
- DOMUtils.Ic = !1;
24
+ if (null == DOMUtils.Wc) {
25
+ DOMUtils.Wc = !1;
26
26
  try {
27
27
  const t = Object.defineProperty({}, "passive", {
28
28
  get: () => {
29
- DOMUtils.Ic = !0;
29
+ DOMUtils.Wc = !0;
30
30
  },
31
31
  });
32
32
  window.addEventListener("testPassive", () => {}, t),
@@ -35,16 +35,16 @@ export function supportsPassive() {
35
35
  E.error(si(t));
36
36
  }
37
37
  }
38
- return DOMUtils.Ic;
38
+ return DOMUtils.Wc;
39
39
  }
40
40
  export function addPassiveEventListener(t, n, e = () => {}) {
41
41
  t.addEventListener(n, e, !!supportsPassive() && { passive: !0 });
42
42
  }
43
43
  export function topIsInView(t) {
44
- return DOMUtils.Mo(t, !0, !1, !1);
44
+ return DOMUtils.Do(t, !0, !1, !1);
45
45
  }
46
46
  export function bottomIsInView(t) {
47
- return DOMUtils.Mo(t, !1, !0, !1);
47
+ return DOMUtils.Do(t, !1, !0, !1);
48
48
  }
49
49
  export function clickElement(t) {
50
50
  if (t.onclick) {
@@ -69,9 +69,9 @@ export function detectSwipe(t, n, e) {
69
69
  (i = null))
70
70
  : Math.abs(u) >= 25 &&
71
71
  (((u > 0 &&
72
- n === DIRECTIONS.ko &&
72
+ n === DIRECTIONS.xo &&
73
73
  t.scrollTop === t.scrollHeight - t.offsetHeight) ||
74
- (u < 0 && n === DIRECTIONS.xo && 0 === t.scrollTop)) &&
74
+ (u < 0 && n === DIRECTIONS.Co && 0 === t.scrollTop)) &&
75
75
  e(o),
76
76
  (s = null),
77
77
  (i = null));
@@ -1 +1 @@
1
- export const KeyCodes = { lo: 32, yo: 9, Ze: 13, Oh: 27 };
1
+ export const KeyCodes = { do: 32, yo: 9, lo: 13, Ih: 27 };
package/src/util/net.js CHANGED
@@ -27,7 +27,7 @@ const a = {
27
27
  o = JSON.parse(e.responseText);
28
28
  } catch (o) {
29
29
  const n = {
30
- error: "" === e.responseText ? Xt.vu : Xt.Ru,
30
+ error: "" === e.responseText ? Xt.zu : Xt.Mu,
31
31
  response: e.responseText,
32
32
  };
33
33
  (0, t.W)(n, r);
@@ -2,50 +2,50 @@ import { REQUEST_ATTEMPT_DEFAULT as Ae } from "../common/constants.js";
2
2
  import { STORAGE_KEYS as s } from "../managers/storage-manager.js";
3
3
  const h = {
4
4
  H: {
5
- Tu: "data",
6
- bi: "content_cards/sync",
7
- $e: "feature_flags/sync",
8
- Ir: "template",
5
+ Yi: "data",
6
+ Ci: "content_cards/sync",
7
+ ke: "feature_flags/sync",
8
+ mn: "template",
9
9
  G: "banners/sync",
10
10
  },
11
- Yu: (t) => (null == t ? void 0 : t.lt(s.ct.SE)),
12
- sm: (t) => (null == t ? void 0 : t.lt(s.ct._E)),
13
- nm: (t, e) => {
11
+ vl: (t) => (null == t ? void 0 : t.lt(s.ct.SE)),
12
+ nm: (t) => (null == t ? void 0 : t.lt(s.ct._E)),
13
+ rm: (t, e) => {
14
14
  null == t || t.ft(s.ct.SE, e);
15
15
  },
16
- rm: (t, e) => {
16
+ um: (t, e) => {
17
17
  null == t || t.ft(s.ct._E, e);
18
18
  },
19
- Cu: (t, e) => {
19
+ Gu: (t, e) => {
20
20
  if (!t || !e) return -1;
21
- const s = h.Yu(t);
21
+ const s = h.vl(t);
22
22
  if (null == s) return -1;
23
23
  const n = s[e];
24
24
  return null == n || isNaN(n) ? -1 : n;
25
25
  },
26
- Su: (t, e) => {
26
+ _u: (t, e) => {
27
27
  let s = Ae;
28
28
  if (!t || !e) return s;
29
- const n = h.sm(t);
29
+ const n = h.nm(t);
30
30
  return null == n ? s : ((s = n[e]), null == s || isNaN(s) ? Ae : s);
31
31
  },
32
32
  K: (t, e, s) => {
33
33
  if (!t || !e) return;
34
- let n = h.Yu(t);
35
- null == n && (n = {}), (n[e] = s), h.nm(t, n);
34
+ let n = h.vl(t);
35
+ null == n && (n = {}), (n[e] = s), h.rm(t, n);
36
36
  },
37
- Bu: (t, e, s) => {
37
+ Wu: (t, e, s) => {
38
38
  if (!t || !e) return;
39
- let n = h.sm(t);
40
- null == n && (n = {}), (n[e] = s), h.rm(t, n);
39
+ let n = h.nm(t);
40
+ null == n && (n = {}), (n[e] = s), h.um(t, n);
41
41
  },
42
- Ci: (t, e) => {
43
- t && e && h.Bu(t, e, Ae);
42
+ fi: (t, e) => {
43
+ t && e && h.Wu(t, e, Ae);
44
44
  },
45
- Ku: (t, e) => {
45
+ sl: (t, e) => {
46
46
  if (!t || !e) return;
47
- const s = h.Su(t, e);
48
- h.Bu(t, e, s + 1);
47
+ const s = h._u(t, e);
48
+ h.Wu(t, e, s + 1);
49
49
  },
50
50
  };
51
51
  export default h;
@@ -1,8 +1,8 @@
1
1
  import ge from "./base-device-parser.js";
2
- import { Browsers as oi, OperatingSystems as so } from "./device-constants.js";
2
+ import { Browsers as di, OperatingSystems as so } from "./device-constants.js";
3
3
  export default class gi extends ge {
4
4
  constructor() {
5
- super(), (this.fd = gi.gc(navigator.userAgent || ""));
5
+ super(), (this.fd = gi.Vc(navigator.userAgent || ""));
6
6
  }
7
7
  ef() {
8
8
  return this.fd[0] || "Unknown Browser";
@@ -10,7 +10,7 @@ export default class gi extends ge {
10
10
  ff() {
11
11
  return this.fd[1] || "Unknown Version";
12
12
  }
13
- Ja(r) {
13
+ rc(r) {
14
14
  for (let n = 0; n < r.length; n++) {
15
15
  const e = r[n].string;
16
16
  let i = gi.nf(e, r[n]);
@@ -22,7 +22,7 @@ export default class gi extends ge {
22
22
  }
23
23
  return Promise.resolve(navigator.platform);
24
24
  }
25
- static gc(r) {
25
+ static Vc(r) {
26
26
  let n,
27
27
  e =
28
28
  r.match(
@@ -40,40 +40,40 @@ export default class gi extends ge {
40
40
  if (-1 !== r.indexOf("PhilipsTV")) return ["Philips Smart TV", null];
41
41
  if (r.match(/\b(Roku)\b/)) return ["Roku", null];
42
42
  if (r.match(/\bAFTM\b/)) return ["Amazon Fire Stick", null];
43
- if (e[1] === oi.rO) {
44
- if (r.includes(oi.Sg)) return [oi.Sg, e[2]];
43
+ if (e[1] === di.rO) {
44
+ if (r.includes(di.Sg)) return [di.Sg, e[2]];
45
45
  if (
46
46
  ((n = r.match(/\b(OPR|Edge|EdgA|Edg|UCBrowser)\/(\.?\d+(\.\d+)*)/)),
47
47
  null != n)
48
48
  )
49
49
  return (
50
50
  (n = n.slice(1)),
51
- (n[0] = n[0].replace("OPR", oi.oO)),
52
- (n[0] = n[0].replace("EdgA", oi.eO)),
53
- "Edg" === n[0] && (n[0] = oi.eO),
51
+ (n[0] = n[0].replace("OPR", di.oO)),
52
+ (n[0] = n[0].replace("EdgA", di.eO)),
53
+ "Edg" === n[0] && (n[0] = di.eO),
54
54
  [n[0], n[1]]
55
55
  );
56
56
  }
57
57
  if (
58
- e[1] === oi.Bg &&
58
+ e[1] === di.Bg &&
59
59
  ((n = r.match(/\b(EdgiOS)\/(\.?\d+(\.\d+)*)/)), null != n)
60
60
  )
61
61
  return (
62
- (n = n.slice(1)), (n[0] = n[0].replace("EdgiOS", oi.eO)), [n[0], n[1]]
62
+ (n = n.slice(1)), (n[0] = n[0].replace("EdgiOS", di.eO)), [n[0], n[1]]
63
63
  );
64
64
  if (
65
65
  ((e = e[2] ? [e[1], e[2]] : [null, null]),
66
- e[0] === oi.Bg &&
66
+ e[0] === di.Bg &&
67
67
  null != (n = r.match(/version\/(\.?\d+(\.\d+)*)/i)) &&
68
68
  e.splice(1, 1, n[1]),
69
69
  null != (n = r.match(/\b(UCBrowser)\/(\.?\d+(\.\d+)*)/)) &&
70
70
  e.splice(1, 1, n[2]),
71
- e[0] === oi.oO && null != (n = r.match(/mini\/(\.?\d+(\.\d+)*)/i)))
71
+ e[0] === di.oO && null != (n = r.match(/mini\/(\.?\d+(\.\d+)*)/i)))
72
72
  )
73
73
  return ["Opera Mini", n[1] || ""];
74
74
  if (e[0]) {
75
75
  const r = e[0].toLowerCase();
76
- "crios" === r && (e[0] = oi.rO),
76
+ "crios" === r && (e[0] = di.rO),
77
77
  "tizen" === r && ((e[0] = "Samsung Smart TV"), (e[1] = null)),
78
78
  "samsungbrowser" === r && (e[0] = "Samsung Browser");
79
79
  }
@@ -1,10 +1,10 @@
1
1
  import {
2
- isArray as D,
2
+ isArray as z,
3
3
  isDate as Nt,
4
- isObject as It,
4
+ isObject as yt,
5
5
  keys as C,
6
6
  } from "./code-utils.js";
7
- import { getByteLength as er } from "./string-utils.js";
7
+ import { getByteLength as rr } from "./string-utils.js";
8
8
  import { logger as E } from "../../shared-lib/index.js";
9
9
  import { toValidBackendTimeString as Lt } from "./date-utils.js";
10
10
  import { BRAZE_ACTIONS as oo } from "./braze-actions.js";
@@ -22,7 +22,8 @@ export const CUSTOM_ATTRIBUTE_RESERVED_OPERATORS = [
22
22
  "$google_ad_personalization",
23
23
  "$google_ad_user_data",
24
24
  ];
25
- export const EMAIL_ADDRESS_REGEX = new RegExp(/^.+@.+\..+$/);
25
+ export const EMAIL_ADDRESS_REGEX = /^[^@\s]+@[^@\s]+\.[^@\s]+$/;
26
+ export const EMAIL_ADDRESS_MAX_LENGTH = 256;
26
27
  export const CUSTOM_PROPERTIES_MAX_SIZE_BYTES = 51200;
27
28
  export const CUSTOM_PROPERTIES_MAX_SIZE_STRING = "50KB";
28
29
  export const CUSTOM_ATTRIBUTES_MAX_SIZE_BYTES = 76800;
@@ -57,7 +58,7 @@ export function _validateNestedProperties(t, e, r) {
57
58
  if (n && r > 50)
58
59
  return E.error("Nested attributes cannot be more than 50 levels deep."), !1;
59
60
  const o = n ? r + 1 : -1;
60
- if (D(t) && D(e)) {
61
+ if (z(t) && z(e)) {
61
62
  for (let r = 0; r < t.length && r < e.length; r++)
62
63
  if (
63
64
  (Nt(t[r]) && (e[r] = Lt(t[r])),
@@ -65,7 +66,7 @@ export function _validateNestedProperties(t, e, r) {
65
66
  )
66
67
  return !1;
67
68
  } else {
68
- if (!It(t)) return validatePropertyType(t);
69
+ if (!yt(t)) return validatePropertyType(t);
69
70
  for (const r of C(t)) {
70
71
  const i = t[r];
71
72
  if (n && !validateCustomAttributeKey(r)) return !1;
@@ -81,7 +82,7 @@ export function _validateEventPropertyValue(t, e, r, n, o) {
81
82
  let i;
82
83
  return (
83
84
  (i =
84
- It(t) || D(t)
85
+ yt(t) || z(t)
85
86
  ? _validateNestedProperties(t, e, o ? 1 : -1)
86
87
  : validatePropertyType(t)),
87
88
  i || E.error(`Cannot ${r} because ${n} "${t}" is invalid.`),
@@ -93,7 +94,7 @@ export function validateStandardString(t, e, r, n = !1) {
93
94
  return o || E.error(`Cannot ${e} because ${r} "${t}" is invalid.`), o;
94
95
  }
95
96
  export function validateCustomProperties(t, e, r, n, o) {
96
- if ((null == t && (t = {}), "object" != typeof t || D(t)))
97
+ if ((null == t && (t = {}), "object" != typeof t || z(t)))
97
98
  return (
98
99
  E.error(`${e} requires that ${r} be an object. Ignoring ${o}.`),
99
100
  [!1, null]
@@ -101,7 +102,7 @@ export function validateCustomProperties(t, e, r, n, o) {
101
102
  let i, a;
102
103
  e === Ft ? ((i = 76800), (a = "75KB")) : ((i = 51200), (a = "50KB"));
103
104
  const s = JSON.stringify(t);
104
- if (er(s) > i)
105
+ if (rr(s) > i)
105
106
  return (
106
107
  E.error(
107
108
  `Could not ${n} because ${r} was greater than the max size of ${a}.`,
@@ -161,7 +162,7 @@ export function validateCustomAttributeArrayType(t, e) {
161
162
  return [!1, !1];
162
163
  r = !0;
163
164
  } else {
164
- if (!It(i)) return o(), [!1, !1];
165
+ if (!yt(i)) return o(), [!1, !1];
165
166
  if (r) return o(), [!1, !1];
166
167
  if (
167
168
  !validateCustomProperties(
@@ -178,9 +179,9 @@ export function validateCustomAttributeArrayType(t, e) {
178
179
  return [r, n];
179
180
  }
180
181
  export function isValidEmail(t) {
181
- return (
182
- "string" == typeof t && null != t.toLowerCase().match(EMAIL_ADDRESS_REGEX)
183
- );
182
+ if ("string" != typeof t) return !1;
183
+ const e = t.length;
184
+ return !(0 === e || e > 256) && EMAIL_ADDRESS_REGEX.test(t.toLowerCase());
184
185
  }
185
186
  export function isValidBrazeActionJson(t) {
186
187
  if (!(oo.properties.type in t)) return !1;
@@ -30,5 +30,5 @@ export const WindowUtils = {
30
30
  openUri: _openUri,
31
31
  Uo: _isPhone,
32
32
  $o: _getOrientation,
33
- Ca: _getCurrentUrl,
33
+ Ha: _getCurrentUrl,
34
34
  };