@braze/web-sdk 6.8.0 → 6.9.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 (137) hide show
  1. package/index.d.ts +99 -19
  2. package/package.json +1 -1
  3. package/shared-lib/event-types.js +20 -20
  4. package/shared-lib/indexed-db-adapter.js +64 -64
  5. package/shared-lib/logger.js +18 -18
  6. package/shared-lib/supported-options.js +8 -8
  7. package/src/Banner/banner-provider.js +67 -59
  8. package/src/Banner/banner.js +40 -19
  9. package/src/Banner/dismiss-banner.js +4 -0
  10. package/src/Banner/display/banner-to-html.js +10 -10
  11. package/src/Banner/display/destroy-banner-html.js +2 -2
  12. package/src/Banner/get-all-banners.js +6 -6
  13. package/src/Banner/get-banner.js +6 -6
  14. package/src/Banner/index.js +1 -0
  15. package/src/Banner/log-banner-click.js +7 -7
  16. package/src/Banner/log-banner-dismissal.js +7 -7
  17. package/src/Banner/log-banner-impressions.js +10 -10
  18. package/src/Banner/request-banners-refresh.js +8 -8
  19. package/src/Banner/subscribe-to-banners-updates.js +5 -5
  20. package/src/Banner/ui/insert-banner.js +8 -8
  21. package/src/Card/card-manager.js +31 -31
  22. package/src/Card/log-card-dismissal.js +2 -2
  23. package/src/Card/log-content-card-click.js +2 -2
  24. package/src/Card/log-content-card-impressions.js +4 -4
  25. package/src/Card/models/captioned-image.js +15 -15
  26. package/src/Card/models/card.js +89 -89
  27. package/src/Card/models/classic-card.js +16 -16
  28. package/src/Card/models/control-card.js +7 -7
  29. package/src/Card/models/image-only.js +13 -13
  30. package/src/Card/util/card-factory.js +32 -32
  31. package/src/ContentCards/content-cards-provider.js +102 -102
  32. package/src/ContentCards/get-cached-content-cards.js +1 -1
  33. package/src/ContentCards/subscribe-to-content-cards-updates.js +3 -3
  34. package/src/ContentCards/ui/show-content-cards.js +5 -5
  35. package/src/Core/add-sdk-metadata.js +2 -2
  36. package/src/Core/change-user.js +3 -3
  37. package/src/Core/destroy.js +2 -2
  38. package/src/Core/disable-sdk.js +4 -4
  39. package/src/Core/enable-sdk.js +4 -4
  40. package/src/Core/get-device-id.js +2 -2
  41. package/src/Core/handle-braze-action.js +5 -5
  42. package/src/Core/log-custom-event.js +5 -5
  43. package/src/Core/log-ecommerce-event.js +5 -5
  44. package/src/Core/log-purchase.js +9 -9
  45. package/src/Core/open-session.js +7 -7
  46. package/src/Core/set-logger.js +2 -2
  47. package/src/Core/toggle-logging.js +2 -2
  48. package/src/Core/wipe-data.js +6 -6
  49. package/src/DUST/dust-provider.js +249 -240
  50. package/src/DUST/dust-shared-worker-code.js +1 -1
  51. package/src/DUST/dust-shared-worker-impl.js +15 -14
  52. package/src/DUST/dust-worker-bridge.js +50 -35
  53. package/src/DUST/subscribe-to-dust.js +7 -7
  54. package/src/FeatureFlags/feature-flag-factory.js +8 -8
  55. package/src/FeatureFlags/feature-flag.js +3 -3
  56. package/src/FeatureFlags/feature-flags-provider.js +21 -21
  57. package/src/FeatureFlags/log-feature-flag-impression.js +5 -5
  58. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +1 -1
  59. package/src/InAppMessage/constants.js +3 -3
  60. package/src/InAppMessage/defer-in-app-message.js +4 -4
  61. package/src/InAppMessage/display/html-message-to-html.js +4 -4
  62. package/src/InAppMessage/display/in-app-message-to-html.js +16 -16
  63. package/src/InAppMessage/in-app-message-factory.js +36 -36
  64. package/src/InAppMessage/in-app-message-manager.js +78 -78
  65. package/src/InAppMessage/log-in-app-message-button-click.js +4 -4
  66. package/src/InAppMessage/log-in-app-message-click.js +3 -3
  67. package/src/InAppMessage/log-in-app-message-html-click.js +5 -5
  68. package/src/InAppMessage/log-in-app-message-impression.js +4 -4
  69. package/src/InAppMessage/models/control-message.js +4 -4
  70. package/src/InAppMessage/models/full-screen-message.js +4 -4
  71. package/src/InAppMessage/models/html-message.js +3 -3
  72. package/src/InAppMessage/models/in-app-message-button.js +4 -4
  73. package/src/InAppMessage/models/in-app-message.js +12 -12
  74. package/src/InAppMessage/models/modal-message.js +4 -4
  75. package/src/InAppMessage/models/slide-up-message.js +4 -4
  76. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  77. package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
  78. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +3 -3
  79. package/src/InAppMessage/ui/show-in-app-message.js +14 -14
  80. package/src/Push/push-manager-factory.js +2 -2
  81. package/src/Push/push-manager.js +38 -38
  82. package/src/Push/utils/push-utils.js +6 -6
  83. package/src/User/user-manager.js +14 -14
  84. package/src/User/user.js +25 -25
  85. package/src/common/base-provider.js +1 -1
  86. package/src/common/content-cards-display.js +7 -7
  87. package/src/common/event-logger.js +3 -3
  88. package/src/common/properties-base.js +3 -3
  89. package/src/l10n/l10n-manager-factory.js +1 -1
  90. package/src/l10n/l10n-manager.js +3 -3
  91. package/src/managers/auth-manager.js +11 -11
  92. package/src/managers/braze-instance.js +56 -56
  93. package/src/managers/device-manager.js +10 -10
  94. package/src/managers/network-manager.js +102 -101
  95. package/src/managers/server-config-manager.js +115 -98
  96. package/src/managers/session-manager.js +20 -20
  97. package/src/managers/storage-manager-factory.js +9 -9
  98. package/src/managers/storage-manager.js +74 -74
  99. package/src/managers/subscription-manager.js +2 -2
  100. package/src/managers/utils.js +1 -1
  101. package/src/models/backend-errors.js +5 -5
  102. package/src/models/braze-event.js +1 -1
  103. package/src/models/device.js +1 -1
  104. package/src/models/identifier.js +2 -2
  105. package/src/models/push-token.js +6 -6
  106. package/src/models/request-result.js +1 -1
  107. package/src/models/server-config.js +42 -24
  108. package/src/request-controller.js +126 -126
  109. package/src/triggers/models/custom-event-data.js +4 -4
  110. package/src/triggers/models/custom-event-property-data.js +5 -5
  111. package/src/triggers/models/filter-set.js +2 -2
  112. package/src/triggers/models/filter.js +1 -1
  113. package/src/triggers/models/in-app-message-click-data.js +1 -1
  114. package/src/triggers/models/purchase-data.js +1 -1
  115. package/src/triggers/models/purchase-property-data.js +2 -2
  116. package/src/triggers/models/push-click-data.js +1 -1
  117. package/src/triggers/models/trigger-condition.js +33 -33
  118. package/src/triggers/models/trigger-events.js +1 -1
  119. package/src/triggers/models/trigger.js +33 -33
  120. package/src/triggers/triggers-provider-factory.js +1 -1
  121. package/src/triggers/triggers-provider.js +68 -68
  122. package/src/types.js +2 -2
  123. package/src/ui/js/attach-css.js +1 -1
  124. package/src/util/braze-actions.js +7 -7
  125. package/src/util/browser-detector.js +2 -2
  126. package/src/util/client-hints-parser.js +4 -4
  127. package/src/util/code-utils.js +2 -2
  128. package/src/util/deprecation-utils.js +2 -2
  129. package/src/util/dom-utils.js +7 -7
  130. package/src/util/ecommerce-event-validation.js +52 -35
  131. package/src/util/html-display-utils.js +11 -11
  132. package/src/util/net.js +4 -4
  133. package/src/util/request-header-utils.js +17 -17
  134. package/src/util/string-utils.js +2 -2
  135. package/src/util/user-agent-parser.js +2 -2
  136. package/src/util/validation-utils.js +12 -12
  137. package/src/util/window-utils.js +2 -2
@@ -1,4 +1,4 @@
1
- import { logger as E } from "../../shared-lib/index.js";
1
+ import { logger as b } from "../../shared-lib/index.js";
2
2
  import { CoreStrings as R } from "../common/constants.js";
3
3
  import r from "../managers/braze-instance.js";
4
4
  import {
@@ -20,7 +20,7 @@ export function _handleBrazeAction(o, e, s) {
20
20
  if (!e) return;
21
21
  const s = (o) => {
22
22
  if (!io(o))
23
- return void E.error(
23
+ return void b.error(
24
24
  `Decoded Braze Action json is invalid: ${JSON.stringify(
25
25
  o,
26
26
  null,
@@ -44,7 +44,7 @@ export function _handleBrazeAction(o, e, s) {
44
44
  r.ao()
45
45
  ? ((t = Array.prototype.slice.call(e)),
46
46
  logCustomEvent(...t))
47
- : E.error(R.ee);
47
+ : b.error(R.ee);
48
48
  },
49
49
  );
50
50
  break;
@@ -55,7 +55,7 @@ export function _handleBrazeAction(o, e, s) {
55
55
  ? "Safari" === ro.browser && ro.OS === so.co
56
56
  ? window.navigator.standalone && requestPushPermission()
57
57
  : requestPushPermission()
58
- : E.error(R.ee);
58
+ : b.error(R.ee);
59
59
  },
60
60
  );
61
61
  break;
@@ -75,7 +75,7 @@ export function _handleBrazeAction(o, e, s) {
75
75
  (t = Array.prototype.slice.call(e)), no.openUri(...t);
76
76
  break;
77
77
  default:
78
- E.info(`Ignoring unknown Braze Action: ${n}`);
78
+ b.info(`Ignoring unknown Braze Action: ${n}`);
79
79
  }
80
80
  }
81
81
  };
@@ -1,6 +1,6 @@
1
1
  import r from "../managers/braze-instance.js";
2
2
  import v from "../common/event-logger.js";
3
- import { logger as E, EventTypes as p } from "../../shared-lib/index.js";
3
+ import { logger as b, EventTypes as p } from "../../shared-lib/index.js";
4
4
  import ot from "../triggers/models/trigger-events.js";
5
5
  import { TriggersProviderFactory as rt } from "../triggers/triggers-provider-factory.js";
6
6
  import {
@@ -12,7 +12,7 @@ export function logCustomEvent(t, e) {
12
12
  if (!r.rr()) return !1;
13
13
  if (null == t || t.length <= 0)
14
14
  return (
15
- E.error(
15
+ b.error(
16
16
  `logCustomEvent requires a non-empty eventName, got "${t}". Ignoring event.`,
17
17
  ),
18
18
  !1
@@ -28,10 +28,10 @@ export function logCustomEvent(t, e) {
28
28
  if (!o) return !1;
29
29
  const i = r.l();
30
30
  if (i && i.$e(t))
31
- return E.info(`Custom Event "${t}" is blocklisted, ignoring.`), !1;
32
- const s = v.wt(p.CustomEvent, { n: t, p: n });
31
+ return b.info(`Custom Event "${t}" is blocklisted, ignoring.`), !1;
32
+ const s = v.Dt(p.CustomEvent, { n: t, p: n });
33
33
  if (s.lt) {
34
- E.info(`Logged custom event "${t}".`);
34
+ b.info(`Logged custom event "${t}".`);
35
35
  for (const o of s.Ce) rt.o().Ee(ot.he, [t, e], o);
36
36
  }
37
37
  return s.lt;
@@ -1,4 +1,4 @@
1
- import { EventTypes as p, logger as E } from "../../shared-lib/index.js";
1
+ import { EventTypes as p, logger as b } from "../../shared-lib/index.js";
2
2
  import v from "../common/event-logger.js";
3
3
  import r from "../managers/braze-instance.js";
4
4
  import ot from "../triggers/models/trigger-events.js";
@@ -8,7 +8,7 @@ export function logEcommerceEvent(e) {
8
8
  if (!r.rr()) return !1;
9
9
  if (null == e || "object" != typeof e || null == e.name)
10
10
  return (
11
- E.error(
11
+ b.error(
12
12
  'logEcommerceEvent requires an event object with a "name" field.',
13
13
  ),
14
14
  !1
@@ -18,11 +18,11 @@ export function logEcommerceEvent(e) {
18
18
  const t = r.l();
19
19
  if (t && t.$e(e.name))
20
20
  return (
21
- E.info(`The eCommerce event "${e.name}" is blocklisted, ignoring.`), !1
21
+ b.info(`The eCommerce event "${e.name}" is blocklisted, ignoring.`), !1
22
22
  );
23
- const n = v.wt(p.CustomEvent, { n: e.name, p: o });
23
+ const n = v.Dt(p.CustomEvent, { n: e.name, p: o });
24
24
  if (n.lt) {
25
- E.info(`Logged eCommerce event "${e.name}".`);
25
+ b.info(`Logged eCommerce event "${e.name}".`);
26
26
  for (const r of n.Ce) rt.o().Ee(ot.he, [e.name, e.properties], r);
27
27
  }
28
28
  return n.lt;
@@ -1,4 +1,4 @@
1
- import { EventTypes as p, logger as E } from "../../shared-lib/index.js";
1
+ import { EventTypes as p, logger as b } from "../../shared-lib/index.js";
2
2
  import { isValidIso4217CurrencyCode as or } from "../util/iso-4217-currency-codes.js";
3
3
  import { MAX_PURCHASE_QUANTITY as nr } from "../common/constants.js";
4
4
  import v from "../common/event-logger.js";
@@ -15,7 +15,7 @@ export function logPurchase(e, o, i, n, t) {
15
15
  (null == i && (i = "USD"), null == n && (n = 1), null == e || e.length <= 0)
16
16
  )
17
17
  return (
18
- E.error(
18
+ b.error(
19
19
  `logPurchase requires a non-empty productId, got "${e}", ignoring.`,
20
20
  ),
21
21
  !1
@@ -23,25 +23,25 @@ export function logPurchase(e, o, i, n, t) {
23
23
  if (!mt(e, "log purchase", "the purchase name")) return !1;
24
24
  if (null == o || isNaN(parseFloat(o.toString())))
25
25
  return (
26
- E.error(`logPurchase requires a numeric price, got ${o}, ignoring.`), !1
26
+ b.error(`logPurchase requires a numeric price, got ${o}, ignoring.`), !1
27
27
  );
28
28
  const s = parseFloat(o.toString()).toFixed(2);
29
29
  if (null == n || isNaN(parseInt(n.toString())))
30
30
  return (
31
- E.error(`logPurchase requires an integer quantity, got ${n}, ignoring.`),
31
+ b.error(`logPurchase requires an integer quantity, got ${n}, ignoring.`),
32
32
  !1
33
33
  );
34
34
  const u = parseInt(n.toString());
35
35
  if (u < 1 || u > nr)
36
36
  return (
37
- E.error(
37
+ b.error(
38
38
  `logPurchase requires a quantity >1 and <${nr}, got ${u}, ignoring.`,
39
39
  ),
40
40
  !1
41
41
  );
42
42
  if (((i = null != i ? i.toUpperCase() : i), !or(i)))
43
43
  return (
44
- E.error(`logPurchase requires a valid currencyCode, got ${i}, ignoring.`),
44
+ b.error(`logPurchase requires a valid currencyCode, got ${i}, ignoring.`),
45
45
  !1
46
46
  );
47
47
  const [a, g] = nt(
@@ -54,10 +54,10 @@ export function logPurchase(e, o, i, n, t) {
54
54
  if (!a) return !1;
55
55
  const c = r.l();
56
56
  if (c && c.$r(e))
57
- return E.info(`Purchase "${e}" is blocklisted, ignoring.`), !1;
58
- const l = v.wt(p.Pr, { pid: e, c: i, p: s, q: u, pr: g });
57
+ return b.info(`Purchase "${e}" is blocklisted, ignoring.`), !1;
58
+ const l = v.Dt(p.Pr, { pid: e, c: i, p: s, q: u, pr: g });
59
59
  if (l.lt) {
60
- E.info(`Logged ${u} purchase${u > 1 ? "s" : ""} of "${e}" for ${i} ${s}.`);
60
+ b.info(`Logged ${u} purchase${u > 1 ? "s" : ""} of "${e}" for ${i} ${s}.`);
61
61
  for (const r of l.Ce) rt.o().Ee(ot.qr, [e, t], r);
62
62
  }
63
63
  return l.lt;
@@ -1,5 +1,5 @@
1
1
  import r from "../managers/braze-instance.js";
2
- import { logger as E, IndexedDBAdapter as et } from "../../shared-lib/index.js";
2
+ import { logger as b, IndexedDBAdapter as et } from "../../shared-lib/index.js";
3
3
  import ot from "../triggers/models/trigger-events.js";
4
4
  import { TriggersProviderFactory as rt } from "../triggers/triggers-provider-factory.js";
5
5
  export function openSession() {
@@ -7,19 +7,19 @@ export function openSession() {
7
7
  const i = r.nn();
8
8
  if (!i) return;
9
9
  i.openSession();
10
- const t = et.Ps.$s,
11
- o = new et(t, E);
12
- o.kr(t.Os.yr, (r, n) => {
10
+ const t = et._s.Xs,
11
+ o = new et(t, b);
12
+ o.kr(t.Ws.yr, (r, n) => {
13
13
  const e = n.lastClick,
14
14
  s = n.trackingString;
15
- E.info(`Firing push click trigger from ${s} push click at ${e}`);
15
+ b.info(`Firing push click trigger from ${s} push click at ${e}`);
16
16
  const c = i.Fr(e, s),
17
17
  g = function () {
18
18
  rt.o().Ee(ot.Sr, [s], c);
19
19
  };
20
- i.Ar(g, g), o.ge(t.Os.yr, r);
20
+ i.Ar(g, g), o.ge(t.Ws.yr, r);
21
21
  }),
22
- o.Xs(t.Os.Br, function (r) {
22
+ o.Qs(t.Ws.Br, function (r) {
23
23
  i.Dr(r);
24
24
  });
25
25
  }
@@ -1,4 +1,4 @@
1
- import { logger as E } from "../../shared-lib/index.js";
1
+ import { logger as b } from "../../shared-lib/index.js";
2
2
  export function setLogger(e) {
3
- E.setLogger(e);
3
+ b.setLogger(e);
4
4
  }
@@ -1,4 +1,4 @@
1
- import { logger as E } from "../../shared-lib/index.js";
1
+ import { logger as b } from "../../shared-lib/index.js";
2
2
  export function toggleLogging() {
3
- E.toggleLogging();
3
+ b.toggleLogging();
4
4
  }
@@ -1,16 +1,16 @@
1
1
  import r from "../managers/braze-instance.js";
2
- import { keys as D } from "../util/code-utils.js";
3
- import { logger as E, IndexedDBAdapter as et } from "../../shared-lib/index.js";
2
+ import { keys as C } from "../util/code-utils.js";
3
+ import { logger as b, IndexedDBAdapter as et } from "../../shared-lib/index.js";
4
4
  import { CoreStrings as R } from "../common/constants.js";
5
5
  export function wipeData() {
6
6
  const o = r.p();
7
- if (null == o) return void E.warn(R.ee);
7
+ if (null == o) return void b.warn(R.ee);
8
8
  o.clearData();
9
- const t = D(et.Ps);
9
+ const t = C(et._s);
10
10
  for (let o = 0; o < t.length; o++) {
11
11
  const n = t[o],
12
- r = et.Ps[n];
13
- new et(r, E).clearData();
12
+ r = et._s[n];
13
+ new et(r, b).clearData();
14
14
  }
15
15
  if (r.rr()) for (const o of r.vr()) o.clearData(!0);
16
16
  const n = r.m();