@mparticle/web-rokt-kit 1.4.1 → 1.6.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.
- package/dist/Rokt-Kit.common.js +85 -12
- package/dist/Rokt-Kit.iife.js +85 -12
- package/package.json +1 -1
package/dist/Rokt-Kit.common.js
CHANGED
|
@@ -17,8 +17,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
17
17
|
// See the License for the specific language governing permissions and
|
|
18
18
|
// limitations under the License.
|
|
19
19
|
|
|
20
|
-
var roktLauncherScript = 'https://apps.rokt.com/wsdk/integrations/launcher.js';
|
|
21
|
-
|
|
22
20
|
var name = 'Rokt';
|
|
23
21
|
var moduleId = 181;
|
|
24
22
|
|
|
@@ -31,8 +29,28 @@ var constructor = function () {
|
|
|
31
29
|
|
|
32
30
|
self.launcher = null;
|
|
33
31
|
self.filters = {};
|
|
34
|
-
self.filteredUser = {};
|
|
35
32
|
self.userAttributes = {};
|
|
33
|
+
self.testHelpers = null;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Generates the Rokt launcher script URL with optional domain override and extensions
|
|
37
|
+
* @param {string} domain - The CNAME domain to use for overriding the launcher url
|
|
38
|
+
* @param {Array<string>} extensions - List of extension query parameters to append
|
|
39
|
+
* @returns {string} The complete launcher script URL
|
|
40
|
+
*/
|
|
41
|
+
function generateLauncherScript(_domain, extensions) {
|
|
42
|
+
// Override domain if a customer is using a CNAME
|
|
43
|
+
// If a customer is using a CNAME, a domain will be passed. If not, we use the default domain.
|
|
44
|
+
var domain = typeof _domain !== 'undefined' ? _domain : 'apps.rokt.com';
|
|
45
|
+
var protocol = 'https://';
|
|
46
|
+
var launcherPath = '/wsdk/integrations/launcher.js';
|
|
47
|
+
var baseUrl = [protocol, domain, launcherPath].join('');
|
|
48
|
+
|
|
49
|
+
if (!extensions || extensions.length === 0) {
|
|
50
|
+
return baseUrl;
|
|
51
|
+
}
|
|
52
|
+
return baseUrl + '?extensions=' + extensions.join(',');
|
|
53
|
+
}
|
|
36
54
|
|
|
37
55
|
/**
|
|
38
56
|
* Passes attributes to the Rokt Web SDK for client-side hashing
|
|
@@ -57,15 +75,23 @@ var constructor = function () {
|
|
|
57
75
|
filteredUserAttributes
|
|
58
76
|
) {
|
|
59
77
|
var accountId = settings.accountId;
|
|
78
|
+
var roktExtensions = extractRoktExtensions(settings.roktExtensions);
|
|
60
79
|
self.userAttributes = filteredUserAttributes;
|
|
61
80
|
self.onboardingExpProvider = settings.onboardingExpProvider;
|
|
62
|
-
|
|
63
|
-
var launcherOptions =
|
|
81
|
+
var domain = window.mParticle.Rokt.domain;
|
|
82
|
+
var launcherOptions = mergeObjects(
|
|
83
|
+
{},
|
|
84
|
+
window.mParticle.Rokt.launcherOptions || {}
|
|
85
|
+
);
|
|
64
86
|
launcherOptions.integrationName = generateIntegrationName(
|
|
65
87
|
launcherOptions.integrationName
|
|
66
88
|
);
|
|
67
89
|
|
|
68
90
|
if (testMode) {
|
|
91
|
+
self.testHelpers = {
|
|
92
|
+
generateLauncherScript: generateLauncherScript,
|
|
93
|
+
extractRoktExtensions: extractRoktExtensions,
|
|
94
|
+
};
|
|
69
95
|
attachLauncher(accountId, launcherOptions);
|
|
70
96
|
return;
|
|
71
97
|
}
|
|
@@ -74,7 +100,7 @@ var constructor = function () {
|
|
|
74
100
|
var target = document.head || document.body;
|
|
75
101
|
var script = document.createElement('script');
|
|
76
102
|
script.type = 'text/javascript';
|
|
77
|
-
script.src =
|
|
103
|
+
script.src = generateLauncherScript(domain, roktExtensions);
|
|
78
104
|
script.async = true;
|
|
79
105
|
script.crossOrigin = 'anonymous';
|
|
80
106
|
script.fetchPriority = 'high';
|
|
@@ -104,6 +130,18 @@ var constructor = function () {
|
|
|
104
130
|
console.warn('Unable to find Rokt on the page');
|
|
105
131
|
}
|
|
106
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Returns the user identities from the filtered user, if any
|
|
135
|
+
* @param {Object} filteredUser - The filtered user object containing identities
|
|
136
|
+
* @returns {Object} The user identities from the filtered user
|
|
137
|
+
*/
|
|
138
|
+
function returnUserIdentities(filteredUser) {
|
|
139
|
+
if (!filteredUser || !filteredUser.getUserIdentities) {
|
|
140
|
+
return {};
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return filteredUser.getUserIdentities().userIdentities;
|
|
144
|
+
}
|
|
107
145
|
|
|
108
146
|
/**
|
|
109
147
|
* Selects placements for Rokt Web SDK with merged attributes, filters, and experimentation options
|
|
@@ -149,8 +187,11 @@ var constructor = function () {
|
|
|
149
187
|
? fetchOptimizely()
|
|
150
188
|
: {};
|
|
151
189
|
|
|
190
|
+
var filteredUserIdentities = returnUserIdentities(filteredUser);
|
|
191
|
+
|
|
152
192
|
var selectPlacementsAttributes = mergeObjects(
|
|
153
193
|
filteredAttributes,
|
|
194
|
+
filteredUserIdentities,
|
|
154
195
|
optimizelyAttributes,
|
|
155
196
|
{
|
|
156
197
|
mpid: mpid,
|
|
@@ -164,8 +205,24 @@ var constructor = function () {
|
|
|
164
205
|
return self.launcher.selectPlacements(selectPlacementsOptions);
|
|
165
206
|
}
|
|
166
207
|
|
|
208
|
+
/**
|
|
209
|
+
* Sets extension data for Rokt Web SDK
|
|
210
|
+
* @param {Object} partnerExtensionData - The extension data object containing:
|
|
211
|
+
* - [extensionName] {string}: Name of the extension
|
|
212
|
+
* - [extensionName].options {Object}: Key-value pairs of options for the extension
|
|
213
|
+
* @returns {void} Nothing is returned
|
|
214
|
+
*/
|
|
215
|
+
function setExtensionData(partnerExtensionData) {
|
|
216
|
+
if (!isInitialized()) {
|
|
217
|
+
console.error('Rokt Kit: Not initialized');
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
window.Rokt.setExtensionData(partnerExtensionData);
|
|
222
|
+
}
|
|
223
|
+
|
|
167
224
|
function onUserIdentified(filteredUser) {
|
|
168
|
-
self.filteredUser = filteredUser;
|
|
225
|
+
self.filters.filteredUser = filteredUser;
|
|
169
226
|
self.userAttributes = filteredUser.getAllUserAttributes();
|
|
170
227
|
}
|
|
171
228
|
|
|
@@ -189,7 +246,6 @@ var constructor = function () {
|
|
|
189
246
|
.then(function (launcher) {
|
|
190
247
|
// Assign the launcher to a global variable for later access
|
|
191
248
|
window.Rokt.currentLauncher = launcher;
|
|
192
|
-
|
|
193
249
|
// Locally cache the launcher and filters
|
|
194
250
|
self.launcher = launcher;
|
|
195
251
|
|
|
@@ -203,11 +259,8 @@ var constructor = function () {
|
|
|
203
259
|
console.warn(
|
|
204
260
|
'Rokt Kit: No filtered user has been set.'
|
|
205
261
|
);
|
|
206
|
-
} else {
|
|
207
|
-
self.filteredUser = roktFilters.filteredUser;
|
|
208
262
|
}
|
|
209
263
|
}
|
|
210
|
-
|
|
211
264
|
// Attaches the kit to the Rokt manager
|
|
212
265
|
window.mParticle.Rokt.attachKit(self);
|
|
213
266
|
|
|
@@ -266,6 +319,7 @@ var constructor = function () {
|
|
|
266
319
|
|
|
267
320
|
// Kit Callback Methods
|
|
268
321
|
this.init = initForwarder;
|
|
322
|
+
this.setExtensionData = setExtensionData;
|
|
269
323
|
this.setUserAttribute = setUserAttribute;
|
|
270
324
|
this.onUserIdentified = onUserIdentified;
|
|
271
325
|
this.removeUserAttribute = removeUserAttribute;
|
|
@@ -284,7 +338,7 @@ var constructor = function () {
|
|
|
284
338
|
|
|
285
339
|
function generateIntegrationName(customIntegrationName) {
|
|
286
340
|
var coreSdkVersion = window.mParticle.getVersion();
|
|
287
|
-
var kitVersion = "1.
|
|
341
|
+
var kitVersion = "1.6.0";
|
|
288
342
|
var name = 'mParticle_' + 'wsdkv_' + coreSdkVersion + '_kitv_' + kitVersion;
|
|
289
343
|
|
|
290
344
|
if (customIntegrationName) {
|
|
@@ -344,6 +398,25 @@ function mergeObjects() {
|
|
|
344
398
|
return resObj;
|
|
345
399
|
}
|
|
346
400
|
|
|
401
|
+
function parseSettingsString(settingsString) {
|
|
402
|
+
try {
|
|
403
|
+
return JSON.parse(settingsString.replace(/"/g, '"'));
|
|
404
|
+
} catch (error) {
|
|
405
|
+
throw new Error('Settings string contains invalid JSON');
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
function extractRoktExtensions(settingsString) {
|
|
410
|
+
var settings = settingsString ? parseSettingsString(settingsString) : [];
|
|
411
|
+
|
|
412
|
+
var roktExtensions = [];
|
|
413
|
+
for (var i = 0; i < settings.length; i++) {
|
|
414
|
+
roktExtensions.push(settings[i].value);
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
return roktExtensions;
|
|
418
|
+
}
|
|
419
|
+
|
|
347
420
|
if (window && window.mParticle && window.mParticle.addForwarder) {
|
|
348
421
|
window.mParticle.addForwarder({
|
|
349
422
|
name: name,
|
package/dist/Rokt-Kit.iife.js
CHANGED
|
@@ -16,8 +16,6 @@ var RoktKit = (function (exports) {
|
|
|
16
16
|
// See the License for the specific language governing permissions and
|
|
17
17
|
// limitations under the License.
|
|
18
18
|
|
|
19
|
-
var roktLauncherScript = 'https://apps.rokt.com/wsdk/integrations/launcher.js';
|
|
20
|
-
|
|
21
19
|
var name = 'Rokt';
|
|
22
20
|
var moduleId = 181;
|
|
23
21
|
|
|
@@ -30,8 +28,28 @@ var RoktKit = (function (exports) {
|
|
|
30
28
|
|
|
31
29
|
self.launcher = null;
|
|
32
30
|
self.filters = {};
|
|
33
|
-
self.filteredUser = {};
|
|
34
31
|
self.userAttributes = {};
|
|
32
|
+
self.testHelpers = null;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Generates the Rokt launcher script URL with optional domain override and extensions
|
|
36
|
+
* @param {string} domain - The CNAME domain to use for overriding the launcher url
|
|
37
|
+
* @param {Array<string>} extensions - List of extension query parameters to append
|
|
38
|
+
* @returns {string} The complete launcher script URL
|
|
39
|
+
*/
|
|
40
|
+
function generateLauncherScript(_domain, extensions) {
|
|
41
|
+
// Override domain if a customer is using a CNAME
|
|
42
|
+
// If a customer is using a CNAME, a domain will be passed. If not, we use the default domain.
|
|
43
|
+
var domain = typeof _domain !== 'undefined' ? _domain : 'apps.rokt.com';
|
|
44
|
+
var protocol = 'https://';
|
|
45
|
+
var launcherPath = '/wsdk/integrations/launcher.js';
|
|
46
|
+
var baseUrl = [protocol, domain, launcherPath].join('');
|
|
47
|
+
|
|
48
|
+
if (!extensions || extensions.length === 0) {
|
|
49
|
+
return baseUrl;
|
|
50
|
+
}
|
|
51
|
+
return baseUrl + '?extensions=' + extensions.join(',');
|
|
52
|
+
}
|
|
35
53
|
|
|
36
54
|
/**
|
|
37
55
|
* Passes attributes to the Rokt Web SDK for client-side hashing
|
|
@@ -56,15 +74,23 @@ var RoktKit = (function (exports) {
|
|
|
56
74
|
filteredUserAttributes
|
|
57
75
|
) {
|
|
58
76
|
var accountId = settings.accountId;
|
|
77
|
+
var roktExtensions = extractRoktExtensions(settings.roktExtensions);
|
|
59
78
|
self.userAttributes = filteredUserAttributes;
|
|
60
79
|
self.onboardingExpProvider = settings.onboardingExpProvider;
|
|
61
|
-
|
|
62
|
-
var launcherOptions =
|
|
80
|
+
var domain = window.mParticle.Rokt.domain;
|
|
81
|
+
var launcherOptions = mergeObjects(
|
|
82
|
+
{},
|
|
83
|
+
window.mParticle.Rokt.launcherOptions || {}
|
|
84
|
+
);
|
|
63
85
|
launcherOptions.integrationName = generateIntegrationName(
|
|
64
86
|
launcherOptions.integrationName
|
|
65
87
|
);
|
|
66
88
|
|
|
67
89
|
if (testMode) {
|
|
90
|
+
self.testHelpers = {
|
|
91
|
+
generateLauncherScript: generateLauncherScript,
|
|
92
|
+
extractRoktExtensions: extractRoktExtensions,
|
|
93
|
+
};
|
|
68
94
|
attachLauncher(accountId, launcherOptions);
|
|
69
95
|
return;
|
|
70
96
|
}
|
|
@@ -73,7 +99,7 @@ var RoktKit = (function (exports) {
|
|
|
73
99
|
var target = document.head || document.body;
|
|
74
100
|
var script = document.createElement('script');
|
|
75
101
|
script.type = 'text/javascript';
|
|
76
|
-
script.src =
|
|
102
|
+
script.src = generateLauncherScript(domain, roktExtensions);
|
|
77
103
|
script.async = true;
|
|
78
104
|
script.crossOrigin = 'anonymous';
|
|
79
105
|
script.fetchPriority = 'high';
|
|
@@ -103,6 +129,18 @@ var RoktKit = (function (exports) {
|
|
|
103
129
|
console.warn('Unable to find Rokt on the page');
|
|
104
130
|
}
|
|
105
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Returns the user identities from the filtered user, if any
|
|
134
|
+
* @param {Object} filteredUser - The filtered user object containing identities
|
|
135
|
+
* @returns {Object} The user identities from the filtered user
|
|
136
|
+
*/
|
|
137
|
+
function returnUserIdentities(filteredUser) {
|
|
138
|
+
if (!filteredUser || !filteredUser.getUserIdentities) {
|
|
139
|
+
return {};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return filteredUser.getUserIdentities().userIdentities;
|
|
143
|
+
}
|
|
106
144
|
|
|
107
145
|
/**
|
|
108
146
|
* Selects placements for Rokt Web SDK with merged attributes, filters, and experimentation options
|
|
@@ -148,8 +186,11 @@ var RoktKit = (function (exports) {
|
|
|
148
186
|
? fetchOptimizely()
|
|
149
187
|
: {};
|
|
150
188
|
|
|
189
|
+
var filteredUserIdentities = returnUserIdentities(filteredUser);
|
|
190
|
+
|
|
151
191
|
var selectPlacementsAttributes = mergeObjects(
|
|
152
192
|
filteredAttributes,
|
|
193
|
+
filteredUserIdentities,
|
|
153
194
|
optimizelyAttributes,
|
|
154
195
|
{
|
|
155
196
|
mpid: mpid,
|
|
@@ -163,8 +204,24 @@ var RoktKit = (function (exports) {
|
|
|
163
204
|
return self.launcher.selectPlacements(selectPlacementsOptions);
|
|
164
205
|
}
|
|
165
206
|
|
|
207
|
+
/**
|
|
208
|
+
* Sets extension data for Rokt Web SDK
|
|
209
|
+
* @param {Object} partnerExtensionData - The extension data object containing:
|
|
210
|
+
* - [extensionName] {string}: Name of the extension
|
|
211
|
+
* - [extensionName].options {Object}: Key-value pairs of options for the extension
|
|
212
|
+
* @returns {void} Nothing is returned
|
|
213
|
+
*/
|
|
214
|
+
function setExtensionData(partnerExtensionData) {
|
|
215
|
+
if (!isInitialized()) {
|
|
216
|
+
console.error('Rokt Kit: Not initialized');
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
window.Rokt.setExtensionData(partnerExtensionData);
|
|
221
|
+
}
|
|
222
|
+
|
|
166
223
|
function onUserIdentified(filteredUser) {
|
|
167
|
-
self.filteredUser = filteredUser;
|
|
224
|
+
self.filters.filteredUser = filteredUser;
|
|
168
225
|
self.userAttributes = filteredUser.getAllUserAttributes();
|
|
169
226
|
}
|
|
170
227
|
|
|
@@ -188,7 +245,6 @@ var RoktKit = (function (exports) {
|
|
|
188
245
|
.then(function (launcher) {
|
|
189
246
|
// Assign the launcher to a global variable for later access
|
|
190
247
|
window.Rokt.currentLauncher = launcher;
|
|
191
|
-
|
|
192
248
|
// Locally cache the launcher and filters
|
|
193
249
|
self.launcher = launcher;
|
|
194
250
|
|
|
@@ -202,11 +258,8 @@ var RoktKit = (function (exports) {
|
|
|
202
258
|
console.warn(
|
|
203
259
|
'Rokt Kit: No filtered user has been set.'
|
|
204
260
|
);
|
|
205
|
-
} else {
|
|
206
|
-
self.filteredUser = roktFilters.filteredUser;
|
|
207
261
|
}
|
|
208
262
|
}
|
|
209
|
-
|
|
210
263
|
// Attaches the kit to the Rokt manager
|
|
211
264
|
window.mParticle.Rokt.attachKit(self);
|
|
212
265
|
|
|
@@ -265,6 +318,7 @@ var RoktKit = (function (exports) {
|
|
|
265
318
|
|
|
266
319
|
// Kit Callback Methods
|
|
267
320
|
this.init = initForwarder;
|
|
321
|
+
this.setExtensionData = setExtensionData;
|
|
268
322
|
this.setUserAttribute = setUserAttribute;
|
|
269
323
|
this.onUserIdentified = onUserIdentified;
|
|
270
324
|
this.removeUserAttribute = removeUserAttribute;
|
|
@@ -283,7 +337,7 @@ var RoktKit = (function (exports) {
|
|
|
283
337
|
|
|
284
338
|
function generateIntegrationName(customIntegrationName) {
|
|
285
339
|
var coreSdkVersion = window.mParticle.getVersion();
|
|
286
|
-
var kitVersion = "1.
|
|
340
|
+
var kitVersion = "1.6.0";
|
|
287
341
|
var name = 'mParticle_' + 'wsdkv_' + coreSdkVersion + '_kitv_' + kitVersion;
|
|
288
342
|
|
|
289
343
|
if (customIntegrationName) {
|
|
@@ -343,6 +397,25 @@ var RoktKit = (function (exports) {
|
|
|
343
397
|
return resObj;
|
|
344
398
|
}
|
|
345
399
|
|
|
400
|
+
function parseSettingsString(settingsString) {
|
|
401
|
+
try {
|
|
402
|
+
return JSON.parse(settingsString.replace(/"/g, '"'));
|
|
403
|
+
} catch (error) {
|
|
404
|
+
throw new Error('Settings string contains invalid JSON');
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
function extractRoktExtensions(settingsString) {
|
|
409
|
+
var settings = settingsString ? parseSettingsString(settingsString) : [];
|
|
410
|
+
|
|
411
|
+
var roktExtensions = [];
|
|
412
|
+
for (var i = 0; i < settings.length; i++) {
|
|
413
|
+
roktExtensions.push(settings[i].value);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
return roktExtensions;
|
|
417
|
+
}
|
|
418
|
+
|
|
346
419
|
if (window && window.mParticle && window.mParticle.addForwarder) {
|
|
347
420
|
window.mParticle.addForwarder({
|
|
348
421
|
name: name,
|