@faststore/api 3.0.20 → 3.0.21
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 +1 -1
- package/dist/cjs/src/__generated__/schema.d.ts +2 -2
- package/dist/cjs/src/platforms/vtex/clients/search/types/ProductSearchResult.d.ts +7 -0
- package/dist/cjs/src/platforms/vtex/clients/sp/index.d.ts +14 -0
- package/dist/cjs/src/platforms/vtex/clients/sp/index.js +49 -0
- package/dist/cjs/src/platforms/vtex/clients/sp/index.js.map +1 -0
- package/dist/cjs/src/platforms/vtex/resolvers/product.js +7 -2
- package/dist/cjs/src/platforms/vtex/resolvers/product.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/propertyValue.js +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/propertyValue.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/utils/propertyValue.d.ts +11 -0
- package/dist/cjs/src/platforms/vtex/utils/propertyValue.js +14 -1
- package/dist/cjs/src/platforms/vtex/utils/propertyValue.js.map +1 -1
- package/dist/cjs/src/typeDefs/propertyValue.graphql +2 -2
- package/dist/esm/package.json +1 -1
- package/dist/esm/src/__generated__/schema.d.ts +2 -2
- package/dist/esm/src/platforms/vtex/clients/search/types/ProductSearchResult.d.ts +7 -0
- package/dist/esm/src/platforms/vtex/clients/sp/index.d.ts +14 -0
- package/dist/esm/src/platforms/vtex/clients/sp/index.js +45 -0
- package/dist/esm/src/platforms/vtex/clients/sp/index.js.map +1 -0
- package/dist/esm/src/platforms/vtex/resolvers/product.js +8 -3
- package/dist/esm/src/platforms/vtex/resolvers/product.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/propertyValue.js +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/propertyValue.js.map +1 -1
- package/dist/esm/src/platforms/vtex/utils/propertyValue.d.ts +11 -0
- package/dist/esm/src/platforms/vtex/utils/propertyValue.js +12 -0
- package/dist/esm/src/platforms/vtex/utils/propertyValue.js.map +1 -1
- package/dist/esm/src/typeDefs/propertyValue.graphql +2 -2
- package/package.json +2 -2
- package/src/__generated__/schema.ts +2 -2
- package/src/platforms/vtex/clients/search/types/ProductSearchResult.ts +8 -0
- package/src/platforms/vtex/resolvers/product.ts +9 -1
- package/src/platforms/vtex/resolvers/propertyValue.ts +1 -1
- package/src/platforms/vtex/utils/propertyValue.ts +14 -0
- package/src/typeDefs/propertyValue.graphql +2 -2
package/dist/cjs/package.json
CHANGED
|
@@ -249,7 +249,7 @@ export type IStorePropertyValue = {
|
|
|
249
249
|
/** Property value. May hold a string or the string representation of an object. */
|
|
250
250
|
value: Scalars['ObjectOrString'];
|
|
251
251
|
/** Specifies the nature of the value */
|
|
252
|
-
valueReference: Scalars['
|
|
252
|
+
valueReference: Scalars['ObjectOrString'];
|
|
253
253
|
};
|
|
254
254
|
/** Selected search facet input. */
|
|
255
255
|
export type IStoreSelectedFacet = {
|
|
@@ -936,7 +936,7 @@ export type StorePropertyValue = {
|
|
|
936
936
|
/** Property value. May hold a string or the string representation of an object. */
|
|
937
937
|
value: Scalars['ObjectOrString'];
|
|
938
938
|
/** Specifies the nature of the value */
|
|
939
|
-
valueReference: Scalars['
|
|
939
|
+
valueReference: Scalars['ObjectOrString'];
|
|
940
940
|
};
|
|
941
941
|
/**
|
|
942
942
|
* Redirect informations, including url returned by the query.
|
|
@@ -136,6 +136,7 @@ export interface Item {
|
|
|
136
136
|
itemId: string;
|
|
137
137
|
amount: number;
|
|
138
138
|
}>;
|
|
139
|
+
attributes: Attribute[];
|
|
139
140
|
}
|
|
140
141
|
export interface CommertialOffer {
|
|
141
142
|
DeliverySlaSamplesPerRegion: Record<string, {
|
|
@@ -203,4 +204,10 @@ interface SpecificationGroup {
|
|
|
203
204
|
values: string[];
|
|
204
205
|
}>;
|
|
205
206
|
}
|
|
207
|
+
export interface Attribute {
|
|
208
|
+
id: string;
|
|
209
|
+
name: string;
|
|
210
|
+
value: string;
|
|
211
|
+
visible: boolean;
|
|
212
|
+
}
|
|
206
213
|
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Options, Context } from '../../';
|
|
2
|
+
export type SearchEvent = {
|
|
3
|
+
type: 'search.query';
|
|
4
|
+
text: string;
|
|
5
|
+
misspelled: boolean;
|
|
6
|
+
match: number;
|
|
7
|
+
operator: 'and' | 'or';
|
|
8
|
+
locale: string;
|
|
9
|
+
session?: string;
|
|
10
|
+
anonymous?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const SP: ({ account }: Options, _: Context) => {
|
|
13
|
+
sendEvent: (options: SearchEvent) => Promise<any>;
|
|
14
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SP = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Client for SP, Intelligent search's analytics event API
|
|
6
|
+
* More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
|
|
7
|
+
*/
|
|
8
|
+
const fetch_1 = require("../fetch");
|
|
9
|
+
const THIRTY_MINUTES_S = 30 * 60;
|
|
10
|
+
const ONE_YEAR_S = 365 * 24 * 3600;
|
|
11
|
+
const randomUUID = () => (Math.random() * 1e6).toFixed(0);
|
|
12
|
+
const timelapsed = (past) => (Date.now() - past) / 1e3;
|
|
13
|
+
const createId = (expiresSecond) => {
|
|
14
|
+
let payload = randomUUID();
|
|
15
|
+
let createdAt = Date.now();
|
|
16
|
+
return () => {
|
|
17
|
+
if (timelapsed(createdAt) > expiresSecond) {
|
|
18
|
+
payload = randomUUID();
|
|
19
|
+
createdAt = Date.now();
|
|
20
|
+
}
|
|
21
|
+
return payload;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
const user = {
|
|
25
|
+
anonymous: createId(ONE_YEAR_S),
|
|
26
|
+
session: createId(THIRTY_MINUTES_S),
|
|
27
|
+
};
|
|
28
|
+
const SP = ({ account }, _) => {
|
|
29
|
+
const base = `https://sp.vtex.com/event-api/v1/${account}/event`;
|
|
30
|
+
const sendEvent = (options) => {
|
|
31
|
+
return (0, fetch_1.fetchAPI)(base, {
|
|
32
|
+
method: 'POST',
|
|
33
|
+
body: JSON.stringify({
|
|
34
|
+
...options,
|
|
35
|
+
agent: '@faststore/api',
|
|
36
|
+
anonymous: user.anonymous(), // 'zZlNhqz1vFJP6iPG5Oqtt'
|
|
37
|
+
session: user.session(), // 'Om1TNluGvgmSgU5OOTvkkd'
|
|
38
|
+
}),
|
|
39
|
+
headers: {
|
|
40
|
+
'content-type': 'application/json',
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
return {
|
|
45
|
+
sendEvent,
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
exports.SP = SP;
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/platforms/vtex/clients/sp/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,oCAAmC;AAGnC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,CAAA;AAChC,MAAM,UAAU,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAA;AAElC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEzD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAA;AAE9D,MAAM,QAAQ,GAAG,CAAC,aAAqB,EAAE,EAAE;IACzC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAA;IAC1B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE1B,OAAO,GAAG,EAAE;QACV,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,EAAE,CAAC;YAC1C,OAAO,GAAG,UAAU,EAAE,CAAA;YACtB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC;CACpC,CAAA;AAaM,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAW,EAAE,CAAU,EAAE,EAAE;IACrD,MAAM,IAAI,GAAG,oCAAoC,OAAO,QAAQ,CAAA;IAEhE,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAE,EAAE;QACzC,OAAO,IAAA,gBAAQ,EAAC,IAAI,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,OAAO;gBACV,KAAK,EAAE,gBAAgB;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,0BAA0B;gBACvD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,2BAA2B;aACrD,CAAC;YACF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC,CAAA;AArBY,QAAA,EAAE,MAqBd"}
|
|
@@ -82,14 +82,19 @@ exports.StoreProduct = {
|
|
|
82
82
|
isVariantOf: (root) => root,
|
|
83
83
|
additionalProperty: ({
|
|
84
84
|
// Search uses the name variations for specifications
|
|
85
|
-
variations: specifications = [], attachmentsValues = [], }) => {
|
|
85
|
+
variations: specifications = [], attachmentsValues = [], attributes = [], }) => {
|
|
86
86
|
const propertyValueSpecifications = specifications.flatMap(({ name, values }) => values.map((value) => ({
|
|
87
87
|
name,
|
|
88
88
|
value,
|
|
89
89
|
valueReference: propertyValue_1.VALUE_REFERENCES.specification,
|
|
90
90
|
})));
|
|
91
91
|
const propertyValueAttachments = attachmentsValues.map(propertyValue_1.attachmentToPropertyValue);
|
|
92
|
-
|
|
92
|
+
const propertyValueAttributes = attributes.map(propertyValue_1.attributeToPropertyValue);
|
|
93
|
+
return [
|
|
94
|
+
...propertyValueSpecifications,
|
|
95
|
+
...propertyValueAttachments,
|
|
96
|
+
...propertyValueAttributes,
|
|
97
|
+
];
|
|
93
98
|
},
|
|
94
99
|
releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? '',
|
|
95
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/product.ts"],"names":[],"mappings":";;;AAAA,kDAAyD;AACzD,4EAAwE;AACxE,wDAAsD;AACtD,8CAA0C;AAK1C,
|
|
1
|
+
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/product.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StorePropertyValue = void 0;
|
|
4
4
|
const propertyValue_1 = require("../utils/propertyValue");
|
|
5
5
|
exports.StorePropertyValue = {
|
|
6
|
-
propertyID: (root) => (0, propertyValue_1.getPropertyId)(root),
|
|
6
|
+
propertyID: (root) => root.propertyID || (0, propertyValue_1.getPropertyId)(root),
|
|
7
7
|
name: ({ name }) => name,
|
|
8
8
|
value: ({ value }) => value,
|
|
9
9
|
valueReference: ({ valueReference }) => valueReference,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyValue.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/propertyValue.ts"],"names":[],"mappings":";;;AAEA,0DAAsD;AAIzC,QAAA,kBAAkB,GAAmC;IAChE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"propertyValue.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/propertyValue.ts"],"names":[],"mappings":";;;AAEA,0DAAsD;AAIzC,QAAA,kBAAkB,GAAmC;IAChE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,IAAA,6BAAa,EAAC,IAAI,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI;IACxB,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK;IAC3B,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,cAAc;CACvD,CAAA"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import type { IStorePropertyValue } from '../../../__generated__/schema';
|
|
2
2
|
import type { Attachment } from '../clients/commerce/types/OrderForm';
|
|
3
|
+
import type { Attribute } from '../clients/search/types/ProductSearchResult';
|
|
3
4
|
export declare const VALUE_REFERENCES: {
|
|
4
5
|
readonly attachment: "ATTACHMENT";
|
|
5
6
|
readonly specification: "SPECIFICATION";
|
|
7
|
+
readonly attribute: "ATTRIBUTE";
|
|
6
8
|
};
|
|
7
9
|
export declare function attachmentToPropertyValue(attachment: Attachment): {
|
|
8
10
|
name: string;
|
|
9
11
|
value: Record<string, string>;
|
|
10
12
|
valueReference: "ATTACHMENT";
|
|
11
13
|
};
|
|
14
|
+
export declare function attributeToPropertyValue(attribute: Attribute): {
|
|
15
|
+
propertyID: string;
|
|
16
|
+
name: string;
|
|
17
|
+
value: string;
|
|
18
|
+
valueReference: {
|
|
19
|
+
valueReference: "ATTRIBUTE";
|
|
20
|
+
visible: boolean;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
12
23
|
export declare function getPropertyId(item: IStorePropertyValue): string;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPropertyId = exports.attachmentToPropertyValue = exports.VALUE_REFERENCES = void 0;
|
|
3
|
+
exports.getPropertyId = exports.attributeToPropertyValue = exports.attachmentToPropertyValue = exports.VALUE_REFERENCES = void 0;
|
|
4
4
|
const md5_1 = require("./md5");
|
|
5
5
|
exports.VALUE_REFERENCES = {
|
|
6
6
|
attachment: 'ATTACHMENT',
|
|
7
7
|
specification: 'SPECIFICATION',
|
|
8
|
+
attribute: 'ATTRIBUTE',
|
|
8
9
|
};
|
|
9
10
|
function attachmentToPropertyValue(attachment) {
|
|
10
11
|
return {
|
|
@@ -14,6 +15,18 @@ function attachmentToPropertyValue(attachment) {
|
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
exports.attachmentToPropertyValue = attachmentToPropertyValue;
|
|
18
|
+
function attributeToPropertyValue(attribute) {
|
|
19
|
+
return {
|
|
20
|
+
propertyID: attribute.id,
|
|
21
|
+
name: attribute.name,
|
|
22
|
+
value: attribute.value,
|
|
23
|
+
valueReference: {
|
|
24
|
+
valueReference: exports.VALUE_REFERENCES.attribute,
|
|
25
|
+
visible: attribute.visible,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.attributeToPropertyValue = attributeToPropertyValue;
|
|
17
30
|
function getPropertyId(item) {
|
|
18
31
|
return (0, md5_1.md5)(`${item.name}:${JSON.stringify(item.value)}:${item.valueReference}`);
|
|
19
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyValue.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/propertyValue.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"propertyValue.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/propertyValue.ts"],"names":[],"mappings":";;;AAGA,+BAA2B;AAEd,QAAA,gBAAgB,GAAG;IAC9B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;CACd,CAAA;AAEV,SAAgB,yBAAyB,CAAC,UAAsB;IAC9D,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,UAAU,CAAC,OAAO;QACzB,cAAc,EAAE,wBAAgB,CAAC,UAAU;KAC5C,CAAA;AACH,CAAC;AAND,8DAMC;AAED,SAAgB,wBAAwB,CAAC,SAAoB;IAC3D,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,EAAE;QACxB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,cAAc,EAAE;YACd,cAAc,EAAE,wBAAgB,CAAC,SAAS;YAC1C,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B;KACF,CAAA;AACH,CAAC;AAVD,4DAUC;AAED,SAAgB,aAAa,CAAC,IAAyB;IACrD,OAAO,IAAA,SAAG,EACR,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CACpE,CAAA;AACH,CAAC;AAJD,sCAIC"}
|
|
@@ -17,7 +17,7 @@ type StorePropertyValue {
|
|
|
17
17
|
"""
|
|
18
18
|
Specifies the nature of the value
|
|
19
19
|
"""
|
|
20
|
-
valueReference:
|
|
20
|
+
valueReference: ObjectOrString!
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
input IStorePropertyValue {
|
|
@@ -36,5 +36,5 @@ input IStorePropertyValue {
|
|
|
36
36
|
"""
|
|
37
37
|
Specifies the nature of the value
|
|
38
38
|
"""
|
|
39
|
-
valueReference:
|
|
39
|
+
valueReference: ObjectOrString!
|
|
40
40
|
}
|
package/dist/esm/package.json
CHANGED
|
@@ -249,7 +249,7 @@ export type IStorePropertyValue = {
|
|
|
249
249
|
/** Property value. May hold a string or the string representation of an object. */
|
|
250
250
|
value: Scalars['ObjectOrString'];
|
|
251
251
|
/** Specifies the nature of the value */
|
|
252
|
-
valueReference: Scalars['
|
|
252
|
+
valueReference: Scalars['ObjectOrString'];
|
|
253
253
|
};
|
|
254
254
|
/** Selected search facet input. */
|
|
255
255
|
export type IStoreSelectedFacet = {
|
|
@@ -936,7 +936,7 @@ export type StorePropertyValue = {
|
|
|
936
936
|
/** Property value. May hold a string or the string representation of an object. */
|
|
937
937
|
value: Scalars['ObjectOrString'];
|
|
938
938
|
/** Specifies the nature of the value */
|
|
939
|
-
valueReference: Scalars['
|
|
939
|
+
valueReference: Scalars['ObjectOrString'];
|
|
940
940
|
};
|
|
941
941
|
/**
|
|
942
942
|
* Redirect informations, including url returned by the query.
|
|
@@ -136,6 +136,7 @@ export interface Item {
|
|
|
136
136
|
itemId: string;
|
|
137
137
|
amount: number;
|
|
138
138
|
}>;
|
|
139
|
+
attributes: Attribute[];
|
|
139
140
|
}
|
|
140
141
|
export interface CommertialOffer {
|
|
141
142
|
DeliverySlaSamplesPerRegion: Record<string, {
|
|
@@ -203,4 +204,10 @@ interface SpecificationGroup {
|
|
|
203
204
|
values: string[];
|
|
204
205
|
}>;
|
|
205
206
|
}
|
|
207
|
+
export interface Attribute {
|
|
208
|
+
id: string;
|
|
209
|
+
name: string;
|
|
210
|
+
value: string;
|
|
211
|
+
visible: boolean;
|
|
212
|
+
}
|
|
206
213
|
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Options, Context } from '../../';
|
|
2
|
+
export type SearchEvent = {
|
|
3
|
+
type: 'search.query';
|
|
4
|
+
text: string;
|
|
5
|
+
misspelled: boolean;
|
|
6
|
+
match: number;
|
|
7
|
+
operator: 'and' | 'or';
|
|
8
|
+
locale: string;
|
|
9
|
+
session?: string;
|
|
10
|
+
anonymous?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const SP: ({ account }: Options, _: Context) => {
|
|
13
|
+
sendEvent: (options: SearchEvent) => Promise<any>;
|
|
14
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client for SP, Intelligent search's analytics event API
|
|
3
|
+
* More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
|
|
4
|
+
*/
|
|
5
|
+
import { fetchAPI } from '../fetch';
|
|
6
|
+
const THIRTY_MINUTES_S = 30 * 60;
|
|
7
|
+
const ONE_YEAR_S = 365 * 24 * 3600;
|
|
8
|
+
const randomUUID = () => (Math.random() * 1e6).toFixed(0);
|
|
9
|
+
const timelapsed = (past) => (Date.now() - past) / 1e3;
|
|
10
|
+
const createId = (expiresSecond) => {
|
|
11
|
+
let payload = randomUUID();
|
|
12
|
+
let createdAt = Date.now();
|
|
13
|
+
return () => {
|
|
14
|
+
if (timelapsed(createdAt) > expiresSecond) {
|
|
15
|
+
payload = randomUUID();
|
|
16
|
+
createdAt = Date.now();
|
|
17
|
+
}
|
|
18
|
+
return payload;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const user = {
|
|
22
|
+
anonymous: createId(ONE_YEAR_S),
|
|
23
|
+
session: createId(THIRTY_MINUTES_S),
|
|
24
|
+
};
|
|
25
|
+
export const SP = ({ account }, _) => {
|
|
26
|
+
const base = `https://sp.vtex.com/event-api/v1/${account}/event`;
|
|
27
|
+
const sendEvent = (options) => {
|
|
28
|
+
return fetchAPI(base, {
|
|
29
|
+
method: 'POST',
|
|
30
|
+
body: JSON.stringify({
|
|
31
|
+
...options,
|
|
32
|
+
agent: '@faststore/api',
|
|
33
|
+
anonymous: user.anonymous(), // 'zZlNhqz1vFJP6iPG5Oqtt'
|
|
34
|
+
session: user.session(), // 'Om1TNluGvgmSgU5OOTvkkd'
|
|
35
|
+
}),
|
|
36
|
+
headers: {
|
|
37
|
+
'content-type': 'application/json',
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
sendEvent,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/platforms/vtex/clients/sp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGnC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,CAAA;AAChC,MAAM,UAAU,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAA;AAElC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEzD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAA;AAE9D,MAAM,QAAQ,GAAG,CAAC,aAAqB,EAAE,EAAE;IACzC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAA;IAC1B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE1B,OAAO,GAAG,EAAE;QACV,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,EAAE,CAAC;YAC1C,OAAO,GAAG,UAAU,EAAE,CAAA;YACtB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC;CACpC,CAAA;AAaD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAW,EAAE,CAAU,EAAE,EAAE;IACrD,MAAM,IAAI,GAAG,oCAAoC,OAAO,QAAQ,CAAA;IAEhE,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAE,EAAE;QACzC,OAAO,QAAQ,CAAC,IAAI,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,OAAO;gBACV,KAAK,EAAE,gBAAgB;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,0BAA0B;gBACvD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,2BAA2B;aACrD,CAAC;YACF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { canonicalFromProduct } from '../utils/canonical';
|
|
|
2
2
|
import { enhanceCommercialOffer } from '../utils/enhanceCommercialOffer';
|
|
3
3
|
import { bestOfferFirst } from '../utils/productStock';
|
|
4
4
|
import { slugify } from '../utils/slugify';
|
|
5
|
-
import { attachmentToPropertyValue, VALUE_REFERENCES, } from '../utils/propertyValue';
|
|
5
|
+
import { attachmentToPropertyValue, attributeToPropertyValue, VALUE_REFERENCES, } from '../utils/propertyValue';
|
|
6
6
|
const DEFAULT_IMAGE = {
|
|
7
7
|
imageText: 'image',
|
|
8
8
|
imageUrl: 'https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg',
|
|
@@ -79,14 +79,19 @@ export const StoreProduct = {
|
|
|
79
79
|
isVariantOf: (root) => root,
|
|
80
80
|
additionalProperty: ({
|
|
81
81
|
// Search uses the name variations for specifications
|
|
82
|
-
variations: specifications = [], attachmentsValues = [], }) => {
|
|
82
|
+
variations: specifications = [], attachmentsValues = [], attributes = [], }) => {
|
|
83
83
|
const propertyValueSpecifications = specifications.flatMap(({ name, values }) => values.map((value) => ({
|
|
84
84
|
name,
|
|
85
85
|
value,
|
|
86
86
|
valueReference: VALUE_REFERENCES.specification,
|
|
87
87
|
})));
|
|
88
88
|
const propertyValueAttachments = attachmentsValues.map(attachmentToPropertyValue);
|
|
89
|
-
|
|
89
|
+
const propertyValueAttributes = attributes.map(attributeToPropertyValue);
|
|
90
|
+
return [
|
|
91
|
+
...propertyValueSpecifications,
|
|
92
|
+
...propertyValueAttachments,
|
|
93
|
+
...propertyValueAttributes,
|
|
94
|
+
];
|
|
90
95
|
},
|
|
91
96
|
releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? '',
|
|
92
97
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/product.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/product.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getPropertyId } from '../utils/propertyValue';
|
|
2
2
|
export const StorePropertyValue = {
|
|
3
|
-
propertyID: (root) => getPropertyId(root),
|
|
3
|
+
propertyID: (root) => root.propertyID || getPropertyId(root),
|
|
4
4
|
name: ({ name }) => name,
|
|
5
5
|
value: ({ value }) => value,
|
|
6
6
|
valueReference: ({ valueReference }) => valueReference,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyValue.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/propertyValue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAItD,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAChE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"propertyValue.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/resolvers/propertyValue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAItD,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAChE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI;IACxB,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK;IAC3B,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,cAAc;CACvD,CAAA"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import type { IStorePropertyValue } from '../../../__generated__/schema';
|
|
2
2
|
import type { Attachment } from '../clients/commerce/types/OrderForm';
|
|
3
|
+
import type { Attribute } from '../clients/search/types/ProductSearchResult';
|
|
3
4
|
export declare const VALUE_REFERENCES: {
|
|
4
5
|
readonly attachment: "ATTACHMENT";
|
|
5
6
|
readonly specification: "SPECIFICATION";
|
|
7
|
+
readonly attribute: "ATTRIBUTE";
|
|
6
8
|
};
|
|
7
9
|
export declare function attachmentToPropertyValue(attachment: Attachment): {
|
|
8
10
|
name: string;
|
|
9
11
|
value: Record<string, string>;
|
|
10
12
|
valueReference: "ATTACHMENT";
|
|
11
13
|
};
|
|
14
|
+
export declare function attributeToPropertyValue(attribute: Attribute): {
|
|
15
|
+
propertyID: string;
|
|
16
|
+
name: string;
|
|
17
|
+
value: string;
|
|
18
|
+
valueReference: {
|
|
19
|
+
valueReference: "ATTRIBUTE";
|
|
20
|
+
visible: boolean;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
12
23
|
export declare function getPropertyId(item: IStorePropertyValue): string;
|
|
@@ -2,6 +2,7 @@ import { md5 } from './md5';
|
|
|
2
2
|
export const VALUE_REFERENCES = {
|
|
3
3
|
attachment: 'ATTACHMENT',
|
|
4
4
|
specification: 'SPECIFICATION',
|
|
5
|
+
attribute: 'ATTRIBUTE',
|
|
5
6
|
};
|
|
6
7
|
export function attachmentToPropertyValue(attachment) {
|
|
7
8
|
return {
|
|
@@ -10,6 +11,17 @@ export function attachmentToPropertyValue(attachment) {
|
|
|
10
11
|
valueReference: VALUE_REFERENCES.attachment,
|
|
11
12
|
};
|
|
12
13
|
}
|
|
14
|
+
export function attributeToPropertyValue(attribute) {
|
|
15
|
+
return {
|
|
16
|
+
propertyID: attribute.id,
|
|
17
|
+
name: attribute.name,
|
|
18
|
+
value: attribute.value,
|
|
19
|
+
valueReference: {
|
|
20
|
+
valueReference: VALUE_REFERENCES.attribute,
|
|
21
|
+
visible: attribute.visible,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
13
25
|
export function getPropertyId(item) {
|
|
14
26
|
return md5(`${item.name}:${JSON.stringify(item.value)}:${item.valueReference}`);
|
|
15
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyValue.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/propertyValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"propertyValue.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/propertyValue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;CACd,CAAA;AAEV,MAAM,UAAU,yBAAyB,CAAC,UAAsB;IAC9D,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,UAAU,CAAC,OAAO;QACzB,cAAc,EAAE,gBAAgB,CAAC,UAAU;KAC5C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAoB;IAC3D,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,EAAE;QACxB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,cAAc,EAAE;YACd,cAAc,EAAE,gBAAgB,CAAC,SAAS;YAC1C,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAyB;IACrD,OAAO,GAAG,CACR,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CACpE,CAAA;AACH,CAAC"}
|
|
@@ -17,7 +17,7 @@ type StorePropertyValue {
|
|
|
17
17
|
"""
|
|
18
18
|
Specifies the nature of the value
|
|
19
19
|
"""
|
|
20
|
-
valueReference:
|
|
20
|
+
valueReference: ObjectOrString!
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
input IStorePropertyValue {
|
|
@@ -36,5 +36,5 @@ input IStorePropertyValue {
|
|
|
36
36
|
"""
|
|
37
37
|
Specifies the nature of the value
|
|
38
38
|
"""
|
|
39
|
-
valueReference:
|
|
39
|
+
valueReference: ObjectOrString!
|
|
40
40
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/api",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.21",
|
|
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": "ef086297cc7d6882d73138b5d8aa60a8713c7136"
|
|
80
80
|
}
|
|
@@ -259,7 +259,7 @@ export type IStorePropertyValue = {
|
|
|
259
259
|
/** Property value. May hold a string or the string representation of an object. */
|
|
260
260
|
value: Scalars['ObjectOrString'];
|
|
261
261
|
/** Specifies the nature of the value */
|
|
262
|
-
valueReference: Scalars['
|
|
262
|
+
valueReference: Scalars['ObjectOrString'];
|
|
263
263
|
};
|
|
264
264
|
|
|
265
265
|
/** Selected search facet input. */
|
|
@@ -1026,7 +1026,7 @@ export type StorePropertyValue = {
|
|
|
1026
1026
|
/** Property value. May hold a string or the string representation of an object. */
|
|
1027
1027
|
value: Scalars['ObjectOrString'];
|
|
1028
1028
|
/** Specifies the nature of the value */
|
|
1029
|
-
valueReference: Scalars['
|
|
1029
|
+
valueReference: Scalars['ObjectOrString'];
|
|
1030
1030
|
};
|
|
1031
1031
|
|
|
1032
1032
|
/**
|
|
@@ -140,6 +140,7 @@ export interface Item {
|
|
|
140
140
|
itemId: string
|
|
141
141
|
amount: number
|
|
142
142
|
}>
|
|
143
|
+
attributes: Attribute[]
|
|
143
144
|
}
|
|
144
145
|
|
|
145
146
|
export interface CommertialOffer {
|
|
@@ -214,3 +215,10 @@ interface SpecificationGroup {
|
|
|
214
215
|
values: string[]
|
|
215
216
|
}>
|
|
216
217
|
}
|
|
218
|
+
|
|
219
|
+
export interface Attribute {
|
|
220
|
+
id: string
|
|
221
|
+
name: string
|
|
222
|
+
value: string
|
|
223
|
+
visible: boolean
|
|
224
|
+
}
|
|
@@ -8,6 +8,7 @@ import type { PromiseType } from '../../../typings'
|
|
|
8
8
|
import type { Query } from './query'
|
|
9
9
|
import {
|
|
10
10
|
attachmentToPropertyValue,
|
|
11
|
+
attributeToPropertyValue,
|
|
11
12
|
VALUE_REFERENCES,
|
|
12
13
|
} from '../utils/propertyValue'
|
|
13
14
|
import type { Attachment } from '../clients/commerce/types/OrderForm'
|
|
@@ -129,6 +130,7 @@ export const StoreProduct: Record<string, Resolver<Root>> & {
|
|
|
129
130
|
// Search uses the name variations for specifications
|
|
130
131
|
variations: specifications = [],
|
|
131
132
|
attachmentsValues = [],
|
|
133
|
+
attributes = [],
|
|
132
134
|
}) => {
|
|
133
135
|
const propertyValueSpecifications = specifications.flatMap(
|
|
134
136
|
({ name, values }) =>
|
|
@@ -143,7 +145,13 @@ export const StoreProduct: Record<string, Resolver<Root>> & {
|
|
|
143
145
|
attachmentToPropertyValue
|
|
144
146
|
)
|
|
145
147
|
|
|
146
|
-
|
|
148
|
+
const propertyValueAttributes = attributes.map(attributeToPropertyValue)
|
|
149
|
+
|
|
150
|
+
return [
|
|
151
|
+
...propertyValueSpecifications,
|
|
152
|
+
...propertyValueAttachments,
|
|
153
|
+
...propertyValueAttributes,
|
|
154
|
+
]
|
|
147
155
|
},
|
|
148
156
|
releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? '',
|
|
149
157
|
}
|
|
@@ -5,7 +5,7 @@ import { getPropertyId } from '../utils/propertyValue'
|
|
|
5
5
|
export type Root = StorePropertyValueType
|
|
6
6
|
|
|
7
7
|
export const StorePropertyValue: Record<string, Resolver<Root>> = {
|
|
8
|
-
propertyID: (root) => getPropertyId(root),
|
|
8
|
+
propertyID: (root) => root.propertyID || getPropertyId(root),
|
|
9
9
|
name: ({ name }) => name,
|
|
10
10
|
value: ({ value }) => value,
|
|
11
11
|
valueReference: ({ valueReference }) => valueReference,
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { IStorePropertyValue } from '../../../__generated__/schema'
|
|
2
2
|
import type { Attachment } from '../clients/commerce/types/OrderForm'
|
|
3
|
+
import type { Attribute } from '../clients/search/types/ProductSearchResult'
|
|
3
4
|
import { md5 } from './md5'
|
|
4
5
|
|
|
5
6
|
export const VALUE_REFERENCES = {
|
|
6
7
|
attachment: 'ATTACHMENT',
|
|
7
8
|
specification: 'SPECIFICATION',
|
|
9
|
+
attribute: 'ATTRIBUTE',
|
|
8
10
|
} as const
|
|
9
11
|
|
|
10
12
|
export function attachmentToPropertyValue(attachment: Attachment) {
|
|
@@ -15,6 +17,18 @@ export function attachmentToPropertyValue(attachment: Attachment) {
|
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
19
|
|
|
20
|
+
export function attributeToPropertyValue(attribute: Attribute) {
|
|
21
|
+
return {
|
|
22
|
+
propertyID: attribute.id,
|
|
23
|
+
name: attribute.name,
|
|
24
|
+
value: attribute.value,
|
|
25
|
+
valueReference: {
|
|
26
|
+
valueReference: VALUE_REFERENCES.attribute,
|
|
27
|
+
visible: attribute.visible,
|
|
28
|
+
},
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
18
32
|
export function getPropertyId(item: IStorePropertyValue) {
|
|
19
33
|
return md5(
|
|
20
34
|
`${item.name}:${JSON.stringify(item.value)}:${item.valueReference}`
|
|
@@ -17,7 +17,7 @@ type StorePropertyValue {
|
|
|
17
17
|
"""
|
|
18
18
|
Specifies the nature of the value
|
|
19
19
|
"""
|
|
20
|
-
valueReference:
|
|
20
|
+
valueReference: ObjectOrString!
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
input IStorePropertyValue {
|
|
@@ -36,5 +36,5 @@ input IStorePropertyValue {
|
|
|
36
36
|
"""
|
|
37
37
|
Specifies the nature of the value
|
|
38
38
|
"""
|
|
39
|
-
valueReference:
|
|
39
|
+
valueReference: ObjectOrString!
|
|
40
40
|
}
|