@adobe/alloy 2.20.0-alpha.1 → 2.20.0-beta.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.
Files changed (392) hide show
  1. package/libEs5/baseCode/index.js +2 -3
  2. package/libEs5/components/ActivityCollector/attachClickActivityCollector.js +2 -3
  3. package/libEs5/components/ActivityCollector/configValidators.js +3 -5
  4. package/libEs5/components/ActivityCollector/createGetLinkDetails.js +2 -3
  5. package/libEs5/components/ActivityCollector/createLinkClick.js +2 -3
  6. package/libEs5/components/ActivityCollector/getLinkName.js +2 -3
  7. package/libEs5/components/ActivityCollector/getLinkRegion.js +2 -3
  8. package/libEs5/components/ActivityCollector/index.js +1 -2
  9. package/libEs5/components/ActivityCollector/utils.js +11 -21
  10. package/libEs5/components/Audiences/index.js +1 -2
  11. package/libEs5/components/Audiences/injectProcessDestinations.js +18 -16
  12. package/libEs5/components/Audiences/injectProcessResponse.js +2 -3
  13. package/libEs5/components/Context/createComponent.js +2 -3
  14. package/libEs5/components/Context/implementationDetails.js +2 -3
  15. package/libEs5/components/Context/index.js +17 -15
  16. package/libEs5/components/Context/injectDevice.js +2 -3
  17. package/libEs5/components/Context/injectEnvironment.js +6 -7
  18. package/libEs5/components/Context/injectHighEntropyUserAgentHints.js +15 -16
  19. package/libEs5/components/Context/injectPlaceContext.js +2 -3
  20. package/libEs5/components/Context/injectTimestamp.js +2 -3
  21. package/libEs5/components/Context/injectWeb.js +2 -3
  22. package/libEs5/components/DataCollector/index.js +1 -2
  23. package/libEs5/components/DataCollector/validateApplyResponse.js +2 -3
  24. package/libEs5/components/DataCollector/validateUserEventOptions.js +2 -3
  25. package/libEs5/components/DecisioningEngine/consequenceAdapters/inAppMessageConsequenceAdapter.js +2 -3
  26. package/libEs5/components/DecisioningEngine/consequenceAdapters/schemaTypeConsequenceAdapter.js +2 -3
  27. package/libEs5/components/DecisioningEngine/constants.js +4 -7
  28. package/libEs5/components/DecisioningEngine/createApplyResponse.js +2 -3
  29. package/libEs5/components/DecisioningEngine/createConsequenceAdapter.js +17 -16
  30. package/libEs5/components/DecisioningEngine/createContextProvider.js +18 -16
  31. package/libEs5/components/DecisioningEngine/createDecisionHistory.js +2 -3
  32. package/libEs5/components/DecisioningEngine/createDecisionProvider.js +2 -3
  33. package/libEs5/components/DecisioningEngine/createEvaluableRulesetPayload.js +18 -16
  34. package/libEs5/components/DecisioningEngine/createEvaluateRulesetsCommand.js +2 -3
  35. package/libEs5/components/DecisioningEngine/createEventRegistry.js +20 -20
  36. package/libEs5/components/DecisioningEngine/createOnResponseHandler.js +18 -16
  37. package/libEs5/components/DecisioningEngine/createSubscribeRulesetItems.js +18 -16
  38. package/libEs5/components/DecisioningEngine/index.js +19 -19
  39. package/libEs5/components/DecisioningEngine/utils.js +10 -18
  40. package/libEs5/components/EventMerge/createComponent.js +2 -3
  41. package/libEs5/components/EventMerge/createEventMergeId.js +2 -3
  42. package/libEs5/components/EventMerge/index.js +1 -2
  43. package/libEs5/components/Identity/addEcidQueryToPayload.js +2 -3
  44. package/libEs5/components/Identity/addEcidToPayload.js +2 -3
  45. package/libEs5/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +2 -3
  46. package/libEs5/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +4 -5
  47. package/libEs5/components/Identity/configValidators.js +1 -2
  48. package/libEs5/components/Identity/constants/authState.js +3 -6
  49. package/libEs5/components/Identity/constants/defaultIdSyncTtlMinutes.js +1 -2
  50. package/libEs5/components/Identity/createComponent.js +2 -3
  51. package/libEs5/components/Identity/createLegacyIdentity.js +8 -6
  52. package/libEs5/components/Identity/getEcidFromResponse.js +2 -3
  53. package/libEs5/components/Identity/getIdentity/createGetIdentity.js +2 -3
  54. package/libEs5/components/Identity/getIdentity/createIdentityRequest.js +2 -3
  55. package/libEs5/components/Identity/getIdentity/createIdentityRequestPayload.js +2 -3
  56. package/libEs5/components/Identity/getIdentity/getIdentityOptionsValidator.js +2 -3
  57. package/libEs5/components/Identity/index.js +3 -3
  58. package/libEs5/components/Identity/injectAddLegacyEcidToPayload.js +2 -3
  59. package/libEs5/components/Identity/injectAddQueryStringIdentityToPayload.js +18 -15
  60. package/libEs5/components/Identity/injectAwaitIdentityCookie.js +9 -14
  61. package/libEs5/components/Identity/injectEnsureSingleIdentity.js +8 -6
  62. package/libEs5/components/Identity/injectHandleResponseForIdSyncs.js +2 -3
  63. package/libEs5/components/Identity/injectProcessIdSyncs.js +2 -3
  64. package/libEs5/components/Identity/injectSetDomainForInitialIdentityPayload.js +2 -3
  65. package/libEs5/components/Identity/visitorService/awaitVisitorOptIn.js +2 -3
  66. package/libEs5/components/Identity/visitorService/getVisitor.js +2 -3
  67. package/libEs5/components/Identity/visitorService/injectGetEcidFromVisitor.js +2 -3
  68. package/libEs5/components/LegacyMediaAnalytics/{media → constants}/constants.js +15 -25
  69. package/libEs5/components/LegacyMediaAnalytics/{media → constants}/mediaKeysToXdmConverter.js +3 -5
  70. package/libEs5/components/LegacyMediaAnalytics/createGetInstance.js +246 -0
  71. package/libEs5/components/LegacyMediaAnalytics/createLegacyMediaComponent.js +87 -0
  72. package/libEs5/components/LegacyMediaAnalytics/createMediaHelper.js +7 -14
  73. package/libEs5/components/LegacyMediaAnalytics/index.js +43 -20
  74. package/libEs5/components/LibraryInfo/index.js +21 -17
  75. package/libEs5/components/MachineLearning/index.js +1 -2
  76. package/libEs5/components/MachineLearning/processResponse.js +2 -3
  77. package/libEs5/components/Personalization/constants/loggerMessage.js +2 -4
  78. package/libEs5/components/Personalization/constants/scopeType.js +3 -6
  79. package/libEs5/components/Personalization/constants/surface.js +4 -8
  80. package/libEs5/components/Personalization/createActionsProvider.js +2 -3
  81. package/libEs5/components/Personalization/createApplyPropositions.js +19 -17
  82. package/libEs5/components/Personalization/createClickStorage.js +8 -6
  83. package/libEs5/components/Personalization/createCollect.js +2 -3
  84. package/libEs5/components/Personalization/createComponent.js +7 -4
  85. package/libEs5/components/Personalization/createFetchDataHandler.js +28 -20
  86. package/libEs5/components/Personalization/createGetPageLocation.js +2 -3
  87. package/libEs5/{utils/debounce.js → components/Personalization/createHandleConsentFlicker.js} +13 -14
  88. package/libEs5/components/Personalization/createNotificationHandler.js +10 -5
  89. package/libEs5/components/Personalization/createOnClickHandler.js +2 -3
  90. package/libEs5/components/Personalization/createOnDecisionHandler.js +3 -4
  91. package/libEs5/components/Personalization/createPersonalizationDetails.js +13 -14
  92. package/libEs5/components/Personalization/createPreprocessors.js +16 -14
  93. package/libEs5/components/Personalization/createSetTargetMigration.js +2 -3
  94. package/libEs5/components/Personalization/createViewCacheManager.js +2 -3
  95. package/libEs5/components/Personalization/createViewChangeHandler.js +2 -3
  96. package/libEs5/components/Personalization/dom-actions/action.js +2 -3
  97. package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +2 -3
  98. package/libEs5/components/Personalization/dom-actions/appendHtml.js +2 -3
  99. package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +3 -4
  100. package/libEs5/components/Personalization/dom-actions/createPreprocess.js +2 -3
  101. package/libEs5/components/Personalization/dom-actions/createRedirect.js +2 -3
  102. package/libEs5/components/Personalization/dom-actions/dom/createFragment.js +2 -3
  103. package/libEs5/components/Personalization/dom-actions/dom/getAttribute.js +2 -3
  104. package/libEs5/components/Personalization/dom-actions/dom/getChildNodes.js +2 -3
  105. package/libEs5/components/Personalization/dom-actions/dom/getChildren.js +2 -3
  106. package/libEs5/components/Personalization/dom-actions/dom/getElementById.js +2 -3
  107. package/libEs5/components/Personalization/dom-actions/dom/getFirstChild.js +2 -3
  108. package/libEs5/components/Personalization/dom-actions/dom/getNextSibling.js +2 -3
  109. package/libEs5/components/Personalization/dom-actions/dom/getNonce.js +3 -5
  110. package/libEs5/components/Personalization/dom-actions/dom/getParent.js +2 -3
  111. package/libEs5/components/Personalization/dom-actions/dom/helperForEq.js +3 -5
  112. package/libEs5/components/Personalization/dom-actions/dom/insertAfter.js +2 -3
  113. package/libEs5/components/Personalization/dom-actions/dom/insertBefore.js +2 -3
  114. package/libEs5/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +2 -3
  115. package/libEs5/components/Personalization/dom-actions/dom/removeAttribute.js +2 -3
  116. package/libEs5/components/Personalization/dom-actions/dom/selectNodesWithEq.js +16 -19
  117. package/libEs5/components/Personalization/dom-actions/dom/setAttribute.js +2 -3
  118. package/libEs5/components/Personalization/dom-actions/dom/setStyle.js +2 -3
  119. package/libEs5/components/Personalization/dom-actions/images.js +4 -7
  120. package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +2 -3
  121. package/libEs5/components/Personalization/dom-actions/insertHtmlAfter.js +2 -3
  122. package/libEs5/components/Personalization/dom-actions/insertHtmlBefore.js +2 -3
  123. package/libEs5/components/Personalization/dom-actions/prependHtml.js +2 -3
  124. package/libEs5/components/Personalization/dom-actions/rearrangeChildren.js +2 -3
  125. package/libEs5/components/Personalization/dom-actions/remapCustomCodeOffers.js +2 -3
  126. package/libEs5/components/Personalization/dom-actions/remapHeadOffers.js +2 -3
  127. package/libEs5/components/Personalization/dom-actions/replaceHtml.js +2 -3
  128. package/libEs5/components/Personalization/dom-actions/scripts.js +22 -24
  129. package/libEs5/components/Personalization/dom-actions/setAttributes.js +2 -3
  130. package/libEs5/components/Personalization/dom-actions/setHtml.js +2 -3
  131. package/libEs5/components/Personalization/dom-actions/setStyles.js +2 -3
  132. package/libEs5/components/Personalization/dom-actions/setText.js +2 -3
  133. package/libEs5/components/Personalization/dom-actions/swapImage.js +2 -3
  134. package/libEs5/components/Personalization/event.js +19 -18
  135. package/libEs5/components/Personalization/flicker/index.js +21 -22
  136. package/libEs5/components/Personalization/handlers/createProcessDomAction.js +8 -6
  137. package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +2 -3
  138. package/libEs5/components/Personalization/handlers/createProcessInAppMessage.js +18 -16
  139. package/libEs5/components/Personalization/handlers/createProcessPropositions.js +3 -4
  140. package/libEs5/components/Personalization/handlers/createProcessRedirect.js +2 -4
  141. package/libEs5/components/Personalization/handlers/injectCreateProposition.js +24 -22
  142. package/libEs5/components/Personalization/handlers/processDefaultContent.js +2 -3
  143. package/libEs5/components/Personalization/in-app-message-actions/actions/displayIframeContent.js +25 -29
  144. package/libEs5/components/Personalization/in-app-message-actions/initInAppMessageActionsModules.js +2 -3
  145. package/libEs5/components/Personalization/in-app-message-actions/utils.js +3 -5
  146. package/libEs5/components/Personalization/index.js +31 -22
  147. package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +2 -3
  148. package/libEs5/components/Personalization/utils/createAsyncArray.js +2 -3
  149. package/libEs5/components/Personalization/utils/isAuthoringModeEnabled.js +2 -3
  150. package/libEs5/components/Personalization/utils/surfaceUtils.js +4 -7
  151. package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +3 -5
  152. package/libEs5/components/Privacy/computeConsentHash.js +13 -14
  153. package/libEs5/components/Privacy/createComponent.js +16 -14
  154. package/libEs5/components/Privacy/createConsentHashStore.js +2 -3
  155. package/libEs5/components/Privacy/createConsentRequest.js +2 -3
  156. package/libEs5/components/Privacy/createConsentRequestPayload.js +2 -3
  157. package/libEs5/components/Privacy/createStoredConsent.js +2 -3
  158. package/libEs5/components/Privacy/index.js +1 -2
  159. package/libEs5/components/Privacy/injectSendSetConsentRequest.js +2 -3
  160. package/libEs5/components/Privacy/parseConsentCookie.js +4 -5
  161. package/libEs5/components/Privacy/validateSetConsentOptions.js +2 -3
  162. package/libEs5/components/StreamingMedia/configValidators.js +24 -0
  163. package/libEs5/components/{MediaCollection → StreamingMedia}/constants/eventTypes.js +14 -5
  164. package/{libEs6/utils/debounce.js → libEs5/components/StreamingMedia/constants/playbackState.js} +9 -12
  165. package/libEs5/components/{MediaCollection → StreamingMedia}/createMediaEventManager.js +27 -24
  166. package/libEs5/components/{MediaCollection → StreamingMedia}/createMediaRequest.js +2 -3
  167. package/libEs5/components/StreamingMedia/createMediaResponseHandler.js +57 -0
  168. package/libEs5/components/{MediaCollection → StreamingMedia}/createMediaSessionCacheManager.js +21 -25
  169. package/libEs5/components/StreamingMedia/createStreamingMediaComponent.js +72 -0
  170. package/libEs5/components/StreamingMedia/createTrackMediaEvent.js +90 -0
  171. package/libEs5/components/StreamingMedia/createTrackMediaSession.js +52 -0
  172. package/libEs5/components/StreamingMedia/index.js +69 -0
  173. package/libEs5/components/StreamingMedia/validateMediaEventOptions.js +40 -0
  174. package/libEs5/components/{MediaCollection → StreamingMedia}/validateMediaSessionOptions.js +3 -4
  175. package/libEs5/constants/apiVersion.js +1 -2
  176. package/libEs5/constants/browser.js +7 -14
  177. package/libEs5/constants/consentPurpose.js +1 -2
  178. package/libEs5/constants/consentStatus.js +3 -6
  179. package/libEs5/constants/contentType.js +2 -4
  180. package/libEs5/constants/cookieNameKey.js +3 -6
  181. package/libEs5/constants/cookieNamePrefix.js +1 -2
  182. package/libEs5/constants/coreCommands.js +2 -4
  183. package/libEs5/constants/debugQueryParam.js +1 -2
  184. package/libEs5/constants/decisionProvider.js +1 -2
  185. package/libEs5/constants/domain.js +2 -4
  186. package/libEs5/constants/ecidNamespace.js +1 -2
  187. package/libEs5/constants/edgeBasePath.js +1 -2
  188. package/libEs5/constants/elementAttribute.js +1 -2
  189. package/libEs5/constants/eventType.js +5 -10
  190. package/libEs5/constants/handle.js +1 -2
  191. package/libEs5/constants/highEntropyUserAgentClientHints.js +1 -2
  192. package/libEs5/constants/httpHeaderNames.js +2 -4
  193. package/libEs5/constants/httpStatusCode.js +5 -10
  194. package/libEs5/constants/identityMapAuthenticatedState.js +3 -6
  195. package/libEs5/constants/legacyCookies.js +3 -6
  196. package/libEs5/constants/libraryName.js +1 -2
  197. package/libEs5/constants/libraryVersion.js +1 -2
  198. package/libEs5/constants/namespace.js +1 -2
  199. package/libEs5/constants/pageWideScope.js +1 -2
  200. package/libEs5/constants/propositionEventType.js +20 -21
  201. package/libEs5/constants/queryStringIdentityParam.js +1 -2
  202. package/libEs5/constants/schema.js +10 -20
  203. package/libEs5/constants/shadowSeparator.js +1 -2
  204. package/libEs5/constants/tagName.js +7 -14
  205. package/libEs5/core/buildAndValidateConfig.js +19 -17
  206. package/libEs5/core/componentCreators.js +9 -4
  207. package/libEs5/core/config/createConfig.js +1 -2
  208. package/libEs5/core/config/createCoreConfigs.js +2 -3
  209. package/libEs5/core/consent/createConsent.js +5 -3
  210. package/libEs5/core/consent/createConsentStateMachine.js +41 -13
  211. package/libEs5/core/createComponentRegistry.js +5 -3
  212. package/libEs5/core/createCookieTransfer.js +2 -3
  213. package/libEs5/core/createEvent.js +13 -14
  214. package/libEs5/core/createEventManager.js +8 -6
  215. package/libEs5/core/createInstanceFunction.js +2 -3
  216. package/libEs5/core/createLifecycle.js +2 -3
  217. package/libEs5/core/createLogController.js +2 -3
  218. package/libEs5/core/createLogger.js +2 -3
  219. package/libEs5/core/edgeNetwork/handleRequestFailure.js +2 -3
  220. package/libEs5/core/edgeNetwork/injectApplyResponse.js +2 -3
  221. package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +2 -3
  222. package/libEs5/core/edgeNetwork/injectGetLocationHint.js +2 -3
  223. package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +2 -3
  224. package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +2 -3
  225. package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +13 -14
  226. package/libEs5/core/index.js +3 -5
  227. package/libEs5/core/initializeComponents.js +2 -3
  228. package/libEs5/core/injectCreateResponse.js +2 -3
  229. package/libEs5/core/injectExecuteCommand.js +2 -3
  230. package/libEs5/core/injectHandleError.js +2 -3
  231. package/libEs5/core/injectShouldTransferCookie.js +2 -3
  232. package/libEs5/core/network/getRequestRetryDelay.js +2 -3
  233. package/libEs5/core/network/injectSendNetworkRequest.js +18 -16
  234. package/libEs5/core/network/isRequestRetryable.js +2 -3
  235. package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +2 -3
  236. package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +2 -3
  237. package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +2 -3
  238. package/libEs5/core/validateCommandOptions.js +2 -3
  239. package/libEs5/index.js +2 -3
  240. package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +2 -3
  241. package/libEs5/utils/assign.js +1 -2
  242. package/libEs5/utils/assignConcatArrayValues.js +13 -14
  243. package/libEs5/utils/assignIf.js +2 -3
  244. package/libEs5/utils/clone.js +2 -3
  245. package/libEs5/utils/cookieJar.js +2 -3
  246. package/libEs5/utils/crc32.js +1 -2
  247. package/libEs5/utils/createCallbackAggregator.js +2 -3
  248. package/libEs5/utils/createLoggingCookieJar.js +8 -6
  249. package/libEs5/utils/createMerger.js +2 -3
  250. package/libEs5/utils/createSubscription.js +12 -13
  251. package/libEs5/utils/createTaskQueue.js +2 -3
  252. package/libEs5/utils/deduplicateArray.js +2 -3
  253. package/libEs5/utils/deepAssign.js +2 -3
  254. package/libEs5/utils/defer.js +2 -3
  255. package/libEs5/utils/dom/appendNode.js +2 -3
  256. package/libEs5/utils/dom/awaitSelector.js +7 -13
  257. package/libEs5/utils/dom/createNode.js +2 -3
  258. package/libEs5/utils/dom/isShadowSelector.js +2 -3
  259. package/libEs5/utils/dom/matchesSelector.js +2 -3
  260. package/libEs5/utils/dom/querySelectorAll.js +2 -3
  261. package/libEs5/utils/dom/removeNode.js +2 -3
  262. package/libEs5/utils/dom/selectNodes.js +2 -3
  263. package/libEs5/utils/dom/selectNodesWithShadow.js +2 -3
  264. package/libEs5/utils/endsWith.js +2 -3
  265. package/libEs5/utils/filterObject.js +17 -15
  266. package/libEs5/utils/find.js +2 -3
  267. package/libEs5/utils/fireImage.js +2 -3
  268. package/libEs5/utils/flatMap.js +2 -3
  269. package/libEs5/utils/flattenArray.js +2 -3
  270. package/libEs5/utils/flattenObject.js +4 -5
  271. package/libEs5/utils/getApexDomain.js +2 -3
  272. package/libEs5/utils/getBrowser.js +17 -16
  273. package/libEs5/utils/getLastArrayItems.js +2 -3
  274. package/libEs5/utils/getNamespacedCookieName.js +2 -3
  275. package/libEs5/utils/groupBy.js +2 -3
  276. package/libEs5/utils/includes.js +2 -3
  277. package/libEs5/utils/injectDoesIdentityCookieExist.js +2 -3
  278. package/libEs5/utils/injectFireReferrerHideableImage.js +14 -15
  279. package/libEs5/utils/injectStorage.js +2 -3
  280. package/libEs5/utils/intersection.js +2 -3
  281. package/libEs5/utils/isBlankString.js +2 -3
  282. package/libEs5/utils/isBoolean.js +2 -3
  283. package/libEs5/utils/isEmptyObject.js +2 -3
  284. package/libEs5/utils/isFunction.js +2 -3
  285. package/libEs5/utils/isInteger.js +2 -3
  286. package/libEs5/utils/isNamespacedCookieName.js +2 -3
  287. package/libEs5/utils/isNil.js +2 -3
  288. package/libEs5/utils/isNonEmptyArray.js +2 -3
  289. package/libEs5/utils/isNonEmptyString.js +2 -3
  290. package/libEs5/utils/isNumber.js +2 -3
  291. package/libEs5/utils/isObject.js +13 -14
  292. package/libEs5/utils/isString.js +2 -3
  293. package/libEs5/utils/isUnique.js +2 -3
  294. package/libEs5/utils/isValidRegExp.js +2 -3
  295. package/libEs5/utils/memoize.js +2 -3
  296. package/libEs5/utils/noop.js +1 -2
  297. package/libEs5/utils/padStart.js +2 -3
  298. package/libEs5/utils/parseUrl.js +17 -15
  299. package/libEs5/utils/prepareConfigOverridesForEdge.js +13 -14
  300. package/libEs5/utils/querystring.js +1 -2
  301. package/libEs5/utils/request/createAddIdentity.js +2 -3
  302. package/libEs5/utils/request/createDataCollectionRequest.js +2 -3
  303. package/libEs5/utils/request/createDataCollectionRequestPayload.js +2 -3
  304. package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +2 -3
  305. package/libEs5/utils/request/createHasIdentity.js +2 -3
  306. package/libEs5/utils/request/createRequest.js +2 -3
  307. package/libEs5/utils/request/createRequestParams.js +2 -3
  308. package/libEs5/utils/request/createRequestPayload.js +2 -3
  309. package/libEs5/utils/sanitizeOrgIdForCookieName.js +2 -3
  310. package/libEs5/utils/stackError.js +2 -3
  311. package/libEs5/utils/startsWith.js +2 -3
  312. package/libEs5/utils/stringToBoolean.js +2 -3
  313. package/libEs5/utils/toArray.js +2 -3
  314. package/libEs5/utils/toError.js +2 -3
  315. package/libEs5/utils/toISOStringLocal.js +2 -3
  316. package/libEs5/utils/toInteger.js +2 -3
  317. package/libEs5/utils/updateErrorMessage.js +2 -3
  318. package/libEs5/utils/uuid.js +1 -2
  319. package/libEs5/utils/validateConfigOverride.js +1 -2
  320. package/libEs5/utils/validateIdentityMap.js +2 -3
  321. package/libEs5/utils/validation/booleanValidator.js +2 -3
  322. package/libEs5/utils/validation/callbackValidator.js +2 -3
  323. package/libEs5/utils/validation/createAnyOfValidator.js +2 -3
  324. package/libEs5/utils/validation/createArrayOfValidator.js +2 -3
  325. package/libEs5/utils/validation/createDefaultValidator.js +2 -3
  326. package/libEs5/utils/validation/createDeprecatedValidator.js +18 -19
  327. package/libEs5/utils/validation/createLiteralValidator.js +2 -3
  328. package/libEs5/utils/validation/createMapOfValuesValidator.js +2 -3
  329. package/libEs5/utils/validation/createMaximumValidator.js +2 -3
  330. package/libEs5/utils/validation/createMinimumValidator.js +2 -3
  331. package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +2 -3
  332. package/libEs5/utils/validation/createNonEmptyValidator.js +2 -3
  333. package/libEs5/utils/validation/createObjectOfValidator.js +2 -3
  334. package/libEs5/utils/validation/createUniqueItemsValidator.js +2 -3
  335. package/libEs5/utils/validation/createUniqueValidator.js +2 -3
  336. package/libEs5/utils/validation/domainValidator.js +2 -3
  337. package/libEs5/utils/validation/index.js +84 -92
  338. package/libEs5/utils/validation/integerValidator.js +2 -3
  339. package/libEs5/utils/validation/matchesRegexpValidator.js +2 -3
  340. package/libEs5/utils/validation/numberValidator.js +2 -3
  341. package/libEs5/utils/validation/regexpValidator.js +2 -3
  342. package/libEs5/utils/validation/requiredValidator.js +2 -3
  343. package/libEs5/utils/validation/stringValidator.js +2 -3
  344. package/libEs5/utils/validation/utils.js +5 -9
  345. package/libEs5/utils/values.js +2 -3
  346. package/libEs6/components/ActivityCollector/index.js +0 -1
  347. package/libEs6/components/Identity/index.js +2 -1
  348. package/libEs6/components/Identity/injectAddQueryStringIdentityToPayload.js +5 -1
  349. package/libEs6/components/Identity/injectAwaitIdentityCookie.js +7 -11
  350. package/libEs6/components/Identity/injectEnsureSingleIdentity.js +4 -3
  351. package/libEs6/components/LegacyMediaAnalytics/{media → constants}/constants.js +3 -2
  352. package/libEs6/components/LegacyMediaAnalytics/createGetInstance.js +240 -0
  353. package/libEs6/components/LegacyMediaAnalytics/createLegacyMediaComponent.js +85 -0
  354. package/libEs6/components/LegacyMediaAnalytics/createMediaHelper.js +5 -11
  355. package/libEs6/components/LegacyMediaAnalytics/index.js +40 -18
  356. package/libEs6/components/LibraryInfo/index.js +3 -1
  357. package/libEs6/components/Personalization/createComponent.js +5 -1
  358. package/libEs6/components/Personalization/createFetchDataHandler.js +16 -6
  359. package/libEs6/components/Personalization/createHandleConsentFlicker.js +26 -0
  360. package/libEs6/components/Personalization/createNotificationHandler.js +6 -2
  361. package/libEs6/components/Personalization/createOnDecisionHandler.js +1 -1
  362. package/libEs6/components/Personalization/handlers/createProcessRedirect.js +0 -1
  363. package/libEs6/components/Personalization/index.js +11 -3
  364. package/libEs6/components/StreamingMedia/configValidators.js +22 -0
  365. package/libEs6/components/StreamingMedia/constants/eventTypes.js +31 -0
  366. package/libEs6/components/{MediaCollection/constants/eventTypes.js → StreamingMedia/constants/playbackState.js} +4 -9
  367. package/libEs6/components/{MediaCollection → StreamingMedia}/createMediaEventManager.js +23 -16
  368. package/libEs6/components/StreamingMedia/createMediaResponseHandler.js +58 -0
  369. package/libEs6/components/{MediaCollection → StreamingMedia}/createMediaSessionCacheManager.js +15 -19
  370. package/libEs6/components/StreamingMedia/createStreamingMediaComponent.js +69 -0
  371. package/libEs6/components/StreamingMedia/createTrackMediaEvent.js +88 -0
  372. package/libEs6/components/StreamingMedia/createTrackMediaSession.js +51 -0
  373. package/libEs6/components/StreamingMedia/index.js +64 -0
  374. package/libEs6/components/{MediaCollection → StreamingMedia}/validateMediaEventOptions.js +4 -3
  375. package/libEs6/components/{MediaCollection → StreamingMedia}/validateMediaSessionOptions.js +1 -1
  376. package/libEs6/constants/libraryVersion.js +1 -1
  377. package/libEs6/core/componentCreators.js +19 -3
  378. package/libEs6/core/consent/createConsent.js +3 -0
  379. package/libEs6/core/consent/createConsentStateMachine.js +34 -0
  380. package/libEs6/core/createComponentRegistry.js +3 -0
  381. package/package.json +19 -4
  382. package/libEs5/components/LegacyMediaAnalytics/createMediaAnalyticsTracker.js +0 -272
  383. package/libEs5/components/MediaCollection/createHeartbeatEngine.js +0 -63
  384. package/libEs5/components/MediaCollection/createUpdateMediaSessionState.js +0 -31
  385. package/libEs5/components/MediaCollection/index.js +0 -165
  386. package/libEs5/components/MediaCollection/validateMediaEventOptions.js +0 -35
  387. package/libEs6/components/LegacyMediaAnalytics/createMediaAnalyticsTracker.js +0 -276
  388. package/libEs6/components/MediaCollection/createHeartbeatEngine.js +0 -64
  389. package/libEs6/components/MediaCollection/createUpdateMediaSessionState.js +0 -30
  390. package/libEs6/components/MediaCollection/index.js +0 -164
  391. /package/libEs6/components/LegacyMediaAnalytics/{media → constants}/mediaKeysToXdmConverter.js +0 -0
  392. /package/libEs6/components/{MediaCollection → StreamingMedia}/createMediaRequest.js +0 -0
