@braze/web-sdk 4.8.3 → 4.10.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 (153) hide show
  1. package/index.d.ts +2247 -2071
  2. package/package.json +1 -1
  3. package/shared-lib/braze-shared-lib.js +7 -7
  4. package/shared-lib/encoding-utils.js +4 -4
  5. package/shared-lib/event-types.js +23 -22
  6. package/shared-lib/guid.js +7 -7
  7. package/shared-lib/indexed-db-adapter.js +172 -135
  8. package/shared-lib/logger.js +26 -26
  9. package/shared-lib/supported-options.js +14 -13
  10. package/shared-lib/types.js +1 -0
  11. package/src/Card/card-manager-factory.js +1 -1
  12. package/src/Card/card-manager.js +2 -2
  13. package/src/Card/display/card-display.js +5 -4
  14. package/src/Card/models/banner.js +10 -10
  15. package/src/Card/models/captioned-image.js +7 -7
  16. package/src/Card/models/card.js +37 -36
  17. package/src/Card/models/classic-card.js +7 -7
  18. package/src/Card/models/control-card.js +3 -3
  19. package/src/Card/models/image-only.js +32 -0
  20. package/src/Card/models/index.js +1 -0
  21. package/src/Card/util/card-factory.js +16 -16
  22. package/src/ContentCards/content-cards-provider-factory.js +1 -1
  23. package/src/ContentCards/content-cards-provider.js +102 -102
  24. package/src/ContentCards/get-cached-content-cards.js +1 -1
  25. package/src/ContentCards/request-content-cards-refresh.js +1 -1
  26. package/src/ContentCards/subscribe-to-content-cards-updates.js +4 -4
  27. package/src/ContentCards/ui/show-content-cards.js +15 -12
  28. package/src/Core/add-sdk-metadata.js +2 -2
  29. package/src/Core/braze-sdk-metadata.js +1 -1
  30. package/src/Core/change-user.js +1 -1
  31. package/src/Core/device-properties.js +1 -1
  32. package/src/Core/disable-sdk.js +10 -7
  33. package/src/Core/enable-sdk.js +5 -2
  34. package/src/Core/get-device-id.js +9 -7
  35. package/src/Core/get-user.js +1 -1
  36. package/src/Core/handle-braze-action.js +14 -14
  37. package/src/Core/is-disabled.js +1 -1
  38. package/src/Core/log-custom-event.js +4 -4
  39. package/src/Core/log-purchase.js +9 -9
  40. package/src/Core/open-session.js +10 -10
  41. package/src/FeatureFlags/feature-flag-factory.js +5 -3
  42. package/src/FeatureFlags/feature-flag.js +17 -14
  43. package/src/FeatureFlags/feature-flags-provider-factory.js +1 -1
  44. package/src/FeatureFlags/feature-flags-provider.js +56 -43
  45. package/src/FeatureFlags/get-all-feature-flags.js +2 -2
  46. package/src/FeatureFlags/get-feature-flag.js +2 -2
  47. package/src/FeatureFlags/index.js +1 -0
  48. package/src/FeatureFlags/log-feature-flag-impression.js +23 -0
  49. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +1 -1
  50. package/src/Feed/feed-provider-factory.js +1 -1
  51. package/src/Feed/feed-provider.js +20 -20
  52. package/src/Feed/get-cached-feed.js +1 -1
  53. package/src/Feed/log-feed-displayed.js +1 -1
  54. package/src/Feed/request-feed-refresh.js +1 -1
  55. package/src/Feed/subscribe-to-feed-updates.js +1 -1
  56. package/src/Feed/ui/show-feed.js +13 -10
  57. package/src/InAppMessage/defer-in-app-message.js +13 -0
  58. package/src/InAppMessage/display/get-animation-effect.js +1 -1
  59. package/src/InAppMessage/display/html-message-to-html.js +47 -47
  60. package/src/InAppMessage/display/in-app-message-to-html.js +92 -91
  61. package/src/InAppMessage/display/modal-utils.js +16 -16
  62. package/src/InAppMessage/get-deferred-in-app-message.js +5 -0
  63. package/src/InAppMessage/in-app-message-factory.js +77 -57
  64. package/src/InAppMessage/in-app-message-manager-factory.js +6 -6
  65. package/src/InAppMessage/in-app-message-manager.js +121 -82
  66. package/src/InAppMessage/index.js +2 -0
  67. package/src/InAppMessage/log-in-app-message-button-click.js +17 -9
  68. package/src/InAppMessage/log-in-app-message-click.js +4 -4
  69. package/src/InAppMessage/log-in-app-message-html-click.js +6 -6
  70. package/src/InAppMessage/log-in-app-message-impression.js +3 -3
  71. package/src/InAppMessage/models/full-screen-message.js +65 -29
  72. package/src/InAppMessage/models/html-message.js +32 -13
  73. package/src/InAppMessage/models/in-app-message-button.js +7 -7
  74. package/src/InAppMessage/models/in-app-message.js +203 -134
  75. package/src/InAppMessage/models/modal-message.js +64 -29
  76. package/src/InAppMessage/models/slide-up-message.js +52 -24
  77. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  78. package/src/InAppMessage/subscribe-to-in-app-message.js +2 -2
  79. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +6 -6
  80. package/src/InAppMessage/ui/show-in-app-message.js +49 -47
  81. package/src/InAppMessage/utils/in-app-message-utils.js +1 -1
  82. package/src/Push/is-push-blocked.js +2 -2
  83. package/src/Push/is-push-permission-granted.js +2 -2
  84. package/src/Push/is-push-supported.js +2 -2
  85. package/src/Push/push-manager-factory.js +19 -19
  86. package/src/Push/push-manager.js +131 -131
  87. package/src/Push/request-push-permission.js +2 -2
  88. package/src/Push/unregister-push.js +2 -2
  89. package/src/Push/utils/push-utils.js +12 -10
  90. package/src/User/user-manager.js +4 -4
  91. package/src/User/user.js +63 -62
  92. package/src/common/base-feed.js +1 -1
  93. package/src/common/constants.js +1 -0
  94. package/src/common/event-logger.js +6 -6
  95. package/src/common/feed-display.js +34 -34
  96. package/src/common/translations.js +33 -33
  97. package/src/l10n/l10n-manager-factory.js +8 -8
  98. package/src/l10n/l10n-manager.js +6 -2
  99. package/src/l10n/types.js +1 -0
  100. package/src/managers/auth-manager.js +29 -29
  101. package/src/managers/braze-instance.js +132 -130
  102. package/src/managers/device-manager.js +22 -22
  103. package/src/managers/network-manager.js +103 -98
  104. package/src/managers/server-config-manager.js +23 -23
  105. package/src/managers/session-manager.js +5 -5
  106. package/src/managers/storage-manager-factory.js +9 -9
  107. package/src/managers/storage-manager.js +134 -131
  108. package/src/managers/subscription-manager.js +7 -7
  109. package/src/models/backend-errors.js +6 -6
  110. package/src/models/braze-event.js +11 -11
  111. package/src/models/braze-sdk-metadata.js +1 -1
  112. package/src/models/device.js +2 -2
  113. package/src/models/identifier.js +1 -1
  114. package/src/models/push-token.js +5 -5
  115. package/src/models/server-config.js +7 -7
  116. package/src/request-controller.js +197 -180
  117. package/src/triggers/models/custom-event-data.js +4 -4
  118. package/src/triggers/models/custom-event-property-data.js +7 -7
  119. package/src/triggers/models/filter-set.js +5 -5
  120. package/src/triggers/models/filter.js +65 -61
  121. package/src/triggers/models/in-app-message-click-data.js +9 -9
  122. package/src/triggers/models/purchase-data.js +4 -4
  123. package/src/triggers/models/purchase-property-data.js +6 -6
  124. package/src/triggers/models/push-click-data.js +6 -6
  125. package/src/triggers/models/trigger-condition.js +52 -56
  126. package/src/triggers/models/trigger-events.js +3 -3
  127. package/src/triggers/models/trigger.js +50 -38
  128. package/src/triggers/triggers-provider-factory.js +10 -6
  129. package/src/triggers/triggers-provider.js +204 -186
  130. package/src/triggers/types.js +1 -0
  131. package/src/ui/js/attach-css.js +5 -4
  132. package/src/ui/js/feed-css.js +5 -5
  133. package/src/ui/js/iam-css.js +5 -5
  134. package/src/util/base-device-parser.js +1 -1
  135. package/src/util/braze-actions.js +35 -30
  136. package/src/util/browser-detector.js +30 -31
  137. package/src/util/client-hints-parser.js +28 -22
  138. package/src/util/code-utils.js +22 -21
  139. package/src/util/color-utils.js +19 -13
  140. package/src/util/component-utils.js +4 -4
  141. package/src/util/date-utils.js +6 -5
  142. package/src/util/device-constants.js +10 -10
  143. package/src/util/dom-utils.js +28 -24
  144. package/src/util/error-utils.js +1 -1
  145. package/src/util/key-codes.js +1 -1
  146. package/src/util/net.js +53 -57
  147. package/src/util/request-header-utils.js +34 -11
  148. package/src/util/string-utils.js +14 -14
  149. package/src/util/types.js +1 -0
  150. package/src/util/url-utils.js +1 -4
  151. package/src/util/user-agent-parser.js +39 -39
  152. package/src/util/validation-utils.js +34 -34
  153. package/src/util/window-utils.js +11 -12
