@braze/web-sdk 6.10.2 → 6.12.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 (109) hide show
  1. package/index.d.ts +61 -6
  2. package/package.json +1 -1
  3. package/shared-lib/encoding-utils.js +3 -3
  4. package/shared-lib/event-types.js +12 -12
  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 +10 -10
  8. package/src/Core/logout.js +2 -2
  9. package/src/DUST/dust-config-store.js +89 -0
  10. package/src/DUST/dust-connection-core.js +7 -21
  11. package/src/DUST/dust-message-dedup.js +33 -0
  12. package/src/DUST/dust-provider.js +367 -397
  13. package/src/DUST/dust-tab-identity.js +30 -0
  14. package/src/DUST/index.js +7 -9
  15. package/src/DUST/subscribe-to-dust.js +5 -5
  16. package/src/FeatureFlags/feature-flag-factory.js +4 -4
  17. package/src/FeatureFlags/feature-flag.js +5 -5
  18. package/src/FeatureFlags/feature-flags-provider-factory.js +8 -1
  19. package/src/FeatureFlags/feature-flags-provider.js +74 -74
  20. package/src/FeatureFlags/get-all-feature-flags.js +2 -2
  21. package/src/FeatureFlags/get-feature-flag.js +2 -2
  22. package/src/FeatureFlags/log-feature-flag-impression.js +3 -3
  23. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +1 -1
  24. package/src/InAppMessage/constants.js +39 -47
  25. package/src/InAppMessage/defer-in-app-message.js +2 -2
  26. package/src/InAppMessage/display/get-animation-effect.js +1 -1
  27. package/src/InAppMessage/display/html-message-display-utils.js +4 -4
  28. package/src/InAppMessage/display/html-message-to-html.js +10 -10
  29. package/src/InAppMessage/display/in-app-message-to-html.js +68 -66
  30. package/src/InAppMessage/display/modal-utils.js +14 -14
  31. package/src/InAppMessage/get-deferred-in-app-message.js +2 -2
  32. package/src/InAppMessage/in-app-message-factory.js +6 -6
  33. package/src/InAppMessage/in-app-message-manager-factory.js +5 -5
  34. package/src/InAppMessage/in-app-message-manager.js +101 -80
  35. package/src/InAppMessage/log-in-app-message-button-click.js +2 -2
  36. package/src/InAppMessage/log-in-app-message-click.js +2 -2
  37. package/src/InAppMessage/log-in-app-message-html-click.js +4 -4
  38. package/src/InAppMessage/log-in-app-message-impression.js +3 -3
  39. package/src/InAppMessage/models/full-screen-message.js +25 -25
  40. package/src/InAppMessage/models/html-message.js +14 -14
  41. package/src/InAppMessage/models/in-app-message-button.js +4 -4
  42. package/src/InAppMessage/models/in-app-message.js +100 -98
  43. package/src/InAppMessage/models/modal-message.js +23 -23
  44. package/src/InAppMessage/models/slide-up-message.js +29 -29
  45. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  46. package/src/InAppMessage/subscribe-to-in-app-message.js +2 -2
  47. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +2 -2
  48. package/src/InAppMessage/ui/show-in-app-message.js +42 -40
  49. package/src/Push/index.js +1 -0
  50. package/src/Push/is-push-blocked.js +2 -2
  51. package/src/Push/is-push-permission-granted.js +2 -2
  52. package/src/Push/is-push-supported.js +2 -2
  53. package/src/Push/push-manager-factory.js +6 -6
  54. package/src/Push/push-manager.js +228 -185
  55. package/src/Push/register-push.js +9 -0
  56. package/src/Push/unregister-push-token-on-server.js +4 -4
  57. package/src/Push/utils/push-utils.js +16 -16
  58. package/src/User/user-manager.js +19 -19
  59. package/src/User/user.js +36 -36
  60. package/src/common/constants.js +1 -1
  61. package/src/common/content-cards-display.js +21 -21
  62. package/src/common/event-logger.js +2 -2
  63. package/src/l10n/l10n-manager-factory.js +7 -7
  64. package/src/l10n/l10n-manager.js +5 -5
  65. package/src/managers/auth-manager.js +1 -1
  66. package/src/managers/braze-instance.js +70 -66
  67. package/src/managers/device-manager.js +12 -12
  68. package/src/managers/network-manager.js +118 -118
  69. package/src/managers/server-config-manager.js +84 -84
  70. package/src/managers/session-manager.js +10 -10
  71. package/src/managers/storage-manager-factory.js +4 -4
  72. package/src/managers/storage-manager.js +138 -136
  73. package/src/managers/subscription-manager.js +1 -1
  74. package/src/managers/utils.js +1 -1
  75. package/src/models/backend-errors.js +5 -5
  76. package/src/models/braze-event.js +7 -7
  77. package/src/models/device.js +2 -2
  78. package/src/models/identifier.js +6 -6
  79. package/src/models/push-token.js +6 -6
  80. package/src/models/server-config.js +31 -31
  81. package/src/request-controller.js +91 -91
  82. package/src/triggers/models/filter.js +58 -58
  83. package/src/triggers/models/in-app-message-click-data.js +4 -4
  84. package/src/triggers/models/push-click-data.js +2 -2
  85. package/src/triggers/models/trigger-condition.js +35 -35
  86. package/src/triggers/models/trigger.js +37 -37
  87. package/src/triggers/triggers-provider-factory.js +3 -3
  88. package/src/triggers/triggers-provider.js +61 -53
  89. package/src/types.js +1 -1
  90. package/src/ui/js/attach-css.js +1 -1
  91. package/src/ui/js/feed-css.js +2 -2
  92. package/src/ui/js/iam-css.js +2 -2
  93. package/src/util/base-device-parser.js +1 -1
  94. package/src/util/braze-actions.js +4 -4
  95. package/src/util/browser-detector.js +13 -13
  96. package/src/util/client-hints-parser.js +4 -4
  97. package/src/util/component-utils.js +4 -4
  98. package/src/util/dom-utils.js +5 -5
  99. package/src/util/ecommerce-event-validation.js +77 -48
  100. package/src/util/key-codes.js +1 -1
  101. package/src/util/net.js +4 -4
  102. package/src/util/request-header-utils.js +20 -20
  103. package/src/util/string-utils.js +5 -0
  104. package/src/util/user-agent-parser.js +15 -15
  105. package/src/util/validation-utils.js +9 -9
  106. package/src/util/window-utils.js +2 -2
  107. package/src/DUST/dust-shared-worker-code.js +0 -2
  108. package/src/DUST/dust-shared-worker-impl.js +0 -234
  109. package/src/DUST/dust-worker-bridge.js +0 -151
