@adobe/alloy 2.20.0-alpha.0 → 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 (395) 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 +157 -158
  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/{MediaCollection/createMediaRequestPayload.js → StreamingMedia/configValidators.js} +11 -16
  163. package/libEs5/components/StreamingMedia/constants/eventTypes.js +34 -0
  164. package/libEs5/components/StreamingMedia/constants/playbackState.js +19 -0
  165. package/libEs5/components/{MediaCollection → StreamingMedia}/createMediaEventManager.js +46 -53
  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 +23 -27
  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 +90 -93
  338. package/libEs5/utils/validation/integerValidator.js +2 -3
  339. package/{libEs6/components/MediaCollection/createMediaRequestPayload.js → libEs5/utils/validation/matchesRegexpValidator.js} +9 -14
  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 +11 -10
  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 +157 -150
  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/{MediaCollection/createUpdateMediaSessionState.js → Personalization/createHandleConsentFlicker.js} +14 -24
  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/StreamingMedia/constants/playbackState.js +16 -0
  367. package/libEs6/components/{MediaCollection → StreamingMedia}/createMediaEventManager.js +44 -44
  368. package/libEs6/components/StreamingMedia/createMediaResponseHandler.js +58 -0
  369. package/libEs6/components/{MediaCollection → StreamingMedia}/createMediaSessionCacheManager.js +17 -21
  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/libEs6/utils/validation/index.js +6 -1
  382. package/libEs6/utils/{debounce.js → validation/matchesRegexpValidator.js} +5 -10
  383. package/package.json +19 -4
  384. package/libEs5/components/LegacyMediaAnalytics/createMediaAnalyticsTracker.js +0 -272
  385. package/libEs5/components/MediaCollection/createHeartbeatEngine.js +0 -55
  386. package/libEs5/components/MediaCollection/createUpdateMediaSessionState.js +0 -35
  387. package/libEs5/components/MediaCollection/index.js +0 -159
  388. package/libEs5/components/MediaCollection/mediaConstants/mediaEvents.js +0 -13
  389. package/libEs5/components/MediaCollection/validateMediaEventOptions.js +0 -35
  390. package/libEs6/components/LegacyMediaAnalytics/createMediaAnalyticsTracker.js +0 -276
  391. package/libEs6/components/MediaCollection/createHeartbeatEngine.js +0 -57
  392. package/libEs6/components/MediaCollection/index.js +0 -158
  393. package/libEs6/components/MediaCollection/mediaConstants/mediaEvents.js +0 -9
  394. /package/libEs6/components/LegacyMediaAnalytics/{media → constants}/mediaKeysToXdmConverter.js +0 -0
  395. /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 { AdMetadataKeys, AudioMetadataKeys, mediaEvent as Event, MediaObjectKey, MediaType, PlayerState, StreamType, VideoMetadataKeys } from "./media/constants";
