@braze/web-sdk 6.3.1 → 6.4.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 (132) hide show
  1. package/index.d.ts +35 -3
  2. package/package.json +1 -1
  3. package/shared-lib/encoding-utils.js +1 -1
  4. package/shared-lib/event-types.js +23 -23
  5. package/shared-lib/guid.js +2 -2
  6. package/shared-lib/indexed-db-adapter.js +7 -7
  7. package/shared-lib/logger.js +2 -2
  8. package/shared-lib/supported-options.js +22 -21
  9. package/src/Banner/display/banner-to-html.js +2 -2
  10. package/src/Banner/display/detect-banner-impressions.js +7 -7
  11. package/src/Banner/index.js +2 -0
  12. package/src/Banner/request-banners-refresh.js +6 -6
  13. package/src/Banner/ui/insert-banner.js +4 -4
  14. package/src/Card/card-manager-factory.js +5 -5
  15. package/src/Card/card-manager.js +4 -4
  16. package/src/Card/display/card-display.js +7 -7
  17. package/src/Card/log-card-dismissal.js +3 -3
  18. package/src/Card/log-content-card-click.js +3 -3
  19. package/src/Card/log-content-card-impressions.js +6 -6
  20. package/src/Card/models/card.js +7 -7
  21. package/src/Card/util/card-factory.js +6 -6
  22. package/src/ContentCards/content-cards-provider-factory.js +14 -10
  23. package/src/ContentCards/content-cards-provider.js +28 -28
  24. package/src/ContentCards/content-cards.js +4 -4
  25. package/src/ContentCards/get-cached-content-cards.js +2 -2
  26. package/src/ContentCards/request-content-cards-refresh.js +2 -2
  27. package/src/ContentCards/subscribe-to-content-cards-updates.js +3 -3
  28. package/src/ContentCards/ui/show-content-cards.js +8 -8
  29. package/src/Core/add-sdk-metadata.js +2 -2
  30. package/src/Core/change-user.js +5 -5
  31. package/src/Core/disable-sdk.js +3 -3
  32. package/src/Core/enable-sdk.js +3 -3
  33. package/src/Core/get-user.js +1 -1
  34. package/src/Core/is-disabled.js +1 -1
  35. package/src/Core/log-custom-event.js +9 -9
  36. package/src/Core/log-purchase.js +7 -7
  37. package/src/Core/open-session.js +11 -11
  38. package/src/Core/set-sdk-authentication-signature.js +2 -2
  39. package/src/Core/wipe-data.js +5 -5
  40. package/src/DUST/dust-provider-factory.js +20 -0
  41. package/src/DUST/dust-provider.js +288 -0
  42. package/src/DUST/index.js +3 -0
  43. package/src/DUST/subscribe-to-dust.js +24 -0
  44. package/src/DUST/types.js +1 -0
  45. package/src/FeatureFlags/feature-flags-provider-factory.js +9 -9
  46. package/src/FeatureFlags/feature-flags-provider.js +38 -38
  47. package/src/FeatureFlags/get-all-feature-flags.js +3 -3
  48. package/src/FeatureFlags/get-feature-flag.js +3 -3
  49. package/src/FeatureFlags/log-feature-flag-impression.js +5 -5
  50. package/src/FeatureFlags/refresh-feature-flags.js +5 -5
  51. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +3 -3
  52. package/src/InAppMessage/defer-in-app-message.js +1 -1
  53. package/src/InAppMessage/display/html-message-to-html.js +5 -5
  54. package/src/InAppMessage/display/in-app-message-to-html.js +22 -22
  55. package/src/InAppMessage/display/modal-utils.js +5 -5
  56. package/src/InAppMessage/get-deferred-in-app-message.js +1 -1
  57. package/src/InAppMessage/in-app-message-factory.js +4 -4
  58. package/src/InAppMessage/in-app-message-manager.js +80 -80
  59. package/src/InAppMessage/log-in-app-message-button-click.js +5 -5
  60. package/src/InAppMessage/log-in-app-message-click.js +5 -5
  61. package/src/InAppMessage/log-in-app-message-html-click.js +5 -5
  62. package/src/InAppMessage/log-in-app-message-impression.js +1 -1
  63. package/src/InAppMessage/models/control-message.js +1 -1
  64. package/src/InAppMessage/models/full-screen-message.js +12 -12
  65. package/src/InAppMessage/models/html-message.js +14 -14
  66. package/src/InAppMessage/models/in-app-message-button.js +4 -4
  67. package/src/InAppMessage/models/in-app-message.js +119 -121
  68. package/src/InAppMessage/models/modal-message.js +12 -12
  69. package/src/InAppMessage/models/slide-up-message.js +21 -21
  70. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  71. package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
  72. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +3 -3
  73. package/src/InAppMessage/ui/remove-all-visible-in-app-messages.js +18 -0
  74. package/src/InAppMessage/ui/show-in-app-message.js +24 -24
  75. package/src/Push/is-push-blocked.js +2 -2
  76. package/src/Push/is-push-permission-granted.js +2 -2
  77. package/src/Push/is-push-supported.js +2 -2
  78. package/src/Push/push-manager-factory.js +8 -8
  79. package/src/Push/push-manager.js +90 -90
  80. package/src/Push/utils/push-utils.js +17 -17
  81. package/src/User/user-manager.js +12 -12
  82. package/src/User/user.js +48 -48
  83. package/src/common/constants.js +1 -0
  84. package/src/common/content-cards-display.js +20 -20
  85. package/src/common/event-logger.js +4 -4
  86. package/src/common/properties-base.js +16 -16
  87. package/src/l10n/l10n-manager-factory.js +2 -2
  88. package/src/l10n/l10n-manager.js +1 -1
  89. package/src/managers/auth-manager.js +29 -29
  90. package/src/managers/braze-instance.js +141 -133
  91. package/src/managers/device-manager.js +18 -18
  92. package/src/managers/network-manager.js +139 -139
  93. package/src/managers/server-config-manager.js +99 -82
  94. package/src/managers/session-manager.js +32 -32
  95. package/src/managers/storage-manager-factory.js +8 -8
  96. package/src/managers/storage-manager.js +76 -74
  97. package/src/managers/subscription-manager.js +10 -10
  98. package/src/models/backend-errors.js +5 -5
  99. package/src/models/braze-event.js +9 -9
  100. package/src/models/device.js +2 -2
  101. package/src/models/identifier.js +12 -12
  102. package/src/models/push-token.js +12 -12
  103. package/src/models/request-result.js +1 -1
  104. package/src/models/server-config.js +38 -34
  105. package/src/request-controller.js +136 -134
  106. package/src/triggers/models/custom-event-data.js +4 -4
  107. package/src/triggers/models/custom-event-property-data.js +5 -5
  108. package/src/triggers/models/filter-set.js +8 -8
  109. package/src/triggers/models/filter.js +30 -30
  110. package/src/triggers/models/in-app-message-click-data.js +1 -1
  111. package/src/triggers/models/purchase-data.js +1 -1
  112. package/src/triggers/models/purchase-property-data.js +2 -2
  113. package/src/triggers/models/push-click-data.js +1 -1
  114. package/src/triggers/models/trigger-condition.js +36 -36
  115. package/src/triggers/models/trigger-events.js +2 -2
  116. package/src/triggers/models/trigger.js +15 -15
  117. package/src/triggers/triggers-provider-factory.js +3 -3
  118. package/src/triggers/triggers-provider.js +25 -25
  119. package/src/ui/js/attach-css.js +3 -3
  120. package/src/ui/js/load-font-awesome.js +2 -2
  121. package/src/util/base-device-parser.js +3 -3
  122. package/src/util/braze-actions.js +3 -3
  123. package/src/util/browser-detector.js +13 -13
  124. package/src/util/client-hints-parser.js +6 -6
  125. package/src/util/component-utils.js +1 -1
  126. package/src/util/dom-utils.js +10 -10
  127. package/src/util/key-codes.js +1 -1
  128. package/src/util/net.js +1 -1
  129. package/src/util/request-header-utils.js +22 -22
  130. package/src/util/user-agent-parser.js +14 -14
  131. package/src/util/validation-utils.js +9 -9
  132. package/src/util/window-utils.js +1 -1
