@constructor-io/constructorio-node 4.2.1 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@constructor-io/constructorio-node",
3
- "version": "4.2.1",
3
+ "version": "4.3.0",
4
4
  "description": "Constructor.io Node.js client",
5
5
  "main": "src/constructorio.js",
6
6
  "scripts": {
@@ -54,6 +54,6 @@
54
54
  "form-data": "^4.0.0",
55
55
  "node-abort-controller": "^3.0.0",
56
56
  "node-fetch": "^2.6.2",
57
- "qs": "6.7.2"
57
+ "qs": "6.9.7"
58
58
  }
59
59
  }
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable camelcase, no-unneeded-ternary, max-len */
2
+ const nodeFetch = require('node-fetch').default;
2
3
 
3
4
  // Modules
4
5
  const Search = require('./modules/search');
@@ -55,7 +56,7 @@ class ConstructorIO {
55
56
  securityToken: securityToken || '',
56
57
  version: version || global.CLIENT_VERSION || `cio-node-${packageVersion}`,
57
58
  serviceUrl: (serviceUrl && serviceUrl.replace(/\/$/, '')) || 'https://ac.cnstrc.com',
58
- fetch,
59
+ fetch: fetch || nodeFetch,
59
60
  networkParameters: networkParameters || {},
60
61
  };
61
62
 
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable object-curly-newline, no-underscore-dangle */
2
2
  const qs = require('qs');
3
- const nodeFetch = require('node-fetch').default;
4
3
  const { AbortController } = require('node-abort-controller');
5
4
  const helpers = require('../utils/helpers');
6
5
 
