@adobe/alloy 2.18.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 (576) 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 +25 -35
  23. package/libEs5/components/DataCollector/validateApplyResponse.js +6 -4
  24. package/libEs5/components/DataCollector/validateUserEventOptions.js +5 -6
  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 +47 -49
  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 +40 -42
  66. package/libEs5/components/Personalization/createFetchDataHandler.js +81 -26
  67. package/libEs5/components/Personalization/createGetPageLocation.js +0 -2
  68. package/libEs5/components/Personalization/createOnClickHandler.js +8 -18
  69. package/libEs5/components/Personalization/{utils/composePersonalizationResultingObject.js → createPendingNotificationsHandler.js} +9 -18
  70. package/libEs5/components/Personalization/createPersonalizationDetails.js +24 -30
  71. package/libEs5/components/Personalization/createSetTargetMigration.js +0 -5
  72. package/libEs5/components/Personalization/createViewCacheManager.js +54 -28
  73. package/libEs5/components/Personalization/createViewChangeHandler.js +25 -37
  74. package/libEs5/components/Personalization/dom-actions/action.js +6 -37
  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/{libEs6/components/Personalization/utils/composePersonalizationResultingObject.js → libEs5/components/Personalization/dom-actions/createPreprocess.js} +14 -14
  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 +1 -10
  99. package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +2 -14
  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 +5 -15
  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 +54 -0
  116. package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +38 -0
  117. package/libEs5/components/Personalization/handlers/createProcessPropositions.js +195 -0
  118. package/libEs5/components/Personalization/handlers/createProcessRedirect.js +42 -0
  119. package/libEs5/components/Personalization/handlers/injectCreateProposition.js +118 -0
  120. package/libEs5/components/Personalization/{dom-actions/clicks/index.js → handlers/processDefaultContent.js} +7 -5
  121. package/libEs5/components/Personalization/index.js +72 -80
  122. package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -4
  123. package/libEs5/components/Personalization/utils/createAsyncArray.js +39 -0
  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 +5 -8
  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 +41 -32
  171. package/libEs5/core/createEventManager.js +27 -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 +32 -0
  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 +7 -55
  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 +5 -12
  320. package/libEs6/components/DataCollector/validateApplyResponse.js +6 -1
  321. package/libEs6/components/DataCollector/validateUserEventOptions.js +6 -2
  322. package/libEs6/components/EventMerge/createComponent.js +1 -0
  323. package/libEs6/components/EventMerge/createEventMergeId.js +1 -0
  324. package/libEs6/components/EventMerge/index.js +1 -2
  325. package/libEs6/components/Identity/addEcidQueryToPayload.js +1 -0
  326. package/libEs6/components/Identity/addEcidToPayload.js +1 -0
  327. package/libEs6/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +1 -1
  328. package/libEs6/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +0 -4
  329. package/libEs6/components/Identity/configValidators.js +1 -0
  330. package/libEs6/components/Identity/constants/authState.js +1 -0
  331. package/libEs6/components/Identity/constants/defaultIdSyncTtlMinutes.js +1 -0
  332. package/libEs6/components/Identity/createComponent.js +5 -7
  333. package/libEs6/components/Identity/createLegacyIdentity.js +0 -10
  334. package/libEs6/components/Identity/getEcidFromResponse.js +1 -0
  335. package/libEs6/components/Identity/getIdentity/createGetIdentity.js +1 -0
  336. package/libEs6/components/Identity/getIdentity/createIdentityRequest.js +1 -3
  337. package/libEs6/components/Identity/getIdentity/createIdentityRequestPayload.js +1 -0
  338. package/libEs6/components/Identity/getIdentity/getIdentityOptionsValidator.js +1 -1
  339. package/libEs6/components/Identity/index.js +1 -2
  340. package/libEs6/components/Identity/injectAddLegacyEcidToPayload.js +1 -1
  341. package/libEs6/components/Identity/injectAddQueryStringIdentityToPayload.js +5 -7
  342. package/libEs6/components/Identity/injectAwaitIdentityCookie.js +6 -3
  343. package/libEs6/components/Identity/injectEnsureSingleIdentity.js +12 -11
  344. package/libEs6/components/Identity/injectHandleResponseForIdSyncs.js +1 -0
  345. package/libEs6/components/Identity/injectProcessIdSyncs.js +0 -4
  346. package/libEs6/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -0
  347. package/libEs6/components/Identity/visitorService/awaitVisitorOptIn.js +1 -0
  348. package/libEs6/components/Identity/visitorService/getVisitor.js +1 -0
  349. package/libEs6/components/Identity/visitorService/injectGetEcidFromVisitor.js +1 -2
  350. package/libEs6/components/LibraryInfo/index.js +3 -6
  351. package/libEs6/components/MachineLearning/index.js +1 -2
  352. package/libEs6/components/MachineLearning/processResponse.js +1 -0
  353. package/libEs6/components/Personalization/constants/eventType.js +1 -0
  354. package/libEs6/components/Personalization/constants/propositionEventType.js +1 -0
  355. package/libEs6/components/Personalization/constants/schema.js +1 -0
  356. package/libEs6/components/Personalization/constants/scopeType.js +1 -0
  357. package/libEs6/components/Personalization/constants/surface.js +1 -0
  358. package/libEs6/components/Personalization/createApplyPropositions.js +31 -34
  359. package/libEs6/components/Personalization/createClickStorage.js +1 -8
  360. package/libEs6/components/Personalization/createCollect.js +0 -5
  361. package/libEs6/components/Personalization/createComponent.js +23 -21
  362. package/libEs6/components/Personalization/createFetchDataHandler.js +61 -10
  363. package/libEs6/components/Personalization/createGetPageLocation.js +1 -0
  364. package/libEs6/components/Personalization/createOnClickHandler.js +4 -7
  365. package/{libEs5/components/Personalization/dom-actions/click.js → libEs6/components/Personalization/createPendingNotificationsHandler.js} +11 -15
  366. package/libEs6/components/Personalization/createPersonalizationDetails.js +9 -22
  367. package/libEs6/components/Personalization/createSetTargetMigration.js +1 -1
  368. package/libEs6/components/Personalization/createViewCacheManager.js +50 -24
  369. package/libEs6/components/Personalization/createViewChangeHandler.js +25 -29
  370. package/libEs6/components/Personalization/dom-actions/action.js +5 -14
  371. package/libEs6/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -8
  372. package/libEs6/components/Personalization/dom-actions/appendHtml.js +1 -0
  373. package/libEs6/components/Personalization/dom-actions/clicks/collectClicks.js +2 -14
  374. package/libEs6/components/Personalization/dom-actions/{click.js → createPreprocess.js} +7 -11
  375. package/libEs6/components/Personalization/dom-actions/dom/createFragment.js +1 -0
  376. package/libEs6/components/Personalization/dom-actions/dom/getAttribute.js +1 -0
  377. package/libEs6/components/Personalization/dom-actions/dom/getChildNodes.js +1 -2
  378. package/libEs6/components/Personalization/dom-actions/dom/getChildren.js +1 -2
  379. package/libEs6/components/Personalization/dom-actions/dom/getFirstChild.js +1 -0
  380. package/libEs6/components/Personalization/dom-actions/dom/getNextSibling.js +1 -0
  381. package/libEs6/components/Personalization/dom-actions/dom/getNonce.js +6 -5
  382. package/libEs6/components/Personalization/dom-actions/dom/getParent.js +1 -0
  383. package/libEs6/components/Personalization/dom-actions/dom/helperForEq.js +1 -0
  384. package/libEs6/components/Personalization/dom-actions/dom/index.js +1 -0
  385. package/libEs6/components/Personalization/dom-actions/dom/insertAfter.js +1 -2
  386. package/libEs6/components/Personalization/dom-actions/dom/insertBefore.js +1 -2
  387. package/libEs6/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +7 -6
  388. package/libEs6/components/Personalization/dom-actions/dom/removeAttribute.js +1 -0
  389. package/libEs6/components/Personalization/dom-actions/dom/selectNodesWithEq.js +6 -18
  390. package/libEs6/components/Personalization/dom-actions/dom/setAttribute.js +1 -0
  391. package/libEs6/components/Personalization/dom-actions/dom/setStyle.js +1 -2
  392. package/libEs6/components/Personalization/dom-actions/images.js +1 -1
  393. package/libEs6/components/Personalization/dom-actions/index.js +2 -2
  394. package/libEs6/components/Personalization/dom-actions/initDomActionsModules.js +4 -7
  395. package/libEs6/components/Personalization/dom-actions/insertHtmlAfter.js +1 -0
  396. package/libEs6/components/Personalization/dom-actions/insertHtmlBefore.js +1 -0
  397. package/libEs6/components/Personalization/dom-actions/prependHtml.js +5 -5
  398. package/libEs6/components/Personalization/dom-actions/rearrangeChildren.js +1 -2
  399. package/libEs6/components/Personalization/dom-actions/remapCustomCodeOffers.js +0 -3
  400. package/libEs6/components/Personalization/dom-actions/remapHeadOffers.js +4 -6
  401. package/libEs6/components/Personalization/dom-actions/replaceHtml.js +1 -0
  402. package/libEs6/components/Personalization/dom-actions/scripts.js +5 -16
  403. package/libEs6/components/Personalization/dom-actions/setAttributes.js +1 -0
  404. package/libEs6/components/Personalization/dom-actions/setHtml.js +1 -2
  405. package/libEs6/components/Personalization/dom-actions/setStyles.js +1 -0
  406. package/libEs6/components/Personalization/dom-actions/setText.js +1 -0
  407. package/libEs6/components/Personalization/dom-actions/swapImage.js +7 -4
  408. package/libEs6/components/Personalization/event.js +4 -4
  409. package/libEs6/components/Personalization/flicker/index.js +9 -12
  410. package/libEs6/components/Personalization/handlers/createProcessDomAction.js +48 -0
  411. package/libEs6/components/Personalization/handlers/createProcessHtmlContent.js +34 -0
  412. package/libEs6/components/Personalization/handlers/createProcessPropositions.js +175 -0
  413. package/libEs6/components/Personalization/handlers/createProcessRedirect.js +38 -0
  414. package/libEs6/components/Personalization/handlers/injectCreateProposition.js +113 -0
  415. package/libEs6/components/Personalization/{dom-actions/clicks/index.js → handlers/processDefaultContent.js} +7 -3
  416. package/libEs6/components/Personalization/index.js +61 -42
  417. package/libEs6/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -0
  418. package/libEs6/components/Personalization/utils/createAsyncArray.js +35 -0
  419. package/libEs6/components/Personalization/utils/isAuthoringModeEnabled.js +1 -0
  420. package/libEs6/components/Personalization/utils/isPageWideScope.js +1 -0
  421. package/libEs6/components/Personalization/utils/surfaceUtils.js +1 -20
  422. package/libEs6/components/Personalization/validateApplyPropositionsOptions.js +4 -4
  423. package/libEs6/components/Privacy/computeConsentHash.js +3 -4
  424. package/libEs6/components/Privacy/createComponent.js +5 -10
  425. package/libEs6/components/Privacy/createConsentHashStore.js +0 -10
  426. package/libEs6/components/Privacy/createConsentRequest.js +1 -3
  427. package/libEs6/components/Privacy/createConsentRequestPayload.js +1 -2
  428. package/libEs6/components/Privacy/createStoredConsent.js +1 -2
  429. package/libEs6/components/Privacy/index.js +1 -2
  430. package/libEs6/components/Privacy/injectSendSetConsentRequest.js +3 -3
  431. package/libEs6/constants/browser.js +1 -0
  432. package/libEs6/constants/consentPurpose.js +1 -0
  433. package/libEs6/constants/consentStatus.js +1 -0
  434. package/libEs6/constants/cookieNameKey.js +1 -0
  435. package/libEs6/constants/cookieNamePrefix.js +1 -0
  436. package/libEs6/constants/coreCommands.js +1 -0
  437. package/libEs6/constants/debugQueryParam.js +1 -0
  438. package/libEs6/constants/domain.js +1 -0
  439. package/libEs6/constants/ecidNamespace.js +1 -0
  440. package/libEs6/constants/elementAttribute.js +1 -0
  441. package/libEs6/constants/highEntropyUserAgentClientHints.js +1 -0
  442. package/libEs6/constants/httpHeaderNames.js +1 -0
  443. package/libEs6/constants/httpStatusCode.js +1 -0
  444. package/libEs6/constants/legacyCookies.js +1 -0
  445. package/libEs6/constants/libraryName.js +1 -0
  446. package/libEs6/constants/libraryVersion.js +3 -1
  447. package/libEs6/constants/namespace.js +1 -0
  448. package/libEs6/constants/pageWideScope.js +1 -0
  449. package/libEs6/constants/queryStringIdentityParam.js +1 -0
  450. package/libEs6/constants/shadowSeparator.js +1 -0
  451. package/libEs6/constants/tagName.js +1 -0
  452. package/libEs6/core/buildAndValidateConfig.js +4 -10
  453. package/libEs6/core/componentCreators.js +3 -3
  454. package/libEs6/core/config/createConfig.js +1 -2
  455. package/libEs6/core/config/createCoreConfigs.js +1 -0
  456. package/libEs6/core/consent/createConsent.js +1 -9
  457. package/libEs6/core/consent/createConsentStateMachine.js +1 -20
  458. package/libEs6/core/createComponentRegistry.js +3 -15
  459. package/libEs6/core/createCookieTransfer.js +6 -12
  460. package/libEs6/core/createEvent.js +25 -31
  461. package/libEs6/core/createEventManager.js +8 -10
  462. package/libEs6/core/createInstanceFunction.js +1 -0
  463. package/libEs6/core/createLifecycle.js +14 -10
  464. package/libEs6/core/createLogController.js +1 -7
  465. package/libEs6/core/createLogger.js +1 -17
  466. package/libEs6/core/edgeNetwork/handleRequestFailure.js +0 -1
  467. package/libEs6/core/edgeNetwork/injectApplyResponse.js +2 -3
  468. package/libEs6/core/edgeNetwork/injectExtractEdgeInfo.js +5 -6
  469. package/libEs6/core/edgeNetwork/injectGetLocationHint.js +1 -5
  470. package/libEs6/core/edgeNetwork/injectProcessWarningsAndErrors.js +1 -2
  471. package/libEs6/core/edgeNetwork/injectSendEdgeNetworkRequest.js +5 -5
  472. package/libEs6/core/index.js +4 -10
  473. package/libEs6/core/initializeComponents.js +3 -4
  474. package/libEs6/core/injectCreateResponse.js +3 -7
  475. package/libEs6/core/injectExecuteCommand.js +5 -11
  476. package/libEs6/core/injectHandleError.js +4 -3
  477. package/libEs6/core/injectShouldTransferCookie.js +1 -0
  478. package/libEs6/core/network/getRequestRetryDelay.js +11 -13
  479. package/libEs6/core/network/injectSendNetworkRequest.js +3 -7
  480. package/libEs6/core/network/isRequestRetryable.js +4 -2
  481. package/libEs6/core/network/requestMethods/injectSendBeaconRequest.js +4 -6
  482. package/libEs6/core/network/requestMethods/injectSendFetchRequest.js +1 -2
  483. package/libEs6/core/network/requestMethods/injectSendXhrRequest.js +1 -5
  484. package/libEs6/core/validateCommandOptions.js +1 -2
  485. package/libEs6/index.js +5 -3
  486. package/libEs6/utils/areThirdPartyCookiesSupportedByDefault.js +4 -2
  487. package/libEs6/utils/assign.js +1 -0
  488. package/libEs6/utils/assignIf.js +1 -1
  489. package/libEs6/utils/cookieJar.js +1 -0
  490. package/libEs6/utils/crc32.js +0 -7
  491. package/libEs6/utils/createCallbackAggregator.js +0 -2
  492. package/libEs6/utils/createLoggingCookieJar.js +3 -3
  493. package/libEs6/utils/createMerger.js +2 -1
  494. package/libEs6/utils/createTaskQueue.js +0 -4
  495. package/libEs6/utils/deduplicateArray.js +23 -0
  496. package/libEs6/utils/deepAssign.js +2 -5
  497. package/libEs6/utils/dom/appendNode.js +1 -0
  498. package/libEs6/utils/dom/awaitSelector.js +1 -14
  499. package/libEs6/utils/dom/createNode.js +1 -2
  500. package/libEs6/utils/dom/index.js +1 -0
  501. package/libEs6/utils/dom/isShadowSelector.js +1 -0
  502. package/libEs6/utils/dom/matchesSelector.js +2 -2
  503. package/libEs6/utils/dom/querySelectorAll.js +3 -2
  504. package/libEs6/utils/dom/removeNode.js +1 -2
  505. package/libEs6/utils/dom/selectNodes.js +2 -2
  506. package/libEs6/utils/dom/selectNodesWithShadow.js +6 -16
  507. package/libEs6/utils/filterObject.js +8 -12
  508. package/libEs6/utils/find.js +0 -2
  509. package/libEs6/utils/fireImage.js +2 -1
  510. package/libEs6/utils/getApexDomain.js +4 -4
  511. package/libEs6/utils/getBrowser.js +1 -7
  512. package/libEs6/utils/getNamespacedCookieName.js +1 -0
  513. package/libEs6/utils/groupBy.js +0 -2
  514. package/libEs6/utils/index.js +2 -0
  515. package/libEs6/utils/injectDoesIdentityCookieExist.js +1 -1
  516. package/libEs6/utils/injectFireReferrerHideableImage.js +1 -4
  517. package/libEs6/utils/injectStorage.js +1 -5
  518. package/libEs6/utils/intersection.js +2 -1
  519. package/libEs6/utils/isBlankString.js +2 -1
  520. package/libEs6/utils/isEmptyObject.js +2 -1
  521. package/libEs6/utils/isInteger.js +2 -1
  522. package/libEs6/utils/isNamespacedCookieName.js +2 -1
  523. package/libEs6/utils/isNonEmptyString.js +2 -1
  524. package/libEs6/utils/isObject.js +2 -1
  525. package/libEs6/utils/isUnique.js +0 -5
  526. package/libEs6/utils/memoize.js +0 -2
  527. package/libEs6/utils/padStart.js +1 -4
  528. package/libEs6/utils/prepareConfigOverridesForEdge.js +5 -12
  529. package/libEs6/utils/querystring.js +1 -0
  530. package/libEs6/utils/request/createDataCollectionRequest.js +1 -3
  531. package/libEs6/utils/request/createDataCollectionRequestPayload.js +0 -3
  532. package/libEs6/utils/request/createGetAssuranceValidationTokenParams.js +1 -6
  533. package/libEs6/utils/request/createHasIdentity.js +1 -0
  534. package/libEs6/utils/request/createRequest.js +3 -9
  535. package/libEs6/utils/request/createRequestParams.js +0 -3
  536. package/libEs6/utils/request/createRequestPayload.js +4 -4
  537. package/libEs6/utils/request/index.js +1 -0
  538. package/libEs6/utils/sanitizeOrgIdForCookieName.js +1 -0
  539. package/libEs6/utils/stackError.js +2 -1
  540. package/libEs6/utils/toArray.js +1 -2
  541. package/libEs6/utils/toISOStringLocal.js +4 -3
  542. package/libEs6/utils/toInteger.js +4 -4
  543. package/libEs6/utils/updateErrorMessage.js +3 -1
  544. package/libEs6/utils/uuid.js +1 -0
  545. package/libEs6/utils/validateConfigOverride.js +1 -0
  546. package/libEs6/utils/validateIdentityMap.js +1 -0
  547. package/libEs6/utils/validation/booleanValidator.js +1 -0
  548. package/libEs6/utils/validation/createArrayOfValidator.js +0 -2
  549. package/libEs6/utils/validation/createDefaultValidator.js +1 -1
  550. package/libEs6/utils/validation/createDeprecatedValidator.js +0 -4
  551. package/libEs6/utils/validation/createMapOfValuesValidator.js +1 -4
  552. package/libEs6/utils/validation/createNoUnknownFieldsValidator.js +1 -2
  553. package/libEs6/utils/validation/createNonEmptyValidator.js +1 -1
  554. package/libEs6/utils/validation/createObjectOfValidator.js +3 -5
  555. package/libEs6/utils/validation/createUniqueValidator.js +1 -0
  556. package/libEs6/utils/validation/index.js +14 -32
  557. package/libEs6/utils/validation/integerValidator.js +1 -0
  558. package/libEs6/utils/validation/numberValidator.js +1 -0
  559. package/libEs6/utils/validation/regexpValidator.js +1 -0
  560. package/libEs6/utils/validation/requiredValidator.js +1 -1
  561. package/libEs6/utils/validation/utils.js +8 -12
  562. package/package.json +2 -2
  563. package/libEs5/components/Personalization/createAutoRenderingHandler.js +0 -92
  564. package/libEs5/components/Personalization/createExecuteDecisions.js +0 -89
  565. package/libEs5/components/Personalization/createNonRenderingHandler.js +0 -66
  566. package/libEs5/components/Personalization/createOnResponseHandler.js +0 -73
  567. package/libEs5/components/Personalization/createRedirectHandler.js +0 -58
  568. package/libEs5/components/Personalization/dom-actions/executeActions.js +0 -75
  569. package/libEs5/components/Personalization/groupDecisions.js +0 -160
  570. package/libEs6/components/Personalization/createAutoRenderingHandler.js +0 -84
  571. package/libEs6/components/Personalization/createExecuteDecisions.js +0 -77
  572. package/libEs6/components/Personalization/createNonRenderingHandler.js +0 -56
  573. package/libEs6/components/Personalization/createOnResponseHandler.js +0 -68
  574. package/libEs6/components/Personalization/createRedirectHandler.js +0 -57
  575. package/libEs6/components/Personalization/dom-actions/executeActions.js +0 -66
  576. package/libEs6/components/Personalization/groupDecisions.js +0 -131
