@adobe/alloy 2.19.0-beta.0 → 2.19.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/libEs5/baseCode/index.js +2 -12
- package/libEs5/components/ActivityCollector/attachClickActivityCollector.js +9 -12
- package/libEs5/components/ActivityCollector/configValidators.js +1 -4
- package/libEs5/components/ActivityCollector/createGetLinkDetails.js +7 -17
- package/libEs5/components/ActivityCollector/createLinkClick.js +3 -8
- package/libEs5/components/ActivityCollector/getLinkName.js +8 -26
- package/libEs5/components/ActivityCollector/getLinkRegion.js +2 -16
- package/libEs5/components/ActivityCollector/index.js +8 -18
- package/libEs5/components/ActivityCollector/utils.js +3 -40
- package/libEs5/components/Audiences/index.js +2 -8
- package/libEs5/components/Audiences/injectProcessDestinations.js +20 -19
- package/libEs5/components/Audiences/injectProcessResponse.js +0 -5
- package/libEs5/components/Context/createComponent.js +0 -4
- package/libEs5/components/Context/implementationDetails.js +0 -5
- package/libEs5/components/Context/index.js +12 -19
- package/libEs5/components/Context/injectDevice.js +3 -20
- package/libEs5/components/Context/injectEnvironment.js +1 -8
- package/libEs5/components/Context/injectHighEntropyUserAgentHints.js +14 -21
- package/libEs5/components/Context/injectPlaceContext.js +2 -8
- package/libEs5/components/Context/injectTimestamp.js +0 -3
- package/libEs5/components/Context/injectWeb.js +0 -3
- package/libEs5/components/DataCollector/index.js +24 -45
- package/libEs5/components/DataCollector/validateApplyResponse.js +2 -5
- package/libEs5/components/DataCollector/validateUserEventOptions.js +6 -9
- package/libEs5/components/EventMerge/createComponent.js +0 -2
- package/libEs5/components/EventMerge/createEventMergeId.js +0 -3
- package/libEs5/components/EventMerge/index.js +1 -4
- package/libEs5/components/Identity/addEcidQueryToPayload.js +0 -3
- package/libEs5/components/Identity/addEcidToPayload.js +0 -3
- package/libEs5/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +0 -5
- package/libEs5/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +5 -19
- package/libEs5/components/Identity/configValidators.js +1 -2
- package/libEs5/components/Identity/constants/authState.js +1 -1
- package/libEs5/components/Identity/constants/defaultIdSyncTtlMinutes.js +0 -2
- package/libEs5/components/Identity/createComponent.js +16 -22
- package/libEs5/components/Identity/createLegacyIdentity.js +5 -19
- package/libEs5/components/Identity/getEcidFromResponse.js +0 -4
- package/libEs5/components/Identity/getIdentity/createGetIdentity.js +5 -9
- package/libEs5/components/Identity/getIdentity/createIdentityRequest.js +1 -4
- package/libEs5/components/Identity/getIdentity/createIdentityRequestPayload.js +0 -3
- package/libEs5/components/Identity/getIdentity/getIdentityOptionsValidator.js +0 -5
- package/libEs5/components/Identity/index.js +8 -29
- package/libEs5/components/Identity/injectAddLegacyEcidToPayload.js +1 -5
- package/libEs5/components/Identity/injectAddQueryStringIdentityToPayload.js +22 -28
- package/libEs5/components/Identity/injectAwaitIdentityCookie.js +7 -8
- package/libEs5/components/Identity/injectEnsureSingleIdentity.js +17 -20
- package/libEs5/components/Identity/injectHandleResponseForIdSyncs.js +0 -2
- package/libEs5/components/Identity/injectProcessIdSyncs.js +2 -7
- package/libEs5/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -4
- package/libEs5/components/Identity/visitorService/awaitVisitorOptIn.js +0 -3
- package/libEs5/components/Identity/visitorService/getVisitor.js +0 -3
- package/libEs5/components/Identity/visitorService/injectGetEcidFromVisitor.js +2 -7
- package/libEs5/components/LibraryInfo/index.js +13 -21
- package/libEs5/components/MachineLearning/index.js +1 -3
- package/libEs5/components/MachineLearning/processResponse.js +0 -2
- package/libEs5/components/Personalization/constants/eventType.js +1 -1
- package/libEs5/components/Personalization/constants/loggerMessage.js +0 -1
- package/libEs5/components/Personalization/constants/propositionEventType.js +1 -1
- package/libEs5/components/Personalization/constants/schema.js +1 -1
- package/libEs5/components/Personalization/constants/scopeType.js +7 -3
- package/libEs5/components/Personalization/constants/surface.js +1 -1
- package/libEs5/components/Personalization/createApplyPropositions.js +29 -40
- package/libEs5/components/Personalization/createClickStorage.js +22 -23
- package/libEs5/components/Personalization/createCollect.js +5 -15
- package/libEs5/components/Personalization/createComponent.js +43 -42
- package/libEs5/components/Personalization/createFetchDataHandler.js +41 -50
- package/libEs5/components/Personalization/createGetPageLocation.js +0 -2
- package/libEs5/components/Personalization/createOnClickHandler.js +9 -20
- package/libEs5/components/Personalization/createPersonalizationDetails.js +23 -35
- package/libEs5/components/Personalization/createSetTargetMigration.js +0 -5
- package/libEs5/components/Personalization/createViewCacheManager.js +13 -26
- package/libEs5/components/Personalization/createViewChangeHandler.js +3 -15
- package/libEs5/components/Personalization/dom-actions/action.js +3 -19
- package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -13
- package/libEs5/components/Personalization/dom-actions/appendHtml.js +0 -7
- package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +46 -37
- package/libEs5/components/Personalization/dom-actions/createPreprocess.js +0 -4
- package/libEs5/components/Personalization/{utils/isPageWideScope.js → dom-actions/createRedirect.js} +10 -9
- package/libEs5/components/Personalization/dom-actions/dom/createFragment.js +0 -4
- package/libEs5/components/Personalization/dom-actions/dom/getAttribute.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/getChildNodes.js +0 -5
- package/libEs5/components/Personalization/dom-actions/dom/getChildren.js +0 -5
- package/libEs5/components/Personalization/dom-actions/dom/getElementById.js +0 -3
- package/libEs5/components/Personalization/dom-actions/dom/getFirstChild.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/getNextSibling.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/getNonce.js +4 -10
- package/libEs5/components/Personalization/dom-actions/dom/getParent.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/helperForEq.js +1 -6
- package/libEs5/components/Personalization/dom-actions/dom/index.js +0 -14
- package/libEs5/components/Personalization/dom-actions/dom/insertAfter.js +0 -6
- package/libEs5/components/Personalization/dom-actions/dom/insertBefore.js +0 -5
- package/libEs5/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +6 -11
- package/libEs5/components/Personalization/dom-actions/dom/removeAttribute.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/selectNodesWithEq.js +16 -36
- package/libEs5/components/Personalization/dom-actions/dom/setAttribute.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/setStyle.js +0 -4
- package/libEs5/components/Personalization/dom-actions/images.js +1 -11
- package/libEs5/components/Personalization/dom-actions/index.js +0 -1
- package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +0 -4
- package/libEs5/components/Personalization/dom-actions/insertHtmlAfter.js +0 -6
- package/libEs5/components/Personalization/dom-actions/insertHtmlBefore.js +0 -6
- package/libEs5/components/Personalization/dom-actions/prependHtml.js +4 -12
- package/libEs5/components/Personalization/dom-actions/rearrangeChildren.js +1 -6
- package/libEs5/components/Personalization/dom-actions/remapCustomCodeOffers.js +2 -8
- package/libEs5/components/Personalization/dom-actions/remapHeadOffers.js +2 -16
- package/libEs5/components/Personalization/dom-actions/replaceHtml.js +0 -4
- package/libEs5/components/Personalization/dom-actions/scripts.js +13 -35
- package/libEs5/components/Personalization/dom-actions/setAttributes.js +0 -3
- package/libEs5/components/Personalization/dom-actions/setHtml.js +1 -6
- package/libEs5/components/Personalization/dom-actions/setStyles.js +12 -8
- package/libEs5/components/Personalization/dom-actions/setText.js +0 -2
- package/libEs5/components/Personalization/dom-actions/swapImage.js +6 -9
- package/libEs5/components/Personalization/event.js +2 -10
- package/libEs5/components/Personalization/flicker/index.js +17 -31
- package/libEs5/components/Personalization/handlers/createProcessDomAction.js +23 -15
- package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +11 -10
- package/libEs5/components/Personalization/handlers/createProcessPropositions.js +8 -53
- package/libEs5/components/Personalization/handlers/createProcessRedirect.js +10 -9
- package/libEs5/components/Personalization/handlers/injectCreateProposition.js +32 -40
- package/libEs5/components/Personalization/handlers/processDefaultContent.js +0 -2
- package/libEs5/components/Personalization/index.js +25 -55
- package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -4
- package/libEs5/components/Personalization/utils/createAsyncArray.js +0 -3
- package/libEs5/components/Personalization/utils/isAuthoringModeEnabled.js +0 -2
- package/libEs5/components/Personalization/utils/surfaceUtils.js +1 -27
- package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +2 -6
- package/libEs5/components/Privacy/computeConsentHash.js +11 -8
- package/libEs5/components/Privacy/createComponent.js +24 -26
- package/libEs5/components/Privacy/createConsentHashStore.js +14 -15
- package/libEs5/components/Privacy/createConsentRequest.js +1 -4
- package/libEs5/components/Privacy/createConsentRequestPayload.js +0 -5
- package/libEs5/components/Privacy/createStoredConsent.js +2 -6
- package/libEs5/components/Privacy/index.js +5 -15
- package/libEs5/components/Privacy/injectSendSetConsentRequest.js +7 -12
- package/libEs5/components/Privacy/parseConsentCookie.js +3 -13
- package/libEs5/components/Privacy/validateSetConsentOptions.js +0 -4
- package/libEs5/constants/apiVersion.js +0 -1
- package/libEs5/constants/browser.js +1 -1
- package/libEs5/constants/consentPurpose.js +1 -1
- package/libEs5/constants/consentStatus.js +1 -1
- package/libEs5/constants/cookieNameKey.js +1 -1
- package/libEs5/constants/cookieNamePrefix.js +0 -1
- package/libEs5/constants/coreCommands.js +1 -1
- package/libEs5/constants/debugQueryParam.js +0 -1
- package/libEs5/constants/domain.js +1 -1
- package/libEs5/constants/ecidNamespace.js +0 -1
- package/libEs5/constants/edgeBasePath.js +0 -1
- package/libEs5/constants/elementAttribute.js +1 -1
- package/libEs5/constants/highEntropyUserAgentClientHints.js +0 -1
- package/libEs5/constants/httpHeaderNames.js +1 -1
- package/libEs5/constants/httpStatusCode.js +1 -1
- package/libEs5/constants/identityMapAuthenticatedState.js +0 -1
- package/libEs5/constants/legacyCookies.js +1 -1
- package/libEs5/constants/libraryName.js +0 -1
- package/libEs5/constants/libraryVersion.js +1 -2
- package/libEs5/constants/namespace.js +0 -1
- package/libEs5/constants/pageWideScope.js +0 -1
- package/libEs5/constants/queryStringIdentityParam.js +0 -1
- package/libEs5/constants/shadowSeparator.js +0 -1
- package/libEs5/constants/tagName.js +1 -1
- package/libEs5/core/buildAndValidateConfig.js +21 -32
- package/libEs5/core/componentCreators.js +0 -12
- package/libEs5/core/config/createConfig.js +1 -3
- package/libEs5/core/config/createCoreConfigs.js +0 -7
- package/libEs5/core/consent/createConsent.js +1 -11
- package/libEs5/core/consent/createConsentStateMachine.js +1 -18
- package/libEs5/core/createComponentRegistry.js +4 -14
- package/libEs5/core/createCookieTransfer.js +9 -18
- package/libEs5/core/createEvent.js +25 -34
- package/libEs5/core/createEventManager.js +39 -53
- package/libEs5/core/createInstanceFunction.js +0 -2
- package/libEs5/core/createLifecycle.js +14 -14
- package/libEs5/core/createLogController.js +5 -17
- package/libEs5/core/createLogger.js +3 -17
- package/libEs5/core/edgeNetwork/handleRequestFailure.js +0 -3
- package/libEs5/core/edgeNetwork/injectApplyResponse.js +12 -18
- package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +4 -8
- package/libEs5/core/edgeNetwork/injectGetLocationHint.js +1 -11
- package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +6 -11
- package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +18 -26
- package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +11 -10
- package/libEs5/core/index.js +12 -54
- package/libEs5/core/initializeComponents.js +5 -10
- package/libEs5/core/injectCreateResponse.js +8 -16
- package/libEs5/core/injectExecuteCommand.js +8 -19
- package/libEs5/core/injectHandleError.js +4 -8
- package/libEs5/core/injectShouldTransferCookie.js +1 -5
- package/libEs5/core/network/getRequestRetryDelay.js +10 -17
- package/libEs5/core/network/injectSendNetworkRequest.js +20 -22
- package/libEs5/core/network/isRequestRetryable.js +5 -7
- package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +5 -8
- package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +0 -2
- package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +0 -5
- package/libEs5/core/validateCommandOptions.js +5 -9
- package/libEs5/index.js +7 -15
- package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +1 -5
- package/libEs5/utils/assign.js +0 -2
- package/libEs5/utils/assignIf.js +0 -4
- package/libEs5/utils/clone.js +0 -3
- package/libEs5/utils/cookieJar.js +0 -2
- package/libEs5/utils/crc32.js +0 -8
- package/libEs5/utils/createCallbackAggregator.js +0 -4
- package/libEs5/utils/createLoggingCookieJar.js +1 -6
- package/libEs5/utils/createMerger.js +0 -4
- package/libEs5/utils/createTaskQueue.js +0 -7
- package/libEs5/utils/deduplicateArray.js +0 -5
- package/libEs5/utils/deepAssign.js +2 -10
- package/libEs5/utils/defer.js +0 -3
- package/libEs5/utils/dom/appendNode.js +0 -2
- package/libEs5/utils/dom/awaitSelector.js +1 -29
- package/libEs5/utils/dom/createNode.js +1 -5
- package/libEs5/utils/dom/index.js +0 -8
- package/libEs5/utils/dom/isShadowSelector.js +0 -3
- package/libEs5/utils/dom/matchesSelector.js +2 -5
- package/libEs5/utils/dom/querySelectorAll.js +3 -6
- package/libEs5/utils/dom/removeNode.js +0 -4
- package/libEs5/utils/dom/selectNodes.js +0 -8
- package/libEs5/utils/dom/selectNodesWithShadow.js +6 -20
- package/libEs5/utils/endsWith.js +0 -3
- package/libEs5/utils/filterObject.js +13 -17
- package/libEs5/utils/find.js +0 -5
- package/libEs5/utils/fireImage.js +2 -7
- package/libEs5/utils/flatMap.js +0 -2
- package/libEs5/utils/getApexDomain.js +4 -8
- package/libEs5/utils/getBrowser.js +11 -11
- package/libEs5/utils/getLastArrayItems.js +0 -3
- package/libEs5/utils/getNamespacedCookieName.js +0 -4
- package/libEs5/utils/groupBy.js +0 -5
- package/libEs5/utils/includes.js +0 -3
- package/libEs5/utils/index.js +0 -56
- package/libEs5/utils/injectDoesIdentityCookieExist.js +0 -6
- package/libEs5/utils/injectFireReferrerHideableImage.js +21 -29
- package/libEs5/utils/injectStorage.js +1 -7
- package/libEs5/utils/intersection.js +0 -4
- package/libEs5/utils/isBlankString.js +0 -4
- package/libEs5/utils/isBoolean.js +0 -3
- package/libEs5/utils/isEmptyObject.js +0 -4
- package/libEs5/utils/isFunction.js +0 -3
- package/libEs5/utils/isInteger.js +0 -4
- package/libEs5/utils/isNamespacedCookieName.js +0 -5
- package/libEs5/utils/isNil.js +0 -3
- package/libEs5/utils/isNonEmptyArray.js +0 -3
- package/libEs5/utils/isNonEmptyString.js +0 -4
- package/libEs5/utils/isNumber.js +0 -3
- package/libEs5/utils/isObject.js +11 -5
- package/libEs5/utils/isString.js +0 -3
- package/libEs5/utils/isUnique.js +0 -7
- package/libEs5/utils/isValidRegExp.js +0 -3
- package/libEs5/utils/memoize.js +0 -5
- package/libEs5/utils/noop.js +0 -3
- package/libEs5/utils/padStart.js +0 -6
- package/libEs5/utils/prepareConfigOverridesForEdge.js +13 -21
- package/libEs5/utils/querystring.js +0 -2
- package/libEs5/utils/request/createAddIdentity.js +0 -2
- package/libEs5/utils/request/createDataCollectionRequest.js +1 -6
- package/libEs5/utils/request/createDataCollectionRequestPayload.js +0 -8
- package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +2 -11
- package/libEs5/utils/request/createHasIdentity.js +0 -2
- package/libEs5/utils/request/createRequest.js +3 -6
- package/libEs5/utils/request/createRequestParams.js +4 -12
- package/libEs5/utils/request/createRequestPayload.js +2 -7
- package/libEs5/utils/request/index.js +0 -8
- package/libEs5/utils/sanitizeOrgIdForCookieName.js +0 -2
- package/libEs5/utils/stackError.js +1 -6
- package/libEs5/utils/startsWith.js +0 -3
- package/libEs5/utils/stringToBoolean.js +0 -3
- package/libEs5/utils/toArray.js +0 -4
- package/libEs5/utils/toError.js +0 -3
- package/libEs5/utils/toISOStringLocal.js +3 -7
- package/libEs5/utils/toInteger.js +2 -8
- package/libEs5/utils/updateErrorMessage.js +3 -5
- package/libEs5/utils/uuid.js +0 -2
- package/libEs5/utils/validateConfigOverride.js +0 -3
- package/libEs5/utils/validateIdentityMap.js +0 -4
- package/libEs5/utils/validation/booleanValidator.js +0 -4
- package/libEs5/utils/validation/callbackValidator.js +0 -4
- package/libEs5/utils/validation/createAnyOfValidator.js +0 -5
- package/libEs5/utils/validation/createArrayOfValidator.js +0 -6
- package/libEs5/utils/validation/createDefaultValidator.js +0 -3
- package/libEs5/utils/validation/createDeprecatedValidator.js +13 -21
- package/libEs5/utils/validation/createLiteralValidator.js +0 -3
- package/libEs5/utils/validation/createMapOfValuesValidator.js +0 -9
- package/libEs5/utils/validation/createMinimumValidator.js +0 -3
- package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +0 -4
- package/libEs5/utils/validation/createNonEmptyValidator.js +0 -6
- package/libEs5/utils/validation/createObjectOfValidator.js +2 -10
- package/libEs5/utils/validation/createUniqueItemsValidator.js +0 -4
- package/libEs5/utils/validation/createUniqueValidator.js +0 -3
- package/libEs5/utils/validation/domainValidator.js +1 -4
- package/libEs5/utils/validation/index.js +76 -59
- package/libEs5/utils/validation/integerValidator.js +0 -4
- package/libEs5/utils/validation/numberValidator.js +0 -4
- package/libEs5/utils/validation/regexpValidator.js +0 -4
- package/libEs5/utils/validation/requiredValidator.js +0 -3
- package/libEs5/utils/validation/stringValidator.js +0 -4
- package/libEs5/utils/validation/utils.js +7 -21
- package/libEs5/utils/values.js +0 -3
- package/libEs6/baseCode/index.js +3 -8
- package/libEs6/components/ActivityCollector/attachClickActivityCollector.js +5 -6
- package/libEs6/components/ActivityCollector/configValidators.js +1 -0
- package/libEs6/components/ActivityCollector/createGetLinkDetails.js +1 -8
- package/libEs6/components/ActivityCollector/createLinkClick.js +0 -3
- package/libEs6/components/ActivityCollector/getLinkName.js +8 -23
- package/libEs6/components/ActivityCollector/getLinkRegion.js +2 -12
- package/libEs6/components/ActivityCollector/index.js +3 -6
- package/libEs6/components/ActivityCollector/utils.js +2 -29
- package/libEs6/components/Audiences/index.js +1 -2
- package/libEs6/components/Audiences/injectProcessDestinations.js +3 -6
- package/libEs6/components/Audiences/injectProcessResponse.js +1 -2
- package/libEs6/components/Context/createComponent.js +1 -2
- package/libEs6/components/Context/index.js +3 -3
- package/libEs6/components/Context/injectDevice.js +1 -16
- package/libEs6/components/Context/injectEnvironment.js +1 -4
- package/libEs6/components/Context/injectHighEntropyUserAgentHints.js +2 -5
- package/libEs6/components/Context/injectPlaceContext.js +2 -5
- package/libEs6/components/Context/injectTimestamp.js +1 -0
- package/libEs6/components/Context/injectWeb.js +1 -0
- package/libEs6/components/DataCollector/index.js +8 -25
- package/libEs6/components/DataCollector/validateApplyResponse.js +2 -2
- package/libEs6/components/DataCollector/validateUserEventOptions.js +7 -5
- package/libEs6/components/EventMerge/createComponent.js +1 -0
- package/libEs6/components/EventMerge/createEventMergeId.js +1 -0
- package/libEs6/components/EventMerge/index.js +1 -2
- package/libEs6/components/Identity/addEcidQueryToPayload.js +1 -0
- package/libEs6/components/Identity/addEcidToPayload.js +1 -0
- package/libEs6/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +1 -1
- package/libEs6/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +0 -4
- package/libEs6/components/Identity/configValidators.js +1 -0
- package/libEs6/components/Identity/constants/authState.js +1 -0
- package/libEs6/components/Identity/constants/defaultIdSyncTtlMinutes.js +1 -0
- package/libEs6/components/Identity/createComponent.js +5 -7
- package/libEs6/components/Identity/createLegacyIdentity.js +0 -10
- package/libEs6/components/Identity/getEcidFromResponse.js +1 -0
- package/libEs6/components/Identity/getIdentity/createGetIdentity.js +1 -0
- package/libEs6/components/Identity/getIdentity/createIdentityRequest.js +1 -3
- package/libEs6/components/Identity/getIdentity/createIdentityRequestPayload.js +1 -0
- package/libEs6/components/Identity/getIdentity/getIdentityOptionsValidator.js +1 -1
- package/libEs6/components/Identity/index.js +1 -2
- package/libEs6/components/Identity/injectAddLegacyEcidToPayload.js +1 -1
- package/libEs6/components/Identity/injectAddQueryStringIdentityToPayload.js +5 -7
- package/libEs6/components/Identity/injectAwaitIdentityCookie.js +6 -3
- package/libEs6/components/Identity/injectEnsureSingleIdentity.js +12 -11
- package/libEs6/components/Identity/injectHandleResponseForIdSyncs.js +1 -0
- package/libEs6/components/Identity/injectProcessIdSyncs.js +0 -4
- package/libEs6/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -0
- package/libEs6/components/Identity/visitorService/awaitVisitorOptIn.js +1 -0
- package/libEs6/components/Identity/visitorService/getVisitor.js +1 -0
- package/libEs6/components/Identity/visitorService/injectGetEcidFromVisitor.js +1 -2
- package/libEs6/components/LibraryInfo/index.js +3 -6
- package/libEs6/components/MachineLearning/index.js +1 -2
- package/libEs6/components/MachineLearning/processResponse.js +1 -0
- package/libEs6/components/Personalization/constants/eventType.js +1 -0
- package/libEs6/components/Personalization/constants/propositionEventType.js +1 -0
- package/libEs6/components/Personalization/constants/schema.js +1 -0
- package/libEs6/components/Personalization/constants/scopeType.js +4 -1
- package/libEs6/components/Personalization/constants/surface.js +1 -0
- package/libEs6/components/Personalization/createApplyPropositions.js +14 -14
- package/libEs6/components/Personalization/createClickStorage.js +19 -18
- package/libEs6/components/Personalization/createCollect.js +0 -5
- package/libEs6/components/Personalization/createComponent.js +23 -20
- package/libEs6/components/Personalization/createFetchDataHandler.js +13 -17
- package/libEs6/components/Personalization/createGetPageLocation.js +1 -0
- package/libEs6/components/Personalization/createOnClickHandler.js +6 -10
- package/libEs6/components/Personalization/createPersonalizationDetails.js +7 -28
- package/libEs6/components/Personalization/createSetTargetMigration.js +1 -1
- package/libEs6/components/Personalization/createViewCacheManager.js +11 -22
- package/libEs6/components/Personalization/createViewChangeHandler.js +1 -7
- package/libEs6/components/Personalization/dom-actions/action.js +1 -2
- package/libEs6/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -8
- package/libEs6/components/Personalization/dom-actions/appendHtml.js +1 -0
- package/libEs6/components/Personalization/dom-actions/clicks/collectClicks.js +30 -26
- package/libEs6/components/Personalization/dom-actions/createPreprocess.js +0 -1
- package/libEs6/components/Personalization/{utils/isPageWideScope.js → dom-actions/createRedirect.js} +8 -4
- package/libEs6/components/Personalization/dom-actions/dom/createFragment.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/getAttribute.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/getChildNodes.js +1 -2
- package/libEs6/components/Personalization/dom-actions/dom/getChildren.js +1 -2
- package/libEs6/components/Personalization/dom-actions/dom/getFirstChild.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/getNextSibling.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/getNonce.js +6 -5
- package/libEs6/components/Personalization/dom-actions/dom/getParent.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/helperForEq.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/index.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/insertAfter.js +1 -2
- package/libEs6/components/Personalization/dom-actions/dom/insertBefore.js +1 -2
- package/libEs6/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +7 -6
- package/libEs6/components/Personalization/dom-actions/dom/removeAttribute.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/selectNodesWithEq.js +6 -18
- package/libEs6/components/Personalization/dom-actions/dom/setAttribute.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/setStyle.js +1 -2
- package/libEs6/components/Personalization/dom-actions/images.js +1 -1
- package/libEs6/components/Personalization/dom-actions/index.js +1 -0
- package/libEs6/components/Personalization/dom-actions/initDomActionsModules.js +1 -0
- package/libEs6/components/Personalization/dom-actions/insertHtmlAfter.js +1 -0
- package/libEs6/components/Personalization/dom-actions/insertHtmlBefore.js +1 -0
- package/libEs6/components/Personalization/dom-actions/prependHtml.js +5 -5
- package/libEs6/components/Personalization/dom-actions/rearrangeChildren.js +1 -2
- package/libEs6/components/Personalization/dom-actions/remapCustomCodeOffers.js +0 -3
- package/libEs6/components/Personalization/dom-actions/remapHeadOffers.js +1 -7
- package/libEs6/components/Personalization/dom-actions/replaceHtml.js +1 -0
- package/libEs6/components/Personalization/dom-actions/scripts.js +5 -16
- package/libEs6/components/Personalization/dom-actions/setAttributes.js +1 -0
- package/libEs6/components/Personalization/dom-actions/setHtml.js +1 -2
- package/libEs6/components/Personalization/dom-actions/setStyles.js +1 -0
- package/libEs6/components/Personalization/dom-actions/setText.js +1 -0
- package/libEs6/components/Personalization/dom-actions/swapImage.js +7 -4
- package/libEs6/components/Personalization/event.js +4 -4
- package/libEs6/components/Personalization/flicker/index.js +9 -12
- package/libEs6/components/Personalization/handlers/createProcessDomAction.js +17 -9
- package/libEs6/components/Personalization/handlers/createProcessHtmlContent.js +8 -5
- package/libEs6/components/Personalization/handlers/createProcessPropositions.js +3 -30
- package/libEs6/components/Personalization/handlers/createProcessRedirect.js +7 -4
- package/libEs6/components/Personalization/handlers/injectCreateProposition.js +17 -36
- package/libEs6/components/Personalization/index.js +9 -13
- package/libEs6/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -0
- package/libEs6/components/Personalization/utils/createAsyncArray.js +0 -2
- package/libEs6/components/Personalization/utils/isAuthoringModeEnabled.js +1 -0
- package/libEs6/components/Personalization/utils/surfaceUtils.js +1 -20
- package/libEs6/components/Personalization/validateApplyPropositionsOptions.js +0 -1
- package/libEs6/components/Privacy/computeConsentHash.js +3 -4
- package/libEs6/components/Privacy/createComponent.js +5 -10
- package/libEs6/components/Privacy/createConsentHashStore.js +0 -10
- package/libEs6/components/Privacy/createConsentRequest.js +1 -3
- package/libEs6/components/Privacy/createConsentRequestPayload.js +1 -2
- package/libEs6/components/Privacy/createStoredConsent.js +1 -2
- package/libEs6/components/Privacy/index.js +1 -2
- package/libEs6/components/Privacy/injectSendSetConsentRequest.js +3 -3
- package/libEs6/constants/browser.js +1 -0
- package/libEs6/constants/consentPurpose.js +1 -0
- package/libEs6/constants/consentStatus.js +1 -0
- package/libEs6/constants/cookieNameKey.js +1 -0
- package/libEs6/constants/cookieNamePrefix.js +1 -0
- package/libEs6/constants/coreCommands.js +1 -0
- package/libEs6/constants/debugQueryParam.js +1 -0
- package/libEs6/constants/domain.js +1 -0
- package/libEs6/constants/ecidNamespace.js +1 -0
- package/libEs6/constants/elementAttribute.js +1 -0
- package/libEs6/constants/highEntropyUserAgentClientHints.js +1 -0
- package/libEs6/constants/httpHeaderNames.js +1 -0
- package/libEs6/constants/httpStatusCode.js +1 -0
- package/libEs6/constants/legacyCookies.js +1 -0
- package/libEs6/constants/libraryName.js +1 -0
- package/libEs6/constants/libraryVersion.js +3 -1
- package/libEs6/constants/namespace.js +1 -0
- package/libEs6/constants/pageWideScope.js +1 -0
- package/libEs6/constants/queryStringIdentityParam.js +1 -0
- package/libEs6/constants/shadowSeparator.js +1 -0
- package/libEs6/constants/tagName.js +1 -0
- package/libEs6/core/buildAndValidateConfig.js +4 -10
- package/libEs6/core/componentCreators.js +3 -3
- package/libEs6/core/config/createConfig.js +1 -2
- package/libEs6/core/config/createCoreConfigs.js +1 -0
- package/libEs6/core/consent/createConsent.js +1 -9
- package/libEs6/core/consent/createConsentStateMachine.js +1 -20
- package/libEs6/core/createComponentRegistry.js +3 -15
- package/libEs6/core/createCookieTransfer.js +6 -12
- package/libEs6/core/createEvent.js +15 -37
- package/libEs6/core/createEventManager.js +14 -27
- package/libEs6/core/createInstanceFunction.js +1 -0
- package/libEs6/core/createLifecycle.js +14 -10
- package/libEs6/core/createLogController.js +1 -7
- package/libEs6/core/createLogger.js +1 -17
- package/libEs6/core/edgeNetwork/handleRequestFailure.js +0 -1
- package/libEs6/core/edgeNetwork/injectApplyResponse.js +2 -3
- package/libEs6/core/edgeNetwork/injectExtractEdgeInfo.js +5 -6
- package/libEs6/core/edgeNetwork/injectGetLocationHint.js +1 -5
- package/libEs6/core/edgeNetwork/injectProcessWarningsAndErrors.js +1 -2
- package/libEs6/core/edgeNetwork/injectSendEdgeNetworkRequest.js +5 -5
- package/libEs6/core/index.js +4 -10
- package/libEs6/core/initializeComponents.js +3 -4
- package/libEs6/core/injectCreateResponse.js +3 -7
- package/libEs6/core/injectExecuteCommand.js +5 -11
- package/libEs6/core/injectHandleError.js +4 -3
- package/libEs6/core/injectShouldTransferCookie.js +1 -0
- package/libEs6/core/network/getRequestRetryDelay.js +11 -13
- package/libEs6/core/network/injectSendNetworkRequest.js +3 -7
- package/libEs6/core/network/isRequestRetryable.js +4 -2
- package/libEs6/core/network/requestMethods/injectSendBeaconRequest.js +4 -6
- package/libEs6/core/network/requestMethods/injectSendFetchRequest.js +1 -2
- package/libEs6/core/network/requestMethods/injectSendXhrRequest.js +1 -5
- package/libEs6/core/validateCommandOptions.js +1 -2
- package/libEs6/index.js +5 -3
- package/libEs6/utils/areThirdPartyCookiesSupportedByDefault.js +4 -2
- package/libEs6/utils/assign.js +1 -0
- package/libEs6/utils/assignIf.js +1 -1
- package/libEs6/utils/cookieJar.js +1 -0
- package/libEs6/utils/crc32.js +0 -7
- package/libEs6/utils/createCallbackAggregator.js +0 -2
- package/libEs6/utils/createLoggingCookieJar.js +3 -3
- package/libEs6/utils/createMerger.js +2 -1
- package/libEs6/utils/createTaskQueue.js +0 -4
- package/libEs6/utils/deduplicateArray.js +0 -3
- package/libEs6/utils/deepAssign.js +2 -5
- package/libEs6/utils/dom/appendNode.js +1 -0
- package/libEs6/utils/dom/awaitSelector.js +1 -14
- package/libEs6/utils/dom/createNode.js +1 -2
- package/libEs6/utils/dom/index.js +1 -0
- package/libEs6/utils/dom/isShadowSelector.js +1 -0
- package/libEs6/utils/dom/matchesSelector.js +2 -2
- package/libEs6/utils/dom/querySelectorAll.js +3 -2
- package/libEs6/utils/dom/removeNode.js +1 -2
- package/libEs6/utils/dom/selectNodes.js +2 -2
- package/libEs6/utils/dom/selectNodesWithShadow.js +6 -16
- package/libEs6/utils/filterObject.js +8 -12
- package/libEs6/utils/find.js +0 -2
- package/libEs6/utils/fireImage.js +2 -1
- package/libEs6/utils/getApexDomain.js +4 -4
- package/libEs6/utils/getBrowser.js +1 -7
- package/libEs6/utils/getNamespacedCookieName.js +1 -0
- package/libEs6/utils/groupBy.js +0 -2
- package/libEs6/utils/index.js +1 -0
- package/libEs6/utils/injectDoesIdentityCookieExist.js +1 -1
- package/libEs6/utils/injectFireReferrerHideableImage.js +1 -4
- package/libEs6/utils/injectStorage.js +1 -5
- package/libEs6/utils/intersection.js +2 -1
- package/libEs6/utils/isBlankString.js +2 -1
- package/libEs6/utils/isEmptyObject.js +2 -1
- package/libEs6/utils/isInteger.js +2 -1
- package/libEs6/utils/isNamespacedCookieName.js +2 -1
- package/libEs6/utils/isNonEmptyString.js +2 -1
- package/libEs6/utils/isObject.js +2 -1
- package/libEs6/utils/isUnique.js +0 -5
- package/libEs6/utils/memoize.js +0 -2
- package/libEs6/utils/padStart.js +1 -4
- package/libEs6/utils/prepareConfigOverridesForEdge.js +5 -12
- package/libEs6/utils/querystring.js +1 -0
- package/libEs6/utils/request/createDataCollectionRequest.js +1 -3
- package/libEs6/utils/request/createDataCollectionRequestPayload.js +0 -3
- package/libEs6/utils/request/createGetAssuranceValidationTokenParams.js +1 -6
- package/libEs6/utils/request/createHasIdentity.js +1 -0
- package/libEs6/utils/request/createRequest.js +3 -9
- package/libEs6/utils/request/createRequestParams.js +0 -3
- package/libEs6/utils/request/createRequestPayload.js +4 -4
- package/libEs6/utils/request/index.js +1 -0
- package/libEs6/utils/sanitizeOrgIdForCookieName.js +1 -0
- package/libEs6/utils/stackError.js +2 -1
- package/libEs6/utils/toArray.js +1 -2
- package/libEs6/utils/toISOStringLocal.js +4 -3
- package/libEs6/utils/toInteger.js +4 -4
- package/libEs6/utils/updateErrorMessage.js +3 -1
- package/libEs6/utils/uuid.js +1 -0
- package/libEs6/utils/validateConfigOverride.js +1 -0
- package/libEs6/utils/validateIdentityMap.js +1 -0
- package/libEs6/utils/validation/booleanValidator.js +1 -0
- package/libEs6/utils/validation/createArrayOfValidator.js +0 -2
- package/libEs6/utils/validation/createDefaultValidator.js +1 -1
- package/libEs6/utils/validation/createDeprecatedValidator.js +0 -4
- package/libEs6/utils/validation/createMapOfValuesValidator.js +1 -4
- package/libEs6/utils/validation/createNoUnknownFieldsValidator.js +1 -2
- package/libEs6/utils/validation/createNonEmptyValidator.js +1 -1
- package/libEs6/utils/validation/createObjectOfValidator.js +3 -5
- package/libEs6/utils/validation/createUniqueValidator.js +1 -0
- package/libEs6/utils/validation/index.js +14 -32
- package/libEs6/utils/validation/integerValidator.js +1 -0
- package/libEs6/utils/validation/numberValidator.js +1 -0
- package/libEs6/utils/validation/regexpValidator.js +1 -0
- package/libEs6/utils/validation/requiredValidator.js +1 -1
- package/libEs6/utils/validation/utils.js +8 -12
- package/package.json +3 -3
- package/libEs5/components/Personalization/createPendingNotificationsHandler.js +0 -29
- package/libEs6/components/Personalization/createPendingNotificationsHandler.js +0 -22
|
@@ -9,12 +9,11 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
-
import { intersection, stackError } from "../utils";
|
|
13
12
|
|
|
13
|
+
import { intersection, stackError } from "../utils";
|
|
14
14
|
const wrapForErrorHandling = (fn, stackMessage) => {
|
|
15
15
|
return (...args) => {
|
|
16
16
|
let result;
|
|
17
|
-
|
|
18
17
|
try {
|
|
19
18
|
result = fn(...args);
|
|
20
19
|
} catch (error) {
|
|
@@ -23,7 +22,6 @@ const wrapForErrorHandling = (fn, stackMessage) => {
|
|
|
23
22
|
message: stackMessage
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
|
-
|
|
27
25
|
if (result instanceof Promise) {
|
|
28
26
|
result = result.catch(error => {
|
|
29
27
|
throw stackError({
|
|
@@ -32,24 +30,20 @@ const wrapForErrorHandling = (fn, stackMessage) => {
|
|
|
32
30
|
});
|
|
33
31
|
});
|
|
34
32
|
}
|
|
35
|
-
|
|
36
33
|
return result;
|
|
37
34
|
};
|
|
38
|
-
};
|
|
39
|
-
|
|
35
|
+
};
|
|
40
36
|
|
|
37
|
+
// TO-DOCUMENT: All public commands and their signatures.
|
|
41
38
|
export default (() => {
|
|
42
39
|
const componentsByNamespace = {};
|
|
43
40
|
const commandsByName = {};
|
|
44
41
|
const lifecycleCallbacksByName = {};
|
|
45
|
-
|
|
46
42
|
const registerComponentCommands = (namespace, componentCommandsByName = {}) => {
|
|
47
43
|
const conflictingCommandNames = intersection(Object.keys(commandsByName), Object.keys(componentCommandsByName));
|
|
48
|
-
|
|
49
44
|
if (conflictingCommandNames.length) {
|
|
50
45
|
throw new Error(`[ComponentRegistry] Could not register ${namespace} ` + `because it has existing command(s): ${conflictingCommandNames.join(",")}`);
|
|
51
46
|
}
|
|
52
|
-
|
|
53
47
|
Object.keys(componentCommandsByName).forEach(commandName => {
|
|
54
48
|
const command = componentCommandsByName[commandName];
|
|
55
49
|
command.commandName = commandName;
|
|
@@ -57,14 +51,12 @@ export default (() => {
|
|
|
57
51
|
commandsByName[commandName] = command;
|
|
58
52
|
});
|
|
59
53
|
};
|
|
60
|
-
|
|
61
54
|
const registerLifecycleCallbacks = (namespace, componentLifecycleCallbacksByName = {}) => {
|
|
62
55
|
Object.keys(componentLifecycleCallbacksByName).forEach(hookName => {
|
|
63
56
|
lifecycleCallbacksByName[hookName] = lifecycleCallbacksByName[hookName] || [];
|
|
64
57
|
lifecycleCallbacksByName[hookName].push(wrapForErrorHandling(componentLifecycleCallbacksByName[hookName], `[${namespace}] An error occurred while executing the ${hookName} lifecycle hook.`));
|
|
65
58
|
});
|
|
66
59
|
};
|
|
67
|
-
|
|
68
60
|
return {
|
|
69
61
|
register(namespace, component) {
|
|
70
62
|
const {
|
|
@@ -75,18 +67,14 @@ export default (() => {
|
|
|
75
67
|
registerLifecycleCallbacks(namespace, lifecycle);
|
|
76
68
|
componentsByNamespace[namespace] = component;
|
|
77
69
|
},
|
|
78
|
-
|
|
79
70
|
getCommand(commandName) {
|
|
80
71
|
return commandsByName[commandName];
|
|
81
72
|
},
|
|
82
|
-
|
|
83
73
|
getCommandNames() {
|
|
84
74
|
return Object.keys(commandsByName);
|
|
85
75
|
},
|
|
86
|
-
|
|
87
76
|
getLifecycleCallbacks(hookName) {
|
|
88
77
|
return lifecycleCallbacksByName[hookName] || [];
|
|
89
78
|
}
|
|
90
|
-
|
|
91
79
|
};
|
|
92
80
|
});
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { endsWith } from "../utils";
|
|
13
14
|
const STATE_STORE_HANDLE_TYPE = "state:store";
|
|
14
15
|
export default (({
|
|
@@ -28,10 +29,11 @@ export default (({
|
|
|
28
29
|
const state = {
|
|
29
30
|
domain: apexDomain,
|
|
30
31
|
cookiesEnabled: true
|
|
31
|
-
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// If the endpoint is first-party, there's no need to transfer cookies
|
|
32
35
|
// to the payload since they'll be automatically passed through cookie
|
|
33
36
|
// headers.
|
|
34
|
-
|
|
35
37
|
if (!isEndpointFirstParty) {
|
|
36
38
|
const cookies = cookieJar.get();
|
|
37
39
|
const entries = Object.keys(cookies).filter(shouldTransferCookie).map(qualifyingCookieName => {
|
|
@@ -40,15 +42,12 @@ export default (({
|
|
|
40
42
|
value: cookies[qualifyingCookieName]
|
|
41
43
|
};
|
|
42
44
|
});
|
|
43
|
-
|
|
44
45
|
if (entries.length) {
|
|
45
46
|
state.entries = entries;
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
|
-
|
|
49
49
|
payload.mergeState(state);
|
|
50
50
|
},
|
|
51
|
-
|
|
52
51
|
/**
|
|
53
52
|
* When receiving from a third-party endpoint, the endpoint won't be able to
|
|
54
53
|
* write first-party cookies, therefore we write first-party cookies
|
|
@@ -60,25 +59,20 @@ export default (({
|
|
|
60
59
|
domain: apexDomain
|
|
61
60
|
};
|
|
62
61
|
const sameSite = stateItem.attrs && stateItem.attrs.SameSite && stateItem.attrs.SameSite.toLowerCase();
|
|
63
|
-
|
|
64
62
|
if (stateItem.maxAge !== undefined) {
|
|
65
63
|
// cookieJar expects "expires" as a date object
|
|
66
64
|
options.expires = new Date(dateProvider().getTime() + stateItem.maxAge * 1000);
|
|
67
65
|
}
|
|
68
|
-
|
|
69
66
|
if (sameSite !== undefined) {
|
|
70
67
|
options.sameSite = sameSite;
|
|
71
|
-
}
|
|
68
|
+
}
|
|
69
|
+
// When sameSite is set to none, the secure flag must be set.
|
|
72
70
|
// Experience edge will not set the secure flag in these cases.
|
|
73
|
-
|
|
74
|
-
|
|
75
71
|
if (sameSite === "none") {
|
|
76
72
|
options.secure = true;
|
|
77
73
|
}
|
|
78
|
-
|
|
79
74
|
cookieJar.set(stateItem.key, stateItem.value, options);
|
|
80
75
|
});
|
|
81
76
|
}
|
|
82
|
-
|
|
83
77
|
};
|
|
84
78
|
});
|
|
@@ -9,16 +9,19 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
-
import { isEmptyObject, deepAssign, isNonEmptyArray, deduplicateArray } from "../utils";
|
|
13
12
|
|
|
13
|
+
import { isEmptyObject, deepAssign, isNonEmptyArray, deduplicateArray } from "../utils";
|
|
14
14
|
const getXdmPropositions = xdm => {
|
|
15
|
-
return xdm &&
|
|
16
|
-
|
|
17
|
-
xdm._experience
|
|
18
|
-
|
|
15
|
+
return xdm &&
|
|
16
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
17
|
+
xdm._experience &&
|
|
18
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
19
|
+
xdm._experience.decisioning &&
|
|
20
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
21
|
+
isNonEmptyArray(xdm._experience.decisioning.propositions) ?
|
|
22
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
19
23
|
xdm._experience.decisioning.propositions : [];
|
|
20
24
|
};
|
|
21
|
-
|
|
22
25
|
export default (() => {
|
|
23
26
|
const content = {};
|
|
24
27
|
let userXdm;
|
|
@@ -26,86 +29,71 @@ export default (() => {
|
|
|
26
29
|
let documentMayUnload = false;
|
|
27
30
|
let isFinalized = false;
|
|
28
31
|
let shouldSendEvent = true;
|
|
29
|
-
|
|
30
32
|
const throwIfEventFinalized = methodName => {
|
|
31
33
|
if (isFinalized) {
|
|
32
34
|
throw new Error(`${methodName} cannot be called after event is finalized.`);
|
|
33
35
|
}
|
|
34
36
|
};
|
|
35
|
-
|
|
36
37
|
const event = {
|
|
37
38
|
setUserXdm(value) {
|
|
38
39
|
throwIfEventFinalized("setUserXdm");
|
|
39
40
|
userXdm = value;
|
|
40
41
|
},
|
|
41
|
-
|
|
42
42
|
setUserData(value) {
|
|
43
43
|
throwIfEventFinalized("setUserData");
|
|
44
44
|
userData = value;
|
|
45
45
|
},
|
|
46
|
-
|
|
47
46
|
mergeXdm(xdm) {
|
|
48
47
|
throwIfEventFinalized("mergeXdm");
|
|
49
|
-
|
|
50
48
|
if (xdm) {
|
|
51
49
|
deepAssign(content, {
|
|
52
50
|
xdm
|
|
53
51
|
});
|
|
54
52
|
}
|
|
55
53
|
},
|
|
56
|
-
|
|
57
54
|
mergeMeta(meta) {
|
|
58
55
|
throwIfEventFinalized("mergeMeta");
|
|
59
|
-
|
|
60
56
|
if (meta) {
|
|
61
57
|
deepAssign(content, {
|
|
62
58
|
meta
|
|
63
59
|
});
|
|
64
60
|
}
|
|
65
61
|
},
|
|
66
|
-
|
|
67
62
|
mergeQuery(query) {
|
|
68
63
|
throwIfEventFinalized("mergeQuery");
|
|
69
|
-
|
|
70
64
|
if (query) {
|
|
71
65
|
deepAssign(content, {
|
|
72
66
|
query
|
|
73
67
|
});
|
|
74
68
|
}
|
|
75
69
|
},
|
|
76
|
-
|
|
77
70
|
documentMayUnload() {
|
|
78
71
|
documentMayUnload = true;
|
|
79
72
|
},
|
|
80
|
-
|
|
81
73
|
finalize(onBeforeEventSend) {
|
|
82
74
|
if (isFinalized) {
|
|
83
75
|
return;
|
|
84
76
|
}
|
|
85
|
-
|
|
86
77
|
const newPropositions = deduplicateArray([...getXdmPropositions(userXdm), ...getXdmPropositions(content.xdm)], (a, b) => a === b || a.id && b.id && a.id === b.id && a.scope && b.scope && a.scope === b.scope);
|
|
87
|
-
|
|
88
78
|
if (userXdm) {
|
|
89
79
|
this.mergeXdm(userXdm);
|
|
90
80
|
}
|
|
91
|
-
|
|
92
81
|
if (newPropositions.length > 0) {
|
|
93
82
|
// eslint-disable-next-line no-underscore-dangle
|
|
94
83
|
content.xdm._experience.decisioning.propositions = newPropositions;
|
|
95
84
|
}
|
|
96
|
-
|
|
97
85
|
if (userData) {
|
|
98
86
|
content.data = userData;
|
|
99
|
-
}
|
|
100
|
-
|
|
87
|
+
}
|
|
101
88
|
|
|
89
|
+
// the event should already be considered finalized in case onBeforeEventSend throws an error
|
|
102
90
|
isFinalized = true;
|
|
103
|
-
|
|
104
91
|
if (onBeforeEventSend) {
|
|
105
92
|
// assume that the onBeforeEventSend callback will fail (in-case of an error)
|
|
106
|
-
shouldSendEvent = false;
|
|
107
|
-
// on the object passed to the callback
|
|
93
|
+
shouldSendEvent = false;
|
|
108
94
|
|
|
95
|
+
// this allows the user to replace the xdm and data properties
|
|
96
|
+
// on the object passed to the callback
|
|
109
97
|
const tempContent = {
|
|
110
98
|
xdm: content.xdm || {},
|
|
111
99
|
data: content.data || {}
|
|
@@ -114,45 +102,35 @@ export default (() => {
|
|
|
114
102
|
shouldSendEvent = result !== false;
|
|
115
103
|
content.xdm = tempContent.xdm || {};
|
|
116
104
|
content.data = tempContent.data || {};
|
|
117
|
-
|
|
118
105
|
if (isEmptyObject(content.xdm)) {
|
|
119
106
|
delete content.xdm;
|
|
120
107
|
}
|
|
121
|
-
|
|
122
108
|
if (isEmptyObject(content.data)) {
|
|
123
109
|
delete content.data;
|
|
124
110
|
}
|
|
125
111
|
}
|
|
126
112
|
},
|
|
127
|
-
|
|
128
113
|
getDocumentMayUnload() {
|
|
129
114
|
return documentMayUnload;
|
|
130
115
|
},
|
|
131
|
-
|
|
132
116
|
isEmpty() {
|
|
133
117
|
return isEmptyObject(content) && (!userXdm || isEmptyObject(userXdm)) && (!userData || isEmptyObject(userData));
|
|
134
118
|
},
|
|
135
|
-
|
|
136
119
|
shouldSend() {
|
|
137
120
|
return shouldSendEvent;
|
|
138
121
|
},
|
|
139
|
-
|
|
140
122
|
getViewName() {
|
|
141
|
-
if (!userXdm || !userXdm.web || !userXdm.web.webPageDetails
|
|
123
|
+
if (!userXdm || !userXdm.web || !userXdm.web.webPageDetails) {
|
|
142
124
|
return undefined;
|
|
143
125
|
}
|
|
144
|
-
|
|
145
126
|
return userXdm.web.webPageDetails.viewName;
|
|
146
127
|
},
|
|
147
|
-
|
|
148
128
|
toJSON() {
|
|
149
129
|
if (!isFinalized) {
|
|
150
130
|
throw new Error("toJSON called before finalize");
|
|
151
131
|
}
|
|
152
|
-
|
|
153
132
|
return content;
|
|
154
133
|
}
|
|
155
|
-
|
|
156
134
|
};
|
|
157
135
|
return event;
|
|
158
136
|
});
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import PAGE_WIDE_SCOPE from "../constants/pageWideScope";
|
|
13
14
|
import { createCallbackAggregator, noop } from "../utils";
|
|
14
15
|
import { createRequestParams } from "../utils/request";
|
|
@@ -30,21 +31,14 @@ export default (({
|
|
|
30
31
|
} = config;
|
|
31
32
|
return {
|
|
32
33
|
createEvent,
|
|
33
|
-
|
|
34
34
|
/**
|
|
35
|
-
* Sends an event. This includes running the event and payload through
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* @param {Object} event This will be JSON stringified and used inside
|
|
39
|
-
*
|
|
40
|
-
* @param {Object} [options]
|
|
41
|
-
*
|
|
42
|
-
* @param {Array} [options.decisionScopes] Note: this option will soon
|
|
43
|
-
* be deprecated, please use *personalization.decisionScopes* instead
|
|
44
|
-
* @param {Object} [options.personalization]
|
|
45
|
-
* @param {Object} [options.serverState]
|
|
46
|
-
* This will be passed to components
|
|
47
|
-
* so they can take appropriate action.
|
|
35
|
+
* Sends an event. This includes running the event and payload through the
|
|
36
|
+
* appropriate lifecycle hooks, sending the request to the server, and
|
|
37
|
+
* handling the response.
|
|
38
|
+
* @param {Object} event This will be JSON stringified and used inside the
|
|
39
|
+
* request payload.
|
|
40
|
+
* @param {Object} [options] Options to pass on to the onBeforeEvent
|
|
41
|
+
* lifecycle method
|
|
48
42
|
* @param {Object} [options.edgeConfigOverrides] Settings that take
|
|
49
43
|
* precedence over the global datastream configuration, including which
|
|
50
44
|
* datastream to use.
|
|
@@ -52,10 +46,8 @@ export default (({
|
|
|
52
46
|
*/
|
|
53
47
|
sendEvent(event, options = {}) {
|
|
54
48
|
const {
|
|
55
|
-
renderDecisions = false,
|
|
56
|
-
decisionScopes,
|
|
57
49
|
edgeConfigOverrides: localConfigOverrides,
|
|
58
|
-
|
|
50
|
+
...otherOptions
|
|
59
51
|
} = options;
|
|
60
52
|
const requestParams = createRequestParams({
|
|
61
53
|
payload: createDataCollectionRequestPayload(),
|
|
@@ -66,10 +58,8 @@ export default (({
|
|
|
66
58
|
const onResponseCallbackAggregator = createCallbackAggregator();
|
|
67
59
|
const onRequestFailureCallbackAggregator = createCallbackAggregator();
|
|
68
60
|
return lifecycle.onBeforeEvent({
|
|
61
|
+
...otherOptions,
|
|
69
62
|
event,
|
|
70
|
-
renderDecisions,
|
|
71
|
-
decisionScopes,
|
|
72
|
-
personalization,
|
|
73
63
|
onResponse: onResponseCallbackAggregator.add,
|
|
74
64
|
onRequestFailure: onRequestFailureCallbackAggregator.add
|
|
75
65
|
}).then(() => {
|
|
@@ -83,25 +73,24 @@ export default (({
|
|
|
83
73
|
const throwError = () => {
|
|
84
74
|
throw error;
|
|
85
75
|
};
|
|
86
|
-
|
|
87
76
|
onRequestFailureCallbackAggregator.add(lifecycle.onRequestFailure);
|
|
88
77
|
return onRequestFailureCallbackAggregator.call({
|
|
89
78
|
error
|
|
90
79
|
}).then(throwError, throwError);
|
|
91
|
-
}
|
|
92
|
-
|
|
80
|
+
}
|
|
93
81
|
|
|
82
|
+
// if the callback returns false, the event should not be sent
|
|
94
83
|
if (!event.shouldSend()) {
|
|
95
84
|
onRequestFailureCallbackAggregator.add(lifecycle.onRequestFailure);
|
|
96
85
|
logger.info(EVENT_CANCELLATION_MESSAGE);
|
|
97
86
|
const error = new Error(EVENT_CANCELLATION_MESSAGE);
|
|
98
87
|
return onRequestFailureCallbackAggregator.call({
|
|
99
88
|
error
|
|
100
|
-
}).then(() => {
|
|
89
|
+
}).then(() => {
|
|
90
|
+
// Ensure the promise gets resolved with undefined instead
|
|
101
91
|
// of an array of return values from the callbacks.
|
|
102
92
|
});
|
|
103
93
|
}
|
|
104
|
-
|
|
105
94
|
return sendEdgeNetworkRequest({
|
|
106
95
|
request,
|
|
107
96
|
runOnResponseCallbacks: onResponseCallbackAggregator.call,
|
|
@@ -109,7 +98,6 @@ export default (({
|
|
|
109
98
|
});
|
|
110
99
|
});
|
|
111
100
|
},
|
|
112
|
-
|
|
113
101
|
applyResponse(event, options = {}) {
|
|
114
102
|
const {
|
|
115
103
|
renderDecisions = false,
|
|
@@ -141,6 +129,5 @@ export default (({
|
|
|
141
129
|
});
|
|
142
130
|
});
|
|
143
131
|
}
|
|
144
|
-
|
|
145
132
|
};
|
|
146
133
|
});
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
export default (executeCommand => {
|
|
13
14
|
return args => {
|
|
14
15
|
// Would use destructuring, but destructuring doesn't work on IE
|
|
@@ -9,21 +9,27 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
// TO-DOCUMENT: Lifecycle hooks and their params.
|
|
13
|
-
const hookNames = [
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
14
|
+
const hookNames = [
|
|
15
|
+
// Called after all components have been registered.
|
|
16
|
+
"onComponentsRegistered",
|
|
17
|
+
// Called before an event is sent on a data collection request
|
|
18
|
+
"onBeforeEvent",
|
|
19
|
+
// Called before each request is made to the edge.
|
|
20
|
+
"onBeforeRequest",
|
|
21
|
+
// Called after each response is returned from the edge with a successful
|
|
17
22
|
// status code
|
|
18
|
-
"onResponse",
|
|
23
|
+
"onResponse",
|
|
24
|
+
// Called after a network request to the edge fails. Either the request
|
|
19
25
|
// didn't make it to the edge, didn't make it to Konductor, or Konductor
|
|
20
26
|
// failed to return a regularly-structured response. (In this case { error }
|
|
21
27
|
// is passed as the parameter)
|
|
22
28
|
// Also called when the respone returns a 400 or 500 error. (In this case
|
|
23
29
|
// { response } is passed as the parameter)
|
|
24
|
-
"onRequestFailure",
|
|
30
|
+
"onRequestFailure",
|
|
31
|
+
// A user clicked on an element.
|
|
25
32
|
"onClick"];
|
|
26
|
-
|
|
27
33
|
const createHook = (componentRegistry, hookName) => {
|
|
28
34
|
return (...args) => {
|
|
29
35
|
return Promise.all(componentRegistry.getLifecycleCallbacks(hookName).map(callback => {
|
|
@@ -33,6 +39,7 @@ const createHook = (componentRegistry, hookName) => {
|
|
|
33
39
|
}));
|
|
34
40
|
};
|
|
35
41
|
};
|
|
42
|
+
|
|
36
43
|
/**
|
|
37
44
|
* This ensures that if a component's lifecycle method X
|
|
38
45
|
* attempts to execute lifecycle method Y, that all X methods on all components
|
|
@@ -40,8 +47,6 @@ const createHook = (componentRegistry, hookName) => {
|
|
|
40
47
|
* this by kicking the call to the Y method to the next JavaScript tick.
|
|
41
48
|
* @returns {function}
|
|
42
49
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
50
|
const guardHook = fn => {
|
|
46
51
|
return (...args) => {
|
|
47
52
|
return Promise.resolve().then(() => {
|
|
@@ -49,7 +54,6 @@ const guardHook = fn => {
|
|
|
49
54
|
});
|
|
50
55
|
};
|
|
51
56
|
};
|
|
52
|
-
|
|
53
57
|
export default (componentRegistry => {
|
|
54
58
|
return hookNames.reduce((memo, hookName) => {
|
|
55
59
|
memo[hookName] = guardHook(createHook(componentRegistry, hookName));
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { queryString, stringToBoolean } from "../utils";
|
|
13
14
|
import debugQueryParam from "../constants/debugQueryParam";
|
|
14
15
|
export default (({
|
|
@@ -24,29 +25,24 @@ export default (({
|
|
|
24
25
|
const debugSessionValue = storage.session.getItem("debug");
|
|
25
26
|
let debugEnabled = debugSessionValue === "true";
|
|
26
27
|
let debugEnabledWritableFromConfig = debugSessionValue === null;
|
|
27
|
-
|
|
28
28
|
const getDebugEnabled = () => debugEnabled;
|
|
29
|
-
|
|
30
29
|
const setDebugEnabled = (value, {
|
|
31
30
|
fromConfig
|
|
32
31
|
}) => {
|
|
33
32
|
if (!fromConfig || debugEnabledWritableFromConfig) {
|
|
34
33
|
debugEnabled = value;
|
|
35
34
|
}
|
|
36
|
-
|
|
37
35
|
if (!fromConfig) {
|
|
38
36
|
// Web storage only allows strings, so we explicitly convert to string.
|
|
39
37
|
storage.session.setItem("debug", value.toString());
|
|
40
38
|
debugEnabledWritableFromConfig = false;
|
|
41
39
|
}
|
|
42
40
|
};
|
|
43
|
-
|
|
44
41
|
if (parsedQueryString[debugQueryParam] !== undefined) {
|
|
45
42
|
setDebugEnabled(stringToBoolean(parsedQueryString[debugQueryParam]), {
|
|
46
43
|
fromConfig: false
|
|
47
44
|
});
|
|
48
45
|
}
|
|
49
|
-
|
|
50
46
|
return {
|
|
51
47
|
setDebugEnabled,
|
|
52
48
|
logger: createLogger({
|
|
@@ -57,7 +53,6 @@ export default (({
|
|
|
57
53
|
getMonitors,
|
|
58
54
|
console
|
|
59
55
|
}),
|
|
60
|
-
|
|
61
56
|
createComponentLogger(componentName) {
|
|
62
57
|
return createLogger({
|
|
63
58
|
getDebugEnabled,
|
|
@@ -69,6 +64,5 @@ export default (({
|
|
|
69
64
|
console
|
|
70
65
|
});
|
|
71
66
|
}
|
|
72
|
-
|
|
73
67
|
};
|
|
74
68
|
});
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { assign } from "../utils";
|
|
13
14
|
export default (({
|
|
14
15
|
getDebugEnabled,
|
|
@@ -17,14 +18,11 @@ export default (({
|
|
|
17
18
|
context
|
|
18
19
|
}) => {
|
|
19
20
|
let prefix = `[${context.instanceName}]`;
|
|
20
|
-
|
|
21
21
|
if (context.componentName) {
|
|
22
22
|
prefix += ` [${context.componentName}]`;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
24
|
const notifyMonitors = (method, data) => {
|
|
26
25
|
const monitors = getMonitors();
|
|
27
|
-
|
|
28
26
|
if (monitors.length > 0) {
|
|
29
27
|
const dataWithContext = assign({}, context, data);
|
|
30
28
|
monitors.forEach(monitor => {
|
|
@@ -34,64 +32,52 @@ export default (({
|
|
|
34
32
|
});
|
|
35
33
|
}
|
|
36
34
|
};
|
|
37
|
-
|
|
38
35
|
const log = (level, ...rest) => {
|
|
39
36
|
notifyMonitors("onBeforeLog", {
|
|
40
37
|
level,
|
|
41
38
|
arguments: rest
|
|
42
39
|
});
|
|
43
|
-
|
|
44
40
|
if (getDebugEnabled()) {
|
|
45
41
|
console[level](prefix, ...rest);
|
|
46
42
|
}
|
|
47
43
|
};
|
|
48
|
-
|
|
49
44
|
return {
|
|
50
45
|
get enabled() {
|
|
51
46
|
return getMonitors().length > 0 || getDebugEnabled();
|
|
52
47
|
},
|
|
53
|
-
|
|
54
48
|
logOnInstanceCreated(data) {
|
|
55
49
|
notifyMonitors("onInstanceCreated", data);
|
|
56
50
|
log("info", "Instance initialized.");
|
|
57
51
|
},
|
|
58
|
-
|
|
59
52
|
logOnInstanceConfigured(data) {
|
|
60
53
|
notifyMonitors("onInstanceConfigured", data);
|
|
61
54
|
log("info", "Instance configured. Computed configuration:", data.config);
|
|
62
55
|
},
|
|
63
|
-
|
|
64
56
|
logOnBeforeCommand(data) {
|
|
65
57
|
notifyMonitors("onBeforeCommand", data);
|
|
66
58
|
log("info", `Executing ${data.commandName} command. Options:`, data.options);
|
|
67
59
|
},
|
|
68
|
-
|
|
69
60
|
logOnCommandResolved(data) {
|
|
70
61
|
notifyMonitors("onCommandResolved", data);
|
|
71
62
|
log("info", `${data.commandName} command resolved. Result:`, data.result);
|
|
72
63
|
},
|
|
73
|
-
|
|
74
64
|
logOnCommandRejected(data) {
|
|
75
65
|
notifyMonitors("onCommandRejected", data);
|
|
76
66
|
log("error", `${data.commandName} command was rejected. Error:`, data.error);
|
|
77
67
|
},
|
|
78
|
-
|
|
79
68
|
logOnBeforeNetworkRequest(data) {
|
|
80
69
|
notifyMonitors("onBeforeNetworkRequest", data);
|
|
81
70
|
log("info", `Request ${data.requestId}: Sending request.`, data.payload);
|
|
82
71
|
},
|
|
83
|
-
|
|
84
72
|
logOnNetworkResponse(data) {
|
|
85
73
|
notifyMonitors("onNetworkResponse", data);
|
|
86
74
|
const messagesSuffix = data.parsedBody || data.body ? `response body:` : `no response body.`;
|
|
87
75
|
log("info", `Request ${data.requestId}: Received response with status code ${data.statusCode} and ${messagesSuffix}`, data.parsedBody || data.body);
|
|
88
76
|
},
|
|
89
|
-
|
|
90
77
|
logOnNetworkError(data) {
|
|
91
78
|
notifyMonitors("onNetworkError", data);
|
|
92
79
|
log("error", `Request ${data.requestId}: Network request failed.`, data.error);
|
|
93
80
|
},
|
|
94
|
-
|
|
95
81
|
/**
|
|
96
82
|
* Outputs informational message to the web console. In some
|
|
97
83
|
* browsers a small "i" icon is displayed next to these items
|
|
@@ -99,13 +85,11 @@ export default (({
|
|
|
99
85
|
* @param {...*} arg Any argument to be logged.
|
|
100
86
|
*/
|
|
101
87
|
info: log.bind(null, "info"),
|
|
102
|
-
|
|
103
88
|
/**
|
|
104
89
|
* Outputs a warning message to the web console.
|
|
105
90
|
* @param {...*} arg Any argument to be logged.
|
|
106
91
|
*/
|
|
107
92
|
warn: log.bind(null, "warn"),
|
|
108
|
-
|
|
109
93
|
/**
|
|
110
94
|
* Outputs an error message to the web console.
|
|
111
95
|
* @param {...*} arg Any argument to be logged.
|
|
@@ -32,9 +32,7 @@ export default (({
|
|
|
32
32
|
const onRequestFailureCallbackAggregator = createCallbackAggregator();
|
|
33
33
|
onRequestFailureCallbackAggregator.add(lifecycle.onRequestFailure);
|
|
34
34
|
onRequestFailureCallbackAggregator.add(runOnRequestFailureCallbacks);
|
|
35
|
-
|
|
36
35
|
const getHeader = key => responseHeaders[key];
|
|
37
|
-
|
|
38
36
|
return lifecycle.onBeforeRequest({
|
|
39
37
|
request,
|
|
40
38
|
onResponse: onResponseCallbackAggregator.add,
|
|
@@ -48,8 +46,9 @@ export default (({
|
|
|
48
46
|
const response = createResponse({
|
|
49
47
|
content: responseBody,
|
|
50
48
|
getHeader
|
|
51
|
-
});
|
|
49
|
+
});
|
|
52
50
|
|
|
51
|
+
// This will clobber any cookies set via HTTP from the server. So care should be given to remove any state:store handles if that is not desirable
|
|
53
52
|
cookieTransfer.responseToCookies(response);
|
|
54
53
|
return onResponseCallbackAggregator.call({
|
|
55
54
|
response
|