@adobe/alloy 2.20.0-alpha.0 → 2.20.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/libEs5/baseCode/index.js +2 -3
  2. package/libEs5/components/ActivityCollector/attachClickActivityCollector.js +2 -3
  3. package/libEs5/components/ActivityCollector/configValidators.js +3 -5
  4. package/libEs5/components/ActivityCollector/createGetLinkDetails.js +2 -3
  5. package/libEs5/components/ActivityCollector/createLinkClick.js +2 -3
  6. package/libEs5/components/ActivityCollector/getLinkName.js +2 -3
  7. package/libEs5/components/ActivityCollector/getLinkRegion.js +2 -3
  8. package/libEs5/components/ActivityCollector/index.js +1 -2
  9. package/libEs5/components/ActivityCollector/utils.js +11 -21
  10. package/libEs5/components/Audiences/index.js +1 -2
  11. package/libEs5/components/Audiences/injectProcessDestinations.js +18 -16
  12. package/libEs5/components/Audiences/injectProcessResponse.js +2 -3
  13. package/libEs5/components/Context/createComponent.js +2 -3
  14. package/libEs5/components/Context/implementationDetails.js +2 -3
  15. package/libEs5/components/Context/index.js +17 -15
  16. package/libEs5/components/Context/injectDevice.js +2 -3
  17. package/libEs5/components/Context/injectEnvironment.js +6 -7
  18. package/libEs5/components/Context/injectHighEntropyUserAgentHints.js +15 -16
  19. package/libEs5/components/Context/injectPlaceContext.js +2 -3
  20. package/libEs5/components/Context/injectTimestamp.js +2 -3
  21. package/libEs5/components/Context/injectWeb.js +2 -3
  22. package/libEs5/components/DataCollector/index.js +1 -2
  23. package/libEs5/components/DataCollector/validateApplyResponse.js +2 -3
  24. package/libEs5/components/DataCollector/validateUserEventOptions.js +2 -3
  25. package/libEs5/components/DecisioningEngine/consequenceAdapters/inAppMessageConsequenceAdapter.js +2 -3
  26. package/libEs5/components/DecisioningEngine/consequenceAdapters/schemaTypeConsequenceAdapter.js +2 -3
  27. package/libEs5/components/DecisioningEngine/constants.js +4 -7
  28. package/libEs5/components/DecisioningEngine/createApplyResponse.js +2 -3
  29. package/libEs5/components/DecisioningEngine/createConsequenceAdapter.js +17 -16
  30. package/libEs5/components/DecisioningEngine/createContextProvider.js +18 -16
  31. package/libEs5/components/DecisioningEngine/createDecisionHistory.js +2 -3
  32. package/libEs5/components/DecisioningEngine/createDecisionProvider.js +2 -3
  33. package/libEs5/components/DecisioningEngine/createEvaluableRulesetPayload.js +18 -16
  34. package/libEs5/components/DecisioningEngine/createEvaluateRulesetsCommand.js +2 -3
  35. package/libEs5/components/DecisioningEngine/createEventRegistry.js +20 -20
  36. package/libEs5/components/DecisioningEngine/createOnResponseHandler.js +18 -16
  37. package/libEs5/components/DecisioningEngine/createSubscribeRulesetItems.js +18 -16
  38. package/libEs5/components/DecisioningEngine/index.js +19 -19
  39. package/libEs5/components/DecisioningEngine/utils.js +10 -18
  40. package/libEs5/components/EventMerge/createComponent.js +2 -3
  41. package/libEs5/components/EventMerge/createEventMergeId.js +2 -3
  42. package/libEs5/components/EventMerge/index.js +1 -2
  43. package/libEs5/components/Identity/addEcidQueryToPayload.js +2 -3
  44. package/libEs5/components/Identity/addEcidToPayload.js +2 -3
  45. package/libEs5/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +2 -3
  46. package/libEs5/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +4 -5
  47. package/libEs5/components/Identity/configValidators.js +1 -2
  48. package/libEs5/components/Identity/constants/authState.js +3 -6
  49. package/libEs5/components/Identity/constants/defaultIdSyncTtlMinutes.js +1 -2
  50. package/libEs5/components/Identity/createComponent.js +2 -3
  51. package/libEs5/components/Identity/createLegacyIdentity.js +8 -6
  52. package/libEs5/components/Identity/getEcidFromResponse.js +2 -3
  53. package/libEs5/components/Identity/getIdentity/createGetIdentity.js +2 -3
  54. package/libEs5/components/Identity/getIdentity/createIdentityRequest.js +2 -3
  55. package/libEs5/components/Identity/getIdentity/createIdentityRequestPayload.js +2 -3
  56. package/libEs5/components/Identity/getIdentity/getIdentityOptionsValidator.js +2 -3
  57. package/libEs5/components/Identity/index.js +3 -3
  58. package/libEs5/components/Identity/injectAddLegacyEcidToPayload.js +2 -3
  59. package/libEs5/components/Identity/injectAddQueryStringIdentityToPayload.js +18 -15
  60. package/libEs5/components/Identity/injectAwaitIdentityCookie.js +9 -14
  61. package/libEs5/components/Identity/injectEnsureSingleIdentity.js +8 -6
  62. package/libEs5/components/Identity/injectHandleResponseForIdSyncs.js +2 -3
  63. package/libEs5/components/Identity/injectProcessIdSyncs.js +2 -3
  64. package/libEs5/components/Identity/injectSetDomainForInitialIdentityPayload.js +2 -3
  65. package/libEs5/components/Identity/visitorService/awaitVisitorOptIn.js +2 -3
  66. package/libEs5/components/Identity/visitorService/getVisitor.js +2 -3
  67. package/libEs5/components/Identity/visitorService/injectGetEcidFromVisitor.js +2 -3
  68. package/libEs5/components/LegacyMediaAnalytics/{media → constants}/constants.js +15 -25
  69. package/libEs5/components/LegacyMediaAnalytics/{media → constants}/mediaKeysToXdmConverter.js +3 -5
  70. package/libEs5/components/LegacyMediaAnalytics/createGetInstance.js +246 -0
  71. package/libEs5/components/LegacyMediaAnalytics/createLegacyMediaComponent.js +87 -0
  72. package/libEs5/components/LegacyMediaAnalytics/createMediaHelper.js +157 -158
  73. package/libEs5/components/LegacyMediaAnalytics/index.js +43 -20
  74. package/libEs5/components/LibraryInfo/index.js +21 -17
  75. package/libEs5/components/MachineLearning/index.js +1 -2
  76. package/libEs5/components/MachineLearning/processResponse.js +2 -3
  77. package/libEs5/components/Personalization/constants/loggerMessage.js +2 -4
  78. package/libEs5/components/Personalization/constants/scopeType.js +3 -6
  79. package/libEs5/components/Personalization/constants/surface.js +4 -8
  80. package/libEs5/components/Personalization/createActionsProvider.js +2 -3
  81. package/libEs5/components/Personalization/createApplyPropositions.js +19 -17
  82. package/libEs5/components/Personalization/createClickStorage.js +8 -6
  83. package/libEs5/components/Personalization/createCollect.js +2 -3
  84. package/libEs5/components/Personalization/createComponent.js +7 -4
  85. package/libEs5/components/Personalization/createFetchDataHandler.js +28 -20
  86. package/libEs5/components/Personalization/createGetPageLocation.js +2 -3
  87. package/libEs5/{utils/debounce.js → components/Personalization/createHandleConsentFlicker.js} +13 -14
  88. package/libEs5/components/Personalization/createNotificationHandler.js +10 -5
  89. package/libEs5/components/Personalization/createOnClickHandler.js +2 -3
  90. package/libEs5/components/Personalization/createOnDecisionHandler.js +3 -4
  91. package/libEs5/components/Personalization/createPersonalizationDetails.js +13 -14
  92. package/libEs5/components/Personalization/createPreprocessors.js +16 -14
  93. package/libEs5/components/Personalization/createSetTargetMigration.js +2 -3
  94. package/libEs5/components/Personalization/createViewCacheManager.js +2 -3
  95. package/libEs5/components/Personalization/createViewChangeHandler.js +2 -3
  96. package/libEs5/components/Personalization/dom-actions/action.js +2 -3
  97. package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +2 -3
  98. package/libEs5/components/Personalization/dom-actions/appendHtml.js +2 -3
  99. package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +3 -4
  100. package/libEs5/components/Personalization/dom-actions/createPreprocess.js +2 -3
  101. package/libEs5/components/Personalization/dom-actions/createRedirect.js +2 -3
  102. package/libEs5/components/Personalization/dom-actions/dom/createFragment.js +2 -3
  103. package/libEs5/components/Personalization/dom-actions/dom/getAttribute.js +2 -3
  104. package/libEs5/components/Personalization/dom-actions/dom/getChildNodes.js +2 -3
  105. package/libEs5/components/Personalization/dom-actions/dom/getChildren.js +2 -3
  106. package/libEs5/components/Personalization/dom-actions/dom/getElementById.js +2 -3
  107. package/libEs5/components/Personalization/dom-actions/dom/getFirstChild.js +2 -3
  108. package/libEs5/components/Personalization/dom-actions/dom/getNextSibling.js +2 -3
  109. package/libEs5/components/Personalization/dom-actions/dom/getNonce.js +3 -5
  110. package/libEs5/components/Personalization/dom-actions/dom/getParent.js +2 -3
  111. package/libEs5/components/Personalization/dom-actions/dom/helperForEq.js +3 -5
  112. package/libEs5/components/Personalization/dom-actions/dom/insertAfter.js +2 -3
  113. package/libEs5/components/Personalization/dom-actions/dom/insertBefore.js +2 -3
  114. package/libEs5/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +2 -3
  115. package/libEs5/components/Personalization/dom-actions/dom/removeAttribute.js +2 -3
  116. package/libEs5/components/Personalization/dom-actions/dom/selectNodesWithEq.js +16 -19
  117. package/libEs5/components/Personalization/dom-actions/dom/setAttribute.js +2 -3
  118. package/libEs5/components/Personalization/dom-actions/dom/setStyle.js +2 -3
  119. package/libEs5/components/Personalization/dom-actions/images.js +4 -7
  120. package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +2 -3
  121. package/libEs5/components/Personalization/dom-actions/insertHtmlAfter.js +2 -3
  122. package/libEs5/components/Personalization/dom-actions/insertHtmlBefore.js +2 -3
  123. package/libEs5/components/Personalization/dom-actions/prependHtml.js +2 -3
  124. package/libEs5/components/Personalization/dom-actions/rearrangeChildren.js +2 -3
  125. package/libEs5/components/Personalization/dom-actions/remapCustomCodeOffers.js +2 -3
  126. package/libEs5/components/Personalization/dom-actions/remapHeadOffers.js +2 -3
  127. package/libEs5/components/Personalization/dom-actions/replaceHtml.js +2 -3
  128. package/libEs5/components/Personalization/dom-actions/scripts.js +22 -24
  129. package/libEs5/components/Personalization/dom-actions/setAttributes.js +2 -3
  130. package/libEs5/components/Personalization/dom-actions/setHtml.js +2 -3
  131. package/libEs5/components/Personalization/dom-actions/setStyles.js +2 -3
  132. package/libEs5/components/Personalization/dom-actions/setText.js +2 -3
  133. package/libEs5/components/Personalization/dom-actions/swapImage.js +2 -3
  134. package/libEs5/components/Personalization/event.js +19 -18
  135. package/libEs5/components/Personalization/flicker/index.js +21 -22
  136. package/libEs5/components/Personalization/handlers/createProcessDomAction.js +8 -6
  137. package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +2 -3
  138. package/libEs5/components/Personalization/handlers/createProcessInAppMessage.js +18 -16
  139. package/libEs5/components/Personalization/handlers/createProcessPropositions.js +3 -4
  140. package/libEs5/components/Personalization/handlers/createProcessRedirect.js +2 -4
  141. package/libEs5/components/Personalization/handlers/injectCreateProposition.js +24 -22
  142. package/libEs5/components/Personalization/handlers/processDefaultContent.js +2 -3
  143. package/libEs5/components/Personalization/in-app-message-actions/actions/displayIframeContent.js +25 -29
  144. package/libEs5/components/Personalization/in-app-message-actions/initInAppMessageActionsModules.js +2 -3
  145. package/libEs5/components/Personalization/in-app-message-actions/utils.js +3 -5
  146. package/libEs5/components/Personalization/index.js +31 -22
  147. package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +2 -3
  148. package/libEs5/components/Personalization/utils/createAsyncArray.js +2 -3
  149. package/libEs5/components/Personalization/utils/isAuthoringModeEnabled.js +2 -3
  150. package/libEs5/components/Personalization/utils/surfaceUtils.js +4 -7
  151. package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +3 -5
  152. package/libEs5/components/Privacy/computeConsentHash.js +13 -14
  153. package/libEs5/components/Privacy/createComponent.js +16 -14
  154. package/libEs5/components/Privacy/createConsentHashStore.js +2 -3
  155. package/libEs5/components/Privacy/createConsentRequest.js +2 -3
  156. package/libEs5/components/Privacy/createConsentRequestPayload.js +2 -3
  157. package/libEs5/components/Privacy/createStoredConsent.js +2 -3
  158. package/libEs5/components/Privacy/index.js +1 -2
  159. package/libEs5/components/Privacy/injectSendSetConsentRequest.js +2 -3
  160. package/libEs5/components/Privacy/parseConsentCookie.js +4 -5
  161. package/libEs5/components/Privacy/validateSetConsentOptions.js +2 -3
  162. package/libEs5/components/{MediaCollection/createMediaRequestPayload.js → StreamingMedia/configValidators.js} +11 -16
  163. package/libEs5/components/StreamingMedia/constants/eventTypes.js +34 -0
  164. package/libEs5/components/StreamingMedia/constants/playbackState.js +19 -0
  165. package/libEs5/components/{MediaCollection → StreamingMedia}/createMediaEventManager.js +46 -53
  166. package/libEs5/components/{MediaCollection → StreamingMedia}/createMediaRequest.js +2 -3
  167. package/libEs5/components/StreamingMedia/createMediaResponseHandler.js +57 -0
  168. package/libEs5/components/{MediaCollection → StreamingMedia}/createMediaSessionCacheManager.js +23 -27
  169. package/libEs5/components/StreamingMedia/createStreamingMediaComponent.js +72 -0
  170. package/libEs5/components/StreamingMedia/createTrackMediaEvent.js +90 -0
  171. package/libEs5/components/StreamingMedia/createTrackMediaSession.js +52 -0
  172. package/libEs5/components/StreamingMedia/index.js +69 -0
  173. package/libEs5/components/StreamingMedia/validateMediaEventOptions.js +40 -0
  174. package/libEs5/components/{MediaCollection → StreamingMedia}/validateMediaSessionOptions.js +3 -4
  175. package/libEs5/constants/apiVersion.js +1 -2
  176. package/libEs5/constants/browser.js +7 -14
  177. package/libEs5/constants/consentPurpose.js +1 -2
  178. package/libEs5/constants/consentStatus.js +3 -6
  179. package/libEs5/constants/contentType.js +2 -4
  180. package/libEs5/constants/cookieNameKey.js +3 -6
  181. package/libEs5/constants/cookieNamePrefix.js +1 -2
  182. package/libEs5/constants/coreCommands.js +2 -4
  183. package/libEs5/constants/debugQueryParam.js +1 -2
  184. package/libEs5/constants/decisionProvider.js +1 -2
  185. package/libEs5/constants/domain.js +2 -4
  186. package/libEs5/constants/ecidNamespace.js +1 -2
  187. package/libEs5/constants/edgeBasePath.js +1 -2
  188. package/libEs5/constants/elementAttribute.js +1 -2
  189. package/libEs5/constants/eventType.js +5 -10
  190. package/libEs5/constants/handle.js +1 -2
  191. package/libEs5/constants/highEntropyUserAgentClientHints.js +1 -2
  192. package/libEs5/constants/httpHeaderNames.js +2 -4
  193. package/libEs5/constants/httpStatusCode.js +5 -10
  194. package/libEs5/constants/identityMapAuthenticatedState.js +3 -6
  195. package/libEs5/constants/legacyCookies.js +3 -6
  196. package/libEs5/constants/libraryName.js +1 -2
  197. package/libEs5/constants/libraryVersion.js +1 -2
  198. package/libEs5/constants/namespace.js +1 -2
  199. package/libEs5/constants/pageWideScope.js +1 -2
  200. package/libEs5/constants/propositionEventType.js +20 -21
  201. package/libEs5/constants/queryStringIdentityParam.js +1 -2
  202. package/libEs5/constants/schema.js +10 -20
  203. package/libEs5/constants/shadowSeparator.js +1 -2
  204. package/libEs5/constants/tagName.js +7 -14
  205. package/libEs5/core/buildAndValidateConfig.js +19 -17
  206. package/libEs5/core/componentCreators.js +9 -4
  207. package/libEs5/core/config/createConfig.js +1 -2
  208. package/libEs5/core/config/createCoreConfigs.js +2 -3
  209. package/libEs5/core/consent/createConsent.js +5 -3
  210. package/libEs5/core/consent/createConsentStateMachine.js +41 -13
  211. package/libEs5/core/createComponentRegistry.js +5 -3
  212. package/libEs5/core/createCookieTransfer.js +2 -3
  213. package/libEs5/core/createEvent.js +13 -14
  214. package/libEs5/core/createEventManager.js +8 -6
  215. package/libEs5/core/createInstanceFunction.js +2 -3
  216. package/libEs5/core/createLifecycle.js +2 -3
  217. package/libEs5/core/createLogController.js +2 -3
  218. package/libEs5/core/createLogger.js +2 -3
  219. package/libEs5/core/edgeNetwork/handleRequestFailure.js +2 -3
  220. package/libEs5/core/edgeNetwork/injectApplyResponse.js +2 -3
  221. package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +2 -3
  222. package/libEs5/core/edgeNetwork/injectGetLocationHint.js +2 -3
  223. package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +2 -3
  224. package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +2 -3
  225. package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +13 -14
  226. package/libEs5/core/index.js +3 -5
  227. package/libEs5/core/initializeComponents.js +2 -3
  228. package/libEs5/core/injectCreateResponse.js +2 -3
  229. package/libEs5/core/injectExecuteCommand.js +2 -3
  230. package/libEs5/core/injectHandleError.js +2 -3
  231. package/libEs5/core/injectShouldTransferCookie.js +2 -3
  232. package/libEs5/core/network/getRequestRetryDelay.js +2 -3
  233. package/libEs5/core/network/injectSendNetworkRequest.js +18 -16
  234. package/libEs5/core/network/isRequestRetryable.js +2 -3
  235. package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +2 -3
  236. package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +2 -3
  237. package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +2 -3
  238. package/libEs5/core/validateCommandOptions.js +2 -3
  239. package/libEs5/index.js +2 -3
  240. package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +2 -3
  241. package/libEs5/utils/assign.js +1 -2
  242. package/libEs5/utils/assignConcatArrayValues.js +13 -14
  243. package/libEs5/utils/assignIf.js +2 -3
  244. package/libEs5/utils/clone.js +2 -3
  245. package/libEs5/utils/cookieJar.js +2 -3
  246. package/libEs5/utils/crc32.js +1 -2
  247. package/libEs5/utils/createCallbackAggregator.js +2 -3
  248. package/libEs5/utils/createLoggingCookieJar.js +8 -6
  249. package/libEs5/utils/createMerger.js +2 -3
  250. package/libEs5/utils/createSubscription.js +12 -13
  251. package/libEs5/utils/createTaskQueue.js +2 -3
  252. package/libEs5/utils/deduplicateArray.js +2 -3
  253. package/libEs5/utils/deepAssign.js +2 -3
  254. package/libEs5/utils/defer.js +2 -3
  255. package/libEs5/utils/dom/appendNode.js +2 -3
  256. package/libEs5/utils/dom/awaitSelector.js +7 -13
  257. package/libEs5/utils/dom/createNode.js +2 -3
  258. package/libEs5/utils/dom/isShadowSelector.js +2 -3
  259. package/libEs5/utils/dom/matchesSelector.js +2 -3
  260. package/libEs5/utils/dom/querySelectorAll.js +2 -3
  261. package/libEs5/utils/dom/removeNode.js +2 -3
  262. package/libEs5/utils/dom/selectNodes.js +2 -3
  263. package/libEs5/utils/dom/selectNodesWithShadow.js +2 -3
  264. package/libEs5/utils/endsWith.js +2 -3
  265. package/libEs5/utils/filterObject.js +17 -15
  266. package/libEs5/utils/find.js +2 -3
  267. package/libEs5/utils/fireImage.js +2 -3
  268. package/libEs5/utils/flatMap.js +2 -3
  269. package/libEs5/utils/flattenArray.js +2 -3
  270. package/libEs5/utils/flattenObject.js +4 -5
  271. package/libEs5/utils/getApexDomain.js +2 -3
  272. package/libEs5/utils/getBrowser.js +17 -16
  273. package/libEs5/utils/getLastArrayItems.js +2 -3
  274. package/libEs5/utils/getNamespacedCookieName.js +2 -3
  275. package/libEs5/utils/groupBy.js +2 -3
  276. package/libEs5/utils/includes.js +2 -3
  277. package/libEs5/utils/injectDoesIdentityCookieExist.js +2 -3
  278. package/libEs5/utils/injectFireReferrerHideableImage.js +14 -15
  279. package/libEs5/utils/injectStorage.js +2 -3
  280. package/libEs5/utils/intersection.js +2 -3
  281. package/libEs5/utils/isBlankString.js +2 -3
  282. package/libEs5/utils/isBoolean.js +2 -3
  283. package/libEs5/utils/isEmptyObject.js +2 -3
  284. package/libEs5/utils/isFunction.js +2 -3
  285. package/libEs5/utils/isInteger.js +2 -3
  286. package/libEs5/utils/isNamespacedCookieName.js +2 -3
  287. package/libEs5/utils/isNil.js +2 -3
  288. package/libEs5/utils/isNonEmptyArray.js +2 -3
  289. package/libEs5/utils/isNonEmptyString.js +2 -3
  290. package/libEs5/utils/isNumber.js +2 -3
  291. package/libEs5/utils/isObject.js +13 -14
  292. package/libEs5/utils/isString.js +2 -3
  293. package/libEs5/utils/isUnique.js +2 -3
  294. package/libEs5/utils/isValidRegExp.js +2 -3
  295. package/libEs5/utils/memoize.js +2 -3
  296. package/libEs5/utils/noop.js +1 -2
  297. package/libEs5/utils/padStart.js +2 -3
  298. package/libEs5/utils/parseUrl.js +17 -15
  299. package/libEs5/utils/prepareConfigOverridesForEdge.js +13 -14
  300. package/libEs5/utils/querystring.js +1 -2
  301. package/libEs5/utils/request/createAddIdentity.js +2 -3
  302. package/libEs5/utils/request/createDataCollectionRequest.js +2 -3
  303. package/libEs5/utils/request/createDataCollectionRequestPayload.js +2 -3
  304. package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +2 -3
  305. package/libEs5/utils/request/createHasIdentity.js +2 -3
  306. package/libEs5/utils/request/createRequest.js +2 -3
  307. package/libEs5/utils/request/createRequestParams.js +2 -3
  308. package/libEs5/utils/request/createRequestPayload.js +2 -3
  309. package/libEs5/utils/sanitizeOrgIdForCookieName.js +2 -3
  310. package/libEs5/utils/stackError.js +2 -3
  311. package/libEs5/utils/startsWith.js +2 -3
  312. package/libEs5/utils/stringToBoolean.js +2 -3
  313. package/libEs5/utils/toArray.js +2 -3
  314. package/libEs5/utils/toError.js +2 -3
  315. package/libEs5/utils/toISOStringLocal.js +2 -3
  316. package/libEs5/utils/toInteger.js +2 -3
  317. package/libEs5/utils/updateErrorMessage.js +2 -3
  318. package/libEs5/utils/uuid.js +1 -2
  319. package/libEs5/utils/validateConfigOverride.js +1 -2
  320. package/libEs5/utils/validateIdentityMap.js +2 -3
  321. package/libEs5/utils/validation/booleanValidator.js +2 -3
  322. package/libEs5/utils/validation/callbackValidator.js +2 -3
  323. package/libEs5/utils/validation/createAnyOfValidator.js +2 -3
  324. package/libEs5/utils/validation/createArrayOfValidator.js +2 -3
  325. package/libEs5/utils/validation/createDefaultValidator.js +2 -3
  326. package/libEs5/utils/validation/createDeprecatedValidator.js +18 -19
  327. package/libEs5/utils/validation/createLiteralValidator.js +2 -3
  328. package/libEs5/utils/validation/createMapOfValuesValidator.js +2 -3
  329. package/libEs5/utils/validation/createMaximumValidator.js +2 -3
  330. package/libEs5/utils/validation/createMinimumValidator.js +2 -3
  331. package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +2 -3
  332. package/libEs5/utils/validation/createNonEmptyValidator.js +2 -3
  333. package/libEs5/utils/validation/createObjectOfValidator.js +2 -3
  334. package/libEs5/utils/validation/createUniqueItemsValidator.js +2 -3
  335. package/libEs5/utils/validation/createUniqueValidator.js +2 -3
  336. package/libEs5/utils/validation/domainValidator.js +2 -3
  337. package/libEs5/utils/validation/index.js +90 -93
  338. package/libEs5/utils/validation/integerValidator.js +2 -3
  339. package/{libEs6/components/MediaCollection/createMediaRequestPayload.js → libEs5/utils/validation/matchesRegexpValidator.js} +9 -14
  340. package/libEs5/utils/validation/numberValidator.js +2 -3
  341. package/libEs5/utils/validation/regexpValidator.js +2 -3
  342. package/libEs5/utils/validation/requiredValidator.js +2 -3
  343. package/libEs5/utils/validation/stringValidator.js +2 -3
  344. package/libEs5/utils/validation/utils.js +5 -9
  345. package/libEs5/utils/values.js +2 -3
  346. package/libEs6/components/ActivityCollector/index.js +0 -1
  347. package/libEs6/components/Identity/index.js +2 -1
  348. package/libEs6/components/Identity/injectAddQueryStringIdentityToPayload.js +5 -1
  349. package/libEs6/components/Identity/injectAwaitIdentityCookie.js +7 -11
  350. package/libEs6/components/Identity/injectEnsureSingleIdentity.js +4 -3
  351. package/libEs6/components/LegacyMediaAnalytics/{media → constants}/constants.js +11 -10
  352. package/libEs6/components/LegacyMediaAnalytics/createGetInstance.js +240 -0
  353. package/libEs6/components/LegacyMediaAnalytics/createLegacyMediaComponent.js +85 -0
  354. package/libEs6/components/LegacyMediaAnalytics/createMediaHelper.js +157 -150
  355. package/libEs6/components/LegacyMediaAnalytics/index.js +40 -18
  356. package/libEs6/components/LibraryInfo/index.js +3 -1
  357. package/libEs6/components/Personalization/createComponent.js +5 -1
  358. package/libEs6/components/Personalization/createFetchDataHandler.js +16 -6
  359. package/libEs6/components/{MediaCollection/createUpdateMediaSessionState.js → Personalization/createHandleConsentFlicker.js} +14 -24
  360. package/libEs6/components/Personalization/createNotificationHandler.js +6 -2
  361. package/libEs6/components/Personalization/createOnDecisionHandler.js +1 -1
  362. package/libEs6/components/Personalization/handlers/createProcessRedirect.js +0 -1
  363. package/libEs6/components/Personalization/index.js +11 -3
  364. package/libEs6/components/StreamingMedia/configValidators.js +22 -0
  365. package/libEs6/components/StreamingMedia/constants/eventTypes.js +31 -0
  366. package/libEs6/components/StreamingMedia/constants/playbackState.js +16 -0
  367. package/libEs6/components/{MediaCollection → StreamingMedia}/createMediaEventManager.js +44 -44
  368. package/libEs6/components/StreamingMedia/createMediaResponseHandler.js +58 -0
  369. package/libEs6/components/{MediaCollection → StreamingMedia}/createMediaSessionCacheManager.js +17 -21
  370. package/libEs6/components/StreamingMedia/createStreamingMediaComponent.js +69 -0
  371. package/libEs6/components/StreamingMedia/createTrackMediaEvent.js +88 -0
  372. package/libEs6/components/StreamingMedia/createTrackMediaSession.js +51 -0
  373. package/libEs6/components/StreamingMedia/index.js +64 -0
  374. package/libEs6/components/{MediaCollection → StreamingMedia}/validateMediaEventOptions.js +4 -3
  375. package/libEs6/components/{MediaCollection → StreamingMedia}/validateMediaSessionOptions.js +1 -1
  376. package/libEs6/constants/libraryVersion.js +1 -1
  377. package/libEs6/core/componentCreators.js +19 -3
  378. package/libEs6/core/consent/createConsent.js +3 -0
  379. package/libEs6/core/consent/createConsentStateMachine.js +34 -0
  380. package/libEs6/core/createComponentRegistry.js +3 -0
  381. package/libEs6/utils/validation/index.js +6 -1
  382. package/libEs6/utils/{debounce.js → validation/matchesRegexpValidator.js} +5 -10
  383. package/package.json +19 -4
  384. package/libEs5/components/LegacyMediaAnalytics/createMediaAnalyticsTracker.js +0 -272
  385. package/libEs5/components/MediaCollection/createHeartbeatEngine.js +0 -55
  386. package/libEs5/components/MediaCollection/createUpdateMediaSessionState.js +0 -35
  387. package/libEs5/components/MediaCollection/index.js +0 -159
  388. package/libEs5/components/MediaCollection/mediaConstants/mediaEvents.js +0 -13
  389. package/libEs5/components/MediaCollection/validateMediaEventOptions.js +0 -35
  390. package/libEs6/components/LegacyMediaAnalytics/createMediaAnalyticsTracker.js +0 -276
  391. package/libEs6/components/MediaCollection/createHeartbeatEngine.js +0 -57
  392. package/libEs6/components/MediaCollection/index.js +0 -158
  393. package/libEs6/components/MediaCollection/mediaConstants/mediaEvents.js +0 -9
  394. /package/libEs6/components/LegacyMediaAnalytics/{media → constants}/mediaKeysToXdmConverter.js +0 -0
  395. /package/libEs6/components/{MediaCollection → StreamingMedia}/createMediaRequest.js +0 -0
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  exports.default = void 0;
4
- var _mediaEvents = require("./mediaConstants/mediaEvents");
5
- var _createMediaRequestPayload = require("./createMediaRequestPayload");
4
+ var _eventTypes = require("./constants/eventTypes");
6
5
  var _createMediaRequest = require("./createMediaRequest");
7
- var _injectTimestamp = require("../Context/injectTimestamp");
8
6
  var _utils = require("../../utils");
7
+ var _request = require("../../utils/request");
9
8
  /*
10
9
  Copyright 2023 Adobe. All rights reserved.
11
10
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -17,40 +16,46 @@ 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
- var _options$xdm = options.xdm,
30
- xdm = _options$xdm === void 0 ? {} : _options$xdm;
31
- var event = {
32
- xdm: xdm
33
- };
34
- var timestamp = (0, _injectTimestamp.default)(function () {
35
- return new Date();
36
- });
37
- timestamp(event.xdm);
28
+ var event = eventManager.createEvent();
29
+ var xdm = options.xdm;
30
+ setTimestamp(xdm);
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
+ }
38
42
  return event;
39
43
  },
40
44
  createMediaSession: function createMediaSession(options) {
41
- var _config$mediaCollecti = config.mediaCollection,
42
- playerName = _config$mediaCollecti.playerName,
43
- channel = _config$mediaCollecti.channel,
44
- 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;
45
49
  var event = eventManager.createEvent();
50
+ var sessionDetails = options.xdm.mediaCollection.sessionDetails;
46
51
  event.setUserXdm(options.xdm);
47
52
  event.mergeXdm({
48
- eventType: _mediaEvents.default.SESSION_START,
53
+ eventType: _eventTypes.default.SESSION_START,
49
54
  mediaCollection: {
50
55
  sessionDetails: {
51
- playerName: options.xdm.mediaCollection.sessionDetails.playerName || playerName,
52
- channel: options.xdm.mediaCollection.sessionDetails.channel || channel,
53
- appVersion: options.xdm.mediaCollection.sessionDetails.appVersion || version
56
+ playerName: sessionDetails.playerName || playerName,
57
+ channel: sessionDetails.channel || channel,
58
+ appVersion: sessionDetails.appVersion || appVersion
54
59
  }
55
60
  }
56
61
  });
@@ -59,53 +64,42 @@ var _default = function _default(_ref) {
59
64
  augmentMediaEvent: function augmentMediaEvent(_ref3) {
60
65
  var event = _ref3.event,
61
66
  playerId = _ref3.playerId,
62
- onBeforeMediaEvent = _ref3.onBeforeMediaEvent,
67
+ getPlayerDetails = _ref3.getPlayerDetails,
63
68
  sessionID = _ref3.sessionID;
64
- if (!playerId || !onBeforeMediaEvent) {
69
+ if (!playerId || !getPlayerDetails) {
65
70
  return event;
66
71
  }
67
- var _onBeforeMediaEvent = onBeforeMediaEvent({
72
+ var _getPlayerDetails = getPlayerDetails({
68
73
  playerId: playerId
69
74
  }),
70
- playhead = _onBeforeMediaEvent.playhead,
71
- qoeDataDetails = _onBeforeMediaEvent.qoeDataDetails;
72
- if (event.mergeXdm) {
73
- event.mergeXdm({
74
- mediaCollection: {
75
- playhead: (0, _utils.toInteger)(playhead),
76
- qoeDataDetails: qoeDataDetails
77
- }
78
- });
79
- return event;
80
- }
81
- return (0, _utils.deepAssign)(event, {
82
- xdm: {
83
- mediaCollection: {
84
- playhead: (0, _utils.toInteger)(playhead),
85
- qoeDataDetails: qoeDataDetails,
86
- sessionID: sessionID
87
- }
75
+ playhead = _getPlayerDetails.playhead,
76
+ qoeDataDetails = _getPlayerDetails.qoeDataDetails;
77
+ event.mergeXdm({
78
+ mediaCollection: {
79
+ playhead: (0, _utils.toInteger)(playhead),
80
+ qoeDataDetails: qoeDataDetails,
81
+ sessionID: sessionID
88
82
  }
89
83
  });
84
+ return event;
90
85
  },
91
86
  trackMediaSession: function trackMediaSession(_ref4) {
92
87
  var event = _ref4.event,
93
- playerId = _ref4.playerId,
94
- onBeforeMediaEvent = _ref4.onBeforeMediaEvent;
88
+ mediaOptions = _ref4.mediaOptions;
95
89
  return eventManager.sendEvent(event, {
96
- playerId: playerId,
97
- onBeforeMediaEvent: onBeforeMediaEvent
90
+ mediaOptions: mediaOptions
98
91
  });
99
92
  },
100
93
  trackMediaEvent: function trackMediaEvent(_ref5) {
101
- var event = _ref5.event;
102
- var action = event.xdm.eventType.split(".")[1];
103
- var mediaRequestPayload = (0, _createMediaRequestPayload.default)();
94
+ var event = _ref5.event,
95
+ action = _ref5.action;
96
+ var mediaRequestPayload = (0, _request.createDataCollectionRequestPayload)();
104
97
  var request = (0, _createMediaRequest.default)({
105
98
  mediaRequestPayload: mediaRequestPayload,
106
99
  action: action
107
100
  });
108
101
  mediaRequestPayload.addEvent(event);
102
+ event.finalize();
109
103
  return consent.awaitConsent().then(function () {
110
104
  return sendEdgeNetworkRequest({
111
105
  request: request
@@ -115,5 +109,4 @@ var _default = function _default(_ref) {
115
109
  });
116
110
  }
117
111
  };
118
- };
119
- 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 mediaSession = mediaSessionCache[playerId];
24
- if (!mediaSession) {
23
+ pingId = _ref.pingId,
24
+ playbackState = _ref.playbackState;
25
+ if (!mediaSessionCache[playerId]) {
25
26
  return;
26
27
  }
27
- mediaSession.heartbeatId = heartbeatId;
28
- };
29
- var stopHeartbeat = function stopHeartbeat(_ref2) {
30
- var playerId = _ref2.playerId;
31
- var mediaSession = mediaSessionCache[playerId];
32
- if (!mediaSession) {
33
- return;
28
+ if (mediaSessionCache[playerId].pingId) {
29
+ clearTimeout(mediaSessionCache[playerId].pingId);
34
30
  }
35
- clearInterval(mediaSession.heartbeatId);
36
- mediaSession.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;
40
- var player = mediaSessionCache[playerId];
41
- if (!player) {
34
+ var stopPing = function stopPing(_ref2) {
35
+ var playerId = _ref2.playerId;
36
+ var sessionDetails = mediaSessionCache[playerId];
37
+ if (!sessionDetails) {
42
38
  return;
43
39
  }
44
- player.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;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _validation = require("../../utils/validation");
5
+ var _eventTypes = require("./constants/eventTypes");
6
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
7
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
10
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /*
12
+ Copyright 2023 Adobe. All rights reserved.
13
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
14
+ you may not use this file except in compliance with the License. You may obtain a copy
15
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
16
+
17
+ Unless required by applicable law or agreed to in writing, software distributed under
18
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
19
+ OF ANY KIND, either express or implied. See the License for the specific language
20
+ governing permissions and limitations under the License.
21
+ */
22
+ var _default = exports.default = function _default(_ref) {
23
+ var options = _ref.options;
24
+ var validator = (0, _validation.anyOf)([(0, _validation.objectOf)({
25
+ playerId: (0, _validation.string)().required(),
26
+ xdm: (0, _validation.objectOf)({
27
+ eventType: _validation.enumOf.apply(void 0, _toConsumableArray(Object.values(_eventTypes.default))).required(),
28
+ mediaCollection: (0, _validation.objectOf)((0, _validation.anything)())
29
+ }).required()
30
+ }).required(), (0, _validation.objectOf)({
31
+ xdm: (0, _validation.objectOf)({
32
+ eventType: _validation.enumOf.apply(void 0, _toConsumableArray(Object.values(_eventTypes.default))).required(),
33
+ mediaCollection: (0, _validation.objectOf)({
34
+ playhead: (0, _validation.number)().integer().required(),
35
+ sessionID: (0, _validation.string)().required()
36
+ }).required()
37
+ }).required()
38
+ }).required()], "Error validating the sendMediaEvent command options.");
39
+ return validator(options);
40
+ };
@@ -13,11 +13,11 @@ 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 options = _ref.options;
18
18
  var sessionValidator = (0, _validation.anyOf)([(0, _validation.objectOf)({
19
19
  playerId: (0, _validation.string)().required(),
20
- onBeforeMediaEvent: (0, _validation.callback)().required(),
20
+ getPlayerDetails: (0, _validation.callback)().required(),
21
21
  xdm: (0, _validation.objectOf)({
22
22
  mediaCollection: (0, _validation.objectOf)({
23
23
  sessionDetails: (0, _validation.objectOf)((0, _validation.anything)()).required()
@@ -32,5 +32,4 @@ var _default = function _default(_ref) {
32
32
  })
33
33
  }).required()], "Error validating the createMediaSession command options.");
34
34
  return sessionValidator(options);
35
- };
36
- exports.default = _default;
35
+ };
@@ -12,5 +12,4 @@ 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 = "v1";
16
- exports.default = _default;
15
+ var _default = exports.default = "v1";