fast-simon-sdk 1.6.9 → 1.6.28
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/lib/config.d.ts +1 -0
- package/lib/config.js +2 -1
- package/lib/config.js.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/models/autocomplete.d.ts +8 -0
- package/lib/models/common.d.ts +38 -2
- package/lib/models/common.js +1 -0
- package/lib/models/common.js.map +1 -1
- package/lib/models/content.d.ts +2 -0
- package/lib/models/events.d.ts +1 -1
- package/lib/models/fullTextSearch.d.ts +4 -2
- package/lib/models/fullTextSearch.js.map +1 -1
- package/lib/models/smartCollections.d.ts +3 -1
- package/lib/models/visualDiscovery.d.ts +19 -2
- package/lib/models/visualDiscovery.js.map +1 -1
- package/lib/sections/contentSearch/index.js +1 -1
- package/lib/sections/contentSearch/index.js.map +1 -1
- package/lib/sections/eventReporter/index.js +108 -52
- package/lib/sections/eventReporter/index.js.map +1 -1
- package/lib/sections/eventReporter/utils.d.ts +2 -1
- package/lib/sections/eventReporter/utils.js +3 -1
- package/lib/sections/eventReporter/utils.js.map +1 -1
- package/lib/sections/fullTextSearch/index.js +4 -3
- package/lib/sections/fullTextSearch/index.js.map +1 -1
- package/lib/sections/index.js +25 -7
- package/lib/sections/index.js.map +1 -1
- package/lib/sections/initialization/index.d.ts +3 -2
- package/lib/sections/initialization/index.js +22 -8
- package/lib/sections/initialization/index.js.map +1 -1
- package/lib/sections/initialization/utils.js +3 -3
- package/lib/sections/initialization/utils.js.map +1 -1
- package/lib/sections/instantSearch/index.d.ts +1 -1
- package/lib/sections/instantSearch/index.js +55 -5
- package/lib/sections/instantSearch/index.js.map +1 -1
- package/lib/sections/instantSearch/utils.js +1 -1
- package/lib/sections/instantSearch/utils.js.map +1 -1
- package/lib/sections/landingPage/index.js +6 -5
- package/lib/sections/landingPage/index.js.map +1 -1
- package/lib/sections/recommendations/index.js +6 -4
- package/lib/sections/recommendations/index.js.map +1 -1
- package/lib/sections/smartCollections/index.js +4 -4
- package/lib/sections/smartCollections/index.js.map +1 -1
- package/lib/sections/smartCollections/utils.js +9 -5
- package/lib/sections/smartCollections/utils.js.map +1 -1
- package/lib/sections/visualDiscovery/index.d.ts +23 -3
- package/lib/sections/visualDiscovery/index.js +194 -33
- package/lib/sections/visualDiscovery/index.js.map +1 -1
- package/lib/services/autocomplete.d.ts +5 -2
- package/lib/services/autocomplete.js +6 -4
- package/lib/services/autocomplete.js.map +1 -1
- package/lib/services/common.d.ts +16 -5
- package/lib/services/common.js +28 -7
- package/lib/services/common.js.map +1 -1
- package/lib/services/content.d.ts +7 -1
- package/lib/services/content.js +16 -2
- package/lib/services/content.js.map +1 -1
- package/lib/services/fullTextSearch.d.ts +1 -1
- package/lib/services/fullTextSearch.js +9 -6
- package/lib/services/fullTextSearch.js.map +1 -1
- package/lib/services/landingPage.d.ts +3 -1
- package/lib/services/landingPage.js +3 -2
- package/lib/services/landingPage.js.map +1 -1
- package/lib/services/lookAlikeProductRecommendation.d.ts +3 -1
- package/lib/services/lookAlikeProductRecommendation.js +3 -2
- package/lib/services/lookAlikeProductRecommendation.js.map +1 -1
- package/lib/services/related.d.ts +7 -3
- package/lib/services/related.js +9 -6
- package/lib/services/related.js.map +1 -1
- package/lib/services/reporting.d.ts +18 -8
- package/lib/services/reporting.js +23 -15
- package/lib/services/reporting.js.map +1 -1
- package/lib/services/smartCollections.d.ts +1 -1
- package/lib/services/smartCollections.js +7 -6
- package/lib/services/smartCollections.js.map +1 -1
- package/lib/services/visualDiscovery.d.ts +5 -6
- package/lib/services/visualDiscovery.js +10 -29
- package/lib/services/visualDiscovery.js.map +1 -1
- package/lib/services/visualDiscoveryReporting.d.ts +43 -0
- package/lib/services/visualDiscoveryReporting.js +135 -0
- package/lib/services/visualDiscoveryReporting.js.map +1 -0
- package/lib/utils/location.d.ts +1 -0
- package/lib/utils/location.js +10 -0
- package/lib/utils/location.js.map +1 -1
- package/lib/utils/updateRecentSearches.d.ts +9 -0
- package/lib/utils/updateRecentSearches.js +50 -26
- package/lib/utils/updateRecentSearches.js.map +1 -1
- package/package.json +2 -2
package/lib/config.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare const RECENT_COLLECTION_PRODUCTS_KEY = "isp-recent-product-collec
|
|
|
5
5
|
export declare const RECENT_SERP_PRODUCTS_KEY = "isp-recent-product-serp";
|
|
6
6
|
export declare const RECENT_RESPONSE_SERP_PRODUCTS_KEY = "isp-recent-response-product-serp";
|
|
7
7
|
export declare const RECENT_RESPONSE_COLLECTION_PRODUCTS_KEY = "isp-recent-response-product-collection";
|
|
8
|
+
export declare const PERSONALIZED_PRODUCT_IDS = "PERSONALIZED_PRODUCT_IDS";
|
|
8
9
|
export declare const POST_LOAD_EVENT_KEY = "post-load-event";
|
|
9
10
|
export declare const SDK_DEBUG_LS_LEY = "isp-sdk-version";
|
|
10
11
|
export declare const SDK_NO_CACHING_LS_KEY = "isp-sdk-caching";
|
package/lib/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RECENT_PRODUCTS_LENGTH_LIMIT = exports.RECENT_PRODUCTS_EXPIRY_DAYS = exports.ISP_LOCAL_STORAGE_LOAD_ERROR_MSG = exports.INITIALIZATION_ERROR_MSG = exports.PROMOTED_PRODUCTS_BY_PERSONALIZATION = exports.API_ERROR_MSG = exports.POST_LOAD_WAIT_TIME = exports.MIN_RECENT_SERP_PRODUCTS = exports.MAX_RECENT_SERP_PRODUCT_LIFE = exports.MAX_RECENT_SERP_PRODUCTS_PRODUCTS = exports.MAX_RECENT_COLLECTION_PRODUCTS = exports.MAX_RECENT_PRODUCTS = exports.SESSION_TOKEN_LIFE = exports.CART_TOKEN_COOKIE_NAME = exports.CART_TOKEN_LS_KEY = exports.SDK_NO_CACHING_LS_KEY = exports.SDK_DEBUG_LS_LEY = exports.POST_LOAD_EVENT_KEY = exports.RECENT_RESPONSE_COLLECTION_PRODUCTS_KEY = exports.RECENT_RESPONSE_SERP_PRODUCTS_KEY = exports.RECENT_SERP_PRODUCTS_KEY = exports.RECENT_COLLECTION_PRODUCTS_KEY = exports.RECENT_PRODUCT_LS_KEY = exports.USER_SESSION_TOKEN_LS_KEY = exports.SESSION_TOKEN_LS_KEY = void 0;
|
|
3
|
+
exports.RECENT_PRODUCTS_LENGTH_LIMIT = exports.RECENT_PRODUCTS_EXPIRY_DAYS = exports.ISP_LOCAL_STORAGE_LOAD_ERROR_MSG = exports.INITIALIZATION_ERROR_MSG = exports.PROMOTED_PRODUCTS_BY_PERSONALIZATION = exports.API_ERROR_MSG = exports.POST_LOAD_WAIT_TIME = exports.MIN_RECENT_SERP_PRODUCTS = exports.MAX_RECENT_SERP_PRODUCT_LIFE = exports.MAX_RECENT_SERP_PRODUCTS_PRODUCTS = exports.MAX_RECENT_COLLECTION_PRODUCTS = exports.MAX_RECENT_PRODUCTS = exports.SESSION_TOKEN_LIFE = exports.CART_TOKEN_COOKIE_NAME = exports.CART_TOKEN_LS_KEY = exports.SDK_NO_CACHING_LS_KEY = exports.SDK_DEBUG_LS_LEY = exports.POST_LOAD_EVENT_KEY = exports.PERSONALIZED_PRODUCT_IDS = exports.RECENT_RESPONSE_COLLECTION_PRODUCTS_KEY = exports.RECENT_RESPONSE_SERP_PRODUCTS_KEY = exports.RECENT_SERP_PRODUCTS_KEY = exports.RECENT_COLLECTION_PRODUCTS_KEY = exports.RECENT_PRODUCT_LS_KEY = exports.USER_SESSION_TOKEN_LS_KEY = exports.SESSION_TOKEN_LS_KEY = void 0;
|
|
4
4
|
//Local Storage Keys
|
|
5
5
|
exports.SESSION_TOKEN_LS_KEY = "isp-session-token";
|
|
6
6
|
exports.USER_SESSION_TOKEN_LS_KEY = "isp-user-session-token";
|
|
@@ -9,6 +9,7 @@ exports.RECENT_COLLECTION_PRODUCTS_KEY = "isp-recent-product-collection";
|
|
|
9
9
|
exports.RECENT_SERP_PRODUCTS_KEY = "isp-recent-product-serp";
|
|
10
10
|
exports.RECENT_RESPONSE_SERP_PRODUCTS_KEY = "isp-recent-response-product-serp";
|
|
11
11
|
exports.RECENT_RESPONSE_COLLECTION_PRODUCTS_KEY = "isp-recent-response-product-collection";
|
|
12
|
+
exports.PERSONALIZED_PRODUCT_IDS = "PERSONALIZED_PRODUCT_IDS";
|
|
12
13
|
exports.POST_LOAD_EVENT_KEY = "post-load-event";
|
|
13
14
|
exports.SDK_DEBUG_LS_LEY = "isp-sdk-version";
|
|
14
15
|
exports.SDK_NO_CACHING_LS_KEY = "isp-sdk-caching";
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,oBAAoB;AACP,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAC3C,QAAA,yBAAyB,GAAG,wBAAwB,CAAC;AAErD,QAAA,qBAAqB,GAAG,+BAA+B,CAAC;AACxD,QAAA,8BAA8B,GAAG,+BAA+B,CAAC;AAEjE,QAAA,wBAAwB,GAAG,yBAAyB,CAAC;AACrD,QAAA,iCAAiC,GAAG,kCAAkC,CAAC;AACvE,QAAA,uCAAuC,GAAG,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,oBAAoB;AACP,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAC3C,QAAA,yBAAyB,GAAG,wBAAwB,CAAC;AAErD,QAAA,qBAAqB,GAAG,+BAA+B,CAAC;AACxD,QAAA,8BAA8B,GAAG,+BAA+B,CAAC;AAEjE,QAAA,wBAAwB,GAAG,yBAAyB,CAAC;AACrD,QAAA,iCAAiC,GAAG,kCAAkC,CAAC;AACvE,QAAA,uCAAuC,GAAG,wCAAwC,CAAC;AACnF,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AAExC,QAAA,gBAAgB,GAAG,iBAAiB,CAAC;AACrC,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAE1C,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AACrC,QAAA,sBAAsB,GAAG,MAAM,CAAA;AAE5C,WAAW;AACE,QAAA,kBAAkB,GAAG,IAAI,CAAC;AAE1B,QAAA,mBAAmB,GAAG,EAAE,CAAC;AACzB,QAAA,8BAA8B,GAAG,CAAC,CAAC;AAEnC,QAAA,iCAAiC,GAAG,EAAE,CAAC;AACvC,QAAA,4BAA4B,GAAG,GAAG,CAAC;AACnC,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAE7B,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAE3B,QAAA,aAAa,GAAG,8GAAuG,CAAC;AAExH,QAAA,oCAAoC,GAAG,0CAA0C,CAAC;AAElF,QAAA,wBAAwB,GAAG,gDAA2C,CAAC;AAEvE,QAAA,gCAAgC,GAAG,6DAAwD,CAAC;AAE5F,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAChC,QAAA,4BAA4B,GAAG,EAAE,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -40,7 +40,7 @@ window._debugSDKVersion = function (version) {
|
|
|
40
40
|
};
|
|
41
41
|
// Immediately-invoked function to initialize the SDK or load the debug version
|
|
42
42
|
(function () {
|
|
43
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
43
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
44
44
|
var testVersion = localStorage.getItem(utilities_1.FSKeys.ISP_SDK_TEST_VERSION_HANDLE);
|
|
45
45
|
var testVersionLoaded = localStorage.getItem(utilities_1.FSKeys.ISP_SDK_TEST_VERSION_LOADED);
|
|
46
46
|
if (testVersion && !testVersionLoaded) {
|
|
@@ -62,6 +62,7 @@ window._debugSDKVersion = function (version) {
|
|
|
62
62
|
uuid: (_k = (_j = window.__fast_simon_sdk_config) === null || _j === void 0 ? void 0 : _j.store_uuid) !== null && _k !== void 0 ? _k : (_l = window.__fast_simon_sdk_config) === null || _l === void 0 ? void 0 : _l.uuid,
|
|
63
63
|
type: (_m = window.__fast_simon_sdk_config) === null || _m === void 0 ? void 0 : _m.type,
|
|
64
64
|
withAttributes: (_o = window.__fast_simon_sdk_config) === null || _o === void 0 ? void 0 : _o.withAttributes,
|
|
65
|
+
channel: (_p = window.__fast_simon_sdk_config) === null || _p === void 0 ? void 0 : _p.channel,
|
|
65
66
|
onReady: function () {
|
|
66
67
|
var _a;
|
|
67
68
|
(_a = window.__fast_simon_sdk_config) === null || _a === void 0 ? void 0 : _a.onReady();
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAmC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AutocompleteResults, CollectionsPersonalization } from "./common";
|
|
2
2
|
import { Product } from "./fullTextSearch";
|
|
3
|
+
import { ArticleResponse } from "../services/content";
|
|
3
4
|
export interface DashboardResponse extends DashboardKeys {
|
|
4
5
|
cdn_cache_key: number;
|
|
5
6
|
platform: string;
|
|
@@ -71,3 +72,10 @@ export type AutocompleteCallback = ({}: {
|
|
|
71
72
|
action: "instantSearch";
|
|
72
73
|
payload: AutocompleteResults;
|
|
73
74
|
}) => void;
|
|
75
|
+
export type AutocompleteContentCallback = ({}: {
|
|
76
|
+
action: "instantSearchArticles";
|
|
77
|
+
payload: {
|
|
78
|
+
articles: ArticleResponse[];
|
|
79
|
+
query: string;
|
|
80
|
+
};
|
|
81
|
+
}) => void;
|
package/lib/models/common.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { AutocompleteCallback, DashboardKeys, FastCategory, FastTurbolinks, PopularSearch } from "./autocomplete";
|
|
1
|
+
import { AutocompleteCallback, AutocompleteContentCallback, DashboardKeys, FastCategory, FastTurbolinks, PopularSearch } from "./autocomplete";
|
|
2
2
|
import { Facet, fullTextCallback, fullTextFacetsCallback, fullTextProductsCallback, Narrow, Product, SortBy } from "./fullTextSearch";
|
|
3
3
|
import { CategoryAncestor, RelatedCategory, smartCollectionsCallback, smartCollectionsResults } from "./smartCollections";
|
|
4
4
|
import { Report } from "./events";
|
|
5
5
|
import { Specs, SRC_TYPES, WidgetCallback } from "./related";
|
|
6
6
|
import { ContentSearchProps } from "./content";
|
|
7
7
|
import { inventoryCallback } from "./productsInventory";
|
|
8
|
-
import { AppReference, DiscoveryCallback, ImageSearchCallback, ImageSendCallback, ProductsByImageCallback, ProductsDiscoveryCallback, ResultType } from "./visualDiscovery";
|
|
8
|
+
import { AppReference, DiscoveryCallback, ImageSearchCallback, ImageSendCallback, ProductsByImageCallback, ProductsDiscoveryCallback, ResultType, SimilarStylesCallback } from "./visualDiscovery";
|
|
9
|
+
import { DiscoveryProductVisitType } from "../services/visualDiscoveryReporting";
|
|
10
|
+
import { ArticleResponse } from "../services/content";
|
|
9
11
|
export type AppType = "SPA" | "MPA";
|
|
10
12
|
export type SDKStatus = "loading" | "error" | "ready";
|
|
11
13
|
type ContentPage = number;
|
|
@@ -21,6 +23,7 @@ export interface SDKData {
|
|
|
21
23
|
popularProducts: Product[];
|
|
22
24
|
categories: FastCategory[];
|
|
23
25
|
turbolinks: FastTurbolinks[];
|
|
26
|
+
articles: ArticleResponse[];
|
|
24
27
|
contentData: Record<ContentPage, ContentCursor>;
|
|
25
28
|
withProductVariants?: boolean;
|
|
26
29
|
withAttributes?: boolean;
|
|
@@ -33,6 +36,7 @@ export interface SDKData {
|
|
|
33
36
|
personalizedProducts?: string | undefined;
|
|
34
37
|
collectionsPersonalization?: CollectionsPersonalization;
|
|
35
38
|
searchPersonalization?: boolean;
|
|
39
|
+
channel?: Channel;
|
|
36
40
|
}
|
|
37
41
|
export interface AutocompleteResults {
|
|
38
42
|
totalResults: number;
|
|
@@ -93,6 +97,7 @@ export interface instantSearchProps {
|
|
|
93
97
|
withAttributes?: boolean;
|
|
94
98
|
withCategories?: boolean;
|
|
95
99
|
withProductTypes?: boolean;
|
|
100
|
+
articlesCallback?: AutocompleteContentCallback;
|
|
96
101
|
}
|
|
97
102
|
export interface FullTextSearchProps {
|
|
98
103
|
term: string;
|
|
@@ -216,6 +221,7 @@ export interface SDK {
|
|
|
216
221
|
sendImage: ({}: ImageSendInternalProps) => void;
|
|
217
222
|
ProductsByImage: ({}: ProductsByImageInternalProps) => void;
|
|
218
223
|
visualSearch: ({}: ImageSearchInternalProps) => void;
|
|
224
|
+
similarStyles: ({}: SimilarStylesInternalProps) => void;
|
|
219
225
|
}
|
|
220
226
|
export declare const defaultSDKTemp: SDKTemp;
|
|
221
227
|
export declare const defaultDashboardData: DashboardKeys;
|
|
@@ -250,11 +256,20 @@ export interface ProductsByImageInternalProps {
|
|
|
250
256
|
callback: ProductsByImageCallback;
|
|
251
257
|
reference?: AppReference;
|
|
252
258
|
imageBase64?: string | null;
|
|
259
|
+
bboxCallback: ProductsByImageCallback;
|
|
260
|
+
itemName?: string | undefined;
|
|
253
261
|
}
|
|
254
262
|
export interface ImageSearchInternalProps {
|
|
255
263
|
fileData: File;
|
|
256
264
|
itemName: string | undefined;
|
|
257
265
|
callback: ImageSearchCallback;
|
|
266
|
+
bboxCallback: ImageSearchCallback;
|
|
267
|
+
}
|
|
268
|
+
export interface SimilarStylesInternalProps {
|
|
269
|
+
productId: string;
|
|
270
|
+
imageUrl: string;
|
|
271
|
+
cdnCacheKey: string;
|
|
272
|
+
callback: SimilarStylesCallback;
|
|
258
273
|
}
|
|
259
274
|
export interface CollectionsPersonalization {
|
|
260
275
|
active: boolean;
|
|
@@ -264,4 +279,25 @@ export interface CollectionsPersonalization {
|
|
|
264
279
|
recencyLimit: number;
|
|
265
280
|
maxRecencyLimit: number;
|
|
266
281
|
}
|
|
282
|
+
export interface DiscoveryOpenInternalProps {
|
|
283
|
+
reference: AppReference;
|
|
284
|
+
}
|
|
285
|
+
export interface DiscoveryProductVisitInternalProps {
|
|
286
|
+
type: DiscoveryProductVisitType;
|
|
287
|
+
origin: string;
|
|
288
|
+
productId: string;
|
|
289
|
+
position: number;
|
|
290
|
+
reference: AppReference;
|
|
291
|
+
}
|
|
292
|
+
export interface ProductAddedToCartPropsInternalProps {
|
|
293
|
+
origin: string;
|
|
294
|
+
productId: string;
|
|
295
|
+
position: number;
|
|
296
|
+
reference: AppReference;
|
|
297
|
+
}
|
|
298
|
+
export interface GalleryImageClickedPropsInternalProps {
|
|
299
|
+
imageId: string;
|
|
300
|
+
reference: AppReference;
|
|
301
|
+
}
|
|
302
|
+
export type Channel = "tapcart";
|
|
267
303
|
export {};
|
package/lib/models/common.js
CHANGED
package/lib/models/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/models/common.ts"],"names":[],"mappings":";;;AAaA,oCAAsD;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/models/common.ts"],"names":[],"mappings":";;;AAaA,oCAAsD;AAkPzC,QAAA,cAAc,GAAY;IACnC,YAAY,EAAE;QACV,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,EAAE;KACZ;IACD,cAAc,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,CAAC;KAClB;IACD,gBAAgB,EAAE;QACd,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,CAAC;QACf,IAAI,EAAE,EAAE;KACX;IACD,WAAW,EAAE;QACT,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,CAAC;KAClB;CACJ,CAAC;AAEW,QAAA,oBAAoB,GAAkB;IAC/C,QAAQ,EAAE,EAAE;IACZ,8BAA8B,EAAE,KAAK;IACrC,kCAAkC,EAAE,CAAC;IACrC,gCAAgC,EAAE,CAAC;IACnC,uBAAuB,EAAE,CAAC;IAC1B,aAAa,EAAE,IAAI;IACnB,+BAA+B,EAAE,KAAK;IACtC,iBAAiB,EAAE,EAAE;IACrB,4BAA4B,EAAE,EAAE;IAChC,8BAA8B,EAAE,KAAK;IACrC,UAAU,EAAE,KAAK;IACjB,mCAAmC,EAAE,KAAK;CAC7C,CAAC;AAEW,QAAA,cAAc,GAAY;IACnC,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE;IAClB,YAAY,EAAE;QACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;KACpB;IACD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,kCAAyB,CAAC,IAAI,EAAE,EAAE,wCAAwC;IAC1G,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,4BAAoB;IAC/B,eAAe,EAAE,EAAE;IACnB,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAC,CAAC,EAAE,EAAE,EAAC;IACpB,mBAAmB,EAAE,EAAE;CAC1B,CAAC"}
|
package/lib/models/content.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { Channel } from "./common";
|
|
1
2
|
export interface ContentSearchServiceProps {
|
|
2
3
|
storeID: number;
|
|
3
4
|
uuid: string;
|
|
4
5
|
cdn: number;
|
|
5
6
|
query: string;
|
|
6
7
|
cursor?: string;
|
|
8
|
+
channel?: Channel;
|
|
7
9
|
}
|
|
8
10
|
export type ContentItem = [contentTitle, contentURL, contentDescription, null, contentImage];
|
|
9
11
|
type contentTitle = string;
|
package/lib/models/events.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface Report<T> {
|
|
|
11
11
|
payload: any;
|
|
12
12
|
}) => void;
|
|
13
13
|
}
|
|
14
|
-
export type EventName = "instantsearch-product" | "instantsearch-popular-search" | "instantsearch-category" | "search" | "collection" | "productFromSearch" | "productFromCollection" | "promoTileFromSearch" | "promoTileFromCollection" | "productFromRecommendation" | "productDirect" | "lookALikeViewSerp" | "quickViewSerp" | "lookALikeViewCollection" | "quickViewCollection" | "productFromLookALike" | "productFromQuickView" | "cartVisited" | "cartPerformed" | "collectionPreformedFromTurbolink";
|
|
14
|
+
export type EventName = "instantsearch-product" | "instantsearch-popular-search" | "instantsearch-category" | "search" | "collection" | "productFromSearch" | "productFromCollection" | "promoTileFromSearch" | "promoTileFromCollection" | "productFromRecommendation" | "productDirect" | "lookALikeViewSerp" | "quickViewSerp" | "lookALikeViewCollection" | "quickViewCollection" | "productFromLookALike" | "productFromQuickView" | "cartVisited" | "cartPerformed" | "collectionPreformedFromTurbolink" | "discoveryOpen" | "discoveryProductVisit" | "vsProductAddedToCart" | "galleryImageClicked";
|
|
15
15
|
export interface ProductSeenAutocompleteData {
|
|
16
16
|
query: string;
|
|
17
17
|
productID: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Currency } from "./autocomplete";
|
|
2
2
|
import { CategoryAncestor } from "./smartCollections";
|
|
3
|
-
import { FullTextResults } from "./common";
|
|
3
|
+
import { Channel, FullTextResults } from "./common";
|
|
4
4
|
export interface fullTextSearchResponse {
|
|
5
5
|
items: Product[];
|
|
6
6
|
facets: Facet[];
|
|
@@ -35,6 +35,7 @@ export interface fullTextSearchProps {
|
|
|
35
35
|
facetRequired?: FacetRequired;
|
|
36
36
|
withAttributes?: boolean;
|
|
37
37
|
recent?: string;
|
|
38
|
+
recentTimestamps?: Record<string, number>;
|
|
38
39
|
searchWithinSearch?: string;
|
|
39
40
|
segments?: string[];
|
|
40
41
|
hasShopifyMarkets?: boolean;
|
|
@@ -42,7 +43,7 @@ export interface fullTextSearchProps {
|
|
|
42
43
|
withProductTypes?: boolean;
|
|
43
44
|
abTestingVariations?: {
|
|
44
45
|
[key: string]: {
|
|
45
|
-
[key: string]:
|
|
46
|
+
[key: string]: any;
|
|
46
47
|
};
|
|
47
48
|
};
|
|
48
49
|
disableMerchandising?: boolean;
|
|
@@ -51,6 +52,7 @@ export interface fullTextSearchProps {
|
|
|
51
52
|
isPersonalizedFiltersActive?: boolean;
|
|
52
53
|
disableTurbolinks?: boolean;
|
|
53
54
|
searchPersonalization?: boolean;
|
|
55
|
+
channel?: Channel;
|
|
54
56
|
}
|
|
55
57
|
export type SortBy = "price_min_to_max" | "price_max_to_min" | "creation_date" | "creation_date_oldest" | "popularity" | "reviews" | "a_to_z" | "z_to_a" | 'relevency';
|
|
56
58
|
export declare function isSortBy(sort: string | undefined): sort is SortBy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullTextSearch.js","sourceRoot":"","sources":["../../src/models/fullTextSearch.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"fullTextSearch.js","sourceRoot":"","sources":["../../src/models/fullTextSearch.ts"],"names":[],"mappings":";;;AAsEA,4BAMC;AAND,SAAgB,QAAQ,CAAC,IAAwB;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxK,CAAC;AAQD,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,6EAAgB,CAAA;IAChB,yFAAsB,CAAA;IACtB,qFAAoB,CAAA;IACpB,mFAAmB,CAAA;AACvB,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FacetRequired, Narrow, Product, RelatedCategoryServer, SortBy } from "./fullTextSearch";
|
|
2
2
|
import { ServerFacet } from "@fast-simon/utilities";
|
|
3
|
-
import { CollectionsPersonalization } from "./common";
|
|
3
|
+
import { Channel, CollectionsPersonalization } from "./common";
|
|
4
4
|
export interface SmartCollectionsResponse {
|
|
5
5
|
ancestor_categories: CategoryAncestor[];
|
|
6
6
|
category_description: string;
|
|
@@ -43,6 +43,7 @@ export interface smartCollections {
|
|
|
43
43
|
facetRequired?: FacetRequired;
|
|
44
44
|
withAttributes?: boolean;
|
|
45
45
|
recent?: string;
|
|
46
|
+
recentTimestamps?: Record<string, number>;
|
|
46
47
|
rec?: boolean;
|
|
47
48
|
searchWithinSearch?: string;
|
|
48
49
|
segments?: string[];
|
|
@@ -60,6 +61,7 @@ export interface smartCollections {
|
|
|
60
61
|
isPersonalizedFiltersActive?: boolean;
|
|
61
62
|
disableTurbolinks?: boolean;
|
|
62
63
|
collectionPersonalization?: CollectionsPersonalization;
|
|
64
|
+
channel?: Channel;
|
|
63
65
|
}
|
|
64
66
|
export interface smartCollectionsResults {
|
|
65
67
|
ancestors: CategoryAncestor[];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Product } from "./fullTextSearch";
|
|
2
2
|
import { Box } from "../utils/bindingBoxes";
|
|
3
|
+
import { Channel } from "./common";
|
|
3
4
|
export interface RequestKey {
|
|
4
5
|
uuid: string;
|
|
5
6
|
storeID: number;
|
|
@@ -14,6 +15,7 @@ export declare enum ResultType {
|
|
|
14
15
|
export interface ExtendedRequestKey extends RequestKey {
|
|
15
16
|
userSessionID: string;
|
|
16
17
|
sessionToken: string | null | undefined;
|
|
18
|
+
channel?: Channel;
|
|
17
19
|
}
|
|
18
20
|
export interface FetchProductsResponse {
|
|
19
21
|
image_id: string;
|
|
@@ -35,6 +37,12 @@ export interface VisualSearchProductResponse {
|
|
|
35
37
|
method: string;
|
|
36
38
|
bbox?: (ApiBoundingBox[] | Box[]);
|
|
37
39
|
}
|
|
40
|
+
export interface VisualSearchProductResponse {
|
|
41
|
+
image_id: string;
|
|
42
|
+
items: Product[];
|
|
43
|
+
method: string;
|
|
44
|
+
bbox?: (ApiBoundingBox[] | Box[]);
|
|
45
|
+
}
|
|
38
46
|
export interface DiscoveryImage {
|
|
39
47
|
image_id: string;
|
|
40
48
|
likes: number;
|
|
@@ -47,7 +55,7 @@ export interface ShopTheLookResponse extends ShopTheLookData {
|
|
|
47
55
|
similar?: Product[];
|
|
48
56
|
}
|
|
49
57
|
export interface ShopTheLookData {
|
|
50
|
-
bbox?: ApiBoundingBox[];
|
|
58
|
+
bbox?: ApiBoundingBox[] | Box[];
|
|
51
59
|
complete_the_look?: {
|
|
52
60
|
[key: string]: Product[];
|
|
53
61
|
};
|
|
@@ -61,6 +69,7 @@ export interface ApiBoundingBox {
|
|
|
61
69
|
export interface FetchProductsDiscoveryParams extends RequestKey {
|
|
62
70
|
imageID: string;
|
|
63
71
|
mode: ResultType;
|
|
72
|
+
channel?: Channel;
|
|
64
73
|
}
|
|
65
74
|
export interface FetchDiscoveryParams extends RequestKey {
|
|
66
75
|
mode: ResultType;
|
|
@@ -70,17 +79,21 @@ export interface FetchProductsDiscoveryParamsUserImageParams extends ExtendedReq
|
|
|
70
79
|
}
|
|
71
80
|
export interface FetchProductsDiscoveryParamsUserImageWithLatencyParams extends ExtendedRequestKey {
|
|
72
81
|
imageID: string;
|
|
82
|
+
method?: string | undefined;
|
|
83
|
+
channel?: Channel;
|
|
73
84
|
}
|
|
74
85
|
export interface SendImageParams extends ExtendedRequestKey {
|
|
75
86
|
itemName?: string;
|
|
76
87
|
base64String?: string | null;
|
|
88
|
+
channel?: Channel;
|
|
77
89
|
}
|
|
78
90
|
export interface FetchShopTheLookProductsParams {
|
|
79
91
|
uuid: string;
|
|
80
92
|
storeID: number;
|
|
81
|
-
productId:
|
|
93
|
+
productId: string;
|
|
82
94
|
imageUrl: string;
|
|
83
95
|
cdnCacheKey: string;
|
|
96
|
+
channel?: Channel;
|
|
84
97
|
}
|
|
85
98
|
export type ProductsDiscoveryCallback = ({}: {
|
|
86
99
|
action: "ProductsDiscovery" | "Error";
|
|
@@ -102,6 +115,10 @@ export type ImageSearchCallback = ({}: {
|
|
|
102
115
|
action: "ImageSearch" | "Error";
|
|
103
116
|
payload: VisualSearchProductResponse | string | undefined;
|
|
104
117
|
}) => void;
|
|
118
|
+
export type SimilarStylesCallback = ({}: {
|
|
119
|
+
action: "SimilarStyles" | "Error";
|
|
120
|
+
payload: ShopTheLookResponse | string | undefined;
|
|
121
|
+
}) => void;
|
|
105
122
|
export interface VisualSearchUsedProps extends ExtendedRequestKey {
|
|
106
123
|
imageID: string;
|
|
107
124
|
products: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualDiscovery.js","sourceRoot":"","sources":["../../src/models/visualDiscovery.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"visualDiscovery.js","sourceRoot":"","sources":["../../src/models/visualDiscovery.ts"],"names":[],"mappings":";;;AASA,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;AACvB,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAkID,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,2BAAW,CAAA;IACX,mCAAmB,CAAA;AACvB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AACD,IAAY,eAWX;AAXD,WAAY,eAAe;IACvB,8EAAqB,CAAA;IACrB,wEAAkB,CAAA;IAClB,kFAAuB,CAAA;IACvB,8EAAqB,CAAA;IACrB,wFAA0B,CAAA;IAC1B,oFAAwB,CAAA;IACxB,kFAAuB,CAAA;IACvB,wFAA0B,CAAA;IAC1B,oFAAwB,CAAA;IACxB,kFAAuB,CAAA;AAC3B,CAAC,EAXW,eAAe,+BAAf,eAAe,QAW1B"}
|
|
@@ -14,7 +14,7 @@ var contentSearch = function (_a) {
|
|
|
14
14
|
storeID: storeID,
|
|
15
15
|
cdn: cdnKey,
|
|
16
16
|
query: query,
|
|
17
|
-
cursor: cursor !== null && cursor !== void 0 ? cursor : undefined
|
|
17
|
+
cursor: cursor !== null && cursor !== void 0 ? cursor : undefined, channel: self.data.channel
|
|
18
18
|
}).then(function (response) {
|
|
19
19
|
contentData[page] = response.content_cursor;
|
|
20
20
|
callback({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sections/contentSearch/index.ts"],"names":[],"mappings":";;;AAEA,kDAA+C;AAMxC,IAAM,aAAa,GAAG,UAAC,EAAwC;QAAvC,IAAI,UAAA,EAAE,YAAQ,EAAR,IAAI,mBAAG,CAAC,KAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA;IACpD,IAAA,KAAuC,IAAI,CAAC,IAAI,EAA/C,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,MAAM,YAAA,EAAE,WAAW,iBAAa,CAAC;IAEvD,IAAM,MAAM,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,CAAW,CAAC;IAE/C,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,iBAAO,CAAC,MAAM,CAAC;QACX,IAAI,MAAA;QAAE,OAAO,SAAA;QAAE,GAAG,EAAE,MAAM;QAAE,KAAK,OAAA;QAAE,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,SAAS;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sections/contentSearch/index.ts"],"names":[],"mappings":";;;AAEA,kDAA+C;AAMxC,IAAM,aAAa,GAAG,UAAC,EAAwC;QAAvC,IAAI,UAAA,EAAE,YAAQ,EAAR,IAAI,mBAAG,CAAC,KAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA;IACpD,IAAA,KAAuC,IAAI,CAAC,IAAI,EAA/C,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,MAAM,YAAA,EAAE,WAAW,iBAAa,CAAC;IAEvD,IAAM,MAAM,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,CAAW,CAAC;IAE/C,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,iBAAO,CAAC,MAAM,CAAC;QACX,IAAI,MAAA;QAAE,OAAO,SAAA;QAAE,GAAG,EAAE,MAAM;QAAE,KAAK,OAAA;QAAE,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;KAC7F,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ;QACZ,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC;QAE5C,QAAQ,CAAC;YACL,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE;gBACL,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvF,IAAI,MAAA;aACP;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAtBY,QAAA,aAAa,iBAsBzB;AAED,IAAM,oBAAoB,GAAG,UAAC,OAAsB;IAChD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAC,OAAO;QACvB,IAAI,MAAM,GAAkB;YACxB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACjB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;SAClB,CAAC;QAEF,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;QAED,OAAO,MAAM,CAAA;IACjB,CAAC,CAAC,CAAC;AACP,CAAC,CAAA"}
|