@@ -3,26 +3,27 @@ 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 be from "../display/get-animation-effect.js";
7
- import Ge from "../display/in-app-message-to-html.js";
6
+ import me from "../display/get-animation-effect.js";
7
+ import ge from "../display/in-app-message-to-html.js";
8
8
  import { logInAppMessageImpression } from "../log-in-app-message-impression.js";
9
9
  import {
10
- ORIENTATION as Ue,
10
+ ORIENTATION as je,
11
11
  WindowUtils as no,
12
12
  } from "../../util/window-utils.js";
13
13
  import { isURIJavascriptOrData as tt } from "../../util/url-utils.js";
14
- import { KeyCodes as Ce } from "../../util/key-codes.js";
14
+ import { KeyCodes as le } from "../../util/key-codes.js";
15
15
  import { setupInAppMessageUI as rs } from "../../ui/js/index.js";
16
16
  import { logger as b } from "../../../shared-lib/index.js";
17
- import { toRgba as ke } from "../../util/color-utils.js";
18
- import { isIFrame as St } from "../utils/in-app-message-utils.js";
19
- import Je from "../../l10n/l10n-manager-factory.js";
17
+ import { toRgba as ae } from "../../util/color-utils.js";
18
+ import { isIFrame as xt } from "../utils/in-app-message-utils.js";
19
+ import he from "../../l10n/l10n-manager-factory.js";
20
20
  import {
21
- IamTiming as Et,
22
- IamClickAction as Le,
21
+ IamTiming as kt,
22
+ IamClickAction as ce,
23
23
  IamDismissType as pr,
24
- IamOrientation as De,
25
- IamSlideFrom as Ee,
24
+ IamOrientation as be,
25
+ IamSlideFrom as fe,
26
+ IAM_SHOWING_CLASS as we,
26
27
  } from "../constants.js";
27
28
  export function showInAppMessage(e, t, s) {
28
29
  if (!r.rr()) return;
@@ -37,7 +38,7 @@ export function showInAppMessage(e, t, s) {
37
38
  );
38
39
  if (!(e instanceof InAppMessage)) return !1;
39
40
  if (e.constructor === InAppMessage) return !1;
40
- e.lh();
41
+ e.uh();
41
42
  const o = e instanceof HtmlMessage;
42
43
  if (o && !e.trusted && !r.dr())
43
44
  return (
@@ -47,7 +48,7 @@ export function showInAppMessage(e, t, s) {
47
48
  !1
48
49
  );
49
50
  if ((null == t && (t = document.body), e.zo())) {
50
- if (t.querySelectorAll(".ab-modal-interactions").length > 0)
51
+ if (t.querySelectorAll(`.ab-modal-interactions, .${we}`).length > 0)
51
52
  return (
52
53
  b.info(
53
54
  `Cannot show in-app message ${e.message} because another message is being shown.`,
@@ -55,14 +56,14 @@ export function showInAppMessage(e, t, s) {
55
56
  !1
56
57
  );
57
58
  }
58
- if (no.da()) {
59
- const t = no.ga();
59
+ if (no.pa()) {
60
+ const t = no.fa();
60
61
  if (
61
- (t === Ue.PORTRAIT && e.orientation === De.LANDSCAPE) ||
62
- (t === Ue.LANDSCAPE && e.orientation === De.PORTRAIT)
62
+ (t === je.PORTRAIT && e.orientation === be.LANDSCAPE) ||
63
+ (t === je.LANDSCAPE && e.orientation === be.PORTRAIT)
63
64
  ) {
64
- const s = t === Ue.PORTRAIT ? "portrait" : "landscape",
65
- o = e.orientation === De.PORTRAIT ? "portrait" : "landscape";
65
+ const s = t === je.PORTRAIT ? "portrait" : "landscape",
66
+ o = e.orientation === be.PORTRAIT ? "portrait" : "landscape";
66
67
  return (
67
68
  b.info(
68
69
  `Not showing ${o} in-app message ${e.message} because the screen is currently ${s}`,
@@ -76,11 +77,11 @@ export function showInAppMessage(e, t, s) {
76
77
  if (e.buttons && e.buttons.length > 0) {
77
78
  const s = e.buttons;
78
79
  for (let e = 0; e < s.length; e++)
79
- if (s[e].clickAction === Le.URI) {
80
+ if (s[e].clickAction === ce.URI) {
80
81
  const o = s[e].uri;
81
82
  t = tt(o);
82
83
  }
83
- } else e.clickAction === Le.URI && (t = tt(e.uri));
84
+ } else e.clickAction === ce.URI && (t = tt(e.uri));
84
85
  if (t)
85
86
  return (
86
87
  b.error(
@@ -92,39 +93,40 @@ export function showInAppMessage(e, t, s) {
92
93
  const i = document.createElement("div");
93
94
  if (
94
95
  ((i.className = "ab-iam-root v3"),
95
- (i.className += be(e)),
96
+ e.zo() && (i.className += ` ${we}`),
97
+ (i.className += me(e)),
96
98
  e.language && !o && (i.lang = e.language),
97
- e.Bo() && (i.id = e.htmlId),
98
- r.er(U.ja) && (i.style.zIndex = (r.er(U.ja) + 1).toString()),
99
+ e.ko() && (i.id = e.htmlId),
100
+ r.er(U.ca) && (i.style.zIndex = (r.er(U.ca) + 1).toString()),
99
101
  t.appendChild(i),
100
102
  e.Mo())
101
103
  ) {
102
104
  const t = document.createElement("style");
103
105
  (t.innerHTML = e.css),
104
- (t.id = e.Oo()),
106
+ (t.id = e.Co()),
105
107
  null != r.er(U.sr) && t.setAttribute("nonce", r.er(U.sr)),
106
108
  document.getElementsByTagName("head")[0].appendChild(t);
107
109
  }
108
110
  const n = e instanceof SlideUpMessage,
109
- a = Ge(
111
+ a = ge(
110
112
  e,
111
113
  (t) => {
112
114
  if (e.zo() && e.od()) {
113
115
  const s = document.createElement("div");
114
116
  if (
115
117
  ((s.className = "ab-page-blocker"),
116
- e.Mo() || (s.style.backgroundColor = ke(e.frameColor)),
117
- r.er(U.ja) && (s.style.zIndex = r.er(U.ja).toString()),
118
+ e.Mo() || (s.style.backgroundColor = ae(e.frameColor)),
119
+ r.er(U.ca) && (s.style.zIndex = r.er(U.ca).toString()),
118
120
  i.appendChild(s),
119
- !r.er(U.oh))
121
+ !r.er(U.lh))
120
122
  ) {
121
123
  const o = new Date().valueOf();
122
124
  s.onclick = (s) => {
123
- new Date().valueOf() - o > Et.pE &&
125
+ new Date().valueOf() - o > kt.sE &&
124
126
  (e.tl(t), s.stopPropagation());
125
127
  };
126
128
  }
127
- i.appendChild(t), t.focus(), e.eh(i);
129
+ i.appendChild(t), t.focus(), e.nh(i);
128
130
  } else if (n) {
129
131
  const s = document.querySelectorAll(".ab-slideup");
130
132
  let o = null;
@@ -133,7 +135,7 @@ export function showInAppMessage(e, t, s) {
133
135
  o = s[e];
134
136
  break;
135
137
  }
136
- if (e.slideFrom === Ee.TOP) {
138
+ if (e.slideFrom === fe.TOP) {
137
139
  let e = 0;
138
140
  null != o && (e = o.offsetTop + o.offsetHeight),
139
141
  (t.style.top = Math.max(e, 0) + "px");
@@ -145,12 +147,12 @@ export function showInAppMessage(e, t, s) {
145
147
  o.offsetTop),
146
148
  (t.style.bottom = Math.max(e, 0) + "px");
147
149
  }
148
- } else if (o && !r.er(U.oh)) {
150
+ } else if (o && !r.er(U.lh)) {
149
151
  const s = e;
150
- St(t) &&
152
+ xt(t) &&
151
153
  t.contentWindow &&
152
154
  t.contentWindow.addEventListener("keydown", function (e) {
153
- e.keyCode === Ce.rh && s.closeMessage();
155
+ e.keyCode === le.oh && s.closeMessage();
154
156
  });
155
157
  }
156
158
  logInAppMessageImpression(e),
@@ -161,13 +163,13 @@ export function showInAppMessage(e, t, s) {
161
163
  "function" == typeof s && s();
162
164
  },
163
165
  (e) => {
164
- b.info(e);
166
+ b.info(e), i.parentNode && i.parentNode.removeChild(i);
165
167
  },
166
- r.er(U.ba),
167
- r.er(U.ja),
168
+ r.er(U.da),
169
+ r.er(U.ca),
168
170
  r.er(U.sr),
169
171
  t,
170
- Je.ra().wa(),
172
+ he.ra().ga(),
171
173
  );
172
- return (o || n) && (i.appendChild(a), e.eh(i)), !0;
174
+ return (o || n) && (i.appendChild(a), e.nh(i)), !0;
173
175
  }
package/src/Push/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { isPushBlocked } from "./is-push-blocked.js";
2
2
  export { isPushPermissionGranted } from "./is-push-permission-granted.js";
3
3
  export { isPushSupported } from "./is-push-supported.js";
4
+ export { registerPush } from "./register-push.js";
4
5
  export { requestPushPermission } from "./request-push-permission.js";
5
6
  export { unregisterPush } from "./unregister-push.js";
@@ -1,5 +1,5 @@
1
1
  import r from "../managers/braze-instance.js";
2
- import It from "./utils/push-utils.js";
2
+ import Dt from "./utils/push-utils.js";
3
3
  export function isPushBlocked() {
4
- if (r.rr()) return It.isPushBlocked();
4
+ if (r.rr()) return Dt.isPushBlocked();
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import r from "../managers/braze-instance.js";
2
- import It from "./utils/push-utils.js";
2
+ import Dt from "./utils/push-utils.js";
3
3
  export function isPushPermissionGranted() {
4
- if (r.rr()) return It.isPushPermissionGranted();
4
+ if (r.rr()) return Dt.isPushPermissionGranted();
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import r from "../managers/braze-instance.js";
2
- import It from "./utils/push-utils.js";
2
+ import Dt from "./utils/push-utils.js";
3
3
  export function isPushSupported() {
4
- if (r.rr()) return It.isPushSupported();
4
+ if (r.rr()) return Dt.isPushSupported();
5
5
  }
@@ -8,15 +8,15 @@ const ra = {
8
8
  ra.na ||
9
9
  (ra.na = new na(
10
10
  r.zr(),
11
- r.za(),
11
+ r.ja(),
12
12
  r.ue(),
13
13
  r.ht(),
14
- r.er(U.xa),
15
- r.er(U.ya),
16
- r.er(U.Ma),
14
+ r.er(U.za),
15
+ r.er(U.ba),
16
+ r.er(U.ha),
17
17
  r.l(),
18
- r.er(U._a),
19
- r.er(U.ka),
18
+ r.er(U.wa),
19
+ r.er(U.xa),
20
20
  r.p(),
21
21
  )),
22
22
  ra.na