@constructor-io/constructorio-client-javascript 2.33.3 → 2.34.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.
|
@@ -7,8 +7,6 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
7
7
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
9
|
/* eslint-disable object-curly-newline, no-underscore-dangle */
|
|
10
|
-
var qs = require('qs');
|
|
11
|
-
|
|
12
10
|
var fetchPonyfill = require('fetch-ponyfill');
|
|
13
11
|
|
|
14
12
|
var EventDispatcher = require('../utils/event-dispatcher');
|
|
@@ -18,7 +16,8 @@ var _require = require('../utils/helpers'),
|
|
|
18
16
|
cleanParams = _require.cleanParams,
|
|
19
17
|
applyNetworkTimeout = _require.applyNetworkTimeout,
|
|
20
18
|
trimNonBreakingSpaces = _require.trimNonBreakingSpaces,
|
|
21
|
-
encodeURIComponentRFC3986 = _require.encodeURIComponentRFC3986
|
|
19
|
+
encodeURIComponentRFC3986 = _require.encodeURIComponentRFC3986,
|
|
20
|
+
stringify = _require.stringify; // Create URL from supplied query (term) and parameters
|
|
22
21
|
|
|
23
22
|
|
|
24
23
|
function createAutocompleteUrl(query, parameters, options) {
|
|
@@ -100,9 +99,7 @@ function createAutocompleteUrl(query, parameters, options) {
|
|
|
100
99
|
|
|
101
100
|
queryParams._dt = Date.now();
|
|
102
101
|
queryParams = cleanParams(queryParams);
|
|
103
|
-
var queryString =
|
|
104
|
-
indices: false
|
|
105
|
-
});
|
|
102
|
+
var queryString = stringify(queryParams);
|
|
106
103
|
var cleanedQuery = query.replace(/^\//, '|'); // For compatibility with backend API
|
|
107
104
|
|
|
108
105
|
return "".concat(serviceUrl, "/autocomplete/").concat(encodeURIComponentRFC3986(trimNonBreakingSpaces(cleanedQuery)), "?").concat(queryString);
|
package/lib/modules/browse.js
CHANGED
|
@@ -13,8 +13,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
13
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, max-len, complexity */
|
|
16
|
-
var qs = require('qs');
|
|
17
|
-
|
|
18
16
|
var fetchPonyfill = require('fetch-ponyfill');
|
|
19
17
|
|
|
20
18
|
var EventDispatcher = require('../utils/event-dispatcher');
|
|
@@ -163,9 +161,7 @@ function createBrowseUrlFromFilter(filterName, filterValue, parameters, options)
|
|
|
163
161
|
}
|
|
164
162
|
|
|
165
163
|
var queryParams = createQueryParams(parameters, options);
|
|
166
|
-
var queryString =
|
|
167
|
-
indices: false
|
|
168
|
-
});
|
|
164
|
+
var queryString = helpers.stringify(queryParams);
|
|
169
165
|
return "".concat(serviceUrl, "/browse/").concat(helpers.encodeURIComponentRFC3986(helpers.trimNonBreakingSpaces(filterName)), "/").concat(helpers.encodeURIComponentRFC3986(helpers.trimNonBreakingSpaces(filterValue)), "?").concat(queryString);
|
|
170
166
|
} // Create URL from supplied id's
|
|
171
167
|
|
|
@@ -181,9 +177,7 @@ function createBrowseUrlFromIDs(ids, parameters, options) {
|
|
|
181
177
|
ids: ids
|
|
182
178
|
});
|
|
183
179
|
|
|
184
|
-
var queryString =
|
|
185
|
-
indices: false
|
|
186
|
-
});
|
|
180
|
+
var queryString = helpers.stringify(queryParams);
|
|
187
181
|
return "".concat(serviceUrl, "/browse/items?").concat(queryString);
|
|
188
182
|
} // Create URL for facets
|
|
189
183
|
|
|
@@ -195,9 +189,7 @@ function createBrowseUrlForFacets(parameters, options) {
|
|
|
195
189
|
|
|
196
190
|
|
|
197
191
|
delete queryParams._dt;
|
|
198
|
-
var queryString =
|
|
199
|
-
indices: false
|
|
200
|
-
});
|
|
192
|
+
var queryString = helpers.stringify(queryParams);
|
|
201
193
|
return "".concat(serviceUrl, "/browse/facets?").concat(queryString);
|
|
202
194
|
} // Create URL from supplied facet name and parameters
|
|
203
195
|
|
|
@@ -214,9 +206,7 @@ function createBrowseUrlForFacetOptions(facetName, parameters, options) {
|
|
|
214
206
|
queryParams.facet_name = facetName; // Endpoint does not accept _dt
|
|
215
207
|
|
|
216
208
|
delete queryParams._dt;
|
|
217
|
-
var queryString =
|
|
218
|
-
indices: false
|
|
219
|
-
});
|
|
209
|
+
var queryString = helpers.stringify(queryParams);
|
|
220
210
|
return "".concat(serviceUrl, "/browse/facet_options?").concat(queryString);
|
|
221
211
|
}
|
|
222
212
|
/**
|
|
@@ -443,9 +433,7 @@ var Browse = /*#__PURE__*/function () {
|
|
|
443
433
|
}
|
|
444
434
|
|
|
445
435
|
delete queryParams._dt;
|
|
446
|
-
var queryString =
|
|
447
|
-
indices: false
|
|
448
|
-
});
|
|
436
|
+
var queryString = helpers.stringify(queryParams);
|
|
449
437
|
var requestUrl = "".concat(serviceUrl, "/browse/groups?").concat(queryString);
|
|
450
438
|
return fetch(requestUrl, {
|
|
451
439
|
signal: signal
|
package/lib/modules/quizzes.js
CHANGED
|
@@ -6,11 +6,11 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
6
6
|
|
|
7
7
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
|
|
9
11
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
12
|
|
|
11
13
|
/* eslint-disable object-curly-newline, no-underscore-dangle */
|
|
12
|
-
var qs = require('qs');
|
|
13
|
-
|
|
14
14
|
var fetchPonyfill = require('fetch-ponyfill');
|
|
15
15
|
|
|
16
16
|
var EventDispatcher = require('../utils/event-dispatcher');
|
|
@@ -64,25 +64,21 @@ function createQuizUrl(quizId, parameters, options, path) {
|
|
|
64
64
|
|
|
65
65
|
if (versionId) {
|
|
66
66
|
queryParams.version_id = versionId;
|
|
67
|
-
} // Pull answers from parameters
|
|
67
|
+
} // Pull a (answers) from parameters and transform
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
if (answers) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
}));
|
|
77
|
-
});
|
|
71
|
+
answersParamString = "&".concat(helpers.stringify({
|
|
72
|
+
a: answers.map(function (ans) {
|
|
73
|
+
return (0, _toConsumableArray2["default"])(ans).join(',');
|
|
74
|
+
})
|
|
75
|
+
}));
|
|
78
76
|
}
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
queryParams._dt = Date.now();
|
|
82
80
|
queryParams = helpers.cleanParams(queryParams);
|
|
83
|
-
var queryString =
|
|
84
|
-
indices: false
|
|
85
|
-
});
|
|
81
|
+
var queryString = helpers.stringify(queryParams);
|
|
86
82
|
return "".concat(serviceUrl, "/v1/quizzes/").concat(encodeURIComponent(quizId), "/").concat(encodeURIComponent(path), "/?").concat(queryString).concat(answersParamString);
|
|
87
83
|
}
|
|
88
84
|
/**
|
|
@@ -6,8 +6,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
6
6
|
|
|
7
7
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/* eslint-disable object-curly-newline, no-param-reassign */
|
|
11
10
|
var fetchPonyfill = require('fetch-ponyfill');
|
|
12
11
|
|
|
13
12
|
var EventDispatcher = require('../utils/event-dispatcher');
|
|
@@ -83,9 +82,7 @@ function createRecommendationsUrl(podId, parameters, options) {
|
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
queryParams = helpers.cleanParams(queryParams);
|
|
86
|
-
var queryString =
|
|
87
|
-
indices: false
|
|
88
|
-
});
|
|
85
|
+
var queryString = helpers.stringify(queryParams);
|
|
89
86
|
return "".concat(serviceUrl, "/recommendations/v1/pods/").concat(helpers.encodeURIComponentRFC3986(helpers.trimNonBreakingSpaces(podId)), "?").concat(queryString);
|
|
90
87
|
}
|
|
91
88
|
/**
|
package/lib/modules/search.js
CHANGED
|
@@ -11,8 +11,6 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
11
11
|
/* eslint-disable max-len */
|
|
12
12
|
|
|
13
13
|
/* eslint-disable object-curly-newline, no-underscore-dangle */
|
|
14
|
-
var qs = require('qs');
|
|
15
|
-
|
|
16
14
|
var fetchPonyfill = require('fetch-ponyfill');
|
|
17
15
|
|
|
18
16
|
var EventDispatcher = require('../utils/event-dispatcher');
|
|
@@ -151,9 +149,7 @@ function createSearchUrl(query, parameters, options) {
|
|
|
151
149
|
|
|
152
150
|
queryParams._dt = Date.now();
|
|
153
151
|
queryParams = helpers.cleanParams(queryParams);
|
|
154
|
-
var queryString =
|
|
155
|
-
indices: false
|
|
156
|
-
});
|
|
152
|
+
var queryString = helpers.stringify(queryParams);
|
|
157
153
|
return "".concat(serviceUrl, "/search/").concat(helpers.encodeURIComponentRFC3986(helpers.trimNonBreakingSpaces(query)), "?").concat(queryString);
|
|
158
154
|
}
|
|
159
155
|
/**
|
package/lib/modules/tracker.js
CHANGED
|
@@ -15,8 +15,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
15
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
|
-
var qs = require('qs');
|
|
19
|
-
|
|
20
18
|
var EventEmitter = require('events');
|
|
21
19
|
|
|
22
20
|
var helpers = require('../utils/helpers');
|
|
@@ -91,9 +89,7 @@ function applyParams(parameters, options) {
|
|
|
91
89
|
|
|
92
90
|
|
|
93
91
|
function applyParamsAsString(parameters, options) {
|
|
94
|
-
return
|
|
95
|
-
indices: false
|
|
96
|
-
});
|
|
92
|
+
return helpers.stringify(applyParams(parameters, options));
|
|
97
93
|
}
|
|
98
94
|
/**
|
|
99
95
|
* Interface to tracking related API calls
|
|
@@ -1054,6 +1050,7 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
1054
1050
|
* @param {string} parameters.filter_name - Filter name
|
|
1055
1051
|
* @param {string} parameters.filter_value - Filter value
|
|
1056
1052
|
* @param {string} parameters.item_id - Product item unique identifier
|
|
1053
|
+
* @param {string} parameters.item_name - Product item name
|
|
1057
1054
|
* @param {string} [parameters.section="Products"] - Index section
|
|
1058
1055
|
* @param {string} [parameters.variation_id] - Product item variation unique identifier
|
|
1059
1056
|
* @param {string} [parameters.result_id] - Browse result identifier (returned in response from Constructor)
|
|
@@ -1102,7 +1099,10 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
1102
1099
|
selected_filters = parameters.selected_filters,
|
|
1103
1100
|
filter_name = parameters.filter_name,
|
|
1104
1101
|
filter_value = parameters.filter_value,
|
|
1105
|
-
item_id = parameters.item_id
|
|
1102
|
+
item_id = parameters.item_id,
|
|
1103
|
+
customer_id = parameters.customer_id,
|
|
1104
|
+
item_name = parameters.item_name,
|
|
1105
|
+
name = parameters.name;
|
|
1106
1106
|
|
|
1107
1107
|
if (section) {
|
|
1108
1108
|
bodyParams.section = section;
|
|
@@ -1144,10 +1144,20 @@ var Tracker = /*#__PURE__*/function () {
|
|
|
1144
1144
|
|
|
1145
1145
|
if (filter_value) {
|
|
1146
1146
|
bodyParams.filter_value = filter_value;
|
|
1147
|
-
}
|
|
1147
|
+
} // Ensure support for both item_id and customer_id as parameters
|
|
1148
|
+
|
|
1148
1149
|
|
|
1149
1150
|
if (item_id) {
|
|
1150
1151
|
bodyParams.item_id = item_id;
|
|
1152
|
+
} else if (customer_id) {
|
|
1153
|
+
bodyParams.item_id = customer_id;
|
|
1154
|
+
} // Ensure support for both item_name and name as parameters
|
|
1155
|
+
|
|
1156
|
+
|
|
1157
|
+
if (item_name) {
|
|
1158
|
+
bodyParams.item_name = item_name;
|
|
1159
|
+
} else if (name) {
|
|
1160
|
+
bodyParams.item_name = name;
|
|
1151
1161
|
}
|
|
1152
1162
|
|
|
1153
1163
|
var requestURL = "".concat(requestPath).concat(applyParamsAsString({}, this.options));
|
package/lib/utils/helpers.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
6
|
+
|
|
3
7
|
/* eslint-disable no-param-reassign */
|
|
4
8
|
var CRC32 = require('crc-32');
|
|
5
9
|
|
|
@@ -150,6 +154,35 @@ var utils = {
|
|
|
150
154
|
return controller.abort();
|
|
151
155
|
}, timeout);
|
|
152
156
|
}
|
|
157
|
+
},
|
|
158
|
+
stringify: function stringify(object, prefix, objectType) {
|
|
159
|
+
if (!object) {
|
|
160
|
+
return '';
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
var allValues = [];
|
|
164
|
+
Object.keys(object).forEach(function (key) {
|
|
165
|
+
var value = object[key];
|
|
166
|
+
var encodedKey = utils.encodeURIComponentRFC3986(key);
|
|
167
|
+
var stringifiedValue; // Check for both null and undefined
|
|
168
|
+
|
|
169
|
+
if (value != null) {
|
|
170
|
+
var nextPrefix = prefix ? "".concat(prefix, "%5B").concat(encodedKey, "%5D") : encodedKey;
|
|
171
|
+
|
|
172
|
+
if (Array.isArray(value)) {
|
|
173
|
+
stringifiedValue = utils.stringify(value, nextPrefix, 'array');
|
|
174
|
+
} else if ((0, _typeof2["default"])(value) === 'object') {
|
|
175
|
+
stringifiedValue = utils.stringify(value, nextPrefix, 'object');
|
|
176
|
+
} else if (objectType === 'object') {
|
|
177
|
+
stringifiedValue = "".concat(nextPrefix, "=").concat(utils.encodeURIComponentRFC3986(value));
|
|
178
|
+
} else {
|
|
179
|
+
stringifiedValue = "".concat(prefix || encodedKey, "=").concat(utils.encodeURIComponentRFC3986(value));
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
allValues.push(stringifiedValue);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
return allValues.join('&');
|
|
153
186
|
}
|
|
154
187
|
};
|
|
155
188
|
module.exports = utils;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@constructor-io/constructorio-client-javascript",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.34.0",
|
|
4
4
|
"description": "Constructor.io JavaScript client",
|
|
5
5
|
"main": "lib/constructorio.js",
|
|
6
6
|
"types": "lib/types/constructorio.d.ts",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"minami": "^1.2.3",
|
|
63
63
|
"mocha": "^9.1.3",
|
|
64
64
|
"nyc": "^15.1.0",
|
|
65
|
+
"qs": "^6.11.0",
|
|
65
66
|
"sinon": "^7.5.0",
|
|
66
67
|
"sinon-chai": "^3.7.0",
|
|
67
68
|
"tsd": "^0.24.1"
|
|
@@ -71,7 +72,6 @@
|
|
|
71
72
|
"crc-32": "^1.2.2",
|
|
72
73
|
"events": "^3.0.0",
|
|
73
74
|
"fetch-ponyfill": "^7.1.0",
|
|
74
|
-
"qs": "6.9.7",
|
|
75
75
|
"store2": "^2.14.2"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|