@adobe/alloy 2.21.1 → 2.22.0-alpha.0
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 +49 -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 +25 -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 +34 -31
- 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 +91 -107
- package/libEs5/components/Personalization/handlers/createProcessRedirect.js +30 -29
- package/libEs5/components/Personalization/handlers/injectCreateProposition.js +59 -64
- 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 +112 -99
- 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 +28 -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/createPersonalizationDetails.js +6 -6
- package/libEs6/components/Personalization/createViewCacheManager.js +5 -2
- 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/handlers/createDecorateProposition.js +2 -2
- 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 +2 -2
- 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 +4 -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
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.default = void 0;
|
|
4
|
-
var _index = require("../utils/index.js");
|
|
5
4
|
var _httpHeaderNames = require("../constants/httpHeaderNames.js");
|
|
6
5
|
/*
|
|
7
6
|
Copyright 2019 Adobe. All rights reserved.
|
|
@@ -19,59 +18,54 @@ governing permissions and limitations under the License.
|
|
|
19
18
|
* helper methods.
|
|
20
19
|
* @returns Response
|
|
21
20
|
*/
|
|
22
|
-
var _default =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
warnings = _content$warnings === void 0 ? [] : _content$warnings;
|
|
21
|
+
var _default = ({
|
|
22
|
+
extractEdgeInfo
|
|
23
|
+
}) => ({
|
|
24
|
+
content = {},
|
|
25
|
+
getHeader
|
|
26
|
+
}) => {
|
|
27
|
+
const {
|
|
28
|
+
handle = [],
|
|
29
|
+
errors = [],
|
|
30
|
+
warnings = []
|
|
31
|
+
} = content;
|
|
34
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Response object.
|
|
35
|
+
* @typedef {Object} Response
|
|
36
|
+
*/
|
|
37
|
+
return {
|
|
35
38
|
/**
|
|
36
|
-
*
|
|
37
|
-
* @
|
|
39
|
+
* Returns matching fragments of the response by type.
|
|
40
|
+
* @param {String} type A string with the current format: <namespace:action>
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* getPayloadsByType("identity:persist")
|
|
38
44
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
getWarnings: function getWarnings() {
|
|
64
|
-
return warnings;
|
|
65
|
-
},
|
|
66
|
-
/**
|
|
67
|
-
* Returns an object containing the regionId from the x-adobe-edge header
|
|
68
|
-
*/
|
|
69
|
-
getEdge: function getEdge() {
|
|
70
|
-
return extractEdgeInfo(getHeader(_httpHeaderNames.ADOBE_EDGE));
|
|
71
|
-
},
|
|
72
|
-
toJSON: function toJSON() {
|
|
73
|
-
return content;
|
|
74
|
-
}
|
|
75
|
-
};
|
|
45
|
+
getPayloadsByType(type) {
|
|
46
|
+
return handle.filter(fragment => fragment.type === type).flatMap(fragment => fragment.payload);
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Returns all errors.
|
|
50
|
+
*/
|
|
51
|
+
getErrors() {
|
|
52
|
+
return errors;
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Returns all warnings.
|
|
56
|
+
*/
|
|
57
|
+
getWarnings() {
|
|
58
|
+
return warnings;
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Returns an object containing the regionId from the x-adobe-edge header
|
|
62
|
+
*/
|
|
63
|
+
getEdge() {
|
|
64
|
+
return extractEdgeInfo(getHeader(_httpHeaderNames.ADOBE_EDGE));
|
|
65
|
+
},
|
|
66
|
+
toJSON() {
|
|
67
|
+
return content;
|
|
68
|
+
}
|
|
76
69
|
};
|
|
77
|
-
};
|
|
70
|
+
};
|
|
71
|
+
exports.default = _default;
|
|
@@ -14,22 +14,23 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
14
14
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
15
15
|
governing permissions and limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
var _default =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
var _default = ({
|
|
18
|
+
logger,
|
|
19
|
+
configureCommand,
|
|
20
|
+
setDebugCommand,
|
|
21
|
+
handleError,
|
|
22
|
+
validateCommandOptions
|
|
23
|
+
}) => {
|
|
24
|
+
let configurePromise;
|
|
25
|
+
const getExecutor = (commandName, options) => {
|
|
26
|
+
let executor;
|
|
26
27
|
if (commandName === _coreCommands.CONFIGURE) {
|
|
27
28
|
if (configurePromise) {
|
|
28
29
|
throw new Error("The library has already been configured and may only be configured once.");
|
|
29
30
|
}
|
|
30
|
-
executor =
|
|
31
|
+
executor = () => {
|
|
31
32
|
configurePromise = configureCommand(options);
|
|
32
|
-
return configurePromise.then(
|
|
33
|
+
return configurePromise.then(() => {
|
|
33
34
|
// Don't expose internals to the user.
|
|
34
35
|
});
|
|
35
36
|
};
|
|
@@ -38,23 +39,21 @@ var _default = exports.default = function _default(_ref) {
|
|
|
38
39
|
throw new Error("The library must be configured first. Please do so by executing the configure command.");
|
|
39
40
|
}
|
|
40
41
|
if (commandName === _coreCommands.SET_DEBUG) {
|
|
41
|
-
executor =
|
|
42
|
-
return setDebugCommand(options);
|
|
43
|
-
};
|
|
42
|
+
executor = () => setDebugCommand(options);
|
|
44
43
|
} else {
|
|
45
|
-
executor =
|
|
46
|
-
return configurePromise.then(
|
|
47
|
-
|
|
44
|
+
executor = () => {
|
|
45
|
+
return configurePromise.then(componentRegistry => {
|
|
46
|
+
const command = componentRegistry.getCommand(commandName);
|
|
48
47
|
if (!command || !(0, _index.isFunction)(command.run)) {
|
|
49
|
-
|
|
48
|
+
const commandNames = [_coreCommands.CONFIGURE, _coreCommands.SET_DEBUG].concat(componentRegistry.getCommandNames()).join(", ");
|
|
50
49
|
throw new Error("The " + commandName + " command does not exist. List of available commands: " + commandNames + ".");
|
|
51
50
|
}
|
|
52
|
-
|
|
53
|
-
command
|
|
54
|
-
options
|
|
51
|
+
const validatedOptions = validateCommandOptions({
|
|
52
|
+
command,
|
|
53
|
+
options
|
|
55
54
|
});
|
|
56
55
|
return command.run(validatedOptions);
|
|
57
|
-
},
|
|
56
|
+
}, () => {
|
|
58
57
|
logger.warn("An error during configuration is preventing the " + commandName + " command from executing.");
|
|
59
58
|
// If configuration failed, we prevent the configuration
|
|
60
59
|
// error from bubbling here because we don't want the
|
|
@@ -63,42 +62,42 @@ var _default = exports.default = function _default(_ref) {
|
|
|
63
62
|
// once when the configure command runs is sufficient.
|
|
64
63
|
// Instead, for this command, we'll just return a promise
|
|
65
64
|
// that never gets resolved.
|
|
66
|
-
return new Promise(
|
|
65
|
+
return new Promise(() => {});
|
|
67
66
|
});
|
|
68
67
|
};
|
|
69
68
|
}
|
|
70
69
|
}
|
|
71
70
|
return executor;
|
|
72
71
|
};
|
|
73
|
-
return
|
|
74
|
-
|
|
75
|
-
return new Promise(function (resolve) {
|
|
72
|
+
return (commandName, options = {}) => {
|
|
73
|
+
return new Promise(resolve => {
|
|
76
74
|
// We have to wrap the getExecutor() call in the promise so the promise
|
|
77
75
|
// will be rejected if getExecutor() throws errors.
|
|
78
|
-
|
|
76
|
+
const executor = getExecutor(commandName, options);
|
|
79
77
|
logger.logOnBeforeCommand({
|
|
80
|
-
commandName
|
|
81
|
-
options
|
|
78
|
+
commandName,
|
|
79
|
+
options
|
|
82
80
|
});
|
|
83
81
|
resolve(executor());
|
|
84
|
-
}).catch(
|
|
82
|
+
}).catch(error => {
|
|
85
83
|
return handleError(error, commandName + " command");
|
|
86
|
-
}).catch(
|
|
84
|
+
}).catch(error => {
|
|
87
85
|
logger.logOnCommandRejected({
|
|
88
|
-
commandName
|
|
89
|
-
options
|
|
90
|
-
error
|
|
86
|
+
commandName,
|
|
87
|
+
options,
|
|
88
|
+
error
|
|
91
89
|
});
|
|
92
90
|
throw error;
|
|
93
|
-
}).then(
|
|
91
|
+
}).then(rawResult => {
|
|
94
92
|
// We should always be returning an object from every command.
|
|
95
|
-
|
|
93
|
+
const result = (0, _index.isObject)(rawResult) ? rawResult : {};
|
|
96
94
|
logger.logOnCommandResolved({
|
|
97
|
-
commandName
|
|
98
|
-
options
|
|
99
|
-
result
|
|
95
|
+
commandName,
|
|
96
|
+
options,
|
|
97
|
+
result
|
|
100
98
|
});
|
|
101
99
|
return result;
|
|
102
100
|
});
|
|
103
101
|
};
|
|
104
|
-
};
|
|
102
|
+
};
|
|
103
|
+
exports.default = _default;
|
|
@@ -14,23 +14,23 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
14
14
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
15
15
|
governing permissions and limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
var _default =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
var _default = ({
|
|
18
|
+
errorPrefix,
|
|
19
|
+
logger
|
|
20
|
+
}) => (error, operation) => {
|
|
21
|
+
const err = (0, _index.toError)(error);
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
23
|
+
// In the case of declined consent, we've opted to not reject the promise
|
|
24
|
+
// returned to the customer, but instead resolve the promise with an
|
|
25
|
+
// empty result object.
|
|
26
|
+
if (err.code === _createConsentStateMachine.DECLINED_CONSENT_ERROR_CODE) {
|
|
27
|
+
logger.warn("The " + operation + " could not fully complete. " + err.message);
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
(0, _index.updateErrorMessage)({
|
|
31
|
+
error: err,
|
|
32
|
+
message: errorPrefix + " " + err.message
|
|
33
|
+
});
|
|
34
|
+
throw err;
|
|
35
|
+
};
|
|
36
|
+
exports.default = _default;
|
|
@@ -14,15 +14,15 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
14
14
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
15
15
|
governing permissions and limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
var _default =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
var _default = ({
|
|
18
|
+
orgId,
|
|
19
|
+
targetMigrationEnabled
|
|
20
|
+
}) => name => {
|
|
21
|
+
// We have a contract with the server that we will pass
|
|
22
|
+
// all cookies whose names are namespaced according to the
|
|
23
|
+
// logic in isNamespacedCookieName as well as any legacy
|
|
24
|
+
// cookie names (so that the server can handle migrating
|
|
25
|
+
// identities on websites previously using Visitor.js)
|
|
26
|
+
return (0, _index.isNamespacedCookieName)(orgId, name) || name === _legacyCookies.AT_QA_MODE || targetMigrationEnabled && name === _legacyCookies.MBOX;
|
|
27
|
+
};
|
|
28
|
+
exports.default = _default;
|
|
@@ -16,20 +16,20 @@ governing permissions and limitations under the License.
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
// The retry gets incrementally (but not exponentially) longer for each retry.
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const FIRST_DELAY_MILLIS = 1000;
|
|
20
|
+
const INCREMENTAL_DELAY_MILLIS = 1000;
|
|
21
21
|
|
|
22
22
|
// When the target delay is randomized, make it within the range of this percentage above or below the target delay.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
const MAX_RANDOM_VARIANCE_PERCENTAGE = 0.3;
|
|
24
|
+
const calculateRetryDelay = retriesAttempted => {
|
|
25
|
+
const targetDelay = FIRST_DELAY_MILLIS + retriesAttempted * INCREMENTAL_DELAY_MILLIS;
|
|
26
|
+
const maxVariance = targetDelay * MAX_RANDOM_VARIANCE_PERCENTAGE;
|
|
27
|
+
const minDelay = targetDelay - maxVariance;
|
|
28
|
+
const maxDelay = targetDelay + maxVariance;
|
|
29
|
+
const randomizedDelayWithinRange = Math.round(minDelay + Math.random() * (maxDelay - minDelay));
|
|
30
30
|
return randomizedDelayWithinRange;
|
|
31
31
|
};
|
|
32
|
-
|
|
32
|
+
const getDelayFromHeader = response => {
|
|
33
33
|
// According to the HTTP spec, if the header is defined, its value will be a string that
|
|
34
34
|
// represents either:
|
|
35
35
|
// * An integer indicating the number of seconds to delay.
|
|
@@ -37,10 +37,10 @@ var getDelayFromHeader = function getDelayFromHeader(response) {
|
|
|
37
37
|
// format (https://tools.ietf.org/html/rfc7231#section-7.1.1.1). When debugging, it can
|
|
38
38
|
// be helpful to know that this is the same format that a JavaScript date's
|
|
39
39
|
// toGMTString() returns.
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
const headerValue = response.getHeader(_httpHeaderNames.RETRY_AFTER);
|
|
41
|
+
let delayInMillis;
|
|
42
42
|
if (headerValue) {
|
|
43
|
-
|
|
43
|
+
const headerValueInt = parseInt(headerValue, 10);
|
|
44
44
|
if ((0, _index.isInteger)(headerValueInt)) {
|
|
45
45
|
delayInMillis = headerValueInt * 1000;
|
|
46
46
|
} else {
|
|
@@ -56,12 +56,13 @@ var getDelayFromHeader = function getDelayFromHeader(response) {
|
|
|
56
56
|
// practices outlined in https://docs.microsoft.com/en-us/azure/architecture/best-practices/transient-faults:
|
|
57
57
|
// * Incremental retry
|
|
58
58
|
// * Random interval
|
|
59
|
-
var _default =
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
var _default = ({
|
|
60
|
+
response,
|
|
61
|
+
retriesAttempted
|
|
62
|
+
}) => {
|
|
62
63
|
// Technically, only 429 or 503 responses should have a Retry-After header, but we'll respect the
|
|
63
64
|
// header if we find it on any response.
|
|
64
|
-
|
|
65
|
+
let delayInMillis = getDelayFromHeader(response);
|
|
65
66
|
|
|
66
67
|
// Note that the value of delay may be 0 at this point, which would be a valid delay we want to use
|
|
67
68
|
// and not override, which is why we don't do:
|
|
@@ -70,4 +71,5 @@ var _default = exports.default = function _default(_ref) {
|
|
|
70
71
|
delayInMillis = calculateRetryDelay(retriesAttempted);
|
|
71
72
|
}
|
|
72
73
|
return delayInMillis;
|
|
73
|
-
};
|
|
74
|
+
};
|
|
75
|
+
exports.default = _default;
|
|
@@ -2,12 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports.default = void 0;
|
|
4
4
|
var _index = require("../../utils/index.js");
|
|
5
|
-
|
|
6
|
-
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; }
|
|
7
|
-
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; }
|
|
8
|
-
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; }
|
|
9
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
10
|
-
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); } /*
|
|
5
|
+
/*
|
|
11
6
|
Copyright 2019 Adobe. All rights reserved.
|
|
12
7
|
This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
13
8
|
you may not use this file except in compliance with the License. You may obtain a copy
|
|
@@ -18,85 +13,87 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
18
13
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
19
14
|
governing permissions and limitations under the License.
|
|
20
15
|
*/
|
|
21
|
-
var _default =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
var _default = ({
|
|
17
|
+
logger,
|
|
18
|
+
sendFetchRequest,
|
|
19
|
+
sendBeaconRequest,
|
|
20
|
+
isRequestRetryable,
|
|
21
|
+
getRequestRetryDelay
|
|
22
|
+
}) => {
|
|
27
23
|
/**
|
|
28
24
|
* Send a network request and returns details about the response.
|
|
29
25
|
*/
|
|
30
|
-
return
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
return ({
|
|
27
|
+
requestId,
|
|
28
|
+
url,
|
|
29
|
+
payload,
|
|
30
|
+
useSendBeacon
|
|
31
|
+
}) => {
|
|
35
32
|
// We want to log raw payload and event data rather than
|
|
36
33
|
// our fancy wrapper objects. Calling payload.toJSON() is
|
|
37
34
|
// insufficient to get all the nested raw data, because it's
|
|
38
35
|
// not recursive (it doesn't call toJSON() on the event objects).
|
|
39
36
|
// Parsing the result of JSON.stringify(), however, gives the
|
|
40
37
|
// fully recursive raw data.
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
const stringifiedPayload = JSON.stringify(payload);
|
|
39
|
+
const parsedPayload = JSON.parse(stringifiedPayload);
|
|
43
40
|
logger.logOnBeforeNetworkRequest({
|
|
44
|
-
url
|
|
45
|
-
requestId
|
|
41
|
+
url,
|
|
42
|
+
requestId,
|
|
46
43
|
payload: parsedPayload
|
|
47
44
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
retriesAttempted: retriesAttempted
|
|
45
|
+
const executeRequest = (retriesAttempted = 0) => {
|
|
46
|
+
const requestMethod = useSendBeacon ? sendBeaconRequest : sendFetchRequest;
|
|
47
|
+
return requestMethod(url, stringifiedPayload).then(response => {
|
|
48
|
+
const requestIsRetryable = isRequestRetryable({
|
|
49
|
+
response,
|
|
50
|
+
retriesAttempted
|
|
55
51
|
});
|
|
56
52
|
if (requestIsRetryable) {
|
|
57
|
-
|
|
58
|
-
response
|
|
59
|
-
retriesAttempted
|
|
53
|
+
const requestRetryDelay = getRequestRetryDelay({
|
|
54
|
+
response,
|
|
55
|
+
retriesAttempted
|
|
60
56
|
});
|
|
61
|
-
return new Promise(
|
|
62
|
-
setTimeout(
|
|
57
|
+
return new Promise(resolve => {
|
|
58
|
+
setTimeout(() => {
|
|
63
59
|
resolve(executeRequest(retriesAttempted + 1));
|
|
64
60
|
}, requestRetryDelay);
|
|
65
61
|
});
|
|
66
62
|
}
|
|
67
|
-
|
|
63
|
+
let parsedBody;
|
|
68
64
|
try {
|
|
69
65
|
parsedBody = JSON.parse(response.body);
|
|
70
66
|
} catch (e) {
|
|
71
67
|
// Non-JSON. Something went wrong.
|
|
72
68
|
}
|
|
73
|
-
logger.logOnNetworkResponse(
|
|
74
|
-
requestId
|
|
75
|
-
url
|
|
76
|
-
payload: parsedPayload
|
|
77
|
-
|
|
78
|
-
parsedBody
|
|
79
|
-
retriesAttempted
|
|
80
|
-
})
|
|
69
|
+
logger.logOnNetworkResponse({
|
|
70
|
+
requestId,
|
|
71
|
+
url,
|
|
72
|
+
payload: parsedPayload,
|
|
73
|
+
...response,
|
|
74
|
+
parsedBody,
|
|
75
|
+
retriesAttempted
|
|
76
|
+
});
|
|
81
77
|
return {
|
|
82
78
|
statusCode: response.statusCode,
|
|
83
79
|
body: response.body,
|
|
84
|
-
parsedBody
|
|
80
|
+
parsedBody,
|
|
85
81
|
getHeader: response.getHeader
|
|
86
82
|
};
|
|
87
83
|
});
|
|
88
84
|
};
|
|
89
|
-
return executeRequest().catch(
|
|
85
|
+
return executeRequest().catch(error => {
|
|
90
86
|
logger.logOnNetworkError({
|
|
91
|
-
requestId
|
|
92
|
-
url
|
|
87
|
+
requestId,
|
|
88
|
+
url,
|
|
93
89
|
payload: parsedPayload,
|
|
94
|
-
error
|
|
90
|
+
error
|
|
95
91
|
});
|
|
96
92
|
throw (0, _index.stackError)({
|
|
97
|
-
error
|
|
93
|
+
error,
|
|
98
94
|
message: "Network request failed."
|
|
99
95
|
});
|
|
100
96
|
});
|
|
101
97
|
};
|
|
102
|
-
};
|
|
98
|
+
};
|
|
99
|
+
exports.default = _default;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
exports.default = void 0;
|
|
4
4
|
var _httpStatusCode = require("../../constants/httpStatusCode.js");
|
|
5
|
-
var _index = require("../../utils/index.js");
|
|
6
5
|
/*
|
|
7
6
|
Copyright 2019 Adobe. All rights reserved.
|
|
8
7
|
This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
@@ -15,13 +14,15 @@ OF ANY KIND, either express or implied. See the License for the specific languag
|
|
|
15
14
|
governing permissions and limitations under the License.
|
|
16
15
|
*/
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
const MAX_RETRIES = 3;
|
|
18
|
+
const RETRYABLE_STATUS_CODES = [_httpStatusCode.TOO_MANY_REQUESTS, _httpStatusCode.SERVICE_UNAVAILABLE, _httpStatusCode.BAD_GATEWAY, _httpStatusCode.GATEWAY_TIMEOUT];
|
|
20
19
|
|
|
21
20
|
// These rules are in accordance with
|
|
22
21
|
// https://git.corp.adobe.com/pages/experience-edge/konductor/#/apis/errors?id=handling-4xx-and-5xx-responses
|
|
23
|
-
var _default =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
var _default = ({
|
|
23
|
+
response,
|
|
24
|
+
retriesAttempted
|
|
25
|
+
}) => {
|
|
26
|
+
return retriesAttempted < MAX_RETRIES && RETRYABLE_STATUS_CODES.includes(response.statusCode);
|
|
27
|
+
};
|
|
28
|
+
exports.default = _default;
|
|
@@ -12,12 +12,13 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
12
12
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
13
13
|
governing permissions and limitations under the License.
|
|
14
14
|
*/
|
|
15
|
-
var _default =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
var _default = ({
|
|
16
|
+
sendBeacon,
|
|
17
|
+
sendFetchRequest,
|
|
18
|
+
logger
|
|
19
|
+
}) => {
|
|
20
|
+
return (url, body) => {
|
|
21
|
+
const blob = new Blob([body], {
|
|
21
22
|
type: "text/plain; charset=UTF-8"
|
|
22
23
|
});
|
|
23
24
|
if (!sendBeacon(url, blob)) {
|
|
@@ -30,10 +31,11 @@ var _default = exports.default = function _default(_ref) {
|
|
|
30
31
|
// consistency with other network strategies.
|
|
31
32
|
return Promise.resolve({
|
|
32
33
|
statusCode: 204,
|
|
33
|
-
getHeader
|
|
34
|
+
getHeader() {
|
|
34
35
|
return null;
|
|
35
36
|
},
|
|
36
37
|
body: ""
|
|
37
38
|
});
|
|
38
39
|
};
|
|
39
|
-
};
|
|
40
|
+
};
|
|
41
|
+
exports.default = _default;
|
|
@@ -12,9 +12,10 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
12
12
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
13
13
|
governing permissions and limitations under the License.
|
|
14
14
|
*/
|
|
15
|
-
var _default =
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
var _default = ({
|
|
16
|
+
fetch
|
|
17
|
+
}) => {
|
|
18
|
+
return (url, body) => {
|
|
18
19
|
return fetch(url, {
|
|
19
20
|
method: "POST",
|
|
20
21
|
cache: "no-cache",
|
|
@@ -24,21 +25,19 @@ var _default = exports.default = function _default(_ref) {
|
|
|
24
25
|
"Content-Type": "text/plain; charset=UTF-8"
|
|
25
26
|
},
|
|
26
27
|
referrerPolicy: "no-referrer-when-downgrade",
|
|
27
|
-
body
|
|
28
|
-
}).then(
|
|
29
|
-
return response.text().then(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
body: responseBody
|
|
40
|
-
};
|
|
41
|
-
});
|
|
28
|
+
body
|
|
29
|
+
}).then(response => {
|
|
30
|
+
return response.text().then(responseBody => ({
|
|
31
|
+
statusCode: response.status,
|
|
32
|
+
// We expose headers through a function instead of creating an object
|
|
33
|
+
// with all the headers up front largely because the native
|
|
34
|
+
// request.getResponseHeader method is case-insensitive.
|
|
35
|
+
getHeader(name) {
|
|
36
|
+
return response.headers.get(name);
|
|
37
|
+
},
|
|
38
|
+
body: responseBody
|
|
39
|
+
}));
|
|
42
40
|
});
|
|
43
41
|
};
|
|
44
|
-
};
|
|
42
|
+
};
|
|
43
|
+
exports.default = _default;
|