@faststore/api 3.29.1 → 3.32.0

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 (49) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/__generated__/schema.d.ts +39 -0
  3. package/dist/cjs/src/__generated__/schema.js.map +1 -1
  4. package/dist/cjs/src/index.d.ts +3 -0
  5. package/dist/cjs/src/platforms/vtex/clients/commerce/index.d.ts +10 -7
  6. package/dist/cjs/src/platforms/vtex/clients/commerce/index.js +13 -0
  7. package/dist/cjs/src/platforms/vtex/clients/commerce/index.js.map +1 -1
  8. package/dist/cjs/src/platforms/vtex/clients/commerce/types/Profile.d.ts +18 -0
  9. package/dist/cjs/src/platforms/vtex/clients/commerce/types/Profile.js +3 -0
  10. package/dist/cjs/src/platforms/vtex/clients/commerce/types/Profile.js.map +1 -0
  11. package/dist/cjs/src/platforms/vtex/clients/index.d.ts +3 -0
  12. package/dist/cjs/src/platforms/vtex/clients/index.js.map +1 -1
  13. package/dist/cjs/src/platforms/vtex/clients/search/index.js +3 -2
  14. package/dist/cjs/src/platforms/vtex/clients/search/index.js.map +1 -1
  15. package/dist/cjs/src/platforms/vtex/index.d.ts +3 -0
  16. package/dist/cjs/src/platforms/vtex/resolvers/query.d.ts +6 -2
  17. package/dist/cjs/src/platforms/vtex/resolvers/query.js +27 -13
  18. package/dist/cjs/src/platforms/vtex/resolvers/query.js.map +1 -1
  19. package/dist/cjs/src/typeDefs/profile.graphql +61 -0
  20. package/dist/cjs/src/typeDefs/query.graphql +11 -0
  21. package/dist/esm/package.json +1 -1
  22. package/dist/esm/src/__generated__/schema.d.ts +39 -0
  23. package/dist/esm/src/__generated__/schema.js.map +1 -1
  24. package/dist/esm/src/index.d.ts +3 -0
  25. package/dist/esm/src/platforms/vtex/clients/commerce/index.d.ts +10 -7
  26. package/dist/esm/src/platforms/vtex/clients/commerce/index.js +13 -0
  27. package/dist/esm/src/platforms/vtex/clients/commerce/index.js.map +1 -1
  28. package/dist/esm/src/platforms/vtex/clients/commerce/types/Profile.d.ts +18 -0
  29. package/dist/esm/src/platforms/vtex/clients/commerce/types/Profile.js +2 -0
  30. package/dist/esm/src/platforms/vtex/clients/commerce/types/Profile.js.map +1 -0
  31. package/dist/esm/src/platforms/vtex/clients/index.d.ts +3 -0
  32. package/dist/esm/src/platforms/vtex/clients/index.js.map +1 -1
  33. package/dist/esm/src/platforms/vtex/clients/search/index.js +3 -2
  34. package/dist/esm/src/platforms/vtex/clients/search/index.js.map +1 -1
  35. package/dist/esm/src/platforms/vtex/index.d.ts +3 -0
  36. package/dist/esm/src/platforms/vtex/resolvers/query.d.ts +6 -2
  37. package/dist/esm/src/platforms/vtex/resolvers/query.js +16 -2
  38. package/dist/esm/src/platforms/vtex/resolvers/query.js.map +1 -1
  39. package/dist/esm/src/typeDefs/profile.graphql +61 -0
  40. package/dist/esm/src/typeDefs/query.graphql +11 -0
  41. package/package.json +2 -2
  42. package/src/__generated__/schema.ts +43 -0
  43. package/src/platforms/vtex/clients/commerce/index.ts +29 -9
  44. package/src/platforms/vtex/clients/commerce/types/Profile.ts +19 -0
  45. package/src/platforms/vtex/clients/index.ts +1 -1
  46. package/src/platforms/vtex/clients/search/index.ts +6 -1
  47. package/src/platforms/vtex/resolvers/query.ts +42 -17
  48. package/src/typeDefs/profile.graphql +61 -0
  49. package/src/typeDefs/query.graphql +11 -0
@@ -1,5 +1,19 @@
1
- import { FACET_CROSS_SELLING_MAP } from './../utils/facets'
1
+ import type {
2
+ QueryAllCollectionsArgs,
3
+ QueryAllProductsArgs,
4
+ QueryCollectionArgs,
5
+ QueryProductArgs,
6
+ QueryProfileArgs,
7
+ QueryRedirectArgs,
8
+ QuerySearchArgs,
9
+ QuerySellersArgs,
10
+ QueryShippingArgs,
11
+ } from '../../../__generated__/schema'
2
12
  import { BadRequestError, NotFoundError } from '../../errors'
13
+ import type { CategoryTree } from '../clients/commerce/types/CategoryTree'
14
+ import type { ProfileAddress } from '../clients/commerce/types/Profile'
15
+ import type { SearchArgs } from '../clients/search'
16
+ import type { Context } from '../index'
3
17
  import { mutateChannelContext, mutateLocaleContext } from '../utils/contex'