@@ -1,5 +1,5 @@
1
- import { isDate as Nt } from "./code-utils.js";
2
- export function convertMsToSeconds(e, n) {
1
+ import { isDate as yt } from "./code-utils.js";
2
+ export function convertMsToSeconds(e, n = !1) {
3
3
  let t = e / 1e3;
4
4
  return n && (t = Math.floor(t)), t;
5
5
  }
@@ -7,11 +7,12 @@ export function convertSecondsToMs(e) {
7
7
  return 1e3 * e;
8
8
  }
9
9
  export function dateFromUnixTimestamp(e) {
10
- const n = parseInt(e);
11
- return null == e || isNaN(n) ? null : new Date(1e3 * n);
10
+ if (null == e) return null;
11
+ const n = parseInt(e.toString());
12
+ return isNaN(n) ? null : new Date(1e3 * n);
12
13
  }
13
14
  export function toValidBackendTimeString(e) {
14
- return null != e && Nt(e) ? e.toISOString().replace(/\.[0-9]{3}Z$/, "") : e;
15
+ return null != e && yt(e) ? e.toISOString().replace(/\.[0-9]{3}Z$/, "") : e;
15
16
  }
16
17
  export function rehydrateDateAfterJsonization(e) {
17
18
  return null == e || "" === e ? null : new Date(e);
@@ -1,14 +1,14 @@
1
1
  export const Browsers = {
2
- rE: "Chrome",
3
- eE: "Edge",
4
- Pg: "Internet Explorer",
5
- EE: "Opera",
6
- kg: "Safari",
7
- oE: "Firefox"
2
+ pE: "Chrome",
3
+ xE: "Edge",
4
+ oc: "Internet Explorer",
5
+ FE: "Opera",
6
+ Bg: "Safari",
7
+ ME: "Firefox",
8
8
  };
9
9
  export const OperatingSystems = {
10
- Lg: "Android",
11
- fe: "iOS",
12
- Fg: "Mac",
13
- Dg: "Windows"
10
+ xg: "Android",
11
+ de: "iOS",
12
+ kg: "Mac",
13
+ Pg: "Windows",
14
14
  };
@@ -1,4 +1,6 @@
1
- export function _isInView(t, n, e, s) {
1
+ import r from "../../shared-lib/braze-shared-lib.js";
2
+ import { getErrorMessage as ei } from "./error-utils.js";
3
+ export function _isInView(t, n = !1, e = !1, s = !1) {
2
4
  if (null == t) return !1;
3
5
  (n = n || !1), (e = e || !1);
4
6
  const i = t.getBoundingClientRect();
@@ -7,17 +9,17 @@ export function _isInView(t, n, e, s) {
7
9
  ((i.top >= 0 &&
8
10
  i.top <= (window.innerHeight || document.documentElement.clientHeight)) ||
9
11
  !n) &&
10
- (i.left >= 0 || !s) &&
11
- ((i.bottom >= 0 &&
12
- i.bottom <=
13
- (window.innerHeight || document.documentElement.clientHeight)) ||
14
- !e) &&
15
- (i.right <= (window.innerWidth || document.documentElement.clientWidth) ||
16
- !s)
12
+ (i.left >= 0 || !s) &&
13
+ ((i.bottom >= 0 &&
14
+ i.bottom <=
15
+ (window.innerHeight || document.documentElement.clientHeight)) ||
16
+ !e) &&
17
+ (i.right <= (window.innerWidth || document.documentElement.clientWidth) ||
18
+ !s)
17
19
  );
18
20
  }
19
- export const DOMUtils = { lc: null, eo: _isInView };
20
- export const DIRECTIONS = { Je: "up", Ke: "down", W: "left", X: "right" };
21
+ export const DOMUtils = { lc: null, no: _isInView };
22
+ export const DIRECTIONS = { Oe: "up", Qe: "down", W: "left", X: "right" };
21
23
  export function supportsPassive() {
22
24
  if (null == DOMUtils.lc) {
23
25
  DOMUtils.lc = !1;
@@ -25,11 +27,13 @@ export function supportsPassive() {
25
27
  const t = Object.defineProperty({}, "passive", {
26
28
  get: () => {
27
29
  DOMUtils.lc = !0;
28
- }
30
+ },
29
31
  });
30
- window.addEventListener("testPassive", null, t),
31
- window.removeEventListener("testPassive", null, t);
32
- } catch (t) {}
32
+ window.addEventListener("testPassive", () => {}, t),
33
+ window.removeEventListener("testPassive", () => {}, t);
34
+ } catch (t) {
35
+ r.j.error(ei(t));
36
+ }
33
37
  }
34
38
  return DOMUtils.lc;
35
39
  }
@@ -37,10 +41,10 @@ export function addPassiveEventListener(t, n, e = () => {}) {
37
41
  t.addEventListener(n, e, !!supportsPassive() && { passive: !0 });
38
42
  }
39
43
  export function topIsInView(t) {
40
- return DOMUtils.eo(t, !0, !1, !1);
44
+ return DOMUtils.no(t, !0, !1, !1);
41
45
  }
42
46
  export function bottomIsInView(t) {
43
- return DOMUtils.eo(t, !1, !0, !1);
47
+ return DOMUtils.no(t, !1, !0, !1);
44
48
  }
45
49
  export function clickElement(t) {
46
50
  if (t.onclick) {
@@ -51,23 +55,23 @@ export function clickElement(t) {
51
55
  export function detectSwipe(t, n, e) {
52
56
  let s = null,
53
57
  i = null;
54
- addPassiveEventListener(t, "touchstart", t => {
58
+ addPassiveEventListener(t, "touchstart", (t) => {
55
59
  (s = t.touches[0].clientX), (i = t.touches[0].clientY);
56
60
  }),
57
- addPassiveEventListener(t, "touchmove", o => {
61
+ addPassiveEventListener(t, "touchmove", (o) => {
58
62
  if (null == s || null == i) return;
59
63
  const l = s - o.touches[0].clientX,
60
- u = i - o.touches[0].clientY;
61
- Math.abs(l) > Math.abs(u) && Math.abs(l) >= 25
64
+ r = i - o.touches[0].clientY;
65
+ Math.abs(l) > Math.abs(r) && Math.abs(l) >= 25
62
66
  ? (((l > 0 && n === DIRECTIONS.W) || (l < 0 && n === DIRECTIONS.X)) &&
63
67
  e(o),
64
68
  (s = null),
65
69
  (i = null))
66
- : Math.abs(u) >= 25 &&
67
- (((u > 0 &&
68
- n === DIRECTIONS.Je &&
70
+ : Math.abs(r) >= 25 &&
71
+ (((r > 0 &&
72
+ n === DIRECTIONS.Oe &&
69
73
  t.scrollTop === t.scrollHeight - t.offsetHeight) ||
70
- (u < 0 && n === DIRECTIONS.Ke && 0 === t.scrollTop)) &&
74
+ (r < 0 && n === DIRECTIONS.Qe && 0 === t.scrollTop)) &&
71
75
  e(o),
72
76
  (s = null),
73
77
  (i = null));
@@ -1,2 +1,2 @@
1
- export const getErrorMessage = r =>
1
+ export const getErrorMessage = (r) =>
2
2
  r instanceof Error ? r.message : String(r);
@@ -1 +1 @@
1
- export const KeyCodes = { yo: 32, oo: 9, Fo: 13, Ih: 27 };
1
+ export const KeyCodes = { Fo: 32, oo: 9, To: 13, _h: 27 };
package/src/util/net.js CHANGED
@@ -1,75 +1,71 @@
1
1
  import r from "../../shared-lib/braze-shared-lib.js";
2
2
  import qt from "../models/backend-errors.js";
3
+ import { getErrorMessage as ei } from "./error-utils.js";
3
4
  const C = {
4
- Ys: t => {
5
+ Xs: (t) => {
5
6
  let e, o;
6
7
  try {
7
- const n = () => {
8
+ const s = () => {
8
9
  r.j.error("This browser does not have any supported ajax options!");
9
10
  };
10
- if (
11
- (window.XMLHttpRequest ? ((e = new XMLHttpRequest()), e || n()) : n(),
12
- null != e)
13
- ) {
14
- const r = () => {
15
- "function" == typeof t.error && t.error(e.status),
16
- "function" == typeof t.ei && t.ei(!1);
17
- };
18
- (e.onload = () => {
19
- let o = !1;
20
- if (4 === e.readyState)
21
- if (
22
- ((o = (e.status >= 200 && e.status < 300) || 304 === e.status), o)
23
- ) {
24
- if ("function" == typeof t.O) {
25
- let o, r;
26
- try {
27
- (o = JSON.parse(e.responseText)),
28
- (r = e.getAllResponseHeaders());
29
- } catch (o) {
30
- const n = {
31
- error: "" === e.responseText ? qt.ga : qt.qa,
32
- response: e.responseText
33
- };
34
- t.O(n, r);
35
- }
36
- o && t.O(o, r);
11
+ let n = !1;
12
+ if ((window.XMLHttpRequest && (n = !0), !n)) return void s();
13
+ e = new XMLHttpRequest();
14
+ const i = () => {
15
+ "function" == typeof t.error && t.error(e.status),
16
+ "function" == typeof t.ei && t.ei(!1);
17
+ };
18
+ (e.onload = () => {
19
+ let o = !1;
20
+ if (4 === e.readyState)
21
+ if (
22
+ ((o = (e.status >= 200 && e.status < 300) || 304 === e.status), o)
23
+ ) {
24
+ if ("function" == typeof t.O) {
25
+ let o, r;
26
+ try {
27
+ (o = JSON.parse(e.responseText)),
28
+ (r = e.getAllResponseHeaders());
29
+ } catch (o) {
30
+ const s = {
31
+ error: "" === e.responseText ? qt.Vh : qt.Zh,
32
+ response: e.responseText,
33
+ };
34
+ (0, t.O)(s, r);
37
35
  }
38
- "function" == typeof t.ei && t.ei(!0);
39
- } else r();
36
+ o && t.O(o, r);
37
+ }
38
+ "function" == typeof t.ei && t.ei(!0);
39
+ } else i();
40
+ }),
41
+ (e.onerror = () => {
42
+ i();
43
+ }),
44
+ (e.ontimeout = () => {
45
+ i();
40
46
  }),
41
- (e.onerror = () => {
42
- r();
43
- }),
44
- (e.ontimeout = () => {
45
- r();
46
- }),
47
- (o = JSON.stringify(t.data)),
48
- e.open("POST", t.url, !0),
49
- e.setRequestHeader("Content-type", "application/json"),
50
- e.setRequestHeader("X-Requested-With", "XMLHttpRequest");
51
- const n = t.headers || [];
52
- for (const t of n) e.setRequestHeader(t[0], t[1]);
53
- e.send(o);
54
- }
47
+ (o = JSON.stringify(t.data)),
48
+ e.open("POST", t.url, !0),
49
+ e.setRequestHeader("Content-type", "application/json"),
50
+ e.setRequestHeader("X-Requested-With", "XMLHttpRequest");
51
+ const f = t.headers || [];
52
+ for (const t of f) e.setRequestHeader(t[0], t[1]);
53
+ e.send(o);
55
54
  } catch (t) {
56
- r.j.error(`Network request error: ${t.message}`);
55
+ r.j.error(`Network request error: ${ei(t)}`);
57
56
  }
58
- }
57
+ },
59
58
  };
60
- export const readResponseHeaders = t => {
61
- let e = {};
62
- const o = t.toString().split("\r\n");
59
+ export const readResponseHeaders = (t) => {
60
+ const e = {},
61
+ o = t.toString().split("\r\n");
63
62
  if (!o) return e;
64
- let r, n;
63
+ let r, s;
65
64
  for (const t of o)
66
65
  t &&
67
- ((r = t
68
- .slice(0, t.indexOf(":"))
69
- .toLowerCase()
70
- .trim()),
71
- (n = t.slice(t.indexOf(":") + 1).trim()),
72
- (e[r] = n));
66
+ ((r = t.slice(0, t.indexOf(":")).toLowerCase().trim()),
67
+ (s = t.slice(t.indexOf(":") + 1).trim()),
68
+ (e[r] = s));
73
69
  return e;
74
70
  };
75
71
  export default C;
@@ -1,23 +1,46 @@
1
+ import { REQUEST_ATTEMPT_DEFAULT as Ae } from "../common/constants.js";
1
2
  import { STORAGE_KEYS as i } from "../managers/storage-manager.js";
2
3
  const T = {
3
- Qs: { Sa: "d", Os: "cc", xi: "ff", Yi: "t" },
4
- eT: e => {
5
- if (e) return e.v(i.k.Ua);
4
+ Os: { Na: "d", Ks: "cc", Si: "ff", Lr: "t" },
5
+ rm: (e) => {
6
+ if (e) return e.v(i.k.EE);
6
7
  },
7
- tT: (e, t) => {
8
- e && e.D(i.k.Ua, t);
8
+ sm: (e) => {
9
+ if (e) return e.v(i.k.lE);
9
10
  },
10
- Xa: (e, t) => {
11
+ nm: (e, t) => {
12
+ e && e.D(i.k.EE, t);
13
+ },
14
+ um: (e, t) => {
15
+ e && e.D(i.k.lE, t);
16
+ },
17
+ La: (e, t) => {
11
18
  if (!e || !t) return -1;
12
- const r = T.eT(e);
19
+ const r = T.rm(e);
13
20
  if (null == r) return -1;
14
21
  const s = r[t];
15
22
  return null == s || isNaN(s) ? -1 : s;
16
23
  },
17
- Xs: (e, t, r) => {
24
+ Wa: (e, t) => {
25
+ let r = Ae;
26
+ if (!e || !t) return r;
27
+ const s = T.sm(e);
28
+ return null == s ? r : ((r = s[t]), null == r || isNaN(r) ? Ae : r);
29
+ },
30
+ Ws: (e, t, r) => {
31
+ if (!e || !t) return;
32
+ let s = T.rm(e);
33
+ null == s && (s = {}), (s[t] = r), T.nm(e, s);
34
+ },
35
+ si: (e, t, r) => {
36
+ if (!e || !t) return;
37
+ let s = T.sm(e);
38
+ null == s && (s = {}), (s[t] = r), T.um(e, s);
39
+ },
40
+ hi: (e, t) => {
18
41
  if (!e || !t) return;
19
- let s = T.eT(e);
20
- null == s && (s = {}), (s[t] = r), T.tT(e, s);
21
- }
42
+ const r = T.Wa(e, t);
43
+ T.si(e, t, r + 1);
44
+ },
22
45
  };
23
46
  export default T;
@@ -1,22 +1,22 @@
1
1
  import r from "../../shared-lib/braze-shared-lib.js";
2
- export function getByteLength(e) {
3
- let t = e.length;
4
- for (let r = e.length - 1; r >= 0; r--) {
5
- const n = e.charCodeAt(r);
6
- n > 127 && n <= 2047 ? t++ : n > 2047 && n <= 65535 && (t += 2),
2
+ export function getByteLength(t) {
3
+ let e = t.length;
4
+ for (let r = t.length - 1; r >= 0; r--) {
5
+ const n = t.charCodeAt(r);
6
+ n > 127 && n <= 2047 ? e++ : n > 2047 && n <= 65535 && (e += 2),
7
7
  n >= 56320 && n <= 57343 && r--;
8
8
  }
9
- return t;
9
+ return e;
10
10
  }
11
- export function decodeBrazeActions(e) {
11
+ export function decodeBrazeActions(t) {
12
12
  try {
13
- e = e.replace(/-/g, "+").replace(/_/g, "/");
14
- let t = window.atob(e),
15
- r = new Uint8Array(t.length);
16
- for (let e = 0; e < t.length; e++) r[e] = t.charCodeAt(e);
17
- let n = new Uint16Array(r.buffer);
13
+ t = t.replace(/-/g, "+").replace(/_/g, "/");
14
+ const e = window.atob(t),
15
+ r = new Uint8Array(e.length);
16
+ for (let t = 0; t < e.length; t++) r[t] = e.charCodeAt(t);
17
+ const n = new Uint16Array(r.buffer);
18
18
  return String.fromCharCode(...n);
19
- } catch (e) {
20
- return r.j.error("Unable to decode Base64: " + e), null;
19
+ } catch (t) {
20
+ return r.j.error("Unable to decode Base64: " + t), null;
21
21
  }
22
22
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,9 +1,6 @@
1
1
  export function parseQueryStringKeyValues(t) {
2
2
  null == t && (t = "");
3
- const r = t
4
- .split("?")
5
- .slice(1)
6
- .join("?"),
3
+ const r = t.split("?").slice(1).join("?"),
7
4
  n = {};
8
5
  if (null != r) {
9
6
  const t = r.split("&");
@@ -1,8 +1,8 @@
1
1
  import ge from "./base-device-parser.js";
2
- import { Browsers as gi, OperatingSystems as W } from "./device-constants.js";
2
+ import { Browsers as oi, OperatingSystems as W } from "./device-constants.js";
3
3
  export default class ai extends ge {
4
4
  constructor() {
5
- super(), (this.rd = ai.ed(navigator.userAgent || ""));
5
+ super(), (this.rd = ai.ic(navigator.userAgent || ""));
6
6
  }
7
7
  tf() {
8
8
  return this.rd[0] || "Unknown Browser";
@@ -10,27 +10,27 @@ export default class ai extends ge {
10
10
  ef() {
11
11
  return this.rd[1] || "Unknown Version";
12
12
  }
13
- Zo(r) {
14
- for (let e = 0; e < r.length; e++) {
15
- let n = r[e].string,
16
- i = ai.rf(n, r[e]);
13
+ Ta(r) {
14
+ for (let n = 0; n < r.length; n++) {
15
+ const e = r[n].string;
16
+ let i = ai.rf(e, r[n]);
17
17
  if (i)
18
18
  return (
19
- i === W.Fg && navigator.maxTouchPoints > 1 && (i = W.fe),
19
+ i === W.kg && navigator.maxTouchPoints > 1 && (i = W.de),
20
20
  Promise.resolve(i)
21
21
  );
22
22
  }
23
23
  return Promise.resolve(navigator.platform);
24
24
  }
25
- static ed(r) {
26
- let e,
27
- n =
25
+ static ic(r) {
26
+ let n,
27
+ e =
28
28
  r.match(
29
- /(samsungbrowser|tizen|roku|konqueror|icab|crios|opera|ucbrowser|chrome|safari|firefox|camino|msie|trident(?=\/))\/?\s*(\.?\d+(\.\d+)*)/i
29
+ /(samsungbrowser|tizen|roku|konqueror|icab|crios|opera|ucbrowser|chrome|safari|firefox|camino|msie|trident(?=\/))\/?\s*(\.?\d+(\.\d+)*)/i,
30
30
  ) || [];
31
- if (/trident/i.test(n[1]))
31
+ if (e[1] && /trident/i.test(e[1]))
32
32
  return (
33
- (e = /\brv[ :]+(\.?\d+(\.\d+)*)/g.exec(r) || []), [gi.Pg, e[1] || ""]
33
+ (n = /\brv[ :]+(\.?\d+(\.\d+)*)/g.exec(r) || []), [oi.oc, n[1] || ""]
34
34
  );
35
35
  if (-1 !== r.indexOf("(Web0S; Linux/SmartTV)"))
36
36
  return ["LG Smart TV", null];
@@ -45,41 +45,41 @@ export default class ai extends ge {
45
45
  if (r.match(/\b(Roku)\b/)) return ["Roku", null];
46
46
  if (r.match(/\bAFTM\b/)) return ["Amazon Fire Stick", null];
47
47
  if (
48
- n[1] === gi.rE &&
49
- ((e = r.match(/\b(OPR|Edge|EdgA|Edg|UCBrowser)\/(\.?\d+(\.\d+)*)/)),
50
- null != e)
48
+ e[1] === oi.pE &&
49
+ ((n = r.match(/\b(OPR|Edge|EdgA|Edg|UCBrowser)\/(\.?\d+(\.\d+)*)/)),
50
+ null != n)
51
51
  )
52
52
  return (
53
- (e = e.slice(1)),
54
- (e[0] = e[0].replace("OPR", gi.EE)),
55
- (e[0] = e[0].replace("EdgA", gi.eE)),
56
- "Edg" === e[0] && (e[0] = gi.eE),
57
- [e[0], e[1]]
53
+ (n = n.slice(1)),
54
+ (n[0] = n[0].replace("OPR", oi.FE)),
55
+ (n[0] = n[0].replace("EdgA", oi.xE)),
56
+ "Edg" === n[0] && (n[0] = oi.xE),
57
+ [n[0], n[1]]
58
58
  );
59
59
  if (
60
- n[1] === gi.kg &&
61
- ((e = r.match(/\b(EdgiOS)\/(\.?\d+(\.\d+)*)/)), null != e)
60
+ e[1] === oi.Bg &&
61
+ ((n = r.match(/\b(EdgiOS)\/(\.?\d+(\.\d+)*)/)), null != n)
62
62
  )
63
63
  return (
64
- (e = e.slice(1)), (e[0] = e[0].replace("EdgiOS", gi.eE)), [e[0], e[1]]
64
+ (n = n.slice(1)), (n[0] = n[0].replace("EdgiOS", oi.xE)), [n[0], n[1]]
65
65
  );
66
66
  if (
67
- ((n = n[2] ? [n[1], n[2]] : [null, null]),
68
- n[0] === gi.kg &&
69
- null != (e = r.match(/version\/(\.?\d+(\.\d+)*)/i)) &&
70
- n.splice(1, 1, e[1]),
71
- null != (e = r.match(/\b(UCBrowser)\/(\.?\d+(\.\d+)*)/)) &&
72
- n.splice(1, 1, e[2]),
73
- n[0] === gi.EE && null != (e = r.match(/mini\/(\.?\d+(\.\d+)*)/i)))
67
+ ((e = e[2] ? [e[1], e[2]] : [null, null]),
68
+ e[0] === oi.Bg &&
69
+ null != (n = r.match(/version\/(\.?\d+(\.\d+)*)/i)) &&
70
+ e.splice(1, 1, n[1]),
71
+ null != (n = r.match(/\b(UCBrowser)\/(\.?\d+(\.\d+)*)/)) &&
72
+ e.splice(1, 1, n[2]),
73
+ e[0] === oi.FE && null != (n = r.match(/mini\/(\.?\d+(\.\d+)*)/i)))
74
74
  )
75
- return ["Opera Mini", e[1] || ""];
76
- if (n[0]) {
77
- const r = n[0].toLowerCase();
78
- "msie" === r && (n[0] = gi.Pg),
79
- "crios" === r && (n[0] = gi.rE),
80
- "tizen" === r && ((n[0] = "Samsung Smart TV"), (n[1] = null)),
81
- "samsungbrowser" === r && (n[0] = "Samsung Browser");
75
+ return ["Opera Mini", n[1] || ""];
76
+ if (e[0]) {
77
+ const r = e[0].toLowerCase();
78
+ "msie" === r && (e[0] = oi.oc),
79
+ "crios" === r && (e[0] = oi.pE),
80
+ "tizen" === r && ((e[0] = "Samsung Smart TV"), (e[1] = null)),
81
+ "samsungbrowser" === r && (e[0] = "Samsung Browser");
82
82
  }
83
- return n;
83
+ return e;
84
84
  }
85
85
  }