@braze/web-sdk 5.1.1 → 5.3.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 (99) hide show
  1. package/index.d.ts +65 -10
  2. package/package.json +1 -1
  3. package/shared-lib/encoding-utils.js +1 -1
  4. package/shared-lib/event-types.js +20 -20
  5. package/shared-lib/indexed-db-adapter.js +52 -52
  6. package/shared-lib/logger.js +7 -7
  7. package/shared-lib/supported-options.js +22 -21
  8. package/src/ContentCards/content-cards-provider.js +107 -135
  9. package/src/ContentCards/get-cached-content-cards.js +1 -1
  10. package/src/ContentCards/request-content-cards-refresh.js +1 -1
  11. package/src/ContentCards/subscribe-to-content-cards-updates.js +2 -2
  12. package/src/ContentCards/ui/show-content-cards.js +1 -1
  13. package/src/FeatureFlags/feature-flag.js +41 -30
  14. package/src/FeatureFlags/feature-flags-provider.js +88 -84
  15. package/src/FeatureFlags/get-all-feature-flags.js +2 -2
  16. package/src/FeatureFlags/get-feature-flag.js +2 -2
  17. package/src/FeatureFlags/log-feature-flag-impression.js +3 -3
  18. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +2 -2
  19. package/src/Feed/feed-provider.js +24 -24
  20. package/src/Feed/get-cached-feed.js +1 -1
  21. package/src/Feed/log-feed-displayed.js +1 -1
  22. package/src/Feed/request-feed-refresh.js +1 -1
  23. package/src/Feed/subscribe-to-feed-updates.js +1 -1
  24. package/src/Feed/ui/show-feed.js +1 -1
  25. package/src/InAppMessage/defer-in-app-message.js +1 -1
  26. package/src/InAppMessage/display/html-message-to-html.js +45 -42
  27. package/src/InAppMessage/display/in-app-message-to-html.js +22 -22
  28. package/src/InAppMessage/display/modal-utils.js +7 -7
  29. package/src/InAppMessage/get-deferred-in-app-message.js +1 -1
  30. package/src/InAppMessage/in-app-message-factory.js +23 -21
  31. package/src/InAppMessage/in-app-message-manager.js +95 -112
  32. package/src/InAppMessage/log-in-app-message-button-click.js +2 -2
  33. package/src/InAppMessage/log-in-app-message-click.js +3 -3
  34. package/src/InAppMessage/log-in-app-message-html-click.js +3 -3
  35. package/src/InAppMessage/log-in-app-message-impression.js +1 -1
  36. package/src/InAppMessage/models/control-message.js +4 -2
  37. package/src/InAppMessage/models/full-screen-message.js +14 -11
  38. package/src/InAppMessage/models/html-message.js +11 -9
  39. package/src/InAppMessage/models/in-app-message-button.js +2 -2
  40. package/src/InAppMessage/models/in-app-message.js +127 -120
  41. package/src/InAppMessage/models/modal-message.js +14 -11
  42. package/src/InAppMessage/models/slide-up-message.js +46 -21
  43. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  44. package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
  45. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +3 -3
  46. package/src/InAppMessage/ui/show-in-app-message.js +37 -43
  47. package/src/InAppMessage/utils/in-app-message-utils.js +18 -1
  48. package/src/Push/push-manager-factory.js +4 -4
  49. package/src/Push/push-manager.js +118 -110
  50. package/src/Push/utils/push-utils.js +4 -4
  51. package/src/User/user-manager.js +4 -4
  52. package/src/User/user.js +19 -19
  53. package/src/common/base-feed.js +1 -1
  54. package/src/common/base-provider.js +1 -1
  55. package/src/common/constants.js +0 -2
  56. package/src/common/event-logger.js +2 -2
  57. package/src/common/feed-display.js +12 -12
  58. package/src/l10n/l10n-manager-factory.js +1 -1
  59. package/src/l10n/l10n-manager.js +4 -4
  60. package/src/managers/auth-manager.js +27 -27
  61. package/src/managers/braze-instance.js +119 -112
  62. package/src/managers/device-manager.js +19 -19
  63. package/src/managers/network-manager.js +215 -165
  64. package/src/managers/server-config-manager.js +46 -50
  65. package/src/managers/session-manager.js +21 -21
  66. package/src/managers/storage-manager-factory.js +1 -1
  67. package/src/managers/storage-manager.js +128 -125
  68. package/src/managers/utils.js +6 -0
  69. package/src/models/backend-errors.js +5 -5
  70. package/src/models/braze-event.js +19 -11
  71. package/src/models/device.js +3 -3
  72. package/src/models/identifier.js +34 -20
  73. package/src/models/push-token.js +4 -4
  74. package/src/models/server-config.js +24 -24
  75. package/src/request-controller.js +134 -124
  76. package/src/triggers/models/filter-set.js +2 -2
  77. package/src/triggers/models/filter.js +56 -56
  78. package/src/triggers/models/in-app-message-click-data.js +8 -8
  79. package/src/triggers/models/push-click-data.js +3 -3
  80. package/src/triggers/models/trigger-condition.js +30 -30
  81. package/src/triggers/models/trigger-events.js +1 -1
  82. package/src/triggers/models/trigger.js +36 -36
  83. package/src/triggers/triggers-provider-factory.js +2 -2
  84. package/src/triggers/triggers-provider.js +84 -95
  85. package/src/ui/js/attach-css.js +2 -2
  86. package/src/ui/js/load-font-awesome.js +1 -1
  87. package/src/util/base-device-parser.js +7 -7
  88. package/src/util/braze-actions.js +4 -4
  89. package/src/util/browser-detector.js +25 -24
  90. package/src/util/client-hints-parser.js +4 -4
  91. package/src/util/component-utils.js +2 -2
  92. package/src/util/device-constants.js +2 -2
  93. package/src/util/dom-utils.js +6 -6
  94. package/src/util/key-codes.js +1 -1
  95. package/src/util/net.js +4 -4
  96. package/src/util/request-header-utils.js +36 -37
  97. package/src/util/user-agent-parser.js +8 -8
  98. package/src/util/validation-utils.js +2 -0
  99. package/src/util/window-utils.js +3 -3
@@ -1,9 +1,32 @@
1
1
  import InAppMessage from "./in-app-message.js";
2
2
  import { DOMUtils as de } from "../../util/dom-utils.js";
3
3
  export default class SlideUpMessage extends InAppMessage {
4
- constructor(e, t, s, o, i, r, n, d, a, u, p, m, c, l, v, x, f, h, g, I, M) {
5
- (x = x || InAppMessage.th.Mh),
6
- (v = v || InAppMessage.th.Dh),
4
+ constructor(
5
+ e,
6
+ t,
7
+ s,
8
+ o,
9
+ i,
10
+ r,
11
+ n,
12
+ d,
13
+ a,
14
+ u,
15
+ p,
16
+ m,
17
+ c,
18
+ l,
19
+ v,
20
+ x,
21
+ f,
22
+ h,
23
+ g,
24
+ I,
25
+ M,
26
+ b,
27
+ ) {
28
+ (x = x || InAppMessage.th.Dh),
29
+ (v = v || InAppMessage.th.Mh),
7
30
  super(
8
31
  e,
9
32
  (t = t || InAppMessage.TextAlignment.START),
@@ -34,51 +57,53 @@ export default class SlideUpMessage extends InAppMessage {
34
57
  void 0,
35
58
  I,
36
59
  M,
60
+ b,
37
61
  ),
38
- (this.$e = InAppMessage.TextAlignment.START);
62
+ (this.De = InAppMessage.TextAlignment.START);
39
63
  }
40
- xe() {
64
+ ze() {
41
65
  return !1;
42
66
  }
43
- Ie() {
67
+ Je() {
44
68
  const e = document.createElement("span");
45
69
  return e.appendChild(document.createTextNode(this.message || "")), e;
46
70
  }
47
- Ah(e) {
71
+ Oh(e) {
48
72
  const t = e.getElementsByClassName("ab-in-app-message")[0];
49
- de.co(t, !0, !0) ||
73
+ de.po(t, !0, !0) ||
50
74
  (this.slideFrom === InAppMessage.SlideFrom.TOP
51
75
  ? (t.style.top = "0px")
52
76
  : (t.style.bottom = "0px")),
53
- super.Ah(e);
77
+ super.Oh(e);
54
78
  }
55
79
  Y() {
56
80
  return super.Y(SlideUpMessage.it);
57
81
  }
58
- static Yr(e) {
82
+ static Xr(e) {
59
83
  return new SlideUpMessage(
84
+ e[InAppMessage.tt.Vr],
85
+ e[InAppMessage.tt.Wr],
86
+ e[InAppMessage.tt.Rh],
87
+ e[InAppMessage.tt.bt],
88
+ e[InAppMessage.tt.Yr],
89
+ e[InAppMessage.tt.Zr],
90
+ e[InAppMessage.tt.URI],
60
91
  e[InAppMessage.tt.ea],
61
92
  e[InAppMessage.tt.ra],
62
- e[InAppMessage.tt.Sh],
63
- e[InAppMessage.tt.bt],
64
93
  e[InAppMessage.tt.sa],
65
94
  e[InAppMessage.tt.ta],
66
- e[InAppMessage.tt.URI],
67
- e[InAppMessage.tt.ia],
95
+ e[InAppMessage.tt.ot],
68
96
  e[InAppMessage.tt.aa],
69
97
  e[InAppMessage.tt.oa],
70
98
  e[InAppMessage.tt.pa],
71
- e[InAppMessage.tt.ot],
99
+ e[InAppMessage.tt.ma],
72
100
  e[InAppMessage.tt.na],
73
101
  e[InAppMessage.tt.ua],
74
102
  e[InAppMessage.tt.ca],
75
- e[InAppMessage.tt.fa],
76
- e[InAppMessage.tt.da],
77
- e[InAppMessage.tt.la],
78
- e[InAppMessage.tt.ga],
79
- e[InAppMessage.tt.Sa],
103
+ e[InAppMessage.tt.ha],
80
104
  e[InAppMessage.tt.CSS],
105
+ e[InAppMessage.tt.va],
81
106
  );
82
107
  }
83
108
  }
84
- SlideUpMessage.it = InAppMessage.Ce.rn;
109
+ SlideUpMessage.it = InAppMessage.qe.Kr;
@@ -1,15 +1,15 @@
1
1
  export default class wt {
2
2
  constructor(t, s, i, h, l) {
3
3
  (this.triggerId = t),
4
- (this.Qr = s),
5
- (this.Hr = i),
6
- (this.Ur = h),
7
- (this.Vr = l),
4
+ (this.Er = s),
5
+ (this.Tr = i),
6
+ (this.Gr = h),
7
+ (this.Nr = l),
8
8
  (this.triggerId = t),
9
- (this.Qr = s),
10
- (this.Hr = i),
11
- (this.Ur = h),
12
- (this.Vr = l);
9
+ (this.Er = s),
10
+ (this.Tr = i),
11
+ (this.Gr = h),
12
+ (this.Nr = l);
13
13
  }
14
14
  static fromJson(t, s, i, h, l) {
15
15
  return null == t || null == t.trigger_id
@@ -4,7 +4,7 @@ export function subscribeToInAppMessage(n) {
4
4
  if (e.X())
5
5
  return "function" != typeof n
6
6
  ? null
7
- : se.m().Ke(function (r) {
7
+ : se.m()._i(function (r) {
8
8
  return n(r[0]), r.slice(1);
9
9
  });
10
10
  }
@@ -7,9 +7,9 @@ export function automaticallyShowInAppMessages() {
7
7
  if (!e.X()) return;
8
8
  ss();
9
9
  const s = se.m();
10
- if (null == s.Qe()) {
10
+ if (null == s.Pi()) {
11
11
  const r = subscribeToInAppMessage((s) => showInAppMessage(s));
12
- s.Ue(r);
12
+ s.$i(r);
13
13
  }
14
- return s.Qe();
14
+ return s.Pi();
15
15
  }
@@ -3,7 +3,6 @@ import ControlMessage from "../models/control-message.js";
3
3
  import HtmlMessage from "../models/html-message.js";
4
4
  import InAppMessage from "../models/in-app-message.js";
5
5
  import SlideUpMessage from "../models/slide-up-message.js";
6
- import se from "../in-app-message-manager-factory.js";
7
6
  import me from "../display/get-animation-effect.js";
8
7
  import ce from "../display/in-app-message-to-html.js";
9
8
  import { logInAppMessageImpression } from "../log-in-app-message-impression.js";
@@ -11,8 +10,8 @@ import {
11
10
  ORIENTATION as fe,
12
11
  WindowUtils as eo,
13
12
  } from "../../util/window-utils.js";
14
- import { isURIJavascriptOrData as N } from "../../util/url-utils.js";
15
- import { KeyCodes as at } from "../../util/key-codes.js";
13
+ import { isURIJavascriptOrData as R } from "../../util/url-utils.js";
14
+ import { KeyCodes as lt } from "../../util/key-codes.js";
16
15
  import { setupInAppMessageUI as ss } from "../../ui/js/index.js";
17
16
  import { logger as r } from "../../../shared-lib/index.js";
18
17
  import { toRgba as ie } from "../../util/color-utils.js";
@@ -31,29 +30,26 @@ export function showInAppMessage(t, s, o) {
31
30
  );
32
31
  if (!(t instanceof InAppMessage)) return !1;
33
32
  if (t.constructor === InAppMessage) return !1;
34
- const i = se.m();
35
33
  t.Nh();
36
- const n = t instanceof HtmlMessage;
37
- if (n && !t.trusted && !e.tr())
34
+ const i = t instanceof HtmlMessage;
35
+ if (i && !t.trusted && !e.tr())
38
36
  return (
39
37
  r.error(
40
38
  'HTML in-app messages are disabled. Use the "allowUserSuppliedJavascript" option for braze.initialize to enable these messages.',
41
39
  ),
42
- i.Ve(t.triggerId, InAppMessage.Me.Ch),
43
40
  !1
44
41
  );
45
- if ((null == s && (s = document.body), t.xe())) {
42
+ if ((null == s && (s = document.body), t.ze())) {
46
43
  if (s.querySelectorAll(".ab-modal-interactions").length > 0)
47
44
  return (
48
45
  r.info(
49
46
  `Cannot show in-app message ${t.message} because another message is being shown.`,
50
47
  ),
51
- i.Ve(t.triggerId, InAppMessage.Me.ke),
52
48
  !1
53
49
  );
54
50
  }
55
- if (eo.jo()) {
56
- const e = eo.bo();
51
+ if (eo.fo()) {
52
+ const e = eo.co();
57
53
  if (
58
54
  (e === fe.PORTRAIT &&
59
55
  t.orientation === InAppMessage.Orientation.LANDSCAPE) ||
@@ -69,7 +65,6 @@ export function showInAppMessage(t, s, o) {
69
65
  r.info(
70
66
  `Not showing ${o} in-app message ${t.message} because the screen is currently ${s}`,
71
67
  ),
72
- i.Ve(t.triggerId, InAppMessage.Me.dh),
73
68
  !1
74
69
  );
75
70
  }
@@ -81,35 +76,34 @@ export function showInAppMessage(t, s, o) {
81
76
  for (let t = 0; t < s.length; t++)
82
77
  if (s[t].clickAction === InAppMessage.ClickAction.URI) {
83
78
  const o = s[t].uri;
84
- e = N(o);
79
+ e = R(o);
85
80
  }
86
- } else t.clickAction === InAppMessage.ClickAction.URI && (e = N(t.uri));
81
+ } else t.clickAction === InAppMessage.ClickAction.URI && (e = R(t.uri));
87
82
  if (e)
88
83
  return (
89
84
  r.error(
90
85
  'Javascript click actions are disabled. Use the "allowUserSuppliedJavascript" option for braze.initialize to enable these actions.',
91
86
  ),
92
- i.Ve(t.triggerId, InAppMessage.Me.Ch),
93
87
  !1
94
88
  );
95
89
  }
96
- const a = document.createElement("div");
90
+ const n = document.createElement("div");
97
91
  if (
98
- ((a.className = "ab-iam-root v3"),
99
- (a.className += me(t)),
100
- a.setAttribute("role", "complementary"),
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())
92
+ ((n.className = "ab-iam-root v3"),
93
+ (n.className += me(t)),
94
+ n.setAttribute("role", "complementary"),
95
+ t.xe() && (n.id = t.htmlId),
96
+ e.nn(L.jo) && (n.style.zIndex = (e.nn(L.jo) + 1).toString()),
97
+ s.appendChild(n),
98
+ t.Ce())
105
99
  ) {
106
100
  const s = document.createElement("style");
107
101
  (s.innerHTML = t.css),
108
- (s.id = t.ye()),
109
- null != e.nn(L.wo) && s.setAttribute("nonce", e.nn(L.wo)),
102
+ (s.id = t.ve()),
103
+ null != e.nn(L.bo) && s.setAttribute("nonce", e.nn(L.bo)),
110
104
  document.getElementsByTagName("head")[0].appendChild(s);
111
105
  }
112
- const m = t instanceof SlideUpMessage,
106
+ const a = t instanceof SlideUpMessage,
113
107
  l = ce(
114
108
  t,
115
109
  () => {
@@ -118,23 +112,23 @@ export function showInAppMessage(t, s, o) {
118
112
  });
119
113
  },
120
114
  (s) => {
121
- if (t.xe() && t.do()) {
115
+ if (t.ze() && t.do()) {
122
116
  const o = document.createElement("div");
123
117
  if (
124
118
  ((o.className = "ab-page-blocker"),
125
- t.be() || (o.style.backgroundColor = ie(t.frameColor)),
126
- e.nn(L.ho) && (o.style.zIndex = e.nn(L.ho).toString()),
127
- a.appendChild(o),
128
- !e.nn(L.mh))
119
+ t.Ce() || (o.style.backgroundColor = ie(t.frameColor)),
120
+ e.nn(L.jo) && (o.style.zIndex = e.nn(L.jo).toString()),
121
+ n.appendChild(o),
122
+ !e.nn(L.Lh))
129
123
  ) {
130
124
  const e = new Date().valueOf();
131
125
  o.onclick = (o) => {
132
- new Date().valueOf() - e > InAppMessage.Ph &&
133
- (t.he(s), o.stopPropagation());
126
+ new Date().valueOf() - e > InAppMessage.fh &&
127
+ (t.Ae(s), o.stopPropagation());
134
128
  };
135
129
  }
136
- a.appendChild(s), s.focus(), t.Ah(a);
137
- } else if (m) {
130
+ n.appendChild(s), s.focus(), t.Oh(n);
131
+ } else if (a) {
138
132
  const e = document.querySelectorAll(".ab-slideup");
139
133
  let o = null;
140
134
  for (let t = e.length - 1; t >= 0; t--)
@@ -154,28 +148,28 @@ export function showInAppMessage(t, s, o) {
154
148
  o.offsetTop),
155
149
  (s.style.bottom = Math.max(e, 0) + "px");
156
150
  }
157
- } else if (n && !e.nn(L.mh)) {
151
+ } else if (i && !e.nn(L.Lh)) {
158
152
  const e = t;
159
153
  It(s) &&
160
154
  s.contentWindow &&
161
155
  s.contentWindow.addEventListener("keydown", function (t) {
162
- t.keyCode === at._h && e.closeMessage();
156
+ t.keyCode === lt.mh && e.closeMessage();
163
157
  });
164
158
  }
165
159
  logInAppMessageImpression(t),
166
160
  t.dismissType === InAppMessage.DismissType.AUTO_DISMISS &&
167
161
  setTimeout(() => {
168
- a.contains(s) && t.he(s);
162
+ n.contains(s) && t.Ae(s);
169
163
  }, t.duration),
170
164
  "function" == typeof o && o();
171
165
  },
172
- (e, s) => {
173
- r.info(e), i.Ve(t.triggerId, s);
166
+ (e) => {
167
+ r.info(e);
174
168
  },
175
- e.nn(L.yo),
176
169
  e.nn(L.ho),
177
- e.nn(L.wo),
170
+ e.nn(L.jo),
171
+ e.nn(L.bo),
178
172
  s,
179
173
  );
180
- return (n || m) && (a.appendChild(l), t.Ah(a)), !0;
174
+ return (i || a) && (n.appendChild(l), t.Oh(n)), !0;
181
175
  }
@@ -1 +1,18 @@
1
- export const isIFrame = (e) => null !== e && "IFRAME" === e.tagName;
1
+ export const isIFrame = (o) => null !== o && "IFRAME" === o.tagName;
2
+ export function nodeScriptReplace(o) {
3
+ var n;
4
+ if ("SCRIPT" === o.tagName)
5
+ null === (n = o.parentNode) ||
6
+ void 0 === n ||
7
+ n.replaceChild(
8
+ (function (o) {
9
+ const n = document.createElement("script");
10
+ n.text = o.innerHTML;
11
+ for (const e of o.attributes) n.setAttribute(e.name, e.value);
12
+ return n;
13
+ })(o),
14
+ o,
15
+ );
16
+ else for (const n of o.childNodes) nodeScriptReplace(n);
17
+ return o;
18
+ }
@@ -10,12 +10,12 @@ const na = {
10
10
  e.pr(),
11
11
  e.ba(),
12
12
  e.te(),
13
- e.Vs(),
13
+ e.Hs(),
14
+ e.nn(L.wa),
15
+ e.nn(L.ya),
16
+ e.ir(),
14
17
  e.nn(L.Ma),
15
18
  e.nn(L._a),
16
- e.ir(),
17
- e.nn(L.ka),
18
- e.nn(L.qa),
19
19
  e.l(),
20
20
  )),
21
21
  na.i