@@ -25,7 +25,6 @@ var VNEXT_EXTENSIONS = {
2525
2626var constructor = function ( ) {
2727 var self = this ;
28- var roktLauncherScript = '' ;
2928
3029 self . name = name ;
3130 self . moduleId = moduleId ;
@@ -50,6 +49,13 @@ var constructor = function () {
5049 return baseUrl + '?extensions=' + extensions . join ( ',' ) ;
5150 }
5251
52+ /**
53+ * Passes attributes to the Rokt Web SDK for client-side hashing
54+ * @see https://docs.rokt.com/developers/integration-guides/web/library/integration-launcher#hash-attributes
55+ * @param {Object } attributes - The attributes to be hashed
56+ * @returns {Promise<Object|null> } A Promise resolving to the
57+ * hashed attributes from the launcher, or `null` if the kit is not initialized
58+ */
5359 function hashAttributes ( attributes ) {
5460 if ( ! isInitialized ( ) ) {
5561 console . error ( 'Rokt Kit: Not initialized' ) ;
@@ -66,16 +72,15 @@ var constructor = function () {
6672 filteredUserAttributes
6773 ) {
6874 var accountId = settings . accountId ;
75+ var vNextExtensions = extractvNextExtensions ( settings . vNextExtensions ) ;
6976 self . userAttributes = filteredUserAttributes ;
7077 self . onboardingExpProvider = settings . onboardingExpProvider ;
71- self . vNextExtensions = extractvNextExtensions ( settings . vNextExtensions ) ;
72-
73- roktLauncherScript = generateLauncherScript ( self . vNextExtensions ) ;
7478
7579 if ( testMode ) {
7680 // Initialize test helpers only in test mode
7781 self . testHelpers = {
7882 generateLauncherScript : generateLauncherScript ,
83+ extractvNextExtensions : extractvNextExtensions ,
7984 } ;
8085 attachLauncher ( accountId ) ;
8186 return ;
@@ -85,7 +90,7 @@ var constructor = function () {
8590 var target = document . head || document . body ;
8691 var script = document . createElement ( 'script' ) ;
8792 script . type = 'text/javascript' ;
88- script . src = roktLauncherScript ;
93+ script . src = generateLauncherScript ( vNextExtensions ) ;
8994 script . async = true ;
9095 script . crossOrigin = 'anonymous' ;
9196 script . fetchPriority = 'high' ;
@@ -188,9 +193,6 @@ var constructor = function () {
188193 return ;
189194 }
190195
191- // TODO: Should we check if select placements has been called?
192- // Some extensions seem to need that to happen first
193- // TODO: Should we attach the Rokt SDK to the kit as well?
194196 window . Rokt . setExtensionData ( partnerExtensionData ) ;
195197 }
196198
@@ -243,6 +245,7 @@ var constructor = function () {
243245 window . mParticle . Rokt . attachKit ( self ) ;
244246
245247 self . isInitialized = true ;
248+ console . warn ( 'Rokt TRACE: launcher called' ) ;
246249 } )
247250 . catch ( function ( err ) {
248251 console . error ( 'Error creating Rokt launcher:' , err ) ;
0 commit comments