fast-simon-sdk 1.6.28 → 1.6.80

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.
Files changed (98) hide show
  1. package/README.md +68 -58
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +3 -1
  4. package/lib/config.js.map +1 -1
  5. package/lib/index.js +19 -9
  6. package/lib/index.js.map +1 -1
  7. package/lib/models/autocomplete.d.ts +3 -0
  8. package/lib/models/common.d.ts +22 -0
  9. package/lib/models/common.js +3 -0
  10. package/lib/models/common.js.map +1 -1
  11. package/lib/models/events.d.ts +10 -1
  12. package/lib/models/fullTextSearch.d.ts +2 -1
  13. package/lib/models/fullTextSearch.js.map +1 -1
  14. package/lib/models/related.d.ts +3 -0
  15. package/lib/models/smartCollections.d.ts +3 -1
  16. package/lib/sections/enums/index.d.ts +2 -0
  17. package/lib/sections/enums/index.js +2 -0
  18. package/lib/sections/enums/index.js.map +1 -1
  19. package/lib/sections/eventReporter/index.js +88 -23
  20. package/lib/sections/eventReporter/index.js.map +1 -1
  21. package/lib/sections/eventReporter/utils.d.ts +1 -1
  22. package/lib/sections/eventReporter/utils.js +6 -2
  23. package/lib/sections/eventReporter/utils.js.map +1 -1
  24. package/lib/sections/fullTextSearch/index.js +41 -8
  25. package/lib/sections/fullTextSearch/index.js.map +1 -1
  26. package/lib/sections/fullTextSearch/utils.d.ts +0 -1
  27. package/lib/sections/fullTextSearch/utils.js +11 -5
  28. package/lib/sections/fullTextSearch/utils.js.map +1 -1
  29. package/lib/sections/index.js +34 -2
  30. package/lib/sections/index.js.map +1 -1
  31. package/lib/sections/initialization/index.d.ts +2 -1
  32. package/lib/sections/initialization/index.js +63 -17
  33. package/lib/sections/initialization/index.js.map +1 -1
  34. package/lib/sections/initialization/utils.js +27 -10
  35. package/lib/sections/initialization/utils.js.map +1 -1
  36. package/lib/sections/instantSearch/index.d.ts +1 -1
  37. package/lib/sections/instantSearch/index.js +3 -3
  38. package/lib/sections/instantSearch/index.js.map +1 -1
  39. package/lib/sections/instantSearch/utils.d.ts +2 -1
  40. package/lib/sections/instantSearch/utils.js +4 -4
  41. package/lib/sections/instantSearch/utils.js.map +1 -1
  42. package/lib/sections/landingPage/index.js +9 -0
  43. package/lib/sections/landingPage/index.js.map +1 -1
  44. package/lib/sections/recommendations/index.d.ts +14 -0
  45. package/lib/sections/recommendations/index.js +71 -3
  46. package/lib/sections/recommendations/index.js.map +1 -1
  47. package/lib/sections/recommendations/utils.js +12 -7
  48. package/lib/sections/recommendations/utils.js.map +1 -1
  49. package/lib/sections/smartCollections/index.js +40 -7
  50. package/lib/sections/smartCollections/index.js.map +1 -1
  51. package/lib/sections/smartCollections/utils.d.ts +4 -4
  52. package/lib/sections/smartCollections/utils.js +47 -93
  53. package/lib/sections/smartCollections/utils.js.map +1 -1
  54. package/lib/services/ViewportImpressionTracker.d.ts +37 -0
  55. package/lib/services/ViewportImpressionTracker.js +218 -0
  56. package/lib/services/ViewportImpressionTracker.js.map +1 -0
  57. package/lib/services/common.d.ts +14 -6
  58. package/lib/services/common.js +35 -10
  59. package/lib/services/common.js.map +1 -1
  60. package/lib/services/fullTextSearch.d.ts +1 -1
  61. package/lib/services/fullTextSearch.js +39 -5
  62. package/lib/services/fullTextSearch.js.map +1 -1
  63. package/lib/services/related.d.ts +23 -3
  64. package/lib/services/related.js +36 -2
  65. package/lib/services/related.js.map +1 -1
  66. package/lib/services/reporting.d.ts +11 -13
  67. package/lib/services/reporting.js +24 -33
  68. package/lib/services/reporting.js.map +1 -1
  69. package/lib/services/smartCollections.d.ts +1 -1
  70. package/lib/services/smartCollections.js +44 -12
  71. package/lib/services/smartCollections.js.map +1 -1
  72. package/lib/services/viewportImpressions.d.ts +12 -0
  73. package/lib/services/viewportImpressions.js +211 -0
  74. package/lib/services/viewportImpressions.js.map +1 -0
  75. package/lib/utils/API.js +19 -4
  76. package/lib/utils/API.js.map +1 -1
  77. package/lib/utils/attentive.d.ts +1 -0
  78. package/lib/utils/attentive.js +36 -0
  79. package/lib/utils/attentive.js.map +1 -0
  80. package/lib/utils/debug.d.ts +1 -0
  81. package/lib/utils/debug.js +13 -1
  82. package/lib/utils/debug.js.map +1 -1
  83. package/lib/utils/logger.d.ts +2 -0
  84. package/lib/utils/logger.js +26 -0
  85. package/lib/utils/logger.js.map +1 -0
  86. package/lib/utils/personalization.d.ts +5 -0
  87. package/lib/utils/personalization.js +18 -3
  88. package/lib/utils/personalization.js.map +1 -1
  89. package/lib/utils/personalizationSegment.d.ts +2 -0
  90. package/lib/utils/personalizationSegment.js +17 -0
  91. package/lib/utils/personalizationSegment.js.map +1 -0
  92. package/lib/utils/siteStateValidator.d.ts +25 -0
  93. package/lib/utils/siteStateValidator.js +45 -0
  94. package/lib/utils/siteStateValidator.js.map +1 -0
  95. package/lib/utils/validation.d.ts +1 -0
  96. package/lib/utils/validation.js +13 -1
  97. package/lib/utils/validation.js.map +1 -1
  98. package/package.json +44 -41
