@braze/web-sdk 6.7.0 → 6.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 (97) hide show
  1. package/index.d.ts +74 -27
  2. package/package.json +1 -1
  3. package/shared-lib/encoding-utils.js +2 -2
  4. package/shared-lib/event-types.js +13 -13
  5. package/shared-lib/indexed-db-adapter.js +3 -3
  6. package/shared-lib/logger.js +2 -2
  7. package/shared-lib/supported-options.js +8 -8
  8. package/src/Banner/log-banner-impressions.js +20 -11
  9. package/src/ContentCards/content-cards-provider-factory.js +13 -11
  10. package/src/ContentCards/content-cards-provider.js +4 -4
  11. package/src/ContentCards/get-cached-content-cards.js +2 -2
  12. package/src/ContentCards/request-content-cards-refresh.js +2 -2
  13. package/src/ContentCards/subscribe-to-content-cards-updates.js +10 -10
  14. package/src/ContentCards/ui/show-content-cards.js +3 -3
  15. package/src/Core/change-user.js +2 -2
  16. package/src/Core/index.js +1 -0
  17. package/src/Core/log-ecommerce-event.js +29 -0
  18. package/src/Core/log-purchase.js +17 -192
  19. package/src/Core/open-session.js +6 -6
  20. package/src/Core/set-sdk-authentication-signature.js +1 -1
  21. package/src/Core/subscribe-to-sdk-authentication-failures.js +1 -1
  22. package/src/DUST/dust-connection-core.js +1 -0
  23. package/src/DUST/dust-provider-factory.js +10 -10
  24. package/src/DUST/dust-provider.js +181 -158
  25. package/src/DUST/dust-shared-worker-code.js +1 -1
  26. package/src/DUST/dust-shared-worker-impl.js +93 -100
  27. package/src/DUST/dust-worker-bridge.js +27 -27
  28. package/src/DUST/subscribe-to-dust.js +7 -7
  29. package/src/InAppMessage/defer-in-app-message.js +1 -1
  30. package/src/InAppMessage/display/in-app-message-to-html.js +16 -16
  31. package/src/InAppMessage/display/modal-utils.js +2 -2
  32. package/src/InAppMessage/in-app-message-manager.js +64 -64
  33. package/src/InAppMessage/log-in-app-message-button-click.js +1 -1
  34. package/src/InAppMessage/log-in-app-message-click.js +1 -1
  35. package/src/InAppMessage/log-in-app-message-html-click.js +2 -2
  36. package/src/InAppMessage/log-in-app-message-impression.js +1 -1
  37. package/src/InAppMessage/models/full-screen-message.js +7 -7
  38. package/src/InAppMessage/models/html-message.js +1 -1
  39. package/src/InAppMessage/models/in-app-message-button.js +4 -4
  40. package/src/InAppMessage/models/in-app-message.js +22 -22
  41. package/src/InAppMessage/models/modal-message.js +5 -5
  42. package/src/InAppMessage/models/slide-up-message.js +6 -6
  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 +20 -20
  47. package/src/Push/push-manager-factory.js +2 -2
  48. package/src/Push/push-manager.js +8 -8
  49. package/src/Push/utils/push-utils.js +6 -6
  50. package/src/User/user-manager.js +5 -5
  51. package/src/User/user.js +8 -8
  52. package/src/common/constants.js +1 -0
  53. package/src/common/content-cards-display.js +2 -2
  54. package/src/l10n/l10n-manager-factory.js +1 -1
  55. package/src/l10n/l10n-manager.js +1 -1
  56. package/src/managers/braze-instance.js +21 -21
  57. package/src/managers/device-manager.js +6 -6
  58. package/src/managers/network-manager.js +93 -92
  59. package/src/managers/server-config-manager.js +68 -68
  60. package/src/managers/session-manager.js +2 -2
  61. package/src/managers/storage-manager-factory.js +4 -4
  62. package/src/managers/storage-manager.js +120 -120
  63. package/src/managers/subscription-manager.js +1 -1
  64. package/src/managers/utils.js +1 -1
  65. package/src/models/backend-errors.js +5 -5
  66. package/src/models/braze-event.js +3 -3
  67. package/src/models/device.js +1 -1
  68. package/src/models/identifier.js +3 -3
  69. package/src/models/push-token.js +5 -5
  70. package/src/models/server-config.js +27 -27
  71. package/src/request-controller.js +99 -99
  72. package/src/triggers/models/custom-event-data.js +4 -4
  73. package/src/triggers/models/custom-event-property-data.js +5 -5
  74. package/src/triggers/models/filter-set.js +2 -2
  75. package/src/triggers/models/filter.js +1 -1
  76. package/src/triggers/models/in-app-message-click-data.js +5 -5
  77. package/src/triggers/models/purchase-data.js +1 -1
  78. package/src/triggers/models/purchase-property-data.js +2 -2
  79. package/src/triggers/models/push-click-data.js +5 -5
  80. package/src/triggers/models/trigger-condition.js +42 -42
  81. package/src/triggers/models/trigger-events.js +2 -2
  82. package/src/triggers/models/trigger.js +10 -10
  83. package/src/triggers/triggers-provider-factory.js +1 -1
  84. package/src/triggers/triggers-provider.js +30 -30
  85. package/src/types.js +5 -1
  86. package/src/ui/js/attach-css.js +1 -1
  87. package/src/util/braze-actions.js +5 -5
  88. package/src/util/browser-detector.js +13 -13
  89. package/src/util/client-hints-parser.js +2 -2
  90. package/src/util/dom-utils.js +2 -2
  91. package/src/util/ecommerce-event-validation.js +326 -0
  92. package/src/util/iso-4217-currency-codes.js +176 -0
  93. package/src/util/net.js +3 -3
  94. package/src/util/request-header-utils.js +18 -18
  95. package/src/util/user-agent-parser.js +14 -14
  96. package/src/util/validation-utils.js +2 -2
  97. package/src/util/window-utils.js +2 -2
@@ -1,13 +1,14 @@
1
+ import { EventTypes as p, logger as E } from "../../shared-lib/index.js";
2
+ import { isValidIso4217CurrencyCode as or } from "../util/iso-4217-currency-codes.js";
3
+ import { MAX_PURCHASE_QUANTITY as nr } from "../common/constants.js";
4
+ import v from "../common/event-logger.js";
1
5
  import r from "../managers/braze-instance.js";
2
- import { MAX_PURCHASE_QUANTITY as or } from "../common/constants.js";
3
- import { logger as E, EventTypes as p } from "../../shared-lib/index.js";
4
6
  import ot from "../triggers/models/trigger-events.js";
5
7
  import { TriggersProviderFactory as rt } from "../triggers/triggers-provider-factory.js";
6
8
  import {
7
9
  validateCustomProperties as nt,
8
10
  validateCustomString as mt,
9
11
  } from "../util/validation-utils.js";
10
- import v from "../common/event-logger.js";
11
12
  export function logPurchase(e, o, i, n, t) {
12
13
  if (!r.rr()) return !1;
13
14
  if (
@@ -30,210 +31,34 @@ export function logPurchase(e, o, i, n, t) {
30
31
  E.error(`logPurchase requires an integer quantity, got ${n}, ignoring.`),
31
32
  !1
32
33
  );
33
- const D = parseInt(n.toString());
34
- if (D < 1 || D > or)
34
+ const u = parseInt(n.toString());
35
+ if (u < 1 || u > nr)
35
36
  return (
36
37
  E.error(
37
- `logPurchase requires a quantity >1 and <${or}, got ${D}, ignoring.`,
38
+ `logPurchase requires a quantity >1 and <${nr}, got ${u}, ignoring.`,
38
39
  ),
39
40
  !1
40
41
  );
41
- i = null != i ? i.toUpperCase() : i;
42
- if (
43
- -1 ===
44
- [
45
- "AED",
46
- "AFN",
47
- "ALL",
48
- "AMD",
49
- "ANG",
50
- "AOA",
51
- "ARS",
52
- "AUD",
53
- "AWG",
54
- "AZN",
55
- "BAM",
56
- "BBD",
57
- "BDT",
58
- "BGN",
59
- "BHD",
60
- "BIF",
61
- "BMD",
62
- "BND",
63
- "BOB",
64
- "BRL",
65
- "BSD",
66
- "BTC",
67
- "BTN",
68
- "BWP",
69
- "BYR",
70
- "BZD",
71
- "CAD",
72
- "CDF",
73
- "CHF",
74
- "CLF",
75
- "CLP",
76
- "CNY",
77
- "COP",
78
- "CRC",
79
- "CUC",
80
- "CUP",
81
- "CVE",
82
- "CZK",
83
- "DJF",
84
- "DKK",
85
- "DOP",
86
- "DZD",
87
- "EEK",
88
- "EGP",
89
- "ERN",
90
- "ETB",
91
- "EUR",
92
- "FJD",
93
- "FKP",
94
- "GBP",
95
- "GEL",
96
- "GGP",
97
- "GHS",
98
- "GIP",
99
- "GMD",
100
- "GNF",
101
- "GTQ",
102
- "GYD",
103
- "HKD",
104
- "HNL",
105
- "HRK",
106
- "HTG",
107
- "HUF",
108
- "IDR",
109
- "ILS",
110
- "IMP",
111
- "INR",
112
- "IQD",
113
- "IRR",
114
- "ISK",
115
- "JEP",
116
- "JMD",
117
- "JOD",
118
- "JPY",
119
- "KES",
120
- "KGS",
121
- "KHR",
122
- "KMF",
123
- "KPW",
124
- "KRW",
125
- "KWD",
126
- "KYD",
127
- "KZT",
128
- "LAK",
129
- "LBP",
130
- "LKR",
131
- "LRD",
132
- "LSL",
133
- "LTL",
134
- "LVL",
135
- "LYD",
136
- "MAD",
137
- "MDL",
138
- "MGA",
139
- "MKD",
140
- "MMK",
141
- "MNT",
142
- "MOP",
143
- "MRO",
144
- "MTL",
145
- "MUR",
146
- "MVR",
147
- "MWK",
148
- "MXN",
149
- "MYR",
150
- "MZN",
151
- "NAD",
152
- "NGN",
153
- "NIO",
154
- "NOK",
155
- "NPR",
156
- "NZD",
157
- "OMR",
158
- "PAB",
159
- "PEN",
160
- "PGK",
161
- "PHP",
162
- "PKR",
163
- "PLN",
164
- "PYG",
165
- "QAR",
166
- "RON",
167
- "RSD",
168
- "RUB",
169
- "RWF",
170
- "SAR",
171
- "SBD",
172
- "SCR",
173
- "SDG",
174
- "SEK",
175
- "SGD",
176
- "SHP",
177
- "SLL",
178
- "SOS",
179
- "SRD",
180
- "STD",
181
- "SVC",
182
- "SYP",
183
- "SZL",
184
- "THB",
185
- "TJS",
186
- "TMT",
187
- "TND",
188
- "TOP",
189
- "TRY",
190
- "TTD",
191
- "TWD",
192
- "TZS",
193
- "UAH",
194
- "UGX",
195
- "USD",
196
- "UYU",
197
- "UZS",
198
- "VEF",
199
- "VND",
200
- "VUV",
201
- "WST",
202
- "XAF",
203
- "XAG",
204
- "XAU",
205
- "XCD",
206
- "XDR",
207
- "XOF",
208
- "XPD",
209
- "XPF",
210
- "XPT",
211
- "YER",
212
- "ZAR",
213
- "ZMK",
214
- "ZMW",
215
- "ZWL",
216
- ].indexOf(i)
217
- )
42
+ if (((i = null != i ? i.toUpperCase() : i), !or(i)))
218
43
  return (
219
44
  E.error(`logPurchase requires a valid currencyCode, got ${i}, ignoring.`),
220
45
  !1
221
46
  );
222
- const [u, a] = nt(
47
+ const [a, g] = nt(
223
48
  t,
224
49
  "logPurchase",
225
50
  "purchaseProperties",
226
51
  `log purchase "${e}"`,
227
52
  "purchase",
228
53
  );
229
- if (!u) return !1;
230
- const g = r.l();
231
- if (g && g.Dr(e))
54
+ if (!a) return !1;
55
+ const c = r.l();
56
+ if (c && c.$r(e))
232
57
  return E.info(`Purchase "${e}" is blocklisted, ignoring.`), !1;
233
- const P = v.wt(p.Pr, { pid: e, c: i, p: s, q: D, pr: a });
234
- if (P.lt) {
235
- E.info(`Logged ${D} purchase${D > 1 ? "s" : ""} of "${e}" for ${i} ${s}.`);
236
- for (const r of P.Ce) rt.o().Ee(ot.Rr, [e, t], r);
58
+ const l = v.wt(p.Pr, { pid: e, c: i, p: s, q: u, pr: g });
59
+ if (l.lt) {
60
+ E.info(`Logged ${u} purchase${u > 1 ? "s" : ""} of "${e}" for ${i} ${s}.`);
61
+ for (const r of l.Ce) rt.o().Ee(ot.qr, [e, t], r);
237
62
  }
238
- return P.lt;
63
+ return l.lt;
239
64
  }
@@ -9,17 +9,17 @@ export function openSession() {
9
9
  i.openSession();
10
10
  const t = et.Ps.$s,
11
11
  o = new et(t, E);
12
- o.kr(t.Os.$r, (r, n) => {
12
+ o.kr(t.Os.yr, (r, n) => {
13
13
  const e = n.lastClick,
14
14
  s = n.trackingString;
15
15
  E.info(`Firing push click trigger from ${s} push click at ${e}`);
16
- const c = i.yr(e, s),
16
+ const c = i.Fr(e, s),
17
17
  g = function () {
18
- rt.o().Ee(ot.Fr, [s], c);
18
+ rt.o().Ee(ot.Sr, [s], c);
19
19
  };
20
- i.Sr(g, g), o.ge(t.Os.$r, r);
20
+ i.Ar(g, g), o.ge(t.Os.yr, r);
21
21
  }),
22
- o.Xs(t.Os.qr, function (r) {
23
- i.Ar(r);
22
+ o.Xs(t.Os.Br, function (r) {
23
+ i.Dr(r);
24
24
  });
25
25
  }
@@ -3,6 +3,6 @@ import { validateStandardString as tr } from "../util/validation-utils.js";
3
3
  export function setSdkAuthenticationSignature(t) {
4
4
  if (!r.rr()) return !1;
5
5
  if ("" === t || !tr(t, "set signature", "signature", !1)) return !1;
6
- const i = r.Br();
6
+ const i = r.Er();
7
7
  return !!i && (i.setSdkAuthenticationSignature(t), !0);
8
8
  }
@@ -2,7 +2,7 @@ import r from "../managers/braze-instance.js";
2
2
  export function subscribeToSdkAuthenticationFailures(i) {
3
3
  var n;
4
4
  if (r.rr())
5
- return null === (n = r.Br()) || void 0 === n
5
+ return null === (n = r.Er()) || void 0 === n
6
6
  ? void 0
7
7
  : n.subscribeToSdkAuthenticationFailures(i);
8
8
  }
@@ -2,6 +2,7 @@ export const MIN_BACKOFF_MS = 1e4;
2
2
  export const MAX_BACKOFF_MS = 3e5;
3
3
  export const BACKOFF_SCALE_FACTOR = 3;
4
4
  export const MAX_RETRIES = 5;
5
+ export const CONNECTION_VALID_THRESHOLD_MS = 3e3;
5
6
  export function randomInRange(t, e) {
6
7
  return Math.floor(Math.random() * (e - t + 1)) + t;
7
8
  }
@@ -1,22 +1,22 @@
1
1
  import r from "../managers/braze-instance.js";
2
- import nr from "./dust-provider.js";
3
- const sr = {
2
+ import sr from "./dust-provider.js";
3
+ const dr = {
4
4
  i: !1,
5
5
  provider: null,
6
6
  o: () => {
7
- if ((sr.t(), !sr.provider)) {
7
+ if ((dr.t(), !dr.provider)) {
8
8
  const t = r.er("dustHost");
9
- (sr.provider = new nr(r.m(), r.p(), r.l(), t)),
10
- r.v(sr.provider),
11
- sr.provider.Hr();
9
+ (dr.provider = new sr(r.m(), r.p(), r.l(), t)),
10
+ r.v(dr.provider),
11
+ dr.provider.Hr();
12
12
  }
13
- return sr.provider;
13
+ return dr.provider;
14
14
  },
15
15
  t: () => {
16
- sr.i || (r.g(sr), (sr.i = !0));
16
+ dr.i || (r.g(dr), (dr.i = !0));
17
17
  },
18
18
  destroy: () => {
19
- sr.provider && sr.provider.destroy(), (sr.provider = null), (sr.i = !1);
19
+ dr.provider && dr.provider.destroy(), (dr.provider = null), (dr.i = !1);
20
20
  },
21
21
  };
22
- export default sr;
22
+ export default dr;