@@ -7,142 +7,159 @@ export default class Vt {
7
7
  constructor(t) {
8
8
  (this.j = t),
9
9
  (this.j = t),
10
- (this.tl = new u()),
11
- (this.il = new u()),
12
- (this.el = new u()),
13
- (this.sl = new u()),
14
- (this.rl = null),
15
- (this.ul = null);
16
- }
17
- al() {
18
- if (null == this.ul) {
19
- const t = this.j.lt(s.ct.hl);
20
- this.ul = null != t ? ni.qn(t) : new ni();
10
+ (this.El = new u()),
11
+ (this.wl = new u()),
12
+ (this.Cl = new u()),
13
+ (this.yl = new u()),
14
+ (this.Ll = new u()),
15
+ (this.Tl = null),
16
+ (this.Bl = null);
17
+ }
18
+ Fl() {
19
+ if (null == this.Bl) {
20
+ const t = this.j.lt(s.ct.jl);
21
+ this.Bl = null != t ? ni.Vo(t) : new ni();
21
22
  }
22
- return this.ul;
23
+ return this.Bl;
23
24
  }
24
25
  Ft() {
25
- return this.al().ol;
26
+ return this.Fl().Dl;
26
27
  }
27
- cl(t) {
28
- var i, e;
28
+ Nl(t) {
29
+ var i, e, n, r;
29
30
  if (null != t && null != t.config) {
30
- const n = t.config;
31
- if (n.time > this.al().ol) {
32
- const t = (t) => (null == t ? this.al().ml : t),
33
- r = new ni(
34
- n.time,
35
- n.events_blacklist,
36
- n.attributes_blacklist,
37
- n.purchases_blacklist,
38
- n.messaging_session_timeout,
39
- n.vapid_public_key,
40
- n.content_cards,
41
- n.feature_flags,
42
- t(n.global_request_rate_limit),
43
- n.banners,
31
+ const l = t.config;
32
+ if (l.time > this.Fl().Dl) {
33
+ const t = (t) => (null == t ? this.Fl().kl : t),
34
+ u = new ni(
35
+ l.time,
36
+ l.events_blacklist,
37
+ l.attributes_blacklist,
38
+ l.purchases_blacklist,
39
+ l.messaging_session_timeout,
40
+ l.vapid_public_key,
41
+ l.content_cards,
42
+ l.feature_flags,
43
+ t(l.global_request_rate_limit),
44
+ l.banners,
45
+ l.dust,
44
46
  );
45
- let l = !1;
46
- null != r.dl && this.Wn() !== r.dl && (l = !0);
47
- let u = !1;
48
- null != r.gl.enabled && this.gi() !== r.gl.enabled && (u = !0);
49
47
  let a = !1;
50
- null != r.he.enabled && this.Re() !== r.he.enabled && (a = !0);
48
+ null != u.xl && this.Zn() !== u.xl && (a = !0);
51
49
  let h = !1;
50
+ null != u.Gl.enabled && this.wi() !== u.Gl.enabled && (h = !0);
51
+ let o = !1;
52
+ null != u.je.enabled && this.Te() !== u.je.enabled && (o = !0);
53
+ let d = !1;
52
54
  null !=
53
- (null === (i = r.banners) || void 0 === i ? void 0 : i.enabled) &&
55
+ (null === (i = u.banners) || void 0 === i ? void 0 : i.enabled) &&
54
56
  this.Dt() !==
55
- (null === (e = r.banners) || void 0 === e ? void 0 : e.enabled) &&
56
- (h = !0),
57
- (this.ul = r),
58
- this.j.ft(s.ct.hl, r.dt()),
59
- l && this.tl.L(),
60
- u && this.il.L(),
61
- a && this.el.L(),
62
- h && this.sl.L();
57
+ (null === (e = u.banners) || void 0 === e ? void 0 : e.enabled) &&
58
+ (d = !0);
59
+ let c = !1;
60
+ null != (null === (n = u.dust) || void 0 === n ? void 0 : n.enabled) &&
61
+ this.Xi() !==
62
+ (null === (r = u.dust) || void 0 === r ? void 0 : r.enabled) &&
63
+ (c = !0),
64
+ (this.Bl = u),
65
+ this.j.ft(s.ct.jl, u.dt()),
66
+ a && this.El.L(),
67
+ h && this.wl.L(),
68
+ o && this.Cl.L(),
69
+ d && this.yl.L(),
70
+ c && this.Ll.L();
63
71
  }
64
72
  }
65
73
  }
66
- _n(t) {
67
- const i = this.tl.wt(t);
68
- return this.rl && this.tl.removeSubscription(this.rl), (this.rl = i), i;
74
+ $n(t) {
75
+ const i = this.El.wt(t);
76
+ return this.Tl && this.El.removeSubscription(this.Tl), (this.Tl = i), i;
69
77
  }
70
- vi(t) {
71
- return this.il.wt(t);
78
+ bi(t) {
79
+ return this.wl.wt(t);
72
80
  }
73
- Ue(t) {
74
- return this.el.wt(t);
81
+ $e(t) {
82
+ return this.Cl.wt(t);
75
83
  }
76
84
  P(t) {
77
- return this.sl.wt(t);
85
+ return this.yl.wt(t);
86
+ }
87
+ Tr(t) {
88
+ return this.Ll.wt(t);
78
89
  }
79
90
  ge(t) {
80
- return -1 !== this.al().bl.indexOf(t);
91
+ return -1 !== this.Fl().Il.indexOf(t);
81
92
  }
82
93
  hu(t) {
83
- return -1 !== this.al().fl.indexOf(t);
94
+ return -1 !== this.Fl().Ml.indexOf(t);
84
95
  }
85
96
  Dr(t) {
86
- return -1 !== this.al().vl.indexOf(t);
97
+ return -1 !== this.Fl().Sl.indexOf(t);
87
98
  }
88
- Rl() {
89
- return this.al().Cl;
99
+ Kl() {
100
+ return this.Fl().Pl;
90
101
  }
91
- Wn() {
92
- return this.al().dl;
102
+ Zn() {
103
+ return this.Fl().xl;
93
104
  }
94
- gi() {
95
- return this.al().gl.enabled || !1;
105
+ wi() {
106
+ return this.Fl().Gl.enabled || !1;
96
107
  }
97
- El() {
98
- const t = this.al().ml;
108
+ _l() {
109
+ const t = this.Fl().kl;
99
110
  return !(!t || null == t.enabled) && t.enabled;
100
111
  }
101
- Ju() {
102
- if (!this.El()) return -1;
103
- const t = this.al().ml;
112
+ Rl() {
113
+ if (!this._l()) return -1;
114
+ const t = this.Fl().kl;
104
115
  return null == t.capacity || t.capacity < 10 ? -1 : t.capacity;
105
116
  }
106
- Qu() {
107
- if (!this.El()) return -1;
108
- const t = this.al().ml;
117
+ gl() {
118
+ if (!this._l()) return -1;
119
+ const t = this.Fl().kl;
109
120
  return null == t.refill_rate || t.refill_rate <= 0 ? -1 : t.refill_rate;
110
121
  }
111
- wl(t) {
112
- const i = this.al().ml.endpoint_overrides;
122
+ Al(t) {
123
+ const i = this.Fl().kl.endpoint_overrides;
113
124
  return null == i ? null : i[t];
114
125
  }
115
- Vu(t) {
116
- const i = this.wl(t);
126
+ bl(t) {
127
+ const i = this.Al(t);
117
128
  return null == i || isNaN(i.capacity) || i.capacity <= 0 ? -1 : i.capacity;
118
129
  }
119
- Zu(t) {
120
- const i = this.wl(t);
130
+ ql(t) {
131
+ const i = this.Al(t);
121
132
  return null == i || isNaN(i.refill_rate) || i.refill_rate <= 0
122
133
  ? -1
123
134
  : i.refill_rate;
124
135
  }
125
- Re() {
126
- return this.al().he.enabled && null == this.ke()
127
- ? (c.rt(m.pu, { e: "Missing feature flag refresh_rate_limit." }), !1)
128
- : this.al().he.enabled || !1;
136
+ Te() {
137
+ return this.Fl().je.enabled && null == this.Be()
138
+ ? (c.rt(m.ju, { e: "Missing feature flag refresh_rate_limit." }), !1)
139
+ : this.Fl().je.enabled || !1;
129
140
  }
130
- ke() {
131
- return this.al().he.refresh_rate_limit;
141
+ Be() {
142
+ return this.Fl().je.refresh_rate_limit;
132
143
  }
133
144
  Dt() {
134
145
  var t;
135
146
  return (
136
- (null === (t = this.al().banners) || void 0 === t ? void 0 : t.enabled) ||
147
+ (null === (t = this.Fl().banners) || void 0 === t ? void 0 : t.enabled) ||
137
148
  null
138
149
  );
139
150
  }
140
151
  te() {
141
152
  var t;
142
153
  return (
143
- (null === (t = this.al().banners) || void 0 === t
154
+ (null === (t = this.Fl().banners) || void 0 === t
144
155
  ? void 0
145
156
  : t.max_placements) || 0
146
157
  );
147
158
  }
159
+ Xi() {
160
+ var t;
161
+ return (
162
+ (null === (t = this.Fl().dust) || void 0 === t ? void 0 : t.enabled) || !1
163
+ );
164
+ }
148
165
  }
@@ -1,10 +1,10 @@
1
1
  import { STORAGE_KEYS as s } from "../managers/storage-manager.js";
2
2
  import ue from "../models/braze-event.js";
3
3
  import _t from "../models/identifier.js";
4
- import { convertMsToSeconds as X } from "../util/date-utils.js";
4
+ import { convertMsToSeconds as P } from "../util/date-utils.js";
5
5
  import {
6
6
  logger as E,
7
- Guid as P,
7
+ Guid as L,
8
8
  EventTypes as m,
9
9
  } from "../../shared-lib/index.js";
10
10
  export default class Kt {
@@ -12,64 +12,64 @@ export default class Kt {
12
12
  (this.j = s),
13
13
  (this.Cs = t),
14
14
  (this.h = i),
15
- (this.Sl = e),
15
+ (this.zl = e),
16
16
  (this.j = s),
17
17
  (this.Cs = t),
18
18
  (this.h = i),
19
- (this.jl = 1e3),
19
+ (this.Hl = 1e3),
20
20
  (null == e || isNaN(e)) && (e = 1800),
21
- e < this.jl / 1e3 &&
21
+ e < this.Hl / 1e3 &&
22
22
  (E.info(
23
23
  "Specified session timeout of " +
24
24
  e +
25
25
  "s is too small, using the minimum session timeout of " +
26
- this.jl / 1e3 +
26
+ this.Hl / 1e3 +
27
27
  "s instead.",
28
28
  ),
29
- (e = this.jl / 1e3)),
30
- (this.Sl = e);
29
+ (e = this.Hl / 1e3)),
30
+ (this.zl = e);
31
31
  }
32
- xl(s, t) {
33
- return new ue(this.Cs.getUserId(), m.Dl, s, t.eu, { d: X(s - t.Gl) });
32
+ Wl(s, t) {
33
+ return new ue(this.Cs.getUserId(), m.Jl, s, t.eu, { d: P(s - t.Ol) });
34
34
  }
35
35
  bt() {
36
- const t = this.j.tu(s.iu.Nl);
36
+ const t = this.j.tu(s.iu.Ql);
37
37
  return null == t ? null : t.eu;
38
38
  }
39
- zl() {
39
+ Ul() {
40
40
  const t = new Date().valueOf(),
41
- i = this.h.Rl();
41
+ i = this.h.Kl();
42
42
  if (null == i) return !1;
43
- const e = this.j.lt(s.ct.Hl),
43
+ const e = this.j.lt(s.ct.Vl),
44
44
  n = null == e || t - e > 1e3 * i;
45
- return n && this.j.ft(s.ct.Hl, t), n;
45
+ return n && this.j.ft(s.ct.Vl, t), n;
46
46
  }
47
- Wl(s, t) {
48
- return null == t || null == t.kl || (!(s - t.Gl < this.jl) && t.kl < s);
47
+ Xl(s, t) {
48
+ return null == t || null == t.Yl || (!(s - t.Ol < this.Hl) && t.Yl < s);
49
49
  }
50
- qo() {
50
+ Fo() {
51
51
  const t = new Date().valueOf(),
52
- i = t + 1e3 * this.Sl,
53
- e = this.j.tu(s.iu.Nl);
54
- if (this.Wl(t, e)) {
52
+ i = t + 1e3 * this.zl,
53
+ e = this.j.tu(s.iu.Ql);
54
+ if (this.Xl(t, e)) {
55
55
  let n = "Generating session start event with time " + t;
56
56
  if (null != e) {
57
- let s = e.ql;
58
- s - e.Gl < this.jl && (s = e.Gl + this.jl),
59
- this.j.yl(this.xl(s, e)),
57
+ let s = e.Zl;
58
+ s - e.Ol < this.Hl && (s = e.Ol + this.Hl),
59
+ this.j.$l(this.Wl(s, e)),
60
60
  (n += " (old session ended " + s + ")");
61
61
  }
62
62
  (n += ". Will expire " + i.valueOf()), E.info(n);
63
- const o = new _t(P.oe(), i);
64
- this.j.yl(new ue(this.Cs.getUserId(), m.Al, t, o.eu)),
65
- this.j.uu(s.iu.Nl, o);
66
- return null == this.j.lt(s.ct.Hl) && this.j.ft(s.ct.Hl, t), o.eu;
63
+ const o = new _t(L.oe(), i);
64
+ this.j.$l(new ue(this.Cs.getUserId(), m.sm, t, o.eu)),
65
+ this.j.uu(s.iu.Ql, o);
66
+ return null == this.j.lt(s.ct.Vl) && this.j.ft(s.ct.Vl, t), o.eu;
67
67
  }
68
- if (null != e) return (e.ql = t), (e.kl = i), this.j.uu(s.iu.Nl, e), e.eu;
68
+ if (null != e) return (e.Zl = t), (e.Yl = i), this.j.uu(s.iu.Ql, e), e.eu;
69
69
  }
70
- Bl() {
71
- const t = this.j.tu(s.iu.Nl);
70
+ tm() {
71
+ const t = this.j.tu(s.iu.Ql);
72
72
  null != t &&
73
- (this.j.Fl(s.iu.Nl), this.j.yl(this.xl(new Date().valueOf(), t)));
73
+ (this.j.im(s.iu.Ql), this.j.$l(this.Wl(new Date().valueOf(), t)));
74
74
  }
75
75
  }
@@ -1,14 +1,14 @@
1
1
  import ee, { STORAGE_KEYS as s } from "./storage-manager.js";
2
2
  import { logger as E } from "../../shared-lib/index.js";
3
3
  const Gt = {
4
- La: function (e, o = !1) {
4
+ Ya: function (e, o = !1) {
5
5
  let t = !1;
6
6
  try {
7
7
  if (localStorage && localStorage.getItem)
8
8
  try {
9
- localStorage.setItem(s.ct.ec, "true"),
10
- localStorage.getItem(s.ct.ec) &&
11
- (localStorage.removeItem(s.ct.ec), (t = !0));
9
+ localStorage.setItem(s.ct.lc, "true"),
10
+ localStorage.getItem(s.ct.lc) &&
11
+ (localStorage.removeItem(s.ct.lc), (t = !0));
12
12
  } catch (e) {
13
13
  if (
14
14
  !(
@@ -24,12 +24,12 @@ const Gt = {
24
24
  } catch (e) {
25
25
  E.info("Local Storage not supported!");
26
26
  }
27
- const r = Gt.oc(),
28
- a = new ee.tc(e, r && !o, t);
27
+ const r = Gt.gc(),
28
+ a = new ee.uc(e, r && !o, t);
29
29
  let n;
30
- return (n = t ? new ee.rc(e) : new ee.ac()), new ee(a, n);
30
+ return (n = t ? new ee.dc(e) : new ee.mc()), new ee(a, n);
31
31
  },
32
- oc: function () {
32
+ gc: function () {
33
33
  return (
34
34
  navigator.cookieEnabled ||
35
35
  ("cookie" in document &&