@@ -1,5 +1,5 @@
1
1
  import { smartCollections, SmartCollectionsResponse } from "../models/smartCollections";
2
2
  export declare const debugVersion: string;
3
3
  export declare const SmartCollections: {
4
- getSmartCollections: ({ uuid, storeID, cdn, facetRequired, narrowBy, page, productsPerPage, sortBy, isPersonalizedFiltersActive, withAttributes, categoryID, recentTimestamps, rec, searchWithinSearch, segments, hasShopifyMarkets, companyLocationContext, withProductTypes, userToken, abTestingVariations, disableMerchandisingRules, disableMerchandising, disableStrategies, disableTurbolinks, collectionPersonalization, channel }: smartCollections) => Promise<SmartCollectionsResponse>;
4
+ getSmartCollections: ({ uuid, storeID, cdn, facetRequired, narrowBy, page, productsPerPage, sortBy, isPersonalizedFiltersActive, withAttributes, categoryID, recentTimestamps, rec, searchWithinSearch, segments, hasShopifyMarkets, companyLocationContext, withProductTypes, userToken, abTestingVariations, disableMerchandisingRules, disableMerchandising, disableStrategies, disableTurbolinks, collectionPersonalization, channel, self }: smartCollections) => Promise<SmartCollectionsResponse>;
5
5
  };
@@ -14,22 +14,20 @@ var ABTesting_1 = require("../utils/ABTesting");
14
14
  var filtersPersonalization_1 = require("../utils/filtersPersonalization");
15
15
  var sortUtil_1 = require("../utils/sortUtil");
16
16
  var personalization_1 = require("../utils/personalization");
17
+ var siteStateValidator_1 = require("../utils/siteStateValidator");
18
+ var personalizationSegment_1 = require("../utils/personalizationSegment");
17
19
  var BASE_URL = "https://api.fastsimon.com";
18
20
  exports.debugVersion = (0, debug_1.getDebugEndpoint)();
19
21
  exports.SmartCollections = {
20
22
  getSmartCollections: function (_a) {
21
- var _b;
22
- var uuid = _a.uuid, storeID = _a.storeID, cdn = _a.cdn, facetRequired = _a.facetRequired, narrowBy = _a.narrowBy, page = _a.page, productsPerPage = _a.productsPerPage, sortBy = _a.sortBy, isPersonalizedFiltersActive = _a.isPersonalizedFiltersActive, withAttributes = _a.withAttributes, categoryID = _a.categoryID, recentTimestamps = _a.recentTimestamps, rec = _a.rec, searchWithinSearch = _a.searchWithinSearch, segments = _a.segments, hasShopifyMarkets = _a.hasShopifyMarkets, companyLocationContext = _a.companyLocationContext, withProductTypes = _a.withProductTypes, userToken = _a.userToken, abTestingVariations = _a.abTestingVariations, disableMerchandisingRules = _a.disableMerchandisingRules, disableMerchandising = _a.disableMerchandising, disableStrategies = _a.disableStrategies, disableTurbolinks = _a.disableTurbolinks, collectionPersonalization = _a.collectionPersonalization, channel = _a.channel;
23
+ var _b, _c, _d;
24
+ var uuid = _a.uuid, storeID = _a.storeID, cdn = _a.cdn, facetRequired = _a.facetRequired, narrowBy = _a.narrowBy, page = _a.page, productsPerPage = _a.productsPerPage, sortBy = _a.sortBy, isPersonalizedFiltersActive = _a.isPersonalizedFiltersActive, withAttributes = _a.withAttributes, categoryID = _a.categoryID, recentTimestamps = _a.recentTimestamps, rec = _a.rec, searchWithinSearch = _a.searchWithinSearch, segments = _a.segments, hasShopifyMarkets = _a.hasShopifyMarkets, companyLocationContext = _a.companyLocationContext, withProductTypes = _a.withProductTypes, userToken = _a.userToken, abTestingVariations = _a.abTestingVariations, disableMerchandisingRules = _a.disableMerchandisingRules, disableMerchandising = _a.disableMerchandising, disableStrategies = _a.disableStrategies, disableTurbolinks = _a.disableTurbolinks, collectionPersonalization = _a.collectionPersonalization, channel = _a.channel, self = _a.self;
25
+ if (self && !(0, siteStateValidator_1.validateSiteState)(self)) {
26
+ return Promise.reject(new Error("Fast Simon account is uninstalled"));
27
+ }
23
28
  var platform = (0, utils_1.getPlatform)();
24
29
  var segmentsToken = (0, segments_1.getSegments)();
25
30
  var stToken = (userToken ? userToken : (localStorage.getItem(config_1.USER_SESSION_TOKEN_LS_KEY) ? localStorage.getItem(config_1.USER_SESSION_TOKEN_LS_KEY) : undefined));
26
- var sendSPV = true;
27
- try {
28
- sendSPV = (0, sortUtil_1.default)(sortBy) && (0, personalization_1.isCollectionPersonalization)(categoryID, collectionPersonalization);
29
- }
30
- catch (e) {
31
- console.log("%c\u274C IS+ SDK Error | Error While Checking If Personalization Allowed", 'font-weight: bold; font-size: 12px; color: red');
32
- }
33
31
  var variant_id = (0, ABTesting_1.getUserVariation)();
34
32
  var hasVariant = false;
35
33
  if (variant_id && (abTestingVariations === null || abTestingVariations === void 0 ? void 0 : abTestingVariations[variant_id])) {
@@ -37,6 +35,39 @@ exports.SmartCollections = {
37
35
  }
38
36
  (0, filtersPersonalization_1.handleFiltersPersonalization)(narrowBy, isPersonalizedFiltersActive);
39
37
  var filtersPersonalization = (0, filtersPersonalization_1.isFiltersPersonalization)(!!(narrowBy === null || narrowBy === void 0 ? void 0 : narrowBy.length), isPersonalizedFiltersActive);
38
+ var sendSPV = true;
39
+ var sendSPVInPostLoad = true;
40
+ try {
41
+ if (variant_id && (abTestingVariations === null || abTestingVariations === void 0 ? void 0 : abTestingVariations[variant_id])) {
42
+ hasVariant = true;
43
+ }
44
+ if (abTestingVariations && ((_b = abTestingVariations === null || abTestingVariations === void 0 ? void 0 : abTestingVariations[variant_id]) === null || _b === void 0 ? void 0 : _b['collection_personalization_tiles'])) {
45
+ abTestingVariations[variant_id]['collection_personalization'] = { active: true };
46
+ }
47
+ sendSPV = (0, sortUtil_1.default)(sortBy) && (0, personalization_1.isCollectionPersonalization)(categoryID, hasVariant ? (_c = abTestingVariations === null || abTestingVariations === void 0 ? void 0 : abTestingVariations[variant_id]) === null || _c === void 0 ? void 0 : _c['collection_personalization'] : collectionPersonalization);
48
+ sendSPVInPostLoad = (0, sortUtil_1.default)(sortBy) &&
49
+ ((0, personalization_1.isCollectionPersonalizationForVariant)(categoryID, abTestingVariations) ||
50
+ (0, personalization_1.isCollectionPersonalization)(categoryID, collectionPersonalization));
51
+ }
52
+ catch (e) {
53
+ console.log("%c\u274C IS+ SDK Error | Error While Checking If Personalization Allowed", "font-weight: bold; font-size: 12px; color: red");
54
+ }
55
+ var spv = undefined;
56
+ // Save SPV in a dictionary for future reference
57
+ if (sendSPV && (self === null || self === void 0 ? void 0 : self.data)) {
58
+ spv = JSON.stringify(recentTimestamps);
59
+ self.data.spv = spv;
60
+ }
61
+ else if (!sendSPV) {
62
+ spv = undefined;
63
+ }
64
+ if (sendSPVInPostLoad && (self === null || self === void 0 ? void 0 : self.data) && recentTimestamps && Object.keys(recentTimestamps)) {
65
+ self.data.spv_post_load = JSON.stringify(recentTimestamps);
66
+ }
67
+ else if (self === null || self === void 0 ? void 0 : self.data) {
68
+ self.data.spv_post_load = undefined;
69
+ }
70
+ var ps = (0, personalizationSegment_1.getPersonalizationSegment)();
40
71
  var params = {
41
72
  UUID: uuid,
42
73
  src: "JSSDK",
@@ -48,7 +79,7 @@ exports.SmartCollections = {
48
79
  narrow: JSON.stringify(narrowBy),
49
80
  products_per_page: productsPerPage,
50
81
  sort_by: sortBy,
51
- spv: sendSPV ? JSON.stringify(recentTimestamps) : undefined,
82
+ spv: spv,
52
83
  m: (0, debug_1.isDebugCaching)() ? 1 : undefined,
53
84
  search_within_search: searchWithinSearch,
54
85
  // ab_testing
@@ -61,9 +92,10 @@ exports.SmartCollections = {
61
92
  merchandising_rules: (0, options_1.getSDKABTestingOption)("merchandising_rules"),
62
93
  request_serial_number: (0, options_1.getSDKABTestingOption)("request_serial_number"),
63
94
  related_search: (0, options_1.getSDKABTestingOption)("related_search"),
64
- st: segmentsToken !== null && segmentsToken !== void 0 ? segmentsToken : (stToken && sendSPV && (recentTimestamps || filtersPersonalization)
95
+ st: segmentsToken !== null && segmentsToken !== void 0 ? segmentsToken : ((ps === 'returning' || (sendSPV && (recentTimestamps || filtersPersonalization)))
65
96
  ? stToken
66
97
  : undefined),
98
+ ps: ps,
67
99
  customer_group_id: platform === "Bigcommerce" ? bigcommerce_customer_1.bigcommerceCustomer.getBigcommerceCustomerGroupId() : undefined,
68
100
  location: (0, location_1.default)(uuid) || undefined,
69
101
  market_context: hasShopifyMarkets ? shopifyMarkets_1.default.getCountry() : undefined,
@@ -74,7 +106,7 @@ exports.SmartCollections = {
74
106
  channel: channel ? channel : undefined
75
107
  };
76
108
  if ((0, options_1.getSDKABTestingOption)("reasoning")) {
77
- params["segments"] = (_b = JSON.stringify(segments)) !== null && _b !== void 0 ? _b : (0, segments_1.getSegments)();
109
+ params["segments"] = (_d = JSON.stringify(segments)) !== null && _d !== void 0 ? _d : (0, segments_1.getSegments)();
78
110
  return API_1.API.get({
79
111
  url: "".concat(exports.debugVersion || BASE_URL, "/categories_navigation_reasoning"),
80
112
  params: params,
@@ -1 +1 @@
1
- {"version":3,"file":"smartCollections.js","sourceRoot":"","sources":["../../src/services/smartCollections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartCollections.js","sourceRoot":"","sources":["../../src/services/smartCollections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { SDKUtils } from '../models/common';
2
+ export declare class SDKViewportImpressions {
3
+ private tracker;
4
+ private isInitialized;
5
+ initialize(sdkUtils: SDKUtils): void;
6
+ trackElement(element: HTMLElement, productId: string, position: number, sdkUtils: SDKUtils): void;
7
+ onContextChange(): void;
8
+ destroy(): void;
9
+ private formatNarrowBy;
10
+ private reportImpressions;
11
+ private sendImpressionRequest;
12
+ }
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.SDKViewportImpressions = void 0;
49
+ var ViewportImpressionTracker_1 = require("./ViewportImpressionTracker");
50
+ // Store SDK initialization timestamp
51
+ var sdkInitTimestamp = Date.now();
52
+ var SDKViewportImpressions = /** @class */ (function () {
53
+ function SDKViewportImpressions() {
54
+ this.tracker = null;
55
+ this.isInitialized = false;
56
+ }
57
+ SDKViewportImpressions.prototype.initialize = function (sdkUtils) {
58
+ var _this = this;
59
+ if (this.isInitialized)
60
+ return;
61
+ this.tracker = new ViewportImpressionTracker_1.ViewportImpressionTracker({
62
+ threshold: 0.7,
63
+ backupInterval: 120000,
64
+ onReport: function (impressions) { return _this.reportImpressions(impressions, sdkUtils); }
65
+ });
66
+ this.isInitialized = true;
67
+ };
68
+ SDKViewportImpressions.prototype.trackElement = function (element, productId, position, sdkUtils) {
69
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
70
+ if (!this.tracker) {
71
+ console.warn('FastSimonSDK: Viewport tracking not initialized');
72
+ return;
73
+ }
74
+ // Get current context from SDK state at the moment of tracking
75
+ var metadata = {
76
+ elementID: productId,
77
+ elementPosition: position,
78
+ elementType: 'product',
79
+ query: ((_a = sdkUtils.temp.fullTextSearch) === null || _a === void 0 ? void 0 : _a.query) || ((_b = sdkUtils.temp.landingPage) === null || _b === void 0 ? void 0 : _b.slug),
80
+ categoryID: (_c = sdkUtils.temp.smartCollections) === null || _c === void 0 ? void 0 : _c.categoryID,
81
+ sort_by: (_e = (_d = sdkUtils === null || sdkUtils === void 0 ? void 0 : sdkUtils.fsGridCurrentResponse) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.sort_by,
82
+ narrow_by: this.formatNarrowBy((_g = (_f = sdkUtils === null || sdkUtils === void 0 ? void 0 : sdkUtils.fsGridCurrentResponse) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.narrow),
83
+ pagenum: (_j = (_h = sdkUtils === null || sdkUtils === void 0 ? void 0 : sdkUtils.fsGridCurrentResponse) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.p
84
+ };
85
+ this.tracker.track(element, metadata);
86
+ };
87
+ // Called when context changes (new search, filters, etc)
88
+ SDKViewportImpressions.prototype.onContextChange = function () {
89
+ var _a;
90
+ (_a = this.tracker) === null || _a === void 0 ? void 0 : _a.reportNow();
91
+ };
92
+ SDKViewportImpressions.prototype.destroy = function () {
93
+ var _a;
94
+ (_a = this.tracker) === null || _a === void 0 ? void 0 : _a.destroy();
95
+ this.tracker = null;
96
+ this.isInitialized = false;
97
+ };
98
+ SDKViewportImpressions.prototype.formatNarrowBy = function (narrow) {
99
+ if (!narrow || narrow.length === 0)
100
+ return undefined;
101
+ // Group by filter name first
102
+ var grouped = {};
103
+ for (var _i = 0, narrow_1 = narrow; _i < narrow_1.length; _i++) {
104
+ var _a = narrow_1[_i], filterName = _a[0], filterValue = _a[1];
105
+ if (!grouped[filterName]) {
106
+ grouped[filterName] = [];
107
+ }
108
+ grouped[filterName].push(filterValue);
109
+ }
110
+ // Format as flat comma-separated list: "Color,Red,Blue,Size,M,L"
111
+ var parts = [];
112
+ for (var _b = 0, _c = Object.entries(grouped); _b < _c.length; _b++) {
113
+ var _d = _c[_b], filterName = _d[0], values = _d[1];
114
+ parts.push.apply(parts, __spreadArray([filterName], values, false));
115
+ }
116
+ return parts.join(',');
117
+ };
118
+ SDKViewportImpressions.prototype.reportImpressions = function (impressions, sdkUtils) {
119
+ return __awaiter(this, void 0, void 0, function () {
120
+ var _a, uuid, storeID, userToken, sessionToken, groupedImpressions, requests;
121
+ var _this = this;
122
+ return __generator(this, function (_b) {
123
+ switch (_b.label) {
124
+ case 0:
125
+ _a = sdkUtils.data, uuid = _a.uuid, storeID = _a.storeID, userToken = _a.userToken, sessionToken = _a.sessionToken;
126
+ if (!userToken || !(sessionToken === null || sessionToken === void 0 ? void 0 : sessionToken.start) || impressions.length === 0) {
127
+ return [2 /*return*/];
128
+ }
129
+ groupedImpressions = impressions.reduce(function (acc, impression) {
130
+ // Create composite key based on context
131
+ var key = impression.query
132
+ ? "".concat(impression.query, "_").concat(impression.sort_by || '', "_").concat(impression.narrow_by || '')
133
+ : "".concat(impression.categoryID || '', "_").concat(impression.sort_by || '', "_").concat(impression.narrow_by || '');
134
+ if (!acc[key]) {
135
+ acc[key] = {
136
+ query: impression.query,
137
+ categoryID: impression.categoryID,
138
+ sort_by: impression.sort_by,
139
+ narrow_by: impression.narrow_by,
140
+ products: {}
141
+ };
142
+ }
143
+ acc[key].products[impression.elementID] = impression.timestamp;
144
+ return acc;
145
+ }, {});
146
+ requests = Object.values(groupedImpressions).map(function (group) {
147
+ var params = {
148
+ UUID: uuid,
149
+ store_id: storeID,
150
+ st: userToken,
151
+ session: sessionToken.start,
152
+ up_type: group.query ? '4' : '20', // 4 for search, 20 for collection
153
+ page_load_timestamp: sdkInitTimestamp,
154
+ request_timestamp: Date.now(),
155
+ viewport_products: group.products
156
+ };
157
+ if (group.query) {
158
+ params.q = group.query;
159
+ }
160
+ if (group.categoryID) {
161
+ params.category_id = group.categoryID;
162
+ }
163
+ if (group.sort_by) {
164
+ params.sort_by = group.sort_by;
165
+ }
166
+ if (group.narrow_by) {
167
+ params.narrow_by = group.narrow_by;
168
+ }
169
+ return _this.sendImpressionRequest(params);
170
+ });
171
+ return [4 /*yield*/, Promise.all(requests)];
172
+ case 1:
173
+ _b.sent();
174
+ return [2 /*return*/];
175
+ }
176
+ });
177
+ });
178
+ };
179
+ SDKViewportImpressions.prototype.sendImpressionRequest = function (params) {
180
+ return __awaiter(this, void 0, void 0, function () {
181
+ var error_1;
182
+ return __generator(this, function (_a) {
183
+ switch (_a.label) {
184
+ case 0:
185
+ _a.trys.push([0, 2, , 3]);
186
+ // Use fetch with POST to avoid URL length limitations in older browsers
187
+ return [4 /*yield*/, fetch('https://views.fastsimon.com/post_impression', {
188
+ method: 'POST',
189
+ headers: {
190
+ 'Content-Type': 'application/json'
191
+ },
192
+ body: JSON.stringify(params),
193
+ keepalive: true
194
+ })];
195
+ case 1:
196
+ // Use fetch with POST to avoid URL length limitations in older browsers
197
+ _a.sent();
198
+ return [3 /*break*/, 3];
199
+ case 2:
200
+ error_1 = _a.sent();
201
+ console.debug('FastSimonSDK: Failed to report viewport impressions', error_1);
202
+ return [3 /*break*/, 3];
203
+ case 3: return [2 /*return*/];
204
+ }
205
+ });
206
+ });
207
+ };
208
+ return SDKViewportImpressions;
209
+ }());
210
+ exports.SDKViewportImpressions = SDKViewportImpressions;
211
+ //# sourceMappingURL=viewportImpressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewportImpressions.js","sourceRoot":"","sources":["../../src/services/viewportImpressions.ts"],"names":[],"mappings":"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"}
package/lib/utils/API.js CHANGED
@@ -49,16 +49,24 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
50
  exports.API = void 0;
51
51
  var axios_1 = require("axios");
52
+ var logger_1 = require("./logger");
52
53
  exports.API = {
53
54
  get: function (_a) {
54
55
  return __awaiter(this, arguments, void 0, function (_b) {
55
- var response;
56
+ var verbose, start, response;
56
57
  var url = _b.url, params = _b.params, config = _b.config;
57
58
  return __generator(this, function (_c) {
58
59
  switch (_c.label) {
59
- case 0: return [4 /*yield*/, axios_1.default.get(url, __assign({ params: params }, config))];
60
+ case 0:
61
+ verbose = (0, logger_1.isVerbose)();
62
+ start = verbose ? performance.now() : 0;
63
+ if (verbose)
64
+ (0, logger_1.verboseLog)("GET ".concat(url), params);
65
+ return [4 /*yield*/, axios_1.default.get(url, __assign({ params: params }, config))];
60
66
  case 1:
61
67
  response = _c.sent();
68
+ if (verbose)
69
+ (0, logger_1.verboseLog)("GET ".concat(url, " | ").concat(Math.round(performance.now() - start), "ms"));
62
70
  return [2 /*return*/, response.data];
63
71
  }
64
72
  });
@@ -66,13 +74,20 @@ exports.API = {
66
74
  },
67
75
  post: function (_a) {
68
76
  return __awaiter(this, arguments, void 0, function (_b) {
69
- var response;
77
+ var verbose, start, response;
70
78
  var url = _b.url, config = _b.config, data = _b.data;
71
79
  return __generator(this, function (_c) {
72
80
  switch (_c.label) {
73
- case 0: return [4 /*yield*/, axios_1.default.post(url, data, config)];
81
+ case 0:
82
+ verbose = (0, logger_1.isVerbose)();
83
+ start = verbose ? performance.now() : 0;
84
+ if (verbose)
85
+ (0, logger_1.verboseLog)("POST ".concat(url), data);
86
+ return [4 /*yield*/, axios_1.default.post(url, data, config)];
74
87
  case 1:
75
88
  response = _c.sent();
89
+ if (verbose)
90
+ (0, logger_1.verboseLog)("POST ".concat(url, " | ").concat(Math.round(performance.now() - start), "ms"));
76
91
  return [2 /*return*/, response.data];
77
92
  }
78
93
  });
@@ -1 +1 @@
1
- {"version":3,"file":"API.js","sourceRoot":"","sources":["../../src/utils/API.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+D;AAkBlD,QAAA,GAAG,GAAG;IACf,GAAG,EAAE;4DAAmB,EAA+B;;gBAA9B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA;;;4BACvB,qBAAM,eAAK,CAAC,GAAG,CAAwB,GAAG,aACvD,MAAM,QAAA,IACH,MAAM,EACX,EAAA;;wBAHI,QAAQ,GAAG,SAGf;wBAEF,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;;KACxB;IAED,IAAI,EAAE;4DAAmB,EAA8B;;gBAA7B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAA;;;4BACtB,qBAAM,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAA;;wBAA9C,QAAQ,GAAG,SAAmC;wBAEpD,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;;KACxB;CACJ,CAAC"}
1
+ {"version":3,"file":"API.js","sourceRoot":"","sources":["../../src/utils/API.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+D;AAC/D,mCAA+C;AAkBlC,QAAA,GAAG,GAAG;IACf,GAAG,EAAE;4DAAmB,EAA+B;;gBAA9B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA;;;;wBAClC,OAAO,GAAG,IAAA,kBAAS,GAAE,CAAC;wBACtB,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9C,IAAI,OAAO;4BAAE,IAAA,mBAAU,EAAC,cAAO,GAAG,CAAE,EAAE,MAAM,CAAC,CAAC;wBAE7B,qBAAM,eAAK,CAAC,GAAG,CAAwB,GAAG,aACvD,MAAM,QAAA,IACH,MAAM,EACX,EAAA;;wBAHI,QAAQ,GAAG,SAGf;wBAEF,IAAI,OAAO;4BAAE,IAAA,mBAAU,EAAC,cAAO,GAAG,gBAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAI,CAAC,CAAC;wBACnF,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;;KACxB;IAED,IAAI,EAAE;4DAAmB,EAA8B;;gBAA7B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAA;;;;wBACjC,OAAO,GAAG,IAAA,kBAAS,GAAE,CAAC;wBACtB,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9C,IAAI,OAAO;4BAAE,IAAA,mBAAU,EAAC,eAAQ,GAAG,CAAE,EAAE,IAAI,CAAC,CAAC;wBAE5B,qBAAM,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAA;;wBAA9C,QAAQ,GAAG,SAAmC;wBAEpD,IAAI,OAAO;4BAAE,IAAA,mBAAU,EAAC,eAAQ,GAAG,gBAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAI,CAAC,CAAC;wBACpF,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;;KACxB;CACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function setFastSimonIdToAttentive(uuid: string): void;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setFastSimonIdToAttentive = setFastSimonIdToAttentive;
4
+ var LS_KEY = "isp_token_1";
5
+ function setFastSimonIdToAttentive(uuid) {
6
+ var success = false;
7
+ function set() {
8
+ var _a, _b;
9
+ var userId = localStorage.getItem(LS_KEY);
10
+ if (userId) {
11
+ try {
12
+ (_b = (_a = window === null || window === void 0 ? void 0 : window.attentive) === null || _a === void 0 ? void 0 : _a.analytics) === null || _b === void 0 ? void 0 : _b.identify({
13
+ externalIdentifiers: [
14
+ {
15
+ name: "fastSimonID",
16
+ value: "".concat(uuid, "_").concat(userId)
17
+ }
18
+ ]
19
+ });
20
+ success = true;
21
+ }
22
+ catch (e) {
23
+ console.log();
24
+ }
25
+ }
26
+ }
27
+ var retries = 5;
28
+ var interval = setInterval(function () {
29
+ set();
30
+ if (success || retries-- === 0) {
31
+ clearInterval(interval);
32
+ return;
33
+ }
34
+ }, 1000);
35
+ }
36
+ //# sourceMappingURL=attentive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attentive.js","sourceRoot":"","sources":["../../src/utils/attentive.ts"],"names":[],"mappings":";;AAEA,8DA8BC;AAhCD,IAAM,MAAM,GAAG,aAAa,CAAC;AAE7B,SAAgB,yBAAyB,CAAC,IAAY;IAClD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,SAAS,GAAG;;QACR,IAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAG,MAAM,EAAE,CAAC;YACR,IAAI,CAAC;gBACD,MAAA,MAAC,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,SAAS,0CAAE,SAAS,0CAAE,QAAQ,CAC3C;oBACI,mBAAmB,EAAE;wBACjB;4BACI,IAAI,EAAE,aAAa;4BACnB,KAAK,EAAE,UAAG,IAAI,cAAI,MAAM,CAAE;yBAC7B;qBACJ;iBACJ,CACJ,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAM,QAAQ,GAAG,WAAW,CAAC;QACzB,GAAG,EAAE,CAAC;QACN,IAAI,OAAO,IAAI,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7B,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO;QACX,CAAC;IACL,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export declare const getDebugEndpoint: () => string;
2
2
  export declare const isDebugCaching: () => boolean;
3
3
  export declare const debugSDK: (endpoint: string, disableCaching?: boolean) => void;
4
+ export declare const verboseSDK: (on: boolean) => void;
4
5
  export declare const clearDebugSDK: () => void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearDebugSDK = exports.debugSDK = exports.isDebugCaching = exports.getDebugEndpoint = void 0;
3
+ exports.clearDebugSDK = exports.verboseSDK = exports.debugSDK = exports.isDebugCaching = exports.getDebugEndpoint = void 0;
4
4
  var config_1 = require("../config");
5
5
  var getDebugEndpoint = function () {
6
6
  return localStorage.getItem(config_1.SDK_DEBUG_LS_LEY) || "";
@@ -25,8 +25,20 @@ var debugSDK = function (endpoint, disableCaching) {
25
25
  }
26
26
  };
27
27
  exports.debugSDK = debugSDK;
28
+ var verboseSDK = function (on) {
29
+ if (on) {
30
+ localStorage.setItem(config_1.SDK_VERBOSE_LS_KEY, 'true');
31
+ console.log('%cFS SDK | Verbose logging enabled - reload to take effect', 'font-weight: bold; font-size: 12px; color: #6366f1');
32
+ }
33
+ else {
34
+ localStorage.removeItem(config_1.SDK_VERBOSE_LS_KEY);
35
+ console.log('%cFS SDK | Verbose logging disabled', 'font-weight: bold; font-size: 12px; color: #6366f1');
36
+ }
37
+ };
38
+ exports.verboseSDK = verboseSDK;
28
39
  var clearDebugSDK = function () {
29
40
  (0, exports.debugSDK)("", false);
41
+ localStorage.removeItem(config_1.SDK_VERBOSE_LS_KEY);
30
42
  };
31
43
  exports.clearDebugSDK = clearDebugSDK;
32
44
  //# sourceMappingURL=debug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":";;;AAAA,oCAAkE;AAE3D,IAAM,gBAAgB,GAAG;IAC5B,OAAO,YAAY,CAAC,OAAO,CAAC,yBAAgB,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEK,IAAM,cAAc,GAAG;IAC1B,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,8BAAqB,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,IAAM,QAAQ,GAAG,UAAC,QAAgB,EAAE,cAAwB;IAC/D,IAAI,QAAQ,EAAE,CAAC;QACX,YAAY,CAAC,OAAO,CAAC,yBAAgB,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACJ,YAAY,CAAC,UAAU,CAAC,yBAAgB,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACjB,YAAY,CAAC,OAAO,CAAC,8BAAqB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,YAAY,CAAC,UAAU,CAAC,8BAAqB,CAAC,CAAC;IACnD,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,QAAQ,YAYnB;AAEK,IAAM,aAAa,GAAG;IACzB,IAAA,gBAAQ,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":";;;AAAA,oCAAsF;AAE/E,IAAM,gBAAgB,GAAG;IAC5B,OAAO,YAAY,CAAC,OAAO,CAAC,yBAAgB,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEK,IAAM,cAAc,GAAG;IAC1B,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,8BAAqB,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,IAAM,QAAQ,GAAG,UAAC,QAAgB,EAAE,cAAwB;IAC/D,IAAI,QAAQ,EAAE,CAAC;QACX,YAAY,CAAC,OAAO,CAAC,yBAAgB,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACJ,YAAY,CAAC,UAAU,CAAC,yBAAgB,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACjB,YAAY,CAAC,OAAO,CAAC,8BAAqB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,YAAY,CAAC,UAAU,CAAC,8BAAqB,CAAC,CAAC;IACnD,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,QAAQ,YAYnB;AAEK,IAAM,UAAU,GAAG,UAAC,EAAW;IAClC,IAAI,EAAE,EAAE,CAAC;QACL,YAAY,CAAC,OAAO,CAAC,2BAAkB,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,4DAA4D,EAAE,oDAAoD,CAAC,CAAC;IACpI,CAAC;SAAM,CAAC;QACJ,YAAY,CAAC,UAAU,CAAC,2BAAkB,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,oDAAoD,CAAC,CAAC;IAC7G,CAAC;AACL,CAAC,CAAC;AARW,QAAA,UAAU,cAQrB;AAEK,IAAM,aAAa,GAAG;IACzB,IAAA,gBAAQ,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACpB,YAAY,CAAC,UAAU,CAAC,2BAAkB,CAAC,CAAC;AAChD,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB"}
@@ -0,0 +1,2 @@
1
+ export declare const isVerbose: () => boolean;
2
+ export declare const verboseLog: (label: string, data?: any) => void;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verboseLog = exports.isVerbose = void 0;
4
+ var config_1 = require("../config");
5
+ var STYLE = 'font-weight: bold; font-size: 12px; color: #6366f1';
6
+ var isVerbose = function () {
7
+ try {
8
+ return localStorage.getItem(config_1.SDK_VERBOSE_LS_KEY) === 'true';
9
+ }
10
+ catch (_a) {
11
+ return false;
12
+ }
13
+ };
14
+ exports.isVerbose = isVerbose;
15
+ var verboseLog = function (label, data) {
16
+ if (!(0, exports.isVerbose)())
17
+ return;
18
+ if (data !== undefined) {
19
+ console.log("%cFS SDK | ".concat(label), STYLE, data);
20
+ }
21
+ else {
22
+ console.log("%cFS SDK | ".concat(label), STYLE);
23
+ }
24
+ };
25
+ exports.verboseLog = verboseLog;
26
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;AAAA,oCAA6C;AAE7C,IAAM,KAAK,GAAG,oDAAoD,CAAC;AAE5D,IAAM,SAAS,GAAG;IACrB,IAAI,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,2BAAkB,CAAC,KAAK,MAAM,CAAC;IAC/D,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEK,IAAM,UAAU,GAAG,UAAC,KAAa,EAAE,IAAU;IAChD,IAAI,CAAC,IAAA,iBAAS,GAAE;QAAE,OAAO;IACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,qBAAc,KAAK,CAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,qBAAc,KAAK,CAAE,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB"}
@@ -1,2 +1,7 @@
1
1
  import { CollectionsPersonalization } from "../models/common";
2
2
  export declare const isCollectionPersonalization: (categoryId: string, personalizationSettings?: CollectionsPersonalization) => boolean;
3
+ export declare const isCollectionPersonalizationForVariant: (categoryId: string, abTestingVariations?: {
4
+ [key: string]: {
5
+ [key: string]: object;
6
+ };
7
+ }) => boolean;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCollectionPersonalization = void 0;
3
+ exports.isCollectionPersonalizationForVariant = exports.isCollectionPersonalization = void 0;
4
4
  var isCollectionPersonalization = function (categoryId, personalizationSettings) {
5
+ var _a, _b, _c, _d;
5
6
  var isPersonalization = true;
6
7
  if (!personalizationSettings || (typeof (personalizationSettings === null || personalizationSettings === void 0 ? void 0 : personalizationSettings.active) === 'undefined')) {
7
8
  isPersonalization = false;
@@ -9,13 +10,27 @@ var isCollectionPersonalization = function (categoryId, personalizationSettings)
9
10
  else if (!personalizationSettings.active) {
10
11
  isPersonalization = false;
11
12
  }
12
- else if (personalizationSettings.avoidCategories.includes(categoryId)) {
13
+ else if ((_b = (_a = personalizationSettings === null || personalizationSettings === void 0 ? void 0 : personalizationSettings.avoidCategories) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, categoryId)) {
13
14
  isPersonalization = false;
14
15
  }
15
- else if (personalizationSettings.disableCategories.includes(categoryId)) {
16
+ else if ((_d = (_c = personalizationSettings === null || personalizationSettings === void 0 ? void 0 : personalizationSettings.disableCategories) === null || _c === void 0 ? void 0 : _c.includes) === null || _d === void 0 ? void 0 : _d.call(_c, categoryId)) {
16
17
  isPersonalization = false;
17
18
  }
18
19
  return isPersonalization;
19
20
  };
20
21
  exports.isCollectionPersonalization = isCollectionPersonalization;
22
+ var isCollectionPersonalizationForVariant = function (categoryId, abTestingVariations) {
23
+ var _a;
24
+ var variantsKeys = abTestingVariations ? Object.keys(abTestingVariations) : [];
25
+ var isPersonalization = false;
26
+ for (var i = 0; i < (variantsKeys === null || variantsKeys === void 0 ? void 0 : variantsKeys.length); i++) {
27
+ var variant_id = variantsKeys[i];
28
+ isPersonalization = abTestingVariations ? (0, exports.isCollectionPersonalization)(categoryId, (_a = abTestingVariations === null || abTestingVariations === void 0 ? void 0 : abTestingVariations[variant_id]) === null || _a === void 0 ? void 0 : _a['collection_personalization']) : false;
29
+ if (isPersonalization) {
30
+ return true;
31
+ }
32
+ }
33
+ return isPersonalization;
34
+ };
35
+ exports.isCollectionPersonalizationForVariant = isCollectionPersonalizationForVariant;
21
36
  //# sourceMappingURL=personalization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"personalization.js","sourceRoot":"","sources":["../../src/utils/personalization.ts"],"names":[],"mappings":";;;AAEO,IAAM,2BAA2B,GAAG,UAAC,UAAkB,EAAE,uBAAoD;IAChH,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,MAAM,CAAA,KAAK,WAAW,CAAC,EAAE,CAAC;QACtF,iBAAiB,GAAG,KAAK,CAAC;IAC9B,CAAC;SAAM,IAAG,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;QACxC,iBAAiB,GAAG,KAAK,CAAC;IAC9B,CAAC;SAAM,IAAG,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrE,iBAAiB,GAAG,KAAK,CAAC;IAC9B,CAAC;SAAM,IAAG,uBAAuB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,iBAAiB,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAA;AAZY,QAAA,2BAA2B,+BAYvC"}
1
+ {"version":3,"file":"personalization.js","sourceRoot":"","sources":["../../src/utils/personalization.ts"],"names":[],"mappings":";;;AAEO,IAAM,2BAA2B,GAAG,UAAC,UAAkB,EAAE,uBAAoD;;IAChH,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,MAAM,CAAA,KAAK,WAAW,CAAC,EAAE,CAAC;QACtF,iBAAiB,GAAG,KAAK,CAAC;IAC9B,CAAC;SAAM,IAAG,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;QACxC,iBAAiB,GAAG,KAAK,CAAC;IAC9B,CAAC;SAAM,IAAG,MAAA,MAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,eAAe,0CAAE,QAAQ,mDAAG,UAAU,CAAC,EAAE,CAAC;QACzE,iBAAiB,GAAG,KAAK,CAAC;IAC9B,CAAC;SAAM,IAAG,MAAA,MAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,iBAAiB,0CAAE,QAAQ,mDAAG,UAAU,CAAC,EAAE,CAAC;QAC3E,iBAAiB,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAA;AAZY,QAAA,2BAA2B,+BAYvC;AAEM,IAAM,qCAAqC,GAAG,UAAC,UAAkB,EAAE,mBAIrE;;IACD,IAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjF,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,KAAI,IAAI,CAAC,GAAE,CAAC,EAAE,CAAC,IAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAAA,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,iBAAiB,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAA,mCAA2B,EAAC,UAAU,EAAE,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,UAAU,CAAC,0CAAG,4BAA4B,CAAgC,CAAC,CAAA,CAAC,CAAC,KAAK,CAAC;QAC3L,IAAG,iBAAiB,EAAE,CAAC;YACnB,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAA;AAhBY,QAAA,qCAAqC,yCAgBjD"}
@@ -0,0 +1,2 @@
1
+ export declare function setPersonalizationSegment(segment: string | undefined): void;
2
+ export declare function getPersonalizationSegment(): string | undefined;