15
- import { deepAssign, isEmptyObject, isNumber } from "../../utils";
16
- import { adsToXdmKeys, mediaToXdmKeys } from "./media/mediaKeysToXdmConverter";
17
- import { createMediaObject, createAdBreakObject, createAdObject, createChapterObject, createStateObject, createQoEObject } 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 === Event.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 === Event.BufferComplete) {
104
- return `media.${Event.Play}`;
105
- }
106
- return `media.${eventType}`;
107
- };
108
- const trackEvent = ({
109
- eventType,
110
- mediaDetails
111
- }) => {
112
- return deferSession.promise.then(sessionID => {
113
- const xdm = {
114
- eventType: getEventType({
115
- eventType
116
- }),
117
- mediaCollection: {
118
- sessionID,
119
- playhead: trackerState.lastPlayhead
120
- }
121
- };
122
- deepAssign(xdm.mediaCollection, mediaDetails);
123
- const event = mediaEventManager.createMediaEvent({
124
- options: {
125
- xdm
126
- }
127
- });
128
- return mediaEventManager.trackMediaEvent({
129
- event
130
- }).then(() => {
131
- updateLastTimeEventTriggered();
132
- });
133
- }).catch(error => {
134
- logger.info(error);
135
- });
136
- };
137
- const heartbeatEngine = createHeartbeat({
138
- mainPingInterval,
139
- deferSession,
140
- playerState: trackerState,
141
- trackEvent
142
- });
143
- return {
144
- trackSessionStart: (mediaObject, contextData = {}) => {
145
- if (isEmptyObject(mediaObject)) {
146
- deferSession.reject("invalid media object");
147
- return {};
148
- }
149
- const mediaCollection = {
150
- playhead: 0
151
- };
152
- const {
153
- sessionDetails,
154
- customMetadata
155
- } = convertSessionDetailsMetadataToXDM(contextData);
156
- deepAssign(mediaCollection, mediaObject, {
157
- sessionDetails
158
- }, {
159
- customMetadata
160
- });
161
- const event = mediaEventManager.createMediaSession({
162
- xdm: {
163
- mediaCollection
164
- }
165
- });
166
- return mediaEventManager.trackMediaSession({
167
- event
168
- }).then(result => {
169
- updateLastTimeEventTriggered();
170
- deferSession.resolve(result.sessionId);
171
- ticker = setInterval(() => {
172
- heartbeatEngine();
173
- }, 1000);
174
- });
175
- },
176
- trackPlay: () => {
177
- return trackEvent({
178
- eventType: Event.Play
179
- });
180
- },
181
- trackPause: () => {
182
- return trackEvent({
183
- eventType: Event.Pause
184
- });
185
- },
186
- trackSessionEnd: () => {
187
- clearInterval(ticker);
188
- return trackEvent({
189
- eventType: Event.SessionEnd
190
- }).then(() => {
191
- deferSession = null;
192
- });
193
- },
194
- trackComplete: () => {
195
- clearInterval(ticker);
196
- return trackEvent({
197
- eventType: Event.SessionComplete
198
- });
199
- },
200
- trackError: errorId => {
201
- logger.info(`trackError(${errorId})`);
202
- const errorDetails = {
203
- name: errorId,
204
- source: "player"
205
- };
206
- const mediaDetails = {
207
- errorDetails
208
- };
209
- return trackEvent({
210
- eventType: Event.SessionEnd,
211
- mediaDetails
212
- });
213
- },
214
- trackEvent: (eventType, info, context) => {
215
- if (isEmptyObject(info)) {
216
- logger.info("invalid media object");
217
- return {};
218
- }
219
- const mediaDetails = createMediaDetailsObject({
220
- eventType,
221
- info,
222
- context
223
- });
224
- return trackEvent({
225
- eventType,
226
- mediaDetails
227
- });
228
- },
229
- updatePlayhead: time => {
230
- if (isNumber(time)) {
231
- trackerState.lastPlayhead = parseInt(time, 10);
232
- }
233
- },
234
- updateQoEObject: qoeObject => {
235
- if (!qoeObject) {
236
- return;
237
- }
238
- trackerState.qoe = qoeObject;
239
- },
240
- destroy: () => {
241
- logger.info("Destroy called, destroying the tracker");
242
- clearInterval(ticker);
243
- deferSession = null;
244
- }
245
- };
246
- };
247
- export const createMediaAnalyticsTracker = ({
248
- config,
249
- logger,
250
- mediaEventManager
251
- }) => {
252
- logger.info("Media Analytics Component was configured");
253
- return {
254
- getInstance: () => {
255
- return createGetInstance({
256
- config,
257
- logger,
258
- mediaEventManager
259
- });
260
- },
261
- Event,
262
- MediaType,
263
- PlayerState,
264
- StreamType,
265
- MediaObjectKey,
266
- VideoMetadataKeys,
267
- AudioMetadataKeys,
268
- AdMetadataKeys,
269
- createMediaObject,
270
- createAdBreakObject,
271
- createAdObject,
272
- createChapterObject,
273
- createStateObject,
274
- createQoEObject
275
- };
276
- };
@@ -1,57 +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
- export default (({
15
- config,
16
- mediaEventManager,
17
- mediaSessionCacheManager
18
- }) => {
19
- return ({
20
- playerId,
21
- sessionId,
22
- onBeforeMediaEvent
23
- }) => {
24
- const currentTime = Date.now();
25
- const {
26
- mainPingInterval
27
- } = config.mediaCollection;
28
- const playerSession = mediaSessionCacheManager.getSession(playerId);
29
- if (Math.abs(currentTime - playerSession.latestTriggeredEvent) / 1000 > mainPingInterval) {
30
- const {
31
- playhead,
32
- qoeDataDetails
33
- } = onBeforeMediaEvent(playerId);
34
- const xdm = {
35
- eventType: "media.ping",
36
- mediaCollection: {
37
- playhead: toInteger(playhead),
38
- sessionID: sessionId,
39
- qoeDataDetails
40
- }
41
- };
42
- const event = mediaEventManager.createMediaEvent({
43
- options: {
44
- xdm
45
- }
46
- });
47
- return mediaEventManager.trackMediaEvent({
48
- event
49
- }).then(() => {
50
- mediaSessionCacheManager.updateLastTriggeredEventTS({
51
- playerId
52
- });
53
- });
54
- }
55
- return Promise.resolve();
56
- };
57
- });
@@ -1,158 +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
- } = options;
123
- const {
124
- onBeforeMediaEvent,
125
- sessionPromise
126
- } = mediaSessionCacheManager.getSession(playerId);
127
- sessionPromise.then(result => {
128
- const finalEvent = mediaEventManager.augmentMediaEvent({
129
- event,
130
- playerId,
131
- onBeforeMediaEvent,
132
- sessionID: result.sessionId
133
- });
134
- return mediaEventManager.trackMediaEvent({
135
- event: finalEvent
136
- }).then(() => {
137
- updateMediaSessionState({
138
- playerId,
139
- xdm: finalEvent.xdm
140
- });
141
- });
142
- });
143
- }
144
- }
145
- }
146
- };
147
- };
148
- createMediaCollection.namespace = "Media Collection";
149
- createMediaCollection.configValidators = objectOf({
150
- mediaCollection: objectOf({
151
- channel: string().nonEmpty().required(),
152
- playerName: string().nonEmpty().required(),
153
- version: string(),
154
- mainPingInterval: number().minimum(10).maximum(60).default(10),
155
- adPingInterval: number().minimum(10).maximum(60).default(10)
156
- }).noUnknownFields()
157
- });
158
- export default createMediaCollection;
@@ -1,9 +0,0 @@
1
- export default {
2
- PAUSE: "media.pauseStart",
3
- PLAY: "media.play",
4
- BUFFERING: "media.buffering",
5
- AD_START: "media.adStart",
6
- SESSION_END: "media.sessionEnd",
7
- SESSION_START: "media.sessionStart",
8
- SESSION_COMPLETE: "media.sessionComplete"
9
- };