@constructor-io/constructorio-client-javascript 2.56.0 → 2.58.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.
@@ -59,7 +59,8 @@ function createAutocompleteUrl(query, parameters, options) {
59
59
  hiddenFields = parameters.hiddenFields,
60
60
  variationsMap = parameters.variationsMap,
61
61
  preFilterExpression = parameters.preFilterExpression,
62
- qsParam = parameters.qsParam;
62
+ qsParam = parameters.qsParam,
63
+ fmtOptions = parameters.fmtOptions;
63
64
 
64
65
  // Pull results number from parameters
65
66
  if (numResults) {
@@ -90,6 +91,11 @@ function createAutocompleteUrl(query, parameters, options) {
90
91
  queryParams.pre_filter_expression = JSON.stringify(preFilterExpression);
91
92
  }
92
93
 
94
+ // Pull format options from parameters
95
+ if (fmtOptions) {
96
+ queryParams.fmt_options = fmtOptions;
97
+ }
98
+
93
99
  // Pull hidden fields from parameters
94
100
  if (hiddenFields) {
95
101
  if (queryParams.fmt_options) {
@@ -144,6 +150,7 @@ var Autocomplete = /*#__PURE__*/function () {
144
150
  * @param {object} [parameters.filters] - Key / value mapping (dictionary) of filters used to refine results
145
151
  * @param {object} [parameters.filtersPerSection] - Filters used to refine results per section
146
152
  * @param {object} [parameters.resultsPerSection] - Number of results to return (value) per section (key)
153
+ * @param {object} [parameters.fmtOptions] - An object containing options to format different aspects of the response. Please refer to https://docs.constructor.com/reference/v1-autocomplete-get-autocomplete-results for details
147
154
  * @param {object} [parameters.preFilterExpression] - Faceting expression to scope autocomplete results. Please refer to https://docs.constructor.com/reference/configuration-collections for details
148
155
  * @param {string[]} [parameters.hiddenFields] - Hidden metadata fields to return
149
156
  * @param {object} [parameters.variationsMap] - The variations map object to aggregate variations. Please refer to https://docs.constructor.com/reference/shared-variations-mapping for details
@@ -1580,6 +1580,100 @@ var Tracker = /*#__PURE__*/function () {
1580
1580
  return new Error('parameters are required of type object');
1581
1581
  }
1582
1582
 
1583
+ /**
1584
+ * Send browse redirect event to API
1585
+ * @private
1586
+ * @function trackBrowseRedirect
1587
+ * @param {object} parameters - Additional parameters to be sent with request
1588
+ * @param {string} parameters.searchTerm - The search query that caused redirect
1589
+ * @param {string} parameters.filterName - Filter name
1590
+ * @param {string} parameters.filterValue - Filter value
1591
+ * @param {string} [parameters.userInput] - The text that a user had typed at the moment when submitting search request
1592
+ * @param {string} [parameters.redirectToUrl] - URL of the page to which user is redirected
1593
+ * @param {string} [parameters.section="Products"] - Index section
1594
+ * @param {object} [parameters.selectedFilters] - Selected filters
1595
+ * @param {string} [parameters.sortOrder] - Sort order ('ascending' or 'descending')
1596
+ * @param {string} [parameters.sortBy] - Sorting method
1597
+ * @param {object} [parameters.analyticsTags] - Pass additional analytics data
1598
+ * @param {object} [networkParameters] - Parameters relevant to the network request
1599
+ * @param {number} [networkParameters.timeout] - Request timeout (in milliseconds)
1600
+ * @returns {(true|Error)}
1601
+ * @description User got redirected to a browse product listing page
1602
+ * @example
1603
+ * constructorio.tracker.trackBrowseRedirect(
1604
+ * {
1605
+ * searchTerm: "books",
1606
+ * filterName: 'brand',
1607
+ * filterValue: 'XYZ',
1608
+ * redirectToUrl: 'https://demo.constructor.io/books',
1609
+ * selectedFilters: { brand: ['foo'], color: ['black'] },
1610
+ * sortOrder: 'ascending',
1611
+ * sortBy: 'price',
1612
+ * },
1613
+ * );
1614
+ */
1615
+ }, {
1616
+ key: "trackBrowseRedirect",
1617
+ value: function trackBrowseRedirect(parameters) {
1618
+ var networkParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1619
+ // Ensure parameters are provided (required)
1620
+ if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
1621
+ var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/browse_redirect?");
1622
+ var bodyParams = {};
1623
+ var searchTerm = parameters.searchTerm,
1624
+ userInput = parameters.userInput,
1625
+ _parameters$section6 = parameters.section,
1626
+ section = _parameters$section6 === void 0 ? 'Products' : _parameters$section6,
1627
+ selectedFilters = parameters.selectedFilters,
1628
+ redirectToUrl = parameters.redirectToUrl,
1629
+ sortOrder = parameters.sortOrder,
1630
+ sortBy = parameters.sortBy,
1631
+ filterName = parameters.filterName,
1632
+ filterValue = parameters.filterValue,
1633
+ analyticsTags = parameters.analyticsTags;
1634
+ if (searchTerm) {
1635
+ bodyParams.search_term = searchTerm;
1636
+ }
1637
+ if (userInput) {
1638
+ bodyParams.user_input = userInput;
1639
+ }
1640
+ if (redirectToUrl) {
1641
+ bodyParams.redirect_to_url = redirectToUrl;
1642
+ }
1643
+ if (section) {
1644
+ bodyParams.section = section;
1645
+ }
1646
+ if (selectedFilters) {
1647
+ bodyParams.selected_filters = selectedFilters;
1648
+ }
1649
+ if (sortOrder) {
1650
+ bodyParams.sort_order = sortOrder;
1651
+ }
1652
+ if (sortBy) {
1653
+ bodyParams.sort_by = sortBy;
1654
+ }
1655
+ if (filterName) {
1656
+ bodyParams.filter_name = filterName;
1657
+ }
1658
+ if (filterValue) {
1659
+ bodyParams.filter_value = filterValue;
1660
+ }
1661
+ if (analyticsTags) {
1662
+ bodyParams.analytics_tags = analyticsTags;
1663
+ }
1664
+ var requestURL = "".concat(requestPath).concat(applyParamsAsString({}, this.options));
1665
+ var requestMethod = 'POST';
1666
+ var requestBody = applyParams(bodyParams, _objectSpread(_objectSpread({}, this.options), {}, {
1667
+ requestMethod: requestMethod
1668
+ }));
1669
+ this.requests.queue(requestURL, requestMethod, requestBody, networkParameters);
1670
+ this.requests.send();
1671
+ return true;
1672
+ }
1673
+ this.requests.send();
1674
+ return new Error('parameters are required of type object');
1675
+ }
1676
+
1583
1677
  /**
1584
1678
  * Send generic result click event to API
1585
1679
  *
@@ -1620,8 +1714,8 @@ var Tracker = /*#__PURE__*/function () {
1620
1714
  variation_id = parameters.variation_id,
1621
1715
  _parameters$variation8 = parameters.variationId,
1622
1716
  variationId = _parameters$variation8 === void 0 ? variation_id : _parameters$variation8,
1623
- _parameters$section6 = parameters.section,
1624
- section = _parameters$section6 === void 0 ? 'Products' : _parameters$section6,
1717
+ _parameters$section7 = parameters.section,
1718
+ section = _parameters$section7 === void 0 ? 'Products' : _parameters$section7,
1625
1719
  analyticsTags = parameters.analyticsTags;
1626
1720
  if (itemId) {
1627
1721
  bodyParams.section = section;
@@ -1697,8 +1791,8 @@ var Tracker = /*#__PURE__*/function () {
1697
1791
  _parameters$quizSessi = parameters.quizSessionId,
1698
1792
  quizSessionId = _parameters$quizSessi === void 0 ? quiz_session_id : _parameters$quizSessi,
1699
1793
  url = parameters.url,
1700
- _parameters$section7 = parameters.section,
1701
- section = _parameters$section7 === void 0 ? 'Products' : _parameters$section7,
1794
+ _parameters$section8 = parameters.section,
1795
+ section = _parameters$section8 === void 0 ? 'Products' : _parameters$section8,
1702
1796
  result_count = parameters.result_count,
1703
1797
  _parameters$resultCou7 = parameters.resultCount,
1704
1798
  resultCount = _parameters$resultCou7 === void 0 ? result_count : _parameters$resultCou7,
@@ -1841,8 +1935,8 @@ var Tracker = /*#__PURE__*/function () {
1841
1935
  result_position_on_page = parameters.result_position_on_page,
1842
1936
  _parameters$resultPos4 = parameters.resultPositionOnPage,
1843
1937
  resultPositionOnPage = _parameters$resultPos4 === void 0 ? result_position_on_page : _parameters$resultPos4,
1844
- _parameters$section8 = parameters.section,
1845
- section = _parameters$section8 === void 0 ? 'Products' : _parameters$section8,
1938
+ _parameters$section9 = parameters.section,
1939
+ section = _parameters$section9 === void 0 ? 'Products' : _parameters$section9,
1846
1940
  variationId = parameters.variationId;
1847
1941
  var queryParams = {};
1848
1942
  var bodyParams = {};
@@ -1988,8 +2082,8 @@ var Tracker = /*#__PURE__*/function () {
1988
2082
  _parameters$variation9 = parameters.variationId,
1989
2083
  variationId = _parameters$variation9 === void 0 ? variation_id : _parameters$variation9,
1990
2084
  revenue = parameters.revenue,
1991
- _parameters$section9 = parameters.section,
1992
- section = _parameters$section9 === void 0 ? 'Products' : _parameters$section9,
2085
+ _parameters$section10 = parameters.section,
2086
+ section = _parameters$section10 === void 0 ? 'Products' : _parameters$section10,
1993
2087
  type = parameters.type,
1994
2088
  is_custom_type = parameters.is_custom_type,
1995
2089
  _parameters$isCustomT2 = parameters.isCustomType,
@@ -2256,8 +2350,8 @@ var Tracker = /*#__PURE__*/function () {
2256
2350
  // Ensure parameters are provided (required)
2257
2351
  if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
2258
2352
  var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/assistant_search_result_click?");
2259
- var _parameters$section10 = parameters.section,
2260
- section = _parameters$section10 === void 0 ? 'Products' : _parameters$section10,
2353
+ var _parameters$section11 = parameters.section,
2354
+ section = _parameters$section11 === void 0 ? 'Products' : _parameters$section11,
2261
2355
  variationId = parameters.variationId,
2262
2356
  intentResultId = parameters.intentResultId,
2263
2357
  searchResultId = parameters.searchResultId,
@@ -2319,8 +2413,8 @@ var Tracker = /*#__PURE__*/function () {
2319
2413
  // Ensure parameters are provided (required)
2320
2414
  if (parameters && (0, _typeof2["default"])(parameters) === 'object' && !Array.isArray(parameters)) {
2321
2415
  var requestPath = "".concat(this.options.serviceUrl, "/v2/behavioral_action/assistant_search_result_view?");
2322
- var _parameters$section11 = parameters.section,
2323
- section = _parameters$section11 === void 0 ? 'Products' : _parameters$section11,
2416
+ var _parameters$section12 = parameters.section,
2417
+ section = _parameters$section12 === void 0 ? 'Products' : _parameters$section12,
2324
2418
  items = parameters.items,
2325
2419
  numResultsViewed = parameters.numResultsViewed,
2326
2420
  intentResultId = parameters.intentResultId,
@@ -20,6 +20,7 @@ export interface IAutocompleteParameters {
20
20
  variationsMap?: VariationsMap;
21
21
  preFilterExpression?: FilterExpression;
22
22
  qsParam?: Record<string, any>;
23
+ fmtOptions?: FmtOptions;
23
24
  }
24
25
 
25
26
  declare class Autocomplete {
package/lib/version.js CHANGED
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
- var _default = '2.56.0';
7
+ var _default = '2.58.0';
8
8
  exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@constructor-io/constructorio-client-javascript",
3
- "version": "2.56.0",
3
+ "version": "2.58.0",
4
4
  "description": "Constructor.io JavaScript client",
5
5
  "main": "lib/constructorio.js",
6
6
  "types": "lib/types/index.d.ts",