@faststore/api 3.0.3 → 3.0.4

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/api",
3
- "version": "3.0.2",
3
+ "version": "3.0.3",
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.1",
54
- "@faststore/shared": "^3.0.1",
53
+ "@faststore/eslint-config": "^3.0.3",
54
+ "@faststore/shared": "^3.0.3",
55
55
  "@graphql-codegen/cli": "2.2.0",
56
56
  "@graphql-codegen/typescript": "2.2.2",
57
57
  "@types/express": "^4.17.16",
@@ -887,6 +887,11 @@ export type StoreProduct = {
887
887
  /** Corresponding collection URL slug, with which to retrieve this entity. */
888
888
  slug: Scalars['String'];
889
889
  };
890
+ /** Product information. Products are variants within product groups, equivalent to VTEX [SKUs](https://help.vtex.com/en/tutorial/what-is-an-sku--1K75s4RXAQyOuGUYKMM68u#). For example, you may have a **Shirt** product group with associated products such as **Blue shirt size L**, **Green shirt size XL** and so on. */
891
+ export type StoreProductImageArgs = {
892
+ context?: Maybe<Scalars['String']>;
893
+ limit?: Maybe<Scalars['Int']>;
894
+ };
890
895
  /** Product connections, including pagination information and products returned by the query. */