@@ -1,276 +0,0 @@
1
- /*
2
- Copyright 2023 Adobe. All rights reserved.
3
- This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License. You may obtain a copy
5
- of the License at http://www.apache.org/licenses/LICENSE-2.0
6
-
7
- Unless required by applicable law or agreed to in writing, software distributed under
8
- the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- OF ANY KIND, either express or implied. See the License for the specific language
10
- governing permissions and limitations under the License.
11
- */
12
-
13
- import defer from "../../utils/defer";
14
- import { AD_METADATA_KEYS as AdMetadataKeys, AUDIO_METADATA_KEYS as AudioMetadataKeys, EVENT as Event, PLAYER_STATE as PlayerState, STREAM_TYPE as StreamType, MEDIA_OBJECT_KEYS as MediaObjectKey, VIDEO_METADATA_KEYS as VideoMetadataKeys, MEDIA_TYPE as MediaType, MEDIA_EVENTS } from "./media/constants";
15
- import { deepAssign, isEmptyObject, isNumber } from "../../utils";
16
- import { adsToXdmKeys, mediaToXdmKeys } from "./media/mediaKeysToXdmConverter";
17
- import createMediaHelper from "./createMediaHelper";
18
- const convertSessionDetailsMetadataToXDM = contextData => {
19
- const customMetadata = [];
20
- const sessionDetails = {};
21
- Object.keys(contextData).forEach(key => {
22
- if (mediaToXdmKeys[key]) {
23
- sessionDetails[mediaToXdmKeys[key]] = contextData[key];
24
- } else {
25
- customMetadata.push({
26
- name: key,
27
- value: contextData[key]
28
- });
29
- }
30
- });
31
- return {
32
- sessionDetails,
33
- customMetadata
34
- };
35
- };
36
- const createMediaDetailsObject = ({
37
- eventType,
38
- info,
39
- context
40
- }) => {
41
- const mediaDetails = info;
42
- const customMetadata = [];
43
- if (context && !isEmptyObject(context)) {
44
- if (eventType === MEDIA_EVENTS.AdStart) {
45
- Object.keys(context).forEach(key => {
46
- if (adsToXdmKeys[key]) {
47
- mediaDetails.advertisingDetails[mediaToXdmKeys[key]] = context[key];
48
- } else {
49
- customMetadata.push({
50
- name: key,
51
- value: context[key]
52
- });
53
- }
54
- });
55
- } else {
56
- Object.keys(context).forEach(key => {
57
- customMetadata.push({
58
- name: key,
59
- value: context[key]
60
- });
61
- });
62
- }
63
- mediaDetails.customMetadata = customMetadata;
64
- }
65
- return mediaDetails;
66
- };
67
- const createHeartbeat = ({
68
- mainPingInterval,
69
- playerState,
70
- trackEvent
71
- }) => {
72
- // eslint-disable-next-line consistent-return
73
- return () => {
74
- const currentTime = Date.now();
75
- if (Math.abs(currentTime - playerState.latestTriggeredEvent) / 1000 > mainPingInterval) {
76
- return trackEvent({
77
- eventType: "ping"
78
- });
79
- }
80
- };
81
- };
82
- const createGetInstance = ({
83
- config,
84
- logger,
85
- mediaEventManager
86
- }) => {
87
- const {
88
- mainPingInterval
89
- } = config.mediaCollection;
90
- const trackerState = {
91
- qoe: null,
92
- lastPlayhead: 0,
93
- latestTriggeredEvent: null
94
- };
95
- let ticker;
96
- let deferSession = defer();
97
- const updateLastTimeEventTriggered = () => {
98
- trackerState.latestTriggeredEvent = Date.now();
99
- };
100
- const getEventType = ({
101
- eventType
102
- }) => {
103
- if (eventType === MEDIA_EVENTS.BufferComplete) {
104
- return MEDIA_EVENTS.Play;
105
- }
106
- return eventType;
107
- };
108
- const trackEvent = ({
109
- eventType,
110
- mediaDetails
111
- }) => {
112
- return deferSession.promise.then(sessionID => {
113
- const action = getEventType({
114
- eventType
115
- });
116
- const xdm = {
117
- eventType: `media.${action}`,
118
- mediaCollection: {
119
- sessionID,
120
- playhead: trackerState.lastPlayhead
121
- }
122
- };
123
- deepAssign(xdm.mediaCollection, mediaDetails);
124
- const event = mediaEventManager.createMediaEvent({
125
- options: {
126
- xdm
127
- }
128
- });
129
- return mediaEventManager.trackMediaEvent({
130
- event,
131
- action
132
- }).then(() => {
133
- updateLastTimeEventTriggered();
134
- });
135
- }).catch(error => {
136
- logger.warn(`An error occurred while sending ${eventType} Media Event.`, error);
137
- });
138
- };
139
- const heartbeatEngine = createHeartbeat({
140
- mainPingInterval,
141
- deferSession,
142
- playerState: trackerState,
143
- trackEvent
144
- });
145
- return {
146
- trackSessionStart: (mediaObject, contextData = {}) => {
147
- if (isEmptyObject(mediaObject)) {
148
- deferSession.reject("invalid media object");
149
- return {};
150
- }
151
- const mediaCollection = {
152
- playhead: 0
153
- };
154
- const {
155
- sessionDetails,
156
- customMetadata
157
- } = convertSessionDetailsMetadataToXDM(contextData);
158
- deepAssign(mediaCollection, mediaObject, {
159
- sessionDetails
160
- }, {
161
- customMetadata
162
- });
163
- const event = mediaEventManager.createMediaSession({
164
- xdm: {
165
- mediaCollection
166
- }
167
- });
168
- return mediaEventManager.trackMediaSession({
169
- event
170
- }).then(result => {
171
- updateLastTimeEventTriggered();
172
- deferSession.resolve(result.sessionId);
173
- ticker = setInterval(() => {
174
- heartbeatEngine();
175
- }, 1000);
176
- });
177
- },
178
- trackPlay: () => {
179
- return trackEvent({
180
- eventType: MEDIA_EVENTS.Play
181
- });
182
- },
183
- trackPause: () => {
184
- return trackEvent({
185
- eventType: MEDIA_EVENTS.Pause
186
- });
187
- },
188
- trackSessionEnd: () => {
189
- clearInterval(ticker);
190
- return trackEvent({
191
- eventType: MEDIA_EVENTS.SessionEnd
192
- }).then(() => {
193
- deferSession = null;
194
- });
195
- },
196
- trackComplete: () => {
197
- clearInterval(ticker);
198
- return trackEvent({
199
- eventType: MEDIA_EVENTS.SessionComplete
200
- });
201
- },
202
- trackError: errorId => {
203
- logger.info(`trackError(${errorId})`);
204
- const errorDetails = {
205
- name: errorId,
206
- source: "player"
207
- };
208
- const mediaDetails = {
209
- errorDetails
210
- };
211
- return trackEvent({
212
- eventType: MEDIA_EVENTS.SessionEnd,
213
- mediaDetails
214
- });
215
- },
216
- trackEvent: (eventType, info, context) => {
217
- if (isEmptyObject(info)) {
218
- logger.info("invalid media object");
219
- return {};
220
- }
221
- const mediaDetails = createMediaDetailsObject({
222
- eventType,
223
- info,
224
- context
225
- });
226
- return trackEvent({
227
- eventType,
228
- mediaDetails
229
- });
230
- },
231
- updatePlayhead: time => {
232
- if (isNumber(time)) {
233
- trackerState.lastPlayhead = parseInt(time, 10);
234
- }
235
- },
236
- updateQoEObject: qoeObject => {
237
- if (!qoeObject) {
238
- return;
239
- }
240
- trackerState.qoe = qoeObject;
241
- },
242
- destroy: () => {
243
- logger.info("Destroy called, destroying the tracker");
244
- clearInterval(ticker);
245
- deferSession = null;
246
- }
247
- };
248
- };
249
- export const createMediaAnalyticsTracker = ({
250
- config,
251
- logger,
252
- mediaEventManager
253
- }) => {
254
- logger.info("Media Analytics Component was configured");
255
- const mediaAnalyticsHelper = createMediaHelper({
256
- logger
257
- });
258
- return {
259
- getInstance: () => {
260
- return createGetInstance({
261
- config,
262
- logger,
263
- mediaEventManager
264
- });
265
- },
266
- Event,
267
- MediaType,
268
- PlayerState,
269
- StreamType,
270
- MediaObjectKey,
271
- VideoMetadataKeys,
272
- AudioMetadataKeys,
273
- AdMetadataKeys,
274
- ...mediaAnalyticsHelper
275
- };
276
- };
@@ -1,64 +0,0 @@
1
- /*
2
- Copyright 2023 Adobe. All rights reserved.
3
- This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License. You may obtain a copy
5
- of the License at http://www.apache.org/licenses/LICENSE-2.0
6
-
7
- Unless required by applicable law or agreed to in writing, software distributed under
8
- the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- OF ANY KIND, either express or implied. See the License for the specific language
10
- governing permissions and limitations under the License.
11
- */
12
-
13
- import toInteger from "../../utils/toInteger";
14
- import MediaEvent from "./constants/eventTypes";
15
- const ACTION = "ping";
16
- const getCurrentInterval = playerSession => {
17
- const currentTime = Date.now();
18
- return Math.abs(currentTime - playerSession.latestTriggeredEvent) / 1000;
19
- };
20
- export default (({
21
- config,
22
- mediaEventManager,
23
- mediaSessionCacheManager
24
- }) => {
25
- return ({
26
- playerId,
27
- sessionId,
28
- onBeforeMediaEvent
29
- }) => {
30
- const {
31
- mainPingInterval
32
- } = config.mediaCollection;
33
- const playerSession = mediaSessionCacheManager.getSession(playerId);
34
- const currentInterval = getCurrentInterval(playerSession);
35
- if (currentInterval > mainPingInterval) {
36
- const {
37
- playhead,
38
- qoeDataDetails
39
- } = onBeforeMediaEvent(playerId);
40
- const xdm = {
41
- eventType: MediaEvent.PING,
42
- mediaCollection: {
43
- playhead: toInteger(playhead),
44
- sessionID: sessionId,
45
- qoeDataDetails
46
- }
47
- };
48
- const event = mediaEventManager.createMediaEvent({
49
- options: {
50
- xdm
51
- }
52
- });
53
- return mediaEventManager.trackMediaEvent({
54
- event,
55
- action: ACTION
56
- }).then(() => {
57
- mediaSessionCacheManager.updateLastTriggeredEventTS({
58
- playerId
59
- });
60
- });
61
- }
62
- return Promise.resolve();
63
- };
64
- });
@@ -1,30 +0,0 @@
1
- /*
2
- Copyright 2023 Adobe. All rights reserved.
3
- This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License. You may obtain a copy
5
- of the License at http://www.apache.org/licenses/LICENSE-2.0
6
-
7
- Unless required by applicable law or agreed to in writing, software distributed under
8
- the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- OF ANY KIND, either express or implied. See the License for the specific language
10
- governing permissions and limitations under the License.
11
- */
12
-
13
- import MediaEvents from "./constants/eventTypes";
14
- export default (({
15
- mediaSessionCacheManager
16
- }) => {
17
- return ({
18
- playerId,
19
- eventType
20
- }) => {
21
- if (eventType === MediaEvents.SESSION_COMPLETE || eventType === MediaEvents.SESSION_END) {
22
- mediaSessionCacheManager.stopHeartbeat({
23
- playerId
24
- });
25
- }
26
- mediaSessionCacheManager.updateLastTriggeredEventTS({
27
- playerId
28
- });
29
- };
30
- });
@@ -1,164 +0,0 @@
1
- /*
2
- Copyright 2023 Adobe. All rights reserved.
3
- This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License. You may obtain a copy
5
- of the License at http://www.apache.org/licenses/LICENSE-2.0
6
-
7
- Unless required by applicable law or agreed to in writing, software distributed under
8
- the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- OF ANY KIND, either express or implied. See the License for the specific language
10
- governing permissions and limitations under the License.
11
- */
12
-
13
- import { string, number, objectOf } from "../../utils/validation";
14
- import createMediaSessionCacheManager from "./createMediaSessionCacheManager";
15
- import validateMediaEventOptions from "./validateMediaEventOptions";
16
- import validateSessionOptions from "./validateMediaSessionOptions";
17
- import createMediaEventManager from "./createMediaEventManager";
18
- import { noop } from "../../utils";
19
- import createHeartbeatEngine from "./createHeartbeatEngine";
20
- import createUpdateMediaSessionState from "./createUpdateMediaSessionState";
21
- const createMediaCollection = ({
22
- config,
23
- logger,
24
- eventManager,
25
- sendEdgeNetworkRequest,
26
- consent
27
- }) => {
28
- const mediaSessionCacheManager = createMediaSessionCacheManager({
29
- config
30
- });
31
- const mediaEventManager = createMediaEventManager({
32
- config,
33
- eventManager,
34
- logger,
35
- consent,
36
- sendEdgeNetworkRequest
37
- });
38
- const heartbeatTicker = createHeartbeatEngine({
39
- config,
40
- mediaEventManager,
41
- mediaSessionCacheManager
42
- });
43
- const updateMediaSessionState = createUpdateMediaSessionState({
44
- mediaSessionCacheManager
45
- });
46
- return {
47
- lifecycle: {
48
- onBeforeEvent({
49
- playerId,
50
- onBeforeMediaEvent,
51
- onResponse = noop
52
- }) {
53
- onResponse(({
54
- response
55
- }) => {
56
- const sessionId = response.getPayloadsByType("media-analytics:new-session");
57
- logger.info("Media session ID returned: ", sessionId);
58
- if (sessionId.length > 0) {
59
- if (playerId && onBeforeMediaEvent) {
60
- const heartbeatId = setInterval(() => {
61
- heartbeatTicker({
62
- sessionId: sessionId[0].sessionId,
63
- playerId,
64
- onBeforeMediaEvent
65
- });
66
- }, 1000);
67
- mediaSessionCacheManager.saveHeartbeat({
68
- playerId,
69
- heartbeatId
70
- });
71
- }
72
- return {
73
- sessionId: sessionId[0].sessionId
74
- };
75
- }
76
- return {};
77
- });
78
- }
79
- },
80
- commands: {
81
- createMediaSession: {
82
- optionsValidator: options => validateSessionOptions({
83
- options
84
- }),
85
- run: options => {
86
- const {
87
- playerId,
88
- onBeforeMediaEvent
89
- } = options;
90
- const event = mediaEventManager.createMediaSession(options);
91
- mediaEventManager.augmentMediaEvent({
92
- event,
93
- playerId,
94
- onBeforeMediaEvent
95
- });
96
- const sessionPromise = mediaEventManager.trackMediaSession({
97
- event,
98
- playerId,
99
- onBeforeMediaEvent
100
- });
101
- mediaSessionCacheManager.storeSession({
102
- playerId,
103
- sessionDetails: {
104
- sessionPromise,
105
- onBeforeMediaEvent,
106
- latestTriggeredEvent: Date.now()
107
- }
108
- });
109
- return sessionPromise;
110
- }
111
- },
112
- sendMediaEvent: {
113
- optionsValidator: options => validateMediaEventOptions({
114
- options
115
- }),
116
- run: options => {
117
- const event = mediaEventManager.createMediaEvent({
118
- options
119
- });
120
- const {
121
- playerId,
122
- xdm
123
- } = options;
124
- const eventType = xdm.eventType;
125
- const action = eventType.split(".")[1];
126
- const {
127
- onBeforeMediaEvent,
128
- sessionPromise
129
- } = mediaSessionCacheManager.getSession(playerId);
130
- sessionPromise.then(result => {
131
- mediaEventManager.augmentMediaEvent({
132
- event,
133
- playerId,
134
- onBeforeMediaEvent,
135
- sessionID: result.sessionId
136
- });
137
- return mediaEventManager.trackMediaEvent({
138
- event,
139
- action
140
- }).then(() => {
141
- updateMediaSessionState({
142
- playerId,
143
- eventType
144
- });
145
- }).catch(error => {
146
- logger.warn(`The Media Event of type ${action} failed.`, error);
147
- });
148
- });
149
- }
150
- }
151
- }
152
- };
153
- };
154
- createMediaCollection.namespace = "Media Collection";
155
- createMediaCollection.configValidators = objectOf({
156
- mediaCollection: objectOf({
157
- channel: string().nonEmpty().required(),
158
- playerName: string().nonEmpty().required(),
159
- version: string(),
160
- mainPingInterval: number().minimum(10).maximum(50).default(10),
161
- adPingInterval: number().minimum(10).maximum(50).default(10)
162
- }).noUnknownFields()
163
- });
164
- export default createMediaCollection;