@faststore/api 3.0.1 → 3.0.2
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/dist/cjs/package.json +3 -3
- package/dist/cjs/src/__generated__/schema.d.ts +2 -0
- package/dist/cjs/src/__generated__/schema.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/search/index.js +30 -4
- package/dist/cjs/src/platforms/vtex/clients/search/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/searchResult.js +2 -4
- package/dist/cjs/src/platforms/vtex/resolvers/searchResult.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/utils/facets.d.ts +8 -0
- package/dist/cjs/src/platforms/vtex/utils/facets.js +6 -6
- package/dist/cjs/src/platforms/vtex/utils/facets.js.map +1 -1
- package/dist/cjs/src/typeDefs/query.graphql +4 -0
- package/dist/esm/package.json +3 -3
- package/dist/esm/src/__generated__/schema.d.ts +2 -0
- package/dist/esm/src/__generated__/schema.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/search/index.js +30 -4
- package/dist/esm/src/platforms/vtex/clients/search/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/searchResult.js +2 -4
- package/dist/esm/src/platforms/vtex/resolvers/searchResult.js.map +1 -1
- package/dist/esm/src/platforms/vtex/utils/facets.d.ts +8 -0
- package/dist/esm/src/platforms/vtex/utils/facets.js +6 -6
- package/dist/esm/src/platforms/vtex/utils/facets.js.map +1 -1
- package/dist/esm/src/typeDefs/query.graphql +4 -0
- package/package.json +2 -2
- package/src/__generated__/schema.ts +2 -0
- package/src/platforms/vtex/clients/search/index.ts +51 -5
- package/src/platforms/vtex/resolvers/searchResult.ts +4 -8
- package/src/platforms/vtex/utils/facets.ts +16 -6
- package/src/typeDefs/query.graphql +4 -0
package/dist/cjs/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/api",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/cjs/src/index.js",
|
|
6
6
|
"typings": "dist/esm/src/index.d.ts",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@envelop/core": "^2.6.0",
|
|
53
|
-
"@faststore/eslint-config": "^3.0.
|
|
54
|
-
"@faststore/shared": "^3.0.
|
|
53
|
+
"@faststore/eslint-config": "^3.0.1",
|
|
54
|
+
"@faststore/shared": "^3.0.1",
|
|
55
55
|
"@graphql-codegen/cli": "2.2.0",
|
|
56
56
|
"@graphql-codegen/typescript": "2.2.2",
|
|
57
57
|
"@types/express": "^4.17.16",
|
|
@@ -465,6 +465,8 @@ export type QueryShippingArgs = {
|
|
|
465
465
|
/** Search result. */
|
|
466
466
|
export type SearchMetadata = {
|
|
467
467
|
__typename?: 'SearchMetadata';
|
|
468
|
+
/** Indicates how the search engine corrected the misspelled word by using fuzzy logic. */
|
|
469
|
+
fuzzy: Scalars['String'];
|
|
468
470
|
/** Indicates if the search term was misspelled. */
|
|
469
471
|
isTermMisspelled: Scalars['Boolean'];
|
|
470
472
|
/** Logical operator used to run the search. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/__generated__/schema.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/__generated__/schema.ts"],"names":[],"mappings":";;AAgvBC,CAAC;AA+DD,CAAC;AAgTD,CAAC;AAOD,CAAC"}
|
|
@@ -3,11 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.IntelligentSearch = exports.isFacetBoolean = void 0;
|
|
4
4
|
const fetch_1 = require("../fetch");
|
|
5
5
|
const cookies_1 = require("../../utils/cookies");
|
|
6
|
+
// channel keys
|
|
6
7
|
const POLICY_KEY = 'trade-policy';
|
|
7
8
|
const REGION_KEY = 'region-id';
|
|
8
|
-
|
|
9
|
+
// search parameters
|
|
10
|
+
const FUZZY_KEY = 'fuzzy';
|
|
11
|
+
const OPERATOR_KEY = 'operator';
|
|
12
|
+
const EXTRA_FACETS_KEYS = new Set([
|
|
13
|
+
POLICY_KEY,
|
|
14
|
+
REGION_KEY,
|
|
15
|
+
FUZZY_KEY,
|
|
16
|
+
OPERATOR_KEY,
|
|
17
|
+
]);
|
|
9
18
|
const isFacetBoolean = (facet) => facet.type === 'TEXT';
|
|
10
19
|
exports.isFacetBoolean = isFacetBoolean;
|
|
20
|
+
const isFuzzyFacet = (facet) => {
|
|
21
|
+
return (facet.key === 'fuzzy' &&
|
|
22
|
+
(facet.value === '0' || facet.value === '1' || facet.value === 'auto'));
|
|
23
|
+
};
|
|
24
|
+
const isOperatorFacet = (facet) => {
|
|
25
|
+
return (facet.key === 'operator' && (facet.value === 'and' || facet.value === 'or'));
|
|
26
|
+
};
|
|
11
27
|
const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx) => {
|
|
12
28
|
const base = `https://${account}.${environment}.com.br/api/io`;
|
|
13
29
|
const storeCookies = (0, cookies_1.getStoreCookie)(ctx);
|
|
@@ -36,7 +52,7 @@ const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx)
|
|
|
36
52
|
};
|
|
37
53
|
};
|
|
38
54
|
const addDefaultFacets = (facets) => {
|
|
39
|
-
const withDefaultFacets = facets.filter(({ key }) => !
|
|
55
|
+
const withDefaultFacets = facets.filter(({ key }) => !EXTRA_FACETS_KEYS.has(key));
|
|
40
56
|
const policyFacet = facets.find(({ key }) => key === POLICY_KEY) ?? getPolicyFacet();
|
|
41
57
|
const regionFacet = facets.find(({ key }) => key === REGION_KEY) ?? getRegionFacet();
|
|
42
58
|
if (policyFacet !== null) {
|
|
@@ -47,13 +63,22 @@ const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx)
|
|
|
47
63
|
}
|
|
48
64
|
return withDefaultFacets;
|
|
49
65
|
};
|
|
50
|
-
const
|
|
66
|
+
const addSearchParamsFacets = (facets, params) => {
|
|
67
|
+
const fuzzyFacet = facets.find(({ key }) => key === FUZZY_KEY) ?? null;
|
|
68
|
+
const operatorFacet = facets.find(({ key }) => key === OPERATOR_KEY) ?? null;
|
|
69
|
+
if (fuzzyFacet && isFuzzyFacet(fuzzyFacet)) {
|
|
70
|
+
params.append(FUZZY_KEY, fuzzyFacet.value);
|
|
71
|
+
}
|
|
72
|
+
if (operatorFacet && isOperatorFacet(operatorFacet)) {
|
|
73
|
+
params.append(OPERATOR_KEY, operatorFacet.value);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const search = ({ query = '', page, count, sort = '', selectedFacets = [], type, }) => {
|
|
51
77
|
const params = new URLSearchParams({
|
|
52
78
|
page: (page + 1).toString(),
|
|
53
79
|
count: count.toString(),
|
|
54
80
|
query,
|
|
55
81
|
sort,
|
|
56
|
-
fuzzy,
|
|
57
82
|
locale: ctx.storage.locale,
|
|
58
83
|
});
|
|
59
84
|
if (hideUnavailableItems !== undefined) {
|
|
@@ -62,6 +87,7 @@ const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx)
|
|
|
62
87
|
const pathname = addDefaultFacets(selectedFacets)
|
|
63
88
|
.map(({ key, value }) => `${key}/${value}`)
|
|
64
89
|
.join('/');
|
|
90
|
+
addSearchParamsFacets(selectedFacets, params);
|
|
65
91
|
return (0, fetch_1.fetchAPI)(`${base}/_v/api/intelligent-search/${type}/${pathname}?${params.toString()}`, undefined, { storeCookies });
|
|
66
92
|
};
|
|
67
93
|
const products = (args) => search({ ...args, type: 'product_search' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/platforms/vtex/clients/search/index.ts"],"names":[],"mappings":";;;AAAA,oCAAmC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/platforms/vtex/clients/search/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,14 +83,12 @@ exports.StoreSearchResult = {
|
|
|
83
83
|
.filter((facet) => !isCollectionPage || !isRootFacet(facet, isDepartment, isBrand));
|
|
84
84
|
return filteredFacets;
|
|
85
85
|
},
|
|
86
|
-
metadata: async ({
|
|
87
|
-
if (!searchArgs.query) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
86
|
+
metadata: async ({ productSearchPromise }) => {
|
|
90
87
|
const productSearchResult = await productSearchPromise;
|
|
91
88
|
return {
|
|
92
89
|
isTermMisspelled: productSearchResult.correction?.misspelled ?? false,
|
|
93
90
|
logicalOperator: productSearchResult.operator,
|
|
91
|
+
fuzzy: productSearchResult.fuzzy,
|
|
94
92
|
};
|
|
95
93
|
},
|
|
96
94
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchResult.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/searchResult.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAKhD,sCAA0C;AAO1C,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,YAAqB,EAAE,OAAgB,EAAE,EAAE,CAC5E,YAAY;IACV,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY;IAC5B,CAAC,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"searchResult.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/searchResult.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,14 @@ export interface SelectedFacet {
|
|
|
3
3
|
key: string;
|
|
4
4
|
value: string;
|
|
5
5
|
}
|
|
6
|
+
export type FuzzyFacet = {
|
|
7
|
+
key: 'fuzzy';
|
|
8
|
+
value: '0' | '1' | 'auto';
|
|
9
|
+
};
|
|
10
|
+
export type OperatorFacet = {
|
|
11
|
+
key: 'operator';
|
|
12
|
+
value: 'and' | 'or';
|
|
13
|
+
};
|
|
6
14
|
export interface CrossSellingFacet {
|
|
7
15
|
key: keyof typeof FACET_CROSS_SELLING_MAP;
|
|
8
16
|
value: string;
|
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.findChannel = exports.findLocale = exports.findSkuId = exports.findSlug = exports.findCrossSelling = exports.isCrossSelling = exports.parseRange = exports.transformSelectedFacet = exports.FACET_CROSS_SELLING_MAP = void 0;
|
|
4
4
|
const errors_1 = require("../../errors");
|
|
5
5
|
exports.FACET_CROSS_SELLING_MAP = {
|
|
6
|
-
buy:
|
|
7
|
-
view:
|
|
8
|
-
similars:
|
|
9
|
-
viewAndBought:
|
|
10
|
-
accessories:
|
|
11
|
-
suggestions:
|
|
6
|
+
buy: 'whoboughtalsobought',
|
|
7
|
+
view: 'whosawalsosaw',
|
|
8
|
+
similars: 'similars',
|
|
9
|
+
viewAndBought: 'whosawalsobought',
|
|
10
|
+
accessories: 'accessories',
|
|
11
|
+
suggestions: 'suggestions',
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
14
|
* Transform facets from the store to VTEX platform facets.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facets.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/facets.ts"],"names":[],"mappings":";;;AACA,yCAA8C;
|
|
1
|
+
{"version":3,"file":"facets.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/facets.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/api",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/cjs/src/index.js",
|
|
6
6
|
"typings": "dist/esm/src/index.d.ts",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@envelop/core": "^2.6.0",
|
|
53
|
-
"@faststore/eslint-config": "^3.0.
|
|
54
|
-
"@faststore/shared": "^3.0.
|
|
53
|
+
"@faststore/eslint-config": "^3.0.1",
|
|
54
|
+
"@faststore/shared": "^3.0.1",
|
|
55
55
|
"@graphql-codegen/cli": "2.2.0",
|
|
56
56
|
"@graphql-codegen/typescript": "2.2.2",
|
|
57
57
|
"@types/express": "^4.17.16",
|
|
@@ -465,6 +465,8 @@ export type QueryShippingArgs = {
|
|
|
465
465
|
/** Search result. */
|
|
466
466
|
export type SearchMetadata = {
|
|
467
467
|
__typename?: 'SearchMetadata';
|
|
468
|
+
/** Indicates how the search engine corrected the misspelled word by using fuzzy logic. */
|
|
469
|
+
fuzzy: Scalars['String'];
|
|
468
470
|
/** Indicates if the search term was misspelled. */
|
|
469
471
|
isTermMisspelled: Scalars['Boolean'];
|
|
470
472
|
/** Logical operator used to run the search. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/__generated__/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/__generated__/schema.ts"],"names":[],"mappings":"AAgvBC,CAAC;AA+DD,CAAC;AAgTD,CAAC;AAOD,CAAC"}
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import { fetchAPI } from '../fetch';
|
|
2
2
|
import { getStoreCookie } from '../../utils/cookies';
|
|
3
|
+
// channel keys
|
|
3
4
|
const POLICY_KEY = 'trade-policy';
|
|
4
5
|
const REGION_KEY = 'region-id';
|
|
5
|
-
|
|
6
|
+
// search parameters
|
|
7
|
+
const FUZZY_KEY = 'fuzzy';
|
|
8
|
+
const OPERATOR_KEY = 'operator';
|
|
9
|
+
const EXTRA_FACETS_KEYS = new Set([
|
|
10
|
+
POLICY_KEY,
|
|
11
|
+
REGION_KEY,
|
|
12
|
+
FUZZY_KEY,
|
|
13
|
+
OPERATOR_KEY,
|
|
14
|
+
]);
|
|
6
15
|
export const isFacetBoolean = (facet) => facet.type === 'TEXT';
|
|
16
|
+
const isFuzzyFacet = (facet) => {
|
|
17
|
+
return (facet.key === 'fuzzy' &&
|
|
18
|
+
(facet.value === '0' || facet.value === '1' || facet.value === 'auto'));
|
|
19
|
+
};
|
|
20
|
+
const isOperatorFacet = (facet) => {
|
|
21
|
+
return (facet.key === 'operator' && (facet.value === 'and' || facet.value === 'or'));
|
|
22
|
+
};
|
|
7
23
|
export const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx) => {
|
|
8
24
|
const base = `https://${account}.${environment}.com.br/api/io`;
|
|
9
25
|
const storeCookies = getStoreCookie(ctx);
|
|
@@ -32,7 +48,7 @@ export const IntelligentSearch = ({ account, environment, hideUnavailableItems }
|
|
|
32
48
|
};
|
|
33
49
|
};
|
|
34
50
|
const addDefaultFacets = (facets) => {
|
|
35
|
-
const withDefaultFacets = facets.filter(({ key }) => !
|
|
51
|
+
const withDefaultFacets = facets.filter(({ key }) => !EXTRA_FACETS_KEYS.has(key));
|
|
36
52
|
const policyFacet = facets.find(({ key }) => key === POLICY_KEY) ?? getPolicyFacet();
|
|
37
53
|
const regionFacet = facets.find(({ key }) => key === REGION_KEY) ?? getRegionFacet();
|
|
38
54
|
if (policyFacet !== null) {
|
|
@@ -43,13 +59,22 @@ export const IntelligentSearch = ({ account, environment, hideUnavailableItems }
|
|
|
43
59
|
}
|
|
44
60
|
return withDefaultFacets;
|
|
45
61
|
};
|
|
46
|
-
const
|
|
62
|
+
const addSearchParamsFacets = (facets, params) => {
|
|
63
|
+
const fuzzyFacet = facets.find(({ key }) => key === FUZZY_KEY) ?? null;
|
|
64
|
+
const operatorFacet = facets.find(({ key }) => key === OPERATOR_KEY) ?? null;
|
|
65
|
+
if (fuzzyFacet && isFuzzyFacet(fuzzyFacet)) {
|
|
66
|
+
params.append(FUZZY_KEY, fuzzyFacet.value);
|
|
67
|
+
}
|
|
68
|
+
if (operatorFacet && isOperatorFacet(operatorFacet)) {
|
|
69
|
+
params.append(OPERATOR_KEY, operatorFacet.value);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const search = ({ query = '', page, count, sort = '', selectedFacets = [], type, }) => {
|
|
47
73
|
const params = new URLSearchParams({
|
|
48
74
|
page: (page + 1).toString(),
|
|
49
75
|
count: count.toString(),
|
|
50
76
|
query,
|
|
51
77
|
sort,
|
|
52
|
-
fuzzy,
|
|
53
78
|
locale: ctx.storage.locale,
|
|
54
79
|
});
|
|
55
80
|
if (hideUnavailableItems !== undefined) {
|
|
@@ -58,6 +83,7 @@ export const IntelligentSearch = ({ account, environment, hideUnavailableItems }
|
|
|
58
83
|
const pathname = addDefaultFacets(selectedFacets)
|
|
59
84
|
.map(({ key, value }) => `${key}/${value}`)
|
|
60
85
|
.join('/');
|
|
86
|
+
addSearchParamsFacets(selectedFacets, params);
|
|
61
87
|
return fetchAPI(`${base}/_v/api/intelligent-search/${type}/${pathname}?${params.toString()}`, undefined, { storeCookies });
|
|
62
88
|
};
|
|
63
89
|
const products = (args) => search({ ...args, type: 'product_search' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/platforms/vtex/clients/search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/platforms/vtex/clients/search/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,14 +80,12 @@ export const StoreSearchResult = {
|
|
|
80
80
|
.filter((facet) => !isCollectionPage || !isRootFacet(facet, isDepartment, isBrand));
|
|
81
81
|
return filteredFacets;
|
|
82
82
|
},
|
|
83
|
-
metadata: async ({
|
|
84
|
-
if (!searchArgs.query) {
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
83
|
+
metadata: async ({ productSearchPromise }) => {
|
|
87
84
|
const productSearchResult = await productSearchPromise;
|
|
88
85
|
return {
|
|
89
86
|
isTermMisspelled: productSearchResult.correction?.misspelled ?? false,
|
|
90
87
|
logicalOperator: productSearchResult.operator,
|
|
88
|
+
fuzzy: productSearchResult.fuzzy,
|
|
91
89
|
};
|
|
92
90
|
},
|
|
93
91
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchResult.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/searchResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAKhD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAO1C,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,YAAqB,EAAE,OAAgB,EAAE,EAAE,CAC5E,YAAY;IACV,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY;IAC5B,CAAC,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"searchResult.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/searchResult.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,14 @@ export interface SelectedFacet {
|
|
|
3
3
|
key: string;
|
|
4
4
|
value: string;
|
|
5
5
|
}
|
|
6
|
+
export type FuzzyFacet = {
|
|
7
|
+
key: 'fuzzy';
|
|
8
|
+
value: '0' | '1' | 'auto';
|
|
9
|
+
};
|
|
10
|
+
export type OperatorFacet = {
|
|
11
|
+
key: 'operator';
|
|
12
|
+
value: 'and' | 'or';
|
|
13
|
+
};
|
|
6
14
|
export interface CrossSellingFacet {
|
|
7
15
|
key: keyof typeof FACET_CROSS_SELLING_MAP;
|
|
8
16
|
value: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { BadRequestError } from '../../errors';
|
|
2
2
|
export const FACET_CROSS_SELLING_MAP = {
|
|
3
|
-
buy:
|
|
4
|
-
view:
|
|
5
|
-
similars:
|
|
6
|
-
viewAndBought:
|
|
7
|
-
accessories:
|
|
8
|
-
suggestions:
|
|
3
|
+
buy: 'whoboughtalsobought',
|
|
4
|
+
view: 'whosawalsosaw',
|
|
5
|
+
similars: 'similars',
|
|
6
|
+
viewAndBought: 'whosawalsobought',
|
|
7
|
+
accessories: 'accessories',
|
|
8
|
+
suggestions: 'suggestions',
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
11
11
|
* Transform facets from the store to VTEX platform facets.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facets.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/facets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"facets.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/facets.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/api",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/cjs/src/index.js",
|
|
6
6
|
"typings": "dist/esm/src/index.d.ts",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"volta": {
|
|
77
77
|
"extends": "../../package.json"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "14428fa6cb62c5a1c68d7470c021debfaee450b2"
|
|
80
80
|
}
|
|
@@ -509,6 +509,8 @@ export type QueryShippingArgs = {
|
|
|
509
509
|
/** Search result. */
|
|
510
510
|
export type SearchMetadata = {
|
|
511
511
|
__typename?: 'SearchMetadata';
|
|
512
|
+
/** Indicates how the search engine corrected the misspelled word by using fuzzy logic. */
|
|
513
|
+
fuzzy: Scalars['String'];
|
|
512
514
|
/** Indicates if the search term was misspelled. */
|
|
513
515
|
isTermMisspelled: Scalars['Boolean'];
|
|
514
516
|
/** Logical operator used to run the search. */
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { fetchAPI } from '../fetch'
|
|
2
2
|
import type { IStoreSelectedFacet } from '../../../../__generated__/schema'
|
|
3
3
|
import type { Context, Options } from '../../'
|
|
4
|
-
import type {
|
|
4
|
+
import type {
|
|
5
|
+
SelectedFacet,
|
|
6
|
+
FuzzyFacet,
|
|
7
|
+
OperatorFacet,
|
|
8
|
+
} from '../../utils/facets'
|
|
5
9
|
import type {
|
|
6
10
|
Facet,
|
|
7
11
|
FacetValueBoolean,
|
|
@@ -39,14 +43,38 @@ export interface ProductLocator {
|
|
|
39
43
|
value: string
|
|
40
44
|
}
|
|
41
45
|
|
|
46
|
+
// channel keys
|
|
42
47
|
const POLICY_KEY = 'trade-policy'
|
|
43
48
|
const REGION_KEY = 'region-id'
|
|
44
|
-
|
|
49
|
+
|
|
50
|
+
// search parameters
|
|
51
|
+
const FUZZY_KEY = 'fuzzy'
|
|
52
|
+
const OPERATOR_KEY = 'operator'
|
|
53
|
+
|
|
54
|
+
const EXTRA_FACETS_KEYS = new Set([
|
|
55
|
+
POLICY_KEY,
|
|
56
|
+
REGION_KEY,
|
|
57
|
+
FUZZY_KEY,
|
|
58
|
+
OPERATOR_KEY,
|
|
59
|
+
])
|
|
45
60
|
|
|
46
61
|
export const isFacetBoolean = (
|
|
47
62
|
facet: Facet
|
|
48
63
|
): facet is Facet<FacetValueBoolean> => facet.type === 'TEXT'
|
|
49
64
|
|
|
65
|
+
const isFuzzyFacet = (facet: SelectedFacet): facet is FuzzyFacet => {
|
|
66
|
+
return (
|
|
67
|
+
facet.key === 'fuzzy' &&
|
|
68
|
+
(facet.value === '0' || facet.value === '1' || facet.value === 'auto')
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const isOperatorFacet = (facet: SelectedFacet): facet is OperatorFacet => {
|
|
73
|
+
return (
|
|
74
|
+
facet.key === 'operator' && (facet.value === 'and' || facet.value === 'or')
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
|
|
50
78
|
export const IntelligentSearch = (
|
|
51
79
|
{ account, environment, hideUnavailableItems }: Options,
|
|
52
80
|
ctx: Context
|
|
@@ -85,7 +113,9 @@ export const IntelligentSearch = (
|
|
|
85
113
|
}
|
|
86
114
|
|
|
87
115
|
const addDefaultFacets = (facets: SelectedFacet[]) => {
|
|
88
|
-
const withDefaultFacets = facets.filter(
|
|
116
|
+
const withDefaultFacets = facets.filter(
|
|
117
|
+
({ key }) => !EXTRA_FACETS_KEYS.has(key)
|
|
118
|
+
)
|
|
89
119
|
|
|
90
120
|
const policyFacet =
|
|
91
121
|
facets.find(({ key }) => key === POLICY_KEY) ?? getPolicyFacet()
|
|
@@ -104,6 +134,22 @@ export const IntelligentSearch = (
|
|
|
104
134
|
return withDefaultFacets
|
|
105
135
|
}
|
|
106
136
|
|
|
137
|
+
const addSearchParamsFacets = (
|
|
138
|
+
facets: SelectedFacet[],
|
|
139
|
+
params: URLSearchParams
|
|
140
|
+
) => {
|
|
141
|
+
const fuzzyFacet = facets.find(({ key }) => key === FUZZY_KEY) ?? null
|
|
142
|
+
const operatorFacet = facets.find(({ key }) => key === OPERATOR_KEY) ?? null
|
|
143
|
+
|
|
144
|
+
if (fuzzyFacet && isFuzzyFacet(fuzzyFacet)) {
|
|
145
|
+
params.append(FUZZY_KEY, fuzzyFacet.value)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (operatorFacet && isOperatorFacet(operatorFacet)) {
|
|
149
|
+
params.append(OPERATOR_KEY, operatorFacet.value)
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
107
153
|
const search = <T>({
|
|
108
154
|
query = '',
|
|
109
155
|
page,
|
|
@@ -111,14 +157,12 @@ export const IntelligentSearch = (
|
|
|
111
157
|
sort = '',
|
|
112
158
|
selectedFacets = [],
|
|
113
159
|
type,
|
|
114
|
-
fuzzy = 'auto',
|
|
115
160
|
}: SearchArgs): Promise<T> => {
|
|
116
161
|
const params = new URLSearchParams({
|
|
117
162
|
page: (page + 1).toString(),
|
|
118
163
|
count: count.toString(),
|
|
119
164
|
query,
|
|
120
165
|
sort,
|
|
121
|
-
fuzzy,
|
|
122
166
|
locale: ctx.storage.locale,
|
|
123
167
|
})
|
|
124
168
|
|
|
@@ -130,6 +174,8 @@ export const IntelligentSearch = (
|
|
|
130
174
|
.map(({ key, value }) => `${key}/${value}`)
|
|
131
175
|
.join('/')
|
|
132
176
|
|
|
177
|
+
addSearchParamsFacets(selectedFacets, params)
|
|
178
|
+
|
|
133
179
|
return fetchAPI(
|
|
134
180
|
`${base}/_v/api/intelligent-search/${type}/${pathname}?${params.toString()}`,
|
|
135
181
|
undefined,
|
|
@@ -14,8 +14,8 @@ const isRootFacet = (facet: Facet, isDepartment: boolean, isBrand: boolean) =>
|
|
|
14
14
|
isDepartment
|
|
15
15
|
? facet.key === 'category-1'
|
|
16
16
|
: isBrand
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
? facet.key === 'brand'
|
|
18
|
+
: false
|
|
19
19
|
|
|
20
20
|
export const StoreSearchResult: Record<string, Resolver<Root>> = {
|
|
21
21
|
suggestions: async (root, _, ctx) => {
|
|
@@ -117,16 +117,12 @@ export const StoreSearchResult: Record<string, Resolver<Root>> = {
|
|
|
117
117
|
|
|
118
118
|
return filteredFacets
|
|
119
119
|
},
|
|
120
|
-
metadata: async ({
|
|
121
|
-
if (!searchArgs.query) {
|
|
122
|
-
return null
|
|
123
|
-
}
|
|
124
|
-
|
|
120
|
+
metadata: async ({ productSearchPromise }) => {
|
|
125
121
|
const productSearchResult = await productSearchPromise
|
|
126
|
-
|
|
127
122
|
return {
|
|
128
123
|
isTermMisspelled: productSearchResult.correction?.misspelled ?? false,
|
|
129
124
|
logicalOperator: productSearchResult.operator,
|
|
125
|
+
fuzzy: productSearchResult.fuzzy,
|
|
130
126
|
}
|
|
131
127
|
},
|
|
132
128
|
}
|
|
@@ -6,18 +6,28 @@ export interface SelectedFacet {
|
|
|
6
6
|
value: string
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
export type FuzzyFacet = {
|
|
10
|
+
key: 'fuzzy'
|
|
11
|
+
value: '0' | '1' | 'auto'
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type OperatorFacet = {
|
|
15
|
+
key: 'operator'
|
|
16
|
+
value: 'and' | 'or'
|
|
17
|
+
}
|
|
18
|
+
|
|
9
19
|
export interface CrossSellingFacet {
|
|
10
20
|
key: keyof typeof FACET_CROSS_SELLING_MAP
|
|
11
21
|
value: string
|
|
12
22
|
}
|
|
13
23
|
|
|
14
24
|
export const FACET_CROSS_SELLING_MAP = {
|
|
15
|
-
buy:
|
|
16
|
-
view:
|
|
17
|
-
similars:
|
|
18
|
-
viewAndBought:
|
|
19
|
-
accessories:
|
|
20
|
-
suggestions:
|
|
25
|
+
buy: 'whoboughtalsobought',
|
|
26
|
+
view: 'whosawalsosaw',
|
|
27
|
+
similars: 'similars',
|
|
28
|
+
viewAndBought: 'whosawalsobought',
|
|
29
|
+
accessories: 'accessories',
|
|
30
|
+
suggestions: 'suggestions',
|
|
21
31
|
} as const
|
|
22
32
|
|
|
23
33
|
/**
|