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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/libEs5/baseCode/index.js +2 -12
  2. package/libEs5/components/ActivityCollector/attachClickActivityCollector.js +9 -12
  3. package/libEs5/components/ActivityCollector/configValidators.js +1 -4
  4. package/libEs5/components/ActivityCollector/createGetLinkDetails.js +7 -17
  5. package/libEs5/components/ActivityCollector/createLinkClick.js +3 -8
  6. package/libEs5/components/ActivityCollector/getLinkName.js +8 -26
  7. package/libEs5/components/ActivityCollector/getLinkRegion.js +2 -16
  8. package/libEs5/components/ActivityCollector/index.js +8 -18
  9. package/libEs5/components/ActivityCollector/utils.js +3 -40
  10. package/libEs5/components/Audiences/index.js +2 -8
  11. package/libEs5/components/Audiences/injectProcessDestinations.js +20 -19
  12. package/libEs5/components/Audiences/injectProcessResponse.js +0 -5
  13. package/libEs5/components/Context/createComponent.js +0 -4
  14. package/libEs5/components/Context/implementationDetails.js +0 -5
  15. package/libEs5/components/Context/index.js +12 -19
  16. package/libEs5/components/Context/injectDevice.js +3 -20
  17. package/libEs5/components/Context/injectEnvironment.js +1 -8
  18. package/libEs5/components/Context/injectHighEntropyUserAgentHints.js +14 -21
  19. package/libEs5/components/Context/injectPlaceContext.js +2 -8
  20. package/libEs5/components/Context/injectTimestamp.js +0 -3
  21. package/libEs5/components/Context/injectWeb.js +0 -3
  22. package/libEs5/components/DataCollector/index.js +24 -45
  23. package/libEs5/components/DataCollector/validateApplyResponse.js +2 -5
  24. package/libEs5/components/DataCollector/validateUserEventOptions.js +6 -9
  25. package/libEs5/components/EventMerge/createComponent.js +0 -2
  26. package/libEs5/components/EventMerge/createEventMergeId.js +0 -3
  27. package/libEs5/components/EventMerge/index.js +1 -4
  28. package/libEs5/components/Identity/addEcidQueryToPayload.js +0 -3
  29. package/libEs5/components/Identity/addEcidToPayload.js +0 -3
  30. package/libEs5/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +0 -5
  31. package/libEs5/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +5 -19
  32. package/libEs5/components/Identity/configValidators.js +1 -2
  33. package/libEs5/components/Identity/constants/authState.js +1 -1
  34. package/libEs5/components/Identity/constants/defaultIdSyncTtlMinutes.js +0 -2
  35. package/libEs5/components/Identity/createComponent.js +16 -22
  36. package/libEs5/components/Identity/createLegacyIdentity.js +5 -19
  37. package/libEs5/components/Identity/getEcidFromResponse.js +0 -4
  38. package/libEs5/components/Identity/getIdentity/createGetIdentity.js +5 -9
  39. package/libEs5/components/Identity/getIdentity/createIdentityRequest.js +1 -4
  40. package/libEs5/components/Identity/getIdentity/createIdentityRequestPayload.js +0 -3
  41. package/libEs5/components/Identity/getIdentity/getIdentityOptionsValidator.js +0 -5
  42. package/libEs5/components/Identity/index.js +8 -29
  43. package/libEs5/components/Identity/injectAddLegacyEcidToPayload.js +1 -5
  44. package/libEs5/components/Identity/injectAddQueryStringIdentityToPayload.js +22 -28
  45. package/libEs5/components/Identity/injectAwaitIdentityCookie.js +7 -8
  46. package/libEs5/components/Identity/injectEnsureSingleIdentity.js +17 -20
  47. package/libEs5/components/Identity/injectHandleResponseForIdSyncs.js +0 -2
  48. package/libEs5/components/Identity/injectProcessIdSyncs.js +2 -7
  49. package/libEs5/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -4
  50. package/libEs5/components/Identity/visitorService/awaitVisitorOptIn.js +0 -3
  51. package/libEs5/components/Identity/visitorService/getVisitor.js +0 -3
  52. package/libEs5/components/Identity/visitorService/injectGetEcidFromVisitor.js +2 -7
  53. package/libEs5/components/LibraryInfo/index.js +13 -21
  54. package/libEs5/components/MachineLearning/index.js +1 -3
  55. package/libEs5/components/MachineLearning/processResponse.js +0 -2
  56. package/libEs5/components/Personalization/constants/eventType.js +1 -1
  57. package/libEs5/components/Personalization/constants/loggerMessage.js +0 -1
  58. package/libEs5/components/Personalization/constants/propositionEventType.js +1 -1
  59. package/libEs5/components/Personalization/constants/schema.js +1 -1
  60. package/libEs5/components/Personalization/constants/scopeType.js +7 -3
  61. package/libEs5/components/Personalization/constants/surface.js +1 -1
  62. package/libEs5/components/Personalization/createApplyPropositions.js +29 -40
  63. package/libEs5/components/Personalization/createClickStorage.js +22 -23
  64. package/libEs5/components/Personalization/createCollect.js +5 -15
  65. package/libEs5/components/Personalization/createComponent.js +43 -42
  66. package/libEs5/components/Personalization/createFetchDataHandler.js +41 -50
  67. package/libEs5/components/Personalization/createGetPageLocation.js +0 -2
  68. package/libEs5/components/Personalization/createOnClickHandler.js +9 -20
  69. package/libEs5/components/Personalization/createPersonalizationDetails.js +23 -35
  70. package/libEs5/components/Personalization/createSetTargetMigration.js +0 -5
  71. package/libEs5/components/Personalization/createViewCacheManager.js +13 -26
  72. package/libEs5/components/Personalization/createViewChangeHandler.js +3 -15
  73. package/libEs5/components/Personalization/dom-actions/action.js +3 -19
  74. package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -13
  75. package/libEs5/components/Personalization/dom-actions/appendHtml.js +0 -7
  76. package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +46 -37
  77. package/libEs5/components/Personalization/dom-actions/createPreprocess.js +0 -4
  78. package/libEs5/components/Personalization/{utils/isPageWideScope.js → dom-actions/createRedirect.js} +10 -9
  79. package/libEs5/components/Personalization/dom-actions/dom/createFragment.js +0 -4
  80. package/libEs5/components/Personalization/dom-actions/dom/getAttribute.js +0 -2
  81. package/libEs5/components/Personalization/dom-actions/dom/getChildNodes.js +0 -5
  82. package/libEs5/components/Personalization/dom-actions/dom/getChildren.js +0 -5
  83. package/libEs5/components/Personalization/dom-actions/dom/getElementById.js +0 -3
  84. package/libEs5/components/Personalization/dom-actions/dom/getFirstChild.js +0 -2
  85. package/libEs5/components/Personalization/dom-actions/dom/getNextSibling.js +0 -2
  86. package/libEs5/components/Personalization/dom-actions/dom/getNonce.js +4 -10
  87. package/libEs5/components/Personalization/dom-actions/dom/getParent.js +0 -2
  88. package/libEs5/components/Personalization/dom-actions/dom/helperForEq.js +1 -6
  89. package/libEs5/components/Personalization/dom-actions/dom/index.js +0 -14
  90. package/libEs5/components/Personalization/dom-actions/dom/insertAfter.js +0 -6
  91. package/libEs5/components/Personalization/dom-actions/dom/insertBefore.js +0 -5
  92. package/libEs5/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +6 -11
  93. package/libEs5/components/Personalization/dom-actions/dom/removeAttribute.js +0 -2
  94. package/libEs5/components/Personalization/dom-actions/dom/selectNodesWithEq.js +16 -36
  95. package/libEs5/components/Personalization/dom-actions/dom/setAttribute.js +0 -2
  96. package/libEs5/components/Personalization/dom-actions/dom/setStyle.js +0 -4
  97. package/libEs5/components/Personalization/dom-actions/images.js +1 -11
  98. package/libEs5/components/Personalization/dom-actions/index.js +0 -1
  99. package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +0 -4
  100. package/libEs5/components/Personalization/dom-actions/insertHtmlAfter.js +0 -6
  101. package/libEs5/components/Personalization/dom-actions/insertHtmlBefore.js +0 -6
  102. package/libEs5/components/Personalization/dom-actions/prependHtml.js +4 -12
  103. package/libEs5/components/Personalization/dom-actions/rearrangeChildren.js +1 -6
  104. package/libEs5/components/Personalization/dom-actions/remapCustomCodeOffers.js +2 -8
  105. package/libEs5/components/Personalization/dom-actions/remapHeadOffers.js +2 -16
  106. package/libEs5/components/Personalization/dom-actions/replaceHtml.js +0 -4
  107. package/libEs5/components/Personalization/dom-actions/scripts.js +13 -35
  108. package/libEs5/components/Personalization/dom-actions/setAttributes.js +0 -3
  109. package/libEs5/components/Personalization/dom-actions/setHtml.js +1 -6
  110. package/libEs5/components/Personalization/dom-actions/setStyles.js +12 -8
  111. package/libEs5/components/Personalization/dom-actions/setText.js +0 -2
  112. package/libEs5/components/Personalization/dom-actions/swapImage.js +6 -9
  113. package/libEs5/components/Personalization/event.js +2 -10
  114. package/libEs5/components/Personalization/flicker/index.js +17 -31
  115. package/libEs5/components/Personalization/handlers/createProcessDomAction.js +23 -15
  116. package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +11 -10
  117. package/libEs5/components/Personalization/handlers/createProcessPropositions.js +8 -53
  118. package/libEs5/components/Personalization/handlers/createProcessRedirect.js +10 -9
  119. package/libEs5/components/Personalization/handlers/injectCreateProposition.js +32 -40
  120. package/libEs5/components/Personalization/handlers/processDefaultContent.js +0 -2
  121. package/libEs5/components/Personalization/index.js +25 -55
  122. package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -4
  123. package/libEs5/components/Personalization/utils/createAsyncArray.js +0 -3
  124. package/libEs5/components/Personalization/utils/isAuthoringModeEnabled.js +0 -2
  125. package/libEs5/components/Personalization/utils/surfaceUtils.js +1 -27
  126. package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +2 -6
  127. package/libEs5/components/Privacy/computeConsentHash.js +11 -8
  128. package/libEs5/components/Privacy/createComponent.js +24 -26
  129. package/libEs5/components/Privacy/createConsentHashStore.js +14 -15
  130. package/libEs5/components/Privacy/createConsentRequest.js +1 -4
  131. package/libEs5/components/Privacy/createConsentRequestPayload.js +0 -5
  132. package/libEs5/components/Privacy/createStoredConsent.js +2 -6
  133. package/libEs5/components/Privacy/index.js +5 -15
  134. package/libEs5/components/Privacy/injectSendSetConsentRequest.js +7 -12
  135. package/libEs5/components/Privacy/parseConsentCookie.js +3 -13
  136. package/libEs5/components/Privacy/validateSetConsentOptions.js +0 -4
  137. package/libEs5/constants/apiVersion.js +0 -1
  138. package/libEs5/constants/browser.js +1 -1
  139. package/libEs5/constants/consentPurpose.js +1 -1
  140. package/libEs5/constants/consentStatus.js +1 -1
  141. package/libEs5/constants/cookieNameKey.js +1 -1
  142. package/libEs5/constants/cookieNamePrefix.js +0 -1
  143. package/libEs5/constants/coreCommands.js +1 -1
  144. package/libEs5/constants/debugQueryParam.js +0 -1
  145. package/libEs5/constants/domain.js +1 -1
  146. package/libEs5/constants/ecidNamespace.js +0 -1
  147. package/libEs5/constants/edgeBasePath.js +0 -1
  148. package/libEs5/constants/elementAttribute.js +1 -1
  149. package/libEs5/constants/highEntropyUserAgentClientHints.js +0 -1
  150. package/libEs5/constants/httpHeaderNames.js +1 -1
  151. package/libEs5/constants/httpStatusCode.js +1 -1
  152. package/libEs5/constants/identityMapAuthenticatedState.js +0 -1
  153. package/libEs5/constants/legacyCookies.js +1 -1
  154. package/libEs5/constants/libraryName.js +0 -1
  155. package/libEs5/constants/libraryVersion.js +1 -2
  156. package/libEs5/constants/namespace.js +0 -1
  157. package/libEs5/constants/pageWideScope.js +0 -1
  158. package/libEs5/constants/queryStringIdentityParam.js +0 -1
  159. package/libEs5/constants/shadowSeparator.js +0 -1
  160. package/libEs5/constants/tagName.js +1 -1
  161. package/libEs5/core/buildAndValidateConfig.js +21 -32
  162. package/libEs5/core/componentCreators.js +0 -12
  163. package/libEs5/core/config/createConfig.js +1 -3
  164. package/libEs5/core/config/createCoreConfigs.js +0 -7
  165. package/libEs5/core/consent/createConsent.js +1 -11
  166. package/libEs5/core/consent/createConsentStateMachine.js +1 -18
  167. package/libEs5/core/createComponentRegistry.js +4 -14
  168. package/libEs5/core/createCookieTransfer.js +9 -18
  169. package/libEs5/core/createEvent.js +25 -34
  170. package/libEs5/core/createEventManager.js +39 -53
  171. package/libEs5/core/createInstanceFunction.js +0 -2
  172. package/libEs5/core/createLifecycle.js +14 -14
  173. package/libEs5/core/createLogController.js +5 -17
  174. package/libEs5/core/createLogger.js +3 -17
  175. package/libEs5/core/edgeNetwork/handleRequestFailure.js +0 -3
  176. package/libEs5/core/edgeNetwork/injectApplyResponse.js +12 -18
  177. package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +4 -8
  178. package/libEs5/core/edgeNetwork/injectGetLocationHint.js +1 -11
  179. package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +6 -11
  180. package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +18 -26
  181. package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +11 -10
  182. package/libEs5/core/index.js +12 -54
  183. package/libEs5/core/initializeComponents.js +5 -10
  184. package/libEs5/core/injectCreateResponse.js +8 -16
  185. package/libEs5/core/injectExecuteCommand.js +8 -19
  186. package/libEs5/core/injectHandleError.js +4 -8
  187. package/libEs5/core/injectShouldTransferCookie.js +1 -5
  188. package/libEs5/core/network/getRequestRetryDelay.js +10 -17
  189. package/libEs5/core/network/injectSendNetworkRequest.js +20 -22
  190. package/libEs5/core/network/isRequestRetryable.js +5 -7
  191. package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +5 -8
  192. package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +0 -2
  193. package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +0 -5
  194. package/libEs5/core/validateCommandOptions.js +5 -9
  195. package/libEs5/index.js +7 -15
  196. package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +1 -5
  197. package/libEs5/utils/assign.js +0 -2
  198. package/libEs5/utils/assignIf.js +0 -4
  199. package/libEs5/utils/clone.js +0 -3
  200. package/libEs5/utils/cookieJar.js +0 -2
  201. package/libEs5/utils/crc32.js +0 -8
  202. package/libEs5/utils/createCallbackAggregator.js +0 -4
  203. package/libEs5/utils/createLoggingCookieJar.js +1 -6
  204. package/libEs5/utils/createMerger.js +0 -4
  205. package/libEs5/utils/createTaskQueue.js +0 -7
  206. package/libEs5/utils/deduplicateArray.js +0 -5
  207. package/libEs5/utils/deepAssign.js +2 -10
  208. package/libEs5/utils/defer.js +0 -3
  209. package/libEs5/utils/dom/appendNode.js +0 -2
  210. package/libEs5/utils/dom/awaitSelector.js +1 -29
  211. package/libEs5/utils/dom/createNode.js +1 -5
  212. package/libEs5/utils/dom/index.js +0 -8
  213. package/libEs5/utils/dom/isShadowSelector.js +0 -3
  214. package/libEs5/utils/dom/matchesSelector.js +2 -5
  215. package/libEs5/utils/dom/querySelectorAll.js +3 -6
  216. package/libEs5/utils/dom/removeNode.js +0 -4
  217. package/libEs5/utils/dom/selectNodes.js +0 -8
  218. package/libEs5/utils/dom/selectNodesWithShadow.js +6 -20
  219. package/libEs5/utils/endsWith.js +0 -3
  220. package/libEs5/utils/filterObject.js +13 -17
  221. package/libEs5/utils/find.js +0 -5
  222. package/libEs5/utils/fireImage.js +2 -7
  223. package/libEs5/utils/flatMap.js +0 -2
  224. package/libEs5/utils/getApexDomain.js +4 -8
  225. package/libEs5/utils/getBrowser.js +11 -11
  226. package/libEs5/utils/getLastArrayItems.js +0 -3
  227. package/libEs5/utils/getNamespacedCookieName.js +0 -4
  228. package/libEs5/utils/groupBy.js +0 -5
  229. package/libEs5/utils/includes.js +0 -3
  230. package/libEs5/utils/index.js +0 -56
  231. package/libEs5/utils/injectDoesIdentityCookieExist.js +0 -6
  232. package/libEs5/utils/injectFireReferrerHideableImage.js +21 -29
  233. package/libEs5/utils/injectStorage.js +1 -7
  234. package/libEs5/utils/intersection.js +0 -4
  235. package/libEs5/utils/isBlankString.js +0 -4
  236. package/libEs5/utils/isBoolean.js +0 -3
  237. package/libEs5/utils/isEmptyObject.js +0 -4
  238. package/libEs5/utils/isFunction.js +0 -3
  239. package/libEs5/utils/isInteger.js +0 -4
  240. package/libEs5/utils/isNamespacedCookieName.js +0 -5
  241. package/libEs5/utils/isNil.js +0 -3
  242. package/libEs5/utils/isNonEmptyArray.js +0 -3
  243. package/libEs5/utils/isNonEmptyString.js +0 -4
  244. package/libEs5/utils/isNumber.js +0 -3
  245. package/libEs5/utils/isObject.js +11 -5
  246. package/libEs5/utils/isString.js +0 -3
  247. package/libEs5/utils/isUnique.js +0 -7
  248. package/libEs5/utils/isValidRegExp.js +0 -3
  249. package/libEs5/utils/memoize.js +0 -5
  250. package/libEs5/utils/noop.js +0 -3
  251. package/libEs5/utils/padStart.js +0 -6
  252. package/libEs5/utils/prepareConfigOverridesForEdge.js +13 -21
  253. package/libEs5/utils/querystring.js +0 -2
  254. package/libEs5/utils/request/createAddIdentity.js +0 -2
  255. package/libEs5/utils/request/createDataCollectionRequest.js +1 -6
  256. package/libEs5/utils/request/createDataCollectionRequestPayload.js +0 -8
  257. package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +2 -11
  258. package/libEs5/utils/request/createHasIdentity.js +0 -2
  259. package/libEs5/utils/request/createRequest.js +3 -6
  260. package/libEs5/utils/request/createRequestParams.js +4 -12
  261. package/libEs5/utils/request/createRequestPayload.js +2 -7
  262. package/libEs5/utils/request/index.js +0 -8
  263. package/libEs5/utils/sanitizeOrgIdForCookieName.js +0 -2
  264. package/libEs5/utils/stackError.js +1 -6
  265. package/libEs5/utils/startsWith.js +0 -3
  266. package/libEs5/utils/stringToBoolean.js +0 -3
  267. package/libEs5/utils/toArray.js +0 -4
  268. package/libEs5/utils/toError.js +0 -3
  269. package/libEs5/utils/toISOStringLocal.js +3 -7
  270. package/libEs5/utils/toInteger.js +2 -8
  271. package/libEs5/utils/updateErrorMessage.js +3 -5
  272. package/libEs5/utils/uuid.js +0 -2
  273. package/libEs5/utils/validateConfigOverride.js +0 -3
  274. package/libEs5/utils/validateIdentityMap.js +0 -4
  275. package/libEs5/utils/validation/booleanValidator.js +0 -4
  276. package/libEs5/utils/validation/callbackValidator.js +0 -4
  277. package/libEs5/utils/validation/createAnyOfValidator.js +0 -5
  278. package/libEs5/utils/validation/createArrayOfValidator.js +0 -6
  279. package/libEs5/utils/validation/createDefaultValidator.js +0 -3
  280. package/libEs5/utils/validation/createDeprecatedValidator.js +13 -21
  281. package/libEs5/utils/validation/createLiteralValidator.js +0 -3
  282. package/libEs5/utils/validation/createMapOfValuesValidator.js +0 -9
  283. package/libEs5/utils/validation/createMinimumValidator.js +0 -3
  284. package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +0 -4
  285. package/libEs5/utils/validation/createNonEmptyValidator.js +0 -6
  286. package/libEs5/utils/validation/createObjectOfValidator.js +2 -10
  287. package/libEs5/utils/validation/createUniqueItemsValidator.js +0 -4
  288. package/libEs5/utils/validation/createUniqueValidator.js +0 -3
  289. package/libEs5/utils/validation/domainValidator.js +1 -4
  290. package/libEs5/utils/validation/index.js +76 -59
  291. package/libEs5/utils/validation/integerValidator.js +0 -4
  292. package/libEs5/utils/validation/numberValidator.js +0 -4
  293. package/libEs5/utils/validation/regexpValidator.js +0 -4
  294. package/libEs5/utils/validation/requiredValidator.js +0 -3
  295. package/libEs5/utils/validation/stringValidator.js +0 -4
  296. package/libEs5/utils/validation/utils.js +7 -21
  297. package/libEs5/utils/values.js +0 -3
  298. package/libEs6/baseCode/index.js +3 -8
  299. package/libEs6/components/ActivityCollector/attachClickActivityCollector.js +5 -6
  300. package/libEs6/components/ActivityCollector/configValidators.js +1 -0
  301. package/libEs6/components/ActivityCollector/createGetLinkDetails.js +1 -8
  302. package/libEs6/components/ActivityCollector/createLinkClick.js +0 -3
  303. package/libEs6/components/ActivityCollector/getLinkName.js +8 -23
  304. package/libEs6/components/ActivityCollector/getLinkRegion.js +2 -12
  305. package/libEs6/components/ActivityCollector/index.js +3 -6
  306. package/libEs6/components/ActivityCollector/utils.js +2 -29
  307. package/libEs6/components/Audiences/index.js +1 -2
  308. package/libEs6/components/Audiences/injectProcessDestinations.js +3 -6
  309. package/libEs6/components/Audiences/injectProcessResponse.js +1 -2
  310. package/libEs6/components/Context/createComponent.js +1 -2
  311. package/libEs6/components/Context/index.js +3 -3
  312. package/libEs6/components/Context/injectDevice.js +1 -16
  313. package/libEs6/components/Context/injectEnvironment.js +1 -4
  314. package/libEs6/components/Context/injectHighEntropyUserAgentHints.js +2 -5
  315. package/libEs6/components/Context/injectPlaceContext.js +2 -5
  316. package/libEs6/components/Context/injectTimestamp.js +1 -0
  317. package/libEs6/components/Context/injectWeb.js +1 -0
  318. package/libEs6/components/DataCollector/index.js +8 -25
  319. package/libEs6/components/DataCollector/validateApplyResponse.js +2 -2
  320. package/libEs6/components/DataCollector/validateUserEventOptions.js +7 -5
  321. package/libEs6/components/EventMerge/createComponent.js +1 -0
  322. package/libEs6/components/EventMerge/createEventMergeId.js +1 -0
  323. package/libEs6/components/EventMerge/index.js +1 -2
  324. package/libEs6/components/Identity/addEcidQueryToPayload.js +1 -0
  325. package/libEs6/components/Identity/addEcidToPayload.js +1 -0
  326. package/libEs6/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +1 -1
  327. package/libEs6/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +0 -4
  328. package/libEs6/components/Identity/configValidators.js +1 -0
  329. package/libEs6/components/Identity/constants/authState.js +1 -0
  330. package/libEs6/components/Identity/constants/defaultIdSyncTtlMinutes.js +1 -0
  331. package/libEs6/components/Identity/createComponent.js +5 -7
  332. package/libEs6/components/Identity/createLegacyIdentity.js +0 -10
  333. package/libEs6/components/Identity/getEcidFromResponse.js +1 -0
  334. package/libEs6/components/Identity/getIdentity/createGetIdentity.js +1 -0
  335. package/libEs6/components/Identity/getIdentity/createIdentityRequest.js +1 -3
  336. package/libEs6/components/Identity/getIdentity/createIdentityRequestPayload.js +1 -0
  337. package/libEs6/components/Identity/getIdentity/getIdentityOptionsValidator.js +1 -1
  338. package/libEs6/components/Identity/index.js +1 -2
  339. package/libEs6/components/Identity/injectAddLegacyEcidToPayload.js +1 -1
  340. package/libEs6/components/Identity/injectAddQueryStringIdentityToPayload.js +5 -7
  341. package/libEs6/components/Identity/injectAwaitIdentityCookie.js +6 -3
  342. package/libEs6/components/Identity/injectEnsureSingleIdentity.js +12 -11
  343. package/libEs6/components/Identity/injectHandleResponseForIdSyncs.js +1 -0
  344. package/libEs6/components/Identity/injectProcessIdSyncs.js +0 -4
  345. package/libEs6/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -0
  346. package/libEs6/components/Identity/visitorService/awaitVisitorOptIn.js +1 -0
  347. package/libEs6/components/Identity/visitorService/getVisitor.js +1 -0
  348. package/libEs6/components/Identity/visitorService/injectGetEcidFromVisitor.js +1 -2
  349. package/libEs6/components/LibraryInfo/index.js +3 -6
  350. package/libEs6/components/MachineLearning/index.js +1 -2
  351. package/libEs6/components/MachineLearning/processResponse.js +1 -0
  352. package/libEs6/components/Personalization/constants/eventType.js +1 -0
  353. package/libEs6/components/Personalization/constants/propositionEventType.js +1 -0
  354. package/libEs6/components/Personalization/constants/schema.js +1 -0
  355. package/libEs6/components/Personalization/constants/scopeType.js +4 -1
  356. package/libEs6/components/Personalization/constants/surface.js +1 -0
  357. package/libEs6/components/Personalization/createApplyPropositions.js +14 -14
  358. package/libEs6/components/Personalization/createClickStorage.js +19 -18
  359. package/libEs6/components/Personalization/createCollect.js +0 -5
  360. package/libEs6/components/Personalization/createComponent.js +23 -20
  361. package/libEs6/components/Personalization/createFetchDataHandler.js +13 -17
  362. package/libEs6/components/Personalization/createGetPageLocation.js +1 -0
  363. package/libEs6/components/Personalization/createOnClickHandler.js +6 -10
  364. package/libEs6/components/Personalization/createPersonalizationDetails.js +7 -28
  365. package/libEs6/components/Personalization/createSetTargetMigration.js +1 -1
  366. package/libEs6/components/Personalization/createViewCacheManager.js +11 -22
  367. package/libEs6/components/Personalization/createViewChangeHandler.js +1 -7
  368. package/libEs6/components/Personalization/dom-actions/action.js +1 -2
  369. package/libEs6/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -8
  370. package/libEs6/components/Personalization/dom-actions/appendHtml.js +1 -0
  371. package/libEs6/components/Personalization/dom-actions/clicks/collectClicks.js +30 -26
  372. package/libEs6/components/Personalization/dom-actions/createPreprocess.js +0 -1
  373. package/libEs6/components/Personalization/{utils/isPageWideScope.js → dom-actions/createRedirect.js} +8 -4
  374. package/libEs6/components/Personalization/dom-actions/dom/createFragment.js +1 -0
  375. package/libEs6/components/Personalization/dom-actions/dom/getAttribute.js +1 -0
  376. package/libEs6/components/Personalization/dom-actions/dom/getChildNodes.js +1 -2
  377. package/libEs6/components/Personalization/dom-actions/dom/getChildren.js +1 -2
  378. package/libEs6/components/Personalization/dom-actions/dom/getFirstChild.js +1 -0
  379. package/libEs6/components/Personalization/dom-actions/dom/getNextSibling.js +1 -0
  380. package/libEs6/components/Personalization/dom-actions/dom/getNonce.js +6 -5
  381. package/libEs6/components/Personalization/dom-actions/dom/getParent.js +1 -0
  382. package/libEs6/components/Personalization/dom-actions/dom/helperForEq.js +1 -0
  383. package/libEs6/components/Personalization/dom-actions/dom/index.js +1 -0
  384. package/libEs6/components/Personalization/dom-actions/dom/insertAfter.js +1 -2
  385. package/libEs6/components/Personalization/dom-actions/dom/insertBefore.js +1 -2
  386. package/libEs6/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +7 -6
  387. package/libEs6/components/Personalization/dom-actions/dom/removeAttribute.js +1 -0
  388. package/libEs6/components/Personalization/dom-actions/dom/selectNodesWithEq.js +6 -18
  389. package/libEs6/components/Personalization/dom-actions/dom/setAttribute.js +1 -0
  390. package/libEs6/components/Personalization/dom-actions/dom/setStyle.js +1 -2
  391. package/libEs6/components/Personalization/dom-actions/images.js +1 -1
  392. package/libEs6/components/Personalization/dom-actions/index.js +1 -0
  393. package/libEs6/components/Personalization/dom-actions/initDomActionsModules.js +1 -0
  394. package/libEs6/components/Personalization/dom-actions/insertHtmlAfter.js +1 -0
  395. package/libEs6/components/Personalization/dom-actions/insertHtmlBefore.js +1 -0
  396. package/libEs6/components/Personalization/dom-actions/prependHtml.js +5 -5
  397. package/libEs6/components/Personalization/dom-actions/rearrangeChildren.js +1 -2
  398. package/libEs6/components/Personalization/dom-actions/remapCustomCodeOffers.js +0 -3
  399. package/libEs6/components/Personalization/dom-actions/remapHeadOffers.js +1 -7
  400. package/libEs6/components/Personalization/dom-actions/replaceHtml.js +1 -0
  401. package/libEs6/components/Personalization/dom-actions/scripts.js +5 -16
  402. package/libEs6/components/Personalization/dom-actions/setAttributes.js +1 -0
  403. package/libEs6/components/Personalization/dom-actions/setHtml.js +1 -2
  404. package/libEs6/components/Personalization/dom-actions/setStyles.js +1 -0
  405. package/libEs6/components/Personalization/dom-actions/setText.js +1 -0
  406. package/libEs6/components/Personalization/dom-actions/swapImage.js +7 -4
  407. package/libEs6/components/Personalization/event.js +4 -4
  408. package/libEs6/components/Personalization/flicker/index.js +9 -12
  409. package/libEs6/components/Personalization/handlers/createProcessDomAction.js +17 -9
  410. package/libEs6/components/Personalization/handlers/createProcessHtmlContent.js +8 -5
  411. package/libEs6/components/Personalization/handlers/createProcessPropositions.js +3 -30
  412. package/libEs6/components/Personalization/handlers/createProcessRedirect.js +7 -4
  413. package/libEs6/components/Personalization/handlers/injectCreateProposition.js +17 -36
  414. package/libEs6/components/Personalization/index.js +9 -13
  415. package/libEs6/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -0
  416. package/libEs6/components/Personalization/utils/createAsyncArray.js +0 -2
  417. package/libEs6/components/Personalization/utils/isAuthoringModeEnabled.js +1 -0
  418. package/libEs6/components/Personalization/utils/surfaceUtils.js +1 -20
  419. package/libEs6/components/Personalization/validateApplyPropositionsOptions.js +0 -1
  420. package/libEs6/components/Privacy/computeConsentHash.js +3 -4
  421. package/libEs6/components/Privacy/createComponent.js +5 -10
  422. package/libEs6/components/Privacy/createConsentHashStore.js +0 -10
  423. package/libEs6/components/Privacy/createConsentRequest.js +1 -3
  424. package/libEs6/components/Privacy/createConsentRequestPayload.js +1 -2
  425. package/libEs6/components/Privacy/createStoredConsent.js +1 -2
  426. package/libEs6/components/Privacy/index.js +1 -2
  427. package/libEs6/components/Privacy/injectSendSetConsentRequest.js +3 -3
  428. package/libEs6/constants/browser.js +1 -0
  429. package/libEs6/constants/consentPurpose.js +1 -0
  430. package/libEs6/constants/consentStatus.js +1 -0
  431. package/libEs6/constants/cookieNameKey.js +1 -0
  432. package/libEs6/constants/cookieNamePrefix.js +1 -0
  433. package/libEs6/constants/coreCommands.js +1 -0
  434. package/libEs6/constants/debugQueryParam.js +1 -0
  435. package/libEs6/constants/domain.js +1 -0
  436. package/libEs6/constants/ecidNamespace.js +1 -0
  437. package/libEs6/constants/elementAttribute.js +1 -0
  438. package/libEs6/constants/highEntropyUserAgentClientHints.js +1 -0
  439. package/libEs6/constants/httpHeaderNames.js +1 -0
  440. package/libEs6/constants/httpStatusCode.js +1 -0
  441. package/libEs6/constants/legacyCookies.js +1 -0
  442. package/libEs6/constants/libraryName.js +1 -0
  443. package/libEs6/constants/libraryVersion.js +3 -1
  444. package/libEs6/constants/namespace.js +1 -0
  445. package/libEs6/constants/pageWideScope.js +1 -0
  446. package/libEs6/constants/queryStringIdentityParam.js +1 -0
  447. package/libEs6/constants/shadowSeparator.js +1 -0
  448. package/libEs6/constants/tagName.js +1 -0
  449. package/libEs6/core/buildAndValidateConfig.js +4 -10
  450. package/libEs6/core/componentCreators.js +3 -3
  451. package/libEs6/core/config/createConfig.js +1 -2
  452. package/libEs6/core/config/createCoreConfigs.js +1 -0
  453. package/libEs6/core/consent/createConsent.js +1 -9
  454. package/libEs6/core/consent/createConsentStateMachine.js +1 -20
  455. package/libEs6/core/createComponentRegistry.js +3 -15
  456. package/libEs6/core/createCookieTransfer.js +6 -12
  457. package/libEs6/core/createEvent.js +15 -37
  458. package/libEs6/core/createEventManager.js +14 -27
  459. package/libEs6/core/createInstanceFunction.js +1 -0
  460. package/libEs6/core/createLifecycle.js +14 -10
  461. package/libEs6/core/createLogController.js +1 -7
  462. package/libEs6/core/createLogger.js +1 -17
  463. package/libEs6/core/edgeNetwork/handleRequestFailure.js +0 -1
  464. package/libEs6/core/edgeNetwork/injectApplyResponse.js +2 -3
  465. package/libEs6/core/edgeNetwork/injectExtractEdgeInfo.js +5 -6
  466. package/libEs6/core/edgeNetwork/injectGetLocationHint.js +1 -5
  467. package/libEs6/core/edgeNetwork/injectProcessWarningsAndErrors.js +1 -2
  468. package/libEs6/core/edgeNetwork/injectSendEdgeNetworkRequest.js +5 -5
  469. package/libEs6/core/index.js +4 -10
  470. package/libEs6/core/initializeComponents.js +3 -4
  471. package/libEs6/core/injectCreateResponse.js +3 -7
  472. package/libEs6/core/injectExecuteCommand.js +5 -11
  473. package/libEs6/core/injectHandleError.js +4 -3
  474. package/libEs6/core/injectShouldTransferCookie.js +1 -0
  475. package/libEs6/core/network/getRequestRetryDelay.js +11 -13
  476. package/libEs6/core/network/injectSendNetworkRequest.js +3 -7
  477. package/libEs6/core/network/isRequestRetryable.js +4 -2
  478. package/libEs6/core/network/requestMethods/injectSendBeaconRequest.js +4 -6
  479. package/libEs6/core/network/requestMethods/injectSendFetchRequest.js +1 -2
  480. package/libEs6/core/network/requestMethods/injectSendXhrRequest.js +1 -5
  481. package/libEs6/core/validateCommandOptions.js +1 -2
  482. package/libEs6/index.js +5 -3
  483. package/libEs6/utils/areThirdPartyCookiesSupportedByDefault.js +4 -2
  484. package/libEs6/utils/assign.js +1 -0
  485. package/libEs6/utils/assignIf.js +1 -1
  486. package/libEs6/utils/cookieJar.js +1 -0
  487. package/libEs6/utils/crc32.js +0 -7
  488. package/libEs6/utils/createCallbackAggregator.js +0 -2
  489. package/libEs6/utils/createLoggingCookieJar.js +3 -3
  490. package/libEs6/utils/createMerger.js +2 -1
  491. package/libEs6/utils/createTaskQueue.js +0 -4
  492. package/libEs6/utils/deduplicateArray.js +0 -3
  493. package/libEs6/utils/deepAssign.js +2 -5
  494. package/libEs6/utils/dom/appendNode.js +1 -0
  495. package/libEs6/utils/dom/awaitSelector.js +1 -14
  496. package/libEs6/utils/dom/createNode.js +1 -2
  497. package/libEs6/utils/dom/index.js +1 -0
  498. package/libEs6/utils/dom/isShadowSelector.js +1 -0
  499. package/libEs6/utils/dom/matchesSelector.js +2 -2
  500. package/libEs6/utils/dom/querySelectorAll.js +3 -2
  501. package/libEs6/utils/dom/removeNode.js +1 -2
  502. package/libEs6/utils/dom/selectNodes.js +2 -2
  503. package/libEs6/utils/dom/selectNodesWithShadow.js +6 -16
  504. package/libEs6/utils/filterObject.js +8 -12
  505. package/libEs6/utils/find.js +0 -2
  506. package/libEs6/utils/fireImage.js +2 -1
  507. package/libEs6/utils/getApexDomain.js +4 -4
  508. package/libEs6/utils/getBrowser.js +1 -7
  509. package/libEs6/utils/getNamespacedCookieName.js +1 -0
  510. package/libEs6/utils/groupBy.js +0 -2
  511. package/libEs6/utils/index.js +1 -0
  512. package/libEs6/utils/injectDoesIdentityCookieExist.js +1 -1
  513. package/libEs6/utils/injectFireReferrerHideableImage.js +1 -4
  514. package/libEs6/utils/injectStorage.js +1 -5
  515. package/libEs6/utils/intersection.js +2 -1
  516. package/libEs6/utils/isBlankString.js +2 -1
  517. package/libEs6/utils/isEmptyObject.js +2 -1
  518. package/libEs6/utils/isInteger.js +2 -1
  519. package/libEs6/utils/isNamespacedCookieName.js +2 -1
  520. package/libEs6/utils/isNonEmptyString.js +2 -1
  521. package/libEs6/utils/isObject.js +2 -1
  522. package/libEs6/utils/isUnique.js +0 -5
  523. package/libEs6/utils/memoize.js +0 -2
  524. package/libEs6/utils/padStart.js +1 -4
  525. package/libEs6/utils/prepareConfigOverridesForEdge.js +5 -12
  526. package/libEs6/utils/querystring.js +1 -0
  527. package/libEs6/utils/request/createDataCollectionRequest.js +1 -3
  528. package/libEs6/utils/request/createDataCollectionRequestPayload.js +0 -3
  529. package/libEs6/utils/request/createGetAssuranceValidationTokenParams.js +1 -6
  530. package/libEs6/utils/request/createHasIdentity.js +1 -0
  531. package/libEs6/utils/request/createRequest.js +3 -9
  532. package/libEs6/utils/request/createRequestParams.js +0 -3
  533. package/libEs6/utils/request/createRequestPayload.js +4 -4
  534. package/libEs6/utils/request/index.js +1 -0
  535. package/libEs6/utils/sanitizeOrgIdForCookieName.js +1 -0
  536. package/libEs6/utils/stackError.js +2 -1
  537. package/libEs6/utils/toArray.js +1 -2
  538. package/libEs6/utils/toISOStringLocal.js +4 -3
  539. package/libEs6/utils/toInteger.js +4 -4
  540. package/libEs6/utils/updateErrorMessage.js +3 -1
  541. package/libEs6/utils/uuid.js +1 -0
  542. package/libEs6/utils/validateConfigOverride.js +1 -0
  543. package/libEs6/utils/validateIdentityMap.js +1 -0
  544. package/libEs6/utils/validation/booleanValidator.js +1 -0
  545. package/libEs6/utils/validation/createArrayOfValidator.js +0 -2
  546. package/libEs6/utils/validation/createDefaultValidator.js +1 -1
  547. package/libEs6/utils/validation/createDeprecatedValidator.js +0 -4
  548. package/libEs6/utils/validation/createMapOfValuesValidator.js +1 -4
  549. package/libEs6/utils/validation/createNoUnknownFieldsValidator.js +1 -2
  550. package/libEs6/utils/validation/createNonEmptyValidator.js +1 -1
  551. package/libEs6/utils/validation/createObjectOfValidator.js +3 -5
  552. package/libEs6/utils/validation/createUniqueValidator.js +1 -0
  553. package/libEs6/utils/validation/index.js +14 -32
  554. package/libEs6/utils/validation/integerValidator.js +1 -0
  555. package/libEs6/utils/validation/numberValidator.js +1 -0
  556. package/libEs6/utils/validation/regexpValidator.js +1 -0
  557. package/libEs6/utils/validation/requiredValidator.js +1 -1
  558. package/libEs6/utils/validation/utils.js +8 -12
  559. package/package.json +3 -3
  560. package/libEs5/components/Personalization/createPendingNotificationsHandler.js +0 -29
  561. package/libEs6/components/Personalization/createPendingNotificationsHandler.js +0 -22
@@ -9,32 +9,31 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  export default (({
13
14
  logger
14
15
  }) => adobeEdgeHeader => {
15
16
  if (adobeEdgeHeader) {
16
17
  const headerParts = adobeEdgeHeader.split(";");
17
-
18
18
  if (headerParts.length >= 2 && headerParts[1].length > 0) {
19
19
  try {
20
- const regionId = parseInt(headerParts[1], 10); // eslint recommends using Number.isNaN instead, but this function is
20
+ const regionId = parseInt(headerParts[1], 10);
21
+ // eslint recommends using Number.isNaN instead, but this function is
21
22
  // not available in Internet Explorer. Number.isNaN is more robust to
22
23
  // non-numeric parameters. Since we already know regionId will be an
23
24
  // integer, using isNaN is okay.
24
25
  // https://github.com/airbnb/javascript#standard-library--isnan
25
26
  // eslint-disable-next-line no-restricted-globals
26
-
27
27
  if (!isNaN(regionId)) {
28
28
  return {
29
29
  regionId
30
30
  };
31
31
  }
32
- } catch (e) {// No need to do anything. The log statement below will log an error
32
+ } catch (e) {
33
+ // No need to do anything. The log statement below will log an error
33
34
  }
34
35
  }
35
-
36
36
  logger.warn(`Invalid adobe edge: "${adobeEdgeHeader}"`);
37
37
  }
38
-
39
38
  return {};
40
39
  });
@@ -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 { getNamespacedCookieName } from "../../utils";
13
14
  import { CLUSTER } from "../../constants/cookieNameKey";
14
15
  import { MBOX_EDGE_CLUSTER } from "../../constants/legacyCookies";
@@ -17,19 +18,14 @@ export default (({
17
18
  cookieJar
18
19
  }) => {
19
20
  const clusterCookieName = getNamespacedCookieName(orgId, CLUSTER);
20
-
21
21
  const fromClusterCookie = () => cookieJar.get(clusterCookieName);
22
-
23
22
  const fromTarget = () => {
24
23
  const mboxEdgeCluster = cookieJar.get(MBOX_EDGE_CLUSTER);
25
-
26
24
  if (mboxEdgeCluster) {
27
25
  return `t${mboxEdgeCluster}`;
28
26
  }
29
-
30
27
  return undefined;
31
28
  };
32
-
33
29
  return () => {
34
30
  return fromClusterCookie() || fromTarget();
35
31
  };
@@ -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 { NO_CONTENT } from "../../constants/httpStatusCode";
13
14
  const MESSAGE_PREFIX = "The server responded with a";
14
15
  export default (({
@@ -20,13 +21,11 @@ export default (({
20
21
  body,
21
22
  parsedBody
22
23
  } = networkResponse;
23
-
24
24
  if (statusCode < 200 || statusCode >= 300 || !parsedBody && statusCode !== NO_CONTENT || parsedBody && !Array.isArray(parsedBody.handle)) {
25
25
  const bodyToLog = parsedBody ? JSON.stringify(parsedBody, null, 2) : body;
26
26
  const messageSuffix = bodyToLog ? `response body:\n${bodyToLog}` : `no response body.`;
27
27
  throw new Error(`${MESSAGE_PREFIX} status code ${statusCode} and ${messageSuffix}`);
28
28
  }
29
-
30
29
  if (parsedBody) {
31
30
  const {
32
31
  warnings = [],
@@ -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 { ID_THIRD_PARTY as ID_THIRD_PARTY_DOMAIN } from "../../constants/domain";
13
14
  import apiVersion from "../../constants/apiVersion";
14
15
  import { createCallbackAggregator, noop } from "../../utils";
@@ -29,11 +30,11 @@ export default (({
29
30
  edgeBasePath,
30
31
  datastreamId
31
32
  } = config;
33
+
32
34
  /**
33
35
  * Sends a network request that is aware of payload interfaces,
34
36
  * lifecycle methods, configured edge domains, response structures, etc.
35
37
  */
36
-
37
38
  return ({
38
39
  request,
39
40
  runOnResponseCallbacks = noop,
@@ -55,7 +56,6 @@ export default (({
55
56
  const edgeBasePathWithLocationHint = locationHint ? `${edgeBasePath}/${locationHint}` : edgeBasePath;
56
57
  const configId = request.getDatastreamIdOverride() || datastreamId;
57
58
  const payload = request.getPayload();
58
-
59
59
  if (configId !== datastreamId) {
60
60
  payload.mergeMeta({
61
61
  sdkConfig: {
@@ -65,7 +65,6 @@ export default (({
65
65
  }
66
66
  });
67
67
  }
68
-
69
68
  const url = `https://${endpointDomain}/${edgeBasePathWithLocationHint}/${apiVersion}/${request.getAction()}?configId=${configId}&requestId=${request.getId()}${getAssuranceValidationTokenParams()}`;
70
69
  cookieTransfer.cookiesToPayload(payload, endpointDomain);
71
70
  return sendNetworkRequest({
@@ -87,11 +86,12 @@ export default (({
87
86
  content: parsedBody,
88
87
  getHeader
89
88
  });
90
- cookieTransfer.responseToCookies(response); // Notice we're calling the onResponse lifecycle method even if there are errors
89
+ cookieTransfer.responseToCookies(response);
90
+
91
+ // Notice we're calling the onResponse lifecycle method even if there are errors
91
92
  // inside the response body. This is because the full request didn't actually fail--
92
93
  // only portions of it that are considered non-fatal (a specific, non-critical
93
94
  // Konductor plugin, for example).
94
-
95
95
  return onResponseCallbackAggregator.call({
96
96
  response
97
97
  }).then(mergeLifecycleResponses);
@@ -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 createInstanceFunction from "./createInstanceFunction";
13
14
  import { getApexDomain, injectStorage, cookieJar, isFunction, createLoggingCookieJar, injectFireReferrerHideableImage } from "../utils";
14
15
  import createLogController from "./createLogController";
@@ -48,11 +49,11 @@ const {
48
49
  fetch,
49
50
  navigator,
50
51
  XMLHttpRequest
51
- } = window; // set this up as a function so that monitors can be added at anytime
52
- // eslint-disable-next-line no-underscore-dangle
52
+ } = window;
53
53
 
54
+ // set this up as a function so that monitors can be added at anytime
55
+ // eslint-disable-next-line no-underscore-dangle
54
56
  const getMonitors = () => window.__alloyMonitors || [];
55
-
56
57
  const coreConfigValidators = createCoreConfigs();
57
58
  const apexDomain = getApexDomain(window, cookieJar);
58
59
  const sendFetchRequest = isFunction(fetch) ? injectSendFetchRequest({
@@ -75,18 +76,15 @@ export const createExecuteCommand = ({
75
76
  }) => {
76
77
  const componentRegistry = createComponentRegistry();
77
78
  const lifecycle = createLifecycle(componentRegistry);
78
-
79
79
  const setDebugCommand = options => {
80
80
  setDebugEnabled(options.enabled, {
81
81
  fromConfig: false
82
82
  });
83
83
  };
84
-
85
84
  const loggingCookieJar = createLoggingCookieJar({
86
85
  logger,
87
86
  cookieJar
88
87
  });
89
-
90
88
  const configureCommand = options => {
91
89
  const config = buildAndValidateConfig({
92
90
  options,
@@ -175,7 +173,6 @@ export const createExecuteCommand = ({
175
173
  componentCreators,
176
174
  lifecycle,
177
175
  componentRegistry,
178
-
179
176
  getImmediatelyAvailableTools(componentName) {
180
177
  const componentLogger = createComponentLogger(componentName);
181
178
  return {
@@ -195,10 +192,8 @@ export const createExecuteCommand = ({
195
192
  apexDomain
196
193
  };
197
194
  }
198
-
199
195
  });
200
196
  };
201
-
202
197
  const handleError = injectHandleError({
203
198
  errorPrefix: `[${instanceName}]`,
204
199
  logger
@@ -215,7 +210,6 @@ export const createExecuteCommand = ({
215
210
  export default (() => {
216
211
  // eslint-disable-next-line no-underscore-dangle
217
212
  const instanceNames = window.__alloyNS;
218
-
219
213
  if (instanceNames) {
220
214
  instanceNames.forEach(instanceName => {
221
215
  const logController = createLogController({
@@ -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 { stackError } from "../utils";
13
14
  export default (({
14
15
  componentCreators,
@@ -19,11 +20,10 @@ export default (({
19
20
  componentCreators.forEach(createComponent => {
20
21
  const {
21
22
  namespace
22
- } = createComponent; // TO-DOCUMENT: Helpers that we inject into factories.
23
-
23
+ } = createComponent;
24
+ // TO-DOCUMENT: Helpers that we inject into factories.
24
25
  const tools = getImmediatelyAvailableTools(namespace);
25
26
  let component;
26
-
27
27
  try {
28
28
  component = createComponent(tools);
29
29
  } catch (error) {
@@ -32,7 +32,6 @@ export default (({
32
32
  message: `[${namespace}] An error occurred during component creation.`
33
33
  });
34
34
  }
35
-
36
35
  componentRegistry.register(namespace, component);
37
36
  });
38
37
  return lifecycle.onComponentsRegistered({
@@ -9,14 +9,15 @@ 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 { flatMap } from "../utils";
13
14
  import { ADOBE_EDGE } from "../constants/httpHeaderNames";
15
+
14
16
  /**
15
17
  * Creates a representation of a gateway response with the addition of
16
18
  * helper methods.
17
19
  * @returns Response
18
20
  */
19
-
20
21
  export default (({
21
22
  extractEdgeInfo
22
23
  }) => ({
@@ -28,11 +29,11 @@ export default (({
28
29
  errors = [],
29
30
  warnings = []
30
31
  } = content;
32
+
31
33
  /**
32
34
  * Response object.
33
35
  * @typedef {Object} Response
34
36
  */
35
-
36
37
  return {
37
38
  /**
38
39
  * Returns matching fragments of the response by type.
@@ -44,31 +45,26 @@ export default (({
44
45
  getPayloadsByType(type) {
45
46
  return flatMap(handle.filter(fragment => fragment.type === type), fragment => fragment.payload);
46
47
  },
47
-
48
48
  /**
49
49
  * Returns all errors.
50
50
  */
51
51
  getErrors() {
52
52
  return errors;
53
53
  },
54
-
55
54
  /**
56
55
  * Returns all warnings.
57
56
  */
58
57
  getWarnings() {
59
58
  return warnings;
60
59
  },
61
-
62
60
  /**
63
61
  * Returns an object containing the regionId from the x-adobe-edge header
64
62
  */
65
63
  getEdge() {
66
64
  return extractEdgeInfo(getHeader(ADOBE_EDGE));
67
65
  },
68
-
69
66
  toJSON() {
70
67
  return content;
71
68
  }
72
-
73
69
  };
74
70
  });
@@ -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 { isFunction, isObject } from "../utils";
13
14
  import { CONFIGURE, SET_DEBUG } from "../constants/coreCommands";
14
15
  export default (({
@@ -19,60 +20,53 @@ export default (({
19
20
  validateCommandOptions
20
21
  }) => {
21
22
  let configurePromise;
22
-
23
23
  const getExecutor = (commandName, options) => {
24
24
  let executor;
25
-
26
25
  if (commandName === CONFIGURE) {
27
26
  if (configurePromise) {
28
27
  throw new Error("The library has already been configured and may only be configured once.");
29
28
  }
30
-
31
29
  executor = () => {
32
30
  configurePromise = configureCommand(options);
33
- return configurePromise.then(() => {// Don't expose internals to the user.
31
+ return configurePromise.then(() => {
32
+ // Don't expose internals to the user.
34
33
  });
35
34
  };
36
35
  } else {
37
36
  if (!configurePromise) {
38
37
  throw new Error(`The library must be configured first. Please do so by executing the configure command.`);
39
38
  }
40
-
41
39
  if (commandName === SET_DEBUG) {
42
40
  executor = () => setDebugCommand(options);
43
41
  } else {
44
42
  executor = () => {
45
43
  return configurePromise.then(componentRegistry => {
46
44
  const command = componentRegistry.getCommand(commandName);
47
-
48
45
  if (!command || !isFunction(command.run)) {
49
46
  const commandNames = [CONFIGURE, SET_DEBUG].concat(componentRegistry.getCommandNames()).join(", ");
50
47
  throw new Error(`The ${commandName} command does not exist. List of available commands: ${commandNames}.`);
51
48
  }
52
-
53
49
  const validatedOptions = validateCommandOptions({
54
50
  command,
55
51
  options
56
52
  });
57
53
  return command.run(validatedOptions);
58
54
  }, () => {
59
- logger.warn(`An error during configuration is preventing the ${commandName} command from executing.`); // If configuration failed, we prevent the configuration
55
+ logger.warn(`An error during configuration is preventing the ${commandName} command from executing.`);
56
+ // If configuration failed, we prevent the configuration
60
57
  // error from bubbling here because we don't want the
61
58
  // configuration error to be reported in the console every
62
59
  // time any command is executed. Only having it bubble
63
60
  // once when the configure command runs is sufficient.
64
61
  // Instead, for this command, we'll just return a promise
65
62
  // that never gets resolved.
66
-
67
63
  return new Promise(() => {});
68
64
  });
69
65
  };
70
66
  }
71
67
  }
72
-
73
68
  return executor;
74
69
  };
75
-
76
70
  return (commandName, options = {}) => {
77
71
  return new Promise(resolve => {
78
72
  // We have to wrap the getExecutor() call in the promise so the promise
@@ -9,21 +9,22 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import { toError, updateErrorMessage } from "../utils";
13
14
  import { DECLINED_CONSENT_ERROR_CODE } from "./consent/createConsentStateMachine";
14
15
  export default (({
15
16
  errorPrefix,
16
17
  logger
17
18
  }) => (error, operation) => {
18
- const err = toError(error); // In the case of declined consent, we've opted to not reject the promise
19
+ const err = toError(error);
20
+
21
+ // In the case of declined consent, we've opted to not reject the promise
19
22
  // returned to the customer, but instead resolve the promise with an
20
23
  // empty result object.
21
-
22
24
  if (err.code === DECLINED_CONSENT_ERROR_CODE) {
23
25
  logger.warn(`The ${operation} could not fully complete. ${err.message}`);
24
26
  return {};
25
27
  }
26
-
27
28
  updateErrorMessage({
28
29
  error: err,
29
30
  message: `${errorPrefix} ${err.message}`
@@ -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 { isNamespacedCookieName } from "../utils";
13
14
  import { AT_QA_MODE, MBOX } from "../constants/legacyCookies";
14
15
  export default (({
@@ -9,14 +9,16 @@ 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 { RETRY_AFTER } from "../../constants/httpHeaderNames";
13
- import { isInteger } from "../../utils"; // The retry gets incrementally (but not exponentially) longer for each retry.
14
+ import { isInteger } from "../../utils";
14
15
 
16
+ // The retry gets incrementally (but not exponentially) longer for each retry.
15
17
  const FIRST_DELAY_MILLIS = 1000;
16
- const INCREMENTAL_DELAY_MILLIS = 1000; // When the target delay is randomized, make it within the range of this percentage above or below the target delay.
18
+ const INCREMENTAL_DELAY_MILLIS = 1000;
17
19
 
20
+ // When the target delay is randomized, make it within the range of this percentage above or below the target delay.
18
21
  const MAX_RANDOM_VARIANCE_PERCENTAGE = 0.3;
19
-
20
22
  const calculateRetryDelay = retriesAttempted => {
21
23
  const targetDelay = FIRST_DELAY_MILLIS + retriesAttempted * INCREMENTAL_DELAY_MILLIS;
22
24
  const maxVariance = targetDelay * MAX_RANDOM_VARIANCE_PERCENTAGE;
@@ -25,7 +27,6 @@ const calculateRetryDelay = retriesAttempted => {
25
27
  const randomizedDelayWithinRange = Math.round(minDelay + Math.random() * (maxDelay - minDelay));
26
28
  return randomizedDelayWithinRange;
27
29
  };
28
-
29
30
  const getDelayFromHeader = response => {
30
31
  // According to the HTTP spec, if the header is defined, its value will be a string that
31
32
  // represents either:
@@ -36,39 +37,36 @@ const getDelayFromHeader = response => {
36
37
  // toGMTString() returns.
37
38
  const headerValue = response.getHeader(RETRY_AFTER);
38
39
  let delayInMillis;
39
-
40
40
  if (headerValue) {
41
41
  const headerValueInt = parseInt(headerValue, 10);
42
-
43
42
  if (isInteger(headerValueInt)) {
44
43
  delayInMillis = headerValueInt * 1000;
45
44
  } else {
46
45
  delayInMillis = Math.max(0, new Date(headerValue).getTime() - new Date().getTime());
47
46
  }
48
47
  }
49
-
50
48
  return delayInMillis;
51
- }; // These rules are in accordance with
49
+ };
50
+
51
+ // These rules are in accordance with
52
52
  // https://git.corp.adobe.com/pages/experience-edge/konductor/#/apis/errors?id=handling-4xx-and-5xx-responses
53
53
  // For retry delays that don't come from a Retry-After response header, we try to stick with the following best
54
54
  // practices outlined in https://docs.microsoft.com/en-us/azure/architecture/best-practices/transient-faults:
55
55
  // * Incremental retry
56
56
  // * Random interval
57
-
58
-
59
57
  export default (({
60
58
  response,
61
59
  retriesAttempted
62
60
  }) => {
63
61
  // Technically, only 429 or 503 responses should have a Retry-After header, but we'll respect the
64
62
  // header if we find it on any response.
65
- let delayInMillis = getDelayFromHeader(response); // Note that the value of delay may be 0 at this point, which would be a valid delay we want to use
63
+ let delayInMillis = getDelayFromHeader(response);
64
+
65
+ // Note that the value of delay may be 0 at this point, which would be a valid delay we want to use
66
66
  // and not override, which is why we don't do:
67
67
  // if (!delay) { ... }
68
-
69
68
  if (delayInMillis === undefined) {
70
69
  delayInMillis = calculateRetryDelay(retriesAttempted);
71
70
  }
72
-
73
71
  return delayInMillis;
74
72
  });
@@ -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 { stackError } from "../../utils";
13
14
  export default (({
14
15
  logger,
@@ -39,7 +40,6 @@ export default (({
39
40
  requestId,
40
41
  payload: parsedPayload
41
42
  });
42
-
43
43
  const executeRequest = (retriesAttempted = 0) => {
44
44
  const requestMethod = useSendBeacon ? sendBeaconRequest : sendFetchRequest;
45
45
  return requestMethod(url, stringifiedPayload).then(response => {
@@ -47,7 +47,6 @@ export default (({
47
47
  response,
48
48
  retriesAttempted
49
49
  });
50
-
51
50
  if (requestIsRetryable) {
52
51
  const requestRetryDelay = getRequestRetryDelay({
53
52
  response,
@@ -59,14 +58,12 @@ export default (({
59
58
  }, requestRetryDelay);
60
59
  });
61
60
  }
62
-
63
61
  let parsedBody;
64
-
65
62
  try {
66
63
  parsedBody = JSON.parse(response.body);
67
- } catch (e) {// Non-JSON. Something went wrong.
64
+ } catch (e) {
65
+ // Non-JSON. Something went wrong.
68
66
  }
69
-
70
67
  logger.logOnNetworkResponse({
71
68
  requestId,
72
69
  url,
@@ -83,7 +80,6 @@ export default (({
83
80
  };
84
81
  });
85
82
  };
86
-
87
83
  return executeRequest().catch(error => {
88
84
  logger.logOnNetworkError({
89
85
  requestId,
@@ -9,12 +9,14 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import { TOO_MANY_REQUESTS, SERVICE_UNAVAILABLE, BAD_GATEWAY, GATEWAY_TIMEOUT } from "../../constants/httpStatusCode";
13
14
  import { includes } from "../../utils";
14
15
  const MAX_RETRIES = 3;
15
- const RETRYABLE_STATUS_CODES = [TOO_MANY_REQUESTS, SERVICE_UNAVAILABLE, BAD_GATEWAY, GATEWAY_TIMEOUT]; // These rules are in accordance with
16
- // https://git.corp.adobe.com/pages/experience-edge/konductor/#/apis/errors?id=handling-4xx-and-5xx-responses
16
+ const RETRYABLE_STATUS_CODES = [TOO_MANY_REQUESTS, SERVICE_UNAVAILABLE, BAD_GATEWAY, GATEWAY_TIMEOUT];
17
17
 
18
+ // These rules are in accordance with
19
+ // https://git.corp.adobe.com/pages/experience-edge/konductor/#/apis/errors?id=handling-4xx-and-5xx-responses
18
20
  export default (({
19
21
  response,
20
22
  retriesAttempted
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  export default (({
13
14
  sendBeacon,
14
15
  sendFetchRequest,
@@ -18,22 +19,19 @@ export default (({
18
19
  const blob = new Blob([body], {
19
20
  type: "text/plain; charset=UTF-8"
20
21
  });
21
-
22
22
  if (!sendBeacon(url, blob)) {
23
23
  logger.info("Unable to use `sendBeacon`; falling back to `fetch`.");
24
24
  return sendFetchRequest(url, body);
25
- } // Using sendBeacon, we technically don't get a response back from
25
+ }
26
+
27
+ // Using sendBeacon, we technically don't get a response back from
26
28
  // the server, but we'll resolve the promise with an object to maintain
27
29
  // consistency with other network strategies.
28
-
29
-
30
30
  return Promise.resolve({
31
31
  statusCode: 204,
32
-
33
32
  getHeader() {
34
33
  return null;
35
34
  },
36
-
37
35
  body: ""
38
36
  });
39
37
  };
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  export default (({
13
14
  fetch
14
15
  }) => {
@@ -26,7 +27,6 @@ export default (({
26
27
  }).then(response => {
27
28
  return response.text().then(responseBody => ({
28
29
  statusCode: response.status,
29
-
30
30
  // We expose headers through a function instead of creating an object
31
31
  // with all the headers up front largely because the native
32
32
  // request.getResponseHeader method is case-insensitive but also because it prevents
@@ -34,7 +34,6 @@ export default (({
34
34
  getHeader(name) {
35
35
  return response.headers.get(name);
36
36
  },
37
-
38
37
  body: responseBody
39
38
  }));
40
39
  });
@@ -9,13 +9,13 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  export default (({
13
14
  XMLHttpRequest
14
15
  }) => {
15
16
  return (url, body) => {
16
17
  return new Promise((resolve, reject) => {
17
18
  const request = new XMLHttpRequest();
18
-
19
19
  request.onreadystatechange = () => {
20
20
  if (request.readyState === 4) {
21
21
  if (request.status === 0) {
@@ -23,7 +23,6 @@ export default (({
23
23
  } else {
24
24
  resolve({
25
25
  statusCode: request.status,
26
-
27
26
  // We expose headers through a function instead of creating an object
28
27
  // with all the headers up front because:
29
28
  // 1. It avoids having to add header parsing code to get all headers.
@@ -31,17 +30,14 @@ export default (({
31
30
  getHeader(name) {
32
31
  return request.getResponseHeader(name);
33
32
  },
34
-
35
33
  body: request.responseText
36
34
  });
37
35
  }
38
36
  }
39
37
  };
40
-
41
38
  request.onloadstart = () => {
42
39
  request.responseType = "text";
43
40
  };
44
-
45
41
  request.open("POST", url, true);
46
42
  request.setRequestHeader("Content-Type", "text/plain; charset=UTF-8");
47
43
  request.withCredentials = true;
@@ -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
  const COMMAND_DOC_URI = "https://adobe.ly/3sHgQHb";
13
14
  export default (({
14
15
  command,
@@ -20,7 +21,6 @@ export default (({
20
21
  optionsValidator
21
22
  } = command;
22
23
  let validatedOptions = options;
23
-
24
24
  if (optionsValidator) {
25
25
  try {
26
26
  validatedOptions = optionsValidator(options);
@@ -29,6 +29,5 @@ export default (({
29
29
  throw new Error(invalidOptionsMessage);
30
30
  }
31
31
  }
32
-
33
32
  return validatedOptions;
34
33
  });