891
896
  export type StoreProductConnection = {
892
897
  __typename?: 'StoreProductConnection';
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/__generated__/schema.ts"],"names":[],"mappings":";;AAgvBC,CAAC;AA+DD,CAAC;AAgTD,CAAC;AAOD,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/__generated__/schema.ts"],"names":[],"mappings":";;AAgvBC,CAAC;AA+DD,CAAC;AAuTD,CAAC;AAOD,CAAC"}
@@ -14,6 +14,7 @@ export declare const getResolvers: (options: Options) => {
14
14
  StoreProduct: Record<string, import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/product").Root>> & {
15
15
  offers: import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/product").Root, any, import("./platforms/vtex/utils/enhanceCommercialOffer").EnhancedCommercialOffer<import("./platforms/vtex/clients/search/types/ProductSearchResult").Seller, import("./platforms/vtex/resolvers/product").Root>[]>;
16
16
  isVariantOf: import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/product").Root, any, import("./platforms/vtex/resolvers/product").Root>;
17
+ image: import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/product").Root, any, import("./__generated__/schema").StoreImage[]>;
17
18
  };
18
19
  StoreSeo: Record<string, import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/seo").Root>>;
19
20
  StoreFacet: Record<string, import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/facet").Root>>;
@@ -43,6 +43,7 @@ export declare const getResolvers: (_: Options) => {
43
43
  StoreProduct: Record<string, Resolver<import("./resolvers/product").Root>> & {
44
44
  offers: Resolver<import("./resolvers/product").Root, any, import("./utils/enhanceCommercialOffer").EnhancedCommercialOffer<import("./clients/search/types/ProductSearchResult").Seller, import("./resolvers/product").Root>[]>;
45
45
  isVariantOf: Resolver<import("./resolvers/product").Root, any, import("./resolvers/product").Root>;
46
+ image: Resolver<import("./resolvers/product").Root, any, import("../..").StoreImage[]>;
46
47
  };
47
48
  StoreSeo: Record<string, Resolver<import("./resolvers/seo").Root>>;
48
49
  StoreFacet: Record<string, Resolver<import("./resolvers/facet").Root>>;
@@ -3,6 +3,7 @@ import type { Resolver } from '..';
3
3
  import type { PromiseType } from '../../../typings';
4
4
  import type { Query } from './query';
5
5
  import type { Attachment } from '../clients/commerce/types/OrderForm';
6
+ import { StoreImage } from '../../..';
6
7
  type QueryProduct = PromiseType<ReturnType<typeof Query.product>>;
7
8
  export type Root = QueryProduct & {
8
9
  attachmentsValues?: Attachment[];
@@ -10,5 +11,6 @@ export type Root = QueryProduct & {
10
11
  export declare const StoreProduct: Record<string, Resolver<Root>> & {
11
12
  offers: Resolver<Root, any, Array<EnhancedCommercialOffer<Root['sellers'][number], Root>>>;
12
13
  isVariantOf: Resolver<Root, any, Root>;
14
+ image: Resolver<Root, any, StoreImage[]>;
13
15
  };
14
16
  export {};
@@ -9,6 +9,7 @@ const propertyValue_1 = require("../utils/propertyValue");
9
9
  const DEFAULT_IMAGE = {
10
10
  imageText: 'image',
11
11
  imageUrl: 'https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg',
12
+ imageLabel: 'label',
12
13
  };
13
14
  const getSlug = (link, id) => `${link}-${id}`;
14
15
  const getPath = (link, id) => `/${getSlug(link, id)}/p`;
@@ -46,10 +47,27 @@ exports.StoreProduct = {
46
47
  numberOfItems: categories.length,
47
48
  };
48
49
  },
49
- image: ({ images }) => (nonEmptyArray(images) ?? [DEFAULT_IMAGE]).map(({ imageUrl, imageText }) => ({
50
- alternateName: imageText ?? '',
51
- url: imageUrl.replace('vteximg.com.br', 'vtexassets.com'),
52
- })),
50
+ image: ({ images }, args) => {
51
+ const resolvedImages = (nonEmptyArray(images) ?? [DEFAULT_IMAGE]).map(({ imageUrl, imageText, imageLabel }) => ({
52
+ alternateName: imageText ?? '',
53
+ url: imageUrl.replace('vteximg.com.br', 'vtexassets.com'),
54
+ keywords: imageLabel,
55
+ }));
56
+ if (typeof args !== 'object') {
57
+ return resolvedImages;
58
+ }
59
+ let { context, limit } = args;
60
+ const shouldFilter = context !== "generic";
61
+ // Normalize count to undefined as we want any negative value to always return the full list of images
62
+ limit = limit || -1;
63
+ limit = limit <= -1 ? undefined : limit;
64
+ let filteredImages = shouldFilter
65
+ ? resolvedImages.filter(({ keywords: imageKeywords }) => imageKeywords === context)
66
+ : resolvedImages;
67
+ filteredImages =
68
+ filteredImages.length === 0 ? resolvedImages : filteredImages;
69
+ return filteredImages.slice(0, limit);
70
+ },
53
71
  sku: ({ itemId }) => itemId,
54
72
  gtin: ({ referenceId }) => referenceId[0]?.Value ?? '',
55
73
  review: () => [],
@@ -73,6 +91,6 @@ exports.StoreProduct = {
73
91
  const propertyValueAttachments = attachmentsValues.map(propertyValue_1.attachmentToPropertyValue);
74
92
  return [...propertyValueSpecifications, ...propertyValueAttachments];
75
93
  },
76
- releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? ''
94
+ releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? '',
77
95
  };
78
96
  //# sourceMappingURL=product.js.map
@@ -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,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFormattedVariations = exports.getVariantsByName = exports.getActiveSkuVariations = exports.createSlugsMap = void 0;
4
+ const SKU_IMAGE_LABEL = 'skuvariation';
4
5
  function findSkuVariantImage(availableImages) {
5
- return (availableImages.find((imageProperties) => imageProperties.imageLabel === 'skuvariation') ?? availableImages[0]);
6
+ return (availableImages.find((imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL) ?? availableImages[0]);
6
7
  }
7
8
  function createSlugsMap(variants, dominantVariantName, baseSlug) {
8
9
  /**
@@ -121,7 +122,7 @@ function getFormattedVariations(variants, dominantVariantName, dominantVariantVa
121
122
  previouslySeenPropertyValues.add(nameValueIdentifier);
122
123
  const formattedVariant = {
123
124
  src: variantImageToUse.imageUrl,
124
- alt: variantImageToUse.imageLabel ?? '',
125
+ alt: variantImageToUse.imageText ?? '',
125
126
  label: `${variationProperty.name}: ${variationProperty.values[0]}`,
126
127
  value: variationProperty.values[0],
127
128
  };
@@ -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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"}
@@ -33,7 +33,7 @@ type StoreProduct {
33
33
  """
34
34
  Array of images.
35
35
  """
36
- image: [StoreImage!]!
36
+ image(context: String = "generic", limit: Int = -1): [StoreImage!]!
37
37
  """
38
38
  Aggregate offer information.
39
39
  """
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/api",
3
- "version": "3.0.2",
3
+ "version": "3.0.3",
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.1",
54
- "@faststore/shared": "^3.0.1",
53
+ "@faststore/eslint-config": "^3.0.3",
54
+ "@faststore/shared": "^3.0.3",
55
55
  "@graphql-codegen/cli": "2.2.0",
56
56
  "@graphql-codegen/typescript": "2.2.2",
57
57
  "@types/express": "^4.17.16",
@@ -887,6 +887,11 @@ export type StoreProduct = {
887
887
  /** Corresponding collection URL slug, with which to retrieve this entity. */
888
888
  slug: Scalars['String'];
889
889
  };
890
+ /** Product information. Products are variants within product groups, equivalent to VTEX [SKUs](https://help.vtex.com/en/tutorial/what-is-an-sku--1K75s4RXAQyOuGUYKMM68u#). For example, you may have a **Shirt** product group with associated products such as **Blue shirt size L**, **Green shirt size XL** and so on. */
891
+ export type StoreProductImageArgs = {
892
+ context?: Maybe<Scalars['String']>;
893
+ limit?: Maybe<Scalars['Int']>;
894
+ };
890
895
  /** Product connections, including pagination information and products returned by the query. */
891
896
  export type StoreProductConnection = {
892
897
  __typename?: 'StoreProductConnection';
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/__generated__/schema.ts"],"names":[],"mappings":"AAgvBC,CAAC;AA+DD,CAAC;AAgTD,CAAC;AAOD,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/__generated__/schema.ts"],"names":[],"mappings":"AAgvBC,CAAC;AA+DD,CAAC;AAuTD,CAAC;AAOD,CAAC"}
@@ -14,6 +14,7 @@ export declare const getResolvers: (options: Options) => {
14
14
  StoreProduct: Record<string, import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/product").Root>> & {
15
15
  offers: import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/product").Root, any, import("./platforms/vtex/utils/enhanceCommercialOffer").EnhancedCommercialOffer<import("./platforms/vtex/clients/search/types/ProductSearchResult").Seller, import("./platforms/vtex/resolvers/product").Root>[]>;
16
16
  isVariantOf: import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/product").Root, any, import("./platforms/vtex/resolvers/product").Root>;
17
+ image: import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/product").Root, any, import("./__generated__/schema").StoreImage[]>;
17
18
  };
18
19
  StoreSeo: Record<string, import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/seo").Root>>;
19
20
  StoreFacet: Record<string, import("./platforms/vtex").Resolver<import("./platforms/vtex/resolvers/facet").Root>>;
@@ -43,6 +43,7 @@ export declare const getResolvers: (_: Options) => {
43
43
  StoreProduct: Record<string, Resolver<import("./resolvers/product").Root>> & {
44
44
  offers: Resolver<import("./resolvers/product").Root, any, import("./utils/enhanceCommercialOffer").EnhancedCommercialOffer<import("./clients/search/types/ProductSearchResult").Seller, import("./resolvers/product").Root>[]>;
45
45
  isVariantOf: Resolver<import("./resolvers/product").Root, any, import("./resolvers/product").Root>;
46
+ image: Resolver<import("./resolvers/product").Root, any, import("../..").StoreImage[]>;
46
47
  };
47
48
  StoreSeo: Record<string, Resolver<import("./resolvers/seo").Root>>;
48
49
  StoreFacet: Record<string, Resolver<import("./resolvers/facet").Root>>;
@@ -3,6 +3,7 @@ import type { Resolver } from '..';
3
3
  import type { PromiseType } from '../../../typings';
4
4
  import type { Query } from './query';
5
5
  import type { Attachment } from '../clients/commerce/types/OrderForm';
6
+ import { StoreImage } from '../../..';
6
7
  type QueryProduct = PromiseType<ReturnType<typeof Query.product>>;
7
8
  export type Root = QueryProduct & {
8
9
  attachmentsValues?: Attachment[];
@@ -10,5 +11,6 @@ export type Root = QueryProduct & {
10
11
  export declare const StoreProduct: Record<string, Resolver<Root>> & {
11
12
  offers: Resolver<Root, any, Array<EnhancedCommercialOffer<Root['sellers'][number], Root>>>;
12
13
  isVariantOf: Resolver<Root, any, Root>;
14
+ image: Resolver<Root, any, StoreImage[]>;
13
15
  };
14
16
  export {};
@@ -6,6 +6,7 @@ import { attachmentToPropertyValue, VALUE_REFERENCES, } from '../utils/propertyV
6
6
  const DEFAULT_IMAGE = {
7
7
  imageText: 'image',
8
8
  imageUrl: 'https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg',
9
+ imageLabel: 'label',
9
10
  };
10
11
  const getSlug = (link, id) => `${link}-${id}`;
11
12
  const getPath = (link, id) => `/${getSlug(link, id)}/p`;
@@ -43,10 +44,27 @@ export const StoreProduct = {
43
44
  numberOfItems: categories.length,
44
45
  };
45
46
  },
46
- image: ({ images }) => (nonEmptyArray(images) ?? [DEFAULT_IMAGE]).map(({ imageUrl, imageText }) => ({
47
- alternateName: imageText ?? '',
48
- url: imageUrl.replace('vteximg.com.br', 'vtexassets.com'),
49
- })),
47
+ image: ({ images }, args) => {
48
+ const resolvedImages = (nonEmptyArray(images) ?? [DEFAULT_IMAGE]).map(({ imageUrl, imageText, imageLabel }) => ({
49
+ alternateName: imageText ?? '',
50
+ url: imageUrl.replace('vteximg.com.br', 'vtexassets.com'),
51
+ keywords: imageLabel,
52
+ }));
53
+ if (typeof args !== 'object') {
54
+ return resolvedImages;
55
+ }
56
+ let { context, limit } = args;
57
+ const shouldFilter = context !== "generic";
58
+ // Normalize count to undefined as we want any negative value to always return the full list of images
59
+ limit = limit || -1;
60
+ limit = limit <= -1 ? undefined : limit;
61
+ let filteredImages = shouldFilter
62
+ ? resolvedImages.filter(({ keywords: imageKeywords }) => imageKeywords === context)
63
+ : resolvedImages;
64
+ filteredImages =
65
+ filteredImages.length === 0 ? resolvedImages : filteredImages;
66
+ return filteredImages.slice(0, limit);
67
+ },
50
68
  sku: ({ itemId }) => itemId,
51
69
  gtin: ({ referenceId }) => referenceId[0]?.Value ?? '',
52
70
  review: () => [],
@@ -70,6 +88,6 @@ export const StoreProduct = {
70
88
  const propertyValueAttachments = attachmentsValues.map(attachmentToPropertyValue);
71
89
  return [...propertyValueSpecifications, ...propertyValueAttachments];
72
90
  },
73
- releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? ''
91
+ releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? '',
74
92
  };
75
93
  //# sourceMappingURL=product.js.map
@@ -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,5 +1,6 @@
1
+ const SKU_IMAGE_LABEL = 'skuvariation';
1
2
  function findSkuVariantImage(availableImages) {
2
- return (availableImages.find((imageProperties) => imageProperties.imageLabel === 'skuvariation') ?? availableImages[0]);
3
+ return (availableImages.find((imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL) ?? availableImages[0]);
3
4
  }
4
5
  export function createSlugsMap(variants, dominantVariantName, baseSlug) {
5
6
  /**
@@ -115,7 +116,7 @@ export function getFormattedVariations(variants, dominantVariantName, dominantVa
115
116
  previouslySeenPropertyValues.add(nameValueIdentifier);
116
117
  const formattedVariant = {
117
118
  src: variantImageToUse.imageUrl,
118
- alt: variantImageToUse.imageLabel ?? '',
119
+ alt: variantImageToUse.imageText ?? '',
119
120
  label: `${variationProperty.name}: ${variationProperty.values[0]}`,
120
121
  value: variationProperty.values[0],
121
122
  };
@@ -1 +1 @@
1
- {"version":3,"file":"skuVariants.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/skuVariants.ts"],"names":[],"mappings":"AAcA,SAAS,mBAAmB,CAAC,eAA+B;IAC1D,OAAO,CACL,eAAe,CAAC,IAAI,CAClB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,KAAK,cAAc,CACnE,IAAI,eAAe,CAAC,CAAC,CAAC,CACxB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,mBAA2B,EAC3B,QAAgB;IAEhB;;;;;;OAMG;IACH,MAAM,QAAQ,GAA2B,EAAE,CAAA;IAE3C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAA;QAErD,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAM;QACR,CAAC;QAED,kEAAkE;QAClE,2BAA2B;QAC3B,MAAM,iBAAiB,GAAG,GAAG,mBAAmB,IAC9C,0BAA0B,CAAC,IAAI,CAC7B,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,KAAK,mBAAmB,CACpE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAClB,EAAE,CAAA;QAEF,MAAM,aAAa,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,KAAK,mBAAmB,CAAA;YAE1D,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAA;YACZ,CAAC;YAED,OAAO,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QACxD,CAAC,EAAE,iBAAiB,CAAC,CAAA;QAErB,QAAQ,CAAC,aAAa,CAAC,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAA8B;IACnE,MAAM,gBAAgB,GAA2B,EAAE,CAAA;IAEnD,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/B,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,iBAA+C;IAE/C,MAAM,QAAQ,GAA6B,EAAE,CAAA;IAE7C,iBAAiB,EAAE,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QAC3C,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YACpE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS;IACnC,yEAAyE;IACzE,wBAAwB;IACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,CAAC,CAAC,CAAA;IACX,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,YAAY,CAAC,cAAiC;IACrD,MAAM,cAAc,GAAG,cAAc,CAAA;IAErC,KAAK,MAAM,eAAe,IAAI,cAAc,EAAE,CAAC;QAC7C,cAAc,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,mBAA2B,EAC3B,oBAA4B;IAE5B;;;;;;;;;;OAUG;IACH,MAAM,cAAc,GAAsB,EAAE,CAAA;IAE5C,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAU,CAAA;IAEtD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAM;QACR,CAAC;QAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAE7D,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAClD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,mBAAmB,CACtD,CAAA;QAED,MAAM,sBAAsB,GAC1B,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,oBAAoB,CAAA;QAE1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,MAAM,mBAAmB,GAAG,GAAG,mBAAmB,IAAI,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;YAEvF,IACE,CAAC,oBAAoB;gBACrB,4BAA4B,CAAC,GAAG,CAAC,mBAAmB,CAAC,EACrD,CAAC;gBACD,OAAM;YACR,CAAC;YAED,4BAA4B,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;YAErD,MAAM,gBAAgB,GAAG;gBACvB,GAAG,EAAE,iBAAiB,CAAC,QAAQ;gBAC/B,GAAG,EAAE,iBAAiB,CAAC,UAAU,IAAI,EAAE;gBACvC,KAAK,EAAE,GAAG,mBAAmB,KAAK,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClE,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;aACtC,CAAA;YAED,IAAI,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAClE,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAChE,CAAC;YAED,OAAM;QACR,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;YAC/C,MAAM,mBAAmB,GAAG,GAAG,iBAAiB,CAAC,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;YAEtF,IAAI,4BAA4B,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC1D,OAAM;YACR,CAAC;YAED,4BAA4B,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;YAErD,MAAM,gBAAgB,GAAG;gBACvB,GAAG,EAAE,iBAAiB,CAAC,QAAQ;gBAC/B,GAAG,EAAE,iBAAiB,CAAC,UAAU,IAAI,EAAE;gBACvC,KAAK,EAAE,GAAG,iBAAiB,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClE,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;aACnC,CAAA;YAED,IAAI,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAC,cAAc,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"skuVariants.js","sourceRoot":"","sources":["../../../../../../src/platforms/vtex/utils/skuVariants.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ type StoreProduct {
33
33
  """
34
34
  Array of images.
35
35
  """
36
- image: [StoreImage!]!
36
+ image(context: String = "generic", limit: Int = -1): [StoreImage!]!
37
37
  """
38
38
  Aggregate offer information.
39
39
  """
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/api",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
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": "bb27ad0d2b285ee09d480d077e47fb6c9d8339a2"
79
+ "gitHead": "47fa957b6cdc2eb86726f2e275072fd807263349"
80
80
  }
@@ -972,6 +972,13 @@ export type StoreProduct = {
972
972
  slug: Scalars['String'];
973
973
  };
974
974
 
975
+
976
+ /** Product information. Products are variants within product groups, equivalent to VTEX [SKUs](https://help.vtex.com/en/tutorial/what-is-an-sku--1K75s4RXAQyOuGUYKMM68u#). For example, you may have a **Shirt** product group with associated products such as **Blue shirt size L**, **Green shirt size XL** and so on. */
977
+ export type StoreProductImageArgs = {
978
+ context?: Maybe<Scalars['String']>;
979
+ limit?: Maybe<Scalars['Int']>;
980
+ };
981
+
975
982
  /** Product connections, including pagination information and products returned by the query. */
976
983
  export type StoreProductConnection = {
977
984
  __typename?: 'StoreProductConnection';
@@ -11,6 +11,7 @@ import {
11
11
  VALUE_REFERENCES,
12
12
  } from '../utils/propertyValue'
13
13
  import type { Attachment } from '../clients/commerce/types/OrderForm'
14
+ import { StoreImage, StoreProductImageArgs } from '../../..'
14
15
 
15
16
  type QueryProduct = PromiseType<ReturnType<typeof Query.product>>
16
17
 
@@ -22,6 +23,7 @@ const DEFAULT_IMAGE = {
22
23
  imageText: 'image',
23
24
  imageUrl:
24
25
  'https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg',
26
+ imageLabel: 'label',
25
27
  }
26
28
 
27
29
  const getSlug = (link: string, id: string) => `${link}-${id}`
@@ -37,6 +39,8 @@ export const StoreProduct: Record<string, Resolver<Root>> & {
37
39
  >
38
40
 
39
41
  isVariantOf: Resolver<Root, any, Root>
42
+
43
+ image: Resolver<Root, any, StoreImage[]>
40
44
  } = {
41
45
  productID: ({ itemId }) => itemId,
42
46
  name: ({ isVariantOf, name }) => name ?? isVariantOf.productName,
@@ -74,13 +78,38 @@ export const StoreProduct: Record<string, Resolver<Root>> & {
74
78
  numberOfItems: categories.length,
75
79
  }
76
80
  },
77
- image: ({ images }) =>
78
- (nonEmptyArray(images) ?? [DEFAULT_IMAGE]).map(
79
- ({ imageUrl, imageText }) => ({
81
+ image: ({ images }, args) => {
82
+ const resolvedImages = (nonEmptyArray(images) ?? [DEFAULT_IMAGE]).map(
83
+ ({ imageUrl, imageText, imageLabel }) => ({
80
84
  alternateName: imageText ?? '',
81
85
  url: imageUrl.replace('vteximg.com.br', 'vtexassets.com'),
86
+ keywords: imageLabel,
82
87
  })
83
- ),
88
+ )
89
+
90
+ if(typeof args !== 'object') {
91
+ return resolvedImages;
92
+ }
93
+
94
+ let { context, limit } = args as StoreProductImageArgs
95
+
96
+ const shouldFilter = context !== "generic"
97
+
98
+ // Normalize count to undefined as we want any negative value to always return the full list of images
99
+ limit = limit || -1
100
+ limit = limit <= -1 ? undefined : limit
101
+
102
+ let filteredImages = shouldFilter
103
+ ? resolvedImages.filter(
104
+ ({ keywords: imageKeywords }) => imageKeywords === context
105
+ )
106
+ : resolvedImages
107
+
108
+ filteredImages =
109
+ filteredImages.length === 0 ? resolvedImages : filteredImages
110
+
111
+ return filteredImages.slice(0, limit)
112
+ },
84
113
  sku: ({ itemId }) => itemId,
85
114
  gtin: ({ referenceId }) => referenceId[0]?.Value ?? '',
86
115
  review: () => [],
@@ -116,5 +145,5 @@ export const StoreProduct: Record<string, Resolver<Root>> & {
116
145
 
117
146
  return [...propertyValueSpecifications, ...propertyValueAttachments]
118
147
  },
119
- releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? ''
148
+ releaseDate: ({ isVariantOf: { releaseDate } }) => releaseDate ?? '',
120
149
  }
@@ -12,10 +12,12 @@ type FormattedSkuVariant = {
12
12
  value: string
13
13
  }
14
14
 
15
+ const SKU_IMAGE_LABEL = 'skuvariation'
16
+
15
17
  function findSkuVariantImage(availableImages: Item['images']) {
16
18
  return (
17
19
  availableImages.find(
18
- (imageProperties) => imageProperties.imageLabel === 'skuvariation'
20
+ (imageProperties) => imageProperties.imageLabel === SKU_IMAGE_LABEL
19
21
  ) ?? availableImages[0]
20
22
  )
21
23
  }
@@ -189,7 +191,7 @@ export function getFormattedVariations(
189
191
 
190
192
  const formattedVariant = {
191
193
  src: variantImageToUse.imageUrl,
192
- alt: variantImageToUse.imageLabel ?? '',
194
+ alt: variantImageToUse.imageText ?? '',
193
195
  label: `${variationProperty.name}: ${variationProperty.values[0]}`,
194
196
  value: variationProperty.values[0],
195
197
  }
@@ -33,7 +33,7 @@ type StoreProduct {
33
33
  """
34
34
  Array of images.
35
35
  """
36
- image: [StoreImage!]!
36
+ image(context: String = "generic", limit: Int = -1): [StoreImage!]!
37
37
  """
38
38
  Aggregate offer information.
39
39
  """