@braze/web-sdk 5.0.1 → 5.1.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 (158) hide show
  1. package/README.md +1 -1
  2. package/index.d.ts +10 -5
  3. package/package.json +1 -1
  4. package/shared-lib/encoding-utils.js +3 -3
  5. package/shared-lib/event-types.js +29 -29
  6. package/shared-lib/guid.js +3 -3
  7. package/shared-lib/index.js +6 -0
  8. package/shared-lib/indexed-db-adapter.js +70 -70
  9. package/shared-lib/logger.js +18 -18
  10. package/shared-lib/supported-options.js +21 -21
  11. package/src/Card/card-manager.js +43 -45
  12. package/src/Card/display/card-display.js +60 -60
  13. package/src/Card/log-card-click.js +4 -4
  14. package/src/Card/log-card-dismissal.js +2 -3
  15. package/src/Card/log-card-impressions.js +7 -7
  16. package/src/Card/models/captioned-image.js +21 -21
  17. package/src/Card/models/card.js +73 -73
  18. package/src/Card/models/classic-card.js +21 -21
  19. package/src/Card/models/control-card.js +11 -11
  20. package/src/Card/models/image-only.js +19 -19
  21. package/src/Card/util/card-factory.js +68 -68
  22. package/src/ContentCards/content-cards-provider-factory.js +3 -3
  23. package/src/ContentCards/content-cards-provider.js +255 -245
  24. package/src/ContentCards/content-cards.js +2 -2
  25. package/src/ContentCards/get-cached-content-cards.js +1 -1
  26. package/src/ContentCards/request-content-cards-refresh.js +1 -1
  27. package/src/ContentCards/subscribe-to-content-cards-updates.js +6 -6
  28. package/src/ContentCards/ui/hide-content-cards.js +1 -1
  29. package/src/ContentCards/ui/show-content-cards.js +24 -24
  30. package/src/ContentCards/ui/toggle-content-cards.js +1 -1
  31. package/src/Core/add-sdk-metadata.js +21 -19
  32. package/src/Core/change-user.js +10 -10
  33. package/src/Core/destroy.js +2 -2
  34. package/src/Core/disable-sdk.js +11 -11
  35. package/src/Core/enable-sdk.js +7 -7
  36. package/src/Core/get-device-id.js +6 -6
  37. package/src/Core/get-user.js +1 -1
  38. package/src/Core/handle-braze-action.js +41 -41
  39. package/src/Core/is-disabled.js +2 -2
  40. package/src/Core/log-custom-event.js +15 -15
  41. package/src/Core/log-purchase.js +31 -37
  42. package/src/Core/open-session.js +12 -12
  43. package/src/Core/remove-all-subscriptions.js +1 -1
  44. package/src/Core/remove-subscription.js +1 -1
  45. package/src/Core/request-immediate-data-flush.js +1 -1
  46. package/src/Core/set-logger.js +2 -2
  47. package/src/Core/set-sdk-authentication-signature.js +3 -3
  48. package/src/Core/subscribe-to-sdk-authentication-failures.js +6 -4
  49. package/src/Core/toggle-logging.js +2 -2
  50. package/src/Core/wipe-data.js +9 -9
  51. package/src/FeatureFlags/feature-flag-factory.js +12 -12
  52. package/src/FeatureFlags/feature-flag.js +10 -10
  53. package/src/FeatureFlags/feature-flags-provider-factory.js +3 -2
  54. package/src/FeatureFlags/feature-flags-provider.js +108 -80
  55. package/src/FeatureFlags/get-all-feature-flags.js +5 -5
  56. package/src/FeatureFlags/get-feature-flag.js +6 -6
  57. package/src/FeatureFlags/log-feature-flag-impression.js +15 -13
  58. package/src/FeatureFlags/refresh-feature-flags.js +1 -1
  59. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +7 -4
  60. package/src/Feed/feed-provider-factory.js +2 -2
  61. package/src/Feed/feed-provider.js +44 -44
  62. package/src/Feed/feed.js +1 -1
  63. package/src/Feed/get-cached-feed.js +1 -1
  64. package/src/Feed/log-feed-displayed.js +4 -4
  65. package/src/Feed/request-feed-refresh.js +1 -1
  66. package/src/Feed/subscribe-to-feed-updates.js +1 -1
  67. package/src/Feed/ui/hide-feed.js +1 -1
  68. package/src/Feed/ui/show-feed.js +28 -28
  69. package/src/Feed/ui/toggle-feed.js +1 -1
  70. package/src/InAppMessage/defer-in-app-message.js +5 -5
  71. package/src/InAppMessage/display/html-message-to-html.js +54 -54
  72. package/src/InAppMessage/display/in-app-message-to-html.js +79 -79
  73. package/src/InAppMessage/display/modal-utils.js +8 -8
  74. package/src/InAppMessage/get-deferred-in-app-message.js +1 -1
  75. package/src/InAppMessage/in-app-message-factory.js +49 -49
  76. package/src/InAppMessage/in-app-message-manager-factory.js +1 -1
  77. package/src/InAppMessage/in-app-message-manager.js +143 -138
  78. package/src/InAppMessage/log-in-app-message-button-click.js +12 -12
  79. package/src/InAppMessage/log-in-app-message-click.js +9 -9
  80. package/src/InAppMessage/log-in-app-message-html-click.js +12 -12
  81. package/src/InAppMessage/log-in-app-message-impression.js +6 -6
  82. package/src/InAppMessage/models/full-screen-message.js +33 -33
  83. package/src/InAppMessage/models/html-message.js +20 -20
  84. package/src/InAppMessage/models/in-app-message-button.js +6 -6
  85. package/src/InAppMessage/models/in-app-message.js +99 -99
  86. package/src/InAppMessage/models/modal-message.js +32 -32
  87. package/src/InAppMessage/models/slide-up-message.js +28 -28
  88. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  89. package/src/InAppMessage/subscribe-to-in-app-message.js +2 -2
  90. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +4 -4
  91. package/src/InAppMessage/ui/show-in-app-message.js +81 -81
  92. package/src/Push/is-push-blocked.js +1 -1
  93. package/src/Push/is-push-permission-granted.js +1 -1
  94. package/src/Push/is-push-supported.js +1 -1
  95. package/src/Push/push-manager-factory.js +5 -5
  96. package/src/Push/push-manager.js +176 -173
  97. package/src/Push/request-push-permission.js +1 -1
  98. package/src/Push/unregister-push.js +1 -1
  99. package/src/Push/utils/push-utils.js +4 -4
  100. package/src/User/user-manager.js +29 -29
  101. package/src/User/user.js +72 -74
  102. package/src/common/base-feed.js +7 -7
  103. package/src/common/base-provider.js +1 -1
  104. package/src/common/constants.js +2 -0
  105. package/src/common/event-logger.js +21 -18
  106. package/src/common/feed-display.js +44 -44
  107. package/src/l10n/l10n-manager-factory.js +3 -3
  108. package/src/l10n/l10n-manager.js +7 -7
  109. package/src/managers/auth-manager.js +32 -32
  110. package/src/managers/braze-instance.js +188 -190
  111. package/src/managers/device-manager.js +28 -28
  112. package/src/managers/network-manager.js +189 -138
  113. package/src/managers/server-config-manager.js +69 -53
  114. package/src/managers/session-manager.js +34 -30
  115. package/src/managers/storage-manager-factory.js +16 -16
  116. package/src/managers/storage-manager.js +178 -163
  117. package/src/managers/subscription-manager.js +12 -12
  118. package/src/models/backend-errors.js +5 -5
  119. package/src/models/braze-event.js +4 -4
  120. package/src/models/device.js +2 -2
  121. package/src/models/identifier.js +34 -14
  122. package/src/models/push-token.js +8 -8
  123. package/src/models/request-result.js +3 -3
  124. package/src/models/server-config.js +32 -23
  125. package/src/request-controller.js +186 -179
  126. package/src/triggers/models/custom-event-data.js +7 -7
  127. package/src/triggers/models/custom-event-property-data.js +10 -10
  128. package/src/triggers/models/filter-set.js +13 -13
  129. package/src/triggers/models/filter.js +45 -45
  130. package/src/triggers/models/in-app-message-click-data.js +12 -12
  131. package/src/triggers/models/purchase-data.js +2 -2
  132. package/src/triggers/models/purchase-property-data.js +10 -10
  133. package/src/triggers/models/push-click-data.js +7 -7
  134. package/src/triggers/models/trigger-condition.js +57 -59
  135. package/src/triggers/models/trigger-events.js +4 -4
  136. package/src/triggers/models/trigger.js +38 -38
  137. package/src/triggers/triggers-provider-factory.js +4 -4
  138. package/src/triggers/triggers-provider.js +127 -130
  139. package/src/ui/js/attach-css.js +2 -2
  140. package/src/ui/js/iam-css.js +1 -1
  141. package/src/ui/js/load-font-awesome.js +1 -1
  142. package/src/util/base-device-parser.js +3 -3
  143. package/src/util/braze-actions.js +35 -35
  144. package/src/util/browser-detector.js +21 -21
  145. package/src/util/client-hints-parser.js +8 -8
  146. package/src/util/code-utils.js +2 -2
  147. package/src/util/component-utils.js +1 -1
  148. package/src/util/deprecation-utils.js +4 -4
  149. package/src/util/device-constants.js +1 -1
  150. package/src/util/dom-utils.js +18 -18
  151. package/src/util/key-codes.js +1 -1
  152. package/src/util/net.js +18 -18
  153. package/src/util/request-header-utils.js +39 -37
  154. package/src/util/string-utils.js +10 -10
  155. package/src/util/user-agent-parser.js +18 -18
  156. package/src/util/validation-utils.js +37 -39
  157. package/src/util/window-utils.js +3 -3
  158. package/shared-lib/braze-shared-lib.js +0 -8