@@ -142,7 +141,7 @@ class Autocomplete {
142
141
  */
143
142
  getAutocompleteResults(query, parameters = {}, userParameters = {}, networkParameters = {}) {
144
143
  let requestUrl;
145
- const fetch = (this.options && this.options.fetch) || nodeFetch;
144
+ const { fetch } = this.options;
146
145
  const controller = new AbortController();
147
146
  const { signal } = controller;
148
147
  const headers = {};
@@ -1,7 +1,6 @@
1
1
  /* eslint-disable max-len */
2
2
  /* eslint-disable object-curly-newline, no-underscore-dangle, max-params */
3
3
  const qs = require('qs');
4
- const nodeFetch = require('node-fetch').default;
5
4
  const { AbortController } = require('node-abort-controller');
6
5
  const helpers = require('../utils/helpers');
7
6
 
@@ -272,7 +271,7 @@ class Browse {
272
271
  */
273
272
  getBrowseResults(filterName, filterValue, parameters = {}, userParameters = {}, networkParameters = {}) {
274
273
  let requestUrl;
275
- const fetch = (this.options && this.options.fetch) || nodeFetch;
274
+ const { fetch } = this.options;
276
275
  const controller = new AbortController();
277
276
  const { signal } = controller;
278
277
  const headers = createHeaders(this.options, userParameters, networkParameters);
@@ -356,7 +355,7 @@ class Browse {
356
355
  */
357
356
  getBrowseResultsForItemIds(itemIds, parameters = {}, userParameters = {}, networkParameters = {}) {
358
357
  let requestUrl;
359
- const fetch = (this.options && this.options.fetch) || nodeFetch;
358
+ const { fetch } = this.options;
360
359
  const controller = new AbortController();
361
360
  const { signal } = controller;
362
361
  const headers = createHeaders(this.options, userParameters, networkParameters);
@@ -427,7 +426,7 @@ class Browse {
427
426
  * });
428
427
  */
429
428
  getBrowseGroups(parameters = {}, userParameters = {}, networkParameters = {}) {
430
- const fetch = (this.options && this.options.fetch) || nodeFetch;
429
+ const { fetch } = this.options;
431
430
  const controller = new AbortController();
432
431
  const { signal } = controller;
433
432
  const headers = createHeaders(this.options, userParameters, networkParameters);
@@ -487,7 +486,7 @@ class Browse {
487
486
  */
488
487
  getBrowseFacets(parameters = {}, userParameters = {}, networkParameters = {}) {
489
488
  let requestUrl;
490
- const fetch = (this.options && this.options.fetch) || nodeFetch;
489
+ const { fetch } = this.options;
491
490
  const controller = new AbortController();
492
491
  const { signal } = controller;
493
492
  const headers = createHeaders(this.options, userParameters, networkParameters);
@@ -542,7 +541,7 @@ class Browse {
542
541
  */
543
542
  getBrowseFacetOptions(facetName, parameters = {}, userParameters = {}, networkParameters = {}) {
544
543
  let requestUrl;
545
- const fetch = (this.options && this.options.fetch) || nodeFetch;
544
+ const { fetch } = this.options;
546
545
  const controller = new AbortController();
547
546
  const { signal } = controller;
548
547
  const headers = createHeaders(this.options, userParameters, networkParameters);
@@ -1,7 +1,6 @@
1
1
  /* eslint-disable camelcase */
2
2
  /* eslint-disable object-curly-newline, no-underscore-dangle, max-len */
3
3
  const qs = require('qs');
4
- const nodeFetch = require('node-fetch').default;
5
4
  const { AbortController } = require('node-abort-controller');
6
5
  const FormData = require('form-data');
7
6
  const fs = require('fs');
@@ -193,7 +192,7 @@ class Catalog {
193
192
  */
194
193
  createOrReplaceItems(parameters = {}, networkParameters = {}) {
195
194
  let requestUrl;
196
- const fetch = (this.options && this.options.fetch) || nodeFetch;
195
+ const { fetch } = this.options;
197
196
  const controller = new AbortController();
198
197
  const { signal } = controller;
199
198
  const { items, section, force, notificationEmail } = parameters;
@@ -275,7 +274,7 @@ class Catalog {
275
274
  */
276
275
  updateItems(parameters = {}, networkParameters = {}) {
277
276
  let requestUrl;
278
- const fetch = (this.options && this.options.fetch) || nodeFetch;
277
+ const { fetch } = this.options;
279
278
  const controller = new AbortController();
280
279
  const { signal } = controller;
281
280
  const { items, section, force, notificationEmail } = parameters;
@@ -347,7 +346,7 @@ class Catalog {
347
346
  */
348
347
  deleteItems(parameters = {}, networkParameters = {}) {
349
348
  let requestUrl;
350
- const fetch = (this.options && this.options.fetch) || nodeFetch;
349
+ const { fetch } = this.options;
351
350
  const controller = new AbortController();
352
351
  const { signal } = controller;
353
352
  const { items, section, force, notificationEmail } = parameters;
@@ -425,7 +424,7 @@ class Catalog {
425
424
  */
426
425
  retrieveItems(parameters = {}, networkParameters = {}) {
427
426
  let requestUrl;
428
- const fetch = (this.options && this.options.fetch) || nodeFetch;
427
+ const { fetch } = this.options;
429
428
  const controller = new AbortController();
430
429
  const { signal } = controller;
431
430
  const { ids, section, numResultsPerPage, page } = parameters;
@@ -507,7 +506,7 @@ class Catalog {
507
506
  */
508
507
  createOrReplaceVariations(parameters = {}, networkParameters = {}) {
509
508
  let requestUrl;
510
- const fetch = (this.options && this.options.fetch) || nodeFetch;
509
+ const { fetch } = this.options;
511
510
  const controller = new AbortController();
512
511
  const { signal } = controller;
513
512
  const { section, force, notificationEmail, variations } = parameters;
@@ -590,7 +589,7 @@ class Catalog {
590
589
  */
591
590
  updateVariations(parameters = {}, networkParameters = {}) {
592
591
  let requestUrl;
593
- const fetch = (this.options && this.options.fetch) || nodeFetch;
592
+ const { fetch } = this.options;
594
593
  const controller = new AbortController();
595
594
  const { signal } = controller;
596
595
  const { section, force, notificationEmail, variations } = parameters;
@@ -663,7 +662,7 @@ class Catalog {
663
662
  */
664
663
  deleteVariations(parameters = {}, networkParameters = {}) {
665
664
  let requestUrl;
666
- const fetch = (this.options && this.options.fetch) || nodeFetch;
665
+ const { fetch } = this.options;
667
666
  const controller = new AbortController();
668
667
  const { signal } = controller;
669
668
  const { section, force, notificationEmail, variations } = parameters;
@@ -743,7 +742,7 @@ class Catalog {
743
742
  retrieveVariations(parameters = {}, networkParameters = {}) {
744
743
  let queryParams = {};
745
744
  let requestUrl;
746
- const fetch = (this.options && this.options.fetch) || nodeFetch;
745
+ const { fetch } = this.options;
747
746
  const controller = new AbortController();
748
747
  const { signal } = controller;
749
748
  const { ids, itemId, section, numResultsPerPage, page } = parameters;
@@ -816,7 +815,7 @@ class Catalog {
816
815
  */
817
816
  addItemGroup(parameters = {}, networkParameters = {}) {
818
817
  let requestUrl;
819
- const fetch = (this.options && this.options.fetch) || nodeFetch;
818
+ const { fetch } = this.options;
820
819
  const controller = new AbortController();
821
820
  const { signal } = controller;
822
821
  const { id, ...rest } = parameters;
@@ -874,7 +873,7 @@ class Catalog {
874
873
  */
875
874
  addItemGroups(parameters = {}, networkParameters = {}) {
876
875
  let requestUrl;
877
- const fetch = (this.options && this.options.fetch) || nodeFetch;
876
+ const { fetch } = this.options;
878
877
  const controller = new AbortController();
879
878
  const { signal } = controller;
880
879
 
@@ -921,7 +920,7 @@ class Catalog {
921
920
  */
922
921
  getItemGroup(parameters = {}, networkParameters = {}) {
923
922
  let requestUrl;
924
- const fetch = (this.options && this.options.fetch) || nodeFetch;
923
+ const { fetch } = this.options;
925
924
  const controller = new AbortController();
926
925
  const { signal } = controller;
927
926
 
@@ -963,7 +962,7 @@ class Catalog {
963
962
  */
964
963
  getItemGroups(networkParameters = {}) {
965
964
  let requestUrl;
966
- const fetch = (this.options && this.options.fetch) || nodeFetch;
965
+ const { fetch } = this.options;
967
966
  const controller = new AbortController();
968
967
  const { signal } = controller;
969
968
 
@@ -1019,7 +1018,7 @@ class Catalog {
1019
1018
  */
1020
1019
  addOrUpdateItemGroups(parameters = {}, networkParameters = {}) {
1021
1020
  let requestUrl;
1022
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1021
+ const { fetch } = this.options;
1023
1022
  const controller = new AbortController();
1024
1023
  const { signal } = controller;
1025
1024
 
@@ -1074,7 +1073,7 @@ class Catalog {
1074
1073
  */
1075
1074
  modifyItemGroup(parameters = {}, networkParameters = {}) {
1076
1075
  let requestUrl;
1077
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1076
+ const { fetch } = this.options;
1078
1077
  const controller = new AbortController();
1079
1078
  const { signal } = controller;
1080
1079
  const { id, ...rest } = parameters;
@@ -1118,7 +1117,7 @@ class Catalog {
1118
1117
  */
1119
1118
  removeItemGroups(networkParameters = {}) {
1120
1119
  let requestUrl;
1121
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1120
+ const { fetch } = this.options;
1122
1121
  const controller = new AbortController();
1123
1122
  const { signal } = controller;
1124
1123
 
@@ -1166,7 +1165,7 @@ class Catalog {
1166
1165
  */
1167
1166
  addOneWaySynonym(parameters = {}, networkParameters = {}) {
1168
1167
  let requestUrl;
1169
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1168
+ const { fetch } = this.options;
1170
1169
  const controller = new AbortController();
1171
1170
  const { signal } = controller;
1172
1171
  const { phrase, ...rest } = parameters;
@@ -1220,7 +1219,7 @@ class Catalog {
1220
1219
  */
1221
1220
  modifyOneWaySynonym(parameters = {}, networkParameters = {}) {
1222
1221
  let requestUrl;
1223
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1222
+ const { fetch } = this.options;
1224
1223
  const controller = new AbortController();
1225
1224
  const { signal } = controller;
1226
1225
  const { phrase, ...rest } = parameters;
@@ -1270,7 +1269,7 @@ class Catalog {
1270
1269
  const { phrase } = parameters;
1271
1270
  const queryParams = {};
1272
1271
  let requestUrl;
1273
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1272
+ const { fetch } = this.options;
1274
1273
  const controller = new AbortController();
1275
1274
  const { signal } = controller;
1276
1275
 
@@ -1319,7 +1318,7 @@ class Catalog {
1319
1318
  getOneWaySynonyms(parameters = {}, networkParameters = {}) {
1320
1319
  const queryParams = {};
1321
1320
  let requestUrl;
1322
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1321
+ const { fetch } = this.options;
1323
1322
  const controller = new AbortController();
1324
1323
  const { signal } = controller;
1325
1324
 
@@ -1380,7 +1379,7 @@ class Catalog {
1380
1379
  removeOneWaySynonym(parameters = {}, networkParameters = {}) {
1381
1380
  const { phrase } = parameters;
1382
1381
  let requestUrl;
1383
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1382
+ const { fetch } = this.options;
1384
1383
  const controller = new AbortController();
1385
1384
  const { signal } = controller;
1386
1385
 
@@ -1422,7 +1421,7 @@ class Catalog {
1422
1421
  */
1423
1422
  removeOneWaySynonyms(networkParameters = {}) {
1424
1423
  let requestUrl;
1425
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1424
+ const { fetch } = this.options;
1426
1425
  const controller = new AbortController();
1427
1426
  const { signal } = controller;
1428
1427
 
@@ -1468,7 +1467,7 @@ class Catalog {
1468
1467
  */
1469
1468
  addSynonymGroup(parameters = {}, networkParameters = {}) {
1470
1469
  let requestUrl;
1471
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1470
+ const { fetch } = this.options;
1472
1471
  const controller = new AbortController();
1473
1472
  const { signal } = controller;
1474
1473
 
@@ -1517,7 +1516,7 @@ class Catalog {
1517
1516
  */
1518
1517
  modifySynonymGroup(parameters = {}, networkParameters = {}) {
1519
1518
  let requestUrl;
1520
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1519
+ const { fetch } = this.options;
1521
1520
  const controller = new AbortController();
1522
1521
  const { signal } = controller;
1523
1522
  const { id, ...rest } = parameters;
@@ -1565,7 +1564,7 @@ class Catalog {
1565
1564
  */
1566
1565
  getSynonymGroup(parameters = {}, networkParameters = {}) {
1567
1566
  let requestUrl;
1568
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1567
+ const { fetch } = this.options;
1569
1568
  const controller = new AbortController();
1570
1569
  const { signal } = controller;
1571
1570
 
@@ -1614,7 +1613,7 @@ class Catalog {
1614
1613
  const queryParams = {};
1615
1614
  const { phrase } = parameters;
1616
1615
  let requestUrl;
1617
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1616
+ const { fetch } = this.options;
1618
1617
  const controller = new AbortController();
1619
1618
  const { signal } = controller;
1620
1619
 
@@ -1671,7 +1670,7 @@ class Catalog {
1671
1670
  */
1672
1671
  removeSynonymGroup(parameters = {}, networkParameters = {}) {
1673
1672
  let requestUrl;
1674
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1673
+ const { fetch } = this.options;
1675
1674
  const controller = new AbortController();
1676
1675
  const { signal } = controller;
1677
1676
  const { id } = parameters;
@@ -1711,7 +1710,7 @@ class Catalog {
1711
1710
  */
1712
1711
  removeSynonymGroups(networkParameters = {}) {
1713
1712
  let requestUrl;
1714
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1713
+ const { fetch } = this.options;
1715
1714
  const controller = new AbortController();
1716
1715
  const { signal } = controller;
1717
1716
 
@@ -1769,7 +1768,7 @@ class Catalog {
1769
1768
  */
1770
1769
  addRedirectRule(parameters = {}, networkParameters = {}) {
1771
1770
  let requestUrl;
1772
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1771
+ const { fetch } = this.options;
1773
1772
  const controller = new AbortController();
1774
1773
  const { signal } = controller;
1775
1774
 
@@ -1831,7 +1830,7 @@ class Catalog {
1831
1830
  */
1832
1831
  updateRedirectRule(parameters = {}, networkParameters = {}) {
1833
1832
  let requestUrl;
1834
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1833
+ const { fetch } = this.options;
1835
1834
  const controller = new AbortController();
1836
1835
  const { signal } = controller;
1837
1836
  const { id, ...rest } = parameters;
@@ -1891,7 +1890,7 @@ class Catalog {
1891
1890
  */
1892
1891
  modifyRedirectRule(parameters = {}, networkParameters = {}) {
1893
1892
  let requestUrl;
1894
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1893
+ const { fetch } = this.options;
1895
1894
  const controller = new AbortController();
1896
1895
  const { signal } = controller;
1897
1896
  const { id, ...rest } = parameters;
@@ -1939,7 +1938,7 @@ class Catalog {
1939
1938
  */
1940
1939
  getRedirectRule(parameters = {}, networkParameters = {}) {
1941
1940
  let requestUrl;
1942
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1941
+ const { fetch } = this.options;
1943
1942
  const controller = new AbortController();
1944
1943
  const { signal } = controller;
1945
1944
 
@@ -1989,7 +1988,7 @@ class Catalog {
1989
1988
  getRedirectRules(parameters = {}, networkParameters = {}) {
1990
1989
  const queryParams = {};
1991
1990
  let requestUrl;
1992
- const fetch = (this.options && this.options.fetch) || nodeFetch;
1991
+ const { fetch } = this.options;
1993
1992
  const controller = new AbortController();
1994
1993
  const { signal } = controller;
1995
1994
 
@@ -2056,7 +2055,7 @@ class Catalog {
2056
2055
  */
2057
2056
  removeRedirectRule(parameters = {}, networkParameters = {}) {
2058
2057
  let requestUrl;
2059
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2058
+ const { fetch } = this.options;
2060
2059
  const controller = new AbortController();
2061
2060
  const { signal } = controller;
2062
2061
 
@@ -2108,7 +2107,7 @@ class Catalog {
2108
2107
  */
2109
2108
  async replaceCatalog(parameters = {}, networkParameters = {}) {
2110
2109
  try {
2111
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2110
+ const { fetch } = this.options;
2112
2111
  const controller = new AbortController();
2113
2112
  const { signal } = controller;
2114
2113
  const { queryParams, formData } = await createQueryParamsAndFormData(parameters);
@@ -2160,7 +2159,7 @@ class Catalog {
2160
2159
  */
2161
2160
  async updateCatalog(parameters = {}, networkParameters = {}) {
2162
2161
  try {
2163
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2162
+ const { fetch } = this.options;
2164
2163
  const controller = new AbortController();
2165
2164
  const { signal } = controller;
2166
2165
  const { queryParams, formData } = await createQueryParamsAndFormData(parameters);
@@ -2212,7 +2211,7 @@ class Catalog {
2212
2211
  */
2213
2212
  async patchCatalog(parameters = {}, networkParameters = {}) {
2214
2213
  try {
2215
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2214
+ const { fetch } = this.options;
2216
2215
  const controller = new AbortController();
2217
2216
  const { signal } = controller;
2218
2217
  const { queryParams, formData } = await createQueryParamsAndFormData(parameters);
@@ -2260,7 +2259,7 @@ class Catalog {
2260
2259
  */
2261
2260
  async replaceCatalogUsingTarArchive(parameters = {}, networkParameters = {}) {
2262
2261
  try {
2263
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2262
+ const { fetch } = this.options;
2264
2263
  const apiKey = this.options && this.options.apiKey;
2265
2264
  const controller = new AbortController();
2266
2265
  const { signal } = controller;
@@ -2309,7 +2308,7 @@ class Catalog {
2309
2308
  */
2310
2309
  async updateCatalogUsingTarArchive(parameters = {}, networkParameters = {}) {
2311
2310
  try {
2312
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2311
+ const { fetch } = this.options;
2313
2312
  const apiKey = this.options && this.options.apiKey;
2314
2313
  const controller = new AbortController();
2315
2314
  const { signal } = controller;
@@ -2359,7 +2358,7 @@ class Catalog {
2359
2358
  */
2360
2359
  async patchCatalogUsingTarArchive(parameters = {}, networkParameters = {}) {
2361
2360
  try {
2362
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2361
+ const { fetch } = this.options;
2363
2362
  const apiKey = this.options && this.options.apiKey;
2364
2363
  const controller = new AbortController();
2365
2364
  const { signal } = controller;
@@ -2425,7 +2424,7 @@ class Catalog {
2425
2424
  */
2426
2425
  addFacetConfiguration(parameters = {}, networkParameters = {}) {
2427
2426
  let requestUrl;
2428
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2427
+ const { fetch } = this.options;
2429
2428
  const controller = new AbortController();
2430
2429
  const { signal } = controller;
2431
2430
  const { section, ...rest } = parameters;
@@ -2441,7 +2440,6 @@ class Catalog {
2441
2440
 
2442
2441
  // Handle network timeout if specified
2443
2442
  helpers.applyNetworkTimeout(this.options, networkParameters, controller);
2444
-
2445
2443
  return fetch(requestUrl, {
2446
2444
  method: 'POST',
2447
2445
  body: JSON.stringify(rest),
@@ -2479,7 +2477,7 @@ class Catalog {
2479
2477
  */
2480
2478
  getFacetConfigurations(parameters = {}, networkParameters = {}) {
2481
2479
  let requestUrl;
2482
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2480
+ const { fetch } = this.options;
2483
2481
  const controller = new AbortController();
2484
2482
  const { signal } = controller;
2485
2483
  const additionalQueryParams = {
@@ -2529,7 +2527,7 @@ class Catalog {
2529
2527
  */
2530
2528
  getFacetConfiguration(parameters = {}, networkParameters = {}) {
2531
2529
  let requestUrl;
2532
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2530
+ const { fetch } = this.options;
2533
2531
  const controller = new AbortController();
2534
2532
  const { signal } = controller;
2535
2533
  const { section, name } = parameters;
@@ -2592,7 +2590,7 @@ class Catalog {
2592
2590
  */
2593
2591
  modifyFacetConfigurations(parameters = {}, networkParameters = {}) {
2594
2592
  let requestUrl;
2595
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2593
+ const { fetch } = this.options;
2596
2594
  const controller = new AbortController();
2597
2595
  const { signal } = controller;
2598
2596
  const { section, facetConfigurations } = parameters;
@@ -2666,7 +2664,7 @@ class Catalog {
2666
2664
  */
2667
2665
  replaceFacetConfiguration(parameters = {}, networkParameters = {}) {
2668
2666
  let requestUrl;
2669
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2667
+ const { fetch } = this.options;
2670
2668
  const controller = new AbortController();
2671
2669
  const { signal } = controller;
2672
2670
  const { section, name, ...rest } = parameters;
@@ -2738,7 +2736,7 @@ class Catalog {
2738
2736
  */
2739
2737
  modifyFacetConfiguration(parameters = {}, networkParameters = {}) {
2740
2738
  let requestUrl;
2741
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2739
+ const { fetch } = this.options;
2742
2740
  const controller = new AbortController();
2743
2741
  const { signal } = controller;
2744
2742
  const { section, name, ...rest } = parameters;
@@ -2792,7 +2790,7 @@ class Catalog {
2792
2790
  */
2793
2791
  removeFacetConfiguration(parameters = {}, networkParameters = {}) {
2794
2792
  let requestUrl;
2795
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2793
+ const { fetch } = this.options;
2796
2794
  const controller = new AbortController();
2797
2795
  const { signal } = controller;
2798
2796
  const { section, name } = parameters;
@@ -2850,7 +2848,7 @@ class Catalog {
2850
2848
  */
2851
2849
  addFacetOptionConfiguration(parameters = {}, networkParameters = {}) {
2852
2850
  let requestUrl;
2853
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2851
+ const { fetch } = this.options;
2854
2852
  const controller = new AbortController();
2855
2853
  const { signal } = controller;
2856
2854
  const { facetGroupName, section, ...rest } = parameters;
@@ -2915,7 +2913,7 @@ class Catalog {
2915
2913
  */
2916
2914
  addOrModifyFacetOptionConfigurations(parameters = {}, networkParameters = {}) {
2917
2915
  let requestUrl;
2918
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2916
+ const { fetch } = this.options;
2919
2917
  const controller = new AbortController();
2920
2918
  const { signal } = controller;
2921
2919
  const { facetGroupName, section, facetOptionConfigurations } = parameters;
@@ -2971,7 +2969,7 @@ class Catalog {
2971
2969
  */
2972
2970
  getFacetOptionConfigurations(parameters = {}, networkParameters = {}) {
2973
2971
  let requestUrl;
2974
- const fetch = (this.options && this.options.fetch) || nodeFetch;
2972
+ const { fetch } = this.options;
2975
2973
  const controller = new AbortController();
2976
2974
  const { signal } = controller;
2977
2975
  const { facetGroupName, section } = parameters;
@@ -3024,7 +3022,7 @@ class Catalog {
3024
3022
  */
3025
3023
  getFacetOptionConfiguration(parameters = {}, networkParameters = {}) {
3026
3024
  let requestUrl;
3027
- const fetch = (this.options && this.options.fetch) || nodeFetch;
3025
+ const { fetch } = this.options;
3028
3026
  const controller = new AbortController();
3029
3027
  const { signal } = controller;
3030
3028
  const { facetGroupName, value, section } = parameters;
@@ -3083,7 +3081,7 @@ class Catalog {
3083
3081
  */
3084
3082
  replaceFacetOptionConfiguration(parameters = {}, networkParameters = {}) {
3085
3083
  let requestUrl;
3086
- const fetch = (this.options && this.options.fetch) || nodeFetch;
3084
+ const { fetch } = this.options;
3087
3085
  const controller = new AbortController();
3088
3086
  const { signal } = controller;
3089
3087
  const { facetGroupName, section, value, ...rest } = parameters;
@@ -3143,7 +3141,7 @@ class Catalog {
3143
3141
  */
3144
3142
  modifyFacetOptionConfiguration(parameters = {}, networkParameters = {}) {
3145
3143
  let requestUrl;
3146
- const fetch = (this.options && this.options.fetch) || nodeFetch;
3144
+ const { fetch } = this.options;
3147
3145
  const controller = new AbortController();
3148
3146
  const { signal } = controller;
3149
3147
  const { facetGroupName, section, value, ...rest } = parameters;
@@ -3197,7 +3195,7 @@ class Catalog {
3197
3195
  */
3198
3196
  removeFacetOptionConfiguration(parameters = {}, networkParameters = {}) {
3199
3197
  let requestUrl;
3200
- const fetch = (this.options && this.options.fetch) || nodeFetch;
3198
+ const { fetch } = this.options;
3201
3199
  const controller = new AbortController();
3202
3200
  const { signal } = controller;
3203
3201
  const { facetGroupName, value } = parameters;
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable object-curly-newline, no-underscore-dangle */
2
2
  const qs = require('qs');
3
- const nodeFetch = require('node-fetch').default;
4
3
  const helpers = require('../utils/helpers');
5
4
 
6
5
  // Create URL from supplied quizId and parameters
@@ -115,7 +114,7 @@ class Quizzes {
115
114
  getQuizNextQuestion(quizId, parameters, userParameters = {}, networkParameters = {}) {
116
115
  const headers = {};
117
116
  let requestUrl;
118
- const fetch = (this.options && this.options.fetch) || nodeFetch;
117
+ const { fetch } = this.options;
119
118
  const controller = new AbortController();
120
119
  const { signal } = controller;
121
120
 
@@ -191,7 +190,7 @@ class Quizzes {
191
190
  getQuizResults(quizId, parameters, userParameters = {}, networkParameters = {}) {
192
191
  let requestUrl;
193
192
  const headers = {};
194
- const fetch = (this.options && this.options.fetch) || nodeFetch;
193
+ const { fetch } = this.options;
195
194
  const controller = new AbortController();
196
195
  const { signal } = controller;
197
196
 
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable object-curly-newline, no-param-reassign */
2
2
  const qs = require('qs');
3
- const nodeFetch = require('node-fetch').default;
4
3
  const { AbortController } = require('node-abort-controller');
5
4
  const helpers = require('../utils/helpers');
6
5
 
@@ -129,7 +128,7 @@ class Recommendations {
129
128
  */
130
129
  getRecommendations(podId, parameters = {}, userParameters = {}, networkParameters = {}) {
131
130
  let requestUrl;
132
- const fetch = (this.options && this.options.fetch) || nodeFetch;
131
+ const { fetch } = this.options;
133
132
  const controller = new AbortController();
134
133
  const { signal } = controller;
135
134
  const headers = {};
@@ -205,7 +204,7 @@ class Recommendations {
205
204
  apiKey,
206
205
  serviceUrl,
207
206
  } = this.options;
208
- const fetch = (this.options && this.options.fetch) || nodeFetch;
207
+ const { fetch } = this.options;
209
208
  const controller = new AbortController();
210
209
  const { signal } = controller;
211
210
  const headers = {};
@@ -1,7 +1,6 @@
1
1
  /* eslint-disable max-len */
2
2
  /* eslint-disable object-curly-newline, no-underscore-dangle */
3
3
  const qs = require('qs');
4
- const nodeFetch = require('node-fetch').default;
5
4
  const { AbortController } = require('node-abort-controller');
6
5
  const helpers = require('../utils/helpers');
7
6
 
@@ -191,7 +190,7 @@ class Search {
191
190
 
192
191
  getSearchResults(query, parameters = {}, userParameters = {}, networkParameters = {}) {
193
192
  let requestUrl;
194
- const fetch = (this.options && this.options.fetch) || nodeFetch;
193
+ const { fetch } = this.options;
195
194
  const controller = new AbortController();
196
195
  const { signal } = controller;
197
196
  const headers = {};
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable object-curly-newline, no-underscore-dangle, max-len */
2
2
  const qs = require('qs');
3
- const nodeFetch = require('node-fetch').default;
4
3
  const { AbortController } = require('node-abort-controller');
5
4
  const helpers = require('../utils/helpers');
6
5
 
@@ -58,7 +57,7 @@ class Tasks {
58
57
  getAllTasks(parameters = {}, networkParameters = {}) {
59
58
  const queryParams = {};
60
59
  let requestUrl;
61
- const fetch = (this.options && this.options.fetch) || nodeFetch;
60
+ const { fetch } = this.options;
62
61
  const controller = new AbortController();
63
62
  const { signal } = controller;
64
63
  const headers = {
@@ -134,7 +133,7 @@ class Tasks {
134
133
  */
135
134
  getTask(parameters = {}, networkParameters = {}) {
136
135
  let requestUrl;
137
- const fetch = (this.options && this.options.fetch) || nodeFetch;
136
+ const { fetch } = this.options;
138
137
  const controller = new AbortController();
139
138
  const { signal } = controller;
140
139
  const headers = {
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable camelcase, no-underscore-dangle, no-unneeded-ternary, brace-style */
2
2
  const qs = require('qs');
3
- const nodeFetch = require('node-fetch').default;
4
3
  const { AbortController } = require('node-abort-controller');
5
4
  const EventEmitter = require('events');
6
5
  const helpers = require('../utils/helpers');
@@ -79,7 +78,7 @@ function applyParamsAsString(parameters, userParameters, options) {
79
78
  // Send request to server
80
79
  function send(url, userParameters, networkParameters, method = 'GET', body = {}) { // eslint-disable-line max-params
81
80
  let request;
82
- const fetch = (this.options && this.options.fetch) || nodeFetch;
81
+ const { fetch } = this.options;
83
82
  const controller = new AbortController();
84
83
  const { signal } = controller;
85
84
  const headers = {};
@@ -273,6 +272,7 @@ class Tracker {
273
272
  * @param {object} parameters - Additional parameters to be sent with request
274
273
  * @param {string} parameters.item_name - Product item name
275
274
  * @param {string} parameters.item_id - Product item unique identifier
275
+ * @param {string} parameters.url - Current page URL
276
276
  * @param {string} [parameters.variation_id] - Product item variation unique identifier
277
277
  * @param {object} userParameters - Parameters relevant to the user request
278
278
  * @param {number} userParameters.sessionId - Session ID, utilized to personalize results
@@ -294,41 +294,57 @@ class Tracker {
294
294
  * {
295
295
  * item_name: 'Red T-Shirt',
296
296
  * item_id: 'KMH876',
297
+ * url: 'https://constructor.io/product/KMH876',
297
298
  * },
298
299
  * );
299
300
  */
300
301
  trackItemDetailLoad(parameters, userParameters, networkParameters = {}) {
301
302
  // Ensure parameters are provided (required)
302
303
  if (parameters && typeof parameters === 'object' && !Array.isArray(parameters)) {
303
- const url = `${this.options.serviceUrl}/behavior?`;
304
- const queryParams = { action: 'item_detail_load' };
305
- const { item_name, name, item_id, customer_id, variation_id } = parameters;
304
+ const requestPath = `${this.options.serviceUrl}/v2/behavioral_action/item_detail_load?`;
305
+ const bodyParams = {};
306
+ const {
307
+ item_name,
308
+ name,
309
+ item_id,
310
+ customer_id,
311
+ variation_id,
312
+ url,
313
+ } = parameters;
306
314
 
307
315
  // Ensure support for both item_name and name as parameters
308
316
  if (item_name) {
309
- queryParams.name = item_name;
317
+ bodyParams.item_name = item_name;
310
318
  } else if (name) {
311
- queryParams.name = name;
319
+ bodyParams.item_name = name;
312
320
  }
313
321
 
314
322
  // Ensure support for both item_id and customer_id as parameters
315
323
  if (item_id) {
316
- queryParams.customer_id = item_id;
324
+ bodyParams.item_id = item_id;
317
325
  } else if (customer_id) {
318
- queryParams.customer_id = customer_id;
326
+ bodyParams.item_id = customer_id;
319
327
  }
320
328
 
321
329
  if (variation_id) {
322
- queryParams.variation_id = variation_id;
330
+ bodyParams.variation_id = variation_id;
331
+ }
332
+
333
+ if (url) {
334
+ bodyParams.url = url;
323
335
  }
324
336
 
325
- const requestUrl = `${url}${applyParamsAsString(queryParams, userParameters, this.options)}`;
337
+ const requestUrl = `${requestPath}${applyParamsAsString({}, userParameters, this.options)}`;
338
+ const requestMethod = 'POST';
339
+ const requestBody = applyParams(bodyParams, userParameters, { ...this.options, requestMethod });
326
340
 
327
341
  send.call(
328
342
  this,
329
343
  requestUrl,
330
344
  userParameters,
331
345
  networkParameters,
346
+ requestMethod,
347
+ requestBody,
332
348
  );
333
349
 
334
350
  return true;