@faststore/api 3.88.1 → 3.88.6

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 (58) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/__generated__/schema.d.ts +0 -9
  3. package/dist/cjs/src/__generated__/schema.d.ts.map +1 -1
  4. package/dist/cjs/src/__generated__/schema.js.map +1 -1
  5. package/dist/cjs/src/platforms/errors.d.ts +5 -5
  6. package/dist/cjs/src/platforms/errors.d.ts.map +1 -1
  7. package/dist/cjs/src/platforms/errors.js +10 -9
  8. package/dist/cjs/src/platforms/errors.js.map +1 -1
  9. package/dist/cjs/src/platforms/vtex/clients/commerce/index.d.ts +1 -5
  10. package/dist/cjs/src/platforms/vtex/clients/commerce/index.d.ts.map +1 -1
  11. package/dist/cjs/src/platforms/vtex/clients/commerce/index.js +3 -9
  12. package/dist/cjs/src/platforms/vtex/clients/commerce/index.js.map +1 -1
  13. package/dist/cjs/src/platforms/vtex/clients/fetch.d.ts.map +1 -1
  14. package/dist/cjs/src/platforms/vtex/clients/fetch.js +17 -0
  15. package/dist/cjs/src/platforms/vtex/clients/fetch.js.map +1 -1
  16. package/dist/cjs/src/platforms/vtex/clients/index.d.ts +0 -4
  17. package/dist/cjs/src/platforms/vtex/clients/index.d.ts.map +1 -1
  18. package/dist/cjs/src/platforms/vtex/resolvers/query.d.ts +1 -1
  19. package/dist/cjs/src/platforms/vtex/resolvers/query.d.ts.map +1 -1
  20. package/dist/cjs/src/platforms/vtex/resolvers/query.js +20 -5
  21. package/dist/cjs/src/platforms/vtex/resolvers/query.js.map +1 -1
  22. package/dist/cjs/src/platforms/vtex/resolvers/validateSession.d.ts.map +1 -1
  23. package/dist/cjs/src/platforms/vtex/resolvers/validateSession.js +3 -15
  24. package/dist/cjs/src/platforms/vtex/resolvers/validateSession.js.map +1 -1
  25. package/dist/cjs/src/typeDefs/session.graphql +0 -10
  26. package/dist/esm/package.json +1 -1
  27. package/dist/esm/src/__generated__/schema.d.ts +0 -9
  28. package/dist/esm/src/__generated__/schema.d.ts.map +1 -1
  29. package/dist/esm/src/__generated__/schema.js.map +1 -1
  30. package/dist/esm/src/platforms/errors.d.ts +5 -5
  31. package/dist/esm/src/platforms/errors.d.ts.map +1 -1
  32. package/dist/esm/src/platforms/errors.js +6 -6
  33. package/dist/esm/src/platforms/errors.js.map +1 -1
  34. package/dist/esm/src/platforms/vtex/clients/commerce/index.d.ts +1 -5
  35. package/dist/esm/src/platforms/vtex/clients/commerce/index.d.ts.map +1 -1
  36. package/dist/esm/src/platforms/vtex/clients/commerce/index.js +3 -9
  37. package/dist/esm/src/platforms/vtex/clients/commerce/index.js.map +1 -1
  38. package/dist/esm/src/platforms/vtex/clients/fetch.d.ts.map +1 -1
  39. package/dist/esm/src/platforms/vtex/clients/fetch.js +17 -0
  40. package/dist/esm/src/platforms/vtex/clients/fetch.js.map +1 -1
  41. package/dist/esm/src/platforms/vtex/clients/index.d.ts +0 -4
  42. package/dist/esm/src/platforms/vtex/clients/index.d.ts.map +1 -1
  43. package/dist/esm/src/platforms/vtex/resolvers/query.d.ts +1 -1
  44. package/dist/esm/src/platforms/vtex/resolvers/query.d.ts.map +1 -1
  45. package/dist/esm/src/platforms/vtex/resolvers/query.js +21 -6
  46. package/dist/esm/src/platforms/vtex/resolvers/query.js.map +1 -1
  47. package/dist/esm/src/platforms/vtex/resolvers/validateSession.d.ts.map +1 -1
  48. package/dist/esm/src/platforms/vtex/resolvers/validateSession.js +3 -15
  49. package/dist/esm/src/platforms/vtex/resolvers/validateSession.js.map +1 -1
  50. package/dist/esm/src/typeDefs/session.graphql +0 -10
  51. package/package.json +2 -2
  52. package/src/__generated__/schema.ts +0 -11
  53. package/src/platforms/errors.ts +9 -8
  54. package/src/platforms/vtex/clients/commerce/index.ts +16 -30
  55. package/src/platforms/vtex/clients/fetch.ts +27 -0
  56. package/src/platforms/vtex/resolvers/query.ts +33 -10
  57. package/src/platforms/vtex/resolvers/validateSession.ts +4 -16
  58. package/src/typeDefs/session.graphql +0 -10
