@constructor-io/constructorio-client-javascript 2.24.4 → 2.25.5
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/lib/constructorio.js +5 -8
- package/lib/modules/autocomplete.js +5 -7
- package/lib/modules/browse.js +8 -10
- package/lib/modules/recommendations.js +5 -7
- package/lib/modules/search.js +5 -7
- package/lib/modules/tracker.js +29 -26
- package/lib/utils/event-dispatcher.js +5 -7
- package/lib/utils/helpers.js +4 -2
- package/lib/utils/humanity-check.js +16 -9
- package/lib/utils/request-queue.js +28 -11
- package/package.json +2 -1
package/lib/constructorio.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
9
|
/* eslint-disable camelcase, no-unneeded-ternary, max-len */
|
|
10
10
|
var ConstructorioID = require('@constructor-io/constructorio-id'); // Modules
|
|
@@ -60,9 +60,7 @@ var ConstructorIO = /*#__PURE__*/function () {
|
|
|
60
60
|
*/
|
|
61
61
|
function ConstructorIO() {
|
|
62
62
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
63
|
-
|
|
64
|
-
_classCallCheck(this, ConstructorIO);
|
|
65
|
-
|
|
63
|
+
(0, _classCallCheck2["default"])(this, ConstructorIO);
|
|
66
64
|
var canUseDOM = helpers.canUseDOM();
|
|
67
65
|
var apiKey = options.apiKey,
|
|
68
66
|
version = options.version,
|
|
@@ -142,7 +140,7 @@ var ConstructorIO = /*#__PURE__*/function () {
|
|
|
142
140
|
*/
|
|
143
141
|
|
|
144
142
|
|
|
145
|
-
|
|
143
|
+
(0, _createClass2["default"])(ConstructorIO, [{
|
|
146
144
|
key: "setClientOptions",
|
|
147
145
|
value: function setClientOptions(options) {
|
|
148
146
|
if (Object.keys(options).length) {
|
|
@@ -169,7 +167,6 @@ var ConstructorIO = /*#__PURE__*/function () {
|
|
|
169
167
|
}
|
|
170
168
|
}
|
|
171
169
|
}]);
|
|
172
|
-
|
|
173
170
|
return ConstructorIO;
|
|
174
171
|
}(); // Exposed for testing
|
|
175
172
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
9
|
/* eslint-disable object-curly-newline, no-underscore-dangle */
|
|
10
10
|
var qs = require('qs');
|
|
@@ -104,8 +104,7 @@ function createAutocompleteUrl(query, parameters, options) {
|
|
|
104
104
|
|
|
105
105
|
var Autocomplete = /*#__PURE__*/function () {
|
|
106
106
|
function Autocomplete(options) {
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
(0, _classCallCheck2["default"])(this, Autocomplete);
|
|
109
108
|
this.options = options || {};
|
|
110
109
|
this.eventDispatcher = new EventDispatcher(options.eventDispatcher);
|
|
111
110
|
}
|
|
@@ -137,7 +136,7 @@ var Autocomplete = /*#__PURE__*/function () {
|
|
|
137
136
|
*/
|
|
138
137
|
|
|
139
138
|
|
|
140
|
-
|
|
139
|
+
(0, _createClass2["default"])(Autocomplete, [{
|
|
141
140
|
key: "getAutocompleteResults",
|
|
142
141
|
value: function getAutocompleteResults(query, parameters) {
|
|
143
142
|
var _this = this;
|
|
@@ -192,7 +191,6 @@ var Autocomplete = /*#__PURE__*/function () {
|
|
|
192
191
|
});
|
|
193
192
|
}
|
|
194
193
|
}]);
|
|
195
|
-
|
|
196
194
|
return Autocomplete;
|
|
197
195
|
}();
|
|
198
196
|
|
package/lib/modules/browse.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
|
|
11
|
-
function
|
|
11
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
12
12
|
|
|
13
|
-
function
|
|
13
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
14
14
|
|
|
15
15
|
/* eslint-disable object-curly-newline, no-underscore-dangle */
|
|
16
16
|
var qs = require('qs');
|
|
@@ -173,8 +173,7 @@ function createBrowseUrlForFacets(parameters, options) {
|
|
|
173
173
|
|
|
174
174
|
var Browse = /*#__PURE__*/function () {
|
|
175
175
|
function Browse(options) {
|
|
176
|
-
|
|
177
|
-
|
|
176
|
+
(0, _classCallCheck2["default"])(this, Browse);
|
|
178
177
|
this.options = options || {};
|
|
179
178
|
this.eventDispatcher = new EventDispatcher(options.eventDispatcher);
|
|
180
179
|
}
|
|
@@ -207,7 +206,7 @@ var Browse = /*#__PURE__*/function () {
|
|
|
207
206
|
*/
|
|
208
207
|
|
|
209
208
|
|
|
210
|
-
|
|
209
|
+
(0, _createClass2["default"])(Browse, [{
|
|
211
210
|
key: "getBrowseResults",
|
|
212
211
|
value: function getBrowseResults(filterName, filterValue, parameters) {
|
|
213
212
|
var _this = this;
|
|
@@ -441,7 +440,6 @@ var Browse = /*#__PURE__*/function () {
|
|
|
441
440
|
});
|
|
442
441
|
}
|
|
443
442
|
}]);
|
|
444
|
-
|
|
445
443
|
return Browse;
|
|
446
444
|
}();
|
|
447
445
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
9
|
/* eslint-disable object-curly-newline, no-param-reassign */
|
|
10
10
|
var qs = require('qs');
|
|
@@ -96,8 +96,7 @@ function createRecommendationsUrl(podId, parameters, options) {
|
|
|
96
96
|
|
|
97
97
|
var Recommendations = /*#__PURE__*/function () {
|
|
98
98
|
function Recommendations(options) {
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
(0, _classCallCheck2["default"])(this, Recommendations);
|
|
101
100
|
this.options = options || {};
|
|
102
101
|
this.eventDispatcher = new EventDispatcher(options.eventDispatcher);
|
|
103
102
|
}
|
|
@@ -127,7 +126,7 @@ var Recommendations = /*#__PURE__*/function () {
|
|
|
127
126
|
*/
|
|
128
127
|
|
|
129
128
|
|
|
130
|
-
|
|
129
|
+
(0, _createClass2["default"])(Recommendations, [{
|
|
131
130
|
key: "getRecommendations",
|
|
132
131
|
value: function getRecommendations(podId, parameters) {
|
|
133
132
|
var _this = this;
|
|
@@ -175,7 +174,6 @@ var Recommendations = /*#__PURE__*/function () {
|
|
|
175
174
|
});
|
|
176
175
|
}
|
|
177
176
|
}]);
|
|
178
|
-
|
|
179
177
|
return Recommendations;
|
|
180
178
|
}();
|
|
181
179
|
|
package/lib/modules/search.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
9
|
/* eslint-disable object-curly-newline, no-underscore-dangle */
|
|
10
10
|
var qs = require('qs');
|
|
@@ -123,8 +123,7 @@ function createSearchUrl(query, parameters, options) {
|
|
|
123
123
|
|
|
124
124
|
var Search = /*#__PURE__*/function () {
|
|
125
125
|
function Search(options) {
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
(0, _classCallCheck2["default"])(this, Search);
|
|
128
127
|
this.options = options || {};
|
|
129
128
|
this.eventDispatcher = new EventDispatcher(options.eventDispatcher);
|
|
130
129
|
}
|
|
@@ -157,7 +156,7 @@ var Search = /*#__PURE__*/function () {
|
|
|
157
156
|
*/
|
|
158
157
|
|
|
159
158
|
|
|
160
|
-
|
|
159
|
+
(0, _createClass2["default"])(Search, [{
|
|
161
160
|
key: "getSearchResults",
|
|
162
161
|
value: function getSearchResults(query, parameters) {
|
|
163
162
|
var _this = this;
|
|
@@ -212,7 +211,6 @@ var Search = /*#__PURE__*/function () {
|
|
|
212
211
|
});
|
|
213
212
|
}
|
|
214
213
|
}]);
|
|
215
|
-
|
|
216
214
|
return Search;
|
|
217
215
|
}();
|
|
218
216
|
|
package/lib/modules/tracker.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
12
|
|
|
13
|
-
function
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
14
14
|
|
|
15
|
-
function
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
16
16
|
|
|
17
17
|
/* eslint-disable object-curly-newline, no-underscore-dangle, camelcase, no-unneeded-ternary */
|
|
18
18
|
var qs = require('qs');
|
|
@@ -106,8 +106,7 @@ function applyParamsAsString(parameters, options) {
|
|
|
106
106
|
|
|
107
107
|
var Tracker = /*#__PURE__*/function () {
|
|
108
108
|
function Tracker(options) {
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
(0, _classCallCheck2["default"])(this, Tracker);
|
|
111
110
|
this.options = options || {};
|
|
112
111
|
this.eventemitter = new EventEmitter();
|
|
113
112
|
this.requests = new RequestQueue(options, this.eventemitter);
|
|
@@ -124,7 +123,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
124
123
|
*/
|
|
125
124
|
|
|
126
125
|
|
|
127
|
-
|
|
126
|
+
(0, _createClass2["default"])(Tracker, [{
|
|
128
127
|
key: "trackSessionStart",
|
|
129
128
|
value: function trackSessionStart() {
|
|
130
129
|
var networkParameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -196,7 +195,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
196
195
|
// Ensure term is provided (required)
|
|
197
196
|
if (term && typeof term === 'string') {
|
|
198
197
|
// Ensure parameters are provided (required)
|
|
199
|
-
if (parameters &&
|
|
198
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
200
199
|
var url = "".concat(this.options.serviceUrl, "/autocomplete/").concat(helpers.ourEncodeURIComponent(term), "/select?");
|
|
201
200
|
var queryParams = {};
|
|
202
201
|
var original_query = parameters.original_query,
|
|
@@ -269,7 +268,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
269
268
|
// Ensure term is provided (required)
|
|
270
269
|
if (term && typeof term === 'string') {
|
|
271
270
|
// Ensure parameters are provided (required)
|
|
272
|
-
if (parameters &&
|
|
271
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
273
272
|
var url = "".concat(this.options.serviceUrl, "/autocomplete/").concat(helpers.ourEncodeURIComponent(term), "/search?");
|
|
274
273
|
var queryParams = {};
|
|
275
274
|
var original_query = parameters.original_query,
|
|
@@ -329,7 +328,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
329
328
|
// Ensure term is provided (required)
|
|
330
329
|
if (term && typeof term === 'string') {
|
|
331
330
|
// Ensure parameters are provided (required)
|
|
332
|
-
if (parameters &&
|
|
331
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
333
332
|
var url = "".concat(this.options.serviceUrl, "/behavior?");
|
|
334
333
|
var queryParams = {
|
|
335
334
|
action: 'search-results',
|
|
@@ -338,6 +337,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
338
337
|
var num_results = parameters.num_results,
|
|
339
338
|
customer_ids = parameters.customer_ids,
|
|
340
339
|
item_ids = parameters.item_ids;
|
|
340
|
+
var customerIDs;
|
|
341
341
|
|
|
342
342
|
if (!helpers.isNil(num_results)) {
|
|
343
343
|
queryParams.num_results = num_results;
|
|
@@ -345,9 +345,13 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
345
345
|
|
|
346
346
|
|
|
347
347
|
if (item_ids && Array.isArray(item_ids) && item_ids.length) {
|
|
348
|
-
|
|
348
|
+
customerIDs = item_ids;
|
|
349
349
|
} else if (customer_ids && Array.isArray(customer_ids) && customer_ids.length) {
|
|
350
|
-
|
|
350
|
+
customerIDs = customer_ids;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
if (customerIDs && customerIDs.length) {
|
|
354
|
+
queryParams.customer_ids = customerIDs.slice(0, 100).join(',');
|
|
351
355
|
}
|
|
352
356
|
|
|
353
357
|
this.requests.queue("".concat(url).concat(applyParamsAsString(queryParams, this.options)), undefined, undefined, networkParameters);
|
|
@@ -395,7 +399,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
395
399
|
// Ensure term is provided (required)
|
|
396
400
|
if (term && typeof term === 'string') {
|
|
397
401
|
// Ensure parameters are provided (required)
|
|
398
|
-
if (parameters &&
|
|
402
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
399
403
|
var url = "".concat(this.options.serviceUrl, "/autocomplete/").concat(helpers.ourEncodeURIComponent(term), "/click_through?");
|
|
400
404
|
var queryParams = {};
|
|
401
405
|
var item_name = parameters.item_name,
|
|
@@ -479,7 +483,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
479
483
|
var networkParameters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
480
484
|
|
|
481
485
|
// Ensure parameters are provided (required)
|
|
482
|
-
if (parameters &&
|
|
486
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
483
487
|
var searchTerm = helpers.ourEncodeURIComponent(term) || 'TERM_UNKNOWN';
|
|
484
488
|
var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/conversion?");
|
|
485
489
|
var queryParams = {};
|
|
@@ -581,7 +585,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
581
585
|
var networkParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
582
586
|
|
|
583
587
|
// Ensure parameters are provided (required)
|
|
584
|
-
if (parameters &&
|
|
588
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
585
589
|
var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/purchase?");
|
|
586
590
|
var queryParams = {};
|
|
587
591
|
var bodyParams = {};
|
|
@@ -602,7 +606,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
602
606
|
}
|
|
603
607
|
|
|
604
608
|
if (items && Array.isArray(items)) {
|
|
605
|
-
bodyParams.items = items;
|
|
609
|
+
bodyParams.items = items.slice(0, 100);
|
|
606
610
|
}
|
|
607
611
|
|
|
608
612
|
if (revenue) {
|
|
@@ -663,7 +667,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
663
667
|
var networkParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
664
668
|
|
|
665
669
|
// Ensure parameters are provided (required)
|
|
666
|
-
if (parameters &&
|
|
670
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
667
671
|
var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/recommendation_result_view?");
|
|
668
672
|
var bodyParams = {};
|
|
669
673
|
var result_count = parameters.result_count,
|
|
@@ -758,7 +762,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
758
762
|
var networkParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
759
763
|
|
|
760
764
|
// Ensure parameters are provided (required)
|
|
761
|
-
if (parameters &&
|
|
765
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
762
766
|
var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/recommendation_result_click?");
|
|
763
767
|
var bodyParams = {};
|
|
764
768
|
var variation_id = parameters.variation_id,
|
|
@@ -870,7 +874,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
870
874
|
var networkParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
871
875
|
|
|
872
876
|
// Ensure parameters are provided (required)
|
|
873
|
-
if (parameters &&
|
|
877
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
874
878
|
var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/browse_result_load?");
|
|
875
879
|
var bodyParams = {};
|
|
876
880
|
var section = parameters.section,
|
|
@@ -928,7 +932,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
928
932
|
}
|
|
929
933
|
|
|
930
934
|
if (items && Array.isArray(items)) {
|
|
931
|
-
bodyParams.items = items;
|
|
935
|
+
bodyParams.items = items.slice(0, 100);
|
|
932
936
|
}
|
|
933
937
|
|
|
934
938
|
var requestURL = "".concat(requestPath).concat(applyParamsAsString({}, this.options));
|
|
@@ -987,7 +991,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
987
991
|
var networkParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
988
992
|
|
|
989
993
|
// Ensure parameters are provided (required)
|
|
990
|
-
if (parameters &&
|
|
994
|
+
if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
|
|
991
995
|
var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/browse_result_click?");
|
|
992
996
|
var bodyParams = {};
|
|
993
997
|
var section = parameters.section,
|
|
@@ -1090,7 +1094,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
1090
1094
|
var networkParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
1091
1095
|
|
|
1092
1096
|
// Ensure required parameters are provided
|
|
1093
|
-
if (
|
|
1097
|
+
if ((0, _typeof2["default"])(parameters) === 'object' && !!parameters.item_id) {
|
|
1094
1098
|
var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/result_click?");
|
|
1095
1099
|
var bodyParams = {};
|
|
1096
1100
|
var item_id = parameters.item_id,
|
|
@@ -1149,7 +1153,6 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
1149
1153
|
return true;
|
|
1150
1154
|
}
|
|
1151
1155
|
}]);
|
|
1152
|
-
|
|
1153
1156
|
return Tracker;
|
|
1154
1157
|
}(); // Exposed for testing
|
|
1155
1158
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
9
|
/* eslint-disable no-unneeded-ternary */
|
|
10
10
|
var helpers = require('../utils/helpers');
|
|
@@ -13,8 +13,7 @@ var EventDispatcher = /*#__PURE__*/function () {
|
|
|
13
13
|
function EventDispatcher(options) {
|
|
14
14
|
var _this = this;
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
(0, _classCallCheck2["default"])(this, EventDispatcher);
|
|
18
17
|
this.events = [];
|
|
19
18
|
this.enabled = options && options.enabled === false ? false : true; // Defaults to 'true'
|
|
20
19
|
|
|
@@ -50,7 +49,7 @@ var EventDispatcher = /*#__PURE__*/function () {
|
|
|
50
49
|
} // Push event data to queue
|
|
51
50
|
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
(0, _createClass2["default"])(EventDispatcher, [{
|
|
54
53
|
key: "queue",
|
|
55
54
|
value: function queue(name, data) {
|
|
56
55
|
this.events.push({
|
|
@@ -75,7 +74,6 @@ var EventDispatcher = /*#__PURE__*/function () {
|
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
}]);
|
|
78
|
-
|
|
79
77
|
return EventDispatcher;
|
|
80
78
|
}();
|
|
81
79
|
|
package/lib/utils/helpers.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
4
6
|
|
|
5
7
|
/* eslint-disable no-param-reassign */
|
|
6
8
|
var qs = require('qs');
|
|
@@ -134,7 +136,7 @@ var utils = {
|
|
|
134
136
|
purchaseEventStorage[orderIdHash] = true;
|
|
135
137
|
} else {
|
|
136
138
|
// Create a new object map for the order ids
|
|
137
|
-
purchaseEventStorage =
|
|
139
|
+
purchaseEventStorage = (0, _defineProperty2["default"])({}, orderIdHash, true);
|
|
138
140
|
} // Push the order id map into session storage
|
|
139
141
|
|
|
140
142
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
9
|
/* eslint-disable class-methods-use-this */
|
|
10
10
|
var store = require('../utils/store');
|
|
@@ -20,9 +20,8 @@ var HumanityCheck = /*#__PURE__*/function () {
|
|
|
20
20
|
function HumanityCheck() {
|
|
21
21
|
var _this = this;
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
this.isHumanBoolean = !!store.session.get(storageKey) || false; // Humanity proved, remove handlers to prove humanity
|
|
23
|
+
(0, _classCallCheck2["default"])(this, HumanityCheck);
|
|
24
|
+
this.isHumanBoolean = this.getIsHumanFromSessionStorage(); // Humanity proved, remove handlers to prove humanity
|
|
26
25
|
|
|
27
26
|
var remove = function remove() {
|
|
28
27
|
_this.isHumanBoolean = true;
|
|
@@ -38,10 +37,15 @@ var HumanityCheck = /*#__PURE__*/function () {
|
|
|
38
37
|
helpers.addEventListener(eventType, remove, true);
|
|
39
38
|
});
|
|
40
39
|
}
|
|
41
|
-
}
|
|
40
|
+
}
|
|
42
41
|
|
|
42
|
+
(0, _createClass2["default"])(HumanityCheck, [{
|
|
43
|
+
key: "getIsHumanFromSessionStorage",
|
|
44
|
+
value: function getIsHumanFromSessionStorage() {
|
|
45
|
+
return !!store.session.get(storageKey) || false;
|
|
46
|
+
} // Return boolean indicating if is human
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
}, {
|
|
45
49
|
key: "isHuman",
|
|
46
50
|
value: function isHuman() {
|
|
47
51
|
return this.isHumanBoolean || !!store.session.get(storageKey);
|
|
@@ -50,6 +54,10 @@ var HumanityCheck = /*#__PURE__*/function () {
|
|
|
50
54
|
}, {
|
|
51
55
|
key: "isBot",
|
|
52
56
|
value: function isBot() {
|
|
57
|
+
if (this.getIsHumanFromSessionStorage()) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
|
|
53
61
|
var _helpers$getNavigator = helpers.getNavigator(),
|
|
54
62
|
userAgent = _helpers$getNavigator.userAgent,
|
|
55
63
|
webdriver = _helpers$getNavigator.webdriver;
|
|
@@ -58,7 +66,6 @@ var HumanityCheck = /*#__PURE__*/function () {
|
|
|
58
66
|
return Boolean(userAgent.match(botRegex)) || Boolean(webdriver);
|
|
59
67
|
}
|
|
60
68
|
}]);
|
|
61
|
-
|
|
62
69
|
return HumanityCheck;
|
|
63
70
|
}();
|
|
64
71
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
9
|
/* eslint-disable brace-style, no-unneeded-ternary */
|
|
10
10
|
var fetchPonyfill = require('fetch-ponyfill');
|
|
@@ -23,8 +23,7 @@ var RequestQueue = /*#__PURE__*/function () {
|
|
|
23
23
|
function RequestQueue(options, eventemitter) {
|
|
24
24
|
var _this = this;
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
(0, _classCallCheck2["default"])(this, RequestQueue);
|
|
28
27
|
this.options = options;
|
|
29
28
|
this.eventemitter = eventemitter;
|
|
30
29
|
this.humanity = new HumanityCheck();
|
|
@@ -43,7 +42,7 @@ var RequestQueue = /*#__PURE__*/function () {
|
|
|
43
42
|
} // Add request to queue to be dispatched
|
|
44
43
|
|
|
45
44
|
|
|
46
|
-
|
|
45
|
+
(0, _createClass2["default"])(RequestQueue, [{
|
|
47
46
|
key: "queue",
|
|
48
47
|
value: function queue(url) {
|
|
49
48
|
var method = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GET';
|
|
@@ -79,16 +78,16 @@ var RequestQueue = /*#__PURE__*/function () {
|
|
|
79
78
|
var _nextInQueue = nextInQueue,
|
|
80
79
|
networkParameters = _nextInQueue.networkParameters;
|
|
81
80
|
var signal;
|
|
81
|
+
RequestQueue.set(queue);
|
|
82
82
|
|
|
83
83
|
if (networkParameters) {
|
|
84
84
|
var controller = new AbortController();
|
|
85
85
|
signal = controller.signal;
|
|
86
86
|
helpers.applyNetworkTimeout(this.options, networkParameters, controller);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
RequestQueue.set(queue); // Backwards compatibility with versions <= 2.0.0, can be removed in future
|
|
87
|
+
} // Backwards compatibility with versions <= 2.0.0, can be removed in future
|
|
90
88
|
// - Request queue entries used to be strings with 'GET' method assumed
|
|
91
89
|
|
|
90
|
+
|
|
92
91
|
if (typeof nextInQueue === 'string') {
|
|
93
92
|
nextInQueue = {
|
|
94
93
|
url: nextInQueue,
|
|
@@ -178,10 +177,28 @@ var RequestQueue = /*#__PURE__*/function () {
|
|
|
178
177
|
}, {
|
|
179
178
|
key: "set",
|
|
180
179
|
value: function set(queue) {
|
|
181
|
-
|
|
180
|
+
// If queue length is zero, remove entry entirely
|
|
181
|
+
if (!queue || Array.isArray(queue) && queue.length === 0) {
|
|
182
|
+
RequestQueue.remove();
|
|
183
|
+
} else {
|
|
184
|
+
store.local.set(storageKey, queue);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
var localStorageQueue = RequestQueue.get(); // Ensure storage queue was set correctly in storage by checking length
|
|
188
|
+
// - Otherwise remove all pending requests as preventative measure
|
|
189
|
+
// - Firefox seeing identical events being transmitted multiple times
|
|
190
|
+
|
|
191
|
+
if (Array.isArray(localStorageQueue) && localStorageQueue.length !== queue.length) {
|
|
192
|
+
RequestQueue.remove();
|
|
193
|
+
}
|
|
194
|
+
} // Remove current request queue key
|
|
195
|
+
|
|
196
|
+
}, {
|
|
197
|
+
key: "remove",
|
|
198
|
+
value: function remove() {
|
|
199
|
+
store.local.remove(storageKey);
|
|
182
200
|
}
|
|
183
201
|
}]);
|
|
184
|
-
|
|
185
202
|
return RequestQueue;
|
|
186
203
|
}();
|
|
187
204
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@constructor-io/constructorio-client-javascript",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.25.5",
|
|
4
4
|
"description": "Constructor.io JavaScript client",
|
|
5
5
|
"main": "lib/constructorio.js",
|
|
6
6
|
"scripts": {
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@babel/cli": "^7.15.7",
|
|
41
41
|
"@babel/core": "^7.15.8",
|
|
42
|
+
"@babel/plugin-transform-runtime": "^7.16.4",
|
|
42
43
|
"@babel/preset-env": "^7.15.8",
|
|
43
44
|
"@babel/register": "^7.15.3",
|
|
44
45
|
"chai": "^4.2.0",
|