@braze/web-sdk 6.4.0 → 6.6.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.
- package/README.md +1 -1
- package/index.d.ts +11 -5
- package/package.json +1 -1
- package/shared-lib/encoding-utils.js +3 -3
- package/shared-lib/event-types.js +30 -30
- package/shared-lib/guid.js +3 -3
- package/shared-lib/indexed-db-adapter.js +58 -58
- package/shared-lib/logger.js +7 -7
- package/shared-lib/supported-options.js +17 -16
- package/src/Banner/banner-provider.js +95 -81
- package/src/Banner/banner.js +9 -9
- package/src/Banner/constants.js +4 -0
- package/src/Banner/display/banner-to-html.js +1 -1
- package/src/Banner/display/destroy-banner-html.js +3 -3
- package/src/Banner/display/detect-banner-impressions.js +14 -14
- package/src/Banner/get-all-banners.js +4 -4
- package/src/Banner/get-banner.js +5 -4
- package/src/Banner/log-banner-click.js +2 -2
- package/src/Banner/log-banner-impressions.js +6 -6
- package/src/Banner/request-banners-refresh.js +18 -20
- package/src/Banner/subscribe-to-banners-updates.js +5 -5
- package/src/Banner/ui/insert-banner.js +17 -14
- package/src/Card/card-manager-factory.js +3 -3
- package/src/Card/card-manager.js +32 -32
- package/src/Card/constants.js +1 -0
- package/src/Card/display/card-display.js +11 -11
- package/src/Card/log-card-dismissal.js +2 -2
- package/src/Card/log-content-card-click.js +2 -2
- package/src/Card/log-content-card-impressions.js +5 -5
- package/src/Card/models/captioned-image.js +3 -3
- package/src/Card/models/card.js +16 -16
- package/src/Card/models/classic-card.js +3 -3
- package/src/Card/models/control-card.js +3 -3
- package/src/Card/models/image-only.js +3 -3
- package/src/Card/util/card-factory.js +6 -6
- package/src/ContentCards/content-cards-provider-factory.js +11 -11
- package/src/ContentCards/content-cards-provider.js +110 -96
- package/src/ContentCards/get-cached-content-cards.js +2 -2
- package/src/ContentCards/request-content-cards-refresh.js +2 -2
- package/src/ContentCards/subscribe-to-content-cards-updates.js +5 -5
- package/src/ContentCards/ui/show-content-cards.js +5 -5
- package/src/Core/add-sdk-metadata.js +2 -2
- package/src/Core/change-user.js +4 -4
- package/src/Core/disable-sdk.js +9 -8
- package/src/Core/enable-sdk.js +5 -5
- package/src/Core/get-device-id.js +2 -2
- package/src/Core/handle-braze-action.js +3 -3
- package/src/Core/is-disabled.js +1 -1
- package/src/Core/log-custom-event.js +13 -13
- package/src/Core/log-purchase.js +10 -10
- package/src/Core/open-session.js +7 -7
- package/src/Core/set-sdk-authentication-signature.js +2 -2
- package/src/Core/wipe-data.js +6 -6
- package/src/DUST/dust-connection-core.js +23 -0
- package/src/DUST/dust-provider-factory.js +10 -8
- package/src/DUST/dust-provider.js +408 -176
- package/src/DUST/dust-shared-worker-code.js +2 -0
- package/src/DUST/dust-shared-worker-impl.js +240 -0
- package/src/DUST/dust-worker-bridge.js +136 -0
- package/src/DUST/index.js +10 -0
- package/src/DUST/subscribe-to-dust.js +13 -13
- package/src/FeatureFlags/feature-flag-factory.js +8 -8
- package/src/FeatureFlags/feature-flag.js +6 -6
- package/src/FeatureFlags/feature-flags-provider-factory.js +9 -9
- package/src/FeatureFlags/feature-flags-provider.js +98 -84
- package/src/FeatureFlags/get-all-feature-flags.js +3 -3
- package/src/FeatureFlags/get-feature-flag.js +3 -3
- package/src/FeatureFlags/log-feature-flag-impression.js +7 -7
- package/src/FeatureFlags/refresh-feature-flags.js +2 -2
- package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +4 -4
- package/src/InAppMessage/constants.js +4 -0
- package/src/InAppMessage/defer-in-app-message.js +2 -2
- package/src/InAppMessage/display/get-animation-effect.js +1 -1
- package/src/InAppMessage/display/html-message-to-html.js +6 -6
- package/src/InAppMessage/display/in-app-message-to-html.js +40 -40
- package/src/InAppMessage/display/modal-utils.js +16 -16
- package/src/InAppMessage/get-deferred-in-app-message.js +2 -2
- package/src/InAppMessage/in-app-message-factory.js +4 -4
- package/src/InAppMessage/in-app-message-manager-factory.js +7 -7
- package/src/InAppMessage/in-app-message-manager.js +97 -97
- package/src/InAppMessage/log-in-app-message-button-click.js +14 -14
- package/src/InAppMessage/log-in-app-message-click.js +13 -13
- package/src/InAppMessage/log-in-app-message-html-click.js +11 -11
- package/src/InAppMessage/log-in-app-message-impression.js +8 -8
- package/src/InAppMessage/models/control-message.js +5 -5
- package/src/InAppMessage/models/full-screen-message.js +18 -18
- package/src/InAppMessage/models/html-message.js +19 -19
- package/src/InAppMessage/models/in-app-message-button.js +7 -7
- package/src/InAppMessage/models/in-app-message.js +121 -119
- package/src/InAppMessage/models/modal-message.js +18 -18
- package/src/InAppMessage/models/slide-up-message.js +23 -23
- package/src/InAppMessage/models/templated-in-app-message.js +8 -8
- package/src/InAppMessage/subscribe-to-in-app-message.js +2 -2
- package/src/InAppMessage/ui/automatically-show-in-app-messages.js +5 -5
- package/src/InAppMessage/ui/remove-all-visible-in-app-messages.js +8 -8
- package/src/InAppMessage/ui/show-in-app-message.js +34 -34
- package/src/Push/push-manager-factory.js +14 -14
- package/src/Push/push-manager.js +90 -90
- package/src/Push/request-push-permission.js +1 -1
- package/src/Push/unregister-push.js +1 -1
- package/src/Push/utils/push-utils.js +9 -9
- package/src/User/user-manager.js +32 -32
- package/src/User/user.js +71 -71
- package/src/common/constants.js +8 -11
- package/src/common/content-cards-display.js +32 -32
- package/src/common/event-logger.js +10 -10
- package/src/common/properties-base.js +16 -16
- package/src/l10n/l10n-manager-factory.js +11 -11
- package/src/l10n/l10n-manager.js +2 -2
- package/src/managers/auth-manager.js +14 -14
- package/src/managers/braze-instance.js +163 -159
- package/src/managers/device-manager.js +11 -11
- package/src/managers/network-manager.js +154 -154
- package/src/managers/server-config-manager.js +116 -88
- package/src/managers/session-manager.js +41 -41
- package/src/managers/storage-manager-factory.js +13 -13
- package/src/managers/storage-manager.js +130 -131
- package/src/managers/subscription-manager.js +12 -12
- package/src/managers/utils.js +1 -1
- package/src/models/backend-errors.js +5 -5
- package/src/models/braze-event.js +10 -10
- package/src/models/device.js +2 -2
- package/src/models/identifier.js +17 -17
- package/src/models/push-token.js +14 -14
- package/src/models/request-result.js +4 -4
- package/src/models/server-config.js +41 -37
- package/src/request-controller.js +163 -160
- package/src/triggers/models/custom-event-data.js +5 -5
- package/src/triggers/models/custom-event-property-data.js +6 -6
- package/src/triggers/models/filter-set.js +8 -8
- package/src/triggers/models/filter.js +7 -7
- package/src/triggers/models/in-app-message-click-data.js +13 -13
- package/src/triggers/models/purchase-data.js +2 -2
- package/src/triggers/models/purchase-property-data.js +6 -6
- package/src/triggers/models/push-click-data.js +6 -6
- package/src/triggers/models/trigger-condition.js +47 -47
- package/src/triggers/models/trigger-events.js +2 -2
- package/src/triggers/models/trigger.js +42 -42
- package/src/triggers/triggers-provider-factory.js +5 -5
- package/src/triggers/triggers-provider.js +66 -66
- package/src/ui/js/attach-css.js +3 -3
- package/src/ui/js/load-font-awesome.js +2 -2
- package/src/util/base-device-parser.js +8 -8
- package/src/util/braze-actions.js +5 -5
- package/src/util/browser-detector.js +33 -33
- package/src/util/client-hints-parser.js +10 -10
- package/src/util/component-utils.js +5 -5
- package/src/util/dom-utils.js +13 -13
- package/src/util/html-display-utils.js +7 -7
- package/src/util/key-codes.js +1 -1
- package/src/util/net.js +6 -6
- package/src/util/request-header-utils.js +26 -26
- package/src/util/user-agent-parser.js +20 -20
- package/src/util/validation-utils.js +16 -16
- package/src/util/window-utils.js +3 -3
package/src/Core/log-purchase.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import r from "../managers/braze-instance.js";
|
|
2
2
|
import { MAX_PURCHASE_QUANTITY as or } from "../common/constants.js";
|
|
3
|
-
import { logger as E, EventTypes as
|
|
4
|
-
import
|
|
5
|
-
import { TriggersProviderFactory as
|
|
3
|
+
import { logger as E, EventTypes as f } from "../../shared-lib/index.js";
|
|
4
|
+
import ot from "../triggers/models/trigger-events.js";
|
|
5
|
+
import { TriggersProviderFactory as rt } from "../triggers/triggers-provider-factory.js";
|
|
6
6
|
import {
|
|
7
|
-
validateCustomProperties as
|
|
8
|
-
validateCustomString as
|
|
7
|
+
validateCustomProperties as nt,
|
|
8
|
+
validateCustomString as mt,
|
|
9
9
|
} from "../util/validation-utils.js";
|
|
10
|
-
import
|
|
10
|
+
import v from "../common/event-logger.js";
|
|
11
11
|
export function logPurchase(e, o, i, n, t) {
|
|
12
12
|
if (!r.rr()) return !1;
|
|
13
13
|
if (
|
|
@@ -19,7 +19,7 @@ export function logPurchase(e, o, i, n, t) {
|
|
|
19
19
|
),
|
|
20
20
|
!1
|
|
21
21
|
);
|
|
22
|
-
if (!
|
|
22
|
+
if (!mt(e, "log purchase", "the purchase name")) return !1;
|
|
23
23
|
if (null == o || isNaN(parseFloat(o.toString())))
|
|
24
24
|
return (
|
|
25
25
|
E.error(`logPurchase requires a numeric price, got ${o}, ignoring.`), !1
|
|
@@ -219,7 +219,7 @@ export function logPurchase(e, o, i, n, t) {
|
|
|
219
219
|
E.error(`logPurchase requires a valid currencyCode, got ${i}, ignoring.`),
|
|
220
220
|
!1
|
|
221
221
|
);
|
|
222
|
-
const [u, a] =
|
|
222
|
+
const [u, a] = nt(
|
|
223
223
|
t,
|
|
224
224
|
"logPurchase",
|
|
225
225
|
"purchaseProperties",
|
|
@@ -230,10 +230,10 @@ export function logPurchase(e, o, i, n, t) {
|
|
|
230
230
|
const g = r.l();
|
|
231
231
|
if (g && g.Dr(e))
|
|
232
232
|
return E.info(`Purchase "${e}" is blocklisted, ignoring.`), !1;
|
|
233
|
-
const P =
|
|
233
|
+
const P = v.lt(f.Pr, { pid: e, c: i, p: s, q: D, pr: a });
|
|
234
234
|
if (P.W) {
|
|
235
235
|
E.info(`Logged ${D} purchase${D > 1 ? "s" : ""} of "${e}" for ${i} ${s}.`);
|
|
236
|
-
for (const r of P.
|
|
236
|
+
for (const r of P.Ee) rt.o().he(ot.Rr, [e, t], r);
|
|
237
237
|
}
|
|
238
238
|
return P.W;
|
|
239
239
|
}
|
package/src/Core/open-session.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import r from "../managers/braze-instance.js";
|
|
2
|
-
import { logger as E, IndexedDBAdapter as
|
|
3
|
-
import
|
|
4
|
-
import { TriggersProviderFactory as
|
|
2
|
+
import { logger as E, IndexedDBAdapter as et } from "../../shared-lib/index.js";
|
|
3
|
+
import ot from "../triggers/models/trigger-events.js";
|
|
4
|
+
import { TriggersProviderFactory as rt } from "../triggers/triggers-provider-factory.js";
|
|
5
5
|
export function openSession() {
|
|
6
6
|
if (!r.rr()) return;
|
|
7
7
|
const i = r.nn();
|
|
8
8
|
if (!i) return;
|
|
9
9
|
i.openSession();
|
|
10
|
-
const t =
|
|
11
|
-
o = new
|
|
10
|
+
const t = et.Us.Rs,
|
|
11
|
+
o = new et(t, E);
|
|
12
12
|
o.kr(t.Fs.vr, (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
16
|
const c = i.$r(e, s),
|
|
17
17
|
g = function () {
|
|
18
|
-
|
|
18
|
+
rt.o().he(ot.wr, [s], c);
|
|
19
19
|
};
|
|
20
|
-
i.yr(g, g), o.
|
|
20
|
+
i.yr(g, g), o.je(t.Fs.vr, r);
|
|
21
21
|
}),
|
|
22
22
|
o.Ds(t.Fs.zr, function (r) {
|
|
23
23
|
i.Fr(r);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import r from "../managers/braze-instance.js";
|
|
2
|
-
import { validateStandardString as
|
|
2
|
+
import { validateStandardString as ir } from "../util/validation-utils.js";
|
|
3
3
|
export function setSdkAuthenticationSignature(t) {
|
|
4
4
|
if (!r.rr()) return !1;
|
|
5
|
-
if ("" === t || !
|
|
5
|
+
if ("" === t || !ir(t, "set signature", "signature", !1)) return !1;
|
|
6
6
|
const i = r.Sr();
|
|
7
7
|
return !!i && (i.setSdkAuthenticationSignature(t), !0);
|
|
8
8
|
}
|
package/src/Core/wipe-data.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import r from "../managers/braze-instance.js";
|
|
2
2
|
import { keys as C } from "../util/code-utils.js";
|
|
3
|
-
import { logger as E, IndexedDBAdapter as
|
|
4
|
-
import {
|
|
3
|
+
import { logger as E, IndexedDBAdapter as et } from "../../shared-lib/index.js";
|
|
4
|
+
import { CoreStrings as z } from "../common/constants.js";
|
|
5
5
|
export function wipeData() {
|
|
6
6
|
const o = r.p();
|
|
7
|
-
if (null == o) return void E.warn(
|
|
7
|
+
if (null == o) return void E.warn(z.ee);
|
|
8
8
|
o.clearData();
|
|
9
|
-
const t = C(
|
|
9
|
+
const t = C(et.Us);
|
|
10
10
|
for (let o = 0; o < t.length; o++) {
|
|
11
11
|
const n = t[o],
|
|
12
|
-
r =
|
|
13
|
-
new
|
|
12
|
+
r = et.Us[n];
|
|
13
|
+
new et(r, E).clearData();
|
|
14
14
|
}
|
|
15
15
|
if (r.rr()) for (const o of r.gr()) o.clearData(!0);
|
|
16
16
|
const n = r.m();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const MIN_BACKOFF_MS = 1e4;
|
|
2
|
+
export const MAX_BACKOFF_MS = 3e5;
|
|
3
|
+
export const BACKOFF_SCALE_FACTOR = 3;
|
|
4
|
+
export const MAX_RETRIES = 5;
|
|
5
|
+
export function randomInRange(t, e) {
|
|
6
|
+
return Math.floor(Math.random() * (e - t + 1)) + t;
|
|
7
|
+
}
|
|
8
|
+
export function calculateBackoff(t) {
|
|
9
|
+
let e = t;
|
|
10
|
+
return (
|
|
11
|
+
(null === e || e < 1e4) && (e = 1e4),
|
|
12
|
+
Math.min(3e5, randomInRange(1e4, 3 * e))
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
export function buildSseUrl(t, e, n, o, r) {
|
|
16
|
+
const c = /^https?:\/\//i.test(t) ? t : `https://${t}`;
|
|
17
|
+
let p = `mite=${encodeURIComponent(e)}&attempts=${n}`;
|
|
18
|
+
return (
|
|
19
|
+
o && (p += `&auth=${encodeURIComponent(o)}`),
|
|
20
|
+
r && (p += `&rcs=${encodeURIComponent(r)}`),
|
|
21
|
+
`${c}/sse?${p}`
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import r from "../managers/braze-instance.js";
|
|
2
2
|
import tr from "./dust-provider.js";
|
|
3
|
-
const
|
|
3
|
+
const nr = {
|
|
4
4
|
i: !1,
|
|
5
5
|
provider: null,
|
|
6
6
|
o: () => {
|
|
7
|
-
if ((
|
|
8
|
-
const t = r.
|
|
9
|
-
(
|
|
7
|
+
if ((nr.t(), !nr.provider)) {
|
|
8
|
+
const t = r.re("dustHost");
|
|
9
|
+
(nr.provider = new tr(r.m(), r.p(), r.l(), t)),
|
|
10
|
+
r.v(nr.provider),
|
|
11
|
+
nr.provider.Hr();
|
|
10
12
|
}
|
|
11
|
-
return
|
|
13
|
+
return nr.provider;
|
|
12
14
|
},
|
|
13
15
|
t: () => {
|
|
14
|
-
|
|
16
|
+
nr.i || (r.g(nr), (nr.i = !0));
|
|
15
17
|
},
|
|
16
18
|
destroy: () => {
|
|
17
|
-
|
|
19
|
+
nr.provider && nr.provider.destroy(), (nr.provider = null), (nr.i = !1);
|
|
18
20
|
},
|
|
19
21
|
};
|
|
20
|
-
export default
|
|
22
|
+
export default nr;
|