@adobe/alloy 2.19.0-beta.0 → 2.19.0-beta.1

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 (559) hide show
  1. package/libEs5/baseCode/index.js +2 -12
  2. package/libEs5/components/ActivityCollector/attachClickActivityCollector.js +9 -12
  3. package/libEs5/components/ActivityCollector/configValidators.js +1 -4
  4. package/libEs5/components/ActivityCollector/createGetLinkDetails.js +7 -17
  5. package/libEs5/components/ActivityCollector/createLinkClick.js +3 -8
  6. package/libEs5/components/ActivityCollector/getLinkName.js +8 -26
  7. package/libEs5/components/ActivityCollector/getLinkRegion.js +2 -16
  8. package/libEs5/components/ActivityCollector/index.js +8 -18
  9. package/libEs5/components/ActivityCollector/utils.js +3 -40
  10. package/libEs5/components/Audiences/index.js +2 -8
  11. package/libEs5/components/Audiences/injectProcessDestinations.js +20 -19
  12. package/libEs5/components/Audiences/injectProcessResponse.js +0 -5
  13. package/libEs5/components/Context/createComponent.js +0 -4
  14. package/libEs5/components/Context/implementationDetails.js +0 -5
  15. package/libEs5/components/Context/index.js +12 -19
  16. package/libEs5/components/Context/injectDevice.js +3 -20
  17. package/libEs5/components/Context/injectEnvironment.js +1 -8
  18. package/libEs5/components/Context/injectHighEntropyUserAgentHints.js +14 -21
  19. package/libEs5/components/Context/injectPlaceContext.js +2 -8
  20. package/libEs5/components/Context/injectTimestamp.js +0 -3
  21. package/libEs5/components/Context/injectWeb.js +0 -3
  22. package/libEs5/components/DataCollector/index.js +23 -35
  23. package/libEs5/components/DataCollector/validateApplyResponse.js +0 -3
  24. package/libEs5/components/DataCollector/validateUserEventOptions.js +0 -5
  25. package/libEs5/components/EventMerge/createComponent.js +0 -2
  26. package/libEs5/components/EventMerge/createEventMergeId.js +0 -3
  27. package/libEs5/components/EventMerge/index.js +1 -4
  28. package/libEs5/components/Identity/addEcidQueryToPayload.js +0 -3
  29. package/libEs5/components/Identity/addEcidToPayload.js +0 -3
  30. package/libEs5/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +0 -5
  31. package/libEs5/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +5 -19
  32. package/libEs5/components/Identity/configValidators.js +1 -2
  33. package/libEs5/components/Identity/constants/authState.js +1 -1
  34. package/libEs5/components/Identity/constants/defaultIdSyncTtlMinutes.js +0 -2
  35. package/libEs5/components/Identity/createComponent.js +16 -22
  36. package/libEs5/components/Identity/createLegacyIdentity.js +5 -19
  37. package/libEs5/components/Identity/getEcidFromResponse.js +0 -4
  38. package/libEs5/components/Identity/getIdentity/createGetIdentity.js +5 -9
  39. package/libEs5/components/Identity/getIdentity/createIdentityRequest.js +1 -4
  40. package/libEs5/components/Identity/getIdentity/createIdentityRequestPayload.js +0 -3
  41. package/libEs5/components/Identity/getIdentity/getIdentityOptionsValidator.js +0 -5
  42. package/libEs5/components/Identity/index.js +8 -29
  43. package/libEs5/components/Identity/injectAddLegacyEcidToPayload.js +1 -5
  44. package/libEs5/components/Identity/injectAddQueryStringIdentityToPayload.js +22 -28
  45. package/libEs5/components/Identity/injectAwaitIdentityCookie.js +7 -8
  46. package/libEs5/components/Identity/injectEnsureSingleIdentity.js +17 -20
  47. package/libEs5/components/Identity/injectHandleResponseForIdSyncs.js +0 -2
  48. package/libEs5/components/Identity/injectProcessIdSyncs.js +2 -7
  49. package/libEs5/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -4
  50. package/libEs5/components/Identity/visitorService/awaitVisitorOptIn.js +0 -3
  51. package/libEs5/components/Identity/visitorService/getVisitor.js +0 -3
  52. package/libEs5/components/Identity/visitorService/injectGetEcidFromVisitor.js +2 -7
  53. package/libEs5/components/LibraryInfo/index.js +13 -21
  54. package/libEs5/components/MachineLearning/index.js +1 -3
  55. package/libEs5/components/MachineLearning/processResponse.js +0 -2
  56. package/libEs5/components/Personalization/constants/eventType.js +1 -1
  57. package/libEs5/components/Personalization/constants/loggerMessage.js +0 -1
  58. package/libEs5/components/Personalization/constants/propositionEventType.js +1 -1
  59. package/libEs5/components/Personalization/constants/schema.js +1 -1
  60. package/libEs5/components/Personalization/constants/scopeType.js +1 -1
  61. package/libEs5/components/Personalization/constants/surface.js +1 -1
  62. package/libEs5/components/Personalization/createApplyPropositions.js +24 -39
  63. package/libEs5/components/Personalization/createClickStorage.js +1 -10
  64. package/libEs5/components/Personalization/createCollect.js +5 -15
  65. package/libEs5/components/Personalization/createComponent.js +25 -35
  66. package/libEs5/components/Personalization/createFetchDataHandler.js +29 -39
  67. package/libEs5/components/Personalization/createGetPageLocation.js +0 -2
  68. package/libEs5/components/Personalization/createOnClickHandler.js +6 -16
  69. package/libEs5/components/Personalization/createPendingNotificationsHandler.js +1 -4
  70. package/libEs5/components/Personalization/createPersonalizationDetails.js +17 -29
  71. package/libEs5/components/Personalization/createSetTargetMigration.js +0 -5
  72. package/libEs5/components/Personalization/createViewCacheManager.js +2 -15
  73. package/libEs5/components/Personalization/createViewChangeHandler.js +4 -11
  74. package/libEs5/components/Personalization/dom-actions/action.js +3 -19
  75. package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -13
  76. package/libEs5/components/Personalization/dom-actions/appendHtml.js +0 -7
  77. package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +16 -27
  78. package/libEs5/components/Personalization/dom-actions/createPreprocess.js +0 -4
  79. package/libEs5/components/Personalization/dom-actions/dom/createFragment.js +0 -4
  80. package/libEs5/components/Personalization/dom-actions/dom/getAttribute.js +0 -2
  81. package/libEs5/components/Personalization/dom-actions/dom/getChildNodes.js +0 -5
  82. package/libEs5/components/Personalization/dom-actions/dom/getChildren.js +0 -5
  83. package/libEs5/components/Personalization/dom-actions/dom/getElementById.js +0 -3
  84. package/libEs5/components/Personalization/dom-actions/dom/getFirstChild.js +0 -2
  85. package/libEs5/components/Personalization/dom-actions/dom/getNextSibling.js +0 -2
  86. package/libEs5/components/Personalization/dom-actions/dom/getNonce.js +4 -10
  87. package/libEs5/components/Personalization/dom-actions/dom/getParent.js +0 -2
  88. package/libEs5/components/Personalization/dom-actions/dom/helperForEq.js +1 -6
  89. package/libEs5/components/Personalization/dom-actions/dom/index.js +0 -14
  90. package/libEs5/components/Personalization/dom-actions/dom/insertAfter.js +0 -6
  91. package/libEs5/components/Personalization/dom-actions/dom/insertBefore.js +0 -5
  92. package/libEs5/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +6 -11
  93. package/libEs5/components/Personalization/dom-actions/dom/removeAttribute.js +0 -2
  94. package/libEs5/components/Personalization/dom-actions/dom/selectNodesWithEq.js +16 -36
  95. package/libEs5/components/Personalization/dom-actions/dom/setAttribute.js +0 -2
  96. package/libEs5/components/Personalization/dom-actions/dom/setStyle.js +0 -4
  97. package/libEs5/components/Personalization/dom-actions/images.js +1 -11
  98. package/libEs5/components/Personalization/dom-actions/index.js +0 -1
  99. package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +0 -4
  100. package/libEs5/components/Personalization/dom-actions/insertHtmlAfter.js +0 -6
  101. package/libEs5/components/Personalization/dom-actions/insertHtmlBefore.js +0 -6
  102. package/libEs5/components/Personalization/dom-actions/prependHtml.js +4 -12
  103. package/libEs5/components/Personalization/dom-actions/rearrangeChildren.js +1 -6
  104. package/libEs5/components/Personalization/dom-actions/remapCustomCodeOffers.js +2 -8
  105. package/libEs5/components/Personalization/dom-actions/remapHeadOffers.js +2 -16
  106. package/libEs5/components/Personalization/dom-actions/replaceHtml.js +0 -4
  107. package/libEs5/components/Personalization/dom-actions/scripts.js +13 -35
  108. package/libEs5/components/Personalization/dom-actions/setAttributes.js +0 -3
  109. package/libEs5/components/Personalization/dom-actions/setHtml.js +1 -6
  110. package/libEs5/components/Personalization/dom-actions/setStyles.js +12 -8
  111. package/libEs5/components/Personalization/dom-actions/setText.js +0 -2
  112. package/libEs5/components/Personalization/dom-actions/swapImage.js +6 -9
  113. package/libEs5/components/Personalization/event.js +2 -10
  114. package/libEs5/components/Personalization/flicker/index.js +17 -31
  115. package/libEs5/components/Personalization/handlers/createProcessDomAction.js +4 -11
  116. package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +3 -8
  117. package/libEs5/components/Personalization/handlers/createProcessPropositions.js +6 -51
  118. package/libEs5/components/Personalization/handlers/createProcessRedirect.js +5 -8
  119. package/libEs5/components/Personalization/handlers/injectCreateProposition.js +19 -25
  120. package/libEs5/components/Personalization/handlers/processDefaultContent.js +0 -2
  121. package/libEs5/components/Personalization/index.js +17 -42
  122. package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -4
  123. package/libEs5/components/Personalization/utils/createAsyncArray.js +0 -3
  124. package/libEs5/components/Personalization/utils/isAuthoringModeEnabled.js +0 -2
  125. package/libEs5/components/Personalization/utils/isPageWideScope.js +0 -4
  126. package/libEs5/components/Personalization/utils/surfaceUtils.js +1 -27
  127. package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +2 -6
  128. package/libEs5/components/Privacy/computeConsentHash.js +11 -8
  129. package/libEs5/components/Privacy/createComponent.js +24 -26
  130. package/libEs5/components/Privacy/createConsentHashStore.js +14 -15
  131. package/libEs5/components/Privacy/createConsentRequest.js +1 -4
  132. package/libEs5/components/Privacy/createConsentRequestPayload.js +0 -5
  133. package/libEs5/components/Privacy/createStoredConsent.js +2 -6
  134. package/libEs5/components/Privacy/index.js +5 -15
  135. package/libEs5/components/Privacy/injectSendSetConsentRequest.js +7 -12
  136. package/libEs5/components/Privacy/parseConsentCookie.js +3 -13
  137. package/libEs5/components/Privacy/validateSetConsentOptions.js +0 -4
  138. package/libEs5/constants/apiVersion.js +0 -1
  139. package/libEs5/constants/browser.js +1 -1
  140. package/libEs5/constants/consentPurpose.js +1 -1
  141. package/libEs5/constants/consentStatus.js +1 -1
  142. package/libEs5/constants/cookieNameKey.js +1 -1
  143. package/libEs5/constants/cookieNamePrefix.js +0 -1
  144. package/libEs5/constants/coreCommands.js +1 -1
  145. package/libEs5/constants/debugQueryParam.js +0 -1
  146. package/libEs5/constants/domain.js +1 -1
  147. package/libEs5/constants/ecidNamespace.js +0 -1
  148. package/libEs5/constants/edgeBasePath.js +0 -1
  149. package/libEs5/constants/elementAttribute.js +1 -1
  150. package/libEs5/constants/highEntropyUserAgentClientHints.js +0 -1
  151. package/libEs5/constants/httpHeaderNames.js +1 -1
  152. package/libEs5/constants/httpStatusCode.js +1 -1
  153. package/libEs5/constants/identityMapAuthenticatedState.js +0 -1
  154. package/libEs5/constants/legacyCookies.js +1 -1
  155. package/libEs5/constants/libraryName.js +0 -1
  156. package/libEs5/constants/libraryVersion.js +1 -2
  157. package/libEs5/constants/namespace.js +0 -1
  158. package/libEs5/constants/pageWideScope.js +0 -1
  159. package/libEs5/constants/queryStringIdentityParam.js +0 -1
  160. package/libEs5/constants/shadowSeparator.js +0 -1
  161. package/libEs5/constants/tagName.js +1 -1
  162. package/libEs5/core/buildAndValidateConfig.js +21 -32
  163. package/libEs5/core/componentCreators.js +0 -12
  164. package/libEs5/core/config/createConfig.js +1 -3
  165. package/libEs5/core/config/createCoreConfigs.js +0 -7
  166. package/libEs5/core/consent/createConsent.js +1 -11
  167. package/libEs5/core/consent/createConsentStateMachine.js +1 -18
  168. package/libEs5/core/createComponentRegistry.js +4 -14
  169. package/libEs5/core/createCookieTransfer.js +9 -18
  170. package/libEs5/core/createEvent.js +24 -33
  171. package/libEs5/core/createEventManager.js +26 -33
  172. package/libEs5/core/createInstanceFunction.js +0 -2
  173. package/libEs5/core/createLifecycle.js +14 -14
  174. package/libEs5/core/createLogController.js +5 -17
  175. package/libEs5/core/createLogger.js +3 -17
  176. package/libEs5/core/edgeNetwork/handleRequestFailure.js +0 -3
  177. package/libEs5/core/edgeNetwork/injectApplyResponse.js +12 -18
  178. package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +4 -8
  179. package/libEs5/core/edgeNetwork/injectGetLocationHint.js +1 -11
  180. package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +6 -11
  181. package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +18 -26
  182. package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +11 -10
  183. package/libEs5/core/index.js +12 -54
  184. package/libEs5/core/initializeComponents.js +5 -10
  185. package/libEs5/core/injectCreateResponse.js +8 -16
  186. package/libEs5/core/injectExecuteCommand.js +8 -19
  187. package/libEs5/core/injectHandleError.js +4 -8
  188. package/libEs5/core/injectShouldTransferCookie.js +1 -5
  189. package/libEs5/core/network/getRequestRetryDelay.js +10 -17
  190. package/libEs5/core/network/injectSendNetworkRequest.js +20 -22
  191. package/libEs5/core/network/isRequestRetryable.js +5 -7
  192. package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +5 -8
  193. package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +0 -2
  194. package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +0 -5
  195. package/libEs5/core/validateCommandOptions.js +5 -9
  196. package/libEs5/index.js +7 -15
  197. package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +1 -5
  198. package/libEs5/utils/assign.js +0 -2
  199. package/libEs5/utils/assignIf.js +0 -4
  200. package/libEs5/utils/clone.js +0 -3
  201. package/libEs5/utils/cookieJar.js +0 -2
  202. package/libEs5/utils/crc32.js +0 -8
  203. package/libEs5/utils/createCallbackAggregator.js +0 -4
  204. package/libEs5/utils/createLoggingCookieJar.js +1 -6
  205. package/libEs5/utils/createMerger.js +0 -4
  206. package/libEs5/utils/createTaskQueue.js +0 -7
  207. package/libEs5/utils/deduplicateArray.js +0 -5
  208. package/libEs5/utils/deepAssign.js +2 -10
  209. package/libEs5/utils/defer.js +0 -3
  210. package/libEs5/utils/dom/appendNode.js +0 -2
  211. package/libEs5/utils/dom/awaitSelector.js +1 -29
  212. package/libEs5/utils/dom/createNode.js +1 -5
  213. package/libEs5/utils/dom/index.js +0 -8
  214. package/libEs5/utils/dom/isShadowSelector.js +0 -3
  215. package/libEs5/utils/dom/matchesSelector.js +2 -5
  216. package/libEs5/utils/dom/querySelectorAll.js +3 -6
  217. package/libEs5/utils/dom/removeNode.js +0 -4
  218. package/libEs5/utils/dom/selectNodes.js +0 -8
  219. package/libEs5/utils/dom/selectNodesWithShadow.js +6 -20
  220. package/libEs5/utils/endsWith.js +0 -3
  221. package/libEs5/utils/filterObject.js +13 -17
  222. package/libEs5/utils/find.js +0 -5
  223. package/libEs5/utils/fireImage.js +2 -7
  224. package/libEs5/utils/flatMap.js +0 -2
  225. package/libEs5/utils/getApexDomain.js +4 -8
  226. package/libEs5/utils/getBrowser.js +11 -11
  227. package/libEs5/utils/getLastArrayItems.js +0 -3
  228. package/libEs5/utils/getNamespacedCookieName.js +0 -4
  229. package/libEs5/utils/groupBy.js +0 -5
  230. package/libEs5/utils/includes.js +0 -3
  231. package/libEs5/utils/index.js +0 -56
  232. package/libEs5/utils/injectDoesIdentityCookieExist.js +0 -6
  233. package/libEs5/utils/injectFireReferrerHideableImage.js +21 -29
  234. package/libEs5/utils/injectStorage.js +1 -7
  235. package/libEs5/utils/intersection.js +0 -4
  236. package/libEs5/utils/isBlankString.js +0 -4
  237. package/libEs5/utils/isBoolean.js +0 -3
  238. package/libEs5/utils/isEmptyObject.js +0 -4
  239. package/libEs5/utils/isFunction.js +0 -3
  240. package/libEs5/utils/isInteger.js +0 -4
  241. package/libEs5/utils/isNamespacedCookieName.js +0 -5
  242. package/libEs5/utils/isNil.js +0 -3
  243. package/libEs5/utils/isNonEmptyArray.js +0 -3
  244. package/libEs5/utils/isNonEmptyString.js +0 -4
  245. package/libEs5/utils/isNumber.js +0 -3
  246. package/libEs5/utils/isObject.js +11 -5
  247. package/libEs5/utils/isString.js +0 -3
  248. package/libEs5/utils/isUnique.js +0 -7
  249. package/libEs5/utils/isValidRegExp.js +0 -3
  250. package/libEs5/utils/memoize.js +0 -5
  251. package/libEs5/utils/noop.js +0 -3
  252. package/libEs5/utils/padStart.js +0 -6
  253. package/libEs5/utils/prepareConfigOverridesForEdge.js +13 -21
  254. package/libEs5/utils/querystring.js +0 -2
  255. package/libEs5/utils/request/createAddIdentity.js +0 -2
  256. package/libEs5/utils/request/createDataCollectionRequest.js +1 -6
  257. package/libEs5/utils/request/createDataCollectionRequestPayload.js +0 -8
  258. package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +2 -11
  259. package/libEs5/utils/request/createHasIdentity.js +0 -2
  260. package/libEs5/utils/request/createRequest.js +3 -6
  261. package/libEs5/utils/request/createRequestParams.js +4 -12
  262. package/libEs5/utils/request/createRequestPayload.js +2 -7
  263. package/libEs5/utils/request/index.js +0 -8
  264. package/libEs5/utils/sanitizeOrgIdForCookieName.js +0 -2
  265. package/libEs5/utils/stackError.js +1 -6
  266. package/libEs5/utils/startsWith.js +0 -3
  267. package/libEs5/utils/stringToBoolean.js +0 -3
  268. package/libEs5/utils/toArray.js +0 -4
  269. package/libEs5/utils/toError.js +0 -3
  270. package/libEs5/utils/toISOStringLocal.js +3 -7
  271. package/libEs5/utils/toInteger.js +2 -8
  272. package/libEs5/utils/updateErrorMessage.js +3 -5
  273. package/libEs5/utils/uuid.js +0 -2
  274. package/libEs5/utils/validateConfigOverride.js +0 -3
  275. package/libEs5/utils/validateIdentityMap.js +0 -4
  276. package/libEs5/utils/validation/booleanValidator.js +0 -4
  277. package/libEs5/utils/validation/callbackValidator.js +0 -4
  278. package/libEs5/utils/validation/createAnyOfValidator.js +0 -5
  279. package/libEs5/utils/validation/createArrayOfValidator.js +0 -6
  280. package/libEs5/utils/validation/createDefaultValidator.js +0 -3
  281. package/libEs5/utils/validation/createDeprecatedValidator.js +13 -21
  282. package/libEs5/utils/validation/createLiteralValidator.js +0 -3
  283. package/libEs5/utils/validation/createMapOfValuesValidator.js +0 -9
  284. package/libEs5/utils/validation/createMinimumValidator.js +0 -3
  285. package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +0 -4
  286. package/libEs5/utils/validation/createNonEmptyValidator.js +0 -6
  287. package/libEs5/utils/validation/createObjectOfValidator.js +2 -10
  288. package/libEs5/utils/validation/createUniqueItemsValidator.js +0 -4
  289. package/libEs5/utils/validation/createUniqueValidator.js +0 -3
  290. package/libEs5/utils/validation/domainValidator.js +1 -4
  291. package/libEs5/utils/validation/index.js +76 -59
  292. package/libEs5/utils/validation/integerValidator.js +0 -4
  293. package/libEs5/utils/validation/numberValidator.js +0 -4
  294. package/libEs5/utils/validation/regexpValidator.js +0 -4
  295. package/libEs5/utils/validation/requiredValidator.js +0 -3
  296. package/libEs5/utils/validation/stringValidator.js +0 -4
  297. package/libEs5/utils/validation/utils.js +7 -21
  298. package/libEs5/utils/values.js +0 -3
  299. package/libEs6/baseCode/index.js +3 -8
  300. package/libEs6/components/ActivityCollector/attachClickActivityCollector.js +5 -6
  301. package/libEs6/components/ActivityCollector/configValidators.js +1 -0
  302. package/libEs6/components/ActivityCollector/createGetLinkDetails.js +1 -8
  303. package/libEs6/components/ActivityCollector/createLinkClick.js +0 -3
  304. package/libEs6/components/ActivityCollector/getLinkName.js +8 -23
  305. package/libEs6/components/ActivityCollector/getLinkRegion.js +2 -12
  306. package/libEs6/components/ActivityCollector/index.js +3 -6
  307. package/libEs6/components/ActivityCollector/utils.js +2 -29
  308. package/libEs6/components/Audiences/index.js +1 -2
  309. package/libEs6/components/Audiences/injectProcessDestinations.js +3 -6
  310. package/libEs6/components/Audiences/injectProcessResponse.js +1 -2
  311. package/libEs6/components/Context/createComponent.js +1 -2
  312. package/libEs6/components/Context/index.js +3 -3
  313. package/libEs6/components/Context/injectDevice.js +1 -16
  314. package/libEs6/components/Context/injectEnvironment.js +1 -4
  315. package/libEs6/components/Context/injectHighEntropyUserAgentHints.js +2 -5
  316. package/libEs6/components/Context/injectPlaceContext.js +2 -5
  317. package/libEs6/components/Context/injectTimestamp.js +1 -0
  318. package/libEs6/components/Context/injectWeb.js +1 -0
  319. package/libEs6/components/DataCollector/index.js +1 -10
  320. package/libEs6/components/DataCollector/validateUserEventOptions.js +1 -1
  321. package/libEs6/components/EventMerge/createComponent.js +1 -0
  322. package/libEs6/components/EventMerge/createEventMergeId.js +1 -0
  323. package/libEs6/components/EventMerge/index.js +1 -2
  324. package/libEs6/components/Identity/addEcidQueryToPayload.js +1 -0
  325. package/libEs6/components/Identity/addEcidToPayload.js +1 -0
  326. package/libEs6/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +1 -1
  327. package/libEs6/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +0 -4
  328. package/libEs6/components/Identity/configValidators.js +1 -0
  329. package/libEs6/components/Identity/constants/authState.js +1 -0
  330. package/libEs6/components/Identity/constants/defaultIdSyncTtlMinutes.js +1 -0
  331. package/libEs6/components/Identity/createComponent.js +5 -7
  332. package/libEs6/components/Identity/createLegacyIdentity.js +0 -10
  333. package/libEs6/components/Identity/getEcidFromResponse.js +1 -0
  334. package/libEs6/components/Identity/getIdentity/createGetIdentity.js +1 -0
  335. package/libEs6/components/Identity/getIdentity/createIdentityRequest.js +1 -3
  336. package/libEs6/components/Identity/getIdentity/createIdentityRequestPayload.js +1 -0
  337. package/libEs6/components/Identity/getIdentity/getIdentityOptionsValidator.js +1 -1
  338. package/libEs6/components/Identity/index.js +1 -2
  339. package/libEs6/components/Identity/injectAddLegacyEcidToPayload.js +1 -1
  340. package/libEs6/components/Identity/injectAddQueryStringIdentityToPayload.js +5 -7
  341. package/libEs6/components/Identity/injectAwaitIdentityCookie.js +6 -3
  342. package/libEs6/components/Identity/injectEnsureSingleIdentity.js +12 -11
  343. package/libEs6/components/Identity/injectHandleResponseForIdSyncs.js +1 -0
  344. package/libEs6/components/Identity/injectProcessIdSyncs.js +0 -4
  345. package/libEs6/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -0
  346. package/libEs6/components/Identity/visitorService/awaitVisitorOptIn.js +1 -0
  347. package/libEs6/components/Identity/visitorService/getVisitor.js +1 -0
  348. package/libEs6/components/Identity/visitorService/injectGetEcidFromVisitor.js +1 -2
  349. package/libEs6/components/LibraryInfo/index.js +3 -6
  350. package/libEs6/components/MachineLearning/index.js +1 -2
  351. package/libEs6/components/MachineLearning/processResponse.js +1 -0
  352. package/libEs6/components/Personalization/constants/eventType.js +1 -0
  353. package/libEs6/components/Personalization/constants/propositionEventType.js +1 -0
  354. package/libEs6/components/Personalization/constants/schema.js +1 -0
  355. package/libEs6/components/Personalization/constants/scopeType.js +1 -0
  356. package/libEs6/components/Personalization/constants/surface.js +1 -0
  357. package/libEs6/components/Personalization/createApplyPropositions.js +7 -11
  358. package/libEs6/components/Personalization/createClickStorage.js +1 -8
  359. package/libEs6/components/Personalization/createCollect.js +0 -5
  360. package/libEs6/components/Personalization/createComponent.js +5 -11
  361. package/libEs6/components/Personalization/createFetchDataHandler.js +0 -5
  362. package/libEs6/components/Personalization/createGetPageLocation.js +1 -0
  363. package/libEs6/components/Personalization/createOnClickHandler.js +1 -4
  364. package/libEs6/components/Personalization/createPersonalizationDetails.js +1 -22
  365. package/libEs6/components/Personalization/createSetTargetMigration.js +1 -1
  366. package/libEs6/components/Personalization/createViewCacheManager.js +3 -12
  367. package/libEs6/components/Personalization/createViewChangeHandler.js +1 -2
  368. package/libEs6/components/Personalization/dom-actions/action.js +1 -2
  369. package/libEs6/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -8
  370. package/libEs6/components/Personalization/dom-actions/appendHtml.js +1 -0
  371. package/libEs6/components/Personalization/dom-actions/clicks/collectClicks.js +2 -14
  372. package/libEs6/components/Personalization/dom-actions/createPreprocess.js +0 -1
  373. package/libEs6/components/Personalization/dom-actions/dom/createFragment.js +1 -0
  374. package/libEs6/components/Personalization/dom-actions/dom/getAttribute.js +1 -0
  375. package/libEs6/components/Personalization/dom-actions/dom/getChildNodes.js +1 -2
  376. package/libEs6/components/Personalization/dom-actions/dom/getChildren.js +1 -2
  377. package/libEs6/components/Personalization/dom-actions/dom/getFirstChild.js +1 -0
  378. package/libEs6/components/Personalization/dom-actions/dom/getNextSibling.js +1 -0
  379. package/libEs6/components/Personalization/dom-actions/dom/getNonce.js +6 -5
  380. package/libEs6/components/Personalization/dom-actions/dom/getParent.js +1 -0
  381. package/libEs6/components/Personalization/dom-actions/dom/helperForEq.js +1 -0
  382. package/libEs6/components/Personalization/dom-actions/dom/index.js +1 -0
  383. package/libEs6/components/Personalization/dom-actions/dom/insertAfter.js +1 -2
  384. package/libEs6/components/Personalization/dom-actions/dom/insertBefore.js +1 -2
  385. package/libEs6/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +7 -6
  386. package/libEs6/components/Personalization/dom-actions/dom/removeAttribute.js +1 -0
  387. package/libEs6/components/Personalization/dom-actions/dom/selectNodesWithEq.js +6 -18
  388. package/libEs6/components/Personalization/dom-actions/dom/setAttribute.js +1 -0
  389. package/libEs6/components/Personalization/dom-actions/dom/setStyle.js +1 -2
  390. package/libEs6/components/Personalization/dom-actions/images.js +1 -1
  391. package/libEs6/components/Personalization/dom-actions/index.js +1 -0
  392. package/libEs6/components/Personalization/dom-actions/initDomActionsModules.js +1 -0
  393. package/libEs6/components/Personalization/dom-actions/insertHtmlAfter.js +1 -0
  394. package/libEs6/components/Personalization/dom-actions/insertHtmlBefore.js +1 -0
  395. package/libEs6/components/Personalization/dom-actions/prependHtml.js +5 -5
  396. package/libEs6/components/Personalization/dom-actions/rearrangeChildren.js +1 -2
  397. package/libEs6/components/Personalization/dom-actions/remapCustomCodeOffers.js +0 -3
  398. package/libEs6/components/Personalization/dom-actions/remapHeadOffers.js +1 -7
  399. package/libEs6/components/Personalization/dom-actions/replaceHtml.js +1 -0
  400. package/libEs6/components/Personalization/dom-actions/scripts.js +5 -16
  401. package/libEs6/components/Personalization/dom-actions/setAttributes.js +1 -0
  402. package/libEs6/components/Personalization/dom-actions/setHtml.js +1 -2
  403. package/libEs6/components/Personalization/dom-actions/setStyles.js +1 -0
  404. package/libEs6/components/Personalization/dom-actions/setText.js +1 -0
  405. package/libEs6/components/Personalization/dom-actions/swapImage.js +7 -4
  406. package/libEs6/components/Personalization/event.js +4 -4
  407. package/libEs6/components/Personalization/flicker/index.js +9 -12
  408. package/libEs6/components/Personalization/handlers/createProcessDomAction.js +0 -5
  409. package/libEs6/components/Personalization/handlers/createProcessHtmlContent.js +0 -3
  410. package/libEs6/components/Personalization/handlers/createProcessPropositions.js +1 -28
  411. package/libEs6/components/Personalization/handlers/createProcessRedirect.js +2 -3
  412. package/libEs6/components/Personalization/handlers/injectCreateProposition.js +5 -21
  413. package/libEs6/components/Personalization/index.js +1 -2
  414. package/libEs6/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -0
  415. package/libEs6/components/Personalization/utils/createAsyncArray.js +0 -2
  416. package/libEs6/components/Personalization/utils/isAuthoringModeEnabled.js +1 -0
  417. package/libEs6/components/Personalization/utils/isPageWideScope.js +1 -0
  418. package/libEs6/components/Personalization/utils/surfaceUtils.js +1 -20
  419. package/libEs6/components/Personalization/validateApplyPropositionsOptions.js +0 -1
  420. package/libEs6/components/Privacy/computeConsentHash.js +3 -4
  421. package/libEs6/components/Privacy/createComponent.js +5 -10
  422. package/libEs6/components/Privacy/createConsentHashStore.js +0 -10
  423. package/libEs6/components/Privacy/createConsentRequest.js +1 -3
  424. package/libEs6/components/Privacy/createConsentRequestPayload.js +1 -2
  425. package/libEs6/components/Privacy/createStoredConsent.js +1 -2
  426. package/libEs6/components/Privacy/index.js +1 -2
  427. package/libEs6/components/Privacy/injectSendSetConsentRequest.js +3 -3
  428. package/libEs6/constants/browser.js +1 -0
  429. package/libEs6/constants/consentPurpose.js +1 -0
  430. package/libEs6/constants/consentStatus.js +1 -0
  431. package/libEs6/constants/cookieNameKey.js +1 -0
  432. package/libEs6/constants/cookieNamePrefix.js +1 -0
  433. package/libEs6/constants/coreCommands.js +1 -0
  434. package/libEs6/constants/debugQueryParam.js +1 -0
  435. package/libEs6/constants/domain.js +1 -0
  436. package/libEs6/constants/ecidNamespace.js +1 -0
  437. package/libEs6/constants/elementAttribute.js +1 -0
  438. package/libEs6/constants/highEntropyUserAgentClientHints.js +1 -0
  439. package/libEs6/constants/httpHeaderNames.js +1 -0
  440. package/libEs6/constants/httpStatusCode.js +1 -0
  441. package/libEs6/constants/legacyCookies.js +1 -0
  442. package/libEs6/constants/libraryName.js +1 -0
  443. package/libEs6/constants/libraryVersion.js +3 -1
  444. package/libEs6/constants/namespace.js +1 -0
  445. package/libEs6/constants/pageWideScope.js +1 -0
  446. package/libEs6/constants/queryStringIdentityParam.js +1 -0
  447. package/libEs6/constants/shadowSeparator.js +1 -0
  448. package/libEs6/constants/tagName.js +1 -0
  449. package/libEs6/core/buildAndValidateConfig.js +4 -10
  450. package/libEs6/core/componentCreators.js +3 -3
  451. package/libEs6/core/config/createConfig.js +1 -2
  452. package/libEs6/core/config/createCoreConfigs.js +1 -0
  453. package/libEs6/core/consent/createConsent.js +1 -9
  454. package/libEs6/core/consent/createConsentStateMachine.js +1 -20
  455. package/libEs6/core/createComponentRegistry.js +3 -15
  456. package/libEs6/core/createCookieTransfer.js +6 -12
  457. package/libEs6/core/createEvent.js +14 -36
  458. package/libEs6/core/createEventManager.js +5 -8
  459. package/libEs6/core/createInstanceFunction.js +1 -0
  460. package/libEs6/core/createLifecycle.js +14 -10
  461. package/libEs6/core/createLogController.js +1 -7
  462. package/libEs6/core/createLogger.js +1 -17
  463. package/libEs6/core/edgeNetwork/handleRequestFailure.js +0 -1
  464. package/libEs6/core/edgeNetwork/injectApplyResponse.js +2 -3
  465. package/libEs6/core/edgeNetwork/injectExtractEdgeInfo.js +5 -6
  466. package/libEs6/core/edgeNetwork/injectGetLocationHint.js +1 -5
  467. package/libEs6/core/edgeNetwork/injectProcessWarningsAndErrors.js +1 -2
  468. package/libEs6/core/edgeNetwork/injectSendEdgeNetworkRequest.js +5 -5
  469. package/libEs6/core/index.js +4 -10
  470. package/libEs6/core/initializeComponents.js +3 -4
  471. package/libEs6/core/injectCreateResponse.js +3 -7
  472. package/libEs6/core/injectExecuteCommand.js +5 -11
  473. package/libEs6/core/injectHandleError.js +4 -3
  474. package/libEs6/core/injectShouldTransferCookie.js +1 -0
  475. package/libEs6/core/network/getRequestRetryDelay.js +11 -13
  476. package/libEs6/core/network/injectSendNetworkRequest.js +3 -7
  477. package/libEs6/core/network/isRequestRetryable.js +4 -2
  478. package/libEs6/core/network/requestMethods/injectSendBeaconRequest.js +4 -6
  479. package/libEs6/core/network/requestMethods/injectSendFetchRequest.js +1 -2
  480. package/libEs6/core/network/requestMethods/injectSendXhrRequest.js +1 -5
  481. package/libEs6/core/validateCommandOptions.js +1 -2
  482. package/libEs6/index.js +5 -3
  483. package/libEs6/utils/areThirdPartyCookiesSupportedByDefault.js +4 -2
  484. package/libEs6/utils/assign.js +1 -0
  485. package/libEs6/utils/assignIf.js +1 -1
  486. package/libEs6/utils/cookieJar.js +1 -0
  487. package/libEs6/utils/crc32.js +0 -7
  488. package/libEs6/utils/createCallbackAggregator.js +0 -2
  489. package/libEs6/utils/createLoggingCookieJar.js +3 -3
  490. package/libEs6/utils/createMerger.js +2 -1
  491. package/libEs6/utils/createTaskQueue.js +0 -4
  492. package/libEs6/utils/deduplicateArray.js +0 -3
  493. package/libEs6/utils/deepAssign.js +2 -5
  494. package/libEs6/utils/dom/appendNode.js +1 -0
  495. package/libEs6/utils/dom/awaitSelector.js +1 -14
  496. package/libEs6/utils/dom/createNode.js +1 -2
  497. package/libEs6/utils/dom/index.js +1 -0
  498. package/libEs6/utils/dom/isShadowSelector.js +1 -0
  499. package/libEs6/utils/dom/matchesSelector.js +2 -2
  500. package/libEs6/utils/dom/querySelectorAll.js +3 -2
  501. package/libEs6/utils/dom/removeNode.js +1 -2
  502. package/libEs6/utils/dom/selectNodes.js +2 -2
  503. package/libEs6/utils/dom/selectNodesWithShadow.js +6 -16
  504. package/libEs6/utils/filterObject.js +8 -12
  505. package/libEs6/utils/find.js +0 -2
  506. package/libEs6/utils/fireImage.js +2 -1
  507. package/libEs6/utils/getApexDomain.js +4 -4
  508. package/libEs6/utils/getBrowser.js +1 -7
  509. package/libEs6/utils/getNamespacedCookieName.js +1 -0
  510. package/libEs6/utils/groupBy.js +0 -2
  511. package/libEs6/utils/index.js +1 -0
  512. package/libEs6/utils/injectDoesIdentityCookieExist.js +1 -1
  513. package/libEs6/utils/injectFireReferrerHideableImage.js +1 -4
  514. package/libEs6/utils/injectStorage.js +1 -5
  515. package/libEs6/utils/intersection.js +2 -1
  516. package/libEs6/utils/isBlankString.js +2 -1
  517. package/libEs6/utils/isEmptyObject.js +2 -1
  518. package/libEs6/utils/isInteger.js +2 -1
  519. package/libEs6/utils/isNamespacedCookieName.js +2 -1
  520. package/libEs6/utils/isNonEmptyString.js +2 -1
  521. package/libEs6/utils/isObject.js +2 -1
  522. package/libEs6/utils/isUnique.js +0 -5
  523. package/libEs6/utils/memoize.js +0 -2
  524. package/libEs6/utils/padStart.js +1 -4
  525. package/libEs6/utils/prepareConfigOverridesForEdge.js +5 -12
  526. package/libEs6/utils/querystring.js +1 -0
  527. package/libEs6/utils/request/createDataCollectionRequest.js +1 -3
  528. package/libEs6/utils/request/createDataCollectionRequestPayload.js +0 -3
  529. package/libEs6/utils/request/createGetAssuranceValidationTokenParams.js +1 -6
  530. package/libEs6/utils/request/createHasIdentity.js +1 -0
  531. package/libEs6/utils/request/createRequest.js +3 -9
  532. package/libEs6/utils/request/createRequestParams.js +0 -3
  533. package/libEs6/utils/request/createRequestPayload.js +4 -4
  534. package/libEs6/utils/request/index.js +1 -0
  535. package/libEs6/utils/sanitizeOrgIdForCookieName.js +1 -0
  536. package/libEs6/utils/stackError.js +2 -1
  537. package/libEs6/utils/toArray.js +1 -2
  538. package/libEs6/utils/toISOStringLocal.js +4 -3
  539. package/libEs6/utils/toInteger.js +4 -4
  540. package/libEs6/utils/updateErrorMessage.js +3 -1
  541. package/libEs6/utils/uuid.js +1 -0
  542. package/libEs6/utils/validateConfigOverride.js +1 -0
  543. package/libEs6/utils/validateIdentityMap.js +1 -0
  544. package/libEs6/utils/validation/booleanValidator.js +1 -0
  545. package/libEs6/utils/validation/createArrayOfValidator.js +0 -2
  546. package/libEs6/utils/validation/createDefaultValidator.js +1 -1
  547. package/libEs6/utils/validation/createDeprecatedValidator.js +0 -4
  548. package/libEs6/utils/validation/createMapOfValuesValidator.js +1 -4
  549. package/libEs6/utils/validation/createNoUnknownFieldsValidator.js +1 -2
  550. package/libEs6/utils/validation/createNonEmptyValidator.js +1 -1
  551. package/libEs6/utils/validation/createObjectOfValidator.js +3 -5
  552. package/libEs6/utils/validation/createUniqueValidator.js +1 -0
  553. package/libEs6/utils/validation/index.js +14 -32
  554. package/libEs6/utils/validation/integerValidator.js +1 -0
  555. package/libEs6/utils/validation/numberValidator.js +1 -0
  556. package/libEs6/utils/validation/regexpValidator.js +1 -0
  557. package/libEs6/utils/validation/requiredValidator.js +1 -1
  558. package/libEs6/utils/validation/utils.js +8 -12
  559. package/package.json +2 -2
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import { IN, OUT, PENDING } from "../../constants/consentStatus";
13
14
  import { GENERAL } from "../../constants/consentPurpose";