@@ -11,13 +11,9 @@ governing permissions and limitations under the License.
11
11
  */
12
12
 
13
13
  /* eslint no-param-reassign: 0 */
14
-
15
14
  /* eslint no-underscore-dangle: 0 */
16
-
17
15
  /* eslint prefer-rest-params: 0 */
18
-
19
16
  /* eslint no-var: 0 */
20
-
21
17
  /* eslint-disable func-names */
22
18
 
23
19
  /**
@@ -36,6 +32,7 @@ governing permissions and limitations under the License.
36
32
  * Take particular care to write well-minifiable code, as consumers are
37
33
  * particularly sensitive to base code size.
38
34
  */
35
+
39
36
  export default ((window, instanceNames) => {
40
37
  instanceNames.forEach(function (instanceName) {
41
38
  if (!window[instanceName]) {
@@ -45,11 +42,10 @@ export default ((window, instanceNames) => {
45
42
  // which global functions have been set up so that is can connect them to
46
43
  // the library's command processing pipeline.
47
44
  (window.__alloyNS = window.__alloyNS || []).push(instanceName);
48
-
49
45
  window[instanceName] = function () {
50
- var userProvidedArgs = arguments; // Always return a promise, because the command may be executed
46
+ var userProvidedArgs = arguments;
47
+ // Always return a promise, because the command may be executed
51
48
  // asynchronously, especially if the Alloy library has not yet loaded.
52
-
53
49
  return new Promise(function (resolve, reject) {
54
50
  // Push required call information into the queue. Once the Alloy
55
51
  // library is loaded, it will process this queue and resolve/reject
@@ -59,7 +55,6 @@ export default ((window, instanceNames) => {
59
55
  window[instanceName].q.push([resolve, reject, userProvidedArgs]);
60
56
  });
61
57
  };
62
-
63
58
  window[instanceName].q = [];
64
59
  }
65
60
  });
@@ -9,8 +9,8 @@ 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 { noop } from "../../utils";
13
12
 
13
+ import { noop } from "../../utils";
14
14
  const createClickHandler = ({
15
15
  eventManager,
16
16
  lifecycle,
@@ -19,8 +19,8 @@ const createClickHandler = ({
19
19
  return clickEvent => {
20
20
  // TODO: Consider safeguarding from the same object being clicked multiple times in rapid succession?
21
21
  const clickedElement = clickEvent.target;
22
- const event = eventManager.createEvent(); // this is to make sure a exit link personalization metric use send beacon
23
-
22
+ const event = eventManager.createEvent();
23
+ // this is to make sure a exit link personalization metric use send beacon
24
24
  event.documentMayUnload();
25
25
  return lifecycle.onClick({
26
26
  event,
@@ -29,16 +29,15 @@ const createClickHandler = ({
29
29
  if (event.isEmpty()) {
30
30
  return Promise.resolve();
31
31
  }
32
-
33
32
  return eventManager.sendEvent(event);
34
- }) // eventManager.sendEvent() will return a promise resolved to an
33
+ })
34
+ // eventManager.sendEvent() will return a promise resolved to an
35
35
  // object and we want to avoid returning any value to the customer
36
36
  .then(noop).catch(error => {
37
37
  handleError(error, "click collection");
38
38
  });
39
39
  };
40
40
  };
41
-
42
41
  export default (({
43
42
  eventManager,
44
43
  lifecycle,
@@ -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 { boolean, callback, objectOf, string } from "../../utils/validation";
13
14
  export const downloadLinkQualifier = string().regexp().default("\\.(exe|zip|wav|mp3|mov|mpg|avi|wmv|pdf|doc|docx|xls|xlsx|ppt|pptx)$");
14
15
  export default objectOf({
@@ -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 (({
13
14
  window,
14
15
  getLinkName,
@@ -23,19 +24,15 @@ export default (({
23
24
  logger
24
25
  }) => {
25
26
  const anchorElement = findSupportedAnchorElement(targetElement);
26
-
27
27
  if (!anchorElement) {
28
28
  logger.info("This link click event is not triggered because the HTML element is not an anchor.");
29
29
  return undefined;
30
30
  }
31
-
32
31
  const linkUrl = getAbsoluteUrlFromAnchorElement(window, anchorElement);
33
-
34
32
  if (!linkUrl) {
35
33
  logger.info("This link click event is not triggered because the HTML element doesn't have an URL.");
36
34
  return undefined;
37
35
  }
38
-
39
36
  const linkType = determineLinkType(window, config, linkUrl, anchorElement);
40
37
  const linkRegion = getLinkRegion(anchorElement);
41
38
  const linkName = getLinkName(anchorElement);
@@ -60,17 +57,13 @@ export default (({
60
57
  data: {},
61
58
  clickedElement: targetElement
62
59
  };
63
-
64
60
  if (!onBeforeLinkClickSend) {
65
61
  return options;
66
62
  }
67
-
68
63
  const shouldEventBeTracked = onBeforeLinkClickSend(options);
69
-
70
64
  if (shouldEventBeTracked !== false) {
71
65
  return options;
72
66
  }
73
-
74
67
  logger.info("This link click event is not triggered because it was canceled in onBeforeLinkClickSend.");
75
68
  return undefined;
76
69
  };
@@ -17,11 +17,9 @@ export default (({
17
17
  const {
18
18
  clickCollectionEnabled
19
19
  } = config;
20
-
21
20
  if (!clickCollectionEnabled) {
22
21
  return () => undefined;
23
22
  }
24
-
25
23
  return ({
26
24
  targetElement,
27
25
  event
@@ -31,7 +29,6 @@ export default (({
31
29
  config,
32
30
  logger
33
31
  });
34
-
35
32
  if (linkDetails) {
36
33
  event.mergeXdm(linkDetails.xdm);
37
34
  event.setUserData(linkDetails.data);
@@ -9,38 +9,35 @@ 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 { truncateWhiteSpace } from "./utils";
13
14
  const unsupportedNodeNames = /^(SCRIPT|STYLE|LINK|CANVAS|NOSCRIPT|#COMMENT)$/i;
15
+
14
16
  /**
15
17
  * Determines if a node qualifies as a supported link text node.
16
18
  * @param {*} node Node to determine support for.
17
19
  * @returns {boolean}
18
20
  */
19
-
20
21
  const isSupportedTextNode = node => {
21
22
  if (node && node.nodeName) {
22
23
  if (node.nodeName.match(unsupportedNodeNames)) {
23
24
  return false;
24
25
  }
25
26
  }
26
-
27
27
  return true;
28
28
  };
29
+
29
30
  /**
30
31
  * Orders and returns specified node and its child nodes in arrays of supported
31
32
  * and unsupported nodes.
32
33
  * @param {*} node The node to extract supported and unsupported nodes from.
33
34
  * @returns {{supportedNodes: Array, includesUnsupportedNodes: boolean}} Node support object.
34
35
  */
35
-
36
-
37
36
  const extractSupportedNodes = node => {
38
37
  let supportedNodes = [];
39
38
  let includesUnsupportedNodes = false;
40
-
41
39
  if (isSupportedTextNode(node)) {
42
40
  supportedNodes.push(node);
43
-
44
41
  if (node.childNodes) {
45
42
  const childNodes = Array.prototype.slice.call(node.childNodes);
46
43
  childNodes.forEach(childNode => {
@@ -52,12 +49,12 @@ const extractSupportedNodes = node => {
52
49
  } else {
53
50
  includesUnsupportedNodes = true;
54
51
  }
55
-
56
52
  return {
57
53
  supportedNodes,
58
54
  includesUnsupportedNodes
59
55
  };
60
56
  };
57
+
61
58
  /**
62
59
  * Returns the value of a node attribute.
63
60
  * @param {*} node The node holding the attribute.
@@ -65,24 +62,19 @@ const extractSupportedNodes = node => {
65
62
  * @param {string} nodeName Optional node name constraint.
66
63
  * @returns {string} Attribute value or undefined.
67
64
  */
68
-
69
-
70
65
  const getNodeAttributeValue = (node, attributeName, nodeName) => {
71
66
  let attributeValue;
72
-
73
67
  if (!nodeName || nodeName === node.nodeName.toUpperCase()) {
74
68
  attributeValue = node.getAttribute(attributeName);
75
69
  }
76
-
77
70
  return attributeValue;
78
71
  };
72
+
79
73
  /**
80
74
  * Extracts the children supported nodes attributes map
81
75
  * @param {*} nodes The nodes array holding the children nodes.
82
76
  * The returned map contains the supported not empty children attributes values.
83
77
  * */
84
-
85
-
86
78
  const getChildrenAttributes = nodes => {
87
79
  const attributes = {
88
80
  texts: []
@@ -92,26 +84,23 @@ const getChildrenAttributes = nodes => {
92
84
  if (!attributes.alt) {
93
85
  attributes.alt = truncateWhiteSpace(supportedNode.getAttribute("alt"));
94
86
  }
95
-
96
87
  if (!attributes.title) {
97
88
  attributes.title = truncateWhiteSpace(supportedNode.getAttribute("title"));
98
89
  }
99
-
100
90
  if (!attributes.inputValue) {
101
91
  attributes.inputValue = truncateWhiteSpace(getNodeAttributeValue(supportedNode, "value", "INPUT"));
102
92
  }
103
-
104
93
  if (!attributes.imgSrc) {
105
94
  attributes.imgSrc = truncateWhiteSpace(getNodeAttributeValue(supportedNode, "src", "IMG"));
106
95
  }
107
96
  }
108
-
109
97
  if (supportedNode.nodeValue) {
110
98
  attributes.texts.push(supportedNode.nodeValue);
111
99
  }
112
100
  });
113
101
  return attributes;
114
102
  };
103
+
115
104
  /**
116
105
  * Extracts a link-name from a given node.
117
106
  *
@@ -132,20 +121,16 @@ const getChildrenAttributes = nodes => {
132
121
  * @param {*} node The node to find link text for.
133
122
  * @returns {string} link-name or an empty string if not link-name is found.
134
123
  */
135
-
136
-
137
124
  export default (node => {
138
125
  let nodeText = truncateWhiteSpace(node.innerText || node.textContent);
139
- const nodes = extractSupportedNodes(node); // if contains unsupported nodes we want children node attributes
140
-
126
+ const nodes = extractSupportedNodes(node);
127
+ // if contains unsupported nodes we want children node attributes
141
128
  if (!nodeText || nodes.includesUnsupportedNodes) {
142
129
  const attributesMap = getChildrenAttributes(nodes);
143
130
  nodeText = truncateWhiteSpace(attributesMap.texts.join(""));
144
-
145
131
  if (!nodeText) {
146
132
  nodeText = attributesMap.alt || attributesMap.title || attributesMap.inputValue || attributesMap.imgSrc;
147
133
  }
148
134
  }
149
-
150
135
  return nodeText || "";
151
136
  });
@@ -9,31 +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
  import { truncateWhiteSpace } from "./utils";
13
14
  import { isNonEmptyString } from "../../utils";
14
15
  const semanticElements = /^(HEADER|MAIN|FOOTER|NAV)$/i;
15
-
16
16
  const getAriaRegionLabel = node => {
17
17
  let regionLabel;
18
-
19
18
  if (node.role === "region" && isNonEmptyString(node["aria-label"])) {
20
19
  regionLabel = node["aria-label"];
21
20
  }
22
-
23
21
  return regionLabel;
24
22
  };
25
-
26
23
  const getSectionNodeName = node => {
27
24
  let nodeName;
28
-
29
25
  if (node && node.nodeName) {
30
26
  if (node.nodeName.match(semanticElements)) {
31
27
  nodeName = node.nodeName;
32
28
  }
33
29
  }
34
-
35
30
  return nodeName;
36
31
  };
32
+
37
33
  /**
38
34
  * Extracts a node link-region.
39
35
  *
@@ -48,21 +44,15 @@ const getSectionNodeName = node => {
48
44
  * @param {*} node The node to find link region for.
49
45
  * @returns {string} link-region.
50
46
  */
51
-
52
-
53
47
  export default (node => {
54
48
  let linkParentNode = node.parentNode;
55
49
  let regionName;
56
-
57
50
  while (linkParentNode) {
58
51
  regionName = truncateWhiteSpace(linkParentNode.id || getAriaRegionLabel(linkParentNode) || getSectionNodeName(linkParentNode));
59
-
60
52
  if (regionName) {
61
53
  return regionName;
62
54
  }
63
-
64
55
  linkParentNode = linkParentNode.parentNode;
65
56
  }
66
-
67
57
  return "BODY";
68
58
  });
@@ -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 attachClickActivityCollector from "./attachClickActivityCollector";
13
14
  import configValidators from "./configValidators";
14
15
  import createLinkClick from "./createLinkClick";
@@ -24,7 +25,6 @@ const getLinkDetails = createGetLinkDetails({
24
25
  findSupportedAnchorElement,
25
26
  determineLinkType
26
27
  });
27
-
28
28
  const createActivityCollector = ({
29
29
  config,
30
30
  eventManager,
@@ -46,7 +46,8 @@ const createActivityCollector = ({
46
46
  eventManager,
47
47
  lifecycle,
48
48
  handleError
49
- }); // TODO: createScrollActivityCollector ...
49
+ });
50
+ // TODO: createScrollActivityCollector ...
50
51
  },
51
52
 
52
53
  onClick({
@@ -58,14 +59,11 @@ const createActivityCollector = ({
58
59
  event
59
60
  });
60
61
  }
61
-
62
62
  }
63
63
  };
64
64
  };
65
-
66
65
  createActivityCollector.namespace = "ActivityCollector";
67
66
  createActivityCollector.configValidators = configValidators;
68
-
69
67
  createActivityCollector.buildOnInstanceConfiguredExtraParams = ({
70
68
  config,
71
69
  logger
@@ -80,5 +78,4 @@ createActivityCollector.buildOnInstanceConfiguredExtraParams = ({
80
78
  }
81
79
  };
82
80
  };
83
-
84
81
  export default createActivityCollector;
@@ -9,10 +9,10 @@ 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
  const urlStartsWithScheme = url => {
13
14
  return url && /^[a-z0-9]+:\/\//i.test(url);
14
15
  };
15
-
16
16
  const getAbsoluteUrlFromAnchorElement = (window, element) => {
17
17
  const loc = window.location;
18
18
  let url = element.href ? element.href : "";
@@ -20,71 +20,55 @@ const getAbsoluteUrlFromAnchorElement = (window, element) => {
20
20
  protocol,
21
21
  host
22
22
  } = element;
23
-
24
23
  if (!urlStartsWithScheme(url)) {
25
24
  if (!protocol) {
26
25
  protocol = loc.protocol ? loc.protocol : "";
27
26
  }
28
-
29
27
  protocol = protocol ? `${protocol}//` : "";
30
-
31
28
  if (!host) {
32
29
  host = loc.host ? loc.host : "";
33
30
  }
34
-
35
31
  let path = "";
36
-
37
32
  if (url.substring(0, 1) !== "/") {
38
33
  let indx = loc.pathname.lastIndexOf("/");
39
34
  indx = indx < 0 ? 0 : indx;
40
35
  path = loc.pathname.substring(0, indx);
41
36
  }
42
-
43
37
  url = `${protocol}${host}${path}/${url}`;
44
38
  }
45
-
46
39
  return url;
47
40
  };
48
-
49
41
  const isSupportedAnchorElement = element => {
50
42
  if (element.href && (element.tagName === "A" || element.tagName === "AREA") && (!element.onclick || !element.protocol || element.protocol.toLowerCase().indexOf("javascript") < 0)) {
51
43
  return true;
52
44
  }
53
-
54
45
  return false;
55
46
  };
56
-
57
47
  const trimQueryFromUrl = url => {
58
48
  const questionMarkIndex = url.indexOf("?");
59
49
  const hashIndex = url.indexOf("#");
60
-
61
50
  if (questionMarkIndex >= 0 && (questionMarkIndex < hashIndex || hashIndex < 0)) {
62
51
  return url.substring(0, questionMarkIndex);
63
52
  }
64
-
65
53
  if (hashIndex >= 0) {
66
54
  return url.substring(0, hashIndex);
67
55
  }
68
-
69
56
  return url;
70
57
  };
71
-
72
58
  const isDownloadLink = (downloadLinkQualifier, linkUrl, clickedObj) => {
73
59
  const re = new RegExp(downloadLinkQualifier);
74
60
  const trimmedLinkUrl = trimQueryFromUrl(linkUrl).toLowerCase();
75
61
  return clickedObj.download ? true : re.test(trimmedLinkUrl);
76
62
  };
77
-
78
63
  const isExitLink = (window, linkUrl) => {
79
64
  const currentHostname = window.location.hostname.toLowerCase();
80
65
  const trimmedLinkUrl = trimQueryFromUrl(linkUrl).toLowerCase();
81
-
82
66
  if (trimmedLinkUrl.indexOf(currentHostname) >= 0) {
83
67
  return false;
84
68
  }
85
-
86
69
  return true;
87
70
  };
71
+
88
72
  /**
89
73
  * Reduces repeated whitespace within a string. Whitespace surrounding the string
90
74
  * is trimmed and any occurrence of whitespace within the string is replaced with
@@ -92,40 +76,29 @@ const isExitLink = (window, linkUrl) => {
92
76
  * @param {string} str String to be formatted.
93
77
  * @returns {string} Formatted string.
94
78
  */
95
-
96
-
97
79
  const truncateWhiteSpace = str => {
98
80
  return str && str.replace(/\s+/g, " ").trim();
99
81
  };
100
-
101
82
  const isEmptyString = str => {
102
83
  return !str || str.length === 0;
103
84
  };
104
-
105
85
  const determineLinkType = (window, config, linkUrl, clickedObj) => {
106
86
  let linkType = "other";
107
-
108
87
  if (isDownloadLink(config.downloadLinkQualifier, linkUrl, clickedObj)) {
109
88
  linkType = "download";
110
89
  } else if (isExitLink(window, linkUrl)) {
111
90
  linkType = "exit";
112
91
  }
113
-
114
92
  return linkType;
115
93
  };
116
-
117
94
  const findSupportedAnchorElement = targetElement => {
118
95
  let node = targetElement;
119
-
120
96
  while (node) {
121
97
  if (isSupportedAnchorElement(node)) {
122
98
  return node;
123
99
  }
124
-
125
100
  node = node.parentNode;
126
101
  }
127
-
128
102
  return null;
129
103
  };
130
-
131
104
  export { urlStartsWithScheme, getAbsoluteUrlFromAnchorElement, isSupportedAnchorElement, isDownloadLink, isEmptyString, isExitLink, trimQueryFromUrl, truncateWhiteSpace, findSupportedAnchorElement, determineLinkType };
@@ -9,10 +9,10 @@ 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 { createLoggingCookieJar, cookieJar } from "../../utils";
13
14
  import injectProcessDestinations from "./injectProcessDestinations";
14
15
  import injectProcessResponse from "./injectProcessResponse";
15
-
16
16
  const createAudiences = ({
17
17
  logger,
18
18
  fireReferrerHideableImage
@@ -43,6 +43,5 @@ const createAudiences = ({
43
43
  commands: {}
44
44
  };
45
45
  };
46
-
47
46
  createAudiences.namespace = "Audiences";
48
47
  export default createAudiences;
@@ -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 { noop } from "../../utils";
13
12
 
13
+ import { noop } from "../../utils";
14
14
  const createResultLogMessage = (urlDestination, success) => {
15
15
  return `URL destination ${success ? "succeeded" : "failed"}: ${urlDestination.spec.url}`;
16
16
  };
17
-
18
17
  export default (({
19
18
  fireReferrerHideableImage,
20
19
  logger,
@@ -25,7 +24,6 @@ export default (({
25
24
  sameSite: "none",
26
25
  secure: true
27
26
  } : {};
28
-
29
27
  const processCookies = destinations => {
30
28
  const cookieDestinations = destinations.filter(dest => dest.type === "cookie");
31
29
  cookieDestinations.forEach(dest => {
@@ -43,19 +41,18 @@ export default (({
43
41
  });
44
42
  });
45
43
  };
46
-
47
44
  const processUrls = destinations => {
48
45
  const urlDestinations = destinations.filter(dest => dest.type === "url");
49
46
  return Promise.all(urlDestinations.map(urlDestination => {
50
47
  return fireReferrerHideableImage(urlDestination.spec).then(() => {
51
48
  logger.info(createResultLogMessage(urlDestination, true));
52
- }).catch(() => {// We intentionally do not throw an error if destinations fail. We
49
+ }).catch(() => {
50
+ // We intentionally do not throw an error if destinations fail. We
53
51
  // consider it a non-critical failure and therefore do not want it to
54
52
  // reject the promise handed back to the customer.
55
53
  });
56
54
  })).then(noop);
57
55
  };
58
-
59
56
  return destinations => {
60
57
  processCookies(destinations);
61
58
  return processUrls(destinations);
@@ -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 (({
13
14
  processDestinations
14
15
  }) => {
@@ -18,7 +19,6 @@ export default (({
18
19
  const destinations = response.getPayloadsByType("activation:push");
19
20
  return processDestinations(destinations);
20
21
  };
21
-
22
22
  const retrievePullDestinations = ({
23
23
  response
24
24
  }) => {
@@ -26,7 +26,6 @@ export default (({
26
26
  destinations: response.getPayloadsByType("activation:pull")
27
27
  };
28
28
  };
29
-
30
29
  return ({
31
30
  response
32
31
  }) => {
@@ -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 { flatMap } from "../../utils";
13
14
  export default ((config, logger, optionalContexts, requiredContexts) => {
14
15
  const configuredContexts = config.context;
@@ -16,7 +17,6 @@ export default ((config, logger, optionalContexts, requiredContexts) => {
16
17
  if (optionalContexts[context]) {
17
18
  return [optionalContexts[context]];
18
19
  }
19
-
20
20
  logger.warn(`Invalid context[${i}]: '${context}' is not available.`);
21
21
  return [];
22
22
  }).concat(requiredContexts);
@@ -29,7 +29,6 @@ export default ((config, logger, optionalContexts, requiredContexts) => {
29
29
  const xdm = {};
30
30
  return Promise.all(contexts.map(context => Promise.resolve(context(xdm, logger)))).then(() => event.mergeXdm(xdm));
31
31
  }
32
-
33
32
  }
34
33
  };
35
34
  });
@@ -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 injectWeb from "./injectWeb";
13
14
  import injectDevice from "./injectDevice";
14
15
  import injectEnvironment from "./injectEnvironment";
@@ -33,18 +34,17 @@ const defaultEnabledContexts = {
33
34
  const defaultDisabledContexts = {
34
35
  highEntropyUserAgentHints
35
36
  };
36
- const optionalContexts = { ...defaultEnabledContexts,
37
+ const optionalContexts = {
38
+ ...defaultEnabledContexts,
37
39
  ...defaultDisabledContexts
38
40
  };
39
41
  const requiredContexts = [timestamp, implementationDetails];
40
-
41
42
  const createContext = ({
42
43
  config,
43
44
  logger
44
45
  }) => {
45
46
  return createComponent(config, logger, optionalContexts, requiredContexts);
46
47
  };
47
-
48
48
  createContext.namespace = "Context";
49
49
  createContext.configValidators = objectOf({
50
50
  context: arrayOf(string()).default(Object.keys(defaultEnabledContexts))