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.
- package/README.md +68 -58
- package/lib/config.d.ts +2 -0
- package/lib/config.js +3 -1
- package/lib/config.js.map +1 -1
- package/lib/index.js +19 -9
- package/lib/index.js.map +1 -1
- package/lib/models/autocomplete.d.ts +3 -0
- package/lib/models/common.d.ts +22 -0
- package/lib/models/common.js +3 -0
- package/lib/models/common.js.map +1 -1
- package/lib/models/events.d.ts +10 -1
- package/lib/models/fullTextSearch.d.ts +2 -1
- package/lib/models/fullTextSearch.js.map +1 -1
- package/lib/models/related.d.ts +3 -0
- package/lib/models/smartCollections.d.ts +3 -1
- package/lib/sections/enums/index.d.ts +2 -0
- package/lib/sections/enums/index.js +2 -0
- package/lib/sections/enums/index.js.map +1 -1
- package/lib/sections/eventReporter/index.js +88 -23
- package/lib/sections/eventReporter/index.js.map +1 -1
- package/lib/sections/eventReporter/utils.d.ts +1 -1
- package/lib/sections/eventReporter/utils.js +6 -2
- package/lib/sections/eventReporter/utils.js.map +1 -1
- package/lib/sections/fullTextSearch/index.js +41 -8
- package/lib/sections/fullTextSearch/index.js.map +1 -1
- package/lib/sections/fullTextSearch/utils.d.ts +0 -1
- package/lib/sections/fullTextSearch/utils.js +11 -5
- package/lib/sections/fullTextSearch/utils.js.map +1 -1
- package/lib/sections/index.js +34 -2
- package/lib/sections/index.js.map +1 -1
- package/lib/sections/initialization/index.d.ts +2 -1
- package/lib/sections/initialization/index.js +63 -17
- package/lib/sections/initialization/index.js.map +1 -1
- package/lib/sections/initialization/utils.js +27 -10
- package/lib/sections/initialization/utils.js.map +1 -1
- package/lib/sections/instantSearch/index.d.ts +1 -1
- package/lib/sections/instantSearch/index.js +3 -3
- package/lib/sections/instantSearch/index.js.map +1 -1
- package/lib/sections/instantSearch/utils.d.ts +2 -1
- package/lib/sections/instantSearch/utils.js +4 -4
- package/lib/sections/instantSearch/utils.js.map +1 -1
- package/lib/sections/landingPage/index.js +9 -0
- package/lib/sections/landingPage/index.js.map +1 -1
- package/lib/sections/recommendations/index.d.ts +14 -0
- package/lib/sections/recommendations/index.js +71 -3
- package/lib/sections/recommendations/index.js.map +1 -1
- package/lib/sections/recommendations/utils.js +12 -7
- package/lib/sections/recommendations/utils.js.map +1 -1
- package/lib/sections/smartCollections/index.js +40 -7
- package/lib/sections/smartCollections/index.js.map +1 -1
- package/lib/sections/smartCollections/utils.d.ts +4 -4
- package/lib/sections/smartCollections/utils.js +47 -93
- package/lib/sections/smartCollections/utils.js.map +1 -1
- package/lib/services/ViewportImpressionTracker.d.ts +37 -0
- package/lib/services/ViewportImpressionTracker.js +218 -0
- package/lib/services/ViewportImpressionTracker.js.map +1 -0
- package/lib/services/common.d.ts +14 -6
- package/lib/services/common.js +35 -10
- package/lib/services/common.js.map +1 -1
- package/lib/services/fullTextSearch.d.ts +1 -1
- package/lib/services/fullTextSearch.js +39 -5
- package/lib/services/fullTextSearch.js.map +1 -1
- package/lib/services/related.d.ts +23 -3
- package/lib/services/related.js +36 -2
- package/lib/services/related.js.map +1 -1
- package/lib/services/reporting.d.ts +11 -13
- package/lib/services/reporting.js +24 -33
- package/lib/services/reporting.js.map +1 -1
- package/lib/services/smartCollections.d.ts +1 -1
- package/lib/services/smartCollections.js +44 -12
- package/lib/services/smartCollections.js.map +1 -1
- package/lib/services/viewportImpressions.d.ts +12 -0
- package/lib/services/viewportImpressions.js +211 -0
- package/lib/services/viewportImpressions.js.map +1 -0
- package/lib/utils/API.js +19 -4
- package/lib/utils/API.js.map +1 -1
- package/lib/utils/attentive.d.ts +1 -0
- package/lib/utils/attentive.js +36 -0
- package/lib/utils/attentive.js.map +1 -0
- package/lib/utils/debug.d.ts +1 -0
- package/lib/utils/debug.js +13 -1
- package/lib/utils/debug.js.map +1 -1
- package/lib/utils/logger.d.ts +2 -0
- package/lib/utils/logger.js +26 -0
- package/lib/utils/logger.js.map +1 -0
- package/lib/utils/personalization.d.ts +5 -0
- package/lib/utils/personalization.js +18 -3
- package/lib/utils/personalization.js.map +1 -1
- package/lib/utils/personalizationSegment.d.ts +2 -0
- package/lib/utils/personalizationSegment.js +17 -0
- package/lib/utils/personalizationSegment.js.map +1 -0
- package/lib/utils/siteStateValidator.d.ts +25 -0
- package/lib/utils/siteStateValidator.js +45 -0
- package/lib/utils/siteStateValidator.js.map +1 -0
- package/lib/utils/validation.d.ts +1 -0
- package/lib/utils/validation.js +13 -1
- package/lib/utils/validation.js.map +1 -1
- 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:
|
|
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 : (
|
|
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"] = (
|
|
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":";;;AAAA,oCAAiC;AAEjC,wCAAgE;AAChE,4CAAmF;AACnF,8CAA8C;AAC9C,0DAA6D;AAC7D,yEAAqE;AACrE,8CAAgD;AAChD,0DAAqD;AACrD,oCAAsD;AACtD,gDAAoD;AACpD,0EAAuG;AACvG,8CAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"smartCollections.js","sourceRoot":"","sources":["../../src/services/smartCollections.ts"],"names":[],"mappings":";;;AAAA,oCAAiC;AAEjC,wCAAgE;AAChE,4CAAmF;AACnF,8CAA8C;AAC9C,0DAA6D;AAC7D,yEAAqE;AACrE,8CAAgD;AAChD,0DAAqD;AACrD,oCAAsD;AACtD,gDAAoD;AACpD,0EAAuG;AACvG,8CAAgE;AAChE,4DAA8G;AAE9G,kEAAgE;AAChE,0EAA0E;AAE1E,IAAM,QAAQ,GAAG,2BAA2B,CAAC;AAEhC,QAAA,YAAY,GAAG,IAAA,wBAAgB,GAAE,CAAC;AAElC,QAAA,gBAAgB,GAAG;IACxB,mBAAmB,EAAE,UAAC,EAOmB;;YANf,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,GAAG,SAAA,EAClB,aAAa,mBAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA,EAC7B,eAAe,qBAAA,EAAE,MAAM,YAAA,EAAE,2BAA2B,iCAAA,EACpD,cAAc,oBAAA,EAAE,UAAU,gBAAA,EAAE,gBAAgB,sBAAA,EAAE,GAAG,SAAA,EAAE,kBAAkB,wBAAA,EAAE,QAAQ,cAAA,EAAE,iBAAiB,uBAAA,EAAE,sBAAsB,4BAAA,EAC1H,gBAAgB,sBAAA,EAAE,SAAS,eAAA,EAAE,mBAAmB,yBAAA,EAAE,yBAAyB,+BAAA,EAAE,oBAAoB,0BAAA,EAAE,iBAAiB,uBAAA,EACpH,iBAAiB,uBAAA,EAAE,yBAAyB,+BAAA,EAAE,OAAO,aAAA,EAAE,IAAI,UAAA;QAEjF,IAAI,IAAI,IAAI,CAAC,IAAA,sCAAiB,EAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,IAAM,QAAQ,GAAG,IAAA,mBAAW,GAAE,CAAC;QAE/B,IAAM,aAAa,GAAG,IAAA,sBAAW,GAAE,CAAC;QACpC,IAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,kCAAyB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,kCAAyB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAE1J,IAAM,UAAU,GAAG,IAAA,4BAAgB,GAAE,CAAC;QACtC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,UAAU,KAAI,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,UAAU,CAAC,CAAA,EAAE,CAAC;YACjD,UAAU,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAA,qDAA4B,EAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QACpE,IAAM,sBAAsB,GAAG,IAAA,iDAAwB,EAAC,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,EAAE,2BAA2B,CAAC,CAAC;QAEzG,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC;YACD,IAAI,UAAU,KAAI,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,UAAU,CAAC,CAAA,EAAE,CAAC;gBAClD,UAAU,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,IAAG,mBAAmB,KAAI,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,UAAU,CAAC,0CAAG,kCAAkC,CAAgC,CAAA,EAAE,CAAC;gBAC/H,mBAAmB,CAAC,UAAU,CAAC,CAAC,4BAA4B,CAAC,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YAClF,CAAC;YACD,OAAO,GAAG,IAAA,kBAA+B,EAAC,MAAM,CAAC,IAAI,IAAA,6CAA2B,EAAC,UAAU,EAAE,UAAU,CAAA,CAAC,CAAC,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,UAAU,CAAC,0CAAG,4BAA4B,CAAgC,CAAA,CAAC,CAAC,yBAAyB,CAAC,CAAC;YACtO,iBAAiB,GAAG,IAAA,kBAA+B,EAAC,MAAM,CAAC;gBAC3D,CAAC,IAAA,uDAAqC,EAAC,UAAU,EAAE,mBAAmB,CAAC;oBACrE,IAAA,6CAA2B,EAAC,UAAU,EAAE,yBAAyB,CAAC,CACnE,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,0EAAqE,EAAE,gDAAgD,CAAC,CAAC;QACzI,CAAC;QACD,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,gDAAgD;QAChD,IAAI,OAAO,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,EAAE,CAAC;YACxB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,GAAG,GAAG,SAAS,CAAC;QACpB,CAAC;QACD,IAAI,iBAAiB,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvF,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QACxC,CAAC;QACD,IAAM,EAAE,GAAG,IAAA,kDAAyB,GAAE,CAAC;QACvC,IAAM,MAAM,GAAG;YACX,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,OAAO;YACjB,eAAe,EAAE,aAAa;YAC9B,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC;YACnB,uBAAuB,EAAE,cAAc;YACvC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAChC,iBAAiB,EAAE,eAAe;YAClC,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,GAAG;YACR,CAAC,EAAE,IAAA,sBAAc,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACnC,oBAAoB,EAAE,kBAAkB;YACxC,aAAa;YACb,uBAAuB,EAAE,IAAA,oCAA0B,EAAC,wCAAwC,CAAC;YAC7F,qBAAqB,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YAC7D,2BAA2B,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACxE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACvD,iBAAiB,EAAE,IAAA,oCAA0B,EAAC,2BAA2B,CAAC;YAC1E,eAAe;YACf,mBAAmB,EAAE,IAAA,+BAAqB,EAAC,qBAAqB,CAAC;YACjE,qBAAqB,EAAE,IAAA,+BAAqB,EAAC,uBAAuB,CAAC;YACrE,cAAc,EAAE,IAAA,+BAAqB,EAAC,gBAAgB,CAAC;YACvD,EAAE,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GACV,CAAC,CAAC,EAAE,KAAK,WAAW,IAAI,CAAC,OAAO,IAAI,CAAC,gBAAgB,IAAI,sBAAsB,CAAC,CAAC,CAAC;gBACjF,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,SAAS,CAAC;YACpB,EAAE,EAAE,EAAE;YACN,iBAAiB,EAAE,QAAQ,KAAK,aAAa,CAAA,CAAC,CAAC,0CAAmB,CAAC,6BAA6B,EAAE,CAAA,CAAC,CAAC,SAAS;YAC7G,QAAQ,EAAE,IAAA,kBAAe,EAAC,IAAI,CAAC,IAAI,SAAS;YAC5C,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,wBAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;YAC3E,wBAAwB,EAAE,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;YACrF,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACpD,YAAY,EAAE,UAAU,CAAA,CAAC,CAAC,UAAU,CAAA,CAAC,CAAC,SAAS;YAC/C,kBAAkB,EAAE,iBAAiB,CAAA,CAAC,CAAC,GAAG,CAAA,CAAC,CAAC,SAAS;YACrD,OAAO,EAAE,OAAO,CAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SACxC,CAAC;QAEF,IAAI,IAAA,+BAAqB,EAAC,WAAW,CAAC,EAAE,CAAC;YACpC,MAAc,CAAC,UAAU,CAAC,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mCAAI,IAAA,sBAAW,GAAE,CAAC;YACxE,OAAO,SAAG,CAAC,GAAG,CAA2B;gBACrC,GAAG,EAAE,UAAG,oBAAY,IAAI,QAAQ,qCAAkC;gBAClE,MAAM,QAAA;gBACN,MAAM,EAAE;oBACJ,OAAO,EAAE;wBACL,GAAG,EAAE,IAAA,+BAAqB,EAAC,WAAW,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACtD,QAAQ,EAAE,IAAA,+BAAqB,EAAC,WAAW,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBAC9D;iBACJ;aACJ,CAAC,CAAC;QACP,CAAC;QAED,OAAO,SAAG,CAAC,GAAG,CAA2B;YACrC,GAAG,EAAE,UAAG,oBAAY,IAAI,QAAQ,2BAAwB;YACxD,MAAM,QAAA;SACT,CAAC,CAAC;IACP,CAAC;CACJ,CACJ"}
|
|
@@ -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:
|
|
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:
|
|
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
|
});
|
package/lib/utils/API.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"API.js","sourceRoot":"","sources":["../../src/utils/API.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+D;
|
|
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"}
|
package/lib/utils/debug.d.ts
CHANGED
|
@@ -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;
|
package/lib/utils/debug.js
CHANGED
|
@@ -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
|
package/lib/utils/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":";;;AAAA,
|
|
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,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
|
|
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"}
|