14
15
  import { CONSENT_SOURCE_DEFAULT, CONSENT_SOURCE_INITIAL, CONSENT_SOURCE_NEW } from "./createConsentStateMachine";
@@ -21,21 +22,17 @@ export default (({
21
22
  case IN:
22
23
  generalConsentState.in(source);
23
24
  break;
24
-
25
25
  case OUT:
26
26
  generalConsentState.out(source);
27
27
  break;
28
-
29
28
  case PENDING:
30
29
  generalConsentState.pending(source);
31
30
  break;
32
-
33
31
  default:
34
32
  logger.warn(`Unknown consent value: ${consentByPurpose[GENERAL]}`);
35
33
  break;
36
34
  }
37
35
  };
38
-
39
36
  return {
40
37
  initializeConsent(defaultConsentByPurpose, storedConsentByPurpose) {
41
38
  if (storedConsentByPurpose[GENERAL]) {
@@ -44,22 +41,17 @@ export default (({
44
41
  setConsent(defaultConsentByPurpose, CONSENT_SOURCE_DEFAULT);
45
42
  }
46
43
  },
47
-
48
44
  setConsent(consentByPurpose) {
49
45
  setConsent(consentByPurpose, CONSENT_SOURCE_NEW);
50
46
  },
51
-
52
47
  suspend() {
53
48
  generalConsentState.pending();
54
49
  },
55
-
56
50
  awaitConsent() {
57
51
  return generalConsentState.awaitConsent();
58
52
  },
59
-
60
53
  withConsent() {
61
54
  return generalConsentState.withConsent();
62
55
  }
63
-
64
56
  };
65
57
  });
@@ -9,57 +9,46 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import { defer } from "../../utils";
13
14
  export const DECLINED_CONSENT = "The user declined consent.";
14
15
  export const DECLINED_CONSENT_ERROR_CODE = "declinedConsent";
15
16
  export const CONSENT_SOURCE_DEFAULT = "default";
16
17
  export const CONSENT_SOURCE_INITIAL = "initial";
17
18
  export const CONSENT_SOURCE_NEW = "new";
18
-
19
19
  const createDeclinedConsentError = errorMessage => {
20
20
  const error = new Error(errorMessage);
21
21
  error.code = DECLINED_CONSENT_ERROR_CODE;
22
22
  error.message = errorMessage;
23
23
  return error;
24
24
  };
25
-
26
25
  export default (({
27
26
  logger
28
27
  }) => {
29
28
  const deferreds = [];
30
-
31
29
  const runAll = () => {
32
30
  while (deferreds.length) {
33
31
  deferreds.shift().resolve();
34
32
  }
35
33
  };
36
-
37
34
  const discardAll = () => {
38
35
  while (deferreds.length) {
39
36
  deferreds.shift().reject(createDeclinedConsentError("The user declined consent."));
40
37
  }
41
38
  };
42
-
43
39
  const awaitInitial = () => Promise.reject(new Error("Consent has not been initialized."));
44
-
45
40
  const awaitInDefault = () => Promise.resolve();
46
-
47
41
  const awaitIn = () => Promise.resolve();
48
-
49
42
  const awaitOutDefault = () => Promise.reject(createDeclinedConsentError("No consent preferences have been set."));
50
-
51
43
  const awaitOut = () => Promise.reject(createDeclinedConsentError("The user declined consent."));
52
-
53
44
  const awaitPending = returnImmediately => {
54
45
  if (returnImmediately) {
55
46
  return Promise.reject(new Error("Consent is pending."));
56
47
  }
57
-
58
48
  const deferred = defer();
59
49
  deferreds.push(deferred);
60
50
  return deferred.promise;
61
51
  };
62
-
63
52
  return {
64
53
  in(source) {
65
54
  if (source === CONSENT_SOURCE_DEFAULT) {
@@ -70,12 +59,10 @@ export default (({
70
59
  } else if (source === CONSENT_SOURCE_NEW && this.awaitConsent !== awaitIn) {
71
60
  logger.info("User consented.");
72
61
  }
73
-
74
62
  runAll();
75
63
  this.awaitConsent = awaitIn;
76
64
  }
77
65
  },
78
-
79
66
  out(source) {
80
67
  if (source === CONSENT_SOURCE_DEFAULT) {
81
68
  logger.warn("User consent preferences not found. Default consent of out will be used.");
@@ -86,25 +73,19 @@ export default (({
86
73
  } else if (source === CONSENT_SOURCE_NEW && this.awaitConsent !== awaitOut) {
87
74
  logger.warn("User declined consent.");
88
75
  }
89
-
90
76
  discardAll();
91
77
  this.awaitConsent = awaitOut;
92
78
  }
93
79
  },
94
-
95
80
  pending(source) {
96
81
  if (source === CONSENT_SOURCE_DEFAULT) {
97
82
  logger.info("User consent preferences not found. Default consent of pending will be used. Some commands may be delayed.");
98
83
  }
99
-
100
84
  this.awaitConsent = awaitPending;
101
85
  },
102
-
103
86
  awaitConsent: awaitInitial,
104
-
105
87
  withConsent() {
106
88
  return this.awaitConsent(true);
107
89
  }
108
-
109
90
  };
110
91
  });
@@ -9,12 +9,11 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
- import { intersection, stackError } from "../utils";
13
12
 
13
+ import { intersection, stackError } from "../utils";
14
14
  const wrapForErrorHandling = (fn, stackMessage) => {
15
15
  return (...args) => {
16
16
  let result;
17
-
18
17
  try {
19
18
  result = fn(...args);
20
19
  } catch (error) {
@@ -23,7 +22,6 @@ const wrapForErrorHandling = (fn, stackMessage) => {
23
22
  message: stackMessage
24
23
  });
25
24
  }
26
-
27
25
  if (result instanceof Promise) {
28
26
  result = result.catch(error => {
29
27
  throw stackError({
@@ -32,24 +30,20 @@ const wrapForErrorHandling = (fn, stackMessage) => {
32
30
  });
33
31
  });
34
32
  }
35
-
36
33
  return result;
37
34
  };
38
- }; // TO-DOCUMENT: All public commands and their signatures.
39
-
35
+ };
40
36
 
37
+ // TO-DOCUMENT: All public commands and their signatures.
41
38
  export default (() => {
42
39
  const componentsByNamespace = {};
43
40
  const commandsByName = {};
44
41
  const lifecycleCallbacksByName = {};
45
-
46
42
  const registerComponentCommands = (namespace, componentCommandsByName = {}) => {
47
43
  const conflictingCommandNames = intersection(Object.keys(commandsByName), Object.keys(componentCommandsByName));
48
-
49
44
  if (conflictingCommandNames.length) {
50
45
  throw new Error(`[ComponentRegistry] Could not register ${namespace} ` + `because it has existing command(s): ${conflictingCommandNames.join(",")}`);
51
46
  }
52
-
53
47
  Object.keys(componentCommandsByName).forEach(commandName => {
54
48
  const command = componentCommandsByName[commandName];
55
49
  command.commandName = commandName;
@@ -57,14 +51,12 @@ export default (() => {
57
51
  commandsByName[commandName] = command;
58
52
  });
59
53
  };
60
-
61
54
  const registerLifecycleCallbacks = (namespace, componentLifecycleCallbacksByName = {}) => {
62
55
  Object.keys(componentLifecycleCallbacksByName).forEach(hookName => {
63
56
  lifecycleCallbacksByName[hookName] = lifecycleCallbacksByName[hookName] || [];
64
57
  lifecycleCallbacksByName[hookName].push(wrapForErrorHandling(componentLifecycleCallbacksByName[hookName], `[${namespace}] An error occurred while executing the ${hookName} lifecycle hook.`));
65
58
  });
66
59
  };
67
-
68
60
  return {
69
61
  register(namespace, component) {
70
62
  const {
@@ -75,18 +67,14 @@ export default (() => {
75
67
  registerLifecycleCallbacks(namespace, lifecycle);
76
68
  componentsByNamespace[namespace] = component;
77
69
  },
78
-
79
70
  getCommand(commandName) {
80
71
  return commandsByName[commandName];
81
72
  },
82
-
83
73
  getCommandNames() {
84
74
  return Object.keys(commandsByName);
85
75
  },
86
-
87
76
  getLifecycleCallbacks(hookName) {
88
77
  return lifecycleCallbacksByName[hookName] || [];
89
78
  }
90
-
91
79
  };
92
80
  });
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import { endsWith } from "../utils";
13
14
  const STATE_STORE_HANDLE_TYPE = "state:store";
14
15
  export default (({
@@ -28,10 +29,11 @@ export default (({
28
29
  const state = {
29
30
  domain: apexDomain,
30
31
  cookiesEnabled: true
31
- }; // If the endpoint is first-party, there's no need to transfer cookies
32
+ };
33
+
34
+ // If the endpoint is first-party, there's no need to transfer cookies
32
35
  // to the payload since they'll be automatically passed through cookie
33
36
  // headers.
34
-
35
37
  if (!isEndpointFirstParty) {
36
38
  const cookies = cookieJar.get();
37
39
  const entries = Object.keys(cookies).filter(shouldTransferCookie).map(qualifyingCookieName => {
@@ -40,15 +42,12 @@ export default (({
40
42
  value: cookies[qualifyingCookieName]
41
43
  };
42
44
  });
43
-
44
45
  if (entries.length) {
45
46
  state.entries = entries;
46
47
  }
47
48
  }
48
-
49
49
  payload.mergeState(state);
50
50
  },
51
-
52
51
  /**
53
52
  * When receiving from a third-party endpoint, the endpoint won't be able to
54
53
  * write first-party cookies, therefore we write first-party cookies
@@ -60,25 +59,20 @@ export default (({
60
59
  domain: apexDomain
61
60
  };
62
61
  const sameSite = stateItem.attrs && stateItem.attrs.SameSite && stateItem.attrs.SameSite.toLowerCase();
63
-
64
62
  if (stateItem.maxAge !== undefined) {
65
63
  // cookieJar expects "expires" as a date object
66
64
  options.expires = new Date(dateProvider().getTime() + stateItem.maxAge * 1000);
67
65
  }
68
-
69
66
  if (sameSite !== undefined) {
70
67
  options.sameSite = sameSite;
71
- } // When sameSite is set to none, the secure flag must be set.
68
+ }
69
+ // When sameSite is set to none, the secure flag must be set.
72
70
  // Experience edge will not set the secure flag in these cases.
73
-
74
-
75
71
  if (sameSite === "none") {
76
72
  options.secure = true;
77
73
  }
78
-
79
74
  cookieJar.set(stateItem.key, stateItem.value, options);
80
75
  });
81
76
  }
82
-
83
77
  };
84
78
  });
@@ -9,16 +9,19 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
- import { isEmptyObject, deepAssign, isNonEmptyArray, deduplicateArray } from "../utils";
13
12
 
13
+ import { isEmptyObject, deepAssign, isNonEmptyArray, deduplicateArray } from "../utils";
14
14
  const getXdmPropositions = xdm => {
15
- return xdm && // eslint-disable-next-line no-underscore-dangle
16
- xdm._experience && // eslint-disable-next-line no-underscore-dangle
17
- xdm._experience.decisioning && // eslint-disable-next-line no-underscore-dangle
18
- isNonEmptyArray(xdm._experience.decisioning.propositions) ? // eslint-disable-next-line no-underscore-dangle
15
+ return xdm &&
16
+ // eslint-disable-next-line no-underscore-dangle
17
+ xdm._experience &&
18
+ // eslint-disable-next-line no-underscore-dangle
19
+ xdm._experience.decisioning &&
20
+ // eslint-disable-next-line no-underscore-dangle
21
+ isNonEmptyArray(xdm._experience.decisioning.propositions) ?
22
+ // eslint-disable-next-line no-underscore-dangle
19
23
  xdm._experience.decisioning.propositions : [];
20
24
  };
21
-
22
25
  export default (() => {
23
26
  const content = {};
24
27
  let userXdm;
@@ -26,86 +29,71 @@ export default (() => {
26
29
  let documentMayUnload = false;
27
30
  let isFinalized = false;
28
31
  let shouldSendEvent = true;
29
-
30
32
  const throwIfEventFinalized = methodName => {
31
33
  if (isFinalized) {
32
34
  throw new Error(`${methodName} cannot be called after event is finalized.`);
33
35
  }
34
36
  };
35
-
36
37
  const event = {
37
38
  setUserXdm(value) {
38
39
  throwIfEventFinalized("setUserXdm");
39
40
  userXdm = value;
40
41
  },
41
-
42
42
  setUserData(value) {
43
43
  throwIfEventFinalized("setUserData");
44
44
  userData = value;
45
45
  },
46
-
47
46
  mergeXdm(xdm) {
48
47
  throwIfEventFinalized("mergeXdm");
49
-
50
48
  if (xdm) {
51
49
  deepAssign(content, {
52
50
  xdm
53
51
  });
54
52
  }
55
53
  },
56
-
57
54
  mergeMeta(meta) {
58
55
  throwIfEventFinalized("mergeMeta");
59
-
60
56
  if (meta) {
61
57
  deepAssign(content, {
62
58
  meta
63
59
  });
64
60
  }
65
61
  },
66
-
67
62
  mergeQuery(query) {
68
63
  throwIfEventFinalized("mergeQuery");
69
-
70
64
  if (query) {
71
65
  deepAssign(content, {
72
66
  query
73
67
  });
74
68
  }
75
69
  },
76
-
77
70
  documentMayUnload() {
78
71
  documentMayUnload = true;
79
72
  },
80
-
81
73
  finalize(onBeforeEventSend) {
82
74
  if (isFinalized) {
83
75
  return;
84
76
  }
85
-
86
77
  const newPropositions = deduplicateArray([...getXdmPropositions(userXdm), ...getXdmPropositions(content.xdm)], (a, b) => a === b || a.id && b.id && a.id === b.id && a.scope && b.scope && a.scope === b.scope);
87
-
88
78
  if (userXdm) {
89
79
  this.mergeXdm(userXdm);
90
80
  }
91
-
92
81
  if (newPropositions.length > 0) {
93
82
  // eslint-disable-next-line no-underscore-dangle
94
83
  content.xdm._experience.decisioning.propositions = newPropositions;
95
84
  }
96
-
97
85
  if (userData) {
98
86
  content.data = userData;
99
- } // the event should already be considered finalized in case onBeforeEventSend throws an error
100
-
87
+ }
101
88
 
89
+ // the event should already be considered finalized in case onBeforeEventSend throws an error
102
90
  isFinalized = true;
103
-
104
91
  if (onBeforeEventSend) {
105
92
  // assume that the onBeforeEventSend callback will fail (in-case of an error)
106
- shouldSendEvent = false; // this allows the user to replace the xdm and data properties
107
- // on the object passed to the callback
93
+ shouldSendEvent = false;
108
94
 
95
+ // this allows the user to replace the xdm and data properties
96
+ // on the object passed to the callback
109
97
  const tempContent = {
110
98
  xdm: content.xdm || {},
111
99
  data: content.data || {}
@@ -114,45 +102,35 @@ export default (() => {
114
102
  shouldSendEvent = result !== false;
115
103
  content.xdm = tempContent.xdm || {};
116
104
  content.data = tempContent.data || {};
117
-
118
105
  if (isEmptyObject(content.xdm)) {
119
106
  delete content.xdm;
120
107
  }
121
-
122
108
  if (isEmptyObject(content.data)) {
123
109
  delete content.data;
124
110
  }
125
111
  }
126
112
  },
127
-
128
113
  getDocumentMayUnload() {
129
114
  return documentMayUnload;
130
115
  },
131
-
132
116
  isEmpty() {
133
117
  return isEmptyObject(content) && (!userXdm || isEmptyObject(userXdm)) && (!userData || isEmptyObject(userData));
134
118
  },
135
-
136
119
  shouldSend() {
137
120
  return shouldSendEvent;
138
121
  },
139
-
140
122
  getViewName() {
141
123
  if (!userXdm || !userXdm.web || !userXdm.web.webPageDetails || !userXdm.web.webPageDetails.viewName) {
142
124
  return undefined;
143
125
  }
144
-
145
126
  return userXdm.web.webPageDetails.viewName;
146
127
  },
147
-
148
128
  toJSON() {
149
129
  if (!isFinalized) {
150
130
  throw new Error("toJSON called before finalize");
151
131
  }
152
-
153
132
  return content;
154
133
  }
155
-
156
134
  };
157
135
  return event;
158
136
  });
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import PAGE_WIDE_SCOPE from "../constants/pageWideScope";
13
14
  import { createCallbackAggregator, noop } from "../utils";
14
15
  import { createRequestParams } from "../utils/request";
@@ -30,7 +31,6 @@ export default (({
30
31
  } = config;
31
32
  return {
32
33
  createEvent,
33
-
34
34
  /**
35
35
  * Sends an event. This includes running the event and payload through
36
36
  * the appropriate lifecycle hooks, sending the request to the server,
@@ -83,25 +83,24 @@ export default (({
83
83
  const throwError = () => {
84
84
  throw error;
85
85
  };
86
-
87
86
  onRequestFailureCallbackAggregator.add(lifecycle.onRequestFailure);
88
87
  return onRequestFailureCallbackAggregator.call({
89
88
  error
90
89
  }).then(throwError, throwError);
91
- } // if the callback returns false, the event should not be sent
92
-
90
+ }
93
91
 
92
+ // if the callback returns false, the event should not be sent
94
93
  if (!event.shouldSend()) {
95
94
  onRequestFailureCallbackAggregator.add(lifecycle.onRequestFailure);
96
95
  logger.info(EVENT_CANCELLATION_MESSAGE);
97
96
  const error = new Error(EVENT_CANCELLATION_MESSAGE);
98
97
  return onRequestFailureCallbackAggregator.call({
99
98
  error
100
- }).then(() => {// Ensure the promise gets resolved with undefined instead
99
+ }).then(() => {
100
+ // Ensure the promise gets resolved with undefined instead
101
101
  // of an array of return values from the callbacks.
102
102
  });
103
103
  }
104
-
105
104
  return sendEdgeNetworkRequest({
106
105
  request,
107
106
  runOnResponseCallbacks: onResponseCallbackAggregator.call,
@@ -109,7 +108,6 @@ export default (({
109
108
  });
110
109
  });
111
110
  },
112
-
113
111
  applyResponse(event, options = {}) {
114
112
  const {
115
113
  renderDecisions = false,
@@ -141,6 +139,5 @@ export default (({
141
139
  });
142
140
  });
143
141
  }
144
-
145
142
  };
146
143
  });
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  export default (executeCommand => {
13
14
  return args => {
14
15
  // Would use destructuring, but destructuring doesn't work on IE
@@ -9,21 +9,27 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  // TO-DOCUMENT: Lifecycle hooks and their params.
13
- const hookNames = [// Called after all components have been registered.
14
- "onComponentsRegistered", // Called before an event is sent on a data collection request
15
- "onBeforeEvent", // Called before each request is made to the edge.
16
- "onBeforeRequest", // Called after each response is returned from the edge with a successful
14
+ const hookNames = [
15
+ // Called after all components have been registered.
16
+ "onComponentsRegistered",
17
+ // Called before an event is sent on a data collection request
18
+ "onBeforeEvent",
19
+ // Called before each request is made to the edge.
20
+ "onBeforeRequest",
21
+ // Called after each response is returned from the edge with a successful
17
22
  // status code
18
- "onResponse", // Called after a network request to the edge fails. Either the request
23
+ "onResponse",
24
+ // Called after a network request to the edge fails. Either the request
19
25
  // didn't make it to the edge, didn't make it to Konductor, or Konductor
20
26
  // failed to return a regularly-structured response. (In this case { error }
21
27
  // is passed as the parameter)
22
28
  // Also called when the respone returns a 400 or 500 error. (In this case
23
29
  // { response } is passed as the parameter)
24
- "onRequestFailure", // A user clicked on an element.
30
+ "onRequestFailure",
31
+ // A user clicked on an element.
25
32
  "onClick"];
26
-
27
33
  const createHook = (componentRegistry, hookName) => {
28
34
  return (...args) => {
29
35
  return Promise.all(componentRegistry.getLifecycleCallbacks(hookName).map(callback => {
@@ -33,6 +39,7 @@ const createHook = (componentRegistry, hookName) => {
33
39
  }));
34
40
  };
35
41
  };
42
+
36
43
  /**
37
44
  * This ensures that if a component's lifecycle method X
38
45
  * attempts to execute lifecycle method Y, that all X methods on all components
@@ -40,8 +47,6 @@ const createHook = (componentRegistry, hookName) => {
40
47
  * this by kicking the call to the Y method to the next JavaScript tick.
41
48
  * @returns {function}
42
49
  */
43
-
44
-
45
50
  const guardHook = fn => {
46
51
  return (...args) => {
47
52
  return Promise.resolve().then(() => {
@@ -49,7 +54,6 @@ const guardHook = fn => {
49
54
  });
50
55
  };
51
56
  };
52
-
53
57
  export default (componentRegistry => {
54
58
  return hookNames.reduce((memo, hookName) => {
55
59
  memo[hookName] = guardHook(createHook(componentRegistry, hookName));
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import { queryString, stringToBoolean } from "../utils";
13
14
  import debugQueryParam from "../constants/debugQueryParam";
14
15
  export default (({
@@ -24,29 +25,24 @@ export default (({
24
25
  const debugSessionValue = storage.session.getItem("debug");
25
26
  let debugEnabled = debugSessionValue === "true";
26
27
  let debugEnabledWritableFromConfig = debugSessionValue === null;
27
-
28
28
  const getDebugEnabled = () => debugEnabled;
29
-
30
29
  const setDebugEnabled = (value, {
31
30
  fromConfig
32
31
  }) => {
33
32
  if (!fromConfig || debugEnabledWritableFromConfig) {
34
33
  debugEnabled = value;
35
34
  }
36
-
37
35
  if (!fromConfig) {
38
36
  // Web storage only allows strings, so we explicitly convert to string.
39
37
  storage.session.setItem("debug", value.toString());
40
38
  debugEnabledWritableFromConfig = false;
41
39
  }
42
40
  };
43
-
44
41
  if (parsedQueryString[debugQueryParam] !== undefined) {
45
42
  setDebugEnabled(stringToBoolean(parsedQueryString[debugQueryParam]), {
46
43
  fromConfig: false
47
44
  });
48
45
  }
49
-
50
46
  return {
51
47
  setDebugEnabled,
52
48
  logger: createLogger({
@@ -57,7 +53,6 @@ export default (({
57
53
  getMonitors,
58
54
  console
59
55
  }),
60
-
61
56
  createComponentLogger(componentName) {
62
57
  return createLogger({
63
58
  getDebugEnabled,
@@ -69,6 +64,5 @@ export default (({
69
64
  console
70
65
  });
71
66
  }
72
-
73
67
  };
74
68
  });