4
18
  import { enhanceSku } from '../utils/enhanceSku'
5
19
  import {
@@ -10,22 +24,10 @@ import {
10
24
  findSlug,
11
25
  transformSelectedFacet,
12
26
  } from '../utils/facets'
27
+ import { isValidSkuId, pickBestSku } from '../utils/sku'
13
28
  import { SORT_MAP } from '../utils/sort'
29
+ import { FACET_CROSS_SELLING_MAP } from './../utils/facets'
14
30
  import { StoreCollection } from './collection'
15
- import type {
16
- QueryAllCollectionsArgs,
17
- QueryAllProductsArgs,
18
- QueryCollectionArgs,
19
- QueryProductArgs,
20
- QuerySearchArgs,
21
- QuerySellersArgs,
22
- QueryShippingArgs,
23
- QueryRedirectArgs,
24
- } from '../../../__generated__/schema'
25
- import type { CategoryTree } from '../clients/commerce/types/CategoryTree'
26
- import type { Context } from '../index'
27
- import { isValidSkuId, pickBestSku } from '../utils/sku'
28
- import type { SearchArgs } from '../clients/search'
29
31
 
30
32
  export const Query = {
31
33
  product: async (_: unknown, { locator }: QueryProductArgs, ctx: Context) => {
@@ -92,6 +94,8 @@ export const Query = {
92
94
  page: 0,
93
95
  count: 1,
94
96
  query: `product:${route.id}`,
97
+ // Manually disabling this flag to prevent regionalization issues
98
+ hideUnavailableItems: false,
95
99
  })
96
100
 
97
101
  if (!product) {
@@ -288,7 +292,6 @@ export const Query = {
288
292
  address,
289
293
  }
290
294
  },
291
-
292
295
  redirect: async (
293
296
  _: unknown,
294
297
  { term, selectedFacets }: QueryRedirectArgs,
@@ -311,7 +314,6 @@ export const Query = {
311
314
  url: redirect,
312
315
  }
313
316
  },
314
-
315
317
  sellers: async (
316
318
  _: unknown,
317
319
  { postalCode, geoCoordinates, country, salesChannel }: QuerySellersArgs,
@@ -335,4 +337,27 @@ export const Query = {
335
337
  sellers,
336
338
  }
337
339
  },
340
+ profile: async (_: unknown, { id }: QueryProfileArgs, ctx: Context) => {
341
+ const {
342
+ clients: { commerce },
343
+ } = ctx
344
+
345
+ const addresses = await commerce.profile.addresses(id)
346
+
347
+ function mapAddressesToList(
348
+ addressesObj: Record<string, string>
349
+ ): ProfileAddress[] {
350
+ if (!addressesObj || Object.keys(addressesObj).length === 0) {
351
+ return []
352
+ }
353
+
354
+ return Object.values(addressesObj).map(
355
+ (stringifiedObj) => JSON.parse(stringifiedObj) as ProfileAddress
356
+ )
357
+ }
358
+
359
+ const parsedAddresses = mapAddressesToList(addresses)
360
+
361
+ return { addresses: parsedAddresses }
362
+ },
338
363
  }
@@ -0,0 +1,61 @@
1
+ type Profile {
2
+ """
3
+ Collection of user's address
4
+ """
5
+ addresses: [ProfileAddress]
6
+ }
7
+
8
+ type ProfileAddress {
9
+ """
10
+ ProfileAddress address name/id.
11
+ """
12
+ addressName: String
13
+ """
14
+ ProfileAddress address type.
15
+ """
16
+ addressType: String
17
+ """
18
+ ProfileAddress postal code.
19
+ """
20
+ postalCode: String
21
+ """
22
+ ProfileAddress city.
23
+ """
24
+ city: String
25
+ """
26
+ ProfileAddress state.
27
+ """
28
+ state: String
29
+ """
30
+ ProfileAddress country.
31
+ """
32
+ country: String
33
+ """
34
+ ProfileAddress street.
35
+ """
36
+ street: String
37
+ """
38
+ ProfileAddress number.
39
+ """
40
+ number: String
41
+ """
42
+ ProfileAddress neighborhood.
43
+ """
44
+ neighborhood: String
45
+ """
46
+ ProfileAddress complement.
47
+ """
48
+ complement: String
49
+ """
50
+ ProfileAddress reference.
51
+ """
52
+ reference: String
53
+ """
54
+ ProfileAddress receiver name.
55
+ """
56
+ receiverName: String
57
+ """
58
+ ProfileAddress geo coordinate.
59
+ """
60
+ geoCoordinate: [Float]
61
+ }
@@ -338,6 +338,17 @@ type Query {
338
338
  salesChannel: String
339
339
  ): SellersData
340
340
  @cacheControl(scope: "public", sMaxAge: 120, staleWhileRevalidate: 3600)
341
+
342
+ """
343
+ Returns information about the profile.
344
+ """
345
+ profile(
346
+ """
347
+ Identifier for user.
348
+ """
349
+ id: String!
350
+ ): Profile
351
+ @cacheControl(scope: "public", sMaxAge: 120, staleWhileRevalidate: 3600)
341
352
  }
342
353
 
343
354
  """