@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,5 +1,5 @@
1
1
  /*
2
- Copyright 2023 Adobe. All rights reserved.
2
+ Copyright 2024 Adobe. All rights reserved.
3
3
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License. You may obtain a copy
5
5
  of the License at http://www.apache.org/licenses/LICENSE-2.0
@@ -10,12 +10,7 @@ OF ANY KIND, either express or implied. See the License for the specific languag
10
10
  governing permissions and limitations under the License.
11
11
  */
12
12
  export default {
13
- PAUSE: "media.pauseStart",
14
- PLAY: "media.play",
15
- BUFFERING: "media.buffering",
16
- AD_START: "media.adStart",
17
- SESSION_END: "media.sessionEnd",
18
- SESSION_START: "media.sessionStart",
19
- SESSION_COMPLETE: "media.sessionComplete",
20
- PING: "media.ping"
13
+ MAIN: "main",
14
+ AD: "ad",
15
+ COMPLETED: "completed"
21
16
  };
@@ -9,18 +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
- /* eslint-disable import/no-restricted-paths */
13
-
14
12
  import MediaEvents from "./constants/eventTypes";
15
13
  import createMediaRequest from "./createMediaRequest";
16
- import injectTimestamp from "../Context/injectTimestamp";
17
14
  import { toInteger } from "../../utils";
18
15
  import { createDataCollectionRequestPayload } from "../../utils/request";
