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

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 (561) 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 +24 -45
  23. package/libEs5/components/DataCollector/validateApplyResponse.js +2 -5
  24. package/libEs5/components/DataCollector/validateUserEventOptions.js +6 -9
  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 +7 -3
  61. package/libEs5/components/Personalization/constants/surface.js +1 -1
  62. package/libEs5/components/Personalization/createApplyPropositions.js +29 -40
  63. package/libEs5/components/Personalization/createClickStorage.js +22 -23
  64. package/libEs5/components/Personalization/createCollect.js +5 -15
  65. package/libEs5/components/Personalization/createComponent.js +43 -42
  66. package/libEs5/components/Personalization/createFetchDataHandler.js +41 -50
  67. package/libEs5/components/Personalization/createGetPageLocation.js +0 -2
  68. package/libEs5/components/Personalization/createOnClickHandler.js +9 -20
  69. package/libEs5/components/Personalization/createPersonalizationDetails.js +23 -35
  70. package/libEs5/components/Personalization/createSetTargetMigration.js +0 -5
  71. package/libEs5/components/Personalization/createViewCacheManager.js +13 -26
  72. package/libEs5/components/Personalization/createViewChangeHandler.js +3 -15
  73. package/libEs5/components/Personalization/dom-actions/action.js +3 -19
  74. package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -13
  75. package/libEs5/components/Personalization/dom-actions/appendHtml.js +0 -7
  76. package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +46 -37
  77. package/libEs5/components/Personalization/dom-actions/createPreprocess.js +0 -4
  78. package/libEs5/components/Personalization/{utils/isPageWideScope.js → dom-actions/createRedirect.js} +10 -9
  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 +23 -15
  116. package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +11 -10
  117. package/libEs5/components/Personalization/handlers/createProcessPropositions.js +8 -53
  118. package/libEs5/components/Personalization/handlers/createProcessRedirect.js +10 -9
  119. package/libEs5/components/Personalization/handlers/injectCreateProposition.js +32 -40
  120. package/libEs5/components/Personalization/handlers/processDefaultContent.js +0 -2
  121. package/libEs5/components/Personalization/index.js +25 -55
  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/surfaceUtils.js +1 -27
  126. package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +2 -6
  127. package/libEs5/components/Privacy/computeConsentHash.js +11 -8
  128. package/libEs5/components/Privacy/createComponent.js +24 -26
  129. package/libEs5/components/Privacy/createConsentHashStore.js +14 -15
  130. package/libEs5/components/Privacy/createConsentRequest.js +1 -4
  131. package/libEs5/components/Privacy/createConsentRequestPayload.js +0 -5
  132. package/libEs5/components/Privacy/createStoredConsent.js +2 -6
  133. package/libEs5/components/Privacy/index.js +5 -15
  134. package/libEs5/components/Privacy/injectSendSetConsentRequest.js +7 -12
  135. package/libEs5/components/Privacy/parseConsentCookie.js +3 -13
  136. package/libEs5/components/Privacy/validateSetConsentOptions.js +0 -4
  137. package/libEs5/constants/apiVersion.js +0 -1
  138. package/libEs5/constants/browser.js +1 -1
  139. package/libEs5/constants/consentPurpose.js +1 -1
  140. package/libEs5/constants/consentStatus.js +1 -1
  141. package/libEs5/constants/cookieNameKey.js +1 -1
  142. package/libEs5/constants/cookieNamePrefix.js +0 -1
  143. package/libEs5/constants/coreCommands.js +1 -1
  144. package/libEs5/constants/debugQueryParam.js +0 -1
  145. package/libEs5/constants/domain.js +1 -1
  146. package/libEs5/constants/ecidNamespace.js +0 -1
  147. package/libEs5/constants/edgeBasePath.js +0 -1
  148. package/libEs5/constants/elementAttribute.js +1 -1
  149. package/libEs5/constants/highEntropyUserAgentClientHints.js +0 -1
  150. package/libEs5/constants/httpHeaderNames.js +1 -1
  151. package/libEs5/constants/httpStatusCode.js +1 -1
  152. package/libEs5/constants/identityMapAuthenticatedState.js +0 -1
  153. package/libEs5/constants/legacyCookies.js +1 -1
  154. package/libEs5/constants/libraryName.js +0 -1
  155. package/libEs5/constants/libraryVersion.js +1 -2
  156. package/libEs5/constants/namespace.js +0 -1
  157. package/libEs5/constants/pageWideScope.js +0 -1
  158. package/libEs5/constants/queryStringIdentityParam.js +0 -1
  159. package/libEs5/constants/shadowSeparator.js +0 -1
  160. package/libEs5/constants/tagName.js +1 -1
  161. package/libEs5/core/buildAndValidateConfig.js +21 -32
  162. package/libEs5/core/componentCreators.js +0 -12
  163. package/libEs5/core/config/createConfig.js +1 -3
  164. package/libEs5/core/config/createCoreConfigs.js +0 -7
  165. package/libEs5/core/consent/createConsent.js +1 -11
  166. package/libEs5/core/consent/createConsentStateMachine.js +1 -18
  167. package/libEs5/core/createComponentRegistry.js +4 -14
  168. package/libEs5/core/createCookieTransfer.js +9 -18
  169. package/libEs5/core/createEvent.js +25 -34
  170. package/libEs5/core/createEventManager.js +39 -53
  171. package/libEs5/core/createInstanceFunction.js +0 -2
  172. package/libEs5/core/createLifecycle.js +14 -14
  173. package/libEs5/core/createLogController.js +5 -17
  174. package/libEs5/core/createLogger.js +3 -17
  175. package/libEs5/core/edgeNetwork/handleRequestFailure.js +0 -3
  176. package/libEs5/core/edgeNetwork/injectApplyResponse.js +12 -18
  177. package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +4 -8
  178. package/libEs5/core/edgeNetwork/injectGetLocationHint.js +1 -11
  179. package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +6 -11
  180. package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +18 -26
  181. package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +11 -10
  182. package/libEs5/core/index.js +12 -54
  183. package/libEs5/core/initializeComponents.js +5 -10
  184. package/libEs5/core/injectCreateResponse.js +8 -16
  185. package/libEs5/core/injectExecuteCommand.js +8 -19
  186. package/libEs5/core/injectHandleError.js +4 -8
  187. package/libEs5/core/injectShouldTransferCookie.js +1 -5
  188. package/libEs5/core/network/getRequestRetryDelay.js +10 -17
  189. package/libEs5/core/network/injectSendNetworkRequest.js +20 -22
  190. package/libEs5/core/network/isRequestRetryable.js +5 -7
  191. package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +5 -8
  192. package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +0 -2
  193. package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +0 -5
  194. package/libEs5/core/validateCommandOptions.js +5 -9
  195. package/libEs5/index.js +7 -15
  196. package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +1 -5
  197. package/libEs5/utils/assign.js +0 -2
  198. package/libEs5/utils/assignIf.js +0 -4
  199. package/libEs5/utils/clone.js +0 -3
  200. package/libEs5/utils/cookieJar.js +0 -2
  201. package/libEs5/utils/crc32.js +0 -8
  202. package/libEs5/utils/createCallbackAggregator.js +0 -4
  203. package/libEs5/utils/createLoggingCookieJar.js +1 -6
  204. package/libEs5/utils/createMerger.js +0 -4
  205. package/libEs5/utils/createTaskQueue.js +0 -7
  206. package/libEs5/utils/deduplicateArray.js +0 -5
  207. package/libEs5/utils/deepAssign.js +2 -10
  208. package/libEs5/utils/defer.js +0 -3
  209. package/libEs5/utils/dom/appendNode.js +0 -2
  210. package/libEs5/utils/dom/awaitSelector.js +1 -29
  211. package/libEs5/utils/dom/createNode.js +1 -5
  212. package/libEs5/utils/dom/index.js +0 -8
  213. package/libEs5/utils/dom/isShadowSelector.js +0 -3
  214. package/libEs5/utils/dom/matchesSelector.js +2 -5
  215. package/libEs5/utils/dom/querySelectorAll.js +3 -6
  216. package/libEs5/utils/dom/removeNode.js +0 -4
  217. package/libEs5/utils/dom/selectNodes.js +0 -8
  218. package/libEs5/utils/dom/selectNodesWithShadow.js +6 -20
  219. package/libEs5/utils/endsWith.js +0 -3
  220. package/libEs5/utils/filterObject.js +13 -17
  221. package/libEs5/utils/find.js +0 -5
  222. package/libEs5/utils/fireImage.js +2 -7
  223. package/libEs5/utils/flatMap.js +0 -2
  224. package/libEs5/utils/getApexDomain.js +4 -8
  225. package/libEs5/utils/getBrowser.js +11 -11
  226. package/libEs5/utils/getLastArrayItems.js +0 -3
  227. package/libEs5/utils/getNamespacedCookieName.js +0 -4
  228. package/libEs5/utils/groupBy.js +0 -5
  229. package/libEs5/utils/includes.js +0 -3
  230. package/libEs5/utils/index.js +0 -56
  231. package/libEs5/utils/injectDoesIdentityCookieExist.js +0 -6
  232. package/libEs5/utils/injectFireReferrerHideableImage.js +21 -29
  233. package/libEs5/utils/injectStorage.js +1 -7
  234. package/libEs5/utils/intersection.js +0 -4
  235. package/libEs5/utils/isBlankString.js +0 -4
  236. package/libEs5/utils/isBoolean.js +0 -3
  237. package/libEs5/utils/isEmptyObject.js +0 -4
  238. package/libEs5/utils/isFunction.js +0 -3
  239. package/libEs5/utils/isInteger.js +0 -4
  240. package/libEs5/utils/isNamespacedCookieName.js +0 -5
  241. package/libEs5/utils/isNil.js +0 -3
  242. package/libEs5/utils/isNonEmptyArray.js +0 -3
  243. package/libEs5/utils/isNonEmptyString.js +0 -4
  244. package/libEs5/utils/isNumber.js +0 -3
  245. package/libEs5/utils/isObject.js +11 -5
  246. package/libEs5/utils/isString.js +0 -3
  247. package/libEs5/utils/isUnique.js +0 -7
  248. package/libEs5/utils/isValidRegExp.js +0 -3
  249. package/libEs5/utils/memoize.js +0 -5
  250. package/libEs5/utils/noop.js +0 -3
  251. package/libEs5/utils/padStart.js +0 -6
  252. package/libEs5/utils/prepareConfigOverridesForEdge.js +13 -21
  253. package/libEs5/utils/querystring.js +0 -2
  254. package/libEs5/utils/request/createAddIdentity.js +0 -2
  255. package/libEs5/utils/request/createDataCollectionRequest.js +1 -6
  256. package/libEs5/utils/request/createDataCollectionRequestPayload.js +0 -8
  257. package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +2 -11
  258. package/libEs5/utils/request/createHasIdentity.js +0 -2
  259. package/libEs5/utils/request/createRequest.js +3 -6
  260. package/libEs5/utils/request/createRequestParams.js +4 -12
  261. package/libEs5/utils/request/createRequestPayload.js +2 -7
  262. package/libEs5/utils/request/index.js +0 -8
  263. package/libEs5/utils/sanitizeOrgIdForCookieName.js +0 -2
  264. package/libEs5/utils/stackError.js +1 -6
  265. package/libEs5/utils/startsWith.js +0 -3
  266. package/libEs5/utils/stringToBoolean.js +0 -3
  267. package/libEs5/utils/toArray.js +0 -4
  268. package/libEs5/utils/toError.js +0 -3
  269. package/libEs5/utils/toISOStringLocal.js +3 -7
  270. package/libEs5/utils/toInteger.js +2 -8
  271. package/libEs5/utils/updateErrorMessage.js +3 -5
  272. package/libEs5/utils/uuid.js +0 -2
  273. package/libEs5/utils/validateConfigOverride.js +0 -3
  274. package/libEs5/utils/validateIdentityMap.js +0 -4
  275. package/libEs5/utils/validation/booleanValidator.js +0 -4
  276. package/libEs5/utils/validation/callbackValidator.js +0 -4
  277. package/libEs5/utils/validation/createAnyOfValidator.js +0 -5
  278. package/libEs5/utils/validation/createArrayOfValidator.js +0 -6
  279. package/libEs5/utils/validation/createDefaultValidator.js +0 -3
  280. package/libEs5/utils/validation/createDeprecatedValidator.js +13 -21
  281. package/libEs5/utils/validation/createLiteralValidator.js +0 -3
  282. package/libEs5/utils/validation/createMapOfValuesValidator.js +0 -9
  283. package/libEs5/utils/validation/createMinimumValidator.js +0 -3
  284. package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +0 -4
  285. package/libEs5/utils/validation/createNonEmptyValidator.js +0 -6
  286. package/libEs5/utils/validation/createObjectOfValidator.js +2 -10
  287. package/libEs5/utils/validation/createUniqueItemsValidator.js +0 -4
  288. package/libEs5/utils/validation/createUniqueValidator.js +0 -3
  289. package/libEs5/utils/validation/domainValidator.js +1 -4
  290. package/libEs5/utils/validation/index.js +76 -59
  291. package/libEs5/utils/validation/integerValidator.js +0 -4
  292. package/libEs5/utils/validation/numberValidator.js +0 -4
  293. package/libEs5/utils/validation/regexpValidator.js +0 -4
  294. package/libEs5/utils/validation/requiredValidator.js +0 -3
  295. package/libEs5/utils/validation/stringValidator.js +0 -4
  296. package/libEs5/utils/validation/utils.js +7 -21
  297. package/libEs5/utils/values.js +0 -3
  298. package/libEs6/baseCode/index.js +3 -8
  299. package/libEs6/components/ActivityCollector/attachClickActivityCollector.js +5 -6
  300. package/libEs6/components/ActivityCollector/configValidators.js +1 -0
  301. package/libEs6/components/ActivityCollector/createGetLinkDetails.js +1 -8
  302. package/libEs6/components/ActivityCollector/createLinkClick.js +0 -3
  303. package/libEs6/components/ActivityCollector/getLinkName.js +8 -23
  304. package/libEs6/components/ActivityCollector/getLinkRegion.js +2 -12
  305. package/libEs6/components/ActivityCollector/index.js +3 -6
  306. package/libEs6/components/ActivityCollector/utils.js +2 -29
  307. package/libEs6/components/Audiences/index.js +1 -2
  308. package/libEs6/components/Audiences/injectProcessDestinations.js +3 -6
  309. package/libEs6/components/Audiences/injectProcessResponse.js +1 -2
  310. package/libEs6/components/Context/createComponent.js +1 -2
  311. package/libEs6/components/Context/index.js +3 -3
  312. package/libEs6/components/Context/injectDevice.js +1 -16
  313. package/libEs6/components/Context/injectEnvironment.js +1 -4
  314. package/libEs6/components/Context/injectHighEntropyUserAgentHints.js +2 -5
  315. package/libEs6/components/Context/injectPlaceContext.js +2 -5
  316. package/libEs6/components/Context/injectTimestamp.js +1 -0
  317. package/libEs6/components/Context/injectWeb.js +1 -0
  318. package/libEs6/components/DataCollector/index.js +8 -25
  319. package/libEs6/components/DataCollector/validateApplyResponse.js +2 -2
  320. package/libEs6/components/DataCollector/validateUserEventOptions.js +7 -5
  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 +4 -1
  356. package/libEs6/components/Personalization/constants/surface.js +1 -0
  357. package/libEs6/components/Personalization/createApplyPropositions.js +14 -14
  358. package/libEs6/components/Personalization/createClickStorage.js +19 -18
  359. package/libEs6/components/Personalization/createCollect.js +0 -5
  360. package/libEs6/components/Personalization/createComponent.js +23 -20
  361. package/libEs6/components/Personalization/createFetchDataHandler.js +13 -17
  362. package/libEs6/components/Personalization/createGetPageLocation.js +1 -0
  363. package/libEs6/components/Personalization/createOnClickHandler.js +6 -10
  364. package/libEs6/components/Personalization/createPersonalizationDetails.js +7 -28
  365. package/libEs6/components/Personalization/createSetTargetMigration.js +1 -1
  366. package/libEs6/components/Personalization/createViewCacheManager.js +11 -22
  367. package/libEs6/components/Personalization/createViewChangeHandler.js +1 -7
  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 +30 -26
  372. package/libEs6/components/Personalization/dom-actions/createPreprocess.js +0 -1
  373. package/libEs6/components/Personalization/{utils/isPageWideScope.js → dom-actions/createRedirect.js} +8 -4
  374. package/libEs6/components/Personalization/dom-actions/dom/createFragment.js +1 -0
  375. package/libEs6/components/Personalization/dom-actions/dom/getAttribute.js +1 -0
  376. package/libEs6/components/Personalization/dom-actions/dom/getChildNodes.js +1 -2
  377. package/libEs6/components/Personalization/dom-actions/dom/getChildren.js +1 -2
  378. package/libEs6/components/Personalization/dom-actions/dom/getFirstChild.js +1 -0
  379. package/libEs6/components/Personalization/dom-actions/dom/getNextSibling.js +1 -0
  380. package/libEs6/components/Personalization/dom-actions/dom/getNonce.js +6 -5
  381. package/libEs6/components/Personalization/dom-actions/dom/getParent.js +1 -0
  382. package/libEs6/components/Personalization/dom-actions/dom/helperForEq.js +1 -0
  383. package/libEs6/components/Personalization/dom-actions/dom/index.js +1 -0
  384. package/libEs6/components/Personalization/dom-actions/dom/insertAfter.js +1 -2
  385. package/libEs6/components/Personalization/dom-actions/dom/insertBefore.js +1 -2
  386. package/libEs6/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +7 -6
  387. package/libEs6/components/Personalization/dom-actions/dom/removeAttribute.js +1 -0
  388. package/libEs6/components/Personalization/dom-actions/dom/selectNodesWithEq.js +6 -18
  389. package/libEs6/components/Personalization/dom-actions/dom/setAttribute.js +1 -0
  390. package/libEs6/components/Personalization/dom-actions/dom/setStyle.js +1 -2
  391. package/libEs6/components/Personalization/dom-actions/images.js +1 -1
  392. package/libEs6/components/Personalization/dom-actions/index.js +1 -0
  393. package/libEs6/components/Personalization/dom-actions/initDomActionsModules.js +1 -0
  394. package/libEs6/components/Personalization/dom-actions/insertHtmlAfter.js +1 -0
  395. package/libEs6/components/Personalization/dom-actions/insertHtmlBefore.js +1 -0
  396. package/libEs6/components/Personalization/dom-actions/prependHtml.js +5 -5
  397. package/libEs6/components/Personalization/dom-actions/rearrangeChildren.js +1 -2
  398. package/libEs6/components/Personalization/dom-actions/remapCustomCodeOffers.js +0 -3
  399. package/libEs6/components/Personalization/dom-actions/remapHeadOffers.js +1 -7
  400. package/libEs6/components/Personalization/dom-actions/replaceHtml.js +1 -0
  401. package/libEs6/components/Personalization/dom-actions/scripts.js +5 -16
  402. package/libEs6/components/Personalization/dom-actions/setAttributes.js +1 -0
  403. package/libEs6/components/Personalization/dom-actions/setHtml.js +1 -2
  404. package/libEs6/components/Personalization/dom-actions/setStyles.js +1 -0
  405. package/libEs6/components/Personalization/dom-actions/setText.js +1 -0
  406. package/libEs6/components/Personalization/dom-actions/swapImage.js +7 -4
  407. package/libEs6/components/Personalization/event.js +4 -4
  408. package/libEs6/components/Personalization/flicker/index.js +9 -12
  409. package/libEs6/components/Personalization/handlers/createProcessDomAction.js +17 -9
  410. package/libEs6/components/Personalization/handlers/createProcessHtmlContent.js +8 -5
  411. package/libEs6/components/Personalization/handlers/createProcessPropositions.js +3 -30
  412. package/libEs6/components/Personalization/handlers/createProcessRedirect.js +7 -4
  413. package/libEs6/components/Personalization/handlers/injectCreateProposition.js +17 -36
  414. package/libEs6/components/Personalization/index.js +9 -13
  415. package/libEs6/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -0
  416. package/libEs6/components/Personalization/utils/createAsyncArray.js +0 -2
  417. package/libEs6/components/Personalization/utils/isAuthoringModeEnabled.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 +15 -37
  458. package/libEs6/core/createEventManager.js +14 -27
  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 +3 -3
  560. package/libEs5/components/Personalization/createPendingNotificationsHandler.js +0 -29
  561. package/libEs6/components/Personalization/createPendingNotificationsHandler.js +0 -22
@@ -18,33 +18,41 @@ export default (({
18
18
  type,
19
19
  selector
20
20
  } = item.getData() || {};
21
-
22
21
  if (!type) {
23
22
  logger.warn("Invalid DOM action data: missing type.", item.getData());
24
- return {};
23
+ return {
24
+ setRenderAttempted: false,
25
+ includeInNotification: false
26
+ };
25
27
  }
26
-
27
28
  if (type === "click") {
28
29
  if (!selector) {
29
30
  logger.warn("Invalid DOM action data: missing selector.", item.getData());
30
- return {};
31
+ return {
32
+ setRenderAttempted: false,
33
+ includeInNotification: false
34
+ };
31
35
  }
32
-
33
36
  storeClickMetrics({
34
37
  selector,
35
- meta: item.getMeta()
38
+ meta: {
39
+ ...item.getProposition().getNotification(),
40
+ trackingLabel: item.getTrackingLabel(),
41
+ scopeType: item.getProposition().getScopeType()
42
+ }
36
43
  });
37
44
  return {
38
45
  setRenderAttempted: true,
39
46
  includeInNotification: false
40
47
  };
41
48
  }
42
-
43
49
  if (!modules[type]) {
44
50
  logger.warn("Invalid DOM action data: unknown type.", item.getData());
45
- return {};
51
+ return {
52
+ setRenderAttempted: false,
53
+ includeInNotification: false
54
+ };
46
55
  }
47
-
48
56
  return {
49
57
  render: () => modules[type](item.getData()),
50
58
  setRenderAttempted: true,
@@ -17,16 +17,19 @@ export default (({
17
17
  type,
18
18
  selector
19
19
  } = item.getData() || {};
20
-
21
20
  if (!selector || !type) {
22
- return {};
21
+ return {
22
+ setRenderAttempted: false,
23
+ includeInNotification: false
24
+ };
23
25
  }
24
-
25
26
  if (!modules[type]) {
26
27
  logger.warn("Invalid HTML content data", item.getData());
27
- return {};
28
+ return {
29
+ setRenderAttempted: false,
30
+ includeInNotification: false
31
+ };
28
32
  }
29
-
30
33
  return {
31
34
  render: () => {
32
35
  modules[type](item.getData());
@@ -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
  schemaProcessors,
14
15
  logger
@@ -18,7 +19,6 @@ export default (({
18
19
  if (logger.enabled) {
19
20
  logger.info(`Action ${item.toString()} executed.`);
20
21
  }
21
-
22
22
  return true;
23
23
  }).catch(error => {
24
24
  if (logger.enabled) {
@@ -26,34 +26,27 @@ export default (({
26
26
  message,
27
27
  stack
28
28
  } = error;
29
- const errorMessage = `Failed to execute action ${item.toString()}. ${message} ${stack}`;
30
- logger.error(errorMessage);
29
+ const warning = `Failed to execute action ${item.toString()}. ${message} ${stack}`;
30
+ logger.warn(warning);
31
31
  }
32
-
33
32
  return false;
34
33
  });
35
34
  };
36
-
37
35
  const renderItems = (renderers, meta) => Promise.all(renderers.map(renderer => renderer())).then(successes => {
38
36
  // as long as at least one renderer succeeds, we want to add the notification
39
37
  // to the display notifications
40
38
  if (!successes.includes(true)) {
41
39
  return undefined;
42
40
  }
43
-
44
41
  return meta;
45
42
  });
46
-
47
43
  const processItem = item => {
48
44
  const processor = schemaProcessors[item.getSchema()];
49
-
50
45
  if (!processor) {
51
46
  return {};
52
47
  }
53
-
54
48
  return processor(item);
55
49
  };
56
-
57
50
  const processItems = ({
58
51
  renderers: existingRenderers,
59
52
  returnedPropositions: existingReturnedPropositions,
@@ -74,7 +67,6 @@ export default (({
74
67
  let onlyRenderThis = false;
75
68
  let i = 0;
76
69
  let item;
77
-
78
70
  while (items.length > i) {
79
71
  item = items[i];
80
72
  ({
@@ -83,11 +75,9 @@ export default (({
83
75
  includeInNotification,
84
76
  onlyRenderThis
85
77
  } = processItem(item));
86
-
87
78
  if (onlyRenderThis) {
88
79
  returnedPropositions = [];
89
80
  returnedDecisions = [];
90
-
91
81
  if (setRenderAttempted) {
92
82
  renderedItems = [item];
93
83
  nonRenderedItems = [];
@@ -95,45 +85,36 @@ export default (({
95
85
  renderedItems = [];
96
86
  nonRenderedItems = [item];
97
87
  }
98
-
99
88
  renderers = [];
100
89
  itemRenderers = [render];
101
90
  atLeastOneWithNotification = includeInNotification;
102
91
  break;
103
92
  }
104
-
105
93
  if (render) {
106
94
  itemRenderers.push(wrapRenderWithLogging(render, item));
107
95
  }
108
-
109
96
  if (includeInNotification) {
110
97
  atLeastOneWithNotification = true;
111
98
  }
112
-
113
99
  if (setRenderAttempted) {
114
100
  renderedItems.push(item);
115
101
  } else {
116
102
  nonRenderedItems.push(item);
117
103
  }
118
-
119
104
  i += 1;
120
105
  }
121
-
122
106
  if (itemRenderers.length > 0) {
123
107
  const meta = atLeastOneWithNotification ? proposition.getNotification() : undefined;
124
108
  renderers.push(() => renderItems(itemRenderers, meta));
125
109
  } else if (atLeastOneWithNotification) {
126
110
  renderers.push(() => proposition.getNotification());
127
111
  }
128
-
129
112
  if (renderedItems.length > 0) {
130
113
  proposition.addToReturnValues(returnedPropositions, returnedDecisions, renderedItems, true);
131
114
  }
132
-
133
115
  if (nonRenderedItems.length > 0) {
134
116
  proposition.addToReturnValues(returnedPropositions, returnedDecisions, nonRenderedItems, false);
135
117
  }
136
-
137
118
  return {
138
119
  renderers,
139
120
  returnedPropositions,
@@ -141,7 +122,6 @@ export default (({
141
122
  onlyRenderThis
142
123
  };
143
124
  };
144
-
145
125
  return (renderPropositions, nonRenderPropositions = []) => {
146
126
  let renderers = [];
147
127
  let returnedPropositions = [];
@@ -150,7 +130,6 @@ export default (({
150
130
  let i = 0;
151
131
  let proposition;
152
132
  let items;
153
-
154
133
  while (renderPropositions.length > i) {
155
134
  proposition = renderPropositions[i];
156
135
  items = proposition.getItems();
@@ -166,14 +145,11 @@ export default (({
166
145
  items,
167
146
  proposition
168
147
  }));
169
-
170
148
  if (onlyRenderThis) {
171
149
  break;
172
150
  }
173
-
174
151
  i += 1;
175
152
  }
176
-
177
153
  if (onlyRenderThis) {
178
154
  // if onlyRenderThis is true, that means returnedPropositions and returnedDecisions
179
155
  // only contains the proposition that triggered only rendering this. We need to
@@ -184,15 +160,12 @@ export default (({
184
160
  }
185
161
  });
186
162
  }
187
-
188
163
  nonRenderPropositions.forEach(p => {
189
164
  p.addToReturnValues(returnedPropositions, returnedDecisions, p.getItems(), false);
190
165
  });
191
-
192
166
  const render = () => {
193
167
  return Promise.all(renderers.map(renderer => renderer())).then(metas => metas.filter(meta => meta));
194
168
  };
195
-
196
169
  return {
197
170
  returnedPropositions,
198
171
  returnedDecisions,
@@ -17,17 +17,20 @@ export default (({
17
17
  const {
18
18
  content
19
19
  } = item.getData() || {};
20
-
21
20
  if (!content) {
22
21
  logger.warn("Invalid Redirect data", item.getData());
23
22
  return {};
24
23
  }
25
-
26
24
  const render = () => {
27
25
  return collect({
28
- decisionsMeta: [item.getMeta()]
26
+ decisionsMeta: [item.getProposition().getNotification()],
27
+ documentMayUnload: true
29
28
  }).then(() => {
30
- executeRedirect(content); // We've already sent the display notification, so don't return anything
29
+ return executeRedirect(content);
30
+ // Execute redirect will never resolve. If there are bottom of page events that are waiting
31
+ // for display notifications from this request, they will never run because this promise will
32
+ // not resolve. This is intentional because we don't want to run bottom of page events if
33
+ // there is a redirect.
31
34
  });
32
35
  };
33
36
 
@@ -9,12 +9,14 @@ 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";
14
+ import { VIEW_SCOPE_TYPE, PAGE_SCOPE_TYPE, PROPOSITION_SCOPE_TYPE } from "../constants/scopeType";
13
15
  export default (({
14
16
  preprocess,
15
17
  isPageWideSurface
16
18
  }) => {
17
- const createItem = (item, meta) => {
19
+ const createItem = (item, proposition) => {
18
20
  const {
19
21
  schema,
20
22
  data,
@@ -23,39 +25,30 @@ export default (({
23
25
  } = {}
24
26
  } = item;
25
27
  const processedData = preprocess(data);
26
-
27
- if (trackingLabel) {
28
- meta.trackingLabel = trackingLabel;
29
- }
30
-
31
28
  return {
32
29
  getSchema() {
33
30
  return schema;
34
31
  },
35
-
36
32
  getData() {
37
33
  return processedData;
38
34
  },
39
-
40
- getMeta() {
41
- return meta;
35
+ getProposition() {
36
+ return proposition;
37
+ },
38
+ getTrackingLabel() {
39
+ return trackingLabel;
42
40
  },
43
-
44
41
  getOriginalItem() {
45
42
  return item;
46
43
  },
47
-
48
44
  toString() {
49
45
  return JSON.stringify(item);
50
46
  },
51
-
52
47
  toJSON() {
53
48
  return item;
54
49
  }
55
-
56
50
  };
57
51
  };
58
-
59
52
  return (payload, visibleInReturnedItems = true) => {
60
53
  const {
61
54
  id,
@@ -73,30 +66,20 @@ export default (({
73
66
  if (!scope) {
74
67
  return scope;
75
68
  }
76
-
77
69
  return scope;
78
70
  },
79
-
80
71
  getScopeType() {
81
72
  if (scope === PAGE_WIDE_SCOPE || isPageWideSurface(scope)) {
82
- return "page";
73
+ return PAGE_SCOPE_TYPE;
83
74
  }
84
-
85
- if (scopeType === "view") {
86
- return "view";
75
+ if (scopeType === VIEW_SCOPE_TYPE) {
76
+ return VIEW_SCOPE_TYPE;
87
77
  }
88
-
89
- return "proposition";
78
+ return PROPOSITION_SCOPE_TYPE;
90
79
  },
91
-
92
80
  getItems() {
93
- return items.map(item => createItem(item, {
94
- id,
95
- scope,
96
- scopeDetails
97
- }));
81
+ return items.map(item => createItem(item, this));
98
82
  },
99
-
100
83
  getNotification() {
101
84
  return {
102
85
  id,
@@ -104,26 +87,24 @@ export default (({
104
87
  scopeDetails
105
88
  };
106
89
  },
107
-
108
90
  toJSON() {
109
91
  return payload;
110
92
  },
111
-
112
93
  addToReturnValues(propositions, decisions, includedItems, renderAttempted) {
113
94
  if (visibleInReturnedItems) {
114
- propositions.push({ ...payload,
95
+ propositions.push({
96
+ ...payload,
115
97
  items: includedItems.map(i => i.getOriginalItem()),
116
98
  renderAttempted
117
99
  });
118
-
119
100
  if (!renderAttempted) {
120
- decisions.push({ ...payload,
101
+ decisions.push({
102
+ ...payload,
121
103
  items: includedItems.map(i => i.getOriginalItem())
122
104
  });
123
105
  }
124
106
  }
125
107
  }
126
-
127
108
  };
128
109
  };
129
110
  });
@@ -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 { string, boolean, objectOf } from "../../utils/validation";
13
14
  import createComponent from "./createComponent";
14
15
  import { initDomActionsModules } from "./dom-actions";
@@ -30,7 +31,6 @@ import remapHeadOffers from "./dom-actions/remapHeadOffers";
30
31
  import createPreprocess from "./dom-actions/createPreprocess";
31
32
  import injectCreateProposition from "./handlers/injectCreateProposition";
32
33
  import createAsyncArray from "./utils/createAsyncArray";
33
- import createPendingNotificationsHandler from "./createPendingNotificationsHandler";
34
34
  import * as schema from "./constants/schema";
35
35
  import processDefaultContent from "./handlers/processDefaultContent";
36
36
  import { isPageWideSurface } from "./utils/surfaceUtils";
@@ -38,7 +38,7 @@ import createProcessDomAction from "./handlers/createProcessDomAction";
38
38
  import createProcessHtmlContent from "./handlers/createProcessHtmlContent";
39
39
  import createProcessRedirect from "./handlers/createProcessRedirect";
40
40
  import createProcessPropositions from "./handlers/createProcessPropositions";
41
-
41
+ import createRedirect from "./dom-actions/createRedirect";
42
42
  const createPersonalization = ({
43
43
  config,
44
44
  logger,
@@ -69,6 +69,7 @@ const createPersonalization = ({
69
69
  const viewCache = createViewCacheManager({
70
70
  createProposition
71
71
  });
72
+ const executeRedirect = createRedirect(window);
72
73
  const schemaProcessors = {
73
74
  [schema.DEFAULT_CONTENT_ITEM]: processDefaultContent,
74
75
  [schema.DOM_ACTION]: createProcessDomAction({
@@ -82,7 +83,7 @@ const createPersonalization = ({
82
83
  }),
83
84
  [schema.REDIRECT_ITEM]: createProcessRedirect({
84
85
  logger,
85
- executeRedirect: url => window.location.replace(url),
86
+ executeRedirect,
86
87
  collect
87
88
  })
88
89
  };
@@ -90,11 +91,7 @@ const createPersonalization = ({
90
91
  schemaProcessors,
91
92
  logger
92
93
  });
93
- const pendingDisplayNotifications = createAsyncArray();
94
- const pendingNotificationsHandler = createPendingNotificationsHandler({
95
- pendingDisplayNotifications,
96
- mergeDecisionsMeta
97
- });
94
+ const renderedPropositions = createAsyncArray();
98
95
  const fetchDataHandler = createFetchDataHandler({
99
96
  prehidingStyle,
100
97
  showContainers,
@@ -103,7 +100,7 @@ const createPersonalization = ({
103
100
  collect,
104
101
  processPropositions,
105
102
  createProposition,
106
- pendingDisplayNotifications
103
+ renderedPropositions
107
104
  });
108
105
  const onClickHandler = createOnClickHandler({
109
106
  mergeDecisionsMeta,
@@ -112,14 +109,13 @@ const createPersonalization = ({
112
109
  getClickMetasBySelector
113
110
  });
114
111
  const viewChangeHandler = createViewChangeHandler({
115
- mergeDecisionsMeta,
116
112
  processPropositions,
117
113
  viewCache
118
114
  });
119
115
  const applyPropositions = createApplyPropositions({
120
116
  processPropositions,
121
117
  createProposition,
122
- pendingDisplayNotifications,
118
+ renderedPropositions,
123
119
  viewCache
124
120
  });
125
121
  const setTargetMigration = createSetTargetMigration({
@@ -137,10 +133,10 @@ const createPersonalization = ({
137
133
  showContainers,
138
134
  applyPropositions,
139
135
  setTargetMigration,
140
- pendingNotificationsHandler
136
+ mergeDecisionsMeta,
137
+ renderedPropositions
141
138
  });
142
139
  };
143
-
144
140
  createPersonalization.namespace = "Personalization";
145
141
  createPersonalization.configValidators = objectOf({
146
142
  prehidingStyle: string().nonEmpty(),
@@ -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 { assign } from "../../../utils";
13
14
  export default (({
14
15
  decisions,
@@ -21,7 +21,6 @@ export default (() => {
21
21
  });
22
22
  });
23
23
  },
24
-
25
24
  /**
26
25
  * Clears the saved propositions, waiting until the next propositions are resolved and available.
27
26
  *
@@ -32,6 +31,5 @@ export default (() => {
32
31
  latest = Promise.resolve([]);
33
32
  return oldLatest;
34
33
  }
35
-
36
34
  };
37
35
  });
@@ -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 ((doc = document) => {
13
14
  return doc.location.href.indexOf("adobe_authoring_enabled") !== -1;
14
15
  });
@@ -9,29 +9,23 @@ 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 { WEB, WEBAPP, SURFACE_TYPE_DELIMITER, FRAGMENT_DELIMITER } from "../constants/surface";
13
14
  import { startsWith, isNil, isNonEmptyString, includes } from "../../../utils";
14
15
  const SURFACE_REGEX = /^(\w+):\/\/([^/#]+)(\/[^#]*)?(#.*)?$/;
15
16
  const AUTHORITY_REGEX = /^(?:.*@)?(?:[a-z\d\u00a1-\uffff.-]+|\[[a-f\d:]+])(?::\d+)?$/;
16
17
  const PATH_REGEX = /^\/(?:[/\w\u00a1-\uffff-.~]|%[a-fA-F\d]{2})*$/;
17
18
  const FRAGMENT_REGEX = /^#(?:[/\w\u00a1-\uffff-.~]|%[a-fA-F\d]{2})+$/;
18
-
19
19
  const normalizePath = (path = "/") => {
20
20
  let end = path.length;
21
-
22
21
  while (end > 0 && "/".indexOf(path.charAt(end - 1)) !== -1) {
23
22
  end -= 1;
24
23
  }
25
-
26
24
  return path.substring(0, end) || "/";
27
25
  };
28
-
29
26
  const getSurfaceType = surfaceTypeMatch => isNonEmptyString(surfaceTypeMatch) ? surfaceTypeMatch.toLowerCase() : "";
30
-
31
27
  const getAuthority = authorityMatch => isNonEmptyString(authorityMatch) ? authorityMatch.toLowerCase() : "";
32
-
33
28
  const getPath = pathMatch => isNonEmptyString(pathMatch) ? normalizePath(pathMatch) : "/";
34
-
35
29
  const parseSurface = surfaceString => {
36
30
  const matched = surfaceString.match(SURFACE_REGEX);
37
31
  return matched ? {
@@ -41,53 +35,40 @@ const parseSurface = surfaceString => {
41
35
  fragment: matched[4]
42
36
  } : null;
43
37
  };
44
-
45
38
  const stringifySurface = surface => `${surface.surfaceType}${SURFACE_TYPE_DELIMITER}${surface.authority}${surface.path || ""}${surface.fragment || ""}`;
46
-
47
39
  export const buildPageSurface = getPageLocation => {
48
40
  const location = getPageLocation();
49
41
  const host = location.host.toLowerCase();
50
42
  const path = location.pathname;
51
43
  return WEB + SURFACE_TYPE_DELIMITER + host + normalizePath(path);
52
44
  };
53
-
54
45
  const expandFragmentSurface = (surface, getPageLocation) => startsWith(surface, FRAGMENT_DELIMITER) ? buildPageSurface(getPageLocation) + surface : surface;
55
-
56
46
  const validateSurface = (surface, getPageLocation, logger) => {
57
47
  const invalidateSurface = validationError => {
58
48
  logger.warn(validationError);
59
49
  return null;
60
50
  };
61
-
62
51
  if (!isNonEmptyString(surface)) {
63
52
  return invalidateSurface(`Invalid surface: ${surface}`);
64
53
  }
65
-
66
54
  const expanded = expandFragmentSurface(surface, getPageLocation);
67
55
  const parsed = parseSurface(expanded);
68
-
69
56
  if (parsed === null) {
70
57
  return invalidateSurface(`Invalid surface: ${surface}`);
71
58
  }
72
-
73
59
  if (!includes([WEB, WEBAPP], parsed.surfaceType)) {
74
60
  return invalidateSurface(`Unsupported surface type ${parsed.surfaceType} in surface: ${surface}`);
75
61
  }
76
-
77
62
  if (!parsed.authority || !AUTHORITY_REGEX.test(parsed.authority)) {
78
63
  return invalidateSurface(`Invalid authority ${parsed.authority} in surface: ${surface}`);
79
64
  }
80
-
81
65
  if (parsed.path && !PATH_REGEX.test(parsed.path)) {
82
66
  return invalidateSurface(`Invalid path ${parsed.path} in surface: ${surface}`);
83
67
  }
84
-
85
68
  if (parsed.fragment && !FRAGMENT_REGEX.test(parsed.fragment)) {
86
69
  return invalidateSurface(`Invalid fragment ${parsed.fragment} in surface: ${surface}`);
87
70
  }
88
-
89
71
  return parsed;
90
72
  };
91
-
92
73
  export const isPageWideSurface = scope => !!scope && scope.indexOf(WEB + SURFACE_TYPE_DELIMITER) === 0 && scope.indexOf(FRAGMENT_DELIMITER) === -1;
93
74
  export const normalizeSurfaces = (surfaces = [], getPageLocation, logger) => surfaces.map(surface => validateSurface(surface, getPageLocation, logger)).filter(surface => !isNil(surface)).map(stringifySurface);
@@ -22,7 +22,6 @@ export default (({
22
22
  metadata: objectOf(anything()),
23
23
  viewName: string()
24
24
  }).required();
25
-
26
25
  try {
27
26
  return applyPropositionsOptionsValidator(options);
28
27
  } catch (e) {
@@ -9,23 +9,22 @@ 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 { crc32 } from "../../utils"; // serialize an object with a consistent ordering
13
12
 
13
+ import { crc32 } from "../../utils";
14
+
15
+ // serialize an object with a consistent ordering
14
16
  const serialize = obj => {
15
17
  if (Array.isArray(obj)) {
16
18
  return obj.map(i => serialize(i));
17
19
  }
18
-
19
20
  if (typeof obj === "object" && obj !== null) {
20
21
  return Object.keys(obj).sort().reduce((memo, key) => {
21
22
  memo[key] = serialize(obj[key]);
22
23
  return memo;
23
24
  }, {});
24
25
  }
25
-
26
26
  return obj;
27
27
  };
28
-
29
28
  export default (obj => {
30
29
  return crc32(JSON.stringify(serialize(obj)));
31
30
  });
@@ -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 { GENERAL } from "../../constants/consentPurpose";
13
14
  export default (({
14
15
  storedConsent,
@@ -26,31 +27,26 @@ export default (({
26
27
  let storedConsentByPurpose = storedConsent.read();
27
28
  const identityCookieExists = doesIdentityCookieExist();
28
29
  const consentCookieExists = storedConsentByPurpose[GENERAL] !== undefined;
29
-
30
30
  if (!identityCookieExists || !consentCookieExists) {
31
31
  consentHashStore.clear();
32
- } // If the identity cookie is gone, remove the consent cookie because the
32
+ }
33
+ // If the identity cookie is gone, remove the consent cookie because the
33
34
  // consent info is tied to the identity.
34
-
35
-
36
35
  if (!identityCookieExists) {
37
36
  storedConsent.clear();
38
37
  storedConsentByPurpose = {};
39
38
  }
40
-
41
39
  consent.initializeConsent(defaultConsentByPurpose, storedConsentByPurpose);
42
-
43
40
  const readCookieIfQueueEmpty = () => {
44
41
  if (taskQueue.length === 0) {
45
- const storedConsentObject = storedConsent.read(); // Only read cookies when there are no outstanding setConsent
42
+ const storedConsentObject = storedConsent.read();
43
+ // Only read cookies when there are no outstanding setConsent
46
44
  // requests. This helps with race conditions.
47
-
48
45
  if (storedConsentObject[GENERAL] !== undefined) {
49
46
  consent.setConsent(storedConsentObject);
50
47
  }
51
48
  }
52
49
  };
53
-
54
50
  return {
55
51
  commands: {
56
52
  setConsent: {
@@ -70,7 +66,6 @@ export default (({
70
66
  edgeConfigOverrides
71
67
  });
72
68
  }
73
-
74
69
  return Promise.resolve();
75
70
  }).then(() => consentHashes.save()).finally(readCookieIfQueueEmpty);
76
71
  }