@faststore/api 3.0.94 → 3.0.97
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 +0 -2
- package/dist/cjs/src/__generated__/schema.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/search/index.js +4 -30
- package/dist/cjs/src/platforms/vtex/clients/search/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/searchResult.js +4 -2
- package/dist/cjs/src/platforms/vtex/resolvers/searchResult.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/utils/facets.d.ts +0 -8
- 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 +0 -4
- package/dist/esm/package.json +3 -3
- package/dist/esm/src/__generated__/schema.d.ts +0 -2
- package/dist/esm/src/__generated__/schema.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/search/index.js +4 -30
- package/dist/esm/src/platforms/vtex/clients/search/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/searchResult.js +4 -2
- package/dist/esm/src/platforms/vtex/resolvers/searchResult.js.map +1 -1
- package/dist/esm/src/platforms/vtex/utils/facets.d.ts +0 -8
- 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 +0 -4
- package/package.json +4 -4
- package/src/__generated__/schema.ts +0 -2
- package/src/platforms/vtex/clients/search/index.ts +5 -51
- package/src/platforms/vtex/resolvers/searchResult.ts +8 -4
- package/src/platforms/vtex/utils/facets.ts +6 -16
- package/src/typeDefs/query.graphql +0 -4
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.95",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/cjs/src/index.js",
|
|
6
6
|
"typings": "dist/esm/src/index.d.ts",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@envelop/core": "^2.6.0",
|
|
54
|
-
"@faststore/eslint-config": "^3.0.
|
|
55
|
-
"@faststore/shared": "^3.0.
|
|
54
|
+
"@faststore/eslint-config": "^3.0.95",
|
|
55
|
+
"@faststore/shared": "^3.0.95",
|
|
56
56
|
"@graphql-codegen/cli": "2.2.0",
|
|
57
57
|
"@graphql-codegen/typescript": "2.2.2",
|
|
58
58
|
"@parcel/watcher": "^2.4.0",
|
|
@@ -465,8 +465,6 @@ 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'];
|
|
470
468
|
/** Indicates if the search term was misspelled. */
|
|
471
469
|
isTermMisspelled: Scalars['Boolean'];
|
|
472
470
|
/** 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;AA6TD,CAAC;AAOD,CAAC"}
|
|
@@ -3,27 +3,11 @@ 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
|
|
7
6
|
const POLICY_KEY = 'trade-policy';
|
|
8
7
|
const REGION_KEY = 'region-id';
|
|
9
|
-
|
|
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
|
-
]);
|
|
8
|
+
const CHANNEL_KEYS = new Set([POLICY_KEY, REGION_KEY]);
|
|
18
9
|
const isFacetBoolean = (facet) => facet.type === 'TEXT';
|
|
19
10
|
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
|
-
};
|
|
27
11
|
const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx) => {
|
|
28
12
|
const base = `https://${account}.${environment}.com.br/api/io`;
|
|
29
13
|
const storeCookies = (0, cookies_1.getStoreCookie)(ctx);
|
|
@@ -52,7 +36,7 @@ const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx)
|
|
|
52
36
|
};
|
|
53
37
|
};
|
|
54
38
|
const addDefaultFacets = (facets) => {
|
|
55
|
-
const withDefaultFacets = facets.filter(({ key }) => !
|
|
39
|
+
const withDefaultFacets = facets.filter(({ key }) => !CHANNEL_KEYS.has(key));
|
|
56
40
|
const policyFacet = facets.find(({ key }) => key === POLICY_KEY) ?? getPolicyFacet();
|
|
57
41
|
const regionFacet = facets.find(({ key }) => key === REGION_KEY) ?? getRegionFacet();
|
|
58
42
|
if (policyFacet !== null) {
|
|
@@ -63,22 +47,13 @@ const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx)
|
|
|
63
47
|
}
|
|
64
48
|
return withDefaultFacets;
|
|
65
49
|
};
|
|
66
|
-
const
|
|
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, }) => {
|
|
50
|
+
const search = ({ query = '', page, count, sort = '', selectedFacets = [], type, fuzzy = 'auto', }) => {
|
|
77
51
|
const params = new URLSearchParams({
|
|
78
52
|
page: (page + 1).toString(),
|
|
79
53
|
count: count.toString(),
|
|
80
54
|
query,
|
|
81
55
|
sort,
|
|
56
|
+
fuzzy,
|
|
82
57
|
locale: ctx.storage.locale,
|
|
83
58
|
});
|
|
84
59
|
if (hideUnavailableItems !== undefined) {
|
|
@@ -87,7 +62,6 @@ const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx)
|
|
|
87
62
|
const pathname = addDefaultFacets(selectedFacets)
|
|
88
63
|
.map(({ key, value }) => `${key}/${value}`)
|
|
89
64
|
.join('/');
|
|
90
|
-
addSearchParamsFacets(selectedFacets, params);
|
|
91
65
|
return (0, fetch_1.fetchAPI)(`${base}/_v/api/intelligent-search/${type}/${pathname}?${params.toString()}`, undefined, { storeCookies });
|
|
92
66
|
};
|
|
93
67
|
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,12 +83,14 @@ exports.StoreSearchResult = {
|
|
|
83
83
|
.filter((facet) => !isCollectionPage || !isRootFacet(facet, isDepartment, isBrand));
|
|
84
84
|
return filteredFacets;
|
|
85
85
|
},
|
|
86
|
-
metadata: async ({ productSearchPromise }) => {
|
|
86
|
+
metadata: async ({ searchArgs, productSearchPromise }) => {
|
|
87
|
+
if (!searchArgs.query) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
87
90
|
const productSearchResult = await productSearchPromise;
|
|
88
91
|
return {
|
|
89
92
|
isTermMisspelled: productSearchResult.correction?.misspelled ?? false,
|
|
90
93
|
logicalOperator: productSearchResult.operator,
|
|
91
|
-
fuzzy: productSearchResult.fuzzy,
|
|
92
94
|
};
|
|
93
95
|
},
|
|
94
96
|
};
|
|
@@ -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,14 +3,6 @@ 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
|
-
};
|
|
14
6
|
export interface CrossSellingFacet {
|
|
15
7
|
key: keyof typeof FACET_CROSS_SELLING_MAP;
|
|
16
8
|
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.95",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/cjs/src/index.js",
|
|
6
6
|
"typings": "dist/esm/src/index.d.ts",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@envelop/core": "^2.6.0",
|
|
54
|
-
"@faststore/eslint-config": "^3.0.
|
|
55
|
-
"@faststore/shared": "^3.0.
|
|
54
|
+
"@faststore/eslint-config": "^3.0.95",
|
|
55
|
+
"@faststore/shared": "^3.0.95",
|
|
56
56
|
"@graphql-codegen/cli": "2.2.0",
|
|
57
57
|
"@graphql-codegen/typescript": "2.2.2",
|
|
58
58
|
"@parcel/watcher": "^2.4.0",
|
|
@@ -465,8 +465,6 @@ 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'];
|
|
470
468
|
/** Indicates if the search term was misspelled. */
|
|
471
469
|
isTermMisspelled: Scalars['Boolean'];
|
|
472
470
|
/** 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;AA6TD,CAAC;AAOD,CAAC"}
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
import { fetchAPI } from '../fetch';
|
|
2
2
|
import { getStoreCookie } from '../../utils/cookies';
|
|
3
|
-
// channel keys
|
|
4
3
|
const POLICY_KEY = 'trade-policy';
|
|
5
4
|
const REGION_KEY = 'region-id';
|
|
6
|
-
|
|
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
|
-
]);
|
|
5
|
+
const CHANNEL_KEYS = new Set([POLICY_KEY, REGION_KEY]);
|
|
15
6
|
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
|
-
};
|
|
23
7
|
export const IntelligentSearch = ({ account, environment, hideUnavailableItems }, ctx) => {
|
|
24
8
|
const base = `https://${account}.${environment}.com.br/api/io`;
|
|
25
9
|
const storeCookies = getStoreCookie(ctx);
|
|
@@ -48,7 +32,7 @@ export const IntelligentSearch = ({ account, environment, hideUnavailableItems }
|
|
|
48
32
|
};
|
|
49
33
|
};
|
|
50
34
|
const addDefaultFacets = (facets) => {
|
|
51
|
-
const withDefaultFacets = facets.filter(({ key }) => !
|
|
35
|
+
const withDefaultFacets = facets.filter(({ key }) => !CHANNEL_KEYS.has(key));
|
|
52
36
|
const policyFacet = facets.find(({ key }) => key === POLICY_KEY) ?? getPolicyFacet();
|
|
53
37
|
const regionFacet = facets.find(({ key }) => key === REGION_KEY) ?? getRegionFacet();
|
|
54
38
|
if (policyFacet !== null) {
|
|
@@ -59,22 +43,13 @@ export const IntelligentSearch = ({ account, environment, hideUnavailableItems }
|
|
|
59
43
|
}
|
|
60
44
|
return withDefaultFacets;
|
|
61
45
|
};
|
|
62
|
-
const
|
|
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, }) => {
|
|
46
|
+
const search = ({ query = '', page, count, sort = '', selectedFacets = [], type, fuzzy = 'auto', }) => {
|
|
73
47
|
const params = new URLSearchParams({
|
|
74
48
|
page: (page + 1).toString(),
|
|
75
49
|
count: count.toString(),
|
|
76
50
|
query,
|
|
77
51
|
sort,
|
|
52
|
+
fuzzy,
|
|
78
53
|
locale: ctx.storage.locale,
|
|
79
54
|
});
|
|
80
55
|
if (hideUnavailableItems !== undefined) {
|
|
@@ -83,7 +58,6 @@ export const IntelligentSearch = ({ account, environment, hideUnavailableItems }
|
|
|
83
58
|
const pathname = addDefaultFacets(selectedFacets)
|
|
84
59
|
.map(({ key, value }) => `${key}/${value}`)
|
|
85
60
|
.join('/');
|
|
86
|
-
addSearchParamsFacets(selectedFacets, params);
|
|
87
61
|
return fetchAPI(`${base}/_v/api/intelligent-search/${type}/${pathname}?${params.toString()}`, undefined, { storeCookies });
|
|
88
62
|
};
|
|
89
63
|
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,12 +80,14 @@ export const StoreSearchResult = {
|
|
|
80
80
|
.filter((facet) => !isCollectionPage || !isRootFacet(facet, isDepartment, isBrand));
|
|
81
81
|
return filteredFacets;
|
|
82
82
|
},
|
|
83
|
-
metadata: async ({ productSearchPromise }) => {
|
|
83
|
+
metadata: async ({ searchArgs, productSearchPromise }) => {
|
|
84
|
+
if (!searchArgs.query) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
84
87
|
const productSearchResult = await productSearchPromise;
|
|
85
88
|
return {
|
|
86
89
|
isTermMisspelled: productSearchResult.correction?.misspelled ?? false,
|
|
87
90
|
logicalOperator: productSearchResult.operator,
|
|
88
|
-
fuzzy: productSearchResult.fuzzy,
|
|
89
91
|
};
|
|
90
92
|
},
|
|
91
93
|
};
|
|
@@ -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,14 +3,6 @@ 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
|
-
};
|
|
14
6
|
export interface CrossSellingFacet {
|
|
15
7
|
key: keyof typeof FACET_CROSS_SELLING_MAP;
|
|
16
8
|
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.97",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/cjs/src/index.js",
|
|
6
6
|
"typings": "dist/esm/src/index.d.ts",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@envelop/core": "^2.6.0",
|
|
54
|
-
"@faststore/eslint-config": "^3.0.
|
|
55
|
-
"@faststore/shared": "^3.0.
|
|
54
|
+
"@faststore/eslint-config": "^3.0.97",
|
|
55
|
+
"@faststore/shared": "^3.0.97",
|
|
56
56
|
"@graphql-codegen/cli": "2.2.0",
|
|
57
57
|
"@graphql-codegen/typescript": "2.2.2",
|
|
58
58
|
"@parcel/watcher": "^2.4.0",
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"volta": {
|
|
80
80
|
"extends": "../../package.json"
|
|
81
81
|
},
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "df0e2d3d8c4f09d7782013f7ba25d73e51d3b7a1"
|
|
83
83
|
}
|
|
@@ -509,8 +509,6 @@ 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'];
|
|
514
512
|
/** Indicates if the search term was misspelled. */
|
|
515
513
|
isTermMisspelled: Scalars['Boolean'];
|
|
516
514
|
/** Logical operator used to run the search. */
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { fetchAPI } from '../fetch'
|
|
2
2
|
import type { IStoreSelectedFacet } from '../../../../__generated__/schema'
|
|
3
3
|
import type { Context, Options } from '../../'
|
|
4
|
-
import type {
|
|
5
|
-
SelectedFacet,
|
|
6
|
-
FuzzyFacet,
|
|
7
|
-
OperatorFacet,
|
|
8
|
-
} from '../../utils/facets'
|
|
4
|
+
import type { SelectedFacet } from '../../utils/facets'
|
|
9
5
|
import type {
|
|
10
6
|
Facet,
|
|
11
7
|
FacetValueBoolean,
|
|
@@ -43,38 +39,14 @@ export interface ProductLocator {
|
|
|
43
39
|
value: string
|
|
44
40
|
}
|
|
45
41
|
|
|
46
|
-
// channel keys
|
|
47
42
|
const POLICY_KEY = 'trade-policy'
|
|
48
43
|
const REGION_KEY = 'region-id'
|
|
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
|
-
])
|
|
44
|
+
const CHANNEL_KEYS = new Set([POLICY_KEY, REGION_KEY])
|
|
60
45
|
|
|
61
46
|
export const isFacetBoolean = (
|
|
62
47
|
facet: Facet
|
|
63
48
|
): facet is Facet<FacetValueBoolean> => facet.type === 'TEXT'
|
|
64
49
|
|
|
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
|
-
|
|
78
50
|
export const IntelligentSearch = (
|
|
79
51
|
{ account, environment, hideUnavailableItems }: Options,
|
|
80
52
|
ctx: Context
|
|
@@ -113,9 +85,7 @@ export const IntelligentSearch = (
|
|
|
113
85
|
}
|
|
114
86
|
|
|
115
87
|
const addDefaultFacets = (facets: SelectedFacet[]) => {
|
|
116
|
-
const withDefaultFacets = facets.filter(
|
|
117
|
-
({ key }) => !EXTRA_FACETS_KEYS.has(key)
|
|
118
|
-
)
|
|
88
|
+
const withDefaultFacets = facets.filter(({ key }) => !CHANNEL_KEYS.has(key))
|
|
119
89
|
|
|
120
90
|
const policyFacet =
|
|
121
91
|
facets.find(({ key }) => key === POLICY_KEY) ?? getPolicyFacet()
|
|
@@ -134,22 +104,6 @@ export const IntelligentSearch = (
|
|
|
134
104
|
return withDefaultFacets
|
|
135
105
|
}
|
|
136
106
|
|
|
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
|
-
|
|
153
107
|
const search = <T>({
|
|
154
108
|
query = '',
|
|
155
109
|
page,
|
|
@@ -157,12 +111,14 @@ export const IntelligentSearch = (
|
|
|
157
111
|
sort = '',
|
|
158
112
|
selectedFacets = [],
|
|
159
113
|
type,
|
|
114
|
+
fuzzy = 'auto',
|
|
160
115
|
}: SearchArgs): Promise<T> => {
|
|
161
116
|
const params = new URLSearchParams({
|
|
162
117
|
page: (page + 1).toString(),
|
|
163
118
|
count: count.toString(),
|
|
164
119
|
query,
|
|
165
120
|
sort,
|
|
121
|
+
fuzzy,
|
|
166
122
|
locale: ctx.storage.locale,
|
|
167
123
|
})
|
|
168
124
|
|
|
@@ -174,8 +130,6 @@ export const IntelligentSearch = (
|
|
|
174
130
|
.map(({ key, value }) => `${key}/${value}`)
|
|
175
131
|
.join('/')
|
|
176
132
|
|
|
177
|
-
addSearchParamsFacets(selectedFacets, params)
|
|
178
|
-
|
|
179
133
|
return fetchAPI(
|
|
180
134
|
`${base}/_v/api/intelligent-search/${type}/${pathname}?${params.toString()}`,
|
|
181
135
|
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,12 +117,16 @@ export const StoreSearchResult: Record<string, Resolver<Root>> = {
|
|
|
117
117
|
|
|
118
118
|
return filteredFacets
|
|
119
119
|
},
|
|
120
|
-
metadata: async ({ productSearchPromise }) => {
|
|
120
|
+
metadata: async ({ searchArgs, productSearchPromise }) => {
|
|
121
|
+
if (!searchArgs.query) {
|
|
122
|
+
return null
|
|
123
|
+
}
|
|
124
|
+
|
|
121
125
|
const productSearchResult = await productSearchPromise
|
|
126
|
+
|
|
122
127
|
return {
|
|
123
128
|
isTermMisspelled: productSearchResult.correction?.misspelled ?? false,
|
|
124
129
|
logicalOperator: productSearchResult.operator,
|
|
125
|
-
fuzzy: productSearchResult.fuzzy,
|
|
126
130
|
}
|
|
127
131
|
},
|
|
128
132
|
}
|
|
@@ -6,28 +6,18 @@ 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
|
-
|
|
19
9
|
export interface CrossSellingFacet {
|
|
20
10
|
key: keyof typeof FACET_CROSS_SELLING_MAP
|
|
21
11
|
value: string
|
|
22
12
|
}
|
|
23
13
|
|
|
24
14
|
export const FACET_CROSS_SELLING_MAP = {
|
|
25
|
-
buy:
|
|
26
|
-
view:
|
|
27
|
-
similars:
|
|
28
|
-
viewAndBought:
|
|
29
|
-
accessories:
|
|
30
|
-
suggestions:
|
|
15
|
+
buy: "whoboughtalsobought",
|
|
16
|
+
view: "whosawalsosaw",
|
|
17
|
+
similars: "similars",
|
|
18
|
+
viewAndBought: "whosawalsobought",
|
|
19
|
+
accessories: "accessories",
|
|
20
|
+
suggestions: "suggestions",
|
|
31
21
|
} as const
|
|
32
22
|
|
|
33
23
|
/**
|