@@ -7,6 +7,7 @@ import type {
7
7
  QueryPickupPointsArgs,
8
8
  QueryProductArgs,
9
9
  QueryProductCountArgs,
10
+ QueryProductsArgs,
10
11
  QueryProfileArgs,
11
12
  QueryRedirectArgs,
12
13
  QuerySearchArgs,
@@ -14,9 +15,14 @@ import type {
14
15
  QueryShippingArgs,
15
16
  QueryUserOrderArgs,
16
17
  UserOrderFromList,
17
- QueryProductsArgs,
18
18
  } from '../../../__generated__/schema'
19
- import { BadRequestError, ForbiddenError, NotFoundError } from '../../errors'
19
+ import {
20
+ BadRequestError,
21
+ ForbiddenError,
22
+ NotFoundError,
23
+ isForbiddenError,
24
+ isNotFoundError,
25
+ } from '../../errors'
20
26
  import type { CategoryTree } from '../clients/commerce/types/CategoryTree'
21
27
  import type { ProfileAddress } from '../clients/commerce/types/Profile'
22
28
  import type { SearchArgs } from '../clients/search'
@@ -478,22 +484,39 @@ export const Query = {
478
484
  },
479
485
  }
480
486
  } catch (error) {
481
- const result = JSON.parse((error as Error).message).error as {
482
- code: string
483
- message: string
484
- exception: any
487
+ const errorMessage = (error as Error).message
488
+
489
+ let result: {
490
+ code?: string
491
+ message?: string
492
+ exception?: any
493
+ } = {}
494
+
495
+ /** The errorMessage can be in:
496
+ * JSON format: {"error":{"code":"OMS007","message":"Order Not Found","exception":null}}
497
+ * Plain text format: "No authorized"
498
+ * Unknown format
499
+ */
500
+ try {
501
+ const parsed = JSON.parse(errorMessage)
502
+ result = parsed.error || parsed
503
+ } catch {
504
+ result = { message: errorMessage }
485
505
  }
486
506
 
487
- if (result?.message?.toLowerCase()?.includes('order not found')) {
488
- throw new NotFoundError(`No order found for id ${orderId}`)
507
+ const message = result?.message || errorMessage
508
+
509
+ if (isNotFoundError(error)) {
510
+ throw new NotFoundError(`No order found for id ${orderId}. ${message}.`)
489
511
  }
490
512
 
491
- if (result?.message?.toLowerCase()?.includes('acesso negado')) {
513
+ if (isForbiddenError(error)) {
492
514
  throw new ForbiddenError(
493
- `You are forbidden to interact with order with id ${orderId}`
515
+ `You are forbidden to interact with order with id ${orderId}. ${message}.`
494
516
  )
495
517
  }
496
518
 
519
+ // Fallback for other Errors
497
520
  throw error
498
521
  }
499
522
  },
@@ -100,19 +100,10 @@ export const validateSession = async (
100
100
  const isRepresentative = jwt?.isRepresentative
101
101
  const customerId = jwt?.customerId
102
102
  const unitId = jwt?.unitId
103
- const userId = jwt?.userId
104
-
105
- const [sessionData, canManageOrganization] = await Promise.all([
106
- clients.commerce.session(params.toString()).catch(() => null),
107
- userId
108
- ? clients.commerce.licenseManager
109
- .getUserGrantedResources({
110
- userId: userId,
111
- resourceKey: 'ManageOrganizationAndContract',
112
- })
113
- .catch(() => false)
114
- : false,
115
- ])
103
+
104
+ const sessionData = await clients.commerce
105
+ .session(params.toString())
106
+ .catch(() => null)
116
107
 
117
108
  const profile = sessionData?.namespaces.profile ?? null
118
109
  const shopper = sessionData?.namespaces.shopper ?? null
@@ -165,9 +156,6 @@ export const validateSession = async (
165
156
  `${shopper?.firstName?.value ?? ''} ${shopper?.lastName?.value ?? ''}`.trim(),
166
157
  userEmail: authentication?.storeUserEmail.value ?? '',
167
158
  savedPostalCode: publicData?.postalCode?.value ?? '',
168
- permissions: {
169
- canManageOrganization,
170
- },
171
159
  }
172
160
  : null,
173
161
  marketingData,
@@ -188,10 +188,6 @@ type StoreSession {
188
188
  refreshAfter: String
189
189
  }
190
190
 
191
- type StoreB2BPermissions {
192
- canManageOrganization: Boolean!
193
- }
194
-
195
191
  type StoreB2B {
196
192
  customerId: String!
197
193
  isRepresentative: Boolean
@@ -202,11 +198,6 @@ type StoreB2B {
202
198
  userName: String
203
199
  userEmail: String
204
200
  savedPostalCode: String
205
- permissions: StoreB2BPermissions!
206
- }
207
-
208
- input IStoreB2BPermissions {
209
- canManageOrganization: Boolean!
210
201
  }
211
202
 
212
203
  input IStoreB2B {
@@ -219,7 +210,6 @@ input IStoreB2B {
219
210
  userName: String
220
211
  userEmail: String
221
212
  savedPostalCode: String
222
- permissions: IStoreB2BPermissions!
223
213
  }
224
214
 
225
215
  """