@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.
- package/babel.config.cjs +0 -1
- package/libEs5/baseCode/index.js +3 -2
- package/libEs5/components/ActivityCollector/attachClickActivityCollector.js +23 -20
- package/libEs5/components/ActivityCollector/configValidators.js +2 -2
- package/libEs5/components/ActivityCollector/createClickActivityStorage.js +11 -9
- package/libEs5/components/ActivityCollector/createClickedElementProperties.js +39 -32
- package/libEs5/components/ActivityCollector/createGetClickedElementProperties.js +28 -20
- package/libEs5/components/ActivityCollector/createInjectClickedElementProperties.js +24 -21
- package/libEs5/components/ActivityCollector/createRecallAndInjectClickedElementProperties.js +10 -8
- package/libEs5/components/ActivityCollector/createStorePageViewProperties.js +6 -4
- package/libEs5/components/ActivityCollector/getLinkName.js +19 -18
- package/libEs5/components/ActivityCollector/getLinkRegion.js +10 -9
- package/libEs5/components/ActivityCollector/index.js +61 -45
- package/libEs5/components/ActivityCollector/utils/activityMapExtensionEnabled.js +3 -5
- package/libEs5/components/ActivityCollector/utils/createTransientStorage.js +7 -6
- package/libEs5/components/ActivityCollector/utils/determineLinkType.js +4 -3
- package/libEs5/components/ActivityCollector/utils/dom/elementHasClickHandler.js +3 -2
- package/libEs5/components/ActivityCollector/utils/dom/extractDomain.js +5 -4
- package/libEs5/components/ActivityCollector/utils/dom/findClickableElement.js +4 -3
- package/libEs5/components/ActivityCollector/utils/dom/getAbsoluteUrlFromAnchorElement.js +11 -8
- package/libEs5/components/ActivityCollector/utils/dom/isButtonSubmitElement.js +3 -2
- package/libEs5/components/ActivityCollector/utils/dom/isDownloadLink.js +6 -5
- package/libEs5/components/ActivityCollector/utils/dom/isExitLink.js +6 -5
- package/libEs5/components/ActivityCollector/utils/dom/isInputSubmitElement.js +4 -3
- package/libEs5/components/ActivityCollector/utils/dom/isSupportedAnchorElement.js +3 -2
- package/libEs5/components/ActivityCollector/utils/dom/isSupportedTextNode.js +4 -3
- package/libEs5/components/ActivityCollector/utils/hasPageName.js +4 -3
- package/libEs5/components/ActivityCollector/utils/isDifferentDomains.js +5 -4
- package/libEs5/components/ActivityCollector/utils/trimQueryFromUrl.js +5 -4
- package/libEs5/components/ActivityCollector/utils/truncateWhiteSpace.js +3 -2
- package/libEs5/components/ActivityCollector/utils/urlStartsWithScheme.js +3 -2
- package/libEs5/components/Audiences/index.js +13 -12
- package/libEs5/components/Audiences/injectProcessDestinations.js +32 -35
- package/libEs5/components/Audiences/injectProcessResponse.js +19 -16
- package/libEs5/components/Context/createComponent.js +10 -13
- package/libEs5/components/Context/implementationDetails.js +5 -4
- package/libEs5/components/Context/index.js +24 -28
- package/libEs5/components/Context/injectDevice.js +23 -15
- package/libEs5/components/Context/injectEnvironment.js +17 -12
- package/libEs5/components/Context/injectHighEntropyUserAgentHints.js +12 -21
- package/libEs5/components/Context/injectPlaceContext.js +8 -7
- package/libEs5/components/Context/injectTimestamp.js +6 -5
- package/libEs5/components/Context/injectWeb.js +6 -5
- package/libEs5/components/DataCollector/index.js +37 -38
- package/libEs5/components/DataCollector/validateApplyResponse.js +6 -4
- package/libEs5/components/DataCollector/validateUserEventOptions.js +6 -4
- package/libEs5/components/DecisioningEngine/consequenceAdapters/inAppMessageConsequenceAdapter.js +11 -8
- package/libEs5/components/DecisioningEngine/consequenceAdapters/schemaTypeConsequenceAdapter.js +10 -7
- package/libEs5/components/DecisioningEngine/constants.js +3 -3
- package/libEs5/components/DecisioningEngine/createApplyResponse.js +15 -15
- package/libEs5/components/DecisioningEngine/createConsequenceAdapter.js +17 -13
- package/libEs5/components/DecisioningEngine/createContextProvider.js +48 -44
- package/libEs5/components/DecisioningEngine/createDecisionHistory.js +7 -5
- package/libEs5/components/DecisioningEngine/createDecisionProvider.js +16 -21
- package/libEs5/components/DecisioningEngine/createEvaluableRulesetPayload.js +39 -37
- package/libEs5/components/DecisioningEngine/createEvaluateRulesetsCommand.js +21 -19
- package/libEs5/components/DecisioningEngine/createEventRegistry.js +63 -67
- package/libEs5/components/DecisioningEngine/createOnResponseHandler.js +23 -22
- package/libEs5/components/DecisioningEngine/createSubscribeRulesetItems.js +100 -55
- package/libEs5/components/DecisioningEngine/index.js +83 -54
- package/libEs5/components/DecisioningEngine/utils.js +43 -38
- package/libEs5/components/EventMerge/createComponent.js +5 -3
- package/libEs5/components/EventMerge/createEventMergeId.js +3 -2
- package/libEs5/components/EventMerge/index.js +1 -1
- package/libEs5/components/Identity/addEcidQueryToPayload.js +3 -2
- package/libEs5/components/Identity/addEcidToPayload.js +3 -2
- package/libEs5/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +13 -23
- package/libEs5/components/Identity/configValidators.js +1 -1
- package/libEs5/components/Identity/constants/authState.js +3 -3
- package/libEs5/components/Identity/createComponent.js +39 -33
- package/libEs5/components/Identity/createLegacyIdentity.js +29 -29
- package/libEs5/components/Identity/getEcidFromResponse.js +5 -7
- package/libEs5/components/Identity/getIdentity/createGetIdentity.js +17 -15
- package/libEs5/components/Identity/getIdentity/createIdentityRequest.js +10 -8
- package/libEs5/components/Identity/getIdentity/createIdentityRequestPayload.js +5 -4
- package/libEs5/components/Identity/index.js +61 -62
- package/libEs5/components/Identity/injectAddLegacyEcidToPayload.js +8 -6
- package/libEs5/components/Identity/injectAddQueryStringIdentityToPayload.js +46 -52
- package/libEs5/components/Identity/injectAwaitIdentityCookie.js +14 -11
- package/libEs5/components/Identity/injectEnsureSingleIdentity.js +25 -24
- package/libEs5/components/Identity/injectHandleResponseForIdSyncs.js +6 -4
- package/libEs5/components/Identity/injectProcessIdSyncs.js +20 -22
- package/libEs5/components/Identity/injectSetDomainForInitialIdentityPayload.js +7 -5
- package/libEs5/components/Identity/visitorService/awaitVisitorOptIn.js +8 -6
- package/libEs5/components/Identity/visitorService/getVisitor.js +4 -3
- package/libEs5/components/Identity/visitorService/injectGetEcidFromVisitor.js +15 -13
- package/libEs5/components/LegacyMediaAnalytics/constants/constants.js +9 -9
- package/libEs5/components/LegacyMediaAnalytics/constants/mediaKeysToXdmConverter.js +2 -2
- package/libEs5/components/LegacyMediaAnalytics/createGetInstance.js +61 -63
- package/libEs5/components/LegacyMediaAnalytics/createLegacyMediaComponent.js +38 -37
- package/libEs5/components/LegacyMediaAnalytics/createMediaHelper.js +54 -52
- package/libEs5/components/LegacyMediaAnalytics/index.js +32 -33
- package/libEs5/components/LibraryInfo/index.js +23 -30
- package/libEs5/components/MachineLearning/index.js +1 -1
- package/libEs5/components/MachineLearning/processResponse.js +5 -3
- package/libEs5/components/Personalization/constants/loggerMessage.js +2 -2
- package/libEs5/components/Personalization/constants/scopeType.js +3 -3
- package/libEs5/components/Personalization/constants/surface.js +4 -4
- package/libEs5/components/Personalization/createActionsProvider.js +37 -32
- package/libEs5/components/Personalization/createApplyPropositions.js +71 -81
- package/libEs5/components/Personalization/createClickStorage.js +30 -32
- package/libEs5/components/Personalization/createComponent.js +65 -74
- package/libEs5/components/Personalization/createFetchDataHandler.js +83 -52
- package/libEs5/components/Personalization/createGetPageLocation.js +6 -6
- package/libEs5/components/Personalization/createHandleConsentFlicker.js +15 -14
- package/libEs5/components/Personalization/createInteractionStorage.js +25 -39
- package/libEs5/components/Personalization/createNotificationHandler.js +9 -10
- package/libEs5/components/Personalization/createOnClickHandler.js +29 -25
- package/libEs5/components/Personalization/createOnDecisionHandler.js +23 -21
- package/libEs5/components/Personalization/createPersonalizationDetails.js +39 -45
- package/libEs5/components/Personalization/createPreprocessors.js +7 -7
- package/libEs5/components/Personalization/createSetTargetMigration.js +6 -4
- package/libEs5/components/Personalization/createViewCacheManager.js +29 -32
- package/libEs5/components/Personalization/createViewChangeHandler.js +35 -20
- package/libEs5/components/Personalization/dom-actions/action.js +24 -25
- package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +12 -13
- package/libEs5/components/Personalization/dom-actions/appendHtml.js +8 -7
- package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +28 -33
- package/libEs5/components/Personalization/dom-actions/clicks/collectInteractions.js +37 -40
- package/libEs5/components/Personalization/dom-actions/collectInteractions.js +3 -2
- package/libEs5/components/Personalization/dom-actions/createPreprocess.js +10 -11
- package/libEs5/components/Personalization/dom-actions/createRedirect.js +11 -13
- package/libEs5/components/Personalization/dom-actions/dom/createFragment.js +3 -2
- package/libEs5/components/Personalization/dom-actions/dom/getAttribute.js +3 -2
- package/libEs5/components/Personalization/dom-actions/dom/getChildNodes.js +6 -3
- package/libEs5/components/Personalization/dom-actions/dom/getChildren.js +6 -3
- package/libEs5/components/Personalization/dom-actions/dom/getElementById.js +3 -3
- package/libEs5/components/Personalization/dom-actions/dom/getFirstChild.js +3 -2
- package/libEs5/components/Personalization/dom-actions/dom/getNextSibling.js +3 -2
- package/libEs5/components/Personalization/dom-actions/dom/getNonce.js +7 -6
- package/libEs5/components/Personalization/dom-actions/dom/getParent.js +3 -2
- package/libEs5/components/Personalization/dom-actions/dom/helperForEq.js +7 -7
- package/libEs5/components/Personalization/dom-actions/dom/index.js +14 -14
- package/libEs5/components/Personalization/dom-actions/dom/insertAfter.js +4 -3
- package/libEs5/components/Personalization/dom-actions/dom/insertBefore.js +4 -3
- package/libEs5/components/Personalization/dom-actions/dom/isDomElement.js +2 -3
- package/libEs5/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +6 -5
- package/libEs5/components/Personalization/dom-actions/dom/removeAttribute.js +3 -2
- package/libEs5/components/Personalization/dom-actions/dom/selectNodesWithEq.js +39 -38
- package/libEs5/components/Personalization/dom-actions/dom/setAttribute.js +3 -2
- package/libEs5/components/Personalization/dom-actions/dom/setStyle.js +4 -3
- package/libEs5/components/Personalization/dom-actions/images.js +10 -9
- package/libEs5/components/Personalization/dom-actions/index.js +1 -1
- package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +40 -25
- package/libEs5/components/Personalization/dom-actions/insertHtmlAfter.js +9 -8
- package/libEs5/components/Personalization/dom-actions/insertHtmlBefore.js +8 -7
- package/libEs5/components/Personalization/dom-actions/prependHtml.js +13 -10
- package/libEs5/components/Personalization/dom-actions/rearrangeChildren.js +9 -7
- package/libEs5/components/Personalization/dom-actions/remapCustomCodeOffers.js +14 -9
- package/libEs5/components/Personalization/dom-actions/remapHeadOffers.js +16 -14
- package/libEs5/components/Personalization/dom-actions/replaceHtml.js +4 -3
- package/libEs5/components/Personalization/dom-actions/scripts.js +58 -38
- package/libEs5/components/Personalization/dom-actions/setAttributes.js +4 -3
- package/libEs5/components/Personalization/dom-actions/setHtml.js +5 -4
- package/libEs5/components/Personalization/dom-actions/setStyles.js +8 -8
- package/libEs5/components/Personalization/dom-actions/setText.js +3 -2
- package/libEs5/components/Personalization/dom-actions/swapImage.js +3 -2
- package/libEs5/components/Personalization/flicker/index.js +66 -49
- package/libEs5/components/Personalization/handlers/createDecorateProposition.js +16 -13
- package/libEs5/components/Personalization/handlers/createProcessDomAction.js +45 -50
- package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +30 -29
- package/libEs5/components/Personalization/handlers/createProcessInAppMessage.js +35 -31
- package/libEs5/components/Personalization/handlers/createProcessPropositions.js +109 -105
- package/libEs5/components/Personalization/handlers/createProcessRedirect.js +38 -28
- package/libEs5/components/Personalization/handlers/injectCreateProposition.js +59 -67
- package/libEs5/components/Personalization/handlers/processDefaultContent.js +3 -2
- package/libEs5/components/Personalization/in-app-message-actions/actions/displayIframeContent.js +140 -121
- package/libEs5/components/Personalization/in-app-message-actions/initInAppMessageActionsModules.js +4 -5
- package/libEs5/components/Personalization/in-app-message-actions/utils.js +23 -19
- package/libEs5/components/Personalization/index.js +120 -103
- package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +10 -10
- package/libEs5/components/Personalization/utils/createAsyncArray.js +10 -9
- package/libEs5/components/Personalization/utils/isAuthoringModeEnabled.js +3 -3
- package/libEs5/components/Personalization/utils/metaUtils.js +14 -19
- package/libEs5/components/Personalization/utils/surfaceUtils.js +27 -46
- package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +8 -6
- package/libEs5/components/Privacy/computeConsentHash.js +9 -9
- package/libEs5/components/Privacy/createComponent.js +32 -32
- package/libEs5/components/Privacy/createConsentHashStore.js +27 -24
- package/libEs5/components/Privacy/createConsentRequest.js +10 -8
- package/libEs5/components/Privacy/createConsentRequestPayload.js +9 -8
- package/libEs5/components/Privacy/createStoredConsent.js +11 -9
- package/libEs5/components/Privacy/index.js +26 -23
- package/libEs5/components/Privacy/injectSendSetConsentRequest.js +30 -29
- package/libEs5/components/Privacy/parseConsentCookie.js +6 -14
- package/libEs5/components/StreamingMedia/createMediaEventManager.js +59 -45
- package/libEs5/components/StreamingMedia/createMediaRequest.js +8 -6
- package/libEs5/components/StreamingMedia/createMediaResponseHandler.js +22 -17
- package/libEs5/components/StreamingMedia/createMediaSessionCacheManager.js +22 -18
- package/libEs5/components/StreamingMedia/createStreamingMediaComponent.js +30 -29
- package/libEs5/components/StreamingMedia/createTrackMediaEvent.js +41 -36
- package/libEs5/components/StreamingMedia/createTrackMediaSession.js +25 -22
- package/libEs5/components/StreamingMedia/index.js +33 -34
- package/libEs5/components/StreamingMedia/validateMediaEventOptions.js +9 -12
- package/libEs5/components/StreamingMedia/validateMediaSessionOptions.js +6 -4
- package/libEs5/constants/browser.js +7 -7
- package/libEs5/constants/consentPurpose.js +1 -1
- package/libEs5/constants/consentStatus.js +3 -3
- package/libEs5/constants/contentType.js +2 -2
- package/libEs5/constants/cookieNameKey.js +3 -3
- package/libEs5/constants/coreCommands.js +2 -2
- package/libEs5/constants/decisionProvider.js +4 -3
- package/libEs5/constants/domain.js +2 -2
- package/libEs5/constants/elementAttribute.js +1 -1
- package/libEs5/constants/eventType.js +5 -5
- package/libEs5/constants/handle.js +1 -1
- package/libEs5/constants/httpHeaderNames.js +2 -2
- package/libEs5/constants/httpStatusCode.js +5 -5
- package/libEs5/constants/identityMapAuthenticatedState.js +3 -3
- package/libEs5/constants/legacyCookies.js +3 -3
- package/libEs5/constants/libraryVersion.js +1 -1
- package/libEs5/constants/propositionEventType.js +18 -12
- package/libEs5/constants/propositionInteractionType.js +4 -4
- package/libEs5/constants/schema.js +11 -11
- package/libEs5/constants/sessionDataKeys.js +1 -1
- package/libEs5/constants/tagName.js +7 -7
- package/libEs5/core/buildAndValidateConfig.js +55 -69
- package/libEs5/core/componentCreators.js +70 -41
- package/libEs5/core/config/createConfig.js +4 -3
- package/libEs5/core/config/createCoreConfigs.js +11 -12
- package/libEs5/core/consent/createConsent.js +16 -14
- package/libEs5/core/consent/createConsentStateMachine.js +27 -35
- package/libEs5/core/createComponentRegistry.js +28 -27
- package/libEs5/core/createCookieTransfer.js +18 -18
- package/libEs5/core/createEvent.js +39 -44
- package/libEs5/core/createEventManager.js +64 -69
- package/libEs5/core/createInstanceFunction.js +4 -11
- package/libEs5/core/createLifecycle.js +14 -19
- package/libEs5/core/createLogController.js +30 -29
- package/libEs5/core/createLogger.js +41 -27
- package/libEs5/core/edgeNetwork/handleRequestFailure.js +6 -5
- package/libEs5/core/edgeNetwork/injectApplyResponse.js +29 -32
- package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +19 -25
- package/libEs5/core/edgeNetwork/injectGetLocationHint.js +11 -11
- package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +20 -16
- package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +42 -38
- package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +8 -12
- package/libEs5/core/index.js +137 -133
- package/libEs5/core/initializeComponents.js +17 -15
- package/libEs5/core/injectCreateResponse.js +47 -53
- package/libEs5/core/injectExecuteCommand.js +39 -40
- package/libEs5/core/injectHandleError.js +19 -19
- package/libEs5/core/injectShouldTransferCookie.js +12 -12
- package/libEs5/core/network/getRequestRetryDelay.js +20 -18
- package/libEs5/core/network/injectSendNetworkRequest.js +46 -49
- package/libEs5/core/network/isRequestRetryable.js +9 -8
- package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +10 -8
- package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +18 -19
- package/libEs5/core/requiredComponentCreators.js +23 -0
- package/libEs5/core/validateCommandOptions.js +14 -11
- package/libEs5/index.js +43 -22
- package/libEs5/standalone.js +6 -1
- package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +3 -5
- package/libEs5/utils/assignConcatArrayValues.js +9 -18
- package/libEs5/utils/clone.js +2 -3
- package/libEs5/utils/cookieJar.js +4 -4
- package/libEs5/utils/crc32.js +8 -8
- package/libEs5/utils/createCallbackAggregator.js +7 -11
- package/libEs5/utils/createCollect.js +52 -0
- package/libEs5/utils/createLoggingCookieJar.js +14 -16
- package/libEs5/utils/createMerger.js +9 -10
- package/libEs5/utils/createSubscription.js +48 -48
- package/libEs5/utils/createTaskQueue.js +8 -7
- package/libEs5/utils/deduplicateArray.js +7 -11
- package/libEs5/utils/deepAssign.js +7 -11
- package/libEs5/utils/defer.js +5 -4
- package/libEs5/utils/dom/appendNode.js +3 -2
- package/libEs5/utils/dom/awaitSelector.js +36 -34
- package/libEs5/utils/dom/createNode.js +10 -15
- package/libEs5/utils/dom/index.js +8 -8
- package/libEs5/utils/dom/isShadowSelector.js +2 -3
- package/libEs5/utils/dom/matchesSelector.js +3 -2
- package/libEs5/utils/dom/querySelectorAll.js +5 -13
- package/libEs5/utils/dom/removeNode.js +4 -3
- package/libEs5/utils/dom/selectNodes.js +3 -3
- package/libEs5/utils/dom/selectNodesWithShadow.js +14 -23
- package/libEs5/utils/event.js +49 -0
- package/libEs5/utils/filterObject.js +14 -12
- package/libEs5/utils/fireImage.js +10 -9
- package/libEs5/utils/flattenArray.js +4 -11
- package/libEs5/utils/flattenObject.js +8 -18
- package/libEs5/utils/getApexDomain.js +7 -6
- package/libEs5/utils/getBrowser.js +45 -12
- package/libEs5/utils/getLastArrayItems.js +2 -3
- package/libEs5/utils/getNamespacedCookieName.js +2 -3
- package/libEs5/utils/groupBy.js +6 -5
- package/libEs5/utils/index.js +50 -113
- package/libEs5/utils/injectDoesIdentityCookieExist.js +7 -7
- package/libEs5/utils/injectFireReferrerHideableImage.js +28 -34
- package/libEs5/utils/injectStorage.js +13 -15
- package/libEs5/utils/intersection.js +2 -6
- package/libEs5/utils/isBlankString.js +2 -3
- package/libEs5/utils/isBoolean.js +2 -3
- package/libEs5/utils/isEmptyObject.js +2 -3
- package/libEs5/utils/isFunction.js +2 -3
- package/libEs5/utils/isInteger.js +4 -3
- package/libEs5/utils/isNamespacedCookieName.js +2 -3
- package/libEs5/utils/isNil.js +2 -3
- package/libEs5/utils/isNonEmptyArray.js +2 -3
- package/libEs5/utils/isNonEmptyString.js +2 -3
- package/libEs5/utils/isNumber.js +2 -4
- package/libEs5/utils/isObject.js +3 -4
- package/libEs5/utils/isString.js +2 -3
- package/libEs5/utils/isUnique.js +6 -5
- package/libEs5/utils/isValidRegExp.js +3 -2
- package/libEs5/utils/memoize.js +7 -6
- package/libEs5/utils/noop.js +2 -1
- package/libEs5/utils/parseUrl.js +19 -25
- package/libEs5/utils/prepareConfigOverridesForEdge.js +6 -5
- package/libEs5/utils/request/createAddIdentity.js +4 -3
- package/libEs5/utils/request/createDataCollectionRequest.js +15 -11
- package/libEs5/utils/request/createDataCollectionRequestPayload.js +9 -10
- package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +17 -15
- package/libEs5/utils/request/createHasIdentity.js +4 -5
- package/libEs5/utils/request/createRequest.js +26 -23
- package/libEs5/utils/request/createRequestParams.js +13 -13
- package/libEs5/utils/request/createRequestPayload.js +13 -12
- package/libEs5/utils/request/index.js +8 -8
- package/libEs5/utils/sanitizeOrgIdForCookieName.js +2 -3
- package/libEs5/utils/stackError.js +8 -6
- package/libEs5/utils/stringToBoolean.js +3 -2
- package/libEs5/utils/toArray.js +3 -2
- package/libEs5/utils/toError.js +3 -2
- package/libEs5/utils/toISOStringLocal.js +29 -14
- package/libEs5/utils/toInteger.js +5 -5
- package/libEs5/utils/updateErrorMessage.js +6 -4
- package/libEs5/utils/validation/booleanValidator.js +3 -2
- package/libEs5/utils/validation/callbackValidator.js +3 -2
- package/libEs5/utils/validation/createAnyOfValidator.js +14 -17
- package/libEs5/utils/validation/createArrayOfValidator.js +16 -18
- package/libEs5/utils/validation/createDefaultValidator.js +7 -8
- package/libEs5/utils/validation/createDeprecatedValidator.js +12 -14
- package/libEs5/utils/validation/createLiteralValidator.js +5 -6
- package/libEs5/utils/validation/createMapOfValuesValidator.js +20 -22
- package/libEs5/utils/validation/createMaximumValidator.js +5 -6
- package/libEs5/utils/validation/createMinimumValidator.js +5 -6
- package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +13 -14
- package/libEs5/utils/validation/createNonEmptyValidator.js +9 -10
- package/libEs5/utils/validation/createObjectOfValidator.js +27 -29
- package/libEs5/utils/validation/createRenamedValidator.js +24 -27
- package/libEs5/utils/validation/createUniqueItemsValidator.js +4 -3
- package/libEs5/utils/validation/createUniqueValidator.js +5 -4
- package/libEs5/utils/validation/domainValidator.js +4 -3
- package/libEs5/utils/validation/index.js +66 -72
- package/libEs5/utils/validation/integerValidator.js +3 -2
- package/libEs5/utils/validation/matchesRegexpValidator.js +5 -6
- package/libEs5/utils/validation/numberValidator.js +3 -2
- package/libEs5/utils/validation/regexpValidator.js +3 -2
- package/libEs5/utils/validation/requiredValidator.js +3 -2
- package/libEs5/utils/validation/stringValidator.js +3 -2
- package/libEs5/utils/validation/utils.js +29 -35
- package/libEs6/components/ActivityCollector/index.js +18 -8
- package/libEs6/components/Context/createComponent.js +1 -3
- package/libEs6/components/DecisioningEngine/createApplyResponse.js +1 -1
- package/libEs6/components/DecisioningEngine/createSubscribeRulesetItems.js +78 -28
- package/libEs6/components/DecisioningEngine/index.js +22 -2
- package/libEs6/components/DecisioningEngine/utils.js +2 -9
- package/libEs6/components/Identity/createComponent.js +4 -2
- package/libEs6/components/Identity/getEcidFromResponse.js +1 -3
- package/libEs6/components/LegacyMediaAnalytics/createGetInstance.js +2 -2
- package/libEs6/components/LibraryInfo/index.js +4 -5
- package/libEs6/components/Personalization/createActionsProvider.js +4 -2
- package/libEs6/components/Personalization/createComponent.js +2 -2
- package/libEs6/components/Personalization/createFetchDataHandler.js +35 -1
- package/libEs6/components/Personalization/createPersonalizationDetails.js +6 -6
- package/libEs6/components/Personalization/createViewCacheManager.js +5 -2
- package/libEs6/components/Personalization/createViewChangeHandler.js +11 -1
- package/libEs6/components/Personalization/dom-actions/createPreprocess.js +5 -2
- package/libEs6/components/Personalization/dom-actions/dom/selectNodesWithEq.js +1 -3
- package/libEs6/components/Personalization/dom-actions/remapCustomCodeOffers.js +6 -4
- package/libEs6/components/Personalization/dom-actions/remapHeadOffers.js +3 -2
- package/libEs6/components/Personalization/dom-actions/scripts.js +18 -2
- package/libEs6/components/Personalization/flicker/index.js +44 -30
- package/libEs6/components/Personalization/handlers/createDecorateProposition.js +2 -2
- package/libEs6/components/Personalization/handlers/createProcessPropositions.js +29 -9
- package/libEs6/components/Personalization/handlers/createProcessRedirect.js +9 -0
- package/libEs6/components/Personalization/handlers/injectCreateProposition.js +0 -3
- package/libEs6/components/Personalization/in-app-message-actions/actions/displayIframeContent.js +8 -5
- package/libEs6/components/Personalization/in-app-message-actions/utils.js +2 -2
- package/libEs6/components/Personalization/index.js +9 -5
- package/libEs6/components/Personalization/utils/addRenderAttemptedToDecisions.js +4 -4
- package/libEs6/components/Personalization/utils/surfaceUtils.js +3 -3
- package/libEs6/constants/decisionProvider.js +1 -0
- package/libEs6/constants/libraryVersion.js +1 -1
- package/libEs6/constants/schema.js +1 -1
- package/libEs6/core/buildAndValidateConfig.js +8 -5
- package/libEs6/core/componentCreators.js +14 -43
- package/libEs6/core/config/createConfig.js +3 -2
- package/libEs6/core/createCookieTransfer.js +1 -3
- package/libEs6/core/createInstanceFunction.js +1 -9
- package/libEs6/core/createLogger.js +17 -2
- package/libEs6/core/edgeNetwork/injectExtractEdgeInfo.js +1 -7
- package/libEs6/core/index.js +11 -10
- package/libEs6/core/injectCreateResponse.js +1 -3
- package/libEs6/core/network/isRequestRetryable.js +1 -2
- package/libEs6/core/network/requestMethods/injectSendFetchRequest.js +1 -2
- package/libEs6/{utils/assignIf.js → core/requiredComponentCreators.js} +4 -8
- package/libEs6/index.js +26 -6
- package/libEs6/standalone.js +7 -1
- package/libEs6/utils/areThirdPartyCookiesSupportedByDefault.js +1 -2
- package/libEs6/utils/assignConcatArrayValues.js +1 -2
- package/libEs6/utils/cookieJar.js +4 -4
- package/libEs6/{components/Personalization → utils}/createCollect.js +3 -3
- package/libEs6/utils/createSubscription.js +20 -3
- package/libEs6/utils/dom/querySelectorAll.js +1 -10
- package/libEs6/utils/dom/selectNodesWithShadow.js +2 -12
- package/libEs6/{components/Personalization → utils}/event.js +1 -1
- package/libEs6/utils/index.js +1 -10
- package/libEs6/utils/injectStorage.js +1 -2
- package/libEs6/utils/intersection.js +1 -4
- package/libEs6/utils/isNumber.js +1 -2
- package/libEs6/utils/toISOStringLocal.js +14 -1
- package/libEs6/utils/toInteger.js +1 -2
- package/libEs6/utils/validation/createAnyOfValidator.js +1 -2
- package/libEs6/utils/validation/utils.js +3 -6
- package/package.json +35 -37
- package/rollup.config.js +115 -7
- package/scripts/alloyBuilder.js +89 -55
- package/scripts/helpers/entryPointGeneratorBabelPlugin.js +39 -0
- package/libEs5/components/Personalization/createCollect.js +0 -53
- package/libEs5/components/Personalization/event.js +0 -49
- package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +0 -50
- package/libEs5/utils/assign.js +0 -16
- package/libEs5/utils/assignIf.js +0 -21
- package/libEs5/utils/endsWith.js +0 -23
- package/libEs5/utils/find.js +0 -30
- package/libEs5/utils/flatMap.js +0 -17
- package/libEs5/utils/includes.js +0 -23
- package/libEs5/utils/padStart.js +0 -27
- package/libEs5/utils/startsWith.js +0 -23
- package/libEs5/utils/values.js +0 -25
- package/libEs6/core/network/requestMethods/injectSendXhrRequest.js +0 -49
- package/libEs6/utils/assign.js +0 -14
- package/libEs6/utils/endsWith.js +0 -19
- package/libEs6/utils/find.js +0 -28
- package/libEs6/utils/flatMap.js +0 -14
- package/libEs6/utils/includes.js +0 -21
- package/libEs6/utils/padStart.js +0 -25
- package/libEs6/utils/startsWith.js +0 -19
- package/libEs6/utils/values.js +0 -21
- package/scripts/helpers/alloyComponents.js +0 -63
- 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
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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(
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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:
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
89
|
-
decisioning =
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
propositionAction =
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
propositionEventTypesList.filter(validPropositionEventType).forEach(
|
|
107
|
-
propositions.forEach(
|
|
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
|
-
|
|
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
|
|
123
|
-
addEvent
|
|
124
|
-
getEvent
|
|
125
|
-
toJSON:
|
|
126
|
-
|
|
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
|
-
|
|
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 =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
40
|
+
const propositions = decisionProvider.evaluate(context);
|
|
41
41
|
return applyResponse({
|
|
42
|
-
renderDecisions
|
|
43
|
-
propositions
|
|
44
|
-
event
|
|
45
|
-
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
|
|
7
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
var optionsValidator = function optionsValidator(options) {
|
|
72
|
-
return validateOptions({
|
|
73
|
-
options: options
|
|
110
|
+
unsubscribe
|
|
74
111
|
});
|
|
75
112
|
};
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
|
127
|
+
refresh,
|
|
84
128
|
command: {
|
|
85
|
-
optionsValidator
|
|
86
|
-
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
47
|
+
const eventRegistry = (0, _createEventRegistry.default)({
|
|
42
48
|
storage: (0, _utils.createInMemoryStorage)()
|
|
43
49
|
});
|
|
44
|
-
|
|
45
|
-
eventRegistry
|
|
50
|
+
const decisionProvider = (0, _createDecisionProvider.default)({
|
|
51
|
+
eventRegistry
|
|
52
|
+
});
|
|
53
|
+
const contextProvider = (0, _createContextProvider.default)({
|
|
54
|
+
eventRegistry,
|
|
55
|
+
window
|
|
46
56
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
const evaluateRulesetsCommand = (0, _createEvaluateRulesetsCommand.default)({
|
|
58
|
+
contextProvider,
|
|
59
|
+
decisionProvider
|
|
50
60
|
});
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
decisionProvider: decisionProvider
|
|
61
|
+
const subscribeRulesetItems = (0, _createSubscribeRulesetItems.default)({
|
|
62
|
+
collect
|
|
54
63
|
});
|
|
55
|
-
|
|
56
|
-
var applyResponse;
|
|
64
|
+
let applyResponse;
|
|
57
65
|
return {
|
|
58
66
|
lifecycle: {
|
|
59
|
-
onDecision
|
|
60
|
-
|
|
67
|
+
onDecision({
|
|
68
|
+
propositions
|
|
69
|
+
}) {
|
|
61
70
|
subscribeRulesetItems.refresh(propositions);
|
|
62
71
|
},
|
|
63
|
-
onComponentsRegistered
|
|
72
|
+
onComponentsRegistered(tools) {
|
|
64
73
|
applyResponse = (0, _createApplyResponse.default)(tools.lifecycle);
|
|
65
74
|
if (personalizationStorageEnabled) {
|
|
66
|
-
consent.awaitConsent().then(
|
|
75
|
+
consent.awaitConsent().then(() => {
|
|
67
76
|
eventRegistry.setStorage(storage.persistent);
|
|
68
|
-
}).catch(
|
|
77
|
+
}).catch(() => {
|
|
69
78
|
if (storage) {
|
|
70
79
|
(0, _utils.clearLocalStorage)(storage.persistent);
|
|
71
80
|
}
|
|
72
81
|
});
|
|
73
82
|
}
|
|
74
83
|
},
|
|
75
|
-
onBeforeEvent
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
|
86
|
-
decisionProvider
|
|
87
|
-
applyResponse
|
|
88
|
-
event
|
|
89
|
-
personalization
|
|
90
|
-
decisionContext: contextProvider.getContext(
|
|
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
|
-
|
|
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:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
decisionContext =
|
|
121
|
+
run: ({
|
|
122
|
+
renderDecisions,
|
|
123
|
+
personalization = {}
|
|
124
|
+
}) => {
|
|
125
|
+
const {
|
|
126
|
+
decisionContext = {}
|
|
127
|
+
} = personalization;
|
|
103
128
|
return evaluateRulesetsCommand.run({
|
|
104
|
-
renderDecisions
|
|
105
|
-
decisionContext:
|
|
106
|
-
|
|
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
|