@braze/web-sdk 5.6.1 → 5.8.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 (137) hide show
  1. package/README.md +1 -1
  2. package/index.d.ts +15 -5
  3. package/package.json +1 -1
  4. package/shared-lib/encoding-utils.js +1 -1
  5. package/shared-lib/event-types.js +23 -23
  6. package/shared-lib/indexed-db-adapter.js +20 -20
  7. package/shared-lib/logger.js +2 -2
  8. package/shared-lib/supported-options.js +17 -17
  9. package/src/Banner/banner-provider.js +53 -50
  10. package/src/Banner/banner.js +1 -1
  11. package/src/Banner/get-all-banners.js +3 -4
  12. package/src/Banner/get-banner.js +11 -11
  13. package/src/Banner/log-banner-click.js +1 -1
  14. package/src/Banner/log-banner-impressions.js +4 -4
  15. package/src/Banner/request-banners-refresh.js +21 -13
  16. package/src/Banner/subscribe-to-banners-updates.js +14 -13
  17. package/src/Banner/ui/insert-banner.js +11 -9
  18. package/src/Card/card-manager.js +10 -10
  19. package/src/Card/log-card-impressions.js +2 -2
  20. package/src/Card/models/captioned-image.js +1 -1
  21. package/src/Card/models/card.js +3 -3
  22. package/src/Card/models/classic-card.js +1 -1
  23. package/src/Card/models/control-card.js +1 -1
  24. package/src/Card/models/image-only.js +1 -1
  25. package/src/ContentCards/content-cards-provider-factory.js +1 -1
  26. package/src/ContentCards/content-cards-provider.js +139 -180
  27. package/src/ContentCards/content-cards.js +3 -3
  28. package/src/ContentCards/get-cached-content-cards.js +1 -1
  29. package/src/ContentCards/request-content-cards-refresh.js +1 -1
  30. package/src/ContentCards/subscribe-to-content-cards-updates.js +10 -10
  31. package/src/ContentCards/ui/show-content-cards.js +8 -8
  32. package/src/Core/add-sdk-metadata.js +2 -2
  33. package/src/Core/change-user.js +3 -3
  34. package/src/Core/disable-sdk.js +7 -7
  35. package/src/Core/enable-sdk.js +5 -5
  36. package/src/Core/get-device-id.js +2 -2
  37. package/src/Core/get-user.js +1 -1
  38. package/src/Core/is-disabled.js +1 -1
  39. package/src/Core/log-custom-event.js +3 -3
  40. package/src/Core/log-purchase.js +1 -1
  41. package/src/Core/open-session.js +9 -9
  42. package/src/Core/wipe-data.js +5 -5
  43. package/src/FeatureFlags/feature-flag-factory.js +4 -4
  44. package/src/FeatureFlags/feature-flag.js +18 -18
  45. package/src/FeatureFlags/feature-flags-provider.js +81 -78
  46. package/src/FeatureFlags/get-all-feature-flags.js +6 -7
  47. package/src/FeatureFlags/get-feature-flag.js +5 -6
  48. package/src/FeatureFlags/log-feature-flag-impression.js +4 -4
  49. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +2 -2
  50. package/src/Feed/feed-provider.js +34 -34
  51. package/src/Feed/feed.js +2 -2
  52. package/src/Feed/get-cached-feed.js +1 -1
  53. package/src/Feed/request-feed-refresh.js +1 -1
  54. package/src/Feed/subscribe-to-feed-updates.js +1 -1
  55. package/src/Feed/ui/show-feed.js +5 -5
  56. package/src/InAppMessage/defer-in-app-message.js +1 -1
  57. package/src/InAppMessage/display/html-message-to-html.js +10 -10
  58. package/src/InAppMessage/display/in-app-message-to-html.js +21 -21
  59. package/src/InAppMessage/display/modal-utils.js +6 -6
  60. package/src/InAppMessage/in-app-message-factory.js +4 -4
  61. package/src/InAppMessage/in-app-message-manager-factory.js +1 -1
  62. package/src/InAppMessage/in-app-message-manager.js +115 -91
  63. package/src/InAppMessage/log-in-app-message-button-click.js +2 -2
  64. package/src/InAppMessage/log-in-app-message-click.js +3 -3
  65. package/src/InAppMessage/log-in-app-message-html-click.js +4 -4
  66. package/src/InAppMessage/log-in-app-message-impression.js +2 -2
  67. package/src/InAppMessage/models/control-message.js +1 -1
  68. package/src/InAppMessage/models/full-screen-message.js +5 -5
  69. package/src/InAppMessage/models/html-message.js +10 -10
  70. package/src/InAppMessage/models/in-app-message-button.js +5 -5
  71. package/src/InAppMessage/models/in-app-message.js +42 -42
  72. package/src/InAppMessage/models/modal-message.js +5 -5
  73. package/src/InAppMessage/models/slide-up-message.js +8 -8
  74. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  75. package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
  76. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +3 -3
  77. package/src/InAppMessage/ui/show-in-app-message.js +24 -24
  78. package/src/Push/is-push-blocked.js +2 -2
  79. package/src/Push/is-push-permission-granted.js +2 -2
  80. package/src/Push/is-push-supported.js +2 -2
  81. package/src/Push/push-manager-factory.js +8 -8
  82. package/src/Push/push-manager.js +90 -90
  83. package/src/Push/utils/push-utils.js +12 -12
  84. package/src/User/user-manager.js +12 -12
  85. package/src/User/user.js +48 -36
  86. package/src/common/base-feed.js +3 -3
  87. package/src/common/constants.js +1 -1
  88. package/src/common/event-logger.js +4 -4
  89. package/src/common/feed-display.js +14 -14
  90. package/src/l10n/l10n-manager-factory.js +2 -2
  91. package/src/l10n/l10n-manager.js +1 -1
  92. package/src/managers/auth-manager.js +10 -10
  93. package/src/managers/braze-instance.js +128 -128
  94. package/src/managers/device-manager.js +18 -18
  95. package/src/managers/network-manager.js +184 -147
  96. package/src/managers/server-config-manager.js +63 -63
  97. package/src/managers/session-manager.js +27 -27
  98. package/src/managers/storage-manager-factory.js +10 -10
  99. package/src/managers/storage-manager.js +146 -146
  100. package/src/managers/subscription-manager.js +8 -8
  101. package/src/managers/utils.js +1 -1
  102. package/src/models/backend-errors.js +4 -4
  103. package/src/models/braze-event.js +8 -8
  104. package/src/models/device.js +2 -2
  105. package/src/models/identifier.js +12 -12
  106. package/src/models/push-token.js +8 -8
  107. package/src/models/server-config.js +31 -31
  108. package/src/request-controller.js +163 -151
  109. package/src/triggers/models/custom-event-data.js +5 -5
  110. package/src/triggers/models/custom-event-property-data.js +6 -6
  111. package/src/triggers/models/filter-set.js +8 -8
  112. package/src/triggers/models/filter.js +16 -16
  113. package/src/triggers/models/in-app-message-click-data.js +2 -2
  114. package/src/triggers/models/purchase-data.js +2 -2
  115. package/src/triggers/models/purchase-property-data.js +4 -4
  116. package/src/triggers/models/push-click-data.js +2 -2
  117. package/src/triggers/models/trigger-condition.js +37 -37
  118. package/src/triggers/models/trigger-events.js +2 -2
  119. package/src/triggers/models/trigger.js +11 -11
  120. package/src/triggers/triggers-provider-factory.js +3 -3
  121. package/src/triggers/triggers-provider.js +39 -39
  122. package/src/ui/js/attach-css.js +3 -3
  123. package/src/ui/js/iam-css.js +1 -1
  124. package/src/ui/js/load-font-awesome.js +2 -2
  125. package/src/util/base-device-parser.js +3 -3
  126. package/src/util/braze-actions.js +4 -4
  127. package/src/util/browser-detector.js +6 -6
  128. package/src/util/client-hints-parser.js +1 -1
  129. package/src/util/component-utils.js +2 -2
  130. package/src/util/dom-utils.js +6 -6
  131. package/src/util/html-display-utils.js +1 -0
  132. package/src/util/key-codes.js +1 -1
  133. package/src/util/net.js +22 -23
  134. package/src/util/request-header-utils.js +25 -22
  135. package/src/util/user-agent-parser.js +1 -1
  136. package/src/util/validation-utils.js +17 -17
  137. package/src/util/window-utils.js +2 -2
package/src/util/net.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { logger as N } from "../../shared-lib/index.js";
2
- import Xt from "../models/backend-errors.js";
2
+ import qt from "../models/backend-errors.js";
3
3
  import { getErrorMessage as si } from "./error-utils.js";
4
4
  const l = {
5
5
  Y: (t) => {
@@ -11,35 +11,34 @@ const l = {
11
11
  let n = !1;
12
12
  if ((window.XMLHttpRequest && (n = !0), !n)) return void r();
13
13
  e = new XMLHttpRequest();
14
- const s = () => {
14
+ const s = (o) => {
15
15
  "function" == typeof t.error && t.error(e.status),
16
- "function" == typeof t.os && t.os(!1);
16
+ "function" == typeof t.rs && t.rs(!1, o);
17
17
  };
18
18
  (e.onload = () => {
19
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.ss) {
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 ? Xt.Tu : Xt.ku,
32
- response: e.responseText,
33
- };
34
- (0, t.ss)(n, r);
35
- }
36
- o && t.ss(o, r);
20
+ if (4 !== e.readyState) return;
21
+ o = (e.status >= 200 && e.status < 300) || 304 === e.status;
22
+ const r = e.getAllResponseHeaders();
23
+ if (o) {
24
+ if ("function" == typeof t.ss) {
25
+ let o;
26
+ try {
27
+ o = JSON.parse(e.responseText);
28
+ } catch (o) {
29
+ const n = {
30
+ error: "" === e.responseText ? qt.Au : qt.ku,
31
+ response: e.responseText,
32
+ };
33
+ (0, t.ss)(n, r);
37
34
  }
38
- "function" == typeof t.os && t.os(!0);
39
- } else s();
35
+ o && t.ss(o, r);
36
+ }
37
+ "function" == typeof t.rs && t.rs(!0, r);
38
+ } else s(r);
40
39
  }),
41
40
  (e.onerror = () => {
42
- s();
41
+ s(e.getAllResponseHeaders());
43
42
  }),
44
43
  (e.ontimeout = () => {
45
44
  s();
@@ -2,47 +2,50 @@ import { REQUEST_ATTEMPT_DEFAULT as Ae } from "../common/constants.js";
2
2
  import { STORAGE_KEYS as t } from "../managers/storage-manager.js";
3
3
  const h = {
4
4
  O: {
5
- Xu: "data",
6
- Pi: "content_cards/sync",
7
- De: "feature_flags/sync",
8
- sn: "template",
5
+ Su: "data",
6
+ Ai: "content_cards/sync",
7
+ _e: "feature_flags/sync",
8
+ Hr: "template",
9
9
  K: "banners/sync",
10
10
  },
11
- el: (e) => (null == e ? void 0 : e.ps(t.bs.EE)),
12
- Ac: (e) => (null == e ? void 0 : e.ps(t.bs.lE)),
13
- Rc: (e, s) => {
14
- null == e || e.js(t.bs.EE, s);
11
+ tl: (e) => (null == e ? void 0 : e.vs(t.gs.lE)),
12
+ sm: (e) => (null == e ? void 0 : e.vs(t.gs.SE)),
13
+ nm: (e, s) => {
14
+ null == e || e.Bs(t.gs.lE, s);
15
15
  },
16
- qc: (e, s) => {
17
- null == e || e.js(t.bs.lE, s);
16
+ rm: (e, s) => {
17
+ null == e || e.Bs(t.gs.SE, s);
18
18
  },
19
- Eu: (t, e) => {
19
+ Mu: (t, e) => {
20
20
  if (!t || !e) return -1;
21
- const s = h.el(t);
21
+ const s = h.tl(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
- Fu: (t, e) => {
26
+ Xu: (t, e) => {
27
27
  let s = Ae;
28
28
  if (!t || !e) return s;
29
- const n = h.Ac(t);
29
+ const n = h.sm(t);
30
30
  return null == n ? s : ((s = n[e]), null == s || isNaN(s) ? Ae : s);
31
31
  },
32
32
  W: (t, e, s) => {
33
33
  if (!t || !e) return;
34
- let n = h.el(t);
35
- null == n && (n = {}), (n[e] = s), h.Rc(t, n);
34
+ let n = h.tl(t);
35
+ null == n && (n = {}), (n[e] = s), h.nm(t, n);
36
36
  },
37
- ns: (t, e, s) => {
37
+ $u: (t, e, s) => {
38
38
  if (!t || !e) return;
39
- let n = h.Ac(t);
40
- null == n && (n = {}), (n[e] = s), h.qc(t, n);
39
+ let n = h.sm(t);
40
+ null == n && (n = {}), (n[e] = s), h.rm(t, n);
41
41
  },
42
- hs: (t, e) => {
42
+ zi: (t, e) => {
43
+ t && e && h.$u(t, e, Ae);
44
+ },
45
+ Hu: (t, e) => {
43
46
  if (!t || !e) return;
44
- const s = h.Fu(t, e);
45
- h.ns(t, e, s + 1);
47
+ const s = h.Xu(t, e);
48
+ h.$u(t, e, s + 1);
46
49
  },
47
50
  };
48
51
  export default h;
@@ -10,7 +10,7 @@ export default class gi extends Oe {
10
10
  ff() {
11
11
  return this.fd[1] || "Unknown Version";
12
12
  }
13
- Ja(r) {
13
+ Xa(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]);
@@ -1,14 +1,14 @@
1
1
  import {
2
- isArray as w,
2
+ isArray as z,
3
3
  isDate as Nt,
4
- isObject as Ct,
4
+ isObject as yt,
5
5
  keys as y,
6
6
  } from "./code-utils.js";
7
7
  import { getByteLength as er } from "./string-utils.js";
8
8
  import { logger as N } from "../../shared-lib/index.js";
9
- import { toValidBackendTimeString as Bt } from "./date-utils.js";
9
+ import { toValidBackendTimeString as Ft } from "./date-utils.js";
10
10
  import { BRAZE_ACTIONS as oo } from "./braze-actions.js";
11
- import { SET_CUSTOM_USER_ATTRIBUTE_STRING as $t } from "../common/constants.js";
11
+ import { SET_CUSTOM_USER_ATTRIBUTE_STRING as Dt } from "../common/constants.js";
12
12
  export const CUSTOM_DATA_REGEX = /^[^\x00-\x1F\x22]+$/;
13
13
  export const CUSTOM_ATTRIBUTE_SPECIAL_CHARS_REGEX = /[$.]/;
14
14
  export const CUSTOM_ATTRIBUTE_RESERVED_OPERATORS = [
@@ -57,20 +57,20 @@ export function _validateNestedProperties(t, e, r) {
57
57
  if (n && r > 50)
58
58
  return N.error("Nested attributes cannot be more than 50 levels deep."), !1;
59
59
  const o = n ? r + 1 : -1;
60
- if (w(t) && w(e)) {
60
+ if (z(t) && z(e)) {
61
61
  for (let r = 0; r < t.length && r < e.length; r++)
62
62
  if (
63
- (Nt(t[r]) && (e[r] = Bt(t[r])),
63
+ (Nt(t[r]) && (e[r] = Ft(t[r])),
64
64
  !_validateNestedProperties(t[r], e[r], o))
65
65
  )
66
66
  return !1;
67
67
  } else {
68
- if (!Ct(t)) return validatePropertyType(t);
68
+ if (!yt(t)) return validatePropertyType(t);
69
69
  for (const r of y(t)) {
70
70
  const i = t[r];
71
71
  if (n && !validateCustomAttributeKey(r)) return !1;
72
72
  if (Nt(i)) {
73
- e[r] = Bt(i);
73
+ e[r] = Ft(i);
74
74
  }
75
75
  if (!_validateNestedProperties(i, e[r], o)) return !1;
76
76
  }
@@ -81,7 +81,7 @@ export function _validateEventPropertyValue(t, e, r, n, o) {
81
81
  let i;
82
82
  return (
83
83
  (i =
84
- Ct(t) || w(t)
84
+ yt(t) || z(t)
85
85
  ? _validateNestedProperties(t, e, o ? 1 : -1)
86
86
  : validatePropertyType(t)),
87
87
  i || N.error(`Cannot ${r} because ${n} "${t}" is invalid.`),
@@ -93,13 +93,13 @@ export function validateStandardString(t, e, r, n = !1) {
93
93
  return o || N.error(`Cannot ${e} because ${r} "${t}" is invalid.`), o;
94
94
  }
95
95
  export function validateCustomProperties(t, e, r, n, o) {
96
- if ((null == t && (t = {}), "object" != typeof t || w(t)))
96
+ if ((null == t && (t = {}), "object" != typeof t || z(t)))
97
97
  return (
98
98
  N.error(`${e} requires that ${r} be an object. Ignoring ${o}.`),
99
99
  [!1, null]
100
100
  );
101
101
  let i, a;
102
- e === $t ? ((i = 76800), (a = "75KB")) : ((i = 51200), (a = "50KB"));
102
+ e === Dt ? ((i = 76800), (a = "75KB")) : ((i = 51200), (a = "50KB"));
103
103
  const s = JSON.stringify(t);
104
104
  if (er(s) > i)
105
105
  return (
@@ -118,22 +118,22 @@ export function validateCustomProperties(t, e, r, n, o) {
118
118
  );
119
119
  }
120
120
  for (const r in t) {
121
- if (e === $t && !validateCustomAttributeKey(r)) return [!1, null];
121
+ if (e === Dt && !validateCustomAttributeKey(r)) return [!1, null];
122
122
  if (!validateCustomString(r, n, `the ${o} property name`))
123
123
  return [!1, null];
124
124
  const i = t[r];
125
- if (e !== $t && null == i) {
125
+ if (e !== Dt && null == i) {
126
126
  delete t[r], delete u[r];
127
127
  continue;
128
128
  }
129
- Nt(i) && (u[r] = Bt(i));
129
+ Nt(i) && (u[r] = Ft(i));
130
130
  if (
131
131
  !_validateEventPropertyValue(
132
132
  i,
133
133
  u[r],
134
134
  n,
135
135
  `the ${o} property "${r}"`,
136
- e === $t,
136
+ e === Dt,
137
137
  )
138
138
  )
139
139
  return [!1, null];
@@ -161,12 +161,12 @@ export function validateCustomAttributeArrayType(t, e) {
161
161
  return [!1, !1];
162
162
  r = !0;
163
163
  } else {
164
- if (!Ct(i)) return o(), [!1, !1];
164
+ if (!yt(i)) return o(), [!1, !1];
165
165
  if (r) return o(), [!1, !1];
166
166
  if (
167
167
  !validateCustomProperties(
168
168
  i,
169
- $t,
169
+ Dt,
170
170
  "attribute value",
171
171
  `set custom user attribute "${t}"`,
172
172
  "custom user attribute",
@@ -29,6 +29,6 @@ export function _getCurrentUrl() {
29
29
  export const WindowUtils = {
30
30
  openUri: _openUri,
31
31
  Uo: _isPhone,
32
- $o: _getOrientation,
33
- Ra: _getCurrentUrl,
32
+ Jo: _getOrientation,
33
+ Va: _getCurrentUrl,
34
34
  };