@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
@@ -14,9 +14,8 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
14
14
  OF ANY KIND, either express or implied. See the License for the specific language
15
15
  governing permissions and limitations under the License.
16
16
  */
17
- var _default = (0, _validation.objectOf)({
17
+ var _default = exports.default = (0, _validation.objectOf)({
18
18
  consent: (0, _validation.arrayOf)((0, _validation.anything)()).required().nonEmpty(),
19
19
  identityMap: _utils.validateIdentityMap,
20
20
  edgeConfigOverrides: _utils.validateConfigOverride
21
- }).noUnknownFields().required();
22
- exports.default = _default;
21
+ }).noUnknownFields().required();
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _validation = require("../../utils/validation");
5
+ /*
6
+ Copyright 2024 Adobe. All rights reserved.
7
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License. You may obtain a copy
9
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software distributed under
12
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
13
+ OF ANY KIND, either express or implied. See the License for the specific language
14
+ governing permissions and limitations under the License.
15
+ */
16
+ var _default = exports.default = (0, _validation.objectOf)({
17
+ streamingMedia: (0, _validation.objectOf)({
18
+ channel: (0, _validation.string)().nonEmpty().required(),
19
+ playerName: (0, _validation.string)().nonEmpty().required(),
20
+ appVersion: (0, _validation.string)(),
21
+ mainPingInterval: (0, _validation.number)().minimum(10).maximum(50).default(10),
22
+ adPingInterval: (0, _validation.number)().minimum(1).maximum(10).default(10)
23
+ }).noUnknownFields()
24
+ });
@@ -12,14 +12,23 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
12
12
  OF ANY KIND, either express or implied. See the License for the specific language
13
13
  governing permissions and limitations under the License.
14
14
  */
15
- var _default = {
15
+ var _default = exports.default = {
16
16
  PAUSE: "media.pauseStart",
17
17
  PLAY: "media.play",
18
- BUFFERING: "media.buffering",
18
+ BUFFER_START: "media.bufferStart",
19
19
  AD_START: "media.adStart",
20
+ Ad_BREAK_START: "media.adBreakStart",
20
21
  SESSION_END: "media.sessionEnd",
21
22
  SESSION_START: "media.sessionStart",
22
23
  SESSION_COMPLETE: "media.sessionComplete",
23
- PING: "media.ping"
24
- };
25
- exports.default = _default;
24
+ PING: "media.ping",
25
+ AD_BREAK_COMPLETE: "media.adBreakComplete",
26
+ AD_COMPLETE: "media.adComplete",
27
+ AD_SKIP: "media.adSkip",
28
+ BITRATE_CHANGE: "media.bitrateChange",
29
+ CHAPTER_COMPLETE: "media.chapterComplete",
30
+ CHAPTER_SKIP: "media.chapterSkip",
31
+ CHAPTER_START: "media.chapterStart",
32
+ ERROR: "media.error",
33
+ STATES_UPDATE: "media.statesUpdate"
34
+ };
@@ -1,5 +1,8 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
1
4
  /*
2
- Copyright 2023 Adobe. All rights reserved.
5
+ Copyright 2024 Adobe. All rights reserved.
3
6
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
7
  you may not use this file except in compliance with the License. You may obtain a copy
5
8
  of the License at http://www.apache.org/licenses/LICENSE-2.0
@@ -9,14 +12,8 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
9
12
  OF ANY KIND, either express or implied. See the License for the specific language
10
13
  governing permissions and limitations under the License.
11
14
  */
12
- export default ((fn, delay = 150) => {
13
- let timer;
14
- return (...args) => {
15
- if (timer) {
16
- clearTimeout(timer);
17
- }
18
- timer = setTimeout(() => {
19
- fn(...args);
20
- }, delay);
21
- };
22
- });
15
+ var _default = exports.default = {
16
+ MAIN: "main",
17
+ AD: "ad",
18
+ COMPLETED: "completed"
19
+ };
@@ -3,7 +3,6 @@
3
3
  exports.default = void 0;
4
4
  var _eventTypes = require("./constants/eventTypes");
5
5
  var _createMediaRequest = require("./createMediaRequest");
6
- var _injectTimestamp = require("../Context/injectTimestamp");
7
6
  var _utils = require("../../utils");
8
7
  var _request = require("../../utils/request");
9
8
  /*
@@ -17,29 +16,36 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
17
16
  OF ANY KIND, either express or implied. See the License for the specific language
18
17
  governing permissions and limitations under the License.
19
18
  */
20
- /* eslint-disable import/no-restricted-paths */
21
- var _default = function _default(_ref) {
19
+ var _default = exports.default = function _default(_ref) {
22
20
  var config = _ref.config,
23
21
  eventManager = _ref.eventManager,
24
22
  consent = _ref.consent,
25
- sendEdgeNetworkRequest = _ref.sendEdgeNetworkRequest;
23
+ sendEdgeNetworkRequest = _ref.sendEdgeNetworkRequest,
24
+ setTimestamp = _ref.setTimestamp;
26
25
  return {
27
26
  createMediaEvent: function createMediaEvent(_ref2) {
28
27
  var options = _ref2.options;
29
28
  var event = eventManager.createEvent();
30
29
  var xdm = options.xdm;
31
- var timestamp = (0, _injectTimestamp.default)(function () {
32
- return new Date();
33
- });
34
- timestamp(xdm);
30
+ setTimestamp(xdm);
35
31
  event.setUserXdm(xdm);
32
+ if (xdm.eventType === _eventTypes.default.AD_START) {
33
+ var advertisingDetails = options.xdm.mediaCollection.advertisingDetails;
34
+ event.mergeXdm({
35
+ mediaCollection: {
36
+ advertisingDetails: {
37
+ playerName: advertisingDetails.playerName || config.streamingMedia.playerName
38
+ }
39
+ }
40
+ });
41
+ }
36
42
  return event;
37
43
  },
38
44
  createMediaSession: function createMediaSession(options) {
39
- var _config$mediaCollecti = config.mediaCollection,
40
- playerName = _config$mediaCollecti.playerName,
41
- channel = _config$mediaCollecti.channel,
42
- version = _config$mediaCollecti.version;
45
+ var _config$streamingMedi = config.streamingMedia,
46
+ playerName = _config$streamingMedi.playerName,
47
+ channel = _config$streamingMedi.channel,
48
+ appVersion = _config$streamingMedi.appVersion;
43
49
  var event = eventManager.createEvent();
44
50
  var sessionDetails = options.xdm.mediaCollection.sessionDetails;
45
51
  event.setUserXdm(options.xdm);
@@ -49,7 +55,7 @@ var _default = function _default(_ref) {
49
55
  sessionDetails: {
50
56
  playerName: sessionDetails.playerName || playerName,
51
57
  channel: sessionDetails.channel || channel,
52
- appVersion: sessionDetails.appVersion || version
58
+ appVersion: sessionDetails.appVersion || appVersion
53
59
  }
54
60
  }
55
61
  });
@@ -58,16 +64,16 @@ var _default = function _default(_ref) {
58
64
  augmentMediaEvent: function augmentMediaEvent(_ref3) {
59
65
  var event = _ref3.event,
60
66
  playerId = _ref3.playerId,
61
- onBeforeMediaEvent = _ref3.onBeforeMediaEvent,
67
+ getPlayerDetails = _ref3.getPlayerDetails,
62
68
  sessionID = _ref3.sessionID;
63
- if (!playerId || !onBeforeMediaEvent) {
69
+ if (!playerId || !getPlayerDetails) {
64
70
  return event;
65
71
  }
66
- var _onBeforeMediaEvent = onBeforeMediaEvent({
72
+ var _getPlayerDetails = getPlayerDetails({
67
73
  playerId: playerId
68
74
  }),
69
- playhead = _onBeforeMediaEvent.playhead,
70
- qoeDataDetails = _onBeforeMediaEvent.qoeDataDetails;
75
+ playhead = _getPlayerDetails.playhead,
76
+ qoeDataDetails = _getPlayerDetails.qoeDataDetails;
71
77
  event.mergeXdm({
72
78
  mediaCollection: {
73
79
  playhead: (0, _utils.toInteger)(playhead),
@@ -79,11 +85,9 @@ var _default = function _default(_ref) {
79
85
  },
80
86
  trackMediaSession: function trackMediaSession(_ref4) {
81
87
  var event = _ref4.event,
82
- playerId = _ref4.playerId,
83
- onBeforeMediaEvent = _ref4.onBeforeMediaEvent;
88
+ mediaOptions = _ref4.mediaOptions;
84
89
  return eventManager.sendEvent(event, {
85
- playerId: playerId,
86
- onBeforeMediaEvent: onBeforeMediaEvent
90
+ mediaOptions: mediaOptions
87
91
  });
88
92
  },
89
93
  trackMediaEvent: function trackMediaEvent(_ref5) {
@@ -105,5 +109,4 @@ var _default = function _default(_ref) {
105
109
  });
106
110
  }
107
111
  };
108
- };
109
- exports.default = _default;
112
+ };
@@ -13,7 +13,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
13
13
  OF ANY KIND, either express or implied. See the License for the specific language
14
14
  governing permissions and limitations under the License.
15
15
  */
16
- var _default = function _default(_ref) {
16
+ var _default = exports.default = function _default(_ref) {
17
17
  var mediaRequestPayload = _ref.mediaRequestPayload,
18
18
  action = _ref.action;
19
19
  return (0, _request.createRequest)({
@@ -26,5 +26,4 @@ var _default = function _default(_ref) {
26
26
  return false;
27
27
  }
28
28
  });
29
- };
30
- exports.default = _default;
29
+ };
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _isBlankString = require("../../utils/isBlankString");
5
+ var _eventTypes = require("./constants/eventTypes");
6
+ var _utils = require("../../utils");
7
+ var _playbackState = require("./constants/playbackState");
8
+ /*
9
+ Copyright 2024 Adobe. All rights reserved.
10
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License. You may obtain a copy
12
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
13
+
14
+ Unless required by applicable law or agreed to in writing, software distributed under
15
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
16
+ OF ANY KIND, either express or implied. See the License for the specific language
17
+ governing permissions and limitations under the License.
18
+ */
19
+ var _default = exports.default = function _default(_ref) {
20
+ var mediaSessionCacheManager = _ref.mediaSessionCacheManager,
21
+ config = _ref.config,
22
+ trackMediaEvent = _ref.trackMediaEvent;
23
+ return function (_ref2) {
24
+ var response = _ref2.response,
25
+ playerId = _ref2.playerId,
26
+ getPlayerDetails = _ref2.getPlayerDetails;
27
+ var mediaPayload = response.getPayloadsByType("media-analytics:new-session");
28
+ if ((0, _utils.isNonEmptyArray)(mediaPayload)) {
29
+ var sessionId = mediaPayload[0].sessionId;
30
+ if ((0, _isBlankString.default)(sessionId)) {
31
+ return {};
32
+ }
33
+ if (!playerId || !getPlayerDetails) {
34
+ return {
35
+ sessionId: sessionId
36
+ };
37
+ }
38
+ var pingId = setTimeout(function () {
39
+ trackMediaEvent({
40
+ playerId: playerId,
41
+ xdm: {
42
+ eventType: _eventTypes.default.PING
43
+ }
44
+ });
45
+ }, config.streamingMedia.mainPingInterval * 1000);
46
+ mediaSessionCacheManager.savePing({
47
+ playerId: playerId,
48
+ pingId: pingId,
49
+ playbackState: _playbackState.default.MAIN
50
+ });
51
+ return {
52
+ sessionId: sessionId
53
+ };
54
+ }
55
+ return {};
56
+ };
57
+ };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.default = void 0;
4
+ var _playbackState = require("./constants/playbackState");
4
5
  /*
5
6
  Copyright 2023 Adobe. All rights reserved.
6
7
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -12,40 +13,37 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
12
13
  OF ANY KIND, either express or implied. See the License for the specific language
13
14
  governing permissions and limitations under the License.
14
15
  */
15
- var _default = function _default() {
16
+ var _default = exports.default = function _default() {
16
17
  var mediaSessionCache;
17
18
  var getSession = function getSession(playerId) {
18
19
  return mediaSessionCache[playerId] || {};
19
20
  };
20
- var saveHeartbeat = function saveHeartbeat(_ref) {
21
+ var savePing = function savePing(_ref) {
21
22
  var playerId = _ref.playerId,
22
- heartbeatId = _ref.heartbeatId;
23
- var sessionDetails = mediaSessionCache[playerId];
24
- if (!sessionDetails) {
23
+ pingId = _ref.pingId,
24
+ playbackState = _ref.playbackState;
25
+ if (!mediaSessionCache[playerId]) {
25
26
  return;
26
27
  }
27
- sessionDetails.heartbeatId = heartbeatId;
28
- };
29
- var stopHeartbeat = function stopHeartbeat(_ref2) {
30
- var playerId = _ref2.playerId;
31
- var sessionDetails = mediaSessionCache[playerId];
32
- if (!sessionDetails) {
33
- return;
28
+ if (mediaSessionCache[playerId].pingId) {
29
+ clearTimeout(mediaSessionCache[playerId].pingId);
34
30
  }
35
- clearInterval(sessionDetails.heartbeatId);
36
- sessionDetails.heartbeatId = null;
31
+ mediaSessionCache[playerId].pingId = pingId;
32
+ mediaSessionCache[playerId].playbackState = playbackState;
37
33
  };
38
- var updateLastTriggeredEventTS = function updateLastTriggeredEventTS(_ref3) {
39
- var playerId = _ref3.playerId;
34
+ var stopPing = function stopPing(_ref2) {
35
+ var playerId = _ref2.playerId;
40
36
  var sessionDetails = mediaSessionCache[playerId];
41
37
  if (!sessionDetails) {
42
38
  return;
43
39
  }
44
- sessionDetails.latestTriggeredEvent = Date.now();
40
+ clearTimeout(sessionDetails.pingId);
41
+ sessionDetails.pingId = null;
42
+ sessionDetails.playbackState = _playbackState.default.COMPLETED;
45
43
  };
46
- var storeSession = function storeSession(_ref4) {
47
- var playerId = _ref4.playerId,
48
- sessionDetails = _ref4.sessionDetails;
44
+ var storeSession = function storeSession(_ref3) {
45
+ var playerId = _ref3.playerId,
46
+ sessionDetails = _ref3.sessionDetails;
49
47
  if (mediaSessionCache === undefined) {
50
48
  mediaSessionCache = {};
51
49
  }
@@ -53,10 +51,8 @@ var _default = function _default() {
53
51
  };
54
52
  return {
55
53
  getSession: getSession,
56
- stopHeartbeat: stopHeartbeat,
57
- updateLastTriggeredEventTS: updateLastTriggeredEventTS,
58
54
  storeSession: storeSession,
59
- saveHeartbeat: saveHeartbeat
55
+ stopPing: stopPing,
56
+ savePing: savePing
60
57
  };
61
- };
62
- exports.default = _default;
58
+ };
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _utils = require("../../utils");
5
+ var _validateMediaSessionOptions = require("./validateMediaSessionOptions");
6
+ var _validateMediaEventOptions = require("./validateMediaEventOptions");
7
+ /*
8
+ Copyright 2024 Adobe. All rights reserved.
9
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
10
+ you may not use this file except in compliance with the License. You may obtain a copy
11
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software distributed under
14
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
15
+ OF ANY KIND, either express or implied. See the License for the specific language
16
+ governing permissions and limitations under the License.
17
+ */
18
+ var _default = exports.default = function _default(_ref) {
19
+ var config = _ref.config,
20
+ trackMediaEvent = _ref.trackMediaEvent,
21
+ trackMediaSession = _ref.trackMediaSession,
22
+ mediaResponseHandler = _ref.mediaResponseHandler;
23
+ return {
24
+ lifecycle: {
25
+ onBeforeEvent: function onBeforeEvent(_ref2) {
26
+ var mediaOptions = _ref2.mediaOptions,
27
+ _ref2$onResponse = _ref2.onResponse,
28
+ onResponse = _ref2$onResponse === void 0 ? _utils.noop : _ref2$onResponse;
29
+ if (!mediaOptions) {
30
+ return;
31
+ }
32
+ var legacy = mediaOptions.legacy,
33
+ playerId = mediaOptions.playerId,
34
+ getPlayerDetails = mediaOptions.getPlayerDetails;
35
+ if (legacy) {
36
+ return;
37
+ }
38
+ onResponse(function (_ref3) {
39
+ var response = _ref3.response;
40
+ return mediaResponseHandler({
41
+ playerId: playerId,
42
+ getPlayerDetails: getPlayerDetails,
43
+ response: response
44
+ });
45
+ });
46
+ }
47
+ },
48
+ commands: {
49
+ createMediaSession: {
50
+ optionsValidator: function optionsValidator(options) {
51
+ return (0, _validateMediaSessionOptions.default)({
52
+ options: options
53
+ });
54
+ },
55
+ run: trackMediaSession
56
+ },
57
+ sendMediaEvent: {
58
+ optionsValidator: function optionsValidator(options) {
59
+ return (0, _validateMediaEventOptions.default)({
60
+ options: options
61
+ });
62
+ },
63
+ run: function run(options) {
64
+ if (!config.streamingMedia) {
65
+ return Promise.reject(new Error("Streaming media is not configured."));
66
+ }
67
+ return trackMediaEvent(options);
68
+ }
69
+ }
70
+ }
71
+ };
72
+ };
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _eventTypes = require("./constants/eventTypes");
5
+ /*
6
+ Copyright 2024 Adobe. All rights reserved.
7
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License. You may obtain a copy
9
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software distributed under
12
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
13
+ OF ANY KIND, either express or implied. See the License for the specific language
14
+ governing permissions and limitations under the License.
15
+ */
16
+
17
+ var getContentState = function getContentState(eventType, sessionContentState) {
18
+ if (eventType === _eventTypes.default.AD_START || eventType === _eventTypes.default.Ad_BREAK_START || eventType === _eventTypes.default.AD_SKIP || eventType === _eventTypes.default.AD_COMPLETE) {
19
+ return "ad";
20
+ }
21
+ if (eventType === _eventTypes.default.AD_BREAK_COMPLETE || eventType === _eventTypes.default.CHAPTER_COMPLETE || eventType === _eventTypes.default.CHAPTER_START || eventType === _eventTypes.default.CHAPTER_SKIP || eventType === _eventTypes.default.SESSION_START) {
22
+ return "main";
23
+ }
24
+ if (eventType === _eventTypes.default.SESSION_END || eventType === _eventTypes.default.SESSION_COMPLETE) {
25
+ return "completed";
26
+ }
27
+ return sessionContentState;
28
+ };
29
+ var _default = exports.default = function _default(_ref) {
30
+ var mediaEventManager = _ref.mediaEventManager,
31
+ mediaSessionCacheManager = _ref.mediaSessionCacheManager,
32
+ config = _ref.config;
33
+ var sendMediaEvent = function sendMediaEvent(options) {
34
+ var event = mediaEventManager.createMediaEvent({
35
+ options: options
36
+ });
37
+ var playerId = options.playerId,
38
+ xdm = options.xdm;
39
+ var eventType = xdm.eventType;
40
+ var action = eventType.split(".")[1];
41
+ var _mediaSessionCacheMan = mediaSessionCacheManager.getSession(playerId),
42
+ getPlayerDetails = _mediaSessionCacheMan.getPlayerDetails,
43
+ sessionPromise = _mediaSessionCacheMan.sessionPromise,
44
+ playbackState = _mediaSessionCacheMan.playbackState;
45
+ return sessionPromise.then(function (result) {
46
+ mediaEventManager.augmentMediaEvent({
47
+ event: event,
48
+ eventType: eventType,
49
+ playerId: playerId,
50
+ getPlayerDetails: getPlayerDetails,
51
+ sessionID: result.sessionId
52
+ });
53
+ return mediaEventManager.trackMediaEvent({
54
+ event: event,
55
+ action: action
56
+ }).then(function () {
57
+ if (playerId) {
58
+ if (eventType === _eventTypes.default.SESSION_COMPLETE || eventType === _eventTypes.default.SESSION_END) {
59
+ mediaSessionCacheManager.stopPing({
60
+ playerId: playerId
61
+ });
62
+ } else {
63
+ var sessionPlaybackState = getContentState(eventType, playbackState);
64
+ if (sessionPlaybackState === "completed") {
65
+ return;
66
+ }
67
+ var interval = sessionPlaybackState === "ad" ? config.streamingMedia.adPingInterval : config.streamingMedia.mainPingInterval;
68
+ var pingId = setTimeout(function () {
69
+ var pingOptions = {
70
+ playerId: playerId,
71
+ xdm: {
72
+ eventType: _eventTypes.default.PING
73
+ }
74
+ };
75
+ sendMediaEvent(pingOptions);
76
+ }, interval * 1000);
77
+ mediaSessionCacheManager.savePing({
78
+ playerId: playerId,
79
+ pingId: pingId,
80
+ playbackState: sessionPlaybackState
81
+ });
82
+ }
83
+ }
84
+ });
85
+ });
86
+ };
87
+ return function (options) {
88
+ return sendMediaEvent(options);
89
+ };
90
+ };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _playbackState = require("./constants/playbackState");
5
+ /*
6
+ Copyright 2024 Adobe. All rights reserved.
7
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License. You may obtain a copy
9
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software distributed under
12
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
13
+ OF ANY KIND, either express or implied. See the License for the specific language
14
+ governing permissions and limitations under the License.
15
+ */
16
+ var _default = exports.default = function _default(_ref) {
17
+ var config = _ref.config,
18
+ mediaEventManager = _ref.mediaEventManager,
19
+ mediaSessionCacheManager = _ref.mediaSessionCacheManager,
20
+ _ref$legacy = _ref.legacy,
21
+ legacy = _ref$legacy === void 0 ? false : _ref$legacy;
22
+ return function (options) {
23
+ if (!config.streamingMedia) {
24
+ return Promise.reject(new Error("Streaming media is not configured."));
25
+ }
26
+ var playerId = options.playerId,
27
+ getPlayerDetails = options.getPlayerDetails;
28
+ var event = mediaEventManager.createMediaSession(options);
29
+ mediaEventManager.augmentMediaEvent({
30
+ event: event,
31
+ playerId: playerId,
32
+ getPlayerDetails: getPlayerDetails
33
+ });
34
+ var sessionPromise = mediaEventManager.trackMediaSession({
35
+ event: event,
36
+ mediaOptions: {
37
+ playerId: playerId,
38
+ getPlayerDetails: getPlayerDetails,
39
+ legacy: legacy
40
+ }
41
+ });
42
+ mediaSessionCacheManager.storeSession({
43
+ playerId: playerId,
44
+ sessionDetails: {
45
+ sessionPromise: sessionPromise,
46
+ getPlayerDetails: getPlayerDetails,
47
+ playbackState: _playbackState.default.MAIN
48
+ }
49
+ });
50
+ return sessionPromise;
51
+ };
52
+ };
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _createMediaSessionCacheManager = require("./createMediaSessionCacheManager");
5
+ var _createMediaEventManager = require("./createMediaEventManager");
6
+ var _createTrackMediaEvent = require("./createTrackMediaEvent");
7
+ var _configValidators = require("./configValidators");
8
+ var _createStreamingMediaComponent = require("./createStreamingMediaComponent");
9
+ var _createTrackMediaSession = require("./createTrackMediaSession");
10
+ var _createMediaResponseHandler = require("./createMediaResponseHandler");
11
+ var _injectTimestamp = require("../Context/injectTimestamp");
12
+ /*
13
+ Copyright 2023 Adobe. All rights reserved.
14
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
15
+ you may not use this file except in compliance with the License. You may obtain a copy
16
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
17
+
18
+ Unless required by applicable law or agreed to in writing, software distributed under
19
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
20
+ OF ANY KIND, either express or implied. See the License for the specific language
21
+ governing permissions and limitations under the License.
22
+ */
23
+ /* eslint-disable import/no-restricted-paths */
24
+
25
+ var createStreamingMedia = function createStreamingMedia(_ref) {
26
+ var config = _ref.config,
27
+ logger = _ref.logger,
28
+ eventManager = _ref.eventManager,
29
+ sendEdgeNetworkRequest = _ref.sendEdgeNetworkRequest,
30
+ consent = _ref.consent;
31
+ var mediaSessionCacheManager = (0, _createMediaSessionCacheManager.default)({
32
+ config: config
33
+ });
34
+ var mediaEventManager = (0, _createMediaEventManager.default)({
35
+ config: config,
36
+ eventManager: eventManager,
37
+ logger: logger,
38
+ consent: consent,
39
+ sendEdgeNetworkRequest: sendEdgeNetworkRequest,
40
+ setTimestamp: (0, _injectTimestamp.default)(function () {
41
+ return new Date();
42
+ })
43
+ });
44
+ var trackMediaEvent = (0, _createTrackMediaEvent.default)({
45
+ mediaSessionCacheManager: mediaSessionCacheManager,
46
+ mediaEventManager: mediaEventManager,
47
+ config: config
48
+ });
49
+ var trackMediaSession = (0, _createTrackMediaSession.default)({
50
+ config: config,
51
+ mediaEventManager: mediaEventManager,
52
+ mediaSessionCacheManager: mediaSessionCacheManager
53
+ });
54
+ var mediaResponseHandler = (0, _createMediaResponseHandler.default)({
55
+ mediaSessionCacheManager: mediaSessionCacheManager,
56
+ config: config,
57
+ trackMediaEvent: trackMediaEvent
58
+ });
59
+ return (0, _createStreamingMediaComponent.default)({
60
+ config: config,
61
+ trackMediaEvent: trackMediaEvent,
62
+ mediaEventManager: mediaEventManager,
63
+ mediaResponseHandler: mediaResponseHandler,
64
+ trackMediaSession: trackMediaSession
65
+ });
66
+ };
67
+ createStreamingMedia.namespace = "Streaming media";
68
+ createStreamingMedia.configValidators = _configValidators.default;
69
+ var _default = exports.default = createStreamingMedia;