@adobe/alloy 2.21.1 → 2.22.0-alpha.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 (442) hide show
  1. package/babel.config.cjs +0 -1
  2. package/libEs5/baseCode/index.js +3 -2
  3. package/libEs5/components/ActivityCollector/attachClickActivityCollector.js +23 -20
  4. package/libEs5/components/ActivityCollector/configValidators.js +2 -2
  5. package/libEs5/components/ActivityCollector/createClickActivityStorage.js +11 -9
  6. package/libEs5/components/ActivityCollector/createClickedElementProperties.js +39 -32
  7. package/libEs5/components/ActivityCollector/createGetClickedElementProperties.js +28 -20
  8. package/libEs5/components/ActivityCollector/createInjectClickedElementProperties.js +24 -21
  9. package/libEs5/components/ActivityCollector/createRecallAndInjectClickedElementProperties.js +10 -8
  10. package/libEs5/components/ActivityCollector/createStorePageViewProperties.js +6 -4
  11. package/libEs5/components/ActivityCollector/getLinkName.js +19 -18
  12. package/libEs5/components/ActivityCollector/getLinkRegion.js +10 -9
  13. package/libEs5/components/ActivityCollector/index.js +61 -45
  14. package/libEs5/components/ActivityCollector/utils/activityMapExtensionEnabled.js +3 -5
  15. package/libEs5/components/ActivityCollector/utils/createTransientStorage.js +7 -6
  16. package/libEs5/components/ActivityCollector/utils/determineLinkType.js +4 -3
  17. package/libEs5/components/ActivityCollector/utils/dom/elementHasClickHandler.js +3 -2
  18. package/libEs5/components/ActivityCollector/utils/dom/extractDomain.js +5 -4
  19. package/libEs5/components/ActivityCollector/utils/dom/findClickableElement.js +4 -3
  20. package/libEs5/components/ActivityCollector/utils/dom/getAbsoluteUrlFromAnchorElement.js +11 -8
  21. package/libEs5/components/ActivityCollector/utils/dom/isButtonSubmitElement.js +3 -2
  22. package/libEs5/components/ActivityCollector/utils/dom/isDownloadLink.js +6 -5
  23. package/libEs5/components/ActivityCollector/utils/dom/isExitLink.js +6 -5
  24. package/libEs5/components/ActivityCollector/utils/dom/isInputSubmitElement.js +4 -3
  25. package/libEs5/components/ActivityCollector/utils/dom/isSupportedAnchorElement.js +3 -2
  26. package/libEs5/components/ActivityCollector/utils/dom/isSupportedTextNode.js +4 -3
  27. package/libEs5/components/ActivityCollector/utils/hasPageName.js +4 -3
  28. package/libEs5/components/ActivityCollector/utils/isDifferentDomains.js +5 -4
  29. package/libEs5/components/ActivityCollector/utils/trimQueryFromUrl.js +5 -4
  30. package/libEs5/components/ActivityCollector/utils/truncateWhiteSpace.js +3 -2
  31. package/libEs5/components/ActivityCollector/utils/urlStartsWithScheme.js +3 -2
  32. package/libEs5/components/Audiences/index.js +13 -12
  33. package/libEs5/components/Audiences/injectProcessDestinations.js +32 -35
  34. package/libEs5/components/Audiences/injectProcessResponse.js +19 -16
  35. package/libEs5/components/Context/createComponent.js +10 -13
  36. package/libEs5/components/Context/implementationDetails.js +5 -4
  37. package/libEs5/components/Context/index.js +24 -28
  38. package/libEs5/components/Context/injectDevice.js +23 -15
  39. package/libEs5/components/Context/injectEnvironment.js +17 -12
  40. package/libEs5/components/Context/injectHighEntropyUserAgentHints.js +12 -21
  41. package/libEs5/components/Context/injectPlaceContext.js +8 -7
  42. package/libEs5/components/Context/injectTimestamp.js +6 -5
  43. package/libEs5/components/Context/injectWeb.js +6 -5
  44. package/libEs5/components/DataCollector/index.js +37 -38
  45. package/libEs5/components/DataCollector/validateApplyResponse.js +6 -4
  46. package/libEs5/components/DataCollector/validateUserEventOptions.js +6 -4
  47. package/libEs5/components/DecisioningEngine/consequenceAdapters/inAppMessageConsequenceAdapter.js +11 -8
  48. package/libEs5/components/DecisioningEngine/consequenceAdapters/schemaTypeConsequenceAdapter.js +10 -7
  49. package/libEs5/components/DecisioningEngine/constants.js +3 -3
  50. package/libEs5/components/DecisioningEngine/createApplyResponse.js +15 -15
  51. package/libEs5/components/DecisioningEngine/createConsequenceAdapter.js +17 -13
  52. package/libEs5/components/DecisioningEngine/createContextProvider.js +48 -44
  53. package/libEs5/components/DecisioningEngine/createDecisionHistory.js +7 -5
  54. package/libEs5/components/DecisioningEngine/createDecisionProvider.js +16 -21
  55. package/libEs5/components/DecisioningEngine/createEvaluableRulesetPayload.js +39 -37
  56. package/libEs5/components/DecisioningEngine/createEvaluateRulesetsCommand.js +21 -19
  57. package/libEs5/components/DecisioningEngine/createEventRegistry.js +63 -67
  58. package/libEs5/components/DecisioningEngine/createOnResponseHandler.js +23 -22
  59. package/libEs5/components/DecisioningEngine/createSubscribeRulesetItems.js +100 -55
  60. package/libEs5/components/DecisioningEngine/index.js +83 -54
  61. package/libEs5/components/DecisioningEngine/utils.js +43 -38
  62. package/libEs5/components/EventMerge/createComponent.js +5 -3
  63. package/libEs5/components/EventMerge/createEventMergeId.js +3 -2
  64. package/libEs5/components/EventMerge/index.js +1 -1
  65. package/libEs5/components/Identity/addEcidQueryToPayload.js +3 -2
  66. package/libEs5/components/Identity/addEcidToPayload.js +3 -2
  67. package/libEs5/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +13 -23
  68. package/libEs5/components/Identity/configValidators.js +1 -1
  69. package/libEs5/components/Identity/constants/authState.js +3 -3
  70. package/libEs5/components/Identity/createComponent.js +39 -33
  71. package/libEs5/components/Identity/createLegacyIdentity.js +29 -29
  72. package/libEs5/components/Identity/getEcidFromResponse.js +5 -7
  73. package/libEs5/components/Identity/getIdentity/createGetIdentity.js +17 -15
  74. package/libEs5/components/Identity/getIdentity/createIdentityRequest.js +10 -8
  75. package/libEs5/components/Identity/getIdentity/createIdentityRequestPayload.js +5 -4
  76. package/libEs5/components/Identity/index.js +61 -62
  77. package/libEs5/components/Identity/injectAddLegacyEcidToPayload.js +8 -6
  78. package/libEs5/components/Identity/injectAddQueryStringIdentityToPayload.js +46 -52
  79. package/libEs5/components/Identity/injectAwaitIdentityCookie.js +14 -11
  80. package/libEs5/components/Identity/injectEnsureSingleIdentity.js +25 -24
  81. package/libEs5/components/Identity/injectHandleResponseForIdSyncs.js +6 -4
  82. package/libEs5/components/Identity/injectProcessIdSyncs.js +20 -22
  83. package/libEs5/components/Identity/injectSetDomainForInitialIdentityPayload.js +7 -5
  84. package/libEs5/components/Identity/visitorService/awaitVisitorOptIn.js +8 -6
  85. package/libEs5/components/Identity/visitorService/getVisitor.js +4 -3
  86. package/libEs5/components/Identity/visitorService/injectGetEcidFromVisitor.js +15 -13
  87. package/libEs5/components/LegacyMediaAnalytics/constants/constants.js +9 -9
  88. package/libEs5/components/LegacyMediaAnalytics/constants/mediaKeysToXdmConverter.js +2 -2
  89. package/libEs5/components/LegacyMediaAnalytics/createGetInstance.js +61 -63
  90. package/libEs5/components/LegacyMediaAnalytics/createLegacyMediaComponent.js +38 -37
  91. package/libEs5/components/LegacyMediaAnalytics/createMediaHelper.js +54 -52
  92. package/libEs5/components/LegacyMediaAnalytics/index.js +32 -33
  93. package/libEs5/components/LibraryInfo/index.js +23 -30
  94. package/libEs5/components/MachineLearning/index.js +1 -1
  95. package/libEs5/components/MachineLearning/processResponse.js +5 -3
  96. package/libEs5/components/Personalization/constants/loggerMessage.js +2 -2
  97. package/libEs5/components/Personalization/constants/scopeType.js +3 -3
  98. package/libEs5/components/Personalization/constants/surface.js +4 -4
  99. package/libEs5/components/Personalization/createActionsProvider.js +37 -32
  100. package/libEs5/components/Personalization/createApplyPropositions.js +71 -81
  101. package/libEs5/components/Personalization/createClickStorage.js +30 -32
  102. package/libEs5/components/Personalization/createComponent.js +65 -74
  103. package/libEs5/components/Personalization/createFetchDataHandler.js +83 -52
  104. package/libEs5/components/Personalization/createGetPageLocation.js +6 -6
  105. package/libEs5/components/Personalization/createHandleConsentFlicker.js +15 -14
  106. package/libEs5/components/Personalization/createInteractionStorage.js +25 -39
  107. package/libEs5/components/Personalization/createNotificationHandler.js +9 -10
  108. package/libEs5/components/Personalization/createOnClickHandler.js +29 -25
  109. package/libEs5/components/Personalization/createOnDecisionHandler.js +23 -21
  110. package/libEs5/components/Personalization/createPersonalizationDetails.js +39 -45
  111. package/libEs5/components/Personalization/createPreprocessors.js +7 -7
  112. package/libEs5/components/Personalization/createSetTargetMigration.js +6 -4
  113. package/libEs5/components/Personalization/createViewCacheManager.js +29 -32
  114. package/libEs5/components/Personalization/createViewChangeHandler.js +35 -20
  115. package/libEs5/components/Personalization/dom-actions/action.js +24 -25
  116. package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +12 -13
  117. package/libEs5/components/Personalization/dom-actions/appendHtml.js +8 -7
  118. package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +28 -33
  119. package/libEs5/components/Personalization/dom-actions/clicks/collectInteractions.js +37 -40
  120. package/libEs5/components/Personalization/dom-actions/collectInteractions.js +3 -2
  121. package/libEs5/components/Personalization/dom-actions/createPreprocess.js +10 -11
  122. package/libEs5/components/Personalization/dom-actions/createRedirect.js +11 -13
  123. package/libEs5/components/Personalization/dom-actions/dom/createFragment.js +3 -2
  124. package/libEs5/components/Personalization/dom-actions/dom/getAttribute.js +3 -2
  125. package/libEs5/components/Personalization/dom-actions/dom/getChildNodes.js +6 -3
  126. package/libEs5/components/Personalization/dom-actions/dom/getChildren.js +6 -3
  127. package/libEs5/components/Personalization/dom-actions/dom/getElementById.js +3 -3
  128. package/libEs5/components/Personalization/dom-actions/dom/getFirstChild.js +3 -2
  129. package/libEs5/components/Personalization/dom-actions/dom/getNextSibling.js +3 -2
  130. package/libEs5/components/Personalization/dom-actions/dom/getNonce.js +7 -6
  131. package/libEs5/components/Personalization/dom-actions/dom/getParent.js +3 -2
  132. package/libEs5/components/Personalization/dom-actions/dom/helperForEq.js +7 -7
  133. package/libEs5/components/Personalization/dom-actions/dom/index.js +14 -14
  134. package/libEs5/components/Personalization/dom-actions/dom/insertAfter.js +4 -3
  135. package/libEs5/components/Personalization/dom-actions/dom/insertBefore.js +4 -3
  136. package/libEs5/components/Personalization/dom-actions/dom/isDomElement.js +2 -3
  137. package/libEs5/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +6 -5
  138. package/libEs5/components/Personalization/dom-actions/dom/removeAttribute.js +3 -2
  139. package/libEs5/components/Personalization/dom-actions/dom/selectNodesWithEq.js +39 -38
  140. package/libEs5/components/Personalization/dom-actions/dom/setAttribute.js +3 -2
  141. package/libEs5/components/Personalization/dom-actions/dom/setStyle.js +4 -3
  142. package/libEs5/components/Personalization/dom-actions/images.js +10 -9
  143. package/libEs5/components/Personalization/dom-actions/index.js +1 -1
  144. package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +40 -25
  145. package/libEs5/components/Personalization/dom-actions/insertHtmlAfter.js +9 -8
  146. package/libEs5/components/Personalization/dom-actions/insertHtmlBefore.js +8 -7
  147. package/libEs5/components/Personalization/dom-actions/prependHtml.js +13 -10
  148. package/libEs5/components/Personalization/dom-actions/rearrangeChildren.js +9 -7
  149. package/libEs5/components/Personalization/dom-actions/remapCustomCodeOffers.js +14 -9
  150. package/libEs5/components/Personalization/dom-actions/remapHeadOffers.js +16 -14
  151. package/libEs5/components/Personalization/dom-actions/replaceHtml.js +4 -3
  152. package/libEs5/components/Personalization/dom-actions/scripts.js +58 -38
  153. package/libEs5/components/Personalization/dom-actions/setAttributes.js +4 -3
  154. package/libEs5/components/Personalization/dom-actions/setHtml.js +5 -4
  155. package/libEs5/components/Personalization/dom-actions/setStyles.js +8 -8
  156. package/libEs5/components/Personalization/dom-actions/setText.js +3 -2
  157. package/libEs5/components/Personalization/dom-actions/swapImage.js +3 -2
  158. package/libEs5/components/Personalization/flicker/index.js +66 -49
  159. package/libEs5/components/Personalization/handlers/createDecorateProposition.js +16 -13
  160. package/libEs5/components/Personalization/handlers/createProcessDomAction.js +45 -50
  161. package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +30 -29
  162. package/libEs5/components/Personalization/handlers/createProcessInAppMessage.js +35 -31
  163. package/libEs5/components/Personalization/handlers/createProcessPropositions.js +109 -105
  164. package/libEs5/components/Personalization/handlers/createProcessRedirect.js +38 -28
  165. package/libEs5/components/Personalization/handlers/injectCreateProposition.js +59 -67
  166. package/libEs5/components/Personalization/handlers/processDefaultContent.js +3 -2
  167. package/libEs5/components/Personalization/in-app-message-actions/actions/displayIframeContent.js +140 -121
  168. package/libEs5/components/Personalization/in-app-message-actions/initInAppMessageActionsModules.js +4 -5
  169. package/libEs5/components/Personalization/in-app-message-actions/utils.js +23 -19
  170. package/libEs5/components/Personalization/index.js +120 -103
  171. package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +10 -10
  172. package/libEs5/components/Personalization/utils/createAsyncArray.js +10 -9
  173. package/libEs5/components/Personalization/utils/isAuthoringModeEnabled.js +3 -3
  174. package/libEs5/components/Personalization/utils/metaUtils.js +14 -19
  175. package/libEs5/components/Personalization/utils/surfaceUtils.js +27 -46
  176. package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +8 -6
  177. package/libEs5/components/Privacy/computeConsentHash.js +9 -9
  178. package/libEs5/components/Privacy/createComponent.js +32 -32
  179. package/libEs5/components/Privacy/createConsentHashStore.js +27 -24
  180. package/libEs5/components/Privacy/createConsentRequest.js +10 -8
  181. package/libEs5/components/Privacy/createConsentRequestPayload.js +9 -8
  182. package/libEs5/components/Privacy/createStoredConsent.js +11 -9
  183. package/libEs5/components/Privacy/index.js +26 -23
  184. package/libEs5/components/Privacy/injectSendSetConsentRequest.js +30 -29
  185. package/libEs5/components/Privacy/parseConsentCookie.js +6 -14
  186. package/libEs5/components/StreamingMedia/createMediaEventManager.js +59 -45
  187. package/libEs5/components/StreamingMedia/createMediaRequest.js +8 -6
  188. package/libEs5/components/StreamingMedia/createMediaResponseHandler.js +22 -17
  189. package/libEs5/components/StreamingMedia/createMediaSessionCacheManager.js +22 -18
  190. package/libEs5/components/StreamingMedia/createStreamingMediaComponent.js +30 -29
  191. package/libEs5/components/StreamingMedia/createTrackMediaEvent.js +41 -36
  192. package/libEs5/components/StreamingMedia/createTrackMediaSession.js +25 -22
  193. package/libEs5/components/StreamingMedia/index.js +33 -34
  194. package/libEs5/components/StreamingMedia/validateMediaEventOptions.js +9 -12
  195. package/libEs5/components/StreamingMedia/validateMediaSessionOptions.js +6 -4
  196. package/libEs5/constants/browser.js +7 -7
  197. package/libEs5/constants/consentPurpose.js +1 -1
  198. package/libEs5/constants/consentStatus.js +3 -3
  199. package/libEs5/constants/contentType.js +2 -2
  200. package/libEs5/constants/cookieNameKey.js +3 -3
  201. package/libEs5/constants/coreCommands.js +2 -2
  202. package/libEs5/constants/decisionProvider.js +4 -3
  203. package/libEs5/constants/domain.js +2 -2
  204. package/libEs5/constants/elementAttribute.js +1 -1
  205. package/libEs5/constants/eventType.js +5 -5
  206. package/libEs5/constants/handle.js +1 -1
  207. package/libEs5/constants/httpHeaderNames.js +2 -2
  208. package/libEs5/constants/httpStatusCode.js +5 -5
  209. package/libEs5/constants/identityMapAuthenticatedState.js +3 -3
  210. package/libEs5/constants/legacyCookies.js +3 -3
  211. package/libEs5/constants/libraryVersion.js +1 -1
  212. package/libEs5/constants/propositionEventType.js +18 -12
  213. package/libEs5/constants/propositionInteractionType.js +4 -4
  214. package/libEs5/constants/schema.js +11 -11
  215. package/libEs5/constants/sessionDataKeys.js +1 -1
  216. package/libEs5/constants/tagName.js +7 -7
  217. package/libEs5/core/buildAndValidateConfig.js +55 -69
  218. package/libEs5/core/componentCreators.js +70 -41
  219. package/libEs5/core/config/createConfig.js +4 -3
  220. package/libEs5/core/config/createCoreConfigs.js +11 -12
  221. package/libEs5/core/consent/createConsent.js +16 -14
  222. package/libEs5/core/consent/createConsentStateMachine.js +27 -35
  223. package/libEs5/core/createComponentRegistry.js +28 -27
  224. package/libEs5/core/createCookieTransfer.js +18 -18
  225. package/libEs5/core/createEvent.js +39 -44
  226. package/libEs5/core/createEventManager.js +64 -69
  227. package/libEs5/core/createInstanceFunction.js +4 -11
  228. package/libEs5/core/createLifecycle.js +14 -19
  229. package/libEs5/core/createLogController.js +30 -29
  230. package/libEs5/core/createLogger.js +41 -27
  231. package/libEs5/core/edgeNetwork/handleRequestFailure.js +6 -5
  232. package/libEs5/core/edgeNetwork/injectApplyResponse.js +29 -32
  233. package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +19 -25
  234. package/libEs5/core/edgeNetwork/injectGetLocationHint.js +11 -11
  235. package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +20 -16
  236. package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +42 -38
  237. package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +8 -12
  238. package/libEs5/core/index.js +137 -133
  239. package/libEs5/core/initializeComponents.js +17 -15
  240. package/libEs5/core/injectCreateResponse.js +47 -53
  241. package/libEs5/core/injectExecuteCommand.js +39 -40
  242. package/libEs5/core/injectHandleError.js +19 -19
  243. package/libEs5/core/injectShouldTransferCookie.js +12 -12
  244. package/libEs5/core/network/getRequestRetryDelay.js +20 -18
  245. package/libEs5/core/network/injectSendNetworkRequest.js +46 -49
  246. package/libEs5/core/network/isRequestRetryable.js +9 -8
  247. package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +10 -8
  248. package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +18 -19
  249. package/libEs5/core/requiredComponentCreators.js +23 -0
  250. package/libEs5/core/validateCommandOptions.js +14 -11
  251. package/libEs5/index.js +43 -22
  252. package/libEs5/standalone.js +6 -1
  253. package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +3 -5
  254. package/libEs5/utils/assignConcatArrayValues.js +9 -18
  255. package/libEs5/utils/clone.js +2 -3
  256. package/libEs5/utils/cookieJar.js +4 -4
  257. package/libEs5/utils/crc32.js +8 -8
  258. package/libEs5/utils/createCallbackAggregator.js +7 -11
  259. package/libEs5/utils/createCollect.js +52 -0
  260. package/libEs5/utils/createLoggingCookieJar.js +14 -16
  261. package/libEs5/utils/createMerger.js +9 -10
  262. package/libEs5/utils/createSubscription.js +48 -48
  263. package/libEs5/utils/createTaskQueue.js +8 -7
  264. package/libEs5/utils/deduplicateArray.js +7 -11
  265. package/libEs5/utils/deepAssign.js +7 -11
  266. package/libEs5/utils/defer.js +5 -4
  267. package/libEs5/utils/dom/appendNode.js +3 -2
  268. package/libEs5/utils/dom/awaitSelector.js +36 -34
  269. package/libEs5/utils/dom/createNode.js +10 -15
  270. package/libEs5/utils/dom/index.js +8 -8
  271. package/libEs5/utils/dom/isShadowSelector.js +2 -3
  272. package/libEs5/utils/dom/matchesSelector.js +3 -2
  273. package/libEs5/utils/dom/querySelectorAll.js +5 -13
  274. package/libEs5/utils/dom/removeNode.js +4 -3
  275. package/libEs5/utils/dom/selectNodes.js +3 -3
  276. package/libEs5/utils/dom/selectNodesWithShadow.js +14 -23
  277. package/libEs5/utils/event.js +49 -0
  278. package/libEs5/utils/filterObject.js +14 -12
  279. package/libEs5/utils/fireImage.js +10 -9
  280. package/libEs5/utils/flattenArray.js +4 -11
  281. package/libEs5/utils/flattenObject.js +8 -18
  282. package/libEs5/utils/getApexDomain.js +7 -6
  283. package/libEs5/utils/getBrowser.js +45 -12
  284. package/libEs5/utils/getLastArrayItems.js +2 -3
  285. package/libEs5/utils/getNamespacedCookieName.js +2 -3
  286. package/libEs5/utils/groupBy.js +6 -5
  287. package/libEs5/utils/index.js +50 -113
  288. package/libEs5/utils/injectDoesIdentityCookieExist.js +7 -7
  289. package/libEs5/utils/injectFireReferrerHideableImage.js +28 -34
  290. package/libEs5/utils/injectStorage.js +13 -15
  291. package/libEs5/utils/intersection.js +2 -6
  292. package/libEs5/utils/isBlankString.js +2 -3
  293. package/libEs5/utils/isBoolean.js +2 -3
  294. package/libEs5/utils/isEmptyObject.js +2 -3
  295. package/libEs5/utils/isFunction.js +2 -3
  296. package/libEs5/utils/isInteger.js +4 -3
  297. package/libEs5/utils/isNamespacedCookieName.js +2 -3
  298. package/libEs5/utils/isNil.js +2 -3
  299. package/libEs5/utils/isNonEmptyArray.js +2 -3
  300. package/libEs5/utils/isNonEmptyString.js +2 -3
  301. package/libEs5/utils/isNumber.js +2 -4
  302. package/libEs5/utils/isObject.js +3 -4
  303. package/libEs5/utils/isString.js +2 -3
  304. package/libEs5/utils/isUnique.js +6 -5
  305. package/libEs5/utils/isValidRegExp.js +3 -2
  306. package/libEs5/utils/memoize.js +7 -6
  307. package/libEs5/utils/noop.js +2 -1
  308. package/libEs5/utils/parseUrl.js +19 -25
  309. package/libEs5/utils/prepareConfigOverridesForEdge.js +6 -5
  310. package/libEs5/utils/request/createAddIdentity.js +4 -3
  311. package/libEs5/utils/request/createDataCollectionRequest.js +15 -11
  312. package/libEs5/utils/request/createDataCollectionRequestPayload.js +9 -10
  313. package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +17 -15
  314. package/libEs5/utils/request/createHasIdentity.js +4 -5
  315. package/libEs5/utils/request/createRequest.js +26 -23
  316. package/libEs5/utils/request/createRequestParams.js +13 -13
  317. package/libEs5/utils/request/createRequestPayload.js +13 -12
  318. package/libEs5/utils/request/index.js +8 -8
  319. package/libEs5/utils/sanitizeOrgIdForCookieName.js +2 -3
  320. package/libEs5/utils/stackError.js +8 -6
  321. package/libEs5/utils/stringToBoolean.js +3 -2
  322. package/libEs5/utils/toArray.js +3 -2
  323. package/libEs5/utils/toError.js +3 -2
  324. package/libEs5/utils/toISOStringLocal.js +29 -14
  325. package/libEs5/utils/toInteger.js +5 -5
  326. package/libEs5/utils/updateErrorMessage.js +6 -4
  327. package/libEs5/utils/validation/booleanValidator.js +3 -2
  328. package/libEs5/utils/validation/callbackValidator.js +3 -2
  329. package/libEs5/utils/validation/createAnyOfValidator.js +14 -17
  330. package/libEs5/utils/validation/createArrayOfValidator.js +16 -18
  331. package/libEs5/utils/validation/createDefaultValidator.js +7 -8
  332. package/libEs5/utils/validation/createDeprecatedValidator.js +12 -14
  333. package/libEs5/utils/validation/createLiteralValidator.js +5 -6
  334. package/libEs5/utils/validation/createMapOfValuesValidator.js +20 -22
  335. package/libEs5/utils/validation/createMaximumValidator.js +5 -6
  336. package/libEs5/utils/validation/createMinimumValidator.js +5 -6
  337. package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +13 -14
  338. package/libEs5/utils/validation/createNonEmptyValidator.js +9 -10
  339. package/libEs5/utils/validation/createObjectOfValidator.js +27 -29
  340. package/libEs5/utils/validation/createRenamedValidator.js +24 -27
  341. package/libEs5/utils/validation/createUniqueItemsValidator.js +4 -3
  342. package/libEs5/utils/validation/createUniqueValidator.js +5 -4
  343. package/libEs5/utils/validation/domainValidator.js +4 -3
  344. package/libEs5/utils/validation/index.js +66 -72
  345. package/libEs5/utils/validation/integerValidator.js +3 -2
  346. package/libEs5/utils/validation/matchesRegexpValidator.js +5 -6
  347. package/libEs5/utils/validation/numberValidator.js +3 -2
  348. package/libEs5/utils/validation/regexpValidator.js +3 -2
  349. package/libEs5/utils/validation/requiredValidator.js +3 -2
  350. package/libEs5/utils/validation/stringValidator.js +3 -2
  351. package/libEs5/utils/validation/utils.js +29 -35
  352. package/libEs6/components/ActivityCollector/index.js +18 -8
  353. package/libEs6/components/Context/createComponent.js +1 -3
  354. package/libEs6/components/DecisioningEngine/createApplyResponse.js +1 -1
  355. package/libEs6/components/DecisioningEngine/createSubscribeRulesetItems.js +78 -28
  356. package/libEs6/components/DecisioningEngine/index.js +22 -2
  357. package/libEs6/components/DecisioningEngine/utils.js +2 -9
  358. package/libEs6/components/Identity/createComponent.js +4 -2
  359. package/libEs6/components/Identity/getEcidFromResponse.js +1 -3
  360. package/libEs6/components/LegacyMediaAnalytics/createGetInstance.js +2 -2
  361. package/libEs6/components/LibraryInfo/index.js +4 -5
  362. package/libEs6/components/Personalization/createActionsProvider.js +4 -2
  363. package/libEs6/components/Personalization/createComponent.js +2 -2
  364. package/libEs6/components/Personalization/createFetchDataHandler.js +35 -1
  365. package/libEs6/components/Personalization/createPersonalizationDetails.js +6 -6
  366. package/libEs6/components/Personalization/createViewCacheManager.js +5 -2
  367. package/libEs6/components/Personalization/createViewChangeHandler.js +11 -1
  368. package/libEs6/components/Personalization/dom-actions/createPreprocess.js +5 -2
  369. package/libEs6/components/Personalization/dom-actions/dom/selectNodesWithEq.js +1 -3
  370. package/libEs6/components/Personalization/dom-actions/remapCustomCodeOffers.js +6 -4
  371. package/libEs6/components/Personalization/dom-actions/remapHeadOffers.js +3 -2
  372. package/libEs6/components/Personalization/dom-actions/scripts.js +18 -2
  373. package/libEs6/components/Personalization/flicker/index.js +44 -30
  374. package/libEs6/components/Personalization/handlers/createDecorateProposition.js +2 -2
  375. package/libEs6/components/Personalization/handlers/createProcessPropositions.js +29 -9
  376. package/libEs6/components/Personalization/handlers/createProcessRedirect.js +9 -0
  377. package/libEs6/components/Personalization/handlers/injectCreateProposition.js +0 -3
  378. package/libEs6/components/Personalization/in-app-message-actions/actions/displayIframeContent.js +8 -5
  379. package/libEs6/components/Personalization/in-app-message-actions/utils.js +2 -2
  380. package/libEs6/components/Personalization/index.js +9 -5
  381. package/libEs6/components/Personalization/utils/addRenderAttemptedToDecisions.js +4 -4
  382. package/libEs6/components/Personalization/utils/surfaceUtils.js +3 -3
  383. package/libEs6/constants/decisionProvider.js +1 -0
  384. package/libEs6/constants/libraryVersion.js +1 -1
  385. package/libEs6/constants/schema.js +1 -1
  386. package/libEs6/core/buildAndValidateConfig.js +8 -5
  387. package/libEs6/core/componentCreators.js +14 -43
  388. package/libEs6/core/config/createConfig.js +3 -2
  389. package/libEs6/core/createCookieTransfer.js +1 -3
  390. package/libEs6/core/createInstanceFunction.js +1 -9
  391. package/libEs6/core/createLogger.js +17 -2
  392. package/libEs6/core/edgeNetwork/injectExtractEdgeInfo.js +1 -7
  393. package/libEs6/core/index.js +11 -10
  394. package/libEs6/core/injectCreateResponse.js +1 -3
  395. package/libEs6/core/network/isRequestRetryable.js +1 -2
  396. package/libEs6/core/network/requestMethods/injectSendFetchRequest.js +1 -2
  397. package/libEs6/{utils/assignIf.js → core/requiredComponentCreators.js} +4 -8
  398. package/libEs6/index.js +26 -6
  399. package/libEs6/standalone.js +7 -1
  400. package/libEs6/utils/areThirdPartyCookiesSupportedByDefault.js +1 -2
  401. package/libEs6/utils/assignConcatArrayValues.js +1 -2
  402. package/libEs6/utils/cookieJar.js +4 -4
  403. package/libEs6/{components/Personalization → utils}/createCollect.js +3 -3
  404. package/libEs6/utils/createSubscription.js +20 -3
  405. package/libEs6/utils/dom/querySelectorAll.js +1 -10
  406. package/libEs6/utils/dom/selectNodesWithShadow.js +2 -12
  407. package/libEs6/{components/Personalization → utils}/event.js +1 -1
  408. package/libEs6/utils/index.js +1 -10
  409. package/libEs6/utils/injectStorage.js +1 -2
  410. package/libEs6/utils/intersection.js +1 -4
  411. package/libEs6/utils/isNumber.js +1 -2
  412. package/libEs6/utils/toISOStringLocal.js +14 -1
  413. package/libEs6/utils/toInteger.js +1 -2
  414. package/libEs6/utils/validation/createAnyOfValidator.js +1 -2
  415. package/libEs6/utils/validation/utils.js +3 -6
  416. package/package.json +35 -37
  417. package/rollup.config.js +115 -7
  418. package/scripts/alloyBuilder.js +89 -55
  419. package/scripts/helpers/entryPointGeneratorBabelPlugin.js +39 -0
  420. package/libEs5/components/Personalization/createCollect.js +0 -53
  421. package/libEs5/components/Personalization/event.js +0 -49
  422. package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +0 -50
  423. package/libEs5/utils/assign.js +0 -16
  424. package/libEs5/utils/assignIf.js +0 -21
  425. package/libEs5/utils/endsWith.js +0 -23
  426. package/libEs5/utils/find.js +0 -30
  427. package/libEs5/utils/flatMap.js +0 -17
  428. package/libEs5/utils/includes.js +0 -23
  429. package/libEs5/utils/padStart.js +0 -27
  430. package/libEs5/utils/startsWith.js +0 -23
  431. package/libEs5/utils/values.js +0 -25
  432. package/libEs6/core/network/requestMethods/injectSendXhrRequest.js +0 -49
  433. package/libEs6/utils/assign.js +0 -14
  434. package/libEs6/utils/endsWith.js +0 -19
  435. package/libEs6/utils/find.js +0 -28
  436. package/libEs6/utils/flatMap.js +0 -14
  437. package/libEs6/utils/includes.js +0 -21
  438. package/libEs6/utils/padStart.js +0 -25
  439. package/libEs6/utils/startsWith.js +0 -19
  440. package/libEs6/utils/values.js +0 -21
  441. package/scripts/helpers/alloyComponents.js +0 -63
  442. package/scripts/helpers/conditionalBuildBabelPlugin.js +0 -57
@@ -4,12 +4,7 @@ exports.default = exports.createEventPruner = void 0;
4
4
  var _utils = require("./utils.js");
5
5
  var _eventType = require("../../constants/eventType.js");
6
6
  var _decisionProvider = require("../../constants/decisionProvider.js");
7
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /*
7
+ /*
13
8
  Copyright 2023 Adobe. All rights reserved.
14
9
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
15
10
  you may not use this file except in compliance with the License. You may obtain a copy
@@ -20,91 +15,93 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
20
15
  OF ANY KIND, either express or implied. See the License for the specific language
21
16
  governing permissions and limitations under the License.
22
17
  */
23
- var STORAGE_KEY = "events";
24
- var MAX_EVENT_RECORDS = 1000;
25
- var RETENTION_PERIOD = 30;
26
- var prefixed = function prefixed(key) {
27
- return "iam." + key;
28
- };
29
- var createEventPruner = exports.createEventPruner = function createEventPruner() {
30
- var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAX_EVENT_RECORDS;
31
- var retentionPeriod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETENTION_PERIOD;
32
- return function (events) {
33
- var pruned = {};
34
- Object.keys(events).forEach(function (eventType) {
18
+
19
+ const STORAGE_KEY = "events";
20
+ const MAX_EVENT_RECORDS = 1000;
21
+ const RETENTION_PERIOD = 30;
22
+ const prefixed = key => "iam." + key;
23
+ const createEventPruner = (limit = MAX_EVENT_RECORDS, retentionPeriod = RETENTION_PERIOD) => {
24
+ return events => {
25
+ const pruned = {};
26
+ Object.keys(events).forEach(eventType => {
35
27
  pruned[eventType] = {};
36
- Object.values(events[eventType]).filter(function (entry) {
37
- return new Date(entry.firstTimestamp) >= (0, _utils.getExpirationDate)(retentionPeriod);
38
- }).sort(function (a, b) {
39
- return a.firstTimestamp - b.firstTimestamp;
40
- }).slice(-1 * limit).forEach(function (entry) {
28
+ Object.values(events[eventType]).filter(entry => new Date(entry.firstTimestamp) >= (0, _utils.getExpirationDate)(retentionPeriod)).sort((a, b) => a.firstTimestamp - b.firstTimestamp).slice(-1 * limit).forEach(entry => {
41
29
  pruned[eventType][entry.event[prefixed("id")]] = entry;
42
30
  });
43
31
  });
44
32
  return pruned;
45
33
  };
46
34
  };
47
- var _default = exports.default = function _default(_ref) {
48
- var storage = _ref.storage;
49
- var currentStorage = storage;
50
- var restore;
51
- var save;
52
- var events;
53
- var setStorage = function setStorage(newStorage) {
35
+ exports.createEventPruner = createEventPruner;
36
+ var _default = ({
37
+ storage
38
+ }) => {
39
+ let currentStorage = storage;
40
+ let restore;
41
+ let save;
42
+ let events;
43
+ const setStorage = newStorage => {
54
44
  currentStorage = newStorage;
55
45
  restore = (0, _utils.createRestoreStorage)(currentStorage, STORAGE_KEY);
56
46
  save = (0, _utils.createSaveStorage)(currentStorage, STORAGE_KEY, createEventPruner(MAX_EVENT_RECORDS, RETENTION_PERIOD));
57
47
  events = restore({});
58
48
  };
59
49
  setStorage(storage);
60
- var addEvent = function addEvent(event, eventType, eventId, action) {
50
+ const addEvent = (event, eventType, eventId, action) => {
61
51
  if (!eventType || !eventId) {
62
52
  return undefined;
63
53
  }
64
54
  if (!events[eventType]) {
65
55
  events[eventType] = {};
66
56
  }
67
- var existingEvent = events[eventType][eventId];
68
- var count = existingEvent ? existingEvent.count : 0;
69
- var timestamp = new Date().getTime();
70
- var firstTimestamp = existingEvent ? existingEvent.firstTimestamp || existingEvent.timestamp : timestamp;
57
+ const existingEvent = events[eventType][eventId];
58
+ const count = existingEvent ? existingEvent.count : 0;
59
+ const timestamp = new Date().getTime();
60
+ const firstTimestamp = existingEvent ? existingEvent.firstTimestamp || existingEvent.timestamp : timestamp;
71
61
  events[eventType][eventId] = {
72
- event: _objectSpread(_objectSpread({}, event), {}, _defineProperty(_defineProperty(_defineProperty({}, prefixed("id"), eventId), prefixed("eventType"), eventType), prefixed("action"), action)),
73
- firstTimestamp: firstTimestamp,
74
- timestamp: timestamp,
62
+ event: {
63
+ ...event,
64
+ [prefixed("id")]: eventId,
65
+ [prefixed("eventType")]: eventType,
66
+ [prefixed("action")]: action
67
+ },
68
+ firstTimestamp,
69
+ timestamp,
75
70
  count: count + 1
76
71
  };
77
72
  save(events);
78
73
  return events[eventType][eventId];
79
74
  };
80
- var addExperienceEdgeEvent = function addExperienceEdgeEvent(event) {
81
- var _event$getContent = event.getContent(),
82
- _event$getContent$xdm = _event$getContent.xdm,
83
- xdm = _event$getContent$xdm === void 0 ? {} : _event$getContent$xdm;
84
- var _experience = xdm._experience;
75
+ const addExperienceEdgeEvent = event => {
76
+ const {
77
+ xdm = {}
78
+ } = event.getContent();
79
+ const {
80
+ _experience
81
+ } = xdm;
85
82
  if (!(0, _utils.hasExperienceData)(xdm)) {
86
83
  return;
87
84
  }
88
- var _experience$decisioni = _experience.decisioning,
89
- decisioning = _experience$decisioni === void 0 ? {} : _experience$decisioni;
90
- var _decisioning$proposit = decisioning.propositionEventType,
91
- propositionEventTypeObj = _decisioning$proposit === void 0 ? {} : _decisioning$proposit,
92
- _decisioning$proposit2 = decisioning.propositionAction,
93
- propositionAction = _decisioning$proposit2 === void 0 ? {} : _decisioning$proposit2,
94
- _decisioning$proposit3 = decisioning.propositions,
95
- propositions = _decisioning$proposit3 === void 0 ? [] : _decisioning$proposit3;
96
- var propositionEventTypesList = Object.keys(propositionEventTypeObj);
85
+ const {
86
+ decisioning = {}
87
+ } = _experience;
88
+ const {
89
+ propositionEventType: propositionEventTypeObj = {},
90
+ propositionAction = {},
91
+ propositions = []
92
+ } = decisioning;
93
+ const propositionEventTypesList = Object.keys(propositionEventTypeObj);
97
94
 
98
95
  // https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=CJM&title=Proposition+Event+Types
99
96
  if (propositionEventTypesList.length === 0) {
100
97
  return;
101
98
  }
102
- var validPropositionEventType = function validPropositionEventType(propositionEventType) {
103
- return propositionEventTypeObj[propositionEventType] === _eventType.EVENT_TYPE_TRUE;
104
- };
105
- var action = propositionAction.id;
106
- propositionEventTypesList.filter(validPropositionEventType).forEach(function (propositionEventType) {
107
- propositions.forEach(function (proposition) {
99
+ const validPropositionEventType = propositionEventType => propositionEventTypeObj[propositionEventType] === _eventType.EVENT_TYPE_TRUE;
100
+ const {
101
+ id: action
102
+ } = propositionAction;
103
+ propositionEventTypesList.filter(validPropositionEventType).forEach(propositionEventType => {
104
+ propositions.forEach(proposition => {
108
105
  if ((0, _utils.getDecisionProvider)(proposition) !== _decisionProvider.ADOBE_JOURNEY_OPTIMIZER) {
109
106
  return;
110
107
  }
@@ -112,19 +109,18 @@ var _default = exports.default = function _default(_ref) {
112
109
  });
113
110
  });
114
111
  };
115
- var getEvent = function getEvent(eventType, eventId) {
112
+ const getEvent = (eventType, eventId) => {
116
113
  if (!events[eventType]) {
117
114
  return undefined;
118
115
  }
119
116
  return events[eventType][eventId];
120
117
  };
121
118
  return {
122
- addExperienceEdgeEvent: addExperienceEdgeEvent,
123
- addEvent: addEvent,
124
- getEvent: getEvent,
125
- toJSON: function toJSON() {
126
- return events;
127
- },
128
- setStorage: setStorage
119
+ addExperienceEdgeEvent,
120
+ addEvent,
121
+ getEvent,
122
+ toJSON: () => events,
123
+ setStorage
129
124
  };
130
- };
125
+ };
126
+ exports.default = _default;
@@ -3,12 +3,7 @@
3
3
  exports.default = void 0;
4
4
  var _handle = require("../../constants/handle.js");
5
5
  var _flattenObject = require("../../utils/flattenObject.js");
6
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
7
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
10
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
11
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /*
6
+ /*
12
7
  Copyright 2023 Adobe. All rights reserved.
13
8
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
14
9
  you may not use this file except in compliance with the License. You may obtain a copy
@@ -19,16 +14,21 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
19
14
  OF ANY KIND, either express or implied. See the License for the specific language
20
15
  governing permissions and limitations under the License.
21
16
  */
22
- var _default = exports.default = function _default(_ref) {
23
- var renderDecisions = _ref.renderDecisions,
24
- decisionProvider = _ref.decisionProvider,
25
- applyResponse = _ref.applyResponse,
26
- event = _ref.event,
27
- personalization = _ref.personalization,
28
- decisionContext = _ref.decisionContext;
29
- var context = _objectSpread(_objectSpread({}, (0, _flattenObject.default)(event.getContent())), decisionContext);
30
- return function (_ref2) {
31
- var response = _ref2.response;
17
+ var _default = ({
18
+ renderDecisions,
19
+ decisionProvider,
20
+ applyResponse,
21
+ event,
22
+ personalization,
23
+ decisionContext
24
+ }) => {
25
+ const context = {
26
+ ...(0, _flattenObject.default)(event.getContent()),
27
+ ...decisionContext
28
+ };
29
+ return ({
30
+ response
31
+ }) => {
32
32
  decisionProvider.addPayloads(response.getPayloadsByType(_handle.PERSONALIZATION_DECISIONS_HANDLE));
33
33
 
34
34
  // only evaluate events that include a personalization query
@@ -37,12 +37,13 @@ var _default = exports.default = function _default(_ref) {
37
37
  propositions: []
38
38
  };
39
39
  }
40
- var propositions = decisionProvider.evaluate(context);
40
+ const propositions = decisionProvider.evaluate(context);
41
41
  return applyResponse({
42
- renderDecisions: renderDecisions,
43
- propositions: propositions,
44
- event: event,
45
- personalization: personalization
42
+ renderDecisions,
43
+ propositions,
44
+ event,
45
+ personalization
46
46
  });
47
47
  };
48
- };
48
+ };
49
+ exports.default = _default;
@@ -3,13 +3,8 @@
3
3
  exports.default = void 0;
4
4
  var _index = require("../../utils/validation/index.js");
5
5
  var _createSubscription = require("../../utils/createSubscription.js");
6
- var _index2 = require("../../utils/index.js");
7
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /*
6
+ var _propositionEventType = require("../../constants/propositionEventType.js");
7
+ /*
13
8
  Copyright 2023 Adobe. All rights reserved.
14
9
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
15
10
  you may not use this file except in compliance with the License. You may obtain a copy
@@ -20,70 +15,120 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
20
15
  OF ANY KIND, either express or implied. See the License for the specific language
21
16
  governing permissions and limitations under the License.
22
17
  */
23
- var validateOptions = function validateOptions(_ref) {
24
- var options = _ref.options;
25
- var validator = (0, _index.objectOf)({
18
+
19
+ const validateOptions = ({
20
+ options
21
+ }) => {
22
+ const validator = (0, _index.objectOf)({
26
23
  surfaces: (0, _index.arrayOf)((0, _index.string)()).uniqueItems(),
27
24
  schemas: (0, _index.arrayOf)((0, _index.string)()).uniqueItems(),
28
25
  callback: (0, _index.callback)().required()
29
26
  }).noUnknownFields();
30
27
  return validator(options);
31
28
  };
32
- var emissionPreprocessor = function emissionPreprocessor(params, propositions) {
33
- var surfacesFilter = params.surfacesFilter,
34
- schemasFilter = params.schemasFilter;
35
- var result = {
36
- propositions: propositions.filter(function (payload) {
37
- return surfacesFilter ? (0, _index2.includes)(surfacesFilter, payload.scope) : true;
38
- }).map(function (payload) {
39
- var _payload$items = payload.items,
40
- items = _payload$items === void 0 ? [] : _payload$items;
41
- return _objectSpread(_objectSpread({}, payload), {}, {
42
- items: items.filter(function (item) {
43
- return schemasFilter ? (0, _index2.includes)(schemasFilter, item.schema) : true;
44
- })
45
- });
46
- }).filter(function (payload) {
47
- return payload.items.length > 0;
48
- })
29
+ const getAnalyticsDetail = proposition => {
30
+ const {
31
+ id,
32
+ scope,
33
+ scopeDetails
34
+ } = proposition;
35
+ return {
36
+ id,
37
+ scope,
38
+ scopeDetails
49
39
  };
50
- return [result];
51
40
  };
52
- var emissionCondition = function emissionCondition(params, result) {
53
- return result.propositions.length > 0;
54
- };
55
- var _default = exports.default = function _default() {
56
- var subscription = (0, _createSubscription.default)();
57
- subscription.setEmissionPreprocessor(emissionPreprocessor);
58
- subscription.setEmissionCondition(emissionCondition);
59
- var run = function run(_ref2) {
60
- var surfaces = _ref2.surfaces,
61
- schemas = _ref2.schemas,
62
- callback = _ref2.callback;
63
- var unsubscribe = subscription.add(callback, {
41
+ var _default = ({
42
+ collect
43
+ }) => {
44
+ let emitPropositions = () => undefined;
45
+ const collectedEventsThisSession = new Set();
46
+ const shouldAlwaysCollect = propositionEventType => [_propositionEventType.PropositionEventType.INTERACT, _propositionEventType.PropositionEventType.DISMISS].includes(propositionEventType);
47
+ const shouldCollect = (propositionEventType, analyticsMetaId, collectedEventsThisRequest) => {
48
+ const eventId = [propositionEventType, analyticsMetaId].join("-");
49
+ const result = !collectedEventsThisRequest.has(eventId) && (shouldAlwaysCollect(propositionEventType) || !collectedEventsThisSession.has(eventId));
50
+ collectedEventsThisRequest.add(eventId);
51
+ collectedEventsThisSession.add(eventId);
52
+ return result;
53
+ };
54
+ const collectEvent = (propositionEventType, propositions = []) => {
55
+ if (!(propositions instanceof Array)) {
56
+ return Promise.resolve();
57
+ }
58
+ if (!Object.values(_propositionEventType.PropositionEventType).includes(propositionEventType)) {
59
+ return Promise.resolve();
60
+ }
61
+ const decisionsMeta = [];
62
+ const collectedEventsThisRequest = new Set();
63
+ propositions.forEach(proposition => {
64
+ const analyticsMeta = getAnalyticsDetail(proposition);
65
+ if (!shouldCollect(propositionEventType, analyticsMeta.id, collectedEventsThisRequest)) {
66
+ return;
67
+ }
68
+ decisionsMeta.push(analyticsMeta);
69
+ });
70
+ return decisionsMeta.length > 0 ? collect({
71
+ decisionsMeta,
72
+ eventType: (0, _propositionEventType.getEventType)(propositionEventType),
73
+ documentMayUnload: true
74
+ }) : Promise.resolve();
75
+ };
76
+ const subscriptions = (0, _createSubscription.default)();
77
+ const emissionPreprocessor = (params, propositions) => {
78
+ const {
79
+ surfacesFilter,
80
+ schemasFilter
81
+ } = params;
82
+ const result = {
83
+ propositions: propositions.filter(payload => surfacesFilter ? surfacesFilter.includes(payload.scope) : true).map(payload => {
84
+ const {
85
+ items = []
86
+ } = payload;
87
+ return {
88
+ ...payload,
89
+ items: items.filter(item => schemasFilter ? schemasFilter.includes(item.schema) : true)
90
+ };
91
+ }).filter(payload => payload.items.length > 0)
92
+ };
93
+ return [result, collectEvent];
94
+ };
95
+ subscriptions.setEmissionPreprocessor(emissionPreprocessor);
96
+ const run = ({
97
+ surfaces,
98
+ schemas,
99
+ callback
100
+ }) => {
101
+ const {
102
+ id,
103
+ unsubscribe
104
+ } = subscriptions.add(callback, {
64
105
  surfacesFilter: surfaces instanceof Array ? surfaces : undefined,
65
106
  schemasFilter: schemas instanceof Array ? schemas : undefined
66
107
  });
108
+ emitPropositions(id);
67
109
  return Promise.resolve({
68
- unsubscribe: unsubscribe
69
- });
70
- };
71
- var optionsValidator = function optionsValidator(options) {
72
- return validateOptions({
73
- options: options
110
+ unsubscribe
74
111
  });
75
112
  };
76
- var refresh = function refresh(propositions) {
77
- if (!subscription.hasSubscriptions()) {
78
- return;
79
- }
80
- subscription.emit(propositions);
113
+ const optionsValidator = options => validateOptions({
114
+ options
115
+ });
116
+ const refresh = propositions => {
117
+ emitPropositions = subscriptionId => {
118
+ if (subscriptionId) {
119
+ subscriptions.emitOne(subscriptionId, propositions);
120
+ return;
121
+ }
122
+ subscriptions.emit(propositions);
123
+ };
124
+ emitPropositions();
81
125
  };
82
126
  return {
83
- refresh: refresh,
127
+ refresh,
84
128
  command: {
85
- optionsValidator: optionsValidator,
86
- run: run
129
+ optionsValidator,
130
+ run
87
131
  }
88
132
  };
89
- };
133
+ };
134
+ exports.default = _default;
@@ -12,12 +12,9 @@ var _constants = require("./constants.js");
12
12
  var _createEvaluateRulesetsCommand = require("./createEvaluateRulesetsCommand.js");
13
13
  var _utils = require("./utils.js");
14
14
  var _index2 = require("../../utils/validation/index.js");
15
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
16
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
19
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
20
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /*
15
+ var _createCollect = require("../../utils/createCollect.js");
16
+ var _event = require("../../utils/event.js");
17
+ /*
21
18
  Copyright 2023 Adobe. All rights reserved.
22
19
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
23
20
  you may not use this file except in compliance with the License. You may obtain a copy
@@ -28,82 +25,114 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
28
25
  OF ANY KIND, either express or implied. See the License for the specific language
29
26
  governing permissions and limitations under the License.
30
27
  */
31
- var createDecisioningEngine = function createDecisioningEngine(_ref) {
32
- var config = _ref.config,
33
- createNamespacedStorage = _ref.createNamespacedStorage,
34
- consent = _ref.consent;
35
- var orgId = config.orgId,
36
- personalizationStorageEnabled = config.personalizationStorageEnabled;
37
- var storage = createNamespacedStorage((0, _index.sanitizeOrgIdForCookieName)(orgId) + ".decisioning.");
28
+
29
+ const createDecisioningEngine = ({
30
+ config,
31
+ eventManager,
32
+ createNamespacedStorage,
33
+ consent
34
+ }) => {
35
+ const {
36
+ orgId,
37
+ personalizationStorageEnabled
38
+ } = config;
39
+ const collect = (0, _createCollect.default)({
40
+ eventManager,
41
+ mergeDecisionsMeta: _event.mergeDecisionsMeta
42
+ });
43
+ const storage = createNamespacedStorage((0, _index.sanitizeOrgIdForCookieName)(orgId) + ".decisioning.");
38
44
  if (!personalizationStorageEnabled) {
39
45
  (0, _utils.clearLocalStorage)(storage.persistent);
40
46
  }
41
- var eventRegistry = (0, _createEventRegistry.default)({
47
+ const eventRegistry = (0, _createEventRegistry.default)({
42
48
  storage: (0, _utils.createInMemoryStorage)()
43
49
  });
44
- var decisionProvider = (0, _createDecisionProvider.default)({
45
- eventRegistry: eventRegistry
50
+ const decisionProvider = (0, _createDecisionProvider.default)({
51
+ eventRegistry
52
+ });
53
+ const contextProvider = (0, _createContextProvider.default)({
54
+ eventRegistry,
55
+ window
46
56
  });
47
- var contextProvider = (0, _createContextProvider.default)({
48
- eventRegistry: eventRegistry,
49
- window: window
57
+ const evaluateRulesetsCommand = (0, _createEvaluateRulesetsCommand.default)({
58
+ contextProvider,
59
+ decisionProvider
50
60
  });
51
- var evaluateRulesetsCommand = (0, _createEvaluateRulesetsCommand.default)({
52
- contextProvider: contextProvider,
53
- decisionProvider: decisionProvider
61
+ const subscribeRulesetItems = (0, _createSubscribeRulesetItems.default)({
62
+ collect
54
63
  });
55
- var subscribeRulesetItems = (0, _createSubscribeRulesetItems.default)();
56
- var applyResponse;
64
+ let applyResponse;
57
65
  return {
58
66
  lifecycle: {
59
- onDecision: function onDecision(_ref2) {
60
- var propositions = _ref2.propositions;
67
+ onDecision({
68
+ propositions
69
+ }) {
61
70
  subscribeRulesetItems.refresh(propositions);
62
71
  },
63
- onComponentsRegistered: function onComponentsRegistered(tools) {
72
+ onComponentsRegistered(tools) {
64
73
  applyResponse = (0, _createApplyResponse.default)(tools.lifecycle);
65
74
  if (personalizationStorageEnabled) {
66
- consent.awaitConsent().then(function () {
75
+ consent.awaitConsent().then(() => {
67
76
  eventRegistry.setStorage(storage.persistent);
68
- }).catch(function () {
77
+ }).catch(() => {
69
78
  if (storage) {
70
79
  (0, _utils.clearLocalStorage)(storage.persistent);
71
80
  }
72
81
  });
73
82
  }
74
83
  },
75
- onBeforeEvent: function onBeforeEvent(_ref3) {
76
- var event = _ref3.event,
77
- renderDecisions = _ref3.renderDecisions,
78
- _ref3$personalization = _ref3.personalization,
79
- personalization = _ref3$personalization === void 0 ? {} : _ref3$personalization,
80
- _ref3$onResponse = _ref3.onResponse,
81
- onResponse = _ref3$onResponse === void 0 ? _index.noop : _ref3$onResponse;
82
- var _personalization$deci = personalization.decisionContext,
83
- decisionContext = _personalization$deci === void 0 ? {} : _personalization$deci;
84
+ onBeforeEvent({
85
+ event,
86
+ renderDecisions,
87
+ personalization = {},
88
+ onResponse = _index.noop
89
+ }) {
90
+ const {
91
+ decisionContext = {}
92
+ } = personalization;
84
93
  onResponse((0, _createOnResponseHandler.default)({
85
- renderDecisions: renderDecisions,
86
- decisionProvider: decisionProvider,
87
- applyResponse: applyResponse,
88
- event: event,
89
- personalization: personalization,
90
- decisionContext: contextProvider.getContext(_objectSpread(_defineProperty(_defineProperty({}, _constants.CONTEXT_KEY.TYPE, _constants.CONTEXT_EVENT_TYPE.EDGE), _constants.CONTEXT_KEY.SOURCE, _constants.CONTEXT_EVENT_SOURCE.REQUEST), decisionContext))
94
+ renderDecisions,
95
+ decisionProvider,
96
+ applyResponse,
97
+ event,
98
+ personalization,
99
+ decisionContext: contextProvider.getContext({
100
+ [_constants.CONTEXT_KEY.TYPE]: _constants.CONTEXT_EVENT_TYPE.EDGE,
101
+ [_constants.CONTEXT_KEY.SOURCE]: _constants.CONTEXT_EVENT_SOURCE.REQUEST,
102
+ ...decisionContext
103
+ })
91
104
  }));
92
- eventRegistry.addExperienceEdgeEvent(event);
105
+ },
106
+ onBeforeRequest({
107
+ request
108
+ }) {
109
+ const payload = request.getPayload().toJSON();
110
+ const {
111
+ events = []
112
+ } = payload;
113
+ if (events.length === 0) {
114
+ return;
115
+ }
116
+ events.forEach(event => eventRegistry.addExperienceEdgeEvent(event));
93
117
  }
94
118
  },
95
119
  commands: {
96
120
  evaluateRulesets: {
97
- run: function run(_ref4) {
98
- var renderDecisions = _ref4.renderDecisions,
99
- _ref4$personalization = _ref4.personalization,
100
- personalization = _ref4$personalization === void 0 ? {} : _ref4$personalization;
101
- var _personalization$deci2 = personalization.decisionContext,
102
- decisionContext = _personalization$deci2 === void 0 ? {} : _personalization$deci2;
121
+ run: ({
122
+ renderDecisions,
123
+ personalization = {}
124
+ }) => {
125
+ const {
126
+ decisionContext = {}
127
+ } = personalization;
103
128
  return evaluateRulesetsCommand.run({
104
- renderDecisions: renderDecisions,
105
- decisionContext: _objectSpread(_defineProperty(_defineProperty({}, _constants.CONTEXT_KEY.TYPE, _constants.CONTEXT_EVENT_TYPE.RULES_ENGINE), _constants.CONTEXT_KEY.SOURCE, _constants.CONTEXT_EVENT_SOURCE.REQUEST), decisionContext),
106
- applyResponse: applyResponse
129
+ renderDecisions,
130
+ decisionContext: {
131
+ [_constants.CONTEXT_KEY.TYPE]: _constants.CONTEXT_EVENT_TYPE.RULES_ENGINE,
132
+ [_constants.CONTEXT_KEY.SOURCE]: _constants.CONTEXT_EVENT_SOURCE.REQUEST,
133
+ ...decisionContext
134
+ },
135
+ applyResponse
107
136
  });
108
137
  },
109
138
  optionsValidator: evaluateRulesetsCommand.optionsValidator