@faststore/api 3.9.2 → 3.11.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.
- package/dist/cjs/package.json +2 -4
- package/dist/cjs/src/directives/cacheControl.d.ts +2 -2
- package/dist/cjs/src/directives/cacheControl.js +6 -6
- package/dist/cjs/src/directives/cacheControl.js.map +1 -1
- package/dist/cjs/src/directives/index.d.ts +1 -1
- package/dist/cjs/src/index.d.ts +1 -1
- package/dist/cjs/src/index.js +4 -3
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/platforms/errors.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/commerce/index.d.ts +3 -3
- package/dist/cjs/src/platforms/vtex/clients/commerce/index.js +2 -2
- package/dist/cjs/src/platforms/vtex/clients/commerce/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/commerce/types/Product.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/clients/search/index.d.ts +1 -1
- package/dist/cjs/src/platforms/vtex/clients/search/index.js +2 -2
- package/dist/cjs/src/platforms/vtex/clients/search/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/index.d.ts +1 -1
- package/dist/cjs/src/platforms/vtex/loaders/index.js +1 -1
- package/dist/cjs/src/platforms/vtex/loaders/index.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/loaders/salesChannel.d.ts +4 -4
- package/dist/cjs/src/platforms/vtex/loaders/salesChannel.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/loaders/simulation.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/loaders/sku.js +1 -1
- package/dist/cjs/src/platforms/vtex/loaders/sku.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/aggregateOffer.js +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/aggregateOffer.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/facet.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/offer.js +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/offer.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/organization.d.ts +2 -2
- package/dist/cjs/src/platforms/vtex/resolvers/organization.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/product.d.ts +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/product.js +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/product.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/query.d.ts +2 -2
- package/dist/cjs/src/platforms/vtex/resolvers/query.js +3 -4
- package/dist/cjs/src/platforms/vtex/resolvers/query.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/searchResult.d.ts +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/searchResult.js +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/searchResult.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/skuVariations.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/validateCart.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/resolvers/validateSession.js +2 -2
- package/dist/cjs/src/platforms/vtex/resolvers/validateSession.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/utils/channel.js +1 -1
- package/dist/cjs/src/platforms/vtex/utils/channel.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/utils/createNewAddress.d.ts +2 -2
- package/dist/cjs/src/platforms/vtex/utils/facets.js +14 -14
- package/dist/cjs/src/platforms/vtex/utils/facets.js.map +1 -1
- package/dist/cjs/src/platforms/vtex/utils/getAddressOrderForm.d.ts +2 -2
- package/dist/cjs/src/platforms/vtex/utils/shouldUpdateShippingData.d.ts +2 -2
- package/dist/cjs/src/platforms/vtex/utils/skuVariants.d.ts +1 -1
- package/dist/cjs/src/platforms/vtex/utils/taxes.js.map +1 -1
- package/dist/cjs/src/telemetry/useFaststoreTelemetry.d.ts +1 -1
- package/dist/cjs/src/telemetry/useFaststoreTelemetry.js +1 -4
- package/dist/cjs/src/telemetry/useFaststoreTelemetry.js.map +1 -1
- package/dist/cjs/src/typeDefs/advertisement.graphql +22 -22
- package/dist/cjs/src/typeDefs/newsletter.graphql +0 -1
- package/dist/cjs/src/typeDefs/objectOrString.graphql +1 -1
- package/dist/cjs/src/typeDefs/query.graphql +0 -1
- package/dist/esm/package.json +2 -4
- package/dist/esm/src/directives/cacheControl.d.ts +2 -2
- package/dist/esm/src/directives/cacheControl.js +7 -7
- package/dist/esm/src/directives/cacheControl.js.map +1 -1
- package/dist/esm/src/directives/index.d.ts +1 -1
- package/dist/esm/src/index.d.ts +1 -1
- package/dist/esm/src/index.js +4 -3
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/platforms/errors.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/commerce/index.d.ts +3 -3
- package/dist/esm/src/platforms/vtex/clients/commerce/index.js +2 -2
- package/dist/esm/src/platforms/vtex/clients/commerce/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/commerce/types/Product.js.map +1 -1
- package/dist/esm/src/platforms/vtex/clients/search/index.d.ts +1 -1
- package/dist/esm/src/platforms/vtex/clients/search/index.js +2 -2
- package/dist/esm/src/platforms/vtex/clients/search/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/index.d.ts +1 -1
- package/dist/esm/src/platforms/vtex/index.js +1 -1
- package/dist/esm/src/platforms/vtex/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/loaders/index.js +1 -1
- package/dist/esm/src/platforms/vtex/loaders/index.js.map +1 -1
- package/dist/esm/src/platforms/vtex/loaders/salesChannel.d.ts +4 -4
- package/dist/esm/src/platforms/vtex/loaders/salesChannel.js +1 -1
- package/dist/esm/src/platforms/vtex/loaders/salesChannel.js.map +1 -1
- package/dist/esm/src/platforms/vtex/loaders/simulation.js.map +1 -1
- package/dist/esm/src/platforms/vtex/loaders/sku.js +1 -1
- package/dist/esm/src/platforms/vtex/loaders/sku.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/aggregateOffer.js +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/aggregateOffer.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/facet.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/offer.js +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/offer.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/organization.d.ts +2 -2
- package/dist/esm/src/platforms/vtex/resolvers/organization.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/product.d.ts +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/product.js +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/product.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/query.d.ts +2 -2
- package/dist/esm/src/platforms/vtex/resolvers/query.js +3 -4
- package/dist/esm/src/platforms/vtex/resolvers/query.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/searchResult.d.ts +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/searchResult.js +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/searchResult.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/skuVariations.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/validateCart.js.map +1 -1
- package/dist/esm/src/platforms/vtex/resolvers/validateSession.js +2 -2
- package/dist/esm/src/platforms/vtex/resolvers/validateSession.js.map +1 -1
- package/dist/esm/src/platforms/vtex/utils/channel.js +1 -1
- package/dist/esm/src/platforms/vtex/utils/channel.js.map +1 -1
- package/dist/esm/src/platforms/vtex/utils/createNewAddress.d.ts +2 -2
- package/dist/esm/src/platforms/vtex/utils/facets.js +14 -14
- package/dist/esm/src/platforms/vtex/utils/facets.js.map +1 -1
- package/dist/esm/src/platforms/vtex/utils/getAddressOrderForm.d.ts +2 -2
- package/dist/esm/src/platforms/vtex/utils/shouldUpdateShippingData.d.ts +2 -2
- package/dist/esm/src/platforms/vtex/utils/skuVariants.d.ts +1 -1
- package/dist/esm/src/platforms/vtex/utils/taxes.js.map +1 -1
- package/dist/esm/src/telemetry/useFaststoreTelemetry.d.ts +1 -1
- package/dist/esm/src/telemetry/useFaststoreTelemetry.js +3 -6
- package/dist/esm/src/telemetry/useFaststoreTelemetry.js.map +1 -1
- package/dist/esm/src/typeDefs/advertisement.graphql +22 -22
- package/dist/esm/src/typeDefs/newsletter.graphql +0 -1
- package/dist/esm/src/typeDefs/objectOrString.graphql +1 -1
- package/dist/esm/src/typeDefs/query.graphql +0 -1
- package/package.json +3 -5
- package/src/directives/cacheControl.ts +34 -36
- package/src/directives/index.ts +2 -2
- package/src/index.ts +5 -4
- package/src/platforms/errors.ts +4 -1
- package/src/platforms/vtex/clients/commerce/index.ts +13 -13
- package/src/platforms/vtex/clients/commerce/types/OrderForm.ts +6 -6
- package/src/platforms/vtex/clients/commerce/types/Product.ts +125 -128
- package/src/platforms/vtex/clients/commerce/types/SalesChannel.ts +20 -20
- package/src/platforms/vtex/clients/search/index.ts +13 -3
- package/src/platforms/vtex/clients/search/types/ProductSearchResult.ts +1 -1
- package/src/platforms/vtex/index.ts +1 -1
- package/src/platforms/vtex/loaders/index.ts +2 -2
- package/src/platforms/vtex/loaders/salesChannel.ts +7 -9
- package/src/platforms/vtex/loaders/simulation.ts +10 -7
- package/src/platforms/vtex/loaders/sku.ts +14 -9
- package/src/platforms/vtex/resolvers/aggregateOffer.ts +3 -3
- package/src/platforms/vtex/resolvers/facet.ts +9 -10
- package/src/platforms/vtex/resolvers/offer.ts +16 -8
- package/src/platforms/vtex/resolvers/organization.ts +3 -3
- package/src/platforms/vtex/resolvers/product.ts +5 -5
- package/src/platforms/vtex/resolvers/propertyValue.ts +1 -1
- package/src/platforms/vtex/resolvers/query.ts +13 -5
- package/src/platforms/vtex/resolvers/searchResult.ts +4 -4
- package/src/platforms/vtex/resolvers/skuVariations.ts +2 -1
- package/src/platforms/vtex/resolvers/validateCart.ts +7 -3
- package/src/platforms/vtex/resolvers/validateSession.ts +12 -13
- package/src/platforms/vtex/utils/channel.ts +2 -1
- package/src/platforms/vtex/utils/createNewAddress.ts +2 -2
- package/src/platforms/vtex/utils/facets.ts +21 -21
- package/src/platforms/vtex/utils/getAddressOrderForm.ts +2 -2
- package/src/platforms/vtex/utils/shouldUpdateShippingData.ts +2 -2
- package/src/platforms/vtex/utils/skuVariants.ts +1 -1
- package/src/platforms/vtex/utils/taxes.ts +1 -5
- package/src/telemetry/useFaststoreTelemetry.ts +5 -7
- package/src/typeDefs/advertisement.graphql +22 -22
- package/src/typeDefs/newsletter.graphql +0 -1
- package/src/typeDefs/objectOrString.graphql +1 -1
- package/src/typeDefs/query.graphql +0 -1
- package/src/typings/json.d.ts +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Resolver } from '..'
|
|
2
|
-
import type { StorePropertyValue as
|
|
2
|
+
import type { StorePropertyValue as StorePropertyValueType } from '../../../__generated__/schema'
|
|
3
3
|
import { getPropertyId } from '../utils/propertyValue'
|
|
4
4
|
|
|
5
5
|
export type Root = StorePropertyValueType
|
|
@@ -25,7 +25,7 @@ import type {
|
|
|
25
25
|
import type { CategoryTree } from '../clients/commerce/types/CategoryTree'
|
|
26
26
|
import type { Context } from '../index'
|
|
27
27
|
import { isValidSkuId, pickBestSku } from '../utils/sku'
|
|
28
|
-
import { SearchArgs } from '../clients/search'
|
|
28
|
+
import type { SearchArgs } from '../clients/search'
|
|
29
29
|
|
|
30
30
|
export const Query = {
|
|
31
31
|
product: async (_: unknown, { locator }: QueryProductArgs, ctx: Context) => {
|
|
@@ -112,7 +112,14 @@ export const Query = {
|
|
|
112
112
|
},
|
|
113
113
|
search: async (
|
|
114
114
|
_: unknown,
|
|
115
|
-
{
|
|
115
|
+
{
|
|
116
|
+
first,
|
|
117
|
+
after: maybeAfter,
|
|
118
|
+
sort,
|
|
119
|
+
term,
|
|
120
|
+
selectedFacets,
|
|
121
|
+
sponsoredCount,
|
|
122
|
+
}: QuerySearchArgs,
|
|
116
123
|
ctx: Context
|
|
117
124
|
) => {
|
|
118
125
|
// Insert channel in context for later usage
|
|
@@ -160,7 +167,7 @@ export const Query = {
|
|
|
160
167
|
query: query ?? undefined,
|
|
161
168
|
sort: SORT_MAP[sort ?? 'score_desc'],
|
|
162
169
|
selectedFacets: selectedFacets?.flatMap(transformSelectedFacet) ?? [],
|
|
163
|
-
sponsoredCount: sponsoredCount ?? undefined
|
|
170
|
+
sponsoredCount: sponsoredCount ?? undefined,
|
|
164
171
|
}
|
|
165
172
|
|
|
166
173
|
const productSearchPromise = ctx.clients.search.products(searchArgs)
|
|
@@ -183,8 +190,9 @@ export const Query = {
|
|
|
183
190
|
})
|
|
184
191
|
|
|
185
192
|
const skus = products.products
|
|
186
|
-
.
|
|
187
|
-
|
|
193
|
+
.flatMap((product) =>
|
|
194
|
+
product.items.map((sku) => enhanceSku(sku, product))
|
|
195
|
+
)
|
|
188
196
|
.filter((sku) => sku.sellers.length > 0)
|
|
189
197
|
|
|
190
198
|
return {
|
|
@@ -2,7 +2,7 @@ import { enhanceSku } from '../utils/enhanceSku'
|
|
|
2
2
|
import type { Resolver } from '..'
|
|
3
3
|
import type { SearchArgs } from '../clients/search'
|
|
4
4
|
import type { Facet } from '../clients/search/types/FacetSearchResult'
|
|
5
|
-
import { ProductSearchResult } from '../clients/search/types/ProductSearchResult'
|
|
5
|
+
import type { ProductSearchResult } from '../clients/search/types/ProductSearchResult'
|
|
6
6
|
import { pickBestSku } from '../utils/sku'
|
|
7
7
|
|
|
8
8
|
export type Root = {
|
|
@@ -14,8 +14,8 @@ const isRootFacet = (facet: Facet, isDepartment: boolean, isBrand: boolean) =>
|
|
|
14
14
|
isDepartment
|
|
15
15
|
? facet.key === 'category-1'
|
|
16
16
|
: isBrand
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
? facet.key === 'brand'
|
|
18
|
+
: false
|
|
19
19
|
|
|
20
20
|
export const StoreSearchResult: Record<string, Resolver<Root>> = {
|
|
21
21
|
suggestions: async (root, _, ctx) => {
|
|
@@ -123,7 +123,7 @@ export const StoreSearchResult: Record<string, Resolver<Root>> = {
|
|
|
123
123
|
return {
|
|
124
124
|
isTermMisspelled: productSearchResult.correction?.misspelled ?? false,
|
|
125
125
|
logicalOperator: productSearchResult.operator,
|
|
126
|
-
fuzzy: productSearchResult.fuzzy
|
|
126
|
+
fuzzy: productSearchResult.fuzzy,
|
|
127
127
|
}
|
|
128
128
|
},
|
|
129
129
|
}
|
|
@@ -27,7 +27,8 @@ export const SkuVariants: Record<string, Resolver<Root>> = {
|
|
|
27
27
|
),
|
|
28
28
|
|
|
29
29
|
availableVariations: (root, args) => {
|
|
30
|
-
const dominantVariantName =
|
|
30
|
+
const dominantVariantName =
|
|
31
|
+
(args as SlugsMapArgs).dominantVariantName ?? root.variations[0]?.name
|
|
31
32
|
const activeVariations = getActiveSkuVariations(root.variations)
|
|
32
33
|
|
|
33
34
|
const activeDominantVariationValue = activeVariations[dominantVariantName]
|
|
@@ -25,7 +25,7 @@ import type {
|
|
|
25
25
|
} from '../clients/commerce/types/OrderForm'
|
|
26
26
|
import { shouldUpdateShippingData } from '../utils/shouldUpdateShippingData'
|
|
27
27
|
import { getAddressOrderForm } from '../utils/getAddressOrderForm'
|
|
28
|
-
import { SelectedAddress } from '../clients/commerce/types/ShippingData'
|
|
28
|
+
import type { SelectedAddress } from '../clients/commerce/types/ShippingData'
|
|
29
29
|
import { createNewAddress } from '../utils/createNewAddress'
|
|
30
30
|
|
|
31
31
|
type Indexed<T> = T & { index?: number }
|
|
@@ -333,8 +333,12 @@ export const validateCart = async (
|
|
|
333
333
|
{ cart: { order }, session }: MutationValidateCartArgs,
|
|
334
334
|
ctx: Context
|
|
335
335
|
) => {
|
|
336
|
-
const orderFormIdFromCookie = getCookieCheckoutOrderNumber(
|
|
337
|
-
|
|
336
|
+
const orderFormIdFromCookie = getCookieCheckoutOrderNumber(
|
|
337
|
+
ctx.headers.cookie,
|
|
338
|
+
'checkout.vtex.com'
|
|
339
|
+
)
|
|
340
|
+
const orderNumber =
|
|
341
|
+
orderFormIdFromCookie !== '' ? orderFormIdFromCookie : order?.orderNumber
|
|
338
342
|
|
|
339
343
|
const { acceptedOffer, shouldSplitItem } = order
|
|
340
344
|
const {
|
|
@@ -12,7 +12,6 @@ export const validateSession = async (
|
|
|
12
12
|
{ session: oldSession, search }: MutationValidateSessionArgs,
|
|
13
13
|
{ clients }: Context
|
|
14
14
|
): Promise<StoreSession | null> => {
|
|
15
|
-
|
|
16
15
|
const channel = ChannelMarshal.parse(oldSession.channel ?? '')
|
|
17
16
|
const postalCode = String(oldSession.postalCode ?? '')
|
|
18
17
|
const geoCoordinates = oldSession.geoCoordinates ?? null
|
|
@@ -27,11 +26,11 @@ export const validateSession = async (
|
|
|
27
26
|
const [regionData, sessionData] = await Promise.all([
|
|
28
27
|
postalCode || geoCoordinates
|
|
29
28
|
? clients.commerce.checkout.region({
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
postalCode,
|
|
30
|
+
geoCoordinates,
|
|
31
|
+
country,
|
|
32
|
+
salesChannel,
|
|
33
|
+
})
|
|
35
34
|
: Promise.resolve(null),
|
|
36
35
|
clients.commerce.session(params.toString()).catch(() => null),
|
|
37
36
|
])
|
|
@@ -54,18 +53,18 @@ export const validateSession = async (
|
|
|
54
53
|
salesChannel: store?.channel?.value ?? channel.salesChannel,
|
|
55
54
|
regionId: region?.id ?? channel.regionId,
|
|
56
55
|
seller: seller?.id,
|
|
57
|
-
hasOnlyDefaultSalesChannel: !store?.channel?.value
|
|
56
|
+
hasOnlyDefaultSalesChannel: !store?.channel?.value,
|
|
58
57
|
}),
|
|
59
58
|
b2b: {
|
|
60
|
-
customerId: authentication?.customerId?.value ?? ''
|
|
59
|
+
customerId: authentication?.customerId?.value ?? '',
|
|
61
60
|
},
|
|
62
61
|
person: profile?.id
|
|
63
62
|
? {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
id: profile.id?.value ?? '',
|
|
64
|
+
email: profile.email?.value ?? '',
|
|
65
|
+
givenName: profile.firstName?.value ?? '',
|
|
66
|
+
familyName: profile.lastName?.value ?? '',
|
|
67
|
+
}
|
|
69
68
|
: null,
|
|
70
69
|
}
|
|
71
70
|
|
|
@@ -14,7 +14,8 @@ export default class ChannelMarshal {
|
|
|
14
14
|
seller: parsedChannel.seller ?? '',
|
|
15
15
|
regionId: parsedChannel.regionId ?? '',
|
|
16
16
|
salesChannel: parsedChannel.salesChannel ?? '',
|
|
17
|
-
hasOnlyDefaultSalesChannel:
|
|
17
|
+
hasOnlyDefaultSalesChannel:
|
|
18
|
+
parsedChannel.hasOnlyDefaultSalesChannel ?? true,
|
|
18
19
|
}
|
|
19
20
|
} catch (error) {
|
|
20
21
|
console.error(error)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IStoreSession } from '../../../__generated__/schema'
|
|
2
|
-
import { SelectedAddress } from '../clients/commerce/types/ShippingData'
|
|
1
|
+
import type { IStoreSession } from '../../../__generated__/schema'
|
|
2
|
+
import type { SelectedAddress } from '../clients/commerce/types/ShippingData'
|
|
3
3
|
|
|
4
4
|
export const createNewAddress = (session: IStoreSession) => {
|
|
5
5
|
const postalCode = session.postalCode
|
|
@@ -12,12 +12,12 @@ export interface CrossSellingFacet {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export const FACET_CROSS_SELLING_MAP = {
|
|
15
|
-
buy:
|
|
16
|
-
view:
|
|
17
|
-
similars:
|
|
18
|
-
viewAndBought:
|
|
19
|
-
accessories:
|
|
20
|
-
suggestions:
|
|
15
|
+
buy: 'whoboughtalsobought',
|
|
16
|
+
view: 'whosawalsosaw',
|
|
17
|
+
similars: 'similars',
|
|
18
|
+
viewAndBought: 'whosawalsobought',
|
|
19
|
+
accessories: 'accessories',
|
|
20
|
+
suggestions: 'suggestions',
|
|
21
21
|
} as const
|
|
22
22
|
|
|
23
23
|
export type FuzzyFacet = {
|
|
@@ -39,15 +39,15 @@ export const transformSelectedFacet = ({ key, value }: SelectedFacet) => {
|
|
|
39
39
|
case 'price': {
|
|
40
40
|
return { key, value: value.replace('-to-', ':') }
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
case 'channel':
|
|
44
|
-
case 'locale':
|
|
45
|
-
case
|
|
46
|
-
case
|
|
47
|
-
case
|
|
48
|
-
case
|
|
49
|
-
case
|
|
50
|
-
case
|
|
42
|
+
|
|
43
|
+
case 'channel':
|
|
44
|
+
case 'locale':
|
|
45
|
+
case 'buy':
|
|
46
|
+
case 'view':
|
|
47
|
+
case 'similars':
|
|
48
|
+
case 'viewAndBought':
|
|
49
|
+
case 'accessories':
|
|
50
|
+
case 'suggestions': {
|
|
51
51
|
return [] // remove this facet from search
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -70,17 +70,17 @@ export const parseRange = (range: string): [number, number] | null => {
|
|
|
70
70
|
return splitted as [number, number]
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
export const isCrossSelling = (
|
|
74
|
-
x
|
|
75
|
-
): x is CrossSellingFacet['key'] =>
|
|
76
|
-
typeof (FACET_CROSS_SELLING_MAP as Record<string, string>)[x] === "string"
|
|
73
|
+
export const isCrossSelling = (x: string): x is CrossSellingFacet['key'] =>
|
|
74
|
+
typeof (FACET_CROSS_SELLING_MAP as Record<string, string>)[x] === 'string'
|
|
77
75
|
|
|
78
76
|
export const findCrossSelling = (facets?: Maybe<SelectedFacet[]>) => {
|
|
79
|
-
const filtered = facets?.filter((x): x is CrossSellingFacet =>
|
|
77
|
+
const filtered = facets?.filter((x): x is CrossSellingFacet =>
|
|
78
|
+
isCrossSelling(x.key)
|
|
79
|
+
)
|
|
80
80
|
|
|
81
81
|
if (Array.isArray(filtered) && filtered.length > 1) {
|
|
82
82
|
throw new BadRequestError(
|
|
83
|
-
`You passed ${filtered.length} cross selling facets but only one is allowed. Please leave one of the following facet: ${filtered.map(x => x.key).join(',')}`
|
|
83
|
+
`You passed ${filtered.length} cross selling facets but only one is allowed. Please leave one of the following facet: ${filtered.map((x) => x.key).join(',')}`
|
|
84
84
|
)
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IStoreSession } from '../../../__generated__/schema'
|
|
2
|
-
import { OrderForm } from '../clients/commerce/types/OrderForm'
|
|
1
|
+
import type { IStoreSession } from '../../../__generated__/schema'
|
|
2
|
+
import type { OrderForm } from '../clients/commerce/types/OrderForm'
|
|
3
3
|
|
|
4
4
|
export const getAddressOrderForm = (
|
|
5
5
|
orderForm: OrderForm,
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
export const withTax = (
|
|
2
|
-
price: number,
|
|
3
|
-
tax: number = 0,
|
|
4
|
-
unitMultiplier: number = 1
|
|
5
|
-
) => {
|
|
1
|
+
export const withTax = (price: number, tax = 0, unitMultiplier = 1) => {
|
|
6
2
|
const unitTax = tax / unitMultiplier
|
|
7
3
|
|
|
8
4
|
return Math.round((price + unitTax) * 100) / 100
|
|
@@ -2,11 +2,11 @@ import type { OnExecuteHookResult, Plugin } from '@envelop/core'
|
|
|
2
2
|
import { isAsyncIterable } from '@envelop/core'
|
|
3
3
|
import { useOnResolve } from '@envelop/on-resolve'
|
|
4
4
|
import {
|
|
5
|
-
Context,
|
|
5
|
+
type Context,
|
|
6
6
|
context as openTelContext,
|
|
7
|
-
Span,
|
|
7
|
+
type Span,
|
|
8
8
|
SpanKind,
|
|
9
|
-
trace as openTelTrace
|
|
9
|
+
trace as openTelTrace,
|
|
10
10
|
} from '@opentelemetry/api'
|
|
11
11
|
import type { LogRecord } from '@opentelemetry/api-logs'
|
|
12
12
|
import { SeverityNumber } from '@opentelemetry/api-logs'
|
|
@@ -14,9 +14,9 @@ import type { LoggerProvider } from '@opentelemetry/sdk-logs'
|
|
|
14
14
|
import type { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'
|
|
15
15
|
import {
|
|
16
16
|
Kind,
|
|
17
|
-
OperationDefinitionNode,
|
|
17
|
+
type OperationDefinitionNode,
|
|
18
18
|
print,
|
|
19
|
-
type DefinitionNode
|
|
19
|
+
type DefinitionNode,
|
|
20
20
|
} from 'graphql'
|
|
21
21
|
import type { Path } from 'graphql/jsutils/Path'
|
|
22
22
|
|
|
@@ -81,7 +81,6 @@ export const getFaststoreTelemetryPlugin = (
|
|
|
81
81
|
return {
|
|
82
82
|
onPluginInit({ addPlugin }) {
|
|
83
83
|
addPlugin(
|
|
84
|
-
// eslint-disable-next-line
|
|
85
84
|
useOnResolve(({ info, context }) => {
|
|
86
85
|
if (
|
|
87
86
|
context &&
|
|
@@ -198,7 +197,6 @@ export const getFaststoreTelemetryPlugin = (
|
|
|
198
197
|
onExecuteDone({ result }) {
|
|
199
198
|
if (isAsyncIterable(result)) {
|
|
200
199
|
executionSpan.end()
|
|
201
|
-
// eslint-disable-next-line no-console
|
|
202
200
|
console.warn(
|
|
203
201
|
`Plugin "newrelic" encountered a AsyncIterator which is not supported yet, so tracing data is not available for the operation.`
|
|
204
202
|
)
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Advertisement information about a specific product in a campaign
|
|
3
3
|
"""
|
|
4
|
-
type Advertisement {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
4
|
+
type Advertisement {
|
|
5
|
+
"""
|
|
6
|
+
Advertiser ID of the product.
|
|
7
|
+
"""
|
|
8
|
+
adId: String!
|
|
9
|
+
"""
|
|
10
|
+
Campaign ID.
|
|
11
|
+
"""
|
|
12
|
+
campaignId: String!
|
|
13
|
+
"""
|
|
14
|
+
Cost of the action, usually Cost Per Click.
|
|
15
|
+
"""
|
|
16
|
+
actionCost: Float!
|
|
17
|
+
"""
|
|
18
|
+
Advertiser Request ID.
|
|
19
|
+
"""
|
|
20
|
+
adRequestId: String!
|
|
21
|
+
"""
|
|
22
|
+
Advertiser Response ID.
|
|
23
|
+
"""
|
|
24
|
+
adResponseId: String!
|
|
25
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
scalar ObjectOrString
|
|
1
|
+
scalar ObjectOrString
|
package/src/typings/json.d.ts
CHANGED