19
16
  export default (({
20
17
  config,
21
18
  eventManager,
22
19
  consent,
23
- sendEdgeNetworkRequest
20
+ sendEdgeNetworkRequest,
21
+ setTimestamp
24
22
  }) => {
25
23
  return {
26
24
  createMediaEvent({
@@ -30,17 +28,28 @@ export default (({
30
28
  const {
31
29
  xdm
32
30
  } = options;
33
- const timestamp = injectTimestamp(() => new Date());
34
- timestamp(xdm);
31
+ setTimestamp(xdm);
35
32
  event.setUserXdm(xdm);
33
+ if (xdm.eventType === MediaEvents.AD_START) {
34
+ const {
35
+ advertisingDetails
36
+ } = options.xdm.mediaCollection;
37
+ event.mergeXdm({
38
+ mediaCollection: {
39
+ advertisingDetails: {
40
+ playerName: advertisingDetails.playerName || config.streamingMedia.playerName
41
+ }
42
+ }
43
+ });
44
+ }
36
45
  return event;
37
46
  },
38
47
  createMediaSession(options) {
39
48
  const {
40
49
  playerName,
41
50
  channel,
42
- version
43
- } = config.mediaCollection;
51
+ appVersion
52
+ } = config.streamingMedia;
44
53
  const event = eventManager.createEvent();
45
54
  const {
46
55
  sessionDetails
@@ -52,7 +61,7 @@ export default (({
52
61
  sessionDetails: {
53
62
  playerName: sessionDetails.playerName || playerName,
54
63
  channel: sessionDetails.channel || channel,
55
- appVersion: sessionDetails.appVersion || version
64
+ appVersion: sessionDetails.appVersion || appVersion
56
65
  }
57
66
  }
58
67
  });
@@ -61,16 +70,16 @@ export default (({
61
70
  augmentMediaEvent({
62
71
  event,
63
72
  playerId,
64
- onBeforeMediaEvent,
73
+ getPlayerDetails,
65
74
  sessionID
66
75
  }) {
67
- if (!playerId || !onBeforeMediaEvent) {
76
+ if (!playerId || !getPlayerDetails) {
68
77
  return event;
69
78
  }
70
79
  const {
71
80
  playhead,
72
81
  qoeDataDetails
73
- } = onBeforeMediaEvent({
82
+ } = getPlayerDetails({
74
83
  playerId
75
84
  });
76
85
  event.mergeXdm({
@@ -84,12 +93,10 @@ export default (({
84
93
  },
85
94
  trackMediaSession({
86
95
  event,
87
- playerId,
88
- onBeforeMediaEvent
96
+ mediaOptions
89
97
  }) {
90
98
  return eventManager.sendEvent(event, {
91
- playerId,
92
- onBeforeMediaEvent
99
+ mediaOptions
93
100
  });
94
101
  },
95
102
  trackMediaEvent({
@@ -0,0 +1,58 @@
1
+ /*
2
+ Copyright 2024 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
+ import isBlankString from "../../utils/isBlankString";
13
+ import MediaEvents from "./constants/eventTypes";
14
+ import { isNonEmptyArray } from "../../utils";
15
+ import PlaybackState from "./constants/playbackState";
16
+ export default (({
17
+ mediaSessionCacheManager,
18
+ config,
19
+ trackMediaEvent
20
+ }) => {
21
+ return ({
22
+ response,
23
+ playerId,
24
+ getPlayerDetails
25
+ }) => {
26
+ const mediaPayload = response.getPayloadsByType("media-analytics:new-session");
27
+ if (isNonEmptyArray(mediaPayload)) {
28
+ const {
29
+ sessionId
30
+ } = mediaPayload[0];
31
+ if (isBlankString(sessionId)) {
32
+ return {};
33
+ }
34
+ if (!playerId || !getPlayerDetails) {
35
+ return {
36
+ sessionId
37
+ };
38
+ }
39
+ const pingId = setTimeout(() => {
40
+ trackMediaEvent({
41
+ playerId,
42
+ xdm: {
43
+ eventType: MediaEvents.PING
44
+ }
45
+ });
46
+ }, config.streamingMedia.mainPingInterval * 1000);
47
+ mediaSessionCacheManager.savePing({
48
+ playerId,
49
+ pingId,
50
+ playbackState: PlaybackState.MAIN
51
+ });
52
+ return {
53
+ sessionId
54
+ };
55
+ }
56
+ return {};
57
+ };
58
+ });
@@ -10,39 +10,36 @@ OF ANY KIND, either express or implied. See the License for the specific languag
10
10
  governing permissions and limitations under the License.
11
11
  */
12
12
 
13
+ import PlaybackState from "./constants/playbackState";
13
14
  export default (() => {
14
15
  let mediaSessionCache;
15
16
  const getSession = playerId => {
16
17
  return mediaSessionCache[playerId] || {};
17
18
  };
18
- const saveHeartbeat = ({
19
+ const savePing = ({
19
20
  playerId,
20
- heartbeatId
21
+ pingId,
22
+ playbackState
21
23
  }) => {
22
- const sessionDetails = mediaSessionCache[playerId];
23
- if (!sessionDetails) {
24
+ if (!mediaSessionCache[playerId]) {
24
25
  return;
25
26
  }
26
- sessionDetails.heartbeatId = heartbeatId;
27
- };
28
- const stopHeartbeat = ({
29
- playerId
30
- }) => {
31
- const sessionDetails = mediaSessionCache[playerId];
32
- if (!sessionDetails) {
33
- return;
27
+ if (mediaSessionCache[playerId].pingId) {
28
+ clearTimeout(mediaSessionCache[playerId].pingId);
34
29
  }
35
- clearInterval(sessionDetails.heartbeatId);
36
- sessionDetails.heartbeatId = null;
30
+ mediaSessionCache[playerId].pingId = pingId;
31
+ mediaSessionCache[playerId].playbackState = playbackState;
37
32
  };
38
- const updateLastTriggeredEventTS = ({
33
+ const stopPing = ({
39
34
  playerId
40
35
  }) => {
41
36
  const sessionDetails = mediaSessionCache[playerId];
42
37
  if (!sessionDetails) {
43
38
  return;
44
39
  }
45
- sessionDetails.latestTriggeredEvent = Date.now();
40
+ clearTimeout(sessionDetails.pingId);
41
+ sessionDetails.pingId = null;
42
+ sessionDetails.playbackState = PlaybackState.COMPLETED;
46
43
  };
47
44
  const storeSession = ({
48
45
  playerId,
@@ -55,9 +52,8 @@ export default (() => {
55
52
  };
56
53
  return {
57
54
  getSession,
58
- stopHeartbeat,
59
- updateLastTriggeredEventTS,
60
55
  storeSession,
61
- saveHeartbeat
56
+ stopPing,
57
+ savePing
62
58
  };
63
59
  });
@@ -0,0 +1,69 @@
1
+ /*
2
+ Copyright 2024 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
+ import { noop } from "../../utils";
13
+ import validateSessionOptions from "./validateMediaSessionOptions";
14
+ import validateMediaEventOptions from "./validateMediaEventOptions";
15
+ export default (({
16
+ config,
17
+ trackMediaEvent,
18
+ trackMediaSession,
19
+ mediaResponseHandler
20
+ }) => {
21
+ return {
22
+ lifecycle: {
23
+ onBeforeEvent({
24
+ mediaOptions,
25
+ onResponse = noop
26
+ }) {
27
+ if (!mediaOptions) {
28
+ return;
29
+ }
30
+ const {
31
+ legacy,
32
+ playerId,
33
+ getPlayerDetails
34
+ } = mediaOptions;
35
+ if (legacy) {
36
+ return;
37
+ }
38
+ onResponse(({
39
+ response
40
+ }) => {
41
+ return mediaResponseHandler({
42
+ playerId,
43
+ getPlayerDetails,
44
+ response
45
+ });
46
+ });
47
+ }
48
+ },
49
+ commands: {
50
+ createMediaSession: {
51
+ optionsValidator: options => validateSessionOptions({
52
+ options
53
+ }),
54
+ run: trackMediaSession
55
+ },
56
+ sendMediaEvent: {
57
+ optionsValidator: options => validateMediaEventOptions({
58
+ options
59
+ }),
60
+ run: options => {
61
+ if (!config.streamingMedia) {
62
+ return Promise.reject(new Error("Streaming media is not configured."));
63
+ }
64
+ return trackMediaEvent(options);
65
+ }
66
+ }
67
+ }
68
+ };
69
+ });
@@ -0,0 +1,88 @@
1
+ /*
2
+ Copyright 2024 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
+ import MediaEvents from "./constants/eventTypes";
13
+ const getContentState = (eventType, sessionContentState) => {
14
+ if (eventType === MediaEvents.AD_START || eventType === MediaEvents.Ad_BREAK_START || eventType === MediaEvents.AD_SKIP || eventType === MediaEvents.AD_COMPLETE) {
15
+ return "ad";
16
+ }
17
+ if (eventType === MediaEvents.AD_BREAK_COMPLETE || eventType === MediaEvents.CHAPTER_COMPLETE || eventType === MediaEvents.CHAPTER_START || eventType === MediaEvents.CHAPTER_SKIP || eventType === MediaEvents.SESSION_START) {
18
+ return "main";
19
+ }
20
+ if (eventType === MediaEvents.SESSION_END || eventType === MediaEvents.SESSION_COMPLETE) {
21
+ return "completed";
22
+ }
23
+ return sessionContentState;
24
+ };
25
+ export default (({
26
+ mediaEventManager,
27
+ mediaSessionCacheManager,
28
+ config
29
+ }) => {
30
+ const sendMediaEvent = options => {
31
+ const event = mediaEventManager.createMediaEvent({
32
+ options
33
+ });
34
+ const {
35
+ playerId,
36
+ xdm
37
+ } = options;
38
+ const eventType = xdm.eventType;
39
+ const action = eventType.split(".")[1];
40
+ const {
41
+ getPlayerDetails,
42
+ sessionPromise,
43
+ playbackState
44
+ } = mediaSessionCacheManager.getSession(playerId);
45
+ return sessionPromise.then(result => {
46
+ mediaEventManager.augmentMediaEvent({
47
+ event,
48
+ eventType,
49
+ playerId,
50
+ getPlayerDetails,
51
+ sessionID: result.sessionId
52
+ });
53
+ return mediaEventManager.trackMediaEvent({
54
+ event,
55
+ action
56
+ }).then(() => {
57
+ if (playerId) {
58
+ if (eventType === MediaEvents.SESSION_COMPLETE || eventType === MediaEvents.SESSION_END) {
59
+ mediaSessionCacheManager.stopPing({
60
+ playerId
61
+ });
62
+ } else {
63
+ const sessionPlaybackState = getContentState(eventType, playbackState);
64
+ if (sessionPlaybackState === "completed") {
65
+ return;
66
+ }
67
+ const interval = sessionPlaybackState === "ad" ? config.streamingMedia.adPingInterval : config.streamingMedia.mainPingInterval;
68
+ const pingId = setTimeout(() => {
69
+ const pingOptions = {
70
+ playerId,
71
+ xdm: {
72
+ eventType: MediaEvents.PING
73
+ }
74
+ };
75
+ sendMediaEvent(pingOptions);
76
+ }, interval * 1000);
77
+ mediaSessionCacheManager.savePing({
78
+ playerId,
79
+ pingId,
80
+ playbackState: sessionPlaybackState
81
+ });
82
+ }
83
+ }
84
+ });
85
+ });
86
+ };
87
+ return options => sendMediaEvent(options);
88
+ });
@@ -0,0 +1,51 @@
1
+ /*
2
+ Copyright 2024 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
+ import PlaybackState from "./constants/playbackState";
13
+ export default (({
14
+ config,
15
+ mediaEventManager,
16
+ mediaSessionCacheManager,
17
+ legacy = false
18
+ }) => {
19
+ return options => {
20
+ if (!config.streamingMedia) {
21
+ return Promise.reject(new Error("Streaming media is not configured."));
22
+ }
23
+ const {
24
+ playerId,
25
+ getPlayerDetails
26
+ } = options;
27
+ const event = mediaEventManager.createMediaSession(options);
28
+ mediaEventManager.augmentMediaEvent({
29
+ event,
30
+ playerId,
31
+ getPlayerDetails
32
+ });
33
+ const sessionPromise = mediaEventManager.trackMediaSession({
34
+ event,
35
+ mediaOptions: {
36
+ playerId,
37
+ getPlayerDetails,
38
+ legacy
39
+ }
40
+ });
41
+ mediaSessionCacheManager.storeSession({
42
+ playerId,
43
+ sessionDetails: {
44
+ sessionPromise,
45
+ getPlayerDetails,
46
+ playbackState: PlaybackState.MAIN
47
+ }
48
+ });
49
+ return sessionPromise;
50
+ };
51
+ });
@@ -0,0 +1,64 @@
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
+ /* eslint-disable import/no-restricted-paths */
13
+ import createMediaSessionCacheManager from "./createMediaSessionCacheManager";
14
+ import createMediaEventManager from "./createMediaEventManager";
15
+ import createTrackMediaEvent from "./createTrackMediaEvent";
16
+ import configValidators from "./configValidators";
17
+ import createStreamingMediaComponent from "./createStreamingMediaComponent";
18
+ import createTrackMediaSession from "./createTrackMediaSession";
19
+ import createMediaResponseHandler from "./createMediaResponseHandler";
20
+ import injectTimestamp from "../Context/injectTimestamp";
21
+ const createStreamingMedia = ({
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
+ setTimestamp: injectTimestamp(() => new Date())
38
+ });
39
+ const trackMediaEvent = createTrackMediaEvent({
40
+ mediaSessionCacheManager,
41
+ mediaEventManager,
42
+ config
43
+ });
44
+ const trackMediaSession = createTrackMediaSession({
45
+ config,
46
+ mediaEventManager,
47
+ mediaSessionCacheManager
48
+ });
49
+ const mediaResponseHandler = createMediaResponseHandler({
50
+ mediaSessionCacheManager,
51
+ config,
52
+ trackMediaEvent
53
+ });
54
+ return createStreamingMediaComponent({
55
+ config,
56
+ trackMediaEvent,
57
+ mediaEventManager,
58
+ mediaResponseHandler,
59
+ trackMediaSession
60
+ });
61
+ };
62
+ createStreamingMedia.namespace = "Streaming media";
63
+ createStreamingMedia.configValidators = configValidators;
64
+ export default createStreamingMedia;
@@ -9,19 +9,20 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
9
  OF ANY KIND, either express or implied. See the License for the specific language
10
10
  governing permissions and limitations under the License.
11
11
  */
12
- import { anyOf, anything, number, objectOf, string } from "../../utils/validation";
12
+ import { anyOf, anything, enumOf, number, objectOf, string } from "../../utils/validation";
13
+ import EventTypes from "./constants/eventTypes";
13
14
  export default (({
14
15
  options
15
16
  }) => {
16
17
  const validator = anyOf([objectOf({
17
18
  playerId: string().required(),
18
19
  xdm: objectOf({
19
- eventType: string().required(),
20
+ eventType: enumOf(...Object.values(EventTypes)).required(),
20
21
  mediaCollection: objectOf(anything())
21
22
  }).required()
22
23
  }).required(), objectOf({
23
24
  xdm: objectOf({
24
- eventType: string().required(),
25
+ eventType: enumOf(...Object.values(EventTypes)).required(),
25
26
  mediaCollection: objectOf({
26
27
  playhead: number().integer().required(),
27
28
  sessionID: string().required()
@@ -16,7 +16,7 @@ export default (({
16
16
  }) => {
17
17
  const sessionValidator = anyOf([objectOf({
18
18
  playerId: string().required(),
19
- onBeforeMediaEvent: callback().required(),
19
+ getPlayerDetails: callback().required(),
20
20
  xdm: objectOf({
21
21
  mediaCollection: objectOf({
22
22
  sessionDetails: objectOf(anything()).required()
@@ -13,4 +13,4 @@ governing permissions and limitations under the License.
13
13
  // The __VERSION__ keyword will be replace at alloy build time with the package.json version.
14
14
  // see babel-plugin-version
15
15
 
16
- export default "2.20.0-alpha.1";
16
+ export default "2.20.0-beta.0";
@@ -1,5 +1,5 @@
1
1
  /*
2
- Copyright 2019 Adobe. All rights reserved.
2
+ Copyright 2023 Adobe. All rights reserved.
3
3
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License. You may obtain a copy
5
5
  of the License at http://www.apache.org/licenses/LICENSE-2.0
@@ -9,23 +9,39 @@ 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
  // This is the only place where core is allowed to import from components.
13
14
  // This makes sure that each component could be removed without breaking the library
15
+
14
16
  /* eslint-disable import/no-restricted-paths */
17
+
15
18
  import createDataCollector from "../components/DataCollector";
19
+
20
+ /* @skipwhen ENV.alloy_activitycollector === false */
16
21
  import createActivityCollector from "../components/ActivityCollector";
17
22
  import createIdentity from "../components/Identity";
23
+
24
+ /* @skipwhen ENV.alloy_audiences === false */
18
25
  import createAudiences from "../components/Audiences";
26
+
27
+ /* @skipwhen ENV.alloy_personalization === false */
19
28
  import createPersonalization from "../components/Personalization";
20
29
  import createContext from "../components/Context";
21
30
  import createPrivacy from "../components/Privacy";
31
+
32
+ /* @skipwhen ENV.alloy_eventmerge === false */
22
33
  import createEventMerge from "../components/EventMerge";
23
34
  import createLibraryInfo from "../components/LibraryInfo";
35
+
36
+ /* @skipwhen ENV.alloy_decisioningengine === false */
24
37
  import createDecisioningEngine from "../components/DecisioningEngine";
38
+
39
+ /* @skipwhen ENV.alloy_machinelearning === false */
25
40
  import createMachineLearning from "../components/MachineLearning";
26
- import createMediaCollection from "../components/MediaCollection";
41
+ import createStreamingMedia from "../components/StreamingMedia";
27
42
  import createLegacyMediaAnalytics from "../components/LegacyMediaAnalytics";
28
43
 
29
44
  // TODO: Register the Components here statically for now. They might be registered differently.
30
45
  // TODO: Figure out how sub-components will be made available/registered
31
- export default [createDataCollector, createActivityCollector, createIdentity, createAudiences, createPersonalization, createContext, createPrivacy, createEventMerge, createLibraryInfo, createMachineLearning, createDecisioningEngine, createLegacyMediaAnalytics, createMediaCollection];
46
+
47
+ export default [createDataCollector, createActivityCollector, createIdentity, createAudiences, createPersonalization, createContext, createPrivacy, createEventMerge, createLibraryInfo, createMachineLearning, createDecisioningEngine, createLegacyMediaAnalytics, createStreamingMedia];
@@ -52,6 +52,9 @@ export default (({
52
52
  },
53
53
  withConsent() {
54
54
  return generalConsentState.withConsent();
55
+ },
56
+ current() {
57
+ return generalConsentState.current();
55
58
  }
56
59
  };
57
60
  });
@@ -86,6 +86,40 @@ export default (({
86
86
  awaitConsent: awaitInitial,
87
87
  withConsent() {
88
88
  return this.awaitConsent(true);
89
+ },
90
+ current() {
91
+ switch (this.awaitConsent) {
92
+ case awaitInDefault:
93
+ return {
94
+ state: "in",
95
+ wasSet: false
96
+ };
97
+ case awaitIn:
98
+ return {
99
+ state: "in",
100
+ wasSet: true
101
+ };
102
+ case awaitOutDefault:
103
+ return {
104
+ state: "out",
105
+ wasSet: false
106
+ };
107
+ case awaitOut:
108
+ return {
109
+ state: "out",
110
+ wasSet: true
111
+ };
112
+ case awaitPending:
113
+ return {
114
+ state: "pending",
115
+ wasSet: false
116
+ };
117
+ default:
118
+ return {
119
+ state: "in",
120
+ wasSet: false
121
+ };
122
+ }
89
123
  }
90
124
  };
91
125
  });
@@ -75,6 +75,9 @@ export default (() => {
75
75
  },
76
76
  getLifecycleCallbacks(hookName) {
77
77
  return lifecycleCallbacksByName[hookName] || [];
78
+ },
79
+ getComponentNames() {
80
+ return Object.keys(componentsByNamespace);
78
81
  }
79
82
  };
80
83
  });