@@ -9,173 +9,173 @@ import ce from "../display/in-app-message-to-html.js";
9
9
  import { logInAppMessageImpression } from "../log-in-app-message-impression.js";
10
10
  import {
11
11
  ORIENTATION as fe,
12
- WindowUtils as Y,
12
+ WindowUtils as eo,
13
13
  } from "../../util/window-utils.js";
14
14
  import { isURIJavascriptOrData as N } from "../../util/url-utils.js";
15
15
  import { KeyCodes as at } from "../../util/key-codes.js";
16
16
  import { setupInAppMessageUI as ss } from "../../ui/js/index.js";
17
- import r from "../../../shared-lib/braze-shared-lib.js";
17
+ import { logger as r } from "../../../shared-lib/index.js";
18
18
  import { toRgba as ie } from "../../util/color-utils.js";
19
- import { BRAZE_MUST_BE_INITIALIZED_ERROR as P } from "../../common/constants.js";
19
+ import { BRAZE_MUST_BE_INITIALIZED_ERROR as _ } from "../../common/constants.js";
20
20
  import { isIFrame as It } from "../utils/in-app-message-utils.js";
21
- export function showInAppMessage(s, t, o) {
22
- if (!e.rr()) return;
23
- if ((ss(), null == s)) return !1;
24
- if (s instanceof ControlMessage)
21
+ export function showInAppMessage(t, s, o) {
22
+ if (!e.X()) return;
23
+ if ((ss(), null == t)) return !1;
24
+ if (t instanceof ControlMessage)
25
25
  return (
26
- r.j.info(
26
+ r.info(
27
27
  "User received control for a multivariate test, logging to Braze servers.",
28
28
  ),
29
- logInAppMessageImpression(s),
29
+ logInAppMessageImpression(t),
30
30
  !0
31
31
  );
32
- if (!(s instanceof InAppMessage)) return !1;
33
- if (s.constructor === InAppMessage) return !1;
32
+ if (!(t instanceof InAppMessage)) return !1;
33
+ if (t.constructor === InAppMessage) return !1;
34
34
  const i = se.m();
35
- s.Nh();
36
- const n = s instanceof HtmlMessage;
37
- if (n && !s.trusted && !e.nr())
35
+ t.Nh();
36
+ const n = t instanceof HtmlMessage;
37
+ if (n && !t.trusted && !e.tr())
38
38
  return (
39
- r.j.error(
39
+ r.error(
40
40
  'HTML in-app messages are disabled. Use the "allowUserSuppliedJavascript" option for braze.initialize to enable these messages.',
41
41
  ),
42
- i.Ji(s.triggerId, InAppMessage.Ie.Ch),
42
+ i.Ve(t.triggerId, InAppMessage.Me.Ch),
43
43
  !1
44
44
  );
45
- if ((null == t && (t = document.body), s.xe())) {
46
- if (t.querySelectorAll(".ab-modal-interactions").length > 0)
45
+ if ((null == s && (s = document.body), t.xe())) {
46
+ if (s.querySelectorAll(".ab-modal-interactions").length > 0)
47
47
  return (
48
- r.j.info(
49
- `Cannot show in-app message ${s.message} because another message is being shown.`,
48
+ r.info(
49
+ `Cannot show in-app message ${t.message} because another message is being shown.`,
50
50
  ),
51
- i.Ji(s.triggerId, InAppMessage.Ie.Le),
51
+ i.Ve(t.triggerId, InAppMessage.Me.ke),
52
52
  !1
53
53
  );
54
54
  }
55
- if (Y.ao()) {
56
- const e = Y.mo();
55
+ if (eo.jo()) {
56
+ const e = eo.bo();
57
57
  if (
58
58
  (e === fe.PORTRAIT &&
59
- s.orientation === InAppMessage.Orientation.LANDSCAPE) ||
59
+ t.orientation === InAppMessage.Orientation.LANDSCAPE) ||
60
60
  (e === fe.LANDSCAPE &&
61
- s.orientation === InAppMessage.Orientation.PORTRAIT)
61
+ t.orientation === InAppMessage.Orientation.PORTRAIT)
62
62
  ) {
63
- const t = e === fe.PORTRAIT ? "portrait" : "landscape",
63
+ const s = e === fe.PORTRAIT ? "portrait" : "landscape",
64
64
  o =
65
- s.orientation === InAppMessage.Orientation.PORTRAIT
65
+ t.orientation === InAppMessage.Orientation.PORTRAIT
66
66
  ? "portrait"
67
67
  : "landscape";
68
68
  return (
69
- r.j.info(
70
- `Not showing ${o} in-app message ${s.message} because the screen is currently ${t}`,
69
+ r.info(
70
+ `Not showing ${o} in-app message ${t.message} because the screen is currently ${s}`,
71
71
  ),
72
- i.Ji(s.triggerId, InAppMessage.Ie.dh),
72
+ i.Ve(t.triggerId, InAppMessage.Me.dh),
73
73
  !1
74
74
  );
75
75
  }
76
76
  }
77
- if (!e.nr()) {
77
+ if (!e.tr()) {
78
78
  let e = !1;
79
- if (s.buttons && s.buttons.length > 0) {
80
- const t = s.buttons;
81
- for (let s = 0; s < t.length; s++)
82
- if (t[s].clickAction === InAppMessage.ClickAction.URI) {
83
- const o = t[s].uri;
79
+ if (t.buttons && t.buttons.length > 0) {
80
+ const s = t.buttons;
81
+ for (let t = 0; t < s.length; t++)
82
+ if (s[t].clickAction === InAppMessage.ClickAction.URI) {
83
+ const o = s[t].uri;
84
84
  e = N(o);
85
85
  }
86
- } else s.clickAction === InAppMessage.ClickAction.URI && (e = N(s.uri));
86
+ } else t.clickAction === InAppMessage.ClickAction.URI && (e = N(t.uri));
87
87
  if (e)
88
88
  return (
89
- r.j.error(
89
+ r.error(
90
90
  'Javascript click actions are disabled. Use the "allowUserSuppliedJavascript" option for braze.initialize to enable these actions.',
91
91
  ),
92
- i.Ji(s.triggerId, InAppMessage.Ie.Ch),
92
+ i.Ve(t.triggerId, InAppMessage.Me.Ch),
93
93
  !1
94
94
  );
95
95
  }
96
96
  const a = document.createElement("div");
97
97
  if (
98
98
  ((a.className = "ab-iam-root v3"),
99
- (a.className += me(s)),
99
+ (a.className += me(t)),
100
100
  a.setAttribute("role", "complementary"),
101
- s.Ne() && (a.id = s.htmlId),
102
- e.nn(L.lo) && (a.style.zIndex = (e.nn(L.lo) + 1).toString()),
103
- t.appendChild(a),
104
- s.Ae())
101
+ t.ve() && (a.id = t.htmlId),
102
+ e.nn(L.ho) && (a.style.zIndex = (e.nn(L.ho) + 1).toString()),
103
+ s.appendChild(a),
104
+ t.be())
105
105
  ) {
106
- const t = document.createElement("style");
107
- (t.innerHTML = s.css),
108
- (t.id = s.Ce()),
109
- null != e.nn(L.po) && t.setAttribute("nonce", e.nn(L.po)),
110
- document.getElementsByTagName("head")[0].appendChild(t);
106
+ const s = document.createElement("style");
107
+ (s.innerHTML = t.css),
108
+ (s.id = t.ye()),
109
+ null != e.nn(L.wo) && s.setAttribute("nonce", e.nn(L.wo)),
110
+ document.getElementsByTagName("head")[0].appendChild(s);
111
111
  }
112
- const m = s instanceof SlideUpMessage,
112
+ const m = t instanceof SlideUpMessage,
113
113
  l = ce(
114
- s,
114
+ t,
115
115
  () => {
116
- import("../../Feed/ui/show-feed.js").then((s) => {
117
- e.fe() ? s.showFeed() : r.j.error(P);
116
+ import("../../Feed/ui/show-feed.js").then((t) => {
117
+ e.so() ? t.showFeed() : r.error(_);
118
118
  });
119
119
  },
120
- (t) => {
121
- if (s.xe() && s.io()) {
120
+ (s) => {
121
+ if (t.xe() && t.do()) {
122
122
  const o = document.createElement("div");
123
123
  if (
124
124
  ((o.className = "ab-page-blocker"),
125
- s.Ae() || (o.style.backgroundColor = ie(s.frameColor)),
126
- e.nn(L.lo) && (o.style.zIndex = e.nn(L.lo).toString()),
125
+ t.be() || (o.style.backgroundColor = ie(t.frameColor)),
126
+ e.nn(L.ho) && (o.style.zIndex = e.nn(L.ho).toString()),
127
127
  a.appendChild(o),
128
128
  !e.nn(L.mh))
129
129
  ) {
130
130
  const e = new Date().valueOf();
131
131
  o.onclick = (o) => {
132
132
  new Date().valueOf() - e > InAppMessage.Ph &&
133
- (s.ye(t), o.stopPropagation());
133
+ (t.he(s), o.stopPropagation());
134
134
  };
135
135
  }
136
- a.appendChild(t), t.focus(), s.Ah(a);
136
+ a.appendChild(s), s.focus(), t.Ah(a);
137
137
  } else if (m) {
138
138
  const e = document.querySelectorAll(".ab-slideup");
139
139
  let o = null;
140
- for (let s = e.length - 1; s >= 0; s--)
141
- if (e[s] !== t) {
142
- o = e[s];
140
+ for (let t = e.length - 1; t >= 0; t--)
141
+ if (e[t] !== s) {
142
+ o = e[t];
143
143
  break;
144
144
  }
145
- if (s.slideFrom === InAppMessage.SlideFrom.TOP) {
145
+ if (t.slideFrom === InAppMessage.SlideFrom.TOP) {
146
146
  let e = 0;
147
147
  null != o && (e = o.offsetTop + o.offsetHeight),
148
- (t.style.top = Math.max(e, 0) + "px");
148
+ (s.style.top = Math.max(e, 0) + "px");
149
149
  } else {
150
150
  let e = 0;
151
151
  null != o &&
152
152
  (e =
153
153
  (window.innerHeight || document.documentElement.clientHeight) -
154
154
  o.offsetTop),
155
- (t.style.bottom = Math.max(e, 0) + "px");
155
+ (s.style.bottom = Math.max(e, 0) + "px");
156
156
  }
157
157
  } else if (n && !e.nn(L.mh)) {
158
- const e = s;
159
- It(t) &&
160
- t.contentWindow &&
161
- t.contentWindow.addEventListener("keydown", function (s) {
162
- s.keyCode === at._h && e.closeMessage();
158
+ const e = t;
159
+ It(s) &&
160
+ s.contentWindow &&
161
+ s.contentWindow.addEventListener("keydown", function (t) {
162
+ t.keyCode === at._h && e.closeMessage();
163
163
  });
164
164
  }
165
- logInAppMessageImpression(s),
166
- s.dismissType === InAppMessage.DismissType.AUTO_DISMISS &&
165
+ logInAppMessageImpression(t),
166
+ t.dismissType === InAppMessage.DismissType.AUTO_DISMISS &&
167
167
  setTimeout(() => {
168
- a.contains(t) && s.ye(t);
169
- }, s.duration),
168
+ a.contains(s) && t.he(s);
169
+ }, t.duration),
170
170
  "function" == typeof o && o();
171
171
  },
172
- (e, t) => {
173
- r.j.info(e), i.Ji(s.triggerId, t);
172
+ (e, s) => {
173
+ r.info(e), i.Ve(t.triggerId, s);
174
174
  },
175
- e.nn(L.fo),
176
- e.nn(L.lo),
177
- e.nn(L.po),
178
- t,
175
+ e.nn(L.yo),
176
+ e.nn(L.ho),
177
+ e.nn(L.wo),
178
+ s,
179
179
  );
180
- return (n || m) && (a.appendChild(l), s.Ah(a)), !0;
180
+ return (n || m) && (a.appendChild(l), t.Ah(a)), !0;
181
181
  }
@@ -1,5 +1,5 @@
1
1
  import e from "../managers/braze-instance.js";
2
2
  import vt from "./utils/push-utils.js";
3
3
  export function isPushBlocked() {
4
- if (e.rr()) return vt.isPushBlocked();
4
+ if (e.X()) return vt.isPushBlocked();
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import e from "../managers/braze-instance.js";
2
2
  import vt from "./utils/push-utils.js";
3
3
  export function isPushPermissionGranted() {
4
- if (e.rr()) return vt.isPushPermissionGranted();
4
+ if (e.X()) return vt.isPushPermissionGranted();
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import e from "../managers/braze-instance.js";
2
2
  import vt from "./utils/push-utils.js";
3
3
  export function isPushSupported() {
4
- if (e.rr()) return vt.isPushSupported();
4
+ if (e.X()) return vt.isPushSupported();
5
5
  }
@@ -7,15 +7,15 @@ const na = {
7
7
  na.o(),
8
8
  na.i ||
9
9
  (na.i = new ea(
10
- e.br(),
11
- e.Ma(),
10
+ e.pr(),
11
+ e.ba(),
12
12
  e.te(),
13
- e.Ys(),
13
+ e.Vs(),
14
+ e.nn(L.Ma),
14
15
  e.nn(L._a),
16
+ e.ir(),
15
17
  e.nn(L.ka),
16
- e.tr(),
17
18
  e.nn(L.qa),
18
- e.nn(L.Aa),
19
19
  e.l(),
20
20
  )),
21
21
  na.i