@braze/web-sdk 6.12.0 → 6.13.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 (149) hide show
  1. package/index.d.ts +240 -3
  2. package/package.json +1 -1
  3. package/shared-lib/event-types.js +18 -18
  4. package/shared-lib/indexed-db-adapter.js +58 -58
  5. package/shared-lib/logger.js +7 -7
  6. package/shared-lib/supported-options.js +25 -24
  7. package/src/ConversationalChat/automatically-manage-chat.js +5 -0
  8. package/src/ConversationalChat/chat-message-factory.js +25 -0
  9. package/src/ConversationalChat/chat-message.js +33 -0
  10. package/src/ConversationalChat/constants.js +1 -0
  11. package/src/ConversationalChat/conversational-chat-provider-factory.js +26 -0
  12. package/src/ConversationalChat/conversational-chat-provider.js +372 -0
  13. package/src/ConversationalChat/display/chat-widget-manager.js +113 -0
  14. package/src/ConversationalChat/display/chat-widget-to-html.js +58 -0
  15. package/src/ConversationalChat/get-chat-messages.js +7 -0
  16. package/src/ConversationalChat/index.js +12 -0
  17. package/src/ConversationalChat/is-chat-conversation-ended.js +7 -0
  18. package/src/ConversationalChat/is-chat-turn-errored.js +7 -0
  19. package/src/ConversationalChat/is-chat-turn-in-progress.js +7 -0
  20. package/src/ConversationalChat/register-chat-action-handler.js +10 -0
  21. package/src/ConversationalChat/reset-chat-conversation.js +5 -0
  22. package/src/ConversationalChat/retrieve-chat-config.js +7 -0
  23. package/src/ConversationalChat/send-chat-message.js +17 -0
  24. package/src/ConversationalChat/subscribe-to-chat-action.js +5 -0
  25. package/src/ConversationalChat/subscribe-to-chat-conversation-updated.js +5 -0
  26. package/src/ConversationalChat/subscribe-to-chat-message-received.js +5 -0
  27. package/src/ConversationalChat/trigger-chat-action.js +11 -0
  28. package/src/ConversationalChat/types.js +1 -0
  29. package/src/Core/add-sdk-metadata.js +5 -5
  30. package/src/Core/change-user.js +6 -6
  31. package/src/Core/disable-sdk.js +6 -6
  32. package/src/Core/enable-sdk.js +3 -3
  33. package/src/Core/get-device-id.js +2 -2
  34. package/src/Core/handle-braze-action.js +20 -13
  35. package/src/Core/is-disabled.js +1 -1
  36. package/src/Core/is-initialized.js +1 -1
  37. package/src/Core/log-custom-event.js +9 -9
  38. package/src/Core/log-ecommerce-event.js +4 -4
  39. package/src/Core/log-purchase.js +14 -14
  40. package/src/Core/open-session.js +8 -8
  41. package/src/Core/set-sdk-authentication-signature.js +3 -3
  42. package/src/Core/subscribe-to-sdk-authentication-failures.js +1 -1
  43. package/src/Core/wipe-data.js +1 -1
  44. package/src/DUST/dust-config-store.js +35 -35
  45. package/src/DUST/dust-message-dedup.js +3 -3
  46. package/src/DUST/dust-provider-factory.js +10 -10
  47. package/src/DUST/dust-provider.js +234 -234
  48. package/src/DUST/subscribe-to-dust.js +7 -7
  49. package/src/FeatureFlags/feature-flag-factory.js +2 -2
  50. package/src/FeatureFlags/feature-flag.js +4 -4
  51. package/src/FeatureFlags/feature-flags-provider-factory.js +11 -11
  52. package/src/FeatureFlags/feature-flags-provider.js +38 -38
  53. package/src/FeatureFlags/get-all-feature-flags.js +3 -3
  54. package/src/FeatureFlags/get-feature-flag.js +3 -3
  55. package/src/FeatureFlags/log-feature-flag-impression.js +4 -4
  56. package/src/FeatureFlags/refresh-feature-flags.js +5 -5
  57. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +3 -3
  58. package/src/InAppMessage/defer-in-app-message.js +1 -1
  59. package/src/InAppMessage/display/html-message-display-utils.js +4 -4
  60. package/src/InAppMessage/display/html-message-to-html.js +13 -13
  61. package/src/InAppMessage/display/in-app-message-to-html.js +20 -20
  62. package/src/InAppMessage/display/modal-utils.js +7 -7
  63. package/src/InAppMessage/in-app-message-factory.js +6 -6
  64. package/src/InAppMessage/in-app-message-manager.js +92 -92
  65. package/src/InAppMessage/log-in-app-message-button-click.js +9 -9
  66. package/src/InAppMessage/log-in-app-message-click.js +7 -7
  67. package/src/InAppMessage/log-in-app-message-html-click.js +6 -6
  68. package/src/InAppMessage/log-in-app-message-impression.js +3 -3
  69. package/src/InAppMessage/models/full-screen-message.js +39 -39
  70. package/src/InAppMessage/models/html-message.js +20 -20
  71. package/src/InAppMessage/models/in-app-message-button.js +2 -2
  72. package/src/InAppMessage/models/in-app-message.js +102 -102
  73. package/src/InAppMessage/models/modal-message.js +38 -38
  74. package/src/InAppMessage/models/slide-up-message.js +34 -34
  75. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  76. package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
  77. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +3 -3
  78. package/src/InAppMessage/ui/remove-all-visible-in-app-messages.js +3 -3
  79. package/src/InAppMessage/ui/show-in-app-message.js +27 -24
  80. package/src/Push/is-push-blocked.js +2 -2
  81. package/src/Push/is-push-permission-granted.js +2 -2
  82. package/src/Push/is-push-supported.js +2 -2
  83. package/src/Push/push-manager-factory.js +15 -15
  84. package/src/Push/push-manager.js +13 -13
  85. package/src/Push/register-push.js +2 -2
  86. package/src/Push/request-push-permission.js +2 -2
  87. package/src/Push/unregister-push-token-on-server.js +3 -3
  88. package/src/Push/unregister-push.js +3 -3
  89. package/src/Push/utils/push-utils.js +15 -15
  90. package/src/User/user-manager.js +9 -9
  91. package/src/User/user.js +50 -50
  92. package/src/common/constants.js +1 -1
  93. package/src/common/content-cards-display.js +22 -22
  94. package/src/common/event-logger.js +3 -3
  95. package/src/index.js +2 -9
  96. package/src/l10n/l10n-manager-factory.js +4 -4
  97. package/src/l10n/l10n-manager.js +6 -6
  98. package/src/managers/auth-manager.js +28 -28
  99. package/src/managers/braze-action-manager.js +14 -0
  100. package/src/managers/braze-instance.js +159 -151
  101. package/src/managers/device-manager.js +26 -26
  102. package/src/managers/network-manager.js +120 -120
  103. package/src/managers/server-config-manager.js +95 -86
  104. package/src/managers/session-manager.js +25 -25
  105. package/src/managers/storage-manager-factory.js +12 -12
  106. package/src/managers/storage-manager.js +129 -124
  107. package/src/managers/subscription-manager.js +8 -8
  108. package/src/models/backend-errors.js +5 -5
  109. package/src/models/braze-event.js +5 -5
  110. package/src/models/device.js +2 -2
  111. package/src/models/identifier.js +8 -8
  112. package/src/models/push-token.js +6 -6
  113. package/src/models/request-result.js +2 -2
  114. package/src/models/server-config.js +27 -27
  115. package/src/request-controller.js +117 -117
  116. package/src/standard-index.js +9 -0
  117. package/src/triggers/models/custom-event-data.js +4 -4
  118. package/src/triggers/models/custom-event-property-data.js +5 -5
  119. package/src/triggers/models/filter-set.js +5 -5
  120. package/src/triggers/models/filter.js +31 -31
  121. package/src/triggers/models/in-app-message-click-data.js +9 -9
  122. package/src/triggers/models/purchase-data.js +1 -1
  123. package/src/triggers/models/purchase-property-data.js +5 -5
  124. package/src/triggers/models/push-click-data.js +4 -4
  125. package/src/triggers/models/trigger-condition.js +35 -35
  126. package/src/triggers/models/trigger-events.js +3 -3
  127. package/src/triggers/models/trigger.js +36 -36
  128. package/src/triggers/triggers-provider-factory.js +5 -5
  129. package/src/triggers/triggers-provider.js +128 -128
  130. package/src/types.js +2 -2
  131. package/src/ui/js/attach-css.js +1 -1
  132. package/src/ui/js/chat-widget-css.js +11 -0
  133. package/src/ui/js/load-font-awesome.js +1 -1
  134. package/src/util/base-device-parser.js +7 -7
  135. package/src/util/braze-actions.js +5 -5
  136. package/src/util/browser-detector.js +41 -41
  137. package/src/util/client-hints-parser.js +10 -10
  138. package/src/util/component-utils.js +1 -1
  139. package/src/util/date-utils.js +2 -2
  140. package/src/util/device-constants.js +5 -5
  141. package/src/util/dom-utils.js +8 -8
  142. package/src/util/ecommerce-event-validation.js +13 -13
  143. package/src/util/html-display-utils.js +6 -6
  144. package/src/util/key-codes.js +1 -1
  145. package/src/util/net.js +82 -44
  146. package/src/util/request-header-utils.js +26 -24
  147. package/src/util/user-agent-parser.js +21 -21
  148. package/src/util/validation-utils.js +29 -21
  149. package/src/util/window-utils.js +3 -3
@@ -1,13 +1,14 @@
1
1
  import {
2
2
  isArray as g,
3
- isDate as Nt,
4
- isObject as Ct,
3
+ isDate as Kt,
4
+ isObject as Yt,
5
5
  keys as C,
6
6
  } from "./code-utils.js";
7
- import { getByteLength as er } from "./string-utils.js";
7
+ import { getByteLength as sr } from "./string-utils.js";
8
8
  import { logger as b } from "../../shared-lib/index.js";
9
- import { toValidBackendTimeString as Rt } from "./date-utils.js";
9
+ import { toValidBackendTimeString as Zt } from "./date-utils.js";
10
10
  import { BRAZE_ACTIONS as oo } from "./braze-actions.js";
11
+ import r from "../managers/braze-instance.js";
11
12
  import { CoreStrings as R } from "../common/constants.js";
12
13
  export const CUSTOM_DATA_REGEX = /^[^\x00-\x1F\x22]+$/;
13
14
  export const CUSTOM_ATTRIBUTE_SPECIAL_CHARS_REGEX = /[$.]/;
@@ -50,7 +51,7 @@ export function validateCustomAttributeKey(t) {
50
51
  export function validatePropertyType(t) {
51
52
  const e = typeof t;
52
53
  return (
53
- null == t || "number" === e || "boolean" === e || Nt(t) || "string" === e
54
+ null == t || "number" === e || "boolean" === e || Kt(t) || "string" === e
54
55
  );
55
56
  }
56
57
  export function _validateNestedProperties(t, e, r) {
@@ -61,17 +62,17 @@ export function _validateNestedProperties(t, e, r) {
61
62
  if (g(t) && g(e)) {
62
63
  for (let r = 0; r < t.length && r < e.length; r++)
63
64
  if (
64
- (Nt(t[r]) && (e[r] = Rt(t[r])),
65
+ (Kt(t[r]) && (e[r] = Zt(t[r])),
65
66
  !_validateNestedProperties(t[r], e[r], o))
66
67
  )
67
68
  return !1;
68
69
  } else {
69
- if (!Ct(t)) return validatePropertyType(t);
70
+ if (!Yt(t)) return validatePropertyType(t);
70
71
  for (const r of C(t)) {
71
72
  const i = t[r];
72
73
  if (n && !validateCustomAttributeKey(r)) return !1;
73
- if (Nt(i)) {
74
- e[r] = Rt(i);
74
+ if (Kt(i)) {
75
+ e[r] = Zt(i);
75
76
  }
76
77
  if (!_validateNestedProperties(i, e[r], o)) return !1;
77
78
  }
@@ -82,7 +83,7 @@ export function _validateEventPropertyValue(t, e, r, n, o) {
82
83
  let i;
83
84
  return (
84
85
  (i =
85
- Ct(t) || g(t)
86
+ Yt(t) || g(t)
86
87
  ? _validateNestedProperties(t, e, o ? 1 : -1)
87
88
  : validatePropertyType(t)),
88
89
  i || b.error(`Cannot ${r} because ${n} "${t}" is invalid.`),
@@ -102,7 +103,7 @@ export function validateCustomProperties(t, e, r, n, o) {
102
103
  let i, a;
103
104
  e === R.Mu ? ((i = 76800), (a = "75KB")) : ((i = 51200), (a = "50KB"));
104
105
  const s = JSON.stringify(t);
105
- if (er(s) > i)
106
+ if (sr(s) > i)
106
107
  return (
107
108
  b.error(
108
109
  `Could not ${n} because ${r} was greater than the max size of ${a}.`,
@@ -127,7 +128,7 @@ export function validateCustomProperties(t, e, r, n, o) {
127
128
  delete t[r], delete u[r];
128
129
  continue;
129
130
  }
130
- Nt(i) && (u[r] = Rt(i));
131
+ Kt(i) && (u[r] = Zt(i));
131
132
  if (
132
133
  !_validateEventPropertyValue(
133
134
  i,
@@ -162,7 +163,7 @@ export function validateCustomAttributeArrayType(t, e) {
162
163
  return [!1, !1];
163
164
  r = !0;
164
165
  } else {
165
- if (!Ct(i)) return o(), [!1, !1];
166
+ if (!Yt(i)) return o(), [!1, !1];
166
167
  if (r) return o(), [!1, !1];
167
168
  if (
168
169
  !validateCustomProperties(
@@ -185,7 +186,8 @@ export function isValidEmail(t) {
185
186
  }
186
187
  export function isValidBrazeActionJson(t) {
187
188
  if (!(oo.properties.type in t)) return !1;
188
- switch (t[oo.properties.type]) {
189
+ const e = t[oo.properties.type];
190
+ switch (e) {
189
191
  case oo.types.io:
190
192
  if (oo.properties.eo in t) return !0;
191
193
  break;
@@ -197,25 +199,31 @@ export function isValidBrazeActionJson(t) {
197
199
  case oo.types.removeFromSubscriptionGroup:
198
200
  case oo.types.addToCustomAttributeArray:
199
201
  case oo.types.removeFromCustomAttributeArray:
202
+ case oo.types.co:
200
203
  case oo.types.mo:
201
- case oo.types.uo:
202
204
  if (oo.properties.so in t) return !0;
203
205
  break;
204
206
  case oo.types.requestPushPermission:
205
207
  return !0;
206
- default:
207
- return !1;
208
+ default: {
209
+ const n = r.br();
210
+ return null != n && n.dl(e) && oo.properties.so in t;
211
+ }
208
212
  }
209
213
  return !1;
210
214
  }
211
215
  export function isValidBrazeActionType(t) {
212
216
  let e = !1;
213
- return (
214
- Object.keys(oo.types).forEach((r) => {
217
+ if (
218
+ (Object.keys(oo.types).forEach((r) => {
215
219
  oo.types[r] !== t.toString() || (e = !0);
216
220
  }),
217
- e
218
- );
221
+ !e)
222
+ ) {
223
+ const n = r.br();
224
+ null != n && n.dl(t) && (e = !0);
225
+ }
226
+ return e;
219
227
  }
220
228
  export function isValidBannerPlacementId(t) {
221
229
  return VALID_UTF8_STRING_NO_WHITESPACES_REGEX.test(t);
@@ -28,7 +28,7 @@ export function _getCurrentUrl() {
28
28
  }
29
29
  export const WindowUtils = {
30
30
  openUri: _openUri,
31
- pa: _isPhone,
32
- fa: _getOrientation,
33
- Qh: _getCurrentUrl,
31
+ $a: _isPhone,
32
+ Ua: _getOrientation,
33
+ Ul: _getCurrentUrl,
34
34
  };