@braze/web-sdk 4.9.0 → 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 (37) hide show
  1. package/index.d.ts +2289 -2228
  2. package/package.json +1 -1
  3. package/shared-lib/braze-shared-lib.js +1 -1
  4. package/shared-lib/event-types.js +9 -9
  5. package/shared-lib/indexed-db-adapter.js +1 -1
  6. package/shared-lib/logger.js +2 -2
  7. package/shared-lib/supported-options.js +5 -4
  8. package/src/Core/get-device-id.js +9 -7
  9. package/src/User/user.js +10 -9
  10. package/src/managers/braze-instance.js +68 -66
  11. package/src/managers/device-manager.js +15 -15
  12. package/src/managers/network-manager.js +64 -61
  13. package/src/managers/session-manager.js +1 -1
  14. package/src/managers/storage-manager-factory.js +8 -8
  15. package/src/managers/storage-manager.js +15 -15
  16. package/src/managers/subscription-manager.js +1 -1
  17. package/src/models/backend-errors.js +5 -5
  18. package/src/models/braze-event.js +2 -2
  19. package/src/models/device.js +1 -1
  20. package/src/models/server-config.js +2 -2
  21. package/src/request-controller.js +112 -108
  22. package/src/triggers/models/filter.js +7 -7
  23. package/src/triggers/models/trigger-condition.js +17 -17
  24. package/src/triggers/models/trigger.js +25 -25
  25. package/src/triggers/triggers-provider.js +21 -21
  26. package/src/ui/js/attach-css.js +1 -1
  27. package/src/ui/js/load-font-awesome.js +1 -1
  28. package/src/util/base-device-parser.js +1 -1
  29. package/src/util/browser-detector.js +5 -5
  30. package/src/util/client-hints-parser.js +6 -6
  31. package/src/util/date-utils.js +2 -2
  32. package/src/util/device-constants.js +1 -1
  33. package/src/util/dom-utils.js +5 -5
  34. package/src/util/net.js +1 -1
  35. package/src/util/request-header-utils.js +14 -14
  36. package/src/util/user-agent-parser.js +5 -5
  37. package/src/util/validation-utils.js +9 -9
@@ -42,7 +42,7 @@ export default class gr extends y {
42
42
  (this.og = this.u.v(i.k.nE) || this.og);
43
43
  for (let t = 0; t < this.triggers.length; t++) {
44
44
  const i = this.triggers[t];
45
- i.id && null != this.og[i.id] && i.Lu(this.og[i.id]);
45
+ i.id && null != this.og[i.id] && i.Wu(this.og[i.id]);
46
46
  }
47
47
  }
48
48
  }
@@ -71,7 +71,7 @@ export default class gr extends y {
71
71
  h = [];
72
72
  for (let r = 0; r < t.length; r++) {
73
73
  const n = t[r],
74
- o = i.Ru(n.Zr || 0);
74
+ o = i.Xu(n.Zr || 0);
75
75
  if (o > 0) {
76
76
  let t, r;
77
77
  h.push(n),
@@ -119,10 +119,10 @@ export default class gr extends y {
119
119
  if (r) {
120
120
  r.id &&
121
121
  null != this.og[r.id] &&
122
- (r.Lu(this.og[r.id]), (e[r.id] = this.og[r.id])),
122
+ (r.Wu(this.og[r.id]), (e[r.id] = this.og[r.id])),
123
123
  r.id && null != this.ng[r.id] && (h[r.id] = this.ng[r.id]);
124
- for (let t = 0; t < r.Pu.length; t++)
125
- if (r.Pu[t].sc(tt.zs, null)) {
124
+ for (let t = 0; t < r.Vu.length; t++)
125
+ if (r.Vu[t].ec(tt.zs, null)) {
126
126
  s = !0;
127
127
  break;
128
128
  }
@@ -147,14 +147,14 @@ export default class gr extends y {
147
147
  const n = (e) => {
148
148
  this.fg();
149
149
  const h = new Date().valueOf();
150
- if (!t.Vu(i))
150
+ if (!t.Yu(i))
151
151
  return !1 === navigator.onLine && t.type === mt.Wr.Vr && e.imageUrl
152
152
  ? (r.j.info(
153
153
  `Not showing ${t.type} trigger action ${t.id} due to offline state.`,
154
154
  ),
155
155
  void this.ig.Ji(t.id, InAppMessage.Ie.Uh))
156
- : void (t.Ju(h) && this.wg(t, h, s)
157
- ? 0 === this.yt.ic()
156
+ : void (t.Uu(h) && this.wg(t, h, s)
157
+ ? 0 === this.yt.tc()
158
158
  ? r.j.info(
159
159
  `Not displaying trigger ${t.id} because neither automaticallyShowInAppMessages() nor subscribeToInAppMessage() were called.`,
160
160
  )
@@ -162,7 +162,7 @@ export default class gr extends y {
162
162
  : r.j.info(
163
163
  `Not displaying trigger ${t.id} because display time fell outside of the acceptable time window.`,
164
164
  ));
165
- t.type === mt.Wr.Gu
165
+ t.type === mt.Wr.Zu
166
166
  ? this.ig.Ji(t.id, InAppMessage.Ie.Qr)
167
167
  : this.ig.Ji(t.id, InAppMessage.Ie.bh);
168
168
  },
@@ -170,7 +170,7 @@ export default class gr extends y {
170
170
  this.fg();
171
171
  const n = h.pop();
172
172
  if (null != n)
173
- if ((this.Tg(n, i, s, e, h), n.Vu(i))) {
173
+ if ((this.Tg(n, i, s, e, h), n.Yu(i))) {
174
174
  let t = `Server aborted in-app message display, but the timeout on fallback trigger ${n.id} has already elapsed.`;
175
175
  h.length > 0 && (t += " Continuing to fall back."),
176
176
  r.j.info(t),
@@ -180,7 +180,7 @@ export default class gr extends y {
180
180
  r.j.info(
181
181
  `Server aborted in-app message display. Falling back to lower priority ${n.type} trigger action ${t.id}.`,
182
182
  );
183
- const o = 1e3 * n.Iu - (new Date().valueOf() - i);
183
+ const o = 1e3 * n.Gu - (new Date().valueOf() - i);
184
184
  o > 0
185
185
  ? this.eg.push(
186
186
  window.setTimeout(() => {
@@ -206,7 +206,7 @@ export default class gr extends y {
206
206
  }
207
207
  n(a);
208
208
  break;
209
- case mt.Wr.Gu:
209
+ case mt.Wr.Zu:
210
210
  if (((g = wt.fromJson(t.data, n, o, i, t.sn || 0)), null == g)) {
211
211
  r.j.error(
212
212
  `Could not parse trigger data for trigger ${t.id}, ignoring.`,
@@ -225,7 +225,7 @@ export default class gr extends y {
225
225
  }
226
226
  be(t, i = null, s) {
227
227
  if (!H(tt, t, "Cannot fire trigger action.", "TriggerEvents")) return;
228
- if (this.ki && this.ki.yu())
228
+ if (this.ki && this.ki.Du())
229
229
  return (
230
230
  r.j.info(
231
231
  "Trigger sync is currently in progress, awaiting sync completion before firing trigger event.",
@@ -240,15 +240,15 @@ export default class gr extends y {
240
240
  const a = [];
241
241
  for (let s = 0; s < this.triggers.length; s++) {
242
242
  const r = this.triggers[s],
243
- h = e + 1e3 * r.Iu;
243
+ h = e + 1e3 * r.Gu;
244
244
  if (
245
- r.Ju(h) &&
245
+ r.Uu(h) &&
246
246
  (null == r.startTime || r.startTime.valueOf() <= e) &&
247
247
  (null == r.endTime || r.endTime.valueOf() >= e)
248
248
  ) {
249
249
  let s = !1;
250
- for (let e = 0; e < r.Pu.length; e++)
251
- if (r.Pu[e].sc(t, i)) {
250
+ for (let e = 0; e < r.Vu.length; e++)
251
+ if (r.Vu[e].ec(t, i)) {
252
252
  s = !0;
253
253
  break;
254
254
  }
@@ -272,12 +272,12 @@ export default class gr extends y {
272
272
  `Firing ${l.type} trigger action ${l.id} from trigger event ${t}.`,
273
273
  ),
274
274
  this.Tg(l, e, t, s, a),
275
- 0 === l.Iu
275
+ 0 === l.Gu
276
276
  ? this.cg(l, e, t, s, a)
277
277
  : this.eg.push(
278
278
  window.setTimeout(() => {
279
279
  this.cg(l, e, t, s, a);
280
- }, 1e3 * l.Iu),
280
+ }, 1e3 * l.Gu),
281
281
  ));
282
282
  }
283
283
  changeUser(t = !1) {
@@ -302,7 +302,7 @@ export default class gr extends y {
302
302
  ),
303
303
  !0
304
304
  );
305
- let e = t.Fu;
305
+ let e = t.Ou;
306
306
  return null == e && (e = this.tg), i - this.hg >= 1e3 * e;
307
307
  }
308
308
  Tg(t, s, e, r, h) {
@@ -318,7 +318,7 @@ export default class gr extends y {
318
318
  }
319
319
  yg(t, s) {
320
320
  this.fg(),
321
- t.Lu(s),
321
+ t.Wu(s),
322
322
  (this.hg = s),
323
323
  t.id && (this.og[t.id] = s),
324
324
  this.u && (this.u.D(i.k.iE, s), this.u.D(i.k.nE, this.og));
@@ -1,7 +1,7 @@
1
1
  import e, { OPTIONS as L } from "../../managers/braze-instance.js";
2
2
  export function attachCSS(n, t, o) {
3
3
  const c = n || document.querySelector("head"),
4
- s = `ab-${t}-css-definitions-${"4.9.0".replace(/\./g, "-")}`;
4
+ s = `ab-${t}-css-definitions-${"4.10.0".replace(/\./g, "-")}`;
5
5
  if (!c) return;
6
6
  const a = c.ownerDocument || document;
7
7
  if (null == a.getElementById(s)) {
@@ -1,6 +1,6 @@
1
1
  import e, { OPTIONS as L } from "../../managers/braze-instance.js";
2
2
  export function loadFontAwesome() {
3
- if (e.nn(L.Po)) return;
3
+ if (e.nn(L.Lo)) return;
4
4
  const t = "https://use.fontawesome.com/7f85a56ba4.css";
5
5
  if (
6
6
  !(null !== document.querySelector('link[rel=stylesheet][href="' + t + '"]'))
@@ -3,7 +3,7 @@ export default class ge {
3
3
  constructor() {}
4
4
  tf() {}
5
5
  ef() {}
6
- Ia(t) {}
6
+ Ta(t) {}
7
7
  static rf(t, e) {
8
8
  if (t && e)
9
9
  if (((t = t.toLowerCase()), p(e.if))) {
@@ -9,7 +9,7 @@ class gi {
9
9
  (this.browser = this.Sg.tf()),
10
10
  (this.version = this.Sg.ef()),
11
11
  (this.OS = null),
12
- this.Ia().then((t) => (this.OS = t));
12
+ this.Ta().then((t) => (this.OS = t));
13
13
  const i = navigator;
14
14
  (this.language = (
15
15
  i.userLanguage ||
@@ -18,18 +18,18 @@ class gi {
18
18
  i.systemLanguage ||
19
19
  ""
20
20
  ).toLowerCase()),
21
- (this.$o = gi.vg(this.userAgent));
21
+ (this.qo = gi.vg(this.userAgent));
22
22
  }
23
23
  OE() {
24
24
  return this.browser === oi.Bg;
25
25
  }
26
- Oa() {
26
+ Ca() {
27
27
  return this.OS || null;
28
28
  }
29
- Ia() {
29
+ Ta() {
30
30
  return this.OS
31
31
  ? Promise.resolve(this.OS)
32
- : this.Sg.Ia(gi.Og).then((t) => ((this.OS = t), t));
32
+ : this.Sg.Ta(gi.Og).then((t) => ((this.OS = t), t));
33
33
  }
34
34
  static vg(t) {
35
35
  t = t.toLowerCase();
@@ -9,7 +9,7 @@ export default class ni extends ge {
9
9
  (this.version = null),
10
10
  this.userAgentData)
11
11
  ) {
12
- const t = this.Uu();
12
+ const t = this.ic();
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 ni extends ge {
21
21
  ef() {
22
22
  return this.version;
23
23
  }
24
- Ia(t) {
24
+ Ta(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 ni extends ge {
36
36
  .then((t) => (t.platform ? s(t.platform) : navigator.platform))
37
37
  .catch(() => navigator.platform);
38
38
  }
39
- Uu() {
39
+ ic() {
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.Ou(oi),
44
+ const s = this.nc(oi),
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,11 +50,11 @@ export default class ni extends ge {
50
50
  }
51
51
  return t;
52
52
  }
53
- Ou(t) {
53
+ nc(t) {
54
54
  const s = [];
55
55
  for (const r in t) {
56
56
  const i = r;
57
- t[i] !== oi.Ku && s.push(t[i]);
57
+ t[i] !== oi.oc && s.push(t[i]);
58
58
  }
59
59
  return new RegExp("(" + s.join("|") + ")", "i");
60
60
  }
@@ -1,4 +1,4 @@
1
- import { isDate as Nt } from "./code-utils.js";
1
+ import { isDate as yt } from "./code-utils.js";
2
2
  export function convertMsToSeconds(e, n = !1) {
3
3
  let t = e / 1e3;
4
4
  return n && (t = Math.floor(t)), t;
@@ -12,7 +12,7 @@ export function dateFromUnixTimestamp(e) {
12
12
  return isNaN(n) ? null : new Date(1e3 * n);
13
13
  }
14
14
  export function toValidBackendTimeString(e) {
15
- 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;
16
16
  }
17
17
  export function rehydrateDateAfterJsonization(e) {
18
18
  return null == e || "" === e ? null : new Date(e);
@@ -1,7 +1,7 @@
1
1
  export const Browsers = {
2
2
  pE: "Chrome",
3
3
  xE: "Edge",
4
- Ku: "Internet Explorer",
4
+ oc: "Internet Explorer",
5
5
  FE: "Opera",
6
6
  Bg: "Safari",
7
7
  ME: "Firefox",
@@ -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 = { Wu: null, no: _isInView };
21
+ export const DOMUtils = { lc: null, no: _isInView };
22
22
  export const DIRECTIONS = { Oe: "up", Qe: "down", W: "left", X: "right" };
23
23
  export function supportsPassive() {
24
- if (null == DOMUtils.Wu) {
25
- DOMUtils.Wu = !1;
24
+ if (null == DOMUtils.lc) {
25
+ DOMUtils.lc = !1;
26
26
  try {
27
27
  const t = Object.defineProperty({}, "passive", {
28
28
  get: () => {
29
- DOMUtils.Wu = !0;
29
+ DOMUtils.lc = !0;
30
30
  },
31
31
  });
32
32
  window.addEventListener("testPassive", () => {}, t),
@@ -35,7 +35,7 @@ export function supportsPassive() {
35
35
  r.j.error(ei(t));
36
36
  }
37
37
  }
38
- return DOMUtils.Wu;
38
+ return DOMUtils.lc;
39
39
  }
40
40
  export function addPassiveEventListener(t, n, e = () => {}) {
41
41
  t.addEventListener(n, e, !!supportsPassive() && { passive: !0 });
package/src/util/net.js CHANGED
@@ -28,7 +28,7 @@ const C = {
28
28
  (r = e.getAllResponseHeaders());
29
29
  } catch (o) {
30
30
  const s = {
31
- error: "" === e.responseText ? qt.Na : qt.Ha,
31
+ error: "" === e.responseText ? qt.Vh : qt.Zh,
32
32
  response: e.responseText,
33
33
  };
34
34
  (0, t.O)(s, r);
@@ -1,45 +1,45 @@
1
1
  import { REQUEST_ATTEMPT_DEFAULT as Ae } from "../common/constants.js";
2
2
  import { STORAGE_KEYS as i } from "../managers/storage-manager.js";
3
3
  const T = {
4
- Os: { Ja: "d", Ks: "cc", Si: "ff", Lr: "t" },
5
- Qu: (e) => {
4
+ Os: { Na: "d", Ks: "cc", Si: "ff", Lr: "t" },
5
+ rm: (e) => {
6
6
  if (e) return e.v(i.k.EE);
7
7
  },
8
- Xu: (e) => {
8
+ sm: (e) => {
9
9
  if (e) return e.v(i.k.lE);
10
10
  },
11
- Yu: (e, t) => {
11
+ nm: (e, t) => {
12
12
  e && e.D(i.k.EE, t);
13
13
  },
14
- Zu: (e, t) => {
14
+ um: (e, t) => {
15
15
  e && e.D(i.k.lE, t);
16
16
  },
17
- Ga: (e, t) => {
17
+ La: (e, t) => {
18
18
  if (!e || !t) return -1;
19
- const r = T.Qu(e);
19
+ const r = T.rm(e);
20
20
  if (null == r) return -1;
21
21
  const s = r[t];
22
22
  return null == s || isNaN(s) ? -1 : s;
23
23
  },
24
- Xh: (e, t) => {
24
+ Wa: (e, t) => {
25
25
  let r = Ae;
26
26
  if (!e || !t) return r;
27
- const s = T.Xu(e);
27
+ const s = T.sm(e);
28
28
  return null == s ? r : ((r = s[t]), null == r || isNaN(r) ? Ae : r);
29
29
  },
30
30
  Ws: (e, t, r) => {
31
31
  if (!e || !t) return;
32
- let s = T.Qu(e);
33
- null == s && (s = {}), (s[t] = r), T.Yu(e, s);
32
+ let s = T.rm(e);
33
+ null == s && (s = {}), (s[t] = r), T.nm(e, s);
34
34
  },
35
35
  si: (e, t, r) => {
36
36
  if (!e || !t) return;
37
- let s = T.Xu(e);
38
- null == s && (s = {}), (s[t] = r), T.Zu(e, s);
37
+ let s = T.sm(e);
38
+ null == s && (s = {}), (s[t] = r), T.um(e, s);
39
39
  },
40
40
  hi: (e, t) => {
41
41
  if (!e || !t) return;
42
- const r = T.Xh(e, t);
42
+ const r = T.Wa(e, t);
43
43
  T.si(e, t, r + 1);
44
44
  },
45
45
  };
@@ -2,7 +2,7 @@ import ge from "./base-device-parser.js";
2
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.Uu(navigator.userAgent || ""));
5
+ super(), (this.rd = ai.ic(navigator.userAgent || ""));
6
6
  }
7
7
  tf() {
8
8
  return this.rd[0] || "Unknown Browser";
@@ -10,7 +10,7 @@ export default class ai extends ge {
10
10
  ef() {
11
11
  return this.rd[1] || "Unknown Version";
12
12
  }
13
- Ia(r) {
13
+ Ta(r) {
14
14
  for (let n = 0; n < r.length; n++) {
15
15
  const e = r[n].string;
16
16
  let i = ai.rf(e, r[n]);
@@ -22,7 +22,7 @@ export default class ai extends ge {
22
22
  }
23
23
  return Promise.resolve(navigator.platform);
24
24
  }
25
- static Uu(r) {
25
+ static ic(r) {
26
26
  let n,
27
27
  e =
28
28
  r.match(
@@ -30,7 +30,7 @@ export default class ai extends ge {
30
30
  ) || [];
31
31
  if (e[1] && /trident/i.test(e[1]))
32
32
  return (
33
- (n = /\brv[ :]+(\.?\d+(\.\d+)*)/g.exec(r) || []), [oi.Ku, n[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];
@@ -75,7 +75,7 @@ export default class ai extends ge {
75
75
  return ["Opera Mini", n[1] || ""];
76
76
  if (e[0]) {
77
77
  const r = e[0].toLowerCase();
78
- "msie" === r && (e[0] = oi.Ku),
78
+ "msie" === r && (e[0] = oi.oc),
79
79
  "crios" === r && (e[0] = oi.pE),
80
80
  "tizen" === r && ((e[0] = "Samsung Smart TV"), (e[1] = null)),
81
81
  "samsungbrowser" === r && (e[0] = "Samsung Browser");
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isArray as p,
3
- isDate as Nt,
4
- isObject as yt,
3
+ isDate as yt,
4
+ isObject as Nt,
5
5
  keys as oo,
6
6
  } from "./code-utils.js";
7
7
  import { getByteLength as U } from "./string-utils.js";
@@ -46,7 +46,7 @@ export function validateCustomAttributeKey(t) {
46
46
  export function validatePropertyType(t) {
47
47
  const e = typeof t;
48
48
  return (
49
- null == t || "number" === e || "boolean" === e || Nt(t) || "string" === e
49
+ null == t || "number" === e || "boolean" === e || yt(t) || "string" === e
50
50
  );
51
51
  }
52
52
  export function _validateNestedProperties(t, e, n) {
@@ -59,16 +59,16 @@ export function _validateNestedProperties(t, e, n) {
59
59
  if (p(t) && p(e)) {
60
60
  for (let r = 0; r < t.length && r < e.length; r++)
61
61
  if (
62
- (Nt(t[r]) && (e[r] = $t(t[r])),
62
+ (yt(t[r]) && (e[r] = $t(t[r])),
63
63
  !_validateNestedProperties(t[r], e[r], i))
64
64
  )
65
65
  return !1;
66
66
  } else {
67
- if (!yt(t)) return validatePropertyType(t);
67
+ if (!Nt(t)) return validatePropertyType(t);
68
68
  for (const r of oo(t)) {
69
69
  const n = t[r];
70
70
  if (o && !validateCustomAttributeKey(r)) return !1;
71
- if (Nt(n)) {
71
+ if (yt(n)) {
72
72
  e[r] = $t(n);
73
73
  }
74
74
  if (!_validateNestedProperties(n, e[r], i)) return !1;
@@ -80,7 +80,7 @@ export function _validateEventPropertyValue(t, e, n, o, i) {
80
80
  let a;
81
81
  return (
82
82
  (a =
83
- yt(t) || p(t)
83
+ Nt(t) || p(t)
84
84
  ? _validateNestedProperties(t, e, i ? 1 : -1)
85
85
  : validatePropertyType(t)),
86
86
  a || r.j.error(`Cannot ${n} because ${o} "${t}" is invalid.`),
@@ -125,7 +125,7 @@ export function validateCustomProperties(t, e, n, o, i) {
125
125
  delete t[r], delete l[r];
126
126
  continue;
127
127
  }
128
- Nt(n) && (l[r] = $t(n));
128
+ yt(n) && (l[r] = $t(n));
129
129
  if (
130
130
  !_validateEventPropertyValue(
131
131
  n,
@@ -160,7 +160,7 @@ export function validateCustomAttributeArrayType(t, e) {
160
160
  return [!1, !1];
161
161
  n = !0;
162
162
  } else {
163
- if (!yt(r)) return i(), [!1, !1];
163
+ if (!Nt(r)) return i(), [!1, !1];
164
164
  if (n) return i(), [!1, !1];
165
165
  if (
166
166
  !validateCustomProperties(