@faststore/api 3.0.7 → 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.
Files changed (40) hide show
  1. package/dist/cjs/package.json +3 -3
  2. package/dist/cjs/src/__generated__/schema.d.ts +2 -2
  3. package/dist/cjs/src/platforms/vtex/clients/search/types/ProductSearchResult.d.ts +7 -0
  4. package/dist/cjs/src/platforms/vtex/clients/sp/index.d.ts +14 -0
  5. package/dist/cjs/src/platforms/vtex/clients/sp/index.js +49 -0
  6. package/dist/cjs/src/platforms/vtex/clients/sp/index.js.map +1 -0
  7. package/dist/cjs/src/platforms/vtex/resolvers/product.js +7 -2
  8. package/dist/cjs/src/platforms/vtex/resolvers/product.js.map +1 -1
  9. package/dist/cjs/src/platforms/vtex/resolvers/propertyValue.js +1 -1
  10. package/dist/cjs/src/platforms/vtex/resolvers/propertyValue.js.map +1 -1
  11. package/dist/cjs/src/platforms/vtex/utils/propertyValue.d.ts +11 -0
  12. package/dist/cjs/src/platforms/vtex/utils/propertyValue.js +14 -1
  13. package/dist/cjs/src/platforms/vtex/utils/propertyValue.js.map +1 -1
  14. package/dist/cjs/src/platforms/vtex/utils/skuVariants.js +10 -3
  15. package/dist/cjs/src/platforms/vtex/utils/skuVariants.js.map +1 -1
  16. package/dist/cjs/src/typeDefs/propertyValue.graphql +2 -2
  17. package/dist/esm/package.json +3 -3
  18. package/dist/esm/src/__generated__/schema.d.ts +2 -2
  19. package/dist/esm/src/platforms/vtex/clients/search/types/ProductSearchResult.d.ts +7 -0
  20. package/dist/esm/src/platforms/vtex/clients/sp/index.d.ts +14 -0
  21. package/dist/esm/src/platforms/vtex/clients/sp/index.js +45 -0
  22. package/dist/esm/src/platforms/vtex/clients/sp/index.js.map +1 -0
  23. package/dist/esm/src/platforms/vtex/resolvers/product.js +8 -3
  24. package/dist/esm/src/platforms/vtex/resolvers/product.js.map +1 -1
  25. package/dist/esm/src/platforms/vtex/resolvers/propertyValue.js +1 -1
  26. package/dist/esm/src/platforms/vtex/resolvers/propertyValue.js.map +1 -1
  27. package/dist/esm/src/platforms/vtex/utils/propertyValue.d.ts +11 -0
  28. package/dist/esm/src/platforms/vtex/utils/propertyValue.js +12 -0
  29. package/dist/esm/src/platforms/vtex/utils/propertyValue.js.map +1 -1
  30. package/dist/esm/src/platforms/vtex/utils/skuVariants.js +10 -3
  31. package/dist/esm/src/platforms/vtex/utils/skuVariants.js.map +1 -1
  32. package/dist/esm/src/typeDefs/propertyValue.graphql +2 -2
  33. package/package.json +2 -2
  34. package/src/__generated__/schema.ts +2 -2
  35. package/src/platforms/vtex/clients/search/types/ProductSearchResult.ts +8 -0
  36. package/src/platforms/vtex/resolvers/product.ts +9 -1
  37. package/src/platforms/vtex/resolvers/propertyValue.ts +1 -1
  38. package/src/platforms/vtex/utils/propertyValue.ts +14 -0
  39. package/src/platforms/vtex/utils/skuVariants.ts +24 -7
  40. package/src/typeDefs/propertyValue.graphql +2 -2
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/api",
3
- "version": "3.0.4",
3
+ "version": "3.0.20",
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.3",
54
- "@faststore/shared": "^3.0.3",
53
+ "@faststore/eslint-config": "^3.0.7",
54
+ "@faststore/shared": "^3.0.7",
55
55
  "@graphql-codegen/cli": "2.2.0",
56
56
  "@graphql-codegen/typescript": "2.2.2",
57
57
  "@types/express": "^4.17.16",
@@ -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['String'];
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['String'];
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
- return [...propertyValueSpecifications, ...propertyValueAttachments];
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":"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"}
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;IACzC,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
+ {"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":";;;AAEA,+BAA2B;AAEd,QAAA,gBAAgB,GAAG;IAC9B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;CACtB,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,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"}
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"}
@@ -2,8 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFormattedVariations = exports.getVariantsByName = exports.getActiveSkuVariations = exports.createSlugsMap = void 0;
4
4
  const SKU_IMAGE_LABEL = 'skuvariation';
5
- function findSkuVariantImage(availableImages) {
6
- return (availableImages.find((imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL) ?? availableImages[0]);
5
+ function findSkuVariantImage(availableImages, variationName) {
6
+ const variationSpecificImageLabel = `${SKU_IMAGE_LABEL}${variationName}`.toLowerCase();
7
+ const variationSpecificImage = availableImages.find((imageProperties) => imageProperties.imageLabel === variationSpecificImageLabel);
8
+ if (variationSpecificImage) {
9
+ return variationSpecificImage;
10
+ }
11
+ const skuImage = availableImages.find((imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL);
12
+ return skuImage ? skuImage : availableImages[0];
7
13
  }
8
14
  function createSlugsMap(variants, dominantVariantName, baseSlug) {
9
15
  /**
@@ -90,7 +96,6 @@ function getFormattedVariations(variants, dominantVariantName, dominantVariantVa
90
96
  if (variant.variations.length === 0) {
91
97
  return;
92
98
  }
93
- const variantImageToUse = findSkuVariantImage(variant.images);
94
99
  const dominantVariantEntry = variant.variations.find((variation) => variation.name === dominantVariantName);
95
100
  const matchesDominantVariant = dominantVariantEntry?.values[0] === dominantVariantValue;
96
101
  if (!matchesDominantVariant) {
@@ -100,6 +105,7 @@ function getFormattedVariations(variants, dominantVariantName, dominantVariantVa
100
105
  return;
101
106
  }
102
107
  previouslySeenPropertyValues.add(nameValueIdentifier);
108
+ const variantImageToUse = findSkuVariantImage(variant.images, dominantVariantName);
103
109
  const formattedVariant = {
104
110
  src: variantImageToUse.imageUrl,
105
111
  alt: variantImageToUse.imageLabel ?? '',
@@ -120,6 +126,7 @@ function getFormattedVariations(variants, dominantVariantName, dominantVariantVa
120
126
  return;
121
127
  }
122
128
  previouslySeenPropertyValues.add(nameValueIdentifier);
129
+ const variantImageToUse = findSkuVariantImage(variant.images, variationProperty.name);
123
130
  const formattedVariant = {
124
131
  src: variantImageToUse.imageUrl,
125
132
  alt: variantImageToUse.imageText ?? '',
@@ -1 +1 @@
1
- {"version":3,"file":"skuVariants.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/skuVariants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skuVariants.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/skuVariants.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ type StorePropertyValue {
17
17
  """
18
18
  Specifies the nature of the value
19
19
  """
20
- valueReference: String!
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: String!
39
+ valueReference: ObjectOrString!
40
40
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/api",
3
- "version": "3.0.4",
3
+ "version": "3.0.20",
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.3",
54
- "@faststore/shared": "^3.0.3",
53
+ "@faststore/eslint-config": "^3.0.7",
54
+ "@faststore/shared": "^3.0.7",
55
55
  "@graphql-codegen/cli": "2.2.0",
56
56
  "@graphql-codegen/typescript": "2.2.2",
57
57
  "@types/express": "^4.17.16",
@@ -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['String'];
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['String'];
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
- return [...propertyValueSpecifications, ...propertyValueAttachments];
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":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAK1C,OAAO,EACL,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AAU/B,MAAM,aAAa,GAAG;IACpB,SAAS,EAAE,OAAO;IAClB,QAAQ,EACN,6GAA6G;IAC/G,UAAU,EAAE,OAAO;CACpB,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAA;AAC7D,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;AACvE,MAAM,aAAa,GAAG,CAAI,KAA6B,EAAE,EAAE,CACzD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAEzD,MAAM,CAAC,MAAM,YAAY,GAUrB;IACF,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM;IACjC,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,WAAW,CAAC,WAAW;IAChE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1E,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW;IAC9D,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACzB,KAAK,EAAE,WAAW,CAAC,WAAW;QAC9B,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC;KAC7C,CAAC;IACF,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,cAAc,EAAE,CAAC,EACf,WAAW,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,EAClD,MAAM,GACP,EAAE,EAAE;QACH,OAAO;YACL,eAAe,EAAE;gBACf,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;oBAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBAE5C,OAAO;wBACL,IAAI;wBACJ,IAAI;wBACJ,QAAQ,EAAE,KAAK,GAAG,CAAC;qBACpB,CAAA;gBACH,CAAC,CAAC;gBACF;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;oBAC/B,QAAQ,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;iBAChC;aACF;YACD,aAAa,EAAE,UAAU,CAAC,MAAM;SACjC,CAAA;IACH,CAAC;IACD,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,cAAc,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CACnE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,aAAa,EAAE,SAAS,IAAI,EAAE;YAC9B,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;YACzD,QAAQ,EAAE,UAAU;SACrB,CAAC,CACH,CAAA;QAED,IAAG,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAA6B,CAAA;QAEtD,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,CAAA;QAE1C,sGAAsG;QACtG,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAA;QACnB,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;QAEvC,IAAI,cAAc,GAAG,YAAY;YAC/B,CAAC,CAAC,cAAc,CAAC,MAAM,CACnB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,KAAK,OAAO,CAC3D;YACH,CAAC,CAAC,cAAc,CAAA;QAElB,cAAc;YACZ,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAA;QAE/D,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC;IACD,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM;IAC3B,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;IAChB,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf,IAAI,CAAC,OAAO;SACT,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACd,sBAAsB,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC,eAAe;QAC7B,MAAM;QACN,OAAO,EAAE,IAAI;KACd,CAAC,CACH;SACA,IAAI,CAAC,cAAc,CAAC;IACzB,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI;IAC3B,kBAAkB,EAAE,CAAC;IACnB,qDAAqD;IACrD,UAAU,EAAE,cAAc,GAAG,EAAE,EAC/B,iBAAiB,GAAG,EAAE,GACvB,EAAE,EAAE;QACH,MAAM,2BAA2B,GAAG,cAAc,CAAC,OAAO,CACxD,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CACnB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrB,IAAI;YACJ,KAAK;YACL,cAAc,EAAE,gBAAgB,CAAC,aAAa;SAC/C,CAAC,CAAC,CACN,CAAA;QAED,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,GAAG,CACpD,yBAAyB,CAC1B,CAAA;QAED,OAAO,CAAC,GAAG,2BAA2B,EAAE,GAAG,wBAAwB,CAAC,CAAA;IACtE,CAAC;IACD,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;CACrE,CAAA"}
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;IACzC,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
+ {"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":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;CACtB,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,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"}
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"}
@@ -1,6 +1,12 @@
1
1
  const SKU_IMAGE_LABEL = 'skuvariation';
2
- function findSkuVariantImage(availableImages) {
3
- return (availableImages.find((imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL) ?? availableImages[0]);
2
+ function findSkuVariantImage(availableImages, variationName) {
3
+ const variationSpecificImageLabel = `${SKU_IMAGE_LABEL}${variationName}`.toLowerCase();
4
+ const variationSpecificImage = availableImages.find((imageProperties) => imageProperties.imageLabel === variationSpecificImageLabel);
5
+ if (variationSpecificImage) {
6
+ return variationSpecificImage;
7
+ }
8
+ const skuImage = availableImages.find((imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL);
9
+ return skuImage ? skuImage : availableImages[0];
4
10
  }
5
11
  export function createSlugsMap(variants, dominantVariantName, baseSlug) {
6
12
  /**
@@ -84,7 +90,6 @@ export function getFormattedVariations(variants, dominantVariantName, dominantVa
84
90
  if (variant.variations.length === 0) {
85
91
  return;
86
92
  }
87
- const variantImageToUse = findSkuVariantImage(variant.images);
88
93
  const dominantVariantEntry = variant.variations.find((variation) => variation.name === dominantVariantName);
89
94
  const matchesDominantVariant = dominantVariantEntry?.values[0] === dominantVariantValue;
90
95
  if (!matchesDominantVariant) {
@@ -94,6 +99,7 @@ export function getFormattedVariations(variants, dominantVariantName, dominantVa
94
99
  return;
95
100
  }
96
101
  previouslySeenPropertyValues.add(nameValueIdentifier);
102
+ const variantImageToUse = findSkuVariantImage(variant.images, dominantVariantName);
97
103
  const formattedVariant = {
98
104
  src: variantImageToUse.imageUrl,
99
105
  alt: variantImageToUse.imageLabel ?? '',
@@ -114,6 +120,7 @@ export function getFormattedVariations(variants, dominantVariantName, dominantVa
114
120
  return;
115
121
  }
116
122
  previouslySeenPropertyValues.add(nameValueIdentifier);
123
+ const variantImageToUse = findSkuVariantImage(variant.images, variationProperty.name);
117
124
  const formattedVariant = {
118
125
  src: variantImageToUse.imageUrl,
119
126
  alt: variantImageToUse.imageText ?? '',
@@ -1 +1 @@
1
- {"version":3,"file":"skuVariants.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/skuVariants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skuVariants.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/skuVariants.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ type StorePropertyValue {
17
17
  """
18
18
  Specifies the nature of the value
19
19
  """
20
- valueReference: String!
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: String!
39
+ valueReference: ObjectOrString!
40
40
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/api",
3
- "version": "3.0.7",
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": "1672bc9ba921b70b5f9acfa2845c8f566d29be16"
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['String'];
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['String'];
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
- return [...propertyValueSpecifications, ...propertyValueAttachments]
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}`
@@ -14,12 +14,27 @@ type FormattedSkuVariant = {
14
14
 
15
15
  const SKU_IMAGE_LABEL = 'skuvariation'
16
16
 
17
- function findSkuVariantImage(availableImages: Item['images']) {
18
- return (
19
- availableImages.find(
20
- (imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL
21
- ) ?? availableImages[0]
17
+ function findSkuVariantImage(
18
+ availableImages: Item['images'],
19
+ variationName?: string
20
+ ) {
21
+ const variationSpecificImageLabel =
22
+ `${SKU_IMAGE_LABEL}${variationName}`.toLowerCase()
23
+
24
+ const variationSpecificImage = availableImages.find(
25
+ (imageProperties) =>
26
+ imageProperties.imageLabel === variationSpecificImageLabel
27
+ )
28
+
29
+ if (variationSpecificImage) {
30
+ return variationSpecificImage
31
+ }
32
+
33
+ const skuImage = availableImages.find(
34
+ (imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL
22
35
  )
36
+
37
+ return skuImage ? skuImage : availableImages[0]
23
38
  }
24
39
 
25
40
  export function createSlugsMap(
@@ -143,8 +158,6 @@ export function getFormattedVariations(
143
158
  return
144
159
  }
145
160
 
146
- const variantImageToUse = findSkuVariantImage(variant.images)
147
-
148
161
  const dominantVariantEntry = variant.variations.find(
149
162
  (variation) => variation.name === dominantVariantName
150
163
  )
@@ -164,6 +177,8 @@ export function getFormattedVariations(
164
177
 
165
178
  previouslySeenPropertyValues.add(nameValueIdentifier)
166
179
 
180
+ const variantImageToUse = findSkuVariantImage(variant.images, dominantVariantName)
181
+
167
182
  const formattedVariant = {
168
183
  src: variantImageToUse.imageUrl,
169
184
  alt: variantImageToUse.imageLabel ?? '',
@@ -189,6 +204,8 @@ export function getFormattedVariations(
189
204
 
190
205
  previouslySeenPropertyValues.add(nameValueIdentifier)
191
206
 
207
+ const variantImageToUse = findSkuVariantImage(variant.images, variationProperty.name)
208
+
192
209
  const formattedVariant = {
193
210
  src: variantImageToUse.imageUrl,
194
211
  alt: variantImageToUse.imageText ?? '',
@@ -17,7 +17,7 @@ type StorePropertyValue {
17
17
  """
18
18
  Specifies the nature of the value
19
19
  """
20
- valueReference: String!
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: String!
39
+ valueReference: ObjectOrString!
40
40
  }