@braze/web-sdk 4.3.0 → 4.5.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 (178) hide show
  1. package/index.d.ts +68 -6
  2. package/package.json +1 -1
  3. package/shared-lib/braze-shared-lib.js +8 -1
  4. package/shared-lib/encoding-utils.js +12 -1
  5. package/shared-lib/event-types.js +32 -1
  6. package/shared-lib/guid.js +10 -1
  7. package/shared-lib/indexed-db-adapter.js +315 -1
  8. package/shared-lib/logger.js +38 -1
  9. package/shared-lib/supported-options.js +26 -1
  10. package/src/Card/card-manager-factory.js +14 -1
  11. package/src/Card/card-manager.js +72 -1
  12. package/src/Card/display/card-display.js +134 -1
  13. package/src/Card/index.js +5 -1
  14. package/src/Card/log-card-click.js +11 -1
  15. package/src/Card/log-card-dismissal.js +11 -1
  16. package/src/Card/log-card-impressions.js +13 -1
  17. package/src/Card/log-content-card-impressions.js +4 -1
  18. package/src/Card/models/banner.js +30 -1
  19. package/src/Card/models/captioned-image.js +32 -1
  20. package/src/Card/models/card.js +175 -1
  21. package/src/Card/models/classic-card.js +32 -1
  22. package/src/Card/models/control-card.js +39 -1
  23. package/src/Card/models/index.js +5 -1
  24. package/src/Card/util/card-factory.js +104 -1
  25. package/src/ContentCards/content-cards-provider-factory.js +20 -1
  26. package/src/ContentCards/content-cards-provider.js +283 -1
  27. package/src/ContentCards/content-cards.js +24 -1
  28. package/src/ContentCards/get-cached-content-cards.js +5 -1
  29. package/src/ContentCards/index.js +8 -1
  30. package/src/ContentCards/log-content-cards-displayed.js +5 -1
  31. package/src/ContentCards/request-content-cards-refresh.js +5 -1
  32. package/src/ContentCards/subscribe-to-content-cards-updates.js +14 -1
  33. package/src/ContentCards/ui/hide-content-cards.js +8 -1
  34. package/src/ContentCards/ui/show-content-cards.js +72 -1
  35. package/src/ContentCards/ui/toggle-content-cards.js +8 -1
  36. package/src/Core/add-sdk-metadata.js +27 -1
  37. package/src/Core/braze-sdk-metadata.js +10 -1
  38. package/src/Core/change-user.js +19 -1
  39. package/src/Core/destroy.js +5 -1
  40. package/src/Core/device-properties.js +9 -1
  41. package/src/Core/disable-sdk.js +10 -1
  42. package/src/Core/enable-sdk.js +8 -1
  43. package/src/Core/get-device-id.js +10 -1
  44. package/src/Core/get-user.js +4 -1
  45. package/src/Core/handle-braze-action.js +64 -1
  46. package/src/Core/index.js +23 -1
  47. package/src/Core/initialize.js +4 -1
  48. package/src/Core/is-disabled.js +4 -1
  49. package/src/Core/log-custom-event.js +36 -1
  50. package/src/Core/log-purchase.js +245 -1
  51. package/src/Core/open-session.js +23 -1
  52. package/src/Core/remove-all-subscriptions.js +4 -1
  53. package/src/Core/remove-subscription.js +4 -1
  54. package/src/Core/request-immediate-data-flush.js +4 -1
  55. package/src/Core/set-logger.js +4 -1
  56. package/src/Core/set-sdk-authentication-signature.js +9 -1
  57. package/src/Core/subscribe-to-sdk-authentication-failures.js +4 -1
  58. package/src/Core/toggle-logging.js +4 -1
  59. package/src/Core/wipe-data.js +15 -1
  60. package/src/FeatureFlags/feature-flag-factory.js +14 -0
  61. package/src/FeatureFlags/feature-flag.js +16 -0
  62. package/src/FeatureFlags/feature-flags-provider-factory.js +19 -0
  63. package/src/FeatureFlags/feature-flags-provider.js +94 -0
  64. package/src/FeatureFlags/get-all-feature-flags.js +12 -0
  65. package/src/FeatureFlags/get-feature-flag.js +12 -0
  66. package/src/FeatureFlags/index.js +4 -0
  67. package/src/FeatureFlags/refresh-feature-flags.js +9 -0
  68. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +6 -0
  69. package/src/Feed/feed-provider-factory.js +18 -1
  70. package/src/Feed/feed-provider.js +79 -1
  71. package/src/Feed/feed.js +20 -1
  72. package/src/Feed/get-cached-feed.js +5 -1
  73. package/src/Feed/index.js +8 -1
  74. package/src/Feed/log-feed-displayed.js +5 -1
  75. package/src/Feed/request-feed-refresh.js +5 -1
  76. package/src/Feed/subscribe-to-feed-updates.js +5 -1
  77. package/src/Feed/ui/hide-feed.js +7 -1
  78. package/src/Feed/ui/show-feed.js +89 -1
  79. package/src/Feed/ui/toggle-feed.js +8 -1
  80. package/src/InAppMessage/display/get-animation-effect.js +19 -1
  81. package/src/InAppMessage/display/html-message-to-html.js +223 -1
  82. package/src/InAppMessage/display/in-app-message-to-html.js +152 -1
  83. package/src/InAppMessage/display/modal-utils.js +68 -1
  84. package/src/InAppMessage/in-app-message-factory.js +145 -1
  85. package/src/InAppMessage/in-app-message-manager-factory.js +16 -1
  86. package/src/InAppMessage/in-app-message-manager.js +189 -1
  87. package/src/InAppMessage/index.js +14 -1
  88. package/src/InAppMessage/log-in-app-message-button-click.js +19 -1
  89. package/src/InAppMessage/log-in-app-message-click.js +19 -1
  90. package/src/InAppMessage/log-in-app-message-html-click.js +23 -1
  91. package/src/InAppMessage/log-in-app-message-impression.js +13 -1
  92. package/src/InAppMessage/models/control-message.js +8 -1
  93. package/src/InAppMessage/models/full-screen-message.js +71 -1
  94. package/src/InAppMessage/models/html-message.js +54 -1
  95. package/src/InAppMessage/models/in-app-message-button.js +40 -1
  96. package/src/InAppMessage/models/in-app-message.js +271 -1
  97. package/src/InAppMessage/models/modal-message.js +68 -1
  98. package/src/InAppMessage/models/slide-up-message.js +58 -1
  99. package/src/InAppMessage/models/templated-in-app-message.js +14 -1
  100. package/src/InAppMessage/subscribe-to-in-app-message.js +10 -1
  101. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +15 -1
  102. package/src/InAppMessage/ui/show-in-app-message.js +170 -1
  103. package/src/Push/index.js +5 -1
  104. package/src/Push/is-push-blocked.js +5 -1
  105. package/src/Push/is-push-permission-granted.js +5 -1
  106. package/src/Push/is-push-supported.js +5 -1
  107. package/src/Push/push-manager-factory.js +30 -1
  108. package/src/Push/push-manager.js +360 -1
  109. package/src/Push/request-push-permission.js +8 -1
  110. package/src/Push/unregister-push.js +5 -1
  111. package/src/Push/utils/push-utils.js +34 -1
  112. package/src/User/index.js +1 -1
  113. package/src/User/user-manager.js +70 -1
  114. package/src/User/user.js +278 -1
  115. package/src/common/base-feed.js +25 -1
  116. package/src/common/base-provider.js +6 -1
  117. package/src/common/constants.js +5 -1
  118. package/src/common/event-logger.js +24 -1
  119. package/src/common/feed-display.js +200 -1
  120. package/src/common/translations.js +148 -1
  121. package/src/index.js +9 -1
  122. package/src/l10n/l10n-manager-factory.js +22 -1
  123. package/src/l10n/l10n-manager.js +21 -1
  124. package/src/managers/auth-manager.js +48 -1
  125. package/src/managers/braze-instance.js +307 -1
  126. package/src/managers/device-manager.js +80 -1
  127. package/src/managers/network-manager.js +219 -1
  128. package/src/managers/server-config-manager.js +88 -1
  129. package/src/managers/session-manager.js +68 -1
  130. package/src/managers/storage-manager-factory.js +35 -1
  131. package/src/managers/storage-manager.js +394 -1
  132. package/src/managers/subscription-manager.js +25 -1
  133. package/src/models/backend-errors.js +8 -1
  134. package/src/models/braze-event.js +41 -1
  135. package/src/models/braze-sdk-metadata.js +10 -1
  136. package/src/models/device.js +26 -1
  137. package/src/models/identifier.js +20 -1
  138. package/src/models/push-token.js +22 -1
  139. package/src/models/request-result.js +8 -1
  140. package/src/models/server-config.js +32 -1
  141. package/src/request-controller.js +288 -1
  142. package/src/triggers/models/custom-event-data.js +14 -1
  143. package/src/triggers/models/custom-event-property-data.js +21 -1
  144. package/src/triggers/models/filter-set.js +55 -1
  145. package/src/triggers/models/filter.js +98 -1
  146. package/src/triggers/models/in-app-message-click-data.js +25 -1
  147. package/src/triggers/models/purchase-data.js +14 -1
  148. package/src/triggers/models/purchase-property-data.js +21 -1
  149. package/src/triggers/models/push-click-data.js +15 -1
  150. package/src/triggers/models/trigger-condition.js +109 -1
  151. package/src/triggers/models/trigger-events.js +8 -1
  152. package/src/triggers/models/trigger.js +110 -1
  153. package/src/triggers/triggers-provider-factory.js +30 -1
  154. package/src/triggers/triggers-provider.js +307 -1
  155. package/src/ui/js/attach-css.js +12 -1
  156. package/src/ui/js/feed-css.js +12 -1
  157. package/src/ui/js/iam-css.js +12 -1
  158. package/src/ui/js/index.js +3 -1
  159. package/src/ui/js/load-font-awesome.js +13 -1
  160. package/src/util/base-device-parser.js +14 -1
  161. package/src/util/braze-actions.js +79 -1
  162. package/src/util/browser-detector.js +85 -1
  163. package/src/util/client-hints-parser.js +60 -1
  164. package/src/util/code-utils.js +92 -1
  165. package/src/util/color-utils.js +23 -1
  166. package/src/util/component-utils.js +26 -1
  167. package/src/util/date-utils.js +27 -1
  168. package/src/util/deprecation-utils.js +5 -1
  169. package/src/util/device-constants.js +14 -1
  170. package/src/util/dom-utils.js +87 -1
  171. package/src/util/key-codes.js +1 -1
  172. package/src/util/math.js +5 -1
  173. package/src/util/net.js +75 -1
  174. package/src/util/string-utils.js +22 -1
  175. package/src/util/url-utils.js +23 -1
  176. package/src/util/user-agent-parser.js +85 -1
  177. package/src/util/validation-utils.js +136 -1
  178. package/src/util/window-utils.js +35 -1
@@ -1 +1,9 @@
1
- export default{BROWSER:"browser",BROWSER_VERSION:"browserVersion",OS:"os",RESOLUTION:"resolution",LANGUAGE:"language",TIME_ZONE:"timeZone",USER_AGENT:"userAgent"};
1
+ export default {
2
+ BROWSER: "browser",
3
+ BROWSER_VERSION: "browserVersion",
4
+ OS: "os",
5
+ RESOLUTION: "resolution",
6
+ LANGUAGE: "language",
7
+ TIME_ZONE: "timeZone",
8
+ USER_AGENT: "userAgent"
9
+ };
@@ -1 +1,10 @@
1
- import e from"../managers/braze-instance.js";import r from"../../shared-lib/braze-shared-lib.js";import G,{STORAGE_KEYS as o}from"../managers/storage-manager.js";export function disableSDK(){null!=e.mr()&&e.mr().requestImmediateDataFlush();const n=new G.ne(null,!0);n.store(o.ae,"This-cookie-will-expire-in-"+n.ie());const a=r.xt.Ft;new r.qt(a,r.D).setItem(a.$t.oe,a.se,!0),e.destroy(!1),e.le(!0)}
1
+ import e from "../managers/braze-instance.js";
2
+ import r from "../../shared-lib/braze-shared-lib.js";
3
+ import G, { STORAGE_KEYS as o } from "../managers/storage-manager.js";
4
+ export function disableSDK() {
5
+ null != e.mr() && e.mr().requestImmediateDataFlush();
6
+ const n = new G.ne(null, !0);
7
+ n.store(o.ae, "This-cookie-will-expire-in-" + n.ie());
8
+ const a = r.xt.Ft;
9
+ new r.qt(a, r.D).setItem(a.$t.oe, a.se, !0), e.destroy(!1), e.le(!0);
10
+ }
@@ -1 +1,8 @@
1
- import e from"../managers/braze-instance.js";import r from"../../shared-lib/braze-shared-lib.js";import G,{STORAGE_KEYS as o}from"../managers/storage-manager.js";export function enableSDK(){new G.ne(null,!0).remove(o.ae);const a=r.xt.Ft;new r.qt(a,r.D).br(a.$t.oe,a.se),e.destroy(!1),e.le(!1)}
1
+ import e from "../managers/braze-instance.js";
2
+ import r from "../../shared-lib/braze-shared-lib.js";
3
+ import G, { STORAGE_KEYS as o } from "../managers/storage-manager.js";
4
+ export function enableSDK() {
5
+ new G.ne(null, !0).remove(o.ae);
6
+ const a = r.xt.Ft;
7
+ new r.qt(a, r.D).br(a.$t.oe, a.se), e.destroy(!1), e.le(!1);
8
+ }
@@ -1 +1,10 @@
1
- import e from"../managers/braze-instance.js";import r from"../../shared-lib/braze-shared-lib.js";export function getDeviceId(i){e.rr()&&(null==i&&r.D.error("getDeviceId must be supplied with a callback. e.g., braze.getDeviceId(function(deviceId) {console.log('the device id is ' + deviceId)})"),"function"==typeof i&&i(e.ce().te().id))}
1
+ import e from "../managers/braze-instance.js";
2
+ import r from "../../shared-lib/braze-shared-lib.js";
3
+ export function getDeviceId(i) {
4
+ e.rr() &&
5
+ (null == i &&
6
+ r.D.error(
7
+ "getDeviceId must be supplied with a callback. e.g., braze.getDeviceId(function(deviceId) {console.log('the device id is ' + deviceId)})"
8
+ ),
9
+ "function" == typeof i && i(e.ce().te().id));
10
+ }
@@ -1 +1,4 @@
1
- import e from"../managers/braze-instance.js";export function getUser(){if(e.rr())return e.gr()}
1
+ import e from "../managers/braze-instance.js";
2
+ export function getUser() {
3
+ if (e.rr()) return e.gr();
4
+ }
@@ -1 +1,64 @@
1
- import r from"../../shared-lib/braze-shared-lib.js";import e from"../managers/braze-instance.js";import{BRAZE_ACTIONS as _,getDecodedBrazeAction as J}from"../util/braze-actions.js";import{BRAZE_ACTION_URI_REGEX as O,isValidBrazeActionJson as P}from"../util/validation-utils.js";import{WindowUtils as H}from"../util/window-utils.js";import{getUser as Q}from"./get-user.js";export function _handleBrazeAction(a,s,i){if(e.rr())if(O.test(a)){const e=J(a);if(!e)return;const s=async e=>{if(!P(e))return void r.D.error(`Decoded Braze Action json is invalid: ${JSON.stringify(e,null,2)}`);const a=e[_.properties.type];if(a===_.types.ue)for(const r of e[_.properties.me])s(r);else{const s=e[_.properties.fe];let i,o;switch(a){case _.types.logCustomEvent:i=await import("./log-custom-event.js"),i.logCustomEvent.apply(null,Array.prototype.slice.call(s));break;case _.types.requestPushPermission:i=await import("../Push/request-push-permission.js"),i.requestPushPermission();break;case _.types.setEmailNotificationSubscriptionType:case _.types.setPushNotificationSubscriptionType:case _.types.setCustomUserAttribute:case _.types.addToSubscriptionGroup:case _.types.removeFromSubscriptionGroup:case _.types.addToCustomAttributeArray:case _.types.removeFromCustomAttributeArray:o=Q(),o[a].apply(o,Array.prototype.slice.call(s));break;case _.types.de:case _.types.pe:H.openUri.apply(null,Array.prototype.slice.call(s));break;default:r.D.info(`Ignoring unknown Braze Action: ${a}`)}}};s(e)}else H.openUri(a,i,s)}export function handleBrazeAction(e,r){_handleBrazeAction(e,r)}
1
+ import r from "../../shared-lib/braze-shared-lib.js";
2
+ import e from "../managers/braze-instance.js";
3
+ import {
4
+ BRAZE_ACTIONS as _,
5
+ getDecodedBrazeAction as J
6
+ } from "../util/braze-actions.js";
7
+ import {
8
+ BRAZE_ACTION_URI_REGEX as O,
9
+ isValidBrazeActionJson as P
10
+ } from "../util/validation-utils.js";
11
+ import { WindowUtils as H } from "../util/window-utils.js";
12
+ import { getUser as Q } from "./get-user.js";
13
+ export function _handleBrazeAction(a, s, i) {
14
+ if (e.rr())
15
+ if (O.test(a)) {
16
+ const e = J(a);
17
+ if (!e) return;
18
+ const s = async e => {
19
+ if (!P(e))
20
+ return void r.D.error(
21
+ `Decoded Braze Action json is invalid: ${JSON.stringify(
22
+ e,
23
+ null,
24
+ 2
25
+ )}`
26
+ );
27
+ const a = e[_.properties.type];
28
+ if (a === _.types.ue) for (const r of e[_.properties.me]) s(r);
29
+ else {
30
+ const s = e[_.properties.fe];
31
+ let i, o;
32
+ switch (a) {
33
+ case _.types.logCustomEvent:
34
+ (i = await import("./log-custom-event.js")),
35
+ i.logCustomEvent.apply(null, Array.prototype.slice.call(s));
36
+ break;
37
+ case _.types.requestPushPermission:
38
+ (i = await import("../Push/request-push-permission.js")),
39
+ i.requestPushPermission();
40
+ break;
41
+ case _.types.setEmailNotificationSubscriptionType:
42
+ case _.types.setPushNotificationSubscriptionType:
43
+ case _.types.setCustomUserAttribute:
44
+ case _.types.addToSubscriptionGroup:
45
+ case _.types.removeFromSubscriptionGroup:
46
+ case _.types.addToCustomAttributeArray:
47
+ case _.types.removeFromCustomAttributeArray:
48
+ (o = Q()), o[a].apply(o, Array.prototype.slice.call(s));
49
+ break;
50
+ case _.types.de:
51
+ case _.types.pe:
52
+ H.openUri.apply(null, Array.prototype.slice.call(s));
53
+ break;
54
+ default:
55
+ r.D.info(`Ignoring unknown Braze Action: ${a}`);
56
+ }
57
+ }
58
+ };
59
+ s(e);
60
+ } else H.openUri(a, i, s);
61
+ }
62
+ export function handleBrazeAction(e, r) {
63
+ _handleBrazeAction(e, r);
64
+ }
package/src/Core/index.js CHANGED
@@ -1 +1,23 @@
1
- export{addSdkMetadata}from"./add-sdk-metadata.js";export{changeUser}from"./change-user.js";export{destroy}from"./destroy.js";export{default as BrazeSdkMetadata}from"./braze-sdk-metadata.js";export{default as DeviceProperties}from"./device-properties.js";export{disableSDK}from"./disable-sdk.js";export{enableSDK}from"./enable-sdk.js";export{getDeviceId}from"./get-device-id.js";export{getUser}from"./get-user.js";export{initialize}from"./initialize.js";export{isDisabled}from"./is-disabled.js";export{logCustomEvent}from"./log-custom-event.js";export{logPurchase}from"./log-purchase.js";export{openSession}from"./open-session.js";export{removeAllSubscriptions}from"./remove-all-subscriptions.js";export{removeSubscription}from"./remove-subscription.js";export{requestImmediateDataFlush}from"./request-immediate-data-flush.js";export{setLogger}from"./set-logger.js";export{setSdkAuthenticationSignature}from"./set-sdk-authentication-signature.js";export{subscribeToSdkAuthenticationFailures}from"./subscribe-to-sdk-authentication-failures.js";export{toggleLogging}from"./toggle-logging.js";export{wipeData}from"./wipe-data.js";export{handleBrazeAction}from"./handle-braze-action.js";
1
+ export { addSdkMetadata } from "./add-sdk-metadata.js";
2
+ export { changeUser } from "./change-user.js";
3
+ export { destroy } from "./destroy.js";
4
+ export { default as BrazeSdkMetadata } from "./braze-sdk-metadata.js";
5
+ export { default as DeviceProperties } from "./device-properties.js";
6
+ export { disableSDK } from "./disable-sdk.js";
7
+ export { enableSDK } from "./enable-sdk.js";
8
+ export { getDeviceId } from "./get-device-id.js";
9
+ export { getUser } from "./get-user.js";
10
+ export { initialize } from "./initialize.js";
11
+ export { isDisabled } from "./is-disabled.js";
12
+ export { logCustomEvent } from "./log-custom-event.js";
13
+ export { logPurchase } from "./log-purchase.js";
14
+ export { openSession } from "./open-session.js";
15
+ export { removeAllSubscriptions } from "./remove-all-subscriptions.js";
16
+ export { removeSubscription } from "./remove-subscription.js";
17
+ export { requestImmediateDataFlush } from "./request-immediate-data-flush.js";
18
+ export { setLogger } from "./set-logger.js";
19
+ export { setSdkAuthenticationSignature } from "./set-sdk-authentication-signature.js";
20
+ export { subscribeToSdkAuthenticationFailures } from "./subscribe-to-sdk-authentication-failures.js";
21
+ export { toggleLogging } from "./toggle-logging.js";
22
+ export { wipeData } from "./wipe-data.js";
23
+ export { handleBrazeAction } from "./handle-braze-action.js";
@@ -1 +1,4 @@
1
- import e from"../managers/braze-instance.js";export function initialize(i,n){return e.initialize(i,n)}
1
+ import e from "../managers/braze-instance.js";
2
+ export function initialize(i, n) {
3
+ return e.initialize(i, n);
4
+ }
@@ -1 +1,4 @@
1
- import G,{STORAGE_KEYS as o}from"../managers/storage-manager.js";export function isDisabled(){return!!new G.ne(null,!0).lr(o.ae)}
1
+ import G, { STORAGE_KEYS as o } from "../managers/storage-manager.js";
2
+ export function isDisabled() {
3
+ return !!new G.ne(null, !0).lr(o.ae);
4
+ }
@@ -1 +1,36 @@
1
- import e from"../managers/braze-instance.js";import s from"../common/event-logger.js";import r from"../../shared-lib/braze-shared-lib.js";import V from"../triggers/models/trigger-events.js";import{TriggersProviderFactory as W}from"../triggers/triggers-provider-factory.js";import{validateCustomProperties as X,validateCustomString as Y}from"../util/validation-utils.js";export function logCustomEvent(t,o){if(!e.rr())return!1;if(null==t||t.length<=0)return r.D.error(`logCustomEvent requires a non-empty eventName, got "${t}". Ignoring event.`),!1;if(!Y(t,"log custom event","the event name"))return!1;const[n,i]=X(o,"logCustomEvent","eventProperties",`log custom event "${t}"`,"event");if(!n)return!1;if(e.ir().ge(t))return r.D.info(`Custom Event "${t}" is blocklisted, ignoring.`),!1;const m=s.G(r.A.CustomEvent,{n:t,p:i});if(m.S){r.D.info(`Logged custom event "${t}".`);for(const e of m.ve)W.er().je(V.be,[t,o],e)}return m.S}
1
+ import e from "../managers/braze-instance.js";
2
+ import s from "../common/event-logger.js";
3
+ import r from "../../shared-lib/braze-shared-lib.js";
4
+ import V from "../triggers/models/trigger-events.js";
5
+ import { TriggersProviderFactory as W } from "../triggers/triggers-provider-factory.js";
6
+ import {
7
+ validateCustomProperties as X,
8
+ validateCustomString as Y
9
+ } from "../util/validation-utils.js";
10
+ export function logCustomEvent(t, o) {
11
+ if (!e.rr()) return !1;
12
+ if (null == t || t.length <= 0)
13
+ return (
14
+ r.D.error(
15
+ `logCustomEvent requires a non-empty eventName, got "${t}". Ignoring event.`
16
+ ),
17
+ !1
18
+ );
19
+ if (!Y(t, "log custom event", "the event name")) return !1;
20
+ const [n, i] = X(
21
+ o,
22
+ "logCustomEvent",
23
+ "eventProperties",
24
+ `log custom event "${t}"`,
25
+ "event"
26
+ );
27
+ if (!n) return !1;
28
+ if (e.ir().ge(t))
29
+ return r.D.info(`Custom Event "${t}" is blocklisted, ignoring.`), !1;
30
+ const m = s.G(r.A.CustomEvent, { n: t, p: i });
31
+ if (m.S) {
32
+ r.D.info(`Logged custom event "${t}".`);
33
+ for (const e of m.ve) W.er().je(V.be, [t, o], e);
34
+ }
35
+ return m.S;
36
+ }
@@ -1 +1,245 @@
1
- import e from"../managers/braze-instance.js";import{MAX_PURCHASE_QUANTITY as Z}from"../common/constants.js";import r from"../../shared-lib/braze-shared-lib.js";import V from"../triggers/models/trigger-events.js";import{TriggersProviderFactory as W}from"../triggers/triggers-provider-factory.js";import{validateCustomProperties as X,validateCustomString as Y}from"../util/validation-utils.js";import s from"../common/event-logger.js";export function logPurchase(o,i,t,n,D){if(!e.rr())return!1;if(null==t&&(t="USD"),null==n&&(n=1),null==o||o.length<=0)return r.D.error(`logPurchase requires a non-empty productId, got "${o}", ignoring.`),!1;if(!Y(o,"log purchase","the purchase name"))return!1;let a=parseFloat(i);if(isNaN(a))return r.D.error(`logPurchase requires a numeric price, got ${i}, ignoring.`),!1;a=a.toFixed(2);const g=parseInt(n);if(isNaN(g))return r.D.error(`logPurchase requires an integer quantity, got ${n}, ignoring.`),!1;if(g<1||g>Z)return r.D.error(`logPurchase requires a quantity >1 and <${Z}, got ${g}, ignoring.`),!1;t=t.toUpperCase();if(-1===["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTC","BTN","BWP","BYR","BZD","CAD","CDF","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EEK","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GGP","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","IMP","INR","IQD","IRR","ISK","JEP","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MTL","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","STD","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XCD","XDR","XOF","XPD","XPF","XPT","YER","ZAR","ZMK","ZMW","ZWL"].indexOf(t))return r.D.error(`logPurchase requires a valid currencyCode, got ${t}, ignoring.`),!1;const[u,P]=X(D,"logPurchase","purchaseProperties",`log purchase "${o}"`,"purchase");if(!u)return!1;if(e.ir().Dr(o))return r.D.info(`Purchase "${o}" is blocklisted, ignoring.`),!1;const R=s.G(r.A.Pr,{pid:o,c:t,p:a,q:g,pr:P});if(R.S){r.D.info(`Logged ${g} purchase${g>1?"s":""} of "${o}" for ${t} ${a}.`);for(const r of R.ve)W.er().je(V.Rr,[o,D],r)}return R.S}
1
+ import e from "../managers/braze-instance.js";
2
+ import { MAX_PURCHASE_QUANTITY as Z } from "../common/constants.js";
3
+ import r from "../../shared-lib/braze-shared-lib.js";
4
+ import V from "../triggers/models/trigger-events.js";
5
+ import { TriggersProviderFactory as W } from "../triggers/triggers-provider-factory.js";
6
+ import {
7
+ validateCustomProperties as X,
8
+ validateCustomString as Y
9
+ } from "../util/validation-utils.js";
10
+ import s from "../common/event-logger.js";
11
+ export function logPurchase(o, i, t, n, D) {
12
+ if (!e.rr()) return !1;
13
+ if (
14
+ (null == t && (t = "USD"), null == n && (n = 1), null == o || o.length <= 0)
15
+ )
16
+ return (
17
+ r.D.error(
18
+ `logPurchase requires a non-empty productId, got "${o}", ignoring.`
19
+ ),
20
+ !1
21
+ );
22
+ if (!Y(o, "log purchase", "the purchase name")) return !1;
23
+ let a = parseFloat(i);
24
+ if (isNaN(a))
25
+ return (
26
+ r.D.error(`logPurchase requires a numeric price, got ${i}, ignoring.`), !1
27
+ );
28
+ a = a.toFixed(2);
29
+ const g = parseInt(n);
30
+ if (isNaN(g))
31
+ return (
32
+ r.D.error(
33
+ `logPurchase requires an integer quantity, got ${n}, ignoring.`
34
+ ),
35
+ !1
36
+ );
37
+ if (g < 1 || g > Z)
38
+ return (
39
+ r.D.error(
40
+ `logPurchase requires a quantity >1 and <${Z}, got ${g}, ignoring.`
41
+ ),
42
+ !1
43
+ );
44
+ t = t.toUpperCase();
45
+ if (
46
+ -1 ===
47
+ [
48
+ "AED",
49
+ "AFN",
50
+ "ALL",
51
+ "AMD",
52
+ "ANG",
53
+ "AOA",
54
+ "ARS",
55
+ "AUD",
56
+ "AWG",
57
+ "AZN",
58
+ "BAM",
59
+ "BBD",
60
+ "BDT",
61
+ "BGN",
62
+ "BHD",
63
+ "BIF",
64
+ "BMD",
65
+ "BND",
66
+ "BOB",
67
+ "BRL",
68
+ "BSD",
69
+ "BTC",
70
+ "BTN",
71
+ "BWP",
72
+ "BYR",
73
+ "BZD",
74
+ "CAD",
75
+ "CDF",
76
+ "CHF",
77
+ "CLF",
78
+ "CLP",
79
+ "CNY",
80
+ "COP",
81
+ "CRC",
82
+ "CUC",
83
+ "CUP",
84
+ "CVE",
85
+ "CZK",
86
+ "DJF",
87
+ "DKK",
88
+ "DOP",
89
+ "DZD",
90
+ "EEK",
91
+ "EGP",
92
+ "ERN",
93
+ "ETB",
94
+ "EUR",
95
+ "FJD",
96
+ "FKP",
97
+ "GBP",
98
+ "GEL",
99
+ "GGP",
100
+ "GHS",
101
+ "GIP",
102
+ "GMD",
103
+ "GNF",
104
+ "GTQ",
105
+ "GYD",
106
+ "HKD",
107
+ "HNL",
108
+ "HRK",
109
+ "HTG",
110
+ "HUF",
111
+ "IDR",
112
+ "ILS",
113
+ "IMP",
114
+ "INR",
115
+ "IQD",
116
+ "IRR",
117
+ "ISK",
118
+ "JEP",
119
+ "JMD",
120
+ "JOD",
121
+ "JPY",
122
+ "KES",
123
+ "KGS",
124
+ "KHR",
125
+ "KMF",
126
+ "KPW",
127
+ "KRW",
128
+ "KWD",
129
+ "KYD",
130
+ "KZT",
131
+ "LAK",
132
+ "LBP",
133
+ "LKR",
134
+ "LRD",
135
+ "LSL",
136
+ "LTL",
137
+ "LVL",
138
+ "LYD",
139
+ "MAD",
140
+ "MDL",
141
+ "MGA",
142
+ "MKD",
143
+ "MMK",
144
+ "MNT",
145
+ "MOP",
146
+ "MRO",
147
+ "MTL",
148
+ "MUR",
149
+ "MVR",
150
+ "MWK",
151
+ "MXN",
152
+ "MYR",
153
+ "MZN",
154
+ "NAD",
155
+ "NGN",
156
+ "NIO",
157
+ "NOK",
158
+ "NPR",
159
+ "NZD",
160
+ "OMR",
161
+ "PAB",
162
+ "PEN",
163
+ "PGK",
164
+ "PHP",
165
+ "PKR",
166
+ "PLN",
167
+ "PYG",
168
+ "QAR",
169
+ "RON",
170
+ "RSD",
171
+ "RUB",
172
+ "RWF",
173
+ "SAR",
174
+ "SBD",
175
+ "SCR",
176
+ "SDG",
177
+ "SEK",
178
+ "SGD",
179
+ "SHP",
180
+ "SLL",
181
+ "SOS",
182
+ "SRD",
183
+ "STD",
184
+ "SVC",
185
+ "SYP",
186
+ "SZL",
187
+ "THB",
188
+ "TJS",
189
+ "TMT",
190
+ "TND",
191
+ "TOP",
192
+ "TRY",
193
+ "TTD",
194
+ "TWD",
195
+ "TZS",
196
+ "UAH",
197
+ "UGX",
198
+ "USD",
199
+ "UYU",
200
+ "UZS",
201
+ "VEF",
202
+ "VND",
203
+ "VUV",
204
+ "WST",
205
+ "XAF",
206
+ "XAG",
207
+ "XAU",
208
+ "XCD",
209
+ "XDR",
210
+ "XOF",
211
+ "XPD",
212
+ "XPF",
213
+ "XPT",
214
+ "YER",
215
+ "ZAR",
216
+ "ZMK",
217
+ "ZMW",
218
+ "ZWL"
219
+ ].indexOf(t)
220
+ )
221
+ return (
222
+ r.D.error(
223
+ `logPurchase requires a valid currencyCode, got ${t}, ignoring.`
224
+ ),
225
+ !1
226
+ );
227
+ const [u, P] = X(
228
+ D,
229
+ "logPurchase",
230
+ "purchaseProperties",
231
+ `log purchase "${o}"`,
232
+ "purchase"
233
+ );
234
+ if (!u) return !1;
235
+ if (e.ir().Dr(o))
236
+ return r.D.info(`Purchase "${o}" is blocklisted, ignoring.`), !1;
237
+ const R = s.G(r.A.Pr, { pid: o, c: t, p: a, q: g, pr: P });
238
+ if (R.S) {
239
+ r.D.info(
240
+ `Logged ${g} purchase${g > 1 ? "s" : ""} of "${o}" for ${t} ${a}.`
241
+ );
242
+ for (const r of R.ve) W.er().je(V.Rr, [o, D], r);
243
+ }
244
+ return R.S;
245
+ }
@@ -1 +1,23 @@
1
- import e from"../managers/braze-instance.js";import r from"../../shared-lib/braze-shared-lib.js";import V from"../triggers/models/trigger-events.js";import{TriggersProviderFactory as W}from"../triggers/triggers-provider-factory.js";export function openSession(){if(!e.rr())return;e.mr().openSession();const i=r.xt.Ft,o=new r.qt(i,r.D);o.hr(i.$t.jr,(function(t,n){const s=n.lastClick,c=n.trackingString;r.D.info(`Firing push click trigger from ${c} push click at ${s}`);const g=e.mr().kr(s,c),f=function(){W.er().je(V.vr,[c],g)};e.mr().zr(f,f),o.br(i.$t.jr,t)})),o.Jt(i.$t.$r,(function(r){e.mr().wr(r)}))}
1
+ import e from "../managers/braze-instance.js";
2
+ import r from "../../shared-lib/braze-shared-lib.js";
3
+ import V from "../triggers/models/trigger-events.js";
4
+ import { TriggersProviderFactory as W } from "../triggers/triggers-provider-factory.js";
5
+ export function openSession() {
6
+ if (!e.rr()) return;
7
+ e.mr().openSession();
8
+ const i = r.xt.Ft,
9
+ o = new r.qt(i, r.D);
10
+ o.hr(i.$t.jr, function(t, n) {
11
+ const s = n.lastClick,
12
+ c = n.trackingString;
13
+ r.D.info(`Firing push click trigger from ${c} push click at ${s}`);
14
+ const g = e.mr().kr(s, c),
15
+ f = function() {
16
+ W.er().je(V.vr, [c], g);
17
+ };
18
+ e.mr().zr(f, f), o.br(i.$t.jr, t);
19
+ }),
20
+ o.Jt(i.$t.$r, function(r) {
21
+ e.mr().wr(r);
22
+ });
23
+ }
@@ -1 +1,4 @@
1
- import e from"../managers/braze-instance.js";export function removeAllSubscriptions(){e.rr()&&e.removeAllSubscriptions()}
1
+ import e from "../managers/braze-instance.js";
2
+ export function removeAllSubscriptions() {
3
+ e.rr() && e.removeAllSubscriptions();
4
+ }
@@ -1 +1,4 @@
1
- import e from"../managers/braze-instance.js";export function removeSubscription(r){e.rr()&&e.removeSubscription(r)}
1
+ import e from "../managers/braze-instance.js";
2
+ export function removeSubscription(r) {
3
+ e.rr() && e.removeSubscription(r);
4
+ }
@@ -1 +1,4 @@
1
- import e from"../managers/braze-instance.js";export function requestImmediateDataFlush(a){e.rr()&&e.mr().requestImmediateDataFlush(a)}
1
+ import e from "../managers/braze-instance.js";
2
+ export function requestImmediateDataFlush(a) {
3
+ e.rr() && e.mr().requestImmediateDataFlush(a);
4
+ }
@@ -1 +1,4 @@
1
- import r from"../../shared-lib/braze-shared-lib.js";export function setLogger(e){r.D.setLogger(e)}
1
+ import r from "../../shared-lib/braze-shared-lib.js";
2
+ export function setLogger(e) {
3
+ r.D.setLogger(e);
4
+ }
@@ -1 +1,9 @@
1
- import e from"../managers/braze-instance.js";import{validateStandardString as R}from"../util/validation-utils.js";export function setSdkAuthenticationSignature(t){return!!e.rr()&&(!(""===t||!R(t,"set signature","signature",!1))&&(e.ii().setSdkAuthenticationSignature(t),!0))}
1
+ import e from "../managers/braze-instance.js";
2
+ import { validateStandardString as R } from "../util/validation-utils.js";
3
+ export function setSdkAuthenticationSignature(t) {
4
+ return (
5
+ !!e.rr() &&
6
+ !("" === t || !R(t, "set signature", "signature", !1)) &&
7
+ (e.ii().setSdkAuthenticationSignature(t), !0)
8
+ );
9
+ }
@@ -1 +1,4 @@
1
- import e from"../managers/braze-instance.js";export function subscribeToSdkAuthenticationFailures(r){if(e.rr())return e.ii().subscribeToSdkAuthenticationFailures(r)}
1
+ import e from "../managers/braze-instance.js";
2
+ export function subscribeToSdkAuthenticationFailures(r) {
3
+ if (e.rr()) return e.ii().subscribeToSdkAuthenticationFailures(r);
4
+ }
@@ -1 +1,4 @@
1
- import r from"../../shared-lib/braze-shared-lib.js";export function toggleLogging(){r.D.toggleLogging()}
1
+ import r from "../../shared-lib/braze-shared-lib.js";
2
+ export function toggleLogging() {
3
+ r.D.toggleLogging();
4
+ }
@@ -1 +1,15 @@
1
- import e from"../managers/braze-instance.js";import{keys as rr}from"../util/code-utils.js";import r from"../../shared-lib/braze-shared-lib.js";export function wipeData(){if(null==e.l())throw new Error("Braze must be initialized before calling methods.");e.l().clearData();const o=rr(r.xt);for(let e=0;e<o.length;e++){const i=o[e],t=r.xt[i];new r.qt(t,r.D).clearData()}if(e.rr())for(const r of e.re())r.clearData(!0)}
1
+ import e from "../managers/braze-instance.js";
2
+ import { keys as rr } from "../util/code-utils.js";
3
+ import r from "../../shared-lib/braze-shared-lib.js";
4
+ export function wipeData() {
5
+ if (null == e.l())
6
+ throw new Error("Braze must be initialized before calling methods.");
7
+ e.l().clearData();
8
+ const o = rr(r.xt);
9
+ for (let e = 0; e < o.length; e++) {
10
+ const i = o[e],
11
+ t = r.xt[i];
12
+ new r.qt(t, r.D).clearData();
13
+ }
14
+ if (e.rr()) for (const r of e.re()) r.clearData(!0);
15
+ }
@@ -0,0 +1,14 @@
1
+ import r from "../../shared-lib/braze-shared-lib.js";
2
+ import ee from "./feature-flag.js";
3
+ export function newFeatureFlagFromJson(e) {
4
+ if (e[ee.At.ns] && "boolean" == typeof e[ee.At.Fe])
5
+ return new ee(e[ee.At.ns], e[ee.At.Fe], e[ee.At.we]);
6
+ r.D.info(`Unable to create feature flag from ${JSON.stringify(e, null, 2)}`);
7
+ }
8
+ export function newFeatureFlagFromSerializedValue(e) {
9
+ if (e[ee.hs.ns] && "boolean" == typeof e[ee.hs.Fe])
10
+ return new ee(e[ee.hs.ns], e[ee.hs.Fe], e[ee.hs.we]);
11
+ r.D.info(
12
+ `Unable to deserialize feature flag from ${JSON.stringify(e, null, 2)}`
13
+ );
14
+ }
@@ -0,0 +1,16 @@
1
+ export default class ee {
2
+ constructor(t, s = !1, i = {}) {
3
+ (this.id = t), (this.enabled = s), (this.properties = i);
4
+ }
5
+ ss() {
6
+ const t = {};
7
+ return (
8
+ (t[ee.hs.ns] = this.id),
9
+ (t[ee.hs.Fe] = this.enabled),
10
+ (t[ee.hs.we] = this.properties),
11
+ t
12
+ );
13
+ }
14
+ }
15
+ (ee.hs = { ns: "id", Fe: "e", we: "pr" }),
16
+ (ee.At = { ns: "id", Fe: "enabled", we: "properties" });
@@ -0,0 +1,19 @@
1
+ import e from "../managers/braze-instance.js";
2
+ import er from "./feature-flags-provider.js";
3
+ const ir = {
4
+ t: !1,
5
+ provider: null,
6
+ er: () => (
7
+ ir.o(),
8
+ ir.provider ||
9
+ ((ir.provider = new er(e.ir(), e.nr(), e.l())), e.ar(ir.provider)),
10
+ ir.provider
11
+ ),
12
+ o: () => {
13
+ ir.t || (e.u(ir), (ir.t = !0));
14
+ },
15
+ destroy: () => {
16
+ (ir.provider = null), (ir.t = !1);
17
+ }
18
+ };
19
+ export default ir;