@constructor-io/constructorio-node 3.8.2 → 3.8.6

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/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@constructor-io/constructorio-node",
3
- "version": "3.8.2",
3
+ "version": "3.8.6",
4
4
  "description": "Constructor.io Node.js client",
5
5
  "main": "src/constructorio.js",
6
6
  "scripts": {
7
7
  "version": "chmod +x ./scripts/verify-node-version.sh && ./scripts/verify-node-version.sh && npm run docs && git add ./docs/*",
8
8
  "check-lisc": "license-checker --production --onlyAllow 'Apache-2.0;BSD-3-Clause;MIT'",
9
- "lint": "chmod 766 .git/hooks/pre-push && eslint 'src/**/*.js' 'spec/**/*.js'",
9
+ "lint": "eslint 'src/**/*.js' 'spec/**/*.js'",
10
10
  "test": "mkdir -p test && cp -rf src/* test && mocha ./spec/*",
11
11
  "precoverage": "rm -rf ./coverage && rm -rf ./.nyc_output",
12
12
  "coverage": "nyc --all --reporter=html npm run test",
@@ -68,7 +68,11 @@ function createAutocompleteUrl(query, parameters, userParameters, options) {
68
68
 
69
69
  // Pull hidden fields from parameters
70
70
  if (hiddenFields) {
71
- queryParams.hidden_fields = hiddenFields;
71
+ if (queryParams.fmt_options) {
72
+ queryParams.fmt_options.hidden_fields = hiddenFields;
73
+ } else {
74
+ queryParams.fmt_options = { hidden_fields: hiddenFields };
75
+ }
72
76
  }
73
77
  }
74
78
 
@@ -107,7 +111,7 @@ class Autocomplete {
107
111
  * @param {number} [userParameters.clientId] - Client ID, utilized to personalize results
108
112
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
109
113
  * @param {string} [userParameters.segments] - User segments
110
- * @param {string} [userParameters.testCells] - User test cells
114
+ * @param {object} [userParameters.testCells] - User test cells
111
115
  * @param {string} [userParameters.userIp] - Origin user IP, from client
112
116
  * @param {string} [userParameters.userAgent] - Origin user agent, from client
113
117
  * @param {object} [networkParameters] - Parameters relevant to the network request
@@ -123,6 +127,10 @@ class Autocomplete {
123
127
  * filters: {
124
128
  * size: 'medium'
125
129
  * },
130
+ * }, {
131
+ * testCells: {
132
+ * testName: 'cellName',
133
+ * },
126
134
  * });
127
135
  */
128
136
  getAutocompleteResults(query, parameters = {}, userParameters = {}, networkParameters = {}) {
@@ -33,6 +33,7 @@ function createQueryParams(parameters, userParameters, options) {
33
33
  section,
34
34
  fmtOptions,
35
35
  hiddenFields,
36
+ hiddenFacets,
36
37
  } = parameters;
37
38
 
38
39
  // Pull page from parameters
@@ -71,7 +72,20 @@ function createQueryParams(parameters, userParameters, options) {
71
72
 
72
73
  // Pull hidden fields from parameters
73
74
  if (hiddenFields) {
74
- queryParams.hidden_fields = hiddenFields;
75
+ if (queryParams.fmt_options) {
76
+ queryParams.fmt_options.hidden_fields = hiddenFields;
77
+ } else {
78
+ queryParams.fmt_options = { hidden_fields: hiddenFields };
79
+ }
80
+ }
81
+
82
+ // Pull hidden facets from parameters
83
+ if (hiddenFacets) {
84
+ if (queryParams.fmt_options) {
85
+ queryParams.fmt_options.hidden_facets = hiddenFacets;
86
+ } else {
87
+ queryParams.fmt_options = { hidden_facets: hiddenFacets };
88
+ }
75
89
  }
76
90
  }
77
91
 
@@ -118,11 +132,11 @@ function createBrowseUrlFromFilter(filterName, filterValue, parameters, userPara
118
132
  return `${serviceUrl}/browse/${encodeURIComponent(filterName)}/${encodeURIComponent(filterValue)}?${queryString}`;
119
133
  }
120
134
 
121
- // Create URL from supplied ID's
135
+ // Create URL from supplied IDs and parameters
122
136
  function createBrowseUrlFromIDs(itemIds, parameters, userParameters, options) {
123
137
  const { serviceUrl } = options;
124
138
 
125
- // Validate item ID's are provided
139
+ // Validate item IDs are provided
126
140
  if (!itemIds || !(itemIds instanceof Array) || !itemIds.length) {
127
141
  throw new Error('itemIds is a required parameter of type array');
128
142
  }
@@ -133,7 +147,7 @@ function createBrowseUrlFromIDs(itemIds, parameters, userParameters, options) {
133
147
  return `${serviceUrl}/browse/items?${queryString}`;
134
148
  }
135
149
 
136
- // Create URL from supplied ID's
150
+ // Create URL from supplied parameters
137
151
  function createBrowseUrlForFacets(parameters, userParameters, options) {
138
152
  const { serviceUrl } = options;
139
153
  const queryParams = { ...createQueryParams(parameters, userParameters, options) };
@@ -141,9 +155,28 @@ function createBrowseUrlForFacets(parameters, userParameters, options) {
141
155
  delete queryParams._dt;
142
156
 
143
157
  const queryString = qs.stringify(queryParams, { indices: false });
158
+
144
159
  return `${serviceUrl}/browse/facets?${queryString}`;
145
160
  }
146
161
 
162
+ // Create URL from supplied facet name and parameters
163
+ function createBrowseUrlForFacetOptions(facetName, parameters, userParameters, options) {
164
+ const { serviceUrl } = options;
165
+
166
+ // Validate facet name is provided
167
+ if (!facetName || typeof facetName !== 'string') {
168
+ throw new Error('facetName is a required parameter of type string');
169
+ }
170
+
171
+ const queryParams = { ...createQueryParams(parameters, userParameters, options) };
172
+
173
+ delete queryParams._dt;
174
+
175
+ const queryString = qs.stringify(queryParams, { indices: false });
176
+
177
+ return `${serviceUrl}/browse/facet_options?facet_name=${facetName}&${queryString}`;
178
+ }
179
+
147
180
  // Create request headers using supplied options and user parameters
148
181
  function createHeaders(options, userParameters) {
149
182
  const headers = {};
@@ -192,12 +225,13 @@ class Browse {
192
225
  * @param {string} [parameters.sortOrder='descending'] - The sort order for results
193
226
  * @param {object} [parameters.fmtOptions] - The format options used to refine result groups
194
227
  * @param {string[]} [parameters.hiddenFields] - Hidden metadata fields to return
228
+ * @param {string[]} [parameters.hiddenFacets] - Hidden facet fields to return
195
229
  * @param {object} [userParameters] - Parameters relevant to the user request
196
230
  * @param {number} [userParameters.sessionId] - Session ID, utilized to personalize results
197
231
  * @param {number} [userParameters.clientId] - Client ID, utilized to personalize results
198
232
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
199
233
  * @param {string} [userParameters.segments] - User segments
200
- * @param {string} [userParameters.testCells] - User test cells
234
+ * @param {object} [userParameters.testCells] - User test cells
201
235
  * @param {string} [userParameters.userIp] - Origin user IP, from client
202
236
  * @param {string} [userParameters.userAgent] - Origin user agent, from client
203
237
  * @param {object} [networkParameters] - Parameters relevant to the network request
@@ -210,6 +244,10 @@ class Browse {
210
244
  * filters: {
211
245
  * size: 'medium'
212
246
  * },
247
+ * }, {
248
+ * testCells: {
249
+ * testName: 'cellName',
250
+ * },
213
251
  * });
214
252
  */
215
253
  getBrowseResults(filterName, filterValue, parameters = {}, userParameters = {}, networkParameters = {}) {
@@ -257,10 +295,10 @@ class Browse {
257
295
  }
258
296
 
259
297
  /**
260
- * Retrieve browse results from API using item ID's
298
+ * Retrieve browse results from API using item IDs
261
299
  *
262
300
  * @function getBrowseResultsForItemIds
263
- * @param {string[]} itemIds - Item ID's of results to fetch
301
+ * @param {string[]} itemIds - Item IDs of results to fetch
264
302
  * @param {object} [parameters] - Additional parameters to refine result set
265
303
  * @param {number} [parameters.page] - The page number of the results
266
304
  * @param {number} [parameters.resultsPerPage] - The number of results per page to return
@@ -269,12 +307,13 @@ class Browse {
269
307
  * @param {string} [parameters.sortOrder='descending'] - The sort order for results
270
308
  * @param {object} [parameters.fmtOptions] - The format options used to refine result groups
271
309
  * @param {string[]} [parameters.hiddenFields] - Hidden metadata fields to return
310
+ * @param {string[]} [parameters.hiddenFacets] - Hidden facet fields to return
272
311
  * @param {object} [userParameters] - Parameters relevant to the user request
273
312
  * @param {number} [userParameters.sessionId] - Session ID, utilized to personalize results
274
313
  * @param {number} [userParameters.clientId] - Client ID, utilized to personalize results
275
314
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
276
315
  * @param {string} [userParameters.segments] - User segments
277
- * @param {string} [userParameters.testCells] - User test cells
316
+ * @param {object} [userParameters.testCells] - User test cells
278
317
  * @param {string} [userParameters.userIp] - Origin user IP, from client
279
318
  * @param {string} [userParameters.userAgent] - Origin user agent, from client
280
319
  * @param {object} [networkParameters] - Parameters relevant to the network request
@@ -286,8 +325,12 @@ class Browse {
286
325
  * filters: {
287
326
  * size: 'medium'
288
327
  * },
328
+ * }, {
329
+ * testCells: {
330
+ * 'testName': 'cellName',
331
+ * },
289
332
  * });
290
- */
333
+ */
291
334
  getBrowseResultsForItemIds(itemIds, parameters = {}, userParameters = {}, networkParameters = {}) {
292
335
  let requestUrl;
293
336
  const fetch = (this.options && this.options.fetch) || nodeFetch;
@@ -338,7 +381,7 @@ class Browse {
338
381
  * @param {number} [userParameters.clientId] - Client ID, utilized to personalize results
339
382
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
340
383
  * @param {string} [userParameters.segments] - User segments
341
- * @param {string} [userParameters.testCells] - User test cells
384
+ * @param {object} [userParameters.testCells] - User test cells
342
385
  * @param {string} [userParameters.userIp] - Origin user IP, from client
343
386
  * @param {string} [userParameters.userAgent] - Origin user agent, from client
344
387
  * @param {object} [networkParameters] - Parameters relevant to the network request
@@ -353,6 +396,10 @@ class Browse {
353
396
  * fmtOptions: {
354
397
  * groups_max_depth: 2
355
398
  * }
399
+ * }, {
400
+ * testCells: {
401
+ * 'testName': 'cellName',
402
+ * },
356
403
  * });
357
404
  */
358
405
  getBrowseGroups(parameters = {}, userParameters = {}, networkParameters = {}) {
@@ -395,7 +442,7 @@ class Browse {
395
442
  * @param {number} [userParameters.clientId] - Client ID, utilized to personalize results
396
443
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
397
444
  * @param {string} [userParameters.segments] - User segments
398
- * @param {string} [userParameters.testCells] - User test cells
445
+ * @param {object} [userParameters.testCells] - User test cells
399
446
  * @param {string} [userParameters.userIp] - Origin user IP, from client
400
447
  * @param {string} [userParameters.userAgent] - Origin user agent, from client
401
448
  * @param {object} [networkParameters] - Parameters relevant to the network request
@@ -406,6 +453,10 @@ class Browse {
406
453
  * constructorio.browse.getBrowseFacets({
407
454
  * page: 1,
408
455
  * resultsPerPage: 10,
456
+ * }, {
457
+ * testCells: {
458
+ * 'testName': 'cellName',
459
+ * },
409
460
  * });
410
461
  */
411
462
  getBrowseFacets(parameters = {}, userParameters = {}, networkParameters = {}) {
@@ -434,6 +485,59 @@ class Browse {
434
485
  return helpers.throwHttpErrorFromResponse(new Error(), response);
435
486
  });
436
487
  }
488
+
489
+ /**
490
+ * Retrieve facet options from API
491
+ *
492
+ * @function getBrowseFacetOptions
493
+ * @param {string} facetName - Name of the facet whose options to return
494
+ * @param {object} [parameters] - Additional parameters to refine result set
495
+ * @param {object} [parameters.fmtOptions] - The format options used to refine result groups
496
+ * @param {boolean} [parameters.fmtOptions.show_hidden_facets] - Include facets configured as hidden
497
+ * @param {boolean} [parameters.fmtOptions.show_protected_facets] - Include facets configured as protected
498
+ * @param {object} [userParameters] - Parameters relevant to the user request
499
+ * @param {number} [userParameters.sessionId] - Session ID, utilized to personalize results
500
+ * @param {number} [userParameters.clientId] - Client ID, utilized to personalize results
501
+ * @param {string} [userParameters.userId] - User ID, utilized to personalize results
502
+ * @param {string} [userParameters.segments] - User segments
503
+ * @param {string} [userParameters.testCells] - User test cells
504
+ * @param {string} [userParameters.userIp] - Origin user IP, from client
505
+ * @param {string} [userParameters.userAgent] - Origin user agent, from client
506
+ * @param {object} [networkParameters] - Parameters relevant to the network request
507
+ * @param {number} [networkParameters.timeout] - Request timeout (in milliseconds)
508
+ * @returns {Promise}
509
+ * @see https://docs.constructor.io/rest_api/browse/facet_options
510
+ * @example
511
+ * constructorio.browse.getBrowseFacetOptions('price', {
512
+ * fmtOptions: { ... },
513
+ * });
514
+ */
515
+ getBrowseFacetOptions(facetName, parameters = {}, userParameters = {}, networkParameters = {}) {
516
+ let requestUrl;
517
+ const fetch = (this.options && this.options.fetch) || nodeFetch;
518
+ const controller = new AbortController();
519
+ const { signal } = controller;
520
+
521
+ try {
522
+ requestUrl = createBrowseUrlForFacetOptions(facetName, parameters, userParameters, this.options);
523
+ } catch (e) {
524
+ return Promise.reject(e);
525
+ }
526
+
527
+ // Handle network timeout if specified
528
+ helpers.applyNetworkTimeout(this.options, networkParameters, controller);
529
+
530
+ return fetch(requestUrl, {
531
+ headers: helpers.createAuthHeader(this.options),
532
+ signal,
533
+ }).then((response) => {
534
+ if (response.ok) {
535
+ return response.json();
536
+ }
537
+
538
+ return helpers.throwHttpErrorFromResponse(new Error(), response);
539
+ });
540
+ }
437
541
  }
438
542
 
439
543
  module.exports = Browse;
@@ -141,7 +141,7 @@ class Catalog {
141
141
  * @param {string} [parameters.url] - A URL to directly send the user after selecting the item
142
142
  * @param {string} [parameters.image_url] - A URL that points to an image you'd like displayed next to some item (only applicable when URL is supplied)
143
143
  * @param {string} [parameters.description] - A description for some item (only applicable when URL is supplied)
144
- * @param {string} [parameters.id] - An arbitrary ID you would like associated with this item. You can use this field to store your own ID's of the items to more easily access them in other API calls
144
+ * @param {string} [parameters.id] - An arbitrary ID you would like associated with this item. You can use this field to store your own IDs of the items to more easily access them in other API calls
145
145
  * @param {object} [parameters.facets] - Key/value pairs that can be associated with an item and used to filter them during a search. You can associate multiple values with the same key, by making values a list. Facets can be used as filters in search, autosuggest, and browse requests
146
146
  * @param {object} [parameters.metadata] - You can associate schema-less data with items by passing in an object of keys and values. To configure search and display of this data reach out to support@constructor.io
147
147
  * @param {string[]} [parameters.group_ids] - You can associate each item with one or more groups (i.e. categories). To set up a group hierarchy please contact support@constructor.io. group_ids can be used as filters in search, autosuggest, and browse requests
@@ -195,7 +195,7 @@ class Catalog {
195
195
  * @param {string} [parameters.url] - A URL to directly send the user after selecting the item
196
196
  * @param {string} [parameters.image_url] - A URL that points to an image you'd like displayed next to some item (only applicable when URL is supplied)
197
197
  * @param {string} [parameters.description] - A description for some item (only applicable when URL is supplied)
198
- * @param {string} [parameters.id] - An arbitrary ID you would like associated with this item. You can use this field to store your own ID's of the items to more easily access them in other API calls
198
+ * @param {string} [parameters.id] - An arbitrary ID you would like associated with this item. You can use this field to store your own IDs of the items to more easily access them in other API calls
199
199
  * @param {object} [parameters.facets] - Key/value pairs that can be associated with an item and used to filter them during a search. You can associate multiple values with the same key, by making values a list. Facets can be used as filters in search, autosuggest, and browse requests
200
200
  * @param {object} [parameters.metadata] - You can associate schema-less data with items by passing in an object of keys and values. To configure search and display of this data reach out to support@constructor.io
201
201
  * @param {string[]} [parameters.group_ids] - You can associate each item with one or more groups (i.e. categories). To set up a group hierarchy please contact support@constructor.io. group_ids can be used as filters in search, autosuggest, and browse requests
@@ -295,7 +295,7 @@ class Catalog {
295
295
  * @param {string} [parameters.url] - A URL to directly send the user after selecting the item
296
296
  * @param {string} [parameters.image_url] - A URL that points to an image you'd like displayed next to some item (only applicable when URL is supplied)
297
297
  * @param {string} [parameters.description] - A description for some item (only applicable when URL is supplied)
298
- * @param {string} [parameters.id] - An arbitrary ID you would like associated with this item. You can use this field to store your own ID's of the items to more easily access them in other API calls
298
+ * @param {string} [parameters.id] - An arbitrary ID you would like associated with this item. You can use this field to store your own IDs of the items to more easily access them in other API calls
299
299
  * @param {object} [parameters.facets] - Key/value pairs that can be associated with an item and used to filter them during a search. You can associate multiple values with the same key, by making values a list. Facets can be used as filters in search, autosuggest, and browse requests
300
300
  * @param {object} [parameters.metadata] - You can associate schema-less data with items by passing in an object of keys and values. To configure search and display of this data reach out to support@constructor.io
301
301
  * @param {string[]} [parameters.group_ids] - You can associate each item with one or more groups (i.e. categories). To set up a group hierarchy please contact support@constructor.io. group_ids can be used as filters in search, autosuggest, and browse requests
@@ -102,7 +102,7 @@ class Recommendations {
102
102
  * @param {number} [userParameters.clientId] - Client ID, utilized to personalize results
103
103
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
104
104
  * @param {string} [userParameters.segments] - User segments
105
- * @param {string} [userParameters.testCells] - User test cells
105
+ * @param {object} [userParameters.testCells] - User test cells
106
106
  * @param {string} [userParameters.userIp] - Origin user IP, from client
107
107
  * @param {string} [userParameters.userAgent] - Origin user agent, from client
108
108
  * @param {object} [networkParameters] - Parameters relevant to the network request
@@ -115,6 +115,10 @@ class Recommendations {
115
115
  * filters: {
116
116
  * size: 'medium'
117
117
  * },
118
+ * }, {
119
+ * testCells: {
120
+ * testName: 'cellName',
121
+ * },
118
122
  * });
119
123
  */
120
124
  getRecommendations(podId, parameters = {}, userParameters = {}, networkParameters = {}) {
@@ -56,6 +56,7 @@ function createSearchUrl(query, parameters, userParameters, options) {
56
56
  section,
57
57
  fmtOptions,
58
58
  hiddenFields,
59
+ hiddenFacets,
59
60
  } = parameters;
60
61
 
61
62
  // Pull page from parameters
@@ -95,7 +96,20 @@ function createSearchUrl(query, parameters, userParameters, options) {
95
96
 
96
97
  // Pull hidden fields from parameters
97
98
  if (hiddenFields) {
98
- queryParams.hidden_fields = hiddenFields;
99
+ if (queryParams.fmt_options) {
100
+ queryParams.fmt_options.hidden_fields = hiddenFields;
101
+ } else {
102
+ queryParams.fmt_options = { hidden_fields: hiddenFields };
103
+ }
104
+ }
105
+
106
+ // Pull hidden facets from parameters
107
+ if (hiddenFacets) {
108
+ if (queryParams.fmt_options) {
109
+ queryParams.fmt_options.hidden_facets = hiddenFacets;
110
+ } else {
111
+ queryParams.fmt_options = { hidden_facets: hiddenFacets };
112
+ }
99
113
  }
100
114
  }
101
115
 
@@ -133,12 +147,13 @@ class Search {
133
147
  * @param {string} [parameters.section='Products'] - The section name for results
134
148
  * @param {object} [parameters.fmtOptions] - The format options used to refine result groups
135
149
  * @param {string[]} [parameters.hiddenFields] - Hidden metadata fields to return
150
+ * @param {string[]} [parameters.hiddenFacets] - Hidden facet fields to return
136
151
  * @param {object} [userParameters] - Parameters relevant to the user request
137
152
  * @param {number} [userParameters.sessionId] - Session ID, utilized to personalize results
138
153
  * @param {number} [userParameters.clientId] - Client ID, utilized to personalize results
139
154
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
140
155
  * @param {string} [userParameters.segments] - User segments
141
- * @param {string} [userParameters.testCells] - User test cells
156
+ * @param {object} [userParameters.testCells] - User test cells
142
157
  * @param {string} [userParameters.userIp] - Origin user IP, from client
143
158
  * @param {string} [userParameters.userAgent] - Origin user agent, from client
144
159
  * @param {object} [networkParameters] - Parameters relevant to the network request
@@ -151,6 +166,10 @@ class Search {
151
166
  * filters: {
152
167
  * size: 'medium'
153
168
  * },
169
+ * }, {
170
+ * testCells: {
171
+ * testName: 'cellName',
172
+ * },
154
173
  * });
155
174
  */
156
175
 
@@ -192,7 +192,7 @@ class Tracker {
192
192
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
193
193
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
194
194
  * @param {string} [userParameters.segments] - User segments
195
- * @param {string} [userParameters.testCells] - User test cells
195
+ * @param {object} [userParameters.testCells] - User test cells
196
196
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
197
197
  * @param {string} [userParameters.referer] - Client page URL (including path)
198
198
  * @param {string} [userParameters.userIp] - Client user IP
@@ -205,6 +205,7 @@ class Tracker {
205
205
  * constructorio.tracker.trackSessionStart({
206
206
  * sessionId: 1,
207
207
  * clientId: '6c73138f-c27b-49f0-872d-63b00ed0e395',
208
+ * testCells: { testName: 'cellName' },
208
209
  * });
209
210
  */
210
211
  trackSessionStart(userParameters, networkParameters = {}) {
@@ -231,7 +232,7 @@ class Tracker {
231
232
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
232
233
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
233
234
  * @param {string} [userParameters.segments] - User segments
234
- * @param {string} [userParameters.testCells] - User test cells
235
+ * @param {object} [userParameters.testCells] - User test cells
235
236
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
236
237
  * @param {string} [userParameters.referer] - Client page URL (including path)
237
238
  * @param {string} [userParameters.userIp] - Client user IP
@@ -245,6 +246,7 @@ class Tracker {
245
246
  * constructorio.tracker.trackInputFocus({
246
247
  * sessionId: 1,
247
248
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
249
+ * testCells: { testName: 'cellName' },
248
250
  * });
249
251
  */
250
252
  trackInputFocus(userParameters, networkParameters = {}) {
@@ -278,7 +280,7 @@ class Tracker {
278
280
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
279
281
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
280
282
  * @param {string} [userParameters.segments] - User segments
281
- * @param {string} [userParameters.testCells] - User test cells
283
+ * @param {object} [userParameters.testCells] - User test cells
282
284
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
283
285
  * @param {string} [userParameters.referer] - Client page URL (including path)
284
286
  * @param {string} [userParameters.userIp] - Client user IP
@@ -291,17 +293,20 @@ class Tracker {
291
293
  * @example
292
294
  * constructorio.tracker.trackAutocompleteSelect(
293
295
  * 'T-Shirt',
294
- * {
295
- * original_query: 'Shirt',
296
- * section: 'Products',
297
- * tr: 'click',
298
- * group_id: '88JU230',
299
- * display_name: 'apparel',
300
- * },
301
- * {
302
- * sessionId: 1,
303
- * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
304
- * },
296
+ * {
297
+ * original_query: 'Shirt',
298
+ * section: 'Products',
299
+ * tr: 'click',
300
+ * group_id: '88JU230',
301
+ * display_name: 'apparel',
302
+ * },
303
+ * {
304
+ * sessionId: 1,
305
+ * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
306
+ * testCells: {
307
+ * testName: 'cellName',
308
+ * },
309
+ * },
305
310
  * );
306
311
  */
307
312
  trackAutocompleteSelect(term, parameters, userParameters, networkParameters = {}) {
@@ -371,7 +376,7 @@ class Tracker {
371
376
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
372
377
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
373
378
  * @param {string} [userParameters.segments] - User segments
374
- * @param {string} [userParameters.testCells] - User test cells
379
+ * @param {object} [userParameters.testCells] - User test cells
375
380
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
376
381
  * @param {string} [userParameters.referer] - Client page URL (including path)
377
382
  * @param {string} [userParameters.userIp] - Client user IP
@@ -392,6 +397,9 @@ class Tracker {
392
397
  * {
393
398
  * sessionId: 1,
394
399
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
400
+ * testCells: {
401
+ * testName: 'cellName',
402
+ * },
395
403
  * },
396
404
  * );
397
405
  */
@@ -446,7 +454,7 @@ class Tracker {
446
454
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
447
455
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
448
456
  * @param {string} [userParameters.segments] - User segments
449
- * @param {string} [userParameters.testCells] - User test cells
457
+ * @param {object} [userParameters.testCells] - User test cells
450
458
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
451
459
  * @param {string} [userParameters.referer] - Client page URL (including path)
452
460
  * @param {string} [userParameters.userIp] - Client user IP
@@ -466,6 +474,9 @@ class Tracker {
466
474
  * {
467
475
  * sessionId: 1,
468
476
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
477
+ * testCells: {
478
+ * testName: 'cellName',
479
+ * },
469
480
  * },
470
481
  * );
471
482
  */
@@ -527,7 +538,7 @@ class Tracker {
527
538
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
528
539
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
529
540
  * @param {string} [userParameters.segments] - User segments
530
- * @param {string} [userParameters.testCells] - User test cells
541
+ * @param {object} [userParameters.testCells] - User test cells
531
542
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
532
543
  * @param {string} [userParameters.referer] - Client page URL (including path)
533
544
  * @param {string} [userParameters.userIp] - Client user IP
@@ -548,6 +559,9 @@ class Tracker {
548
559
  * {
549
560
  * sessionId: 1,
550
561
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
562
+ * testCells: {
563
+ * testName: 'cellName',
564
+ * },
551
565
  * },
552
566
  * );
553
567
  */
@@ -620,7 +634,7 @@ class Tracker {
620
634
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
621
635
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
622
636
  * @param {string} [userParameters.segments] - User segments
623
- * @param {string} [userParameters.testCells] - User test cells
637
+ * @param {object} [userParameters.testCells] - User test cells
624
638
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
625
639
  * @param {string} [userParameters.referer] - Client page URL (including path)
626
640
  * @param {string} [userParameters.userIp] - Client user IP
@@ -646,6 +660,9 @@ class Tracker {
646
660
  * {
647
661
  * sessionId: 1,
648
662
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
663
+ * testCells: {
664
+ * testName: 'cellName',
665
+ * },
649
666
  * },
650
667
  * );
651
668
  */
@@ -745,7 +762,7 @@ class Tracker {
745
762
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
746
763
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
747
764
  * @param {string} [userParameters.segments] - User segments
748
- * @param {string} [userParameters.testCells] - User test cells
765
+ * @param {object} [userParameters.testCells] - User test cells
749
766
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
750
767
  * @param {string} [userParameters.referer] - Client page URL (including path)
751
768
  * @param {string} [userParameters.userIp] - Client user IP
@@ -766,6 +783,9 @@ class Tracker {
766
783
  * {
767
784
  * sessionId: 1,
768
785
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
786
+ * testCells: {
787
+ * testName: 'cellName',
788
+ * },
769
789
  * },
770
790
  * );
771
791
  */
@@ -831,7 +851,7 @@ class Tracker {
831
851
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
832
852
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
833
853
  * @param {string} [userParameters.segments] - User segments
834
- * @param {string} [userParameters.testCells] - User test cells
854
+ * @param {object} [userParameters.testCells] - User test cells
835
855
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
836
856
  * @param {string} [userParameters.referer] - Client page URL (including path)
837
857
  * @param {string} [userParameters.userIp] - Client user IP
@@ -854,6 +874,9 @@ class Tracker {
854
874
  * {
855
875
  * sessionId: 1,
856
876
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
877
+ * testCells: {
878
+ * testName: 'cellName',
879
+ * },
857
880
  * },
858
881
  * );
859
882
  */
@@ -941,7 +964,7 @@ class Tracker {
941
964
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
942
965
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
943
966
  * @param {string} [userParameters.segments] - User segments
944
- * @param {string} [userParameters.testCells] - User test cells
967
+ * @param {object} [userParameters.testCells] - User test cells
945
968
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
946
969
  * @param {string} [userParameters.referer] - Client page URL (including path)
947
970
  * @param {string} [userParameters.userIp] - Client user IP
@@ -967,6 +990,9 @@ class Tracker {
967
990
  * {
968
991
  * sessionId: 1,
969
992
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
993
+ * testCells: {
994
+ * testName: 'cellName',
995
+ * },
970
996
  * },
971
997
  * );
972
998
  */
@@ -1070,7 +1096,7 @@ class Tracker {
1070
1096
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
1071
1097
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
1072
1098
  * @param {string} [userParameters.segments] - User segments
1073
- * @param {string} [userParameters.testCells] - User test cells
1099
+ * @param {object} [userParameters.testCells] - User test cells
1074
1100
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
1075
1101
  * @param {string} [userParameters.referer] - Client page URL (including path)
1076
1102
  * @param {string} [userParameters.userIp] - Client user IP
@@ -1097,6 +1123,9 @@ class Tracker {
1097
1123
  * {
1098
1124
  * sessionId: 1,
1099
1125
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
1126
+ * testCells: {
1127
+ * testName: 'cellName',
1128
+ * },
1100
1129
  * },
1101
1130
  * );
1102
1131
  */
@@ -1205,7 +1234,7 @@ class Tracker {
1205
1234
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
1206
1235
  * @param {string} [userParameters.userId] - User ID, utilized to personalize results
1207
1236
  * @param {string} [userParameters.segments] - User segments
1208
- * @param {string} [userParameters.testCells] - User test cells
1237
+ * @param {object} [userParameters.testCells] - User test cells
1209
1238
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
1210
1239
  * @param {string} [userParameters.referer] - Client page URL (including path)
1211
1240
  * @param {string} [userParameters.userIp] - Client user IP
@@ -1232,6 +1261,9 @@ class Tracker {
1232
1261
  * {
1233
1262
  * sessionId: 1,
1234
1263
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
1264
+ * testCells: {
1265
+ * testName: 'cellName',
1266
+ * },
1235
1267
  * },
1236
1268
  * );
1237
1269
  */
@@ -1333,7 +1365,7 @@ class Tracker {
1333
1365
  * @param {number} userParameters.clientId - Client ID, utilized to personalize results
1334
1366
  * @param {string} userParameters.userId - User ID, utilized to personalize results
1335
1367
  * @param {string} [userParameters.segments] - User segments
1336
- * @param {string} [userParameters.testCells] - User test cells
1368
+ * @param {object} [userParameters.testCells] - User test cells
1337
1369
  * @param {string} [userParameters.originReferrer] - Client page URL (including path)
1338
1370
  * @param {string} [userParameters.referer] - Client page URL (including path)
1339
1371
  * @param {string} [userParameters.userIp] - Client user IP
@@ -1353,6 +1385,9 @@ class Tracker {
1353
1385
  * {
1354
1386
  * sessionId: 1,
1355
1387
  * clientId: '7a43138f-c87b-29c0-872d-65b00ed0e392',
1388
+ * testCells: {
1389
+ * testName: 'cellName',
1390
+ * },
1356
1391
  * },
1357
1392
  * );
1358
1393
  */
package/src/.DS_Store DELETED
Binary file