diff --git a/docs/README.md b/docs/README.md index d1f246d..b9ce193 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,4 @@ +# search-graphql # VTEX Search GraphQL This app exports a GraphQL schema for search results on VTEX Stores. @@ -23,13 +24,640 @@ query ProductQuery($slug: String) { ``` To resolve this query, you need to have a app that implements the schema declared in this app, such as: [vtex.search-resolver](https://github.com/vtex-apps/search-resolver) +
Table of Contents + * [Query](#query) * [Objects](#objects) * [AssemblyOption](#assemblyoption) * [Attachment](#attachment) * [Banners](#banners) * [Benefit](#benefit) * [BenefitItem](#benefititem) * [Brand](#brand) * [BrandFacet](#brandfacet) * [CategoriesTreeFacet](#categoriestreefacet) * [Category](#category) * [ClusterHighlight](#clusterhighlight) * [CompositionItem](#compositionitem) * [CompositionType](#compositiontype) * [Correction](#correction) * [DeliverySlaPerTypes](#deliveryslapertypes) * [DeliverySlaSamples](#deliveryslasamples) * [DepartmentFacet](#departmentfacet) * [Discount](#discount) * [DomainValues](#domainvalues) * [Facet](#facet) * [FacetValue](#facetvalue) * [Facets](#facets) * [FilterFacet](#filterfacet) * [FilterFacets](#filterfacets) * [Gift](#gift) * [GiftImage](#giftimage) * [Image](#image) * [InputValue](#inputvalue) * [Installment](#installment) * [ItemMetadata](#itemmetadata) * [ItemMetadataUnit](#itemmetadataunit) * [ItemPriceTable](#itempricetable) * [Items](#items) * [KitItem](#kititem) * [Offer](#offer) * [OnlyProduct](#onlyproduct) * [PageType](#pagetype) * [PriceRange](#pricerange) * [PriceRangesFacet](#pricerangesfacet) * [PriceTableItem](#pricetableitem) * [Product](#product) * [ProductClusters](#productclusters) * [ProductPriceRange](#productpricerange) * [ProductSearch](#productsearch) * [ProductSuggestions](#productsuggestions) * [Property](#property) * [PropertyGroup](#propertygroup) * [QueryArgs](#queryargs) * [Range](#range) * [Recommendation](#recommendation) * [Reference](#reference) * [Region](#region) * [SKU](#sku) * [SKUSpecificationField](#skuspecificationfield) * [SKUSpecificationValue](#skuspecificationvalue) * [SearchBanner](#searchbanner) * [SearchBreadcrumb](#searchbreadcrumb) * [SearchCorrection](#searchcorrection) * [SearchMetadata](#searchmetadata) * [SearchSuggestion](#searchsuggestion) * [SearchSuggestionAttribute](#searchsuggestionattribute) * [SearchSuggestions](#searchsuggestions) * [SearchURLStats](#searchurlstats) * [SelectedFacet](#selectedfacet) * [SelectedProperty](#selectedproperty) * [Seller](#seller) * [SkuSpecification](#skuspecification) * [SpecificationGroup](#specificationgroup) * [SpecificationGroupProperty](#specificationgroupproperty) * [Suggestions](#suggestions) * [Teaser](#teaser) * [TeaserCondition](#teasercondition) * [TeaserEffects](#teasereffects) * [TeaserValue](#teaservalue) * [Video](#video) * [productSpecification](#productspecification) * [Inputs](#inputs) * [AssemblyOptionInput](#assemblyoptioninput) * [Options](#options) * [ProductUniqueIdentifier](#productuniqueidentifier) * [SelectedFacetInput](#selectedfacetinput) * [Enums](#enums) * [CategoryTreeBehavior](#categorytreebehavior) * [CrossSelingInputEnum](#crossselinginputenum) * [FilterType](#filtertype) * [InputValueType](#inputvaluetype) * [InstallmentsCriteria](#installmentscriteria) * [ItemsFilter](#itemsfilter) * [Operator](#operator) * [PageEntityIdentifier](#pageentityidentifier) * [ProductUniqueIdentifierField](#productuniqueidentifierfield) * [SORT](#sort) * [SimulationBehavior](#simulationbehavior) * [Scalars](#scalars) * [Boolean](#boolean) * [Float](#float) * [ID](#id) * [Int](#int) * [String](#string) * [StringOrBoolean](#stringorboolean) +
+## Query
FieldArgumentTypeDescription
productProduct +Returns a specified product +
slugString +Product slug +
identifierProductUniqueIdentifier +Product identifier +
regionIdString +Seller id encoded with base64 according to this format SW#{sellerId} +
salesChannelInt +Trade Policy +
bannersBanners +Lists the banners registered for a given query. Check the [configuring banners documentation](https://help.vtex.com/en/tracks/vtex-intelligent-search--19wrbB7nEQcmwzDPl1l4Cb/4ViKEivLJtJsvpaW0aqIQ5) for a full explanation of the banner feature. +
fullTextString +Search term. It can contain any character. +
selectedFacets[SelectedFacetInput] +List of the selected facets -### Documentation +The order in which the terms appear is not relevant to the search. -The documentation is auto generated and can be found [here](https://github.com/vtex-apps/search-graphql/blob/master/spectaql-documentation/index.html). +You can also repeat the same `facetKey` several times for different values. +
correctionCorrection +Tries to correct a misspelled term from the search. +
fullTextString +Search term. It can contain any character. +
searchSuggestionsSearchSuggestions +Lists suggested terms similar to the search term. +
fullTextString! +Search term. It can contain any character. +
productSearchProductSearch +Lists the products for a given query. +
queryString +**Deprecated**. Use `fullText` instead. +
fullTextString +Search term. It can contain any character. +
mapString +**Deprecated**. Use `selectedFacets` instead. +
selectedFacets[SelectedFacetInput] +List of the selected facets -To generate the documentation you need to install the [spectaql](https://github.com/anvilco/spectaql/) and run: +The order in which the terms appear is not relevant to the search. -``` -npx spectaql spectaql-config.yml -t ./spectaql-documentation -``` +You can also repeat the same `facetKey` several times for different values. +
categoryString +**Deprecated**. Use `selectedFacets` instead. +
specificationFilters[String] +**Deprecated**. Use `selectedFacets` instead. +
priceRangeString +Filter by price range. e.g.: {a} TO {b} - {a} is the minimum price "from" and {b} is the highest price "to" +
collectionString +**Deprecated**. Use `selectedFacets` instead. +
salesChannelString +Filter by availability at a specific sales channel. e.g.: salesChannel:4 if want filter by available products for the sales channel 4 +
orderByString +Order by a criteria. OrderByPriceDESC/OrderByPriceASC, OrderByTopSaleDESC, OrderByReviewRateDESC, OrderByNameASC/OrderByNameDESC, OrderByReleaseDateDESC, OrderByBestDiscountDESC, OrderByScoreDESC +If you want to sort by a specification, use the format {specification key}:{asc|desc}. For example: "pricePerUnit:asc" or "size:desc" (this only works on `vtex.search-resolver@1.x`) +
fromInt +Pagination item start +
toInt +Pagination item end +
hideUnavailableItemsBoolean +If true, uses isAvailablePerSalesChannel_ parameter on query with segment's sales channel. Will override any given salesChannel arg +
simulationBehaviorSimulationBehavior +If you want faster searches and do not care about most up to date prices and promotions, use skip value. +
productOriginVtexBoolean +Each search engine has its own database, but this database might not have all the product information like `clusterHighlights` or `productClusters`. +As an alternative, the search engine may use the VTEX API to complete this information by setting this field to true. +
operatorOperator +Indicates how the search-engine will deal with the fullText if there is more than one word. Set `and` if the returned products must have all the words in its metadata or `or` otherwise. +
fuzzyString +Indicates how the search engine will correct misspelled words by using fuzzy logic. +It can be a number representing the max number of misspelled letters, or the string `auto` suggesting that the search-engine should set this value by itself. +
searchStateString +As fuzzy and operator, it controls the search state, but it is for general purposes. This field allows the search engines to apply features that are not handled by the other fields. +The possible values in this field are defined by each search engine. +
optionsOptions +Search options that customize the search result. +
searchMetadataSearchMetadata
queryString +Terms that is used in search e.g.: eletronics/samsung +
fullTextString +Text inputted by the user as the search term +
mapString +Defines terms types: Brand, Category, Department e.g.: c,b +
selectedFacets[SelectedFacetInput] +List of the selected facets + +The order in which the terms appear is not relevant to the search. + +You can also repeat the same `facetKey` several times for different values. +
products[Product] +Returns products list filtered and ordered +
queryString +Terms that is used in search e.g.: eletronics/samsung +
mapString +Defines terms types: Brand, Category, Department e.g.: c,b +
categoryString +Filter by category. {a}/{b} - {a} and {b} are categoryIds +
specificationFilters[String] +Array of product specification. specificationFilter_{a}:{b} - {a} is the specificationId, {b} = specification value +
priceRangeString +Filter by price range. e.g.: {a} TO {b} - {a} is the minimum price "from" and {b} is the highest price "to" +
collectionString +Filter by collection. where collection also know as productClusterId +
salesChannelString +Filter by availability at a specific sales channel. e.g.: salesChannel:4 if want filter by available products for the sales channel 4 +
orderByString +Order by a criteria. OrderByPriceDESC/OrderByPriceASC, OrderByTopSaleDESC, OrderByReviewRateDESC, OrderByNameASC/OrderByNameDESC, OrderByReleaseDateDESC, OrderByBestDiscountDESC, OrderByScoreDESC +
fromInt +Pagination item start +
toInt +Pagination item end +
hideUnavailableItemsBoolean +If true, uses isAvailablePerSalesChannel_ parameter on query with segment's sales channel. Will override any given salesChannel arg +
simulationBehaviorSimulationBehavior +If you want faster searches and do not care about most up to date prices and promotions, use skip value. +
productRecommendations[Product]
identifierProductUniqueIdentifier
typeCrossSelingInputEnum
productsByIdentifier[Product]
fieldProductUniqueIdentifierField!
values[ID!]
salesChannelString +Filter by availability at a specific sales channel. +
facetsFacets +Returns facets category +
queryString +**Deprecated**. Use `fullText` instead. +
fullTextString +Search term. It can contain any character. +
mapString +**Deprecated**. Use `selectedFacets` instead. +
selectedFacets[SelectedFacetInput] +List of the selected facets + +The order in which the terms appear is not relevant to the search. + +You can also repeat the same `facetKey` several times for different values. +
hideUnavailableItemsBoolean +If true, uses isAvailablePerSalesChannel_ parameter on query with segment's sales channel. +
removeHiddenFacetsBoolean +If true, remove hidden facets from the result. +
behaviorString +If Static, ignores SpecificationFilters received on the map and query when returning +the facets available, which makes the facets never change. +
operatorOperator +Indicates how the search-engine will deal with the fullText if there is more than one word. Set `and` if the returned products must have all the words in its metadata or `or` otherwise. +
fuzzyString +Indicates how the search engine will correct misspelled words by using fuzzy logic. +It can be a number representing the max number of misspelled letters, or the string `auto` suggesting that the search-engine should set this value by itself. +
searchStateString +As fuzzy and operator, it controls the search state, but it is for general purposes. This field allows the search engines to apply features that are not handled by the other fields. +The possible values in this field are defined by each search engine. +
fromInt +Pagination item start +
toInt +Pagination item end +
categoryTreeBehaviorCategoryTreeBehavior +Determines the behavior of the category tree +
initialAttributesString +Initial attributes (based on the `initialMap` parameter) +
autocompleteSuggestions +Get auto complete suggestions in search +
maxRowsInt +Number of items that is returned +
searchTermString +Terms that is used in search e.g.: iphone +
topSearchesSearchSuggestions +Get list of the 10 most searched terms +
autocompleteSearchSuggestionsSearchSuggestions +Lists the suggested terms and attributes similar to the search term. +
fullTextString! +Search term. It can contain any character. +
productSuggestionsProductSuggestions +Get product suggestions +
fullTextString! +Text inputted by the user as the search term +
facetKeyString +Selected facet key +
facetValueString +Selected facet value +
productOriginVtexBoolean +Each search engine has its own database, but this database might not have all the product information like `clusterHighlights` or `productClusters`. +As an alternative, the search engine may use the VTEX API to complete this information by setting this field to true. +
simulationBehaviorSimulationBehavior +If you want faster searches and do not care about most up to date prices and promotions, use skip value. +
hideUnavailableItemsBoolean +If true, uses isAvailablePerSalesChannel_ parameter on query with segment's sales channel +
regionIdString +Seller id encoded with base64 according to this format SW#{sellerId} +
salesChannelInt +Sales Channel related to the region ID +
orderByString +Order by a criteria. OrderByPriceDESC/OrderByPriceASC, OrderByTopSaleDESC, OrderByReviewRateDESC, OrderByNameASC/OrderByNameDESC, OrderByReleaseDateDESC, OrderByBestDiscountDESC, OrderByScoreDESC +If you want to sort by a specification, use the format {specification key}:{asc|desc}. For example: "pricePerUnit:asc" or "size:desc" (this only works on `vtex.search-resolver@1.x`) +
searchURLsCount[SearchURLStats] +Get search urls access stats count +
limitInt +Number of items that is returned +
sortSORT +Sorting strategy, asc: ascending, desc: descending +
+## Objects +### AssemblyOption +
FieldArgumentTypeDescription
idID
nameString
requiredBoolean
compositionCompositionType
inputValues[InputValue]
+### Attachment +
FieldArgumentTypeDescription
idID
nameString
requiredBoolean
domainValues[DomainValues]
+### Banners +
FieldArgumentTypeDescription
banners[SearchBanner] +List of banners. +
+### Benefit + Benefit of a Product +
FieldArgumentTypeDescription
featuredBoolean + Flag which indicates if the benefit is featured or not +
idString + Id of the product which the benefit is associated +
nameString + Name of the benefit +
items[BenefitItem] + Items of the benefit +
teaserTypeString + Type of benefit +
+### BenefitItem +
FieldArgumentTypeDescription
benefitProductProduct + Product itself +
benefitSKUIds[String] + IDs of the SKU Items that are taking part in the benefit +
discountFloat + Discount applied to the benefit product +
minQuantityInt + Minimum quantity of the benefit product that is required to validate the benefit +
+### Brand +
FieldArgumentTypeDescription
cacheIdID +slug is used as cacheId +
idInt +Brand id +
imageUrlString +Brand logo +
slugString +Text link +
nameString +Name of brand +
titleTagString +Title used by html tag +
metaTagDescriptionString +Description used by html tag +
activeBoolean +Brand is active +
+### BrandFacet +
FieldArgumentTypeDescription
idID!
quantityInt!
nameString!
linkString!
linkEncodedString!
mapString
valueString!
selectedBoolean!
+### CategoriesTreeFacet +
FieldArgumentTypeDescription
idID!
quantityInt!
nameString
linkString!
linkEncodedString!
hrefString! +Contains slugified links according to the store structure. /:department/d, /:category/:subcategory, etc +
mapString
valueString!
children[CategoriesTreeFacet]
selectedBoolean!
+### Category +
FieldArgumentTypeDescription
cacheIdID + id is used as cacheId +
hrefString + URI of category +
slugString + Category text link +
idInt + Category ID +
nameString + Category name +
titleTagString + Title used by html tag +
hasChildrenBoolean + Description used by html tag +
metaTagDescriptionString + Has children categories +
children[Category] + Categories children +
+### ClusterHighlight +
FieldArgumentTypeDescription
idID
nameString
+### CompositionItem +
FieldArgumentTypeDescription
idID
minQuantityInt
maxQuantityInt
initialQuantityInt
priceTableString
sellerString
+### CompositionType +
FieldArgumentTypeDescription
minQuantityInt
maxQuantityInt
items[CompositionItem]
+### Correction +
FieldArgumentTypeDescription
correctionSearchCorrection
+### DeliverySlaPerTypes +
FieldArgumentTypeDescription
TypeNameString
PriceFloat
EstimatedTimeSpanToDeliveryString
+### DeliverySlaSamples +
FieldArgumentTypeDescription
DeliverySlaPerTypes[DeliverySlaPerTypes]
RegionRegion
+### DepartmentFacet +
FieldArgumentTypeDescription
idID!
quantityInt!
nameString
linkString!
linkEncodedString!
mapString
valueString!
selectedBoolean!
+### Discount +Discount object +
FieldArgumentTypeDescription
nameString +Discount name +
+### DomainValues +
FieldArgumentTypeDescription
FieldNameString
MaxCaractersString
DomainValuesString
+### Facet +
FieldArgumentTypeDescription
nameString
values[FacetValue]
fromInt
toInt
typeFilterType
hiddenBoolean
quantityInt
+### FacetValue +
FieldArgumentTypeDescription
idID
quantityInt!
nameString
keyString
valueString
selectedBoolean
children[FacetValue]
rangeRange
linkString
linkEncodedString
hrefString
+### Facets +
FieldArgumentTypeDescription
departments ⚠️[DepartmentFacet]

⚠️ DEPRECATED

+Use the `facets` instead. +
brands ⚠️[BrandFacet]

⚠️ DEPRECATED

+Use the `facets` instead. +
specificationFilters[FilterFacets]
categoriesTrees ⚠️[CategoriesTreeFacet]

⚠️ DEPRECATED

+Use the `facets` instead. +
priceRanges[PriceRangesFacet] +Price range for the given query. +
recordsFiltered ⚠️Int

⚠️ DEPRECATED

+Use the recordsFiltered from the `productSearch` instead. +
queryArgsQueryArgs +Info about the searched query. +
facets[Facet] +List of facets. +
samplingBoolean +Indicates whether there was sampling in the aggregation of facets or not. In search results that have many products, only the first 30000 will be aggregated to avoid performance issues. +
breadcrumb[SearchBreadcrumb] +Generated breadcrumb for the given query. +
+### FilterFacet +
FieldArgumentTypeDescription
quantityInt!
nameString
linkString!
linkEncodedString!
mapString
valueString!
selectedBoolean!
+### FilterFacets +
FieldArgumentTypeDescription
nameString
facets[FilterFacet]
+### Gift +
FieldArgumentTypeDescription
productNameString
skuNameString
brandString
linkTextString
descriptionString
images[GiftImage]
+### GiftImage +
FieldArgumentTypeDescription
imageUrlString
imageLabelString
imageTextString
+### Image +
FieldArgumentTypeDescription
cacheIdID
imageIdID
imageLabelString
imageTagString
imageUrlString
imageTextString
+### InputValue +
FieldArgumentTypeDescription
labelString
maxLengthInt
typeInputValueType
defaultValueStringOrBoolean
domain[String]
+### Installment +
FieldArgumentTypeDescription
ValueFloat
InterestRateFloat
TotalValuePlusInterestRateFloat
NumberOfInstallmentsInt
PaymentSystemNameString
PaymentSystemGroupNameString
NameString
+### ItemMetadata +
FieldArgumentTypeDescription
items[ItemMetadataUnit]
priceTable[ItemPriceTable]
+### ItemMetadataUnit +
FieldArgumentTypeDescription
idID
nameString
skuNameString
productIdString
refIdString
eanString
imageUrlString
detailUrlString
sellerString
assemblyOptions[AssemblyOption]
+### ItemPriceTable +
FieldArgumentTypeDescription
typeString
values[PriceTableItem]
+### Items +
FieldArgumentTypeDescription
thumbString
nameString
hrefString
criteriaString
slugString
productIdString
+### KitItem +
FieldArgumentTypeDescription
itemIdID
amountInt
productOnlyProduct
skuSKU
+### Offer +
FieldArgumentTypeDescription
Installments[Installment]
criteriaInstallmentsCriteria
ratesBoolean
excludedPaymentSystems[String]
includedPaymentSystems[String]
PriceFloat
ListPriceFloat
spotPriceFloat
PriceWithoutDiscountFloat
RewardValueFloat
PriceValidUntilString
AvailableQuantityFloat
TaxFloat
taxPercentageFloat
CacheVersionUsedToCallCheckoutString
DeliverySlaSamples[DeliverySlaSamples]
discountHighlights[Discount!] +List of discount highlights +
teasers[Teaser!]
giftSkuIds[String] +List of SKUs for gifts associated with the product +
gifts[Gift] +List of gifts associated with the product +
+### OnlyProduct +
FieldArgumentTypeDescription
brandString
categoryIdID
categoryTree[Category]
clusterHighlights[ClusterHighlight]
productClusters[ProductClusters]
descriptionString
linkString
linkTextString
productIdID
productNameString
properties[Property]
propertyGroups[PropertyGroup]
productReferenceString
recommendationsRecommendation
jsonSpecificationsString
+### PageType +
FieldArgumentTypeDescription
idString
typePageEntityIdentifier
+### PriceRange +
FieldArgumentTypeDescription
highPriceFloat
lowPriceFloat
+### PriceRangesFacet +
FieldArgumentTypeDescription
quantityInt!
nameString
linkString!
linkEncodedString!
mapString
valueString!
selectedBoolean!
slugString
+### PriceTableItem +
FieldArgumentTypeDescription
idString
assemblyIdString
priceInt
+### Product +
FieldArgumentTypeDescription
brandString +Brand of the product +
brandIdInt +Id of the brand of the product +
cacheIdID +linkText is used as cacheId +
categoryIdID
categories ⚠️[String] +Categories of the product +

⚠️ DEPRECATED

+Use 'categoryTree' field for internationalization support +
categoryTree[Category] +Product's categories +
clusterHighlights[ClusterHighlight] +List of related products +
productClusters[ProductClusters]
descriptionString +Product description +
items[SKU] +SKU objects of the product +
filterItemsFilter
skuSpecifications[SkuSpecification] +List of SKU Specifications +
linkString +Product URL +
linkTextString +Product slug +
productIdID +Product ID +
productNameString +Product name +
properties[Property] +Array of product properties +
propertyGroups[PropertyGroup] +Array of product properties +
productReferenceString +Product reference +
titleTagString +Title used by html tag +
metaTagDescriptionString +Description used by html tag +
recommendationsRecommendation +Related Products +
jsonSpecificationsString +JSON specification of the product +
benefits[Benefit] +List of benefits associated with this product +
itemMetadataItemMetadata
specificationGroups[SpecificationGroup] +Array of product SpecificationGroup +
priceRangeProductPriceRange +Returns highest and lowest prices for available SKUs in product. +
releaseDateString +Product Release Date, for list ordering and product cluster highlight +
selectedProperties[SelectedProperty] +Product properties that will be selected by default. e.g: {key: "Color", value: "Blue"} +
+### ProductClusters +
FieldArgumentTypeDescription
idID
nameString
+### ProductPriceRange +
FieldArgumentTypeDescription
sellingPricePriceRange
listPricePriceRange
+### ProductSearch +
FieldArgumentTypeDescription
products[Product] +List of products. +
recordsFilteredInt +Total number of products. +
titleTagString +Title used in the title's tag. +
metaTagDescriptionString +String to be used in the `
breadcrumb ⚠️[SearchBreadcrumb]

⚠️ DEPRECATED

+Use the `breadcrumb` from the `facets` query instead. +
canonicalString
suggestion ⚠️SearchSuggestions

⚠️ DEPRECATED

+Use the `suggestion` query instead. +
correctionSearchCorrection +Object that indicates if the term was misspelled and suggests a possible correction. +
operatorOperator +Indicates how the search-engine dealt with the fullText when there is more than one word.\n * `and` - It means that the products contains all the words in the query.\n * `or` - It means that the results will contain at least one word from the original search query. If `and` was not possible, `or` will be the fallback. +
fuzzyString +Indicates how the search engine corrected the misspelled word by using fuzzy logic. It can be a number representing the max number of misspelled letters, or the string `auto` suggesting that the search-engine should set this value by itself. +
searchStateString +As fuzzy and operator, it controls the search state, but it is for general purposes. This field allows the search engines to apply features that are not handled by the other fields. +The possible values in this field are defined by each search engine. +
banners ⚠️[SearchBanner]

⚠️ DEPRECATED

+Use the `banners` query instead. +
redirectString +Returns the redirect URL set for the given query. +
+### ProductSuggestions +
FieldArgumentTypeDescription
countInt! +Number of suggested products +
products[Product]! +Suggested products +
misspelledBoolean +If the term is misspelled or not +
operatorOperator +Indicates how the search-engine will deal with the fullText if there is more than one word. Set `and` if the returned products must have all the words in its metadata or `or` otherwise. +
+### Property +
FieldArgumentTypeDescription
originalNameString
nameString
values[String]
+### PropertyGroup +
FieldArgumentTypeDescription
nameString
properties[String]
+### QueryArgs +
FieldArgumentTypeDescription
mapString
queryString
selectedFacets[SelectedFacet]
+### Range +
FieldArgumentTypeDescription
fromFloat
toFloat
+### Recommendation +
FieldArgumentTypeDescription
buy[Product]
view[Product]
similars[Product]
+### Reference +
FieldArgumentTypeDescription
KeyString
ValueString
+### Region +
FieldArgumentTypeDescription
IsPersistedBoolean
IsRemovedBoolean
IdID
NameString
CountryCodeString
ZipCodeString
CultureInfoNameString
+### SKU +
FieldArgumentTypeDescription
itemIdID
nameString
nameCompleteString
complementNameString
eanString
referenceId[Reference]
measurementUnitString
unitMultiplierFloat
kitItems[KitItem]
images[Image]
quantityInt
videos[Video]
sellers[Seller]
variations[Property]
attachments ⚠️[Attachment]

⚠️ DEPRECATED

+Use itemMetaData instead +
estimatedDateArrivalString
+### SKUSpecificationField +
FieldArgumentTypeDescription
originalNameString
nameString
+### SKUSpecificationValue +
FieldArgumentTypeDescription
originalNameString
nameString
+### SearchBanner +
FieldArgumentTypeDescription
idString +Banner ID. +
nameString +Banner name. +
areaString +Banner area. +
htmlString +Banner HTML. +
+### SearchBreadcrumb +
FieldArgumentTypeDescription
nameString +Human-readable format of the facet key. +
hrefString +Query link. +
+### SearchCorrection +Object that indicates if the term was misspelled and suggests a possible correction. +
FieldArgumentTypeDescription
textString +The corrected term. If the API was not able to correct the term, it will show the original search term. +
highlightedString +The same as `text`, but it highlights the corrected word. Useful when there is more than one word. +
misspelledBoolean +Whether the term was misspelled (`true`) or not (`false`). +
correctionBoolean +Whether the API was able to suggest a correction (`true`) or not (`false`). +
+### SearchMetadata +
FieldArgumentTypeDescription
titleTagString
metaTagDescriptionString
+### SearchSuggestion +
FieldArgumentTypeDescription
termString! +Search term. +
countInt! +Number of times the term was searched. +
attributes[SearchSuggestionAttribute] +List of facets in which the term can be searched. +
+### SearchSuggestionAttribute +
FieldArgumentTypeDescription
keyString! +Facet key. +
valueString! +Facet value. +
labelValueString! +Human-readable format of the facet key. +
+### SearchSuggestions +
FieldArgumentTypeDescription
searches[SearchSuggestion] +A list of search suggestions. +
+### SearchURLStats +
FieldArgumentTypeDescription
pathString!
countInt!
+### SelectedFacet +
FieldArgumentTypeDescription
keyString
valueString
+### SelectedProperty +
FieldArgumentTypeDescription
keyString
valueString
+### Seller +
FieldArgumentTypeDescription
sellerIdID
sellerNameString
addToCartLinkString
sellerDefaultBoolean
commertialOfferOffer
+### SkuSpecification +
FieldArgumentTypeDescription
fieldSKUSpecificationField
values[SKUSpecificationValue]
+### SpecificationGroup +
FieldArgumentTypeDescription
originalNameString
nameString
specifications[SpecificationGroupProperty]
+### SpecificationGroupProperty +
FieldArgumentTypeDescription
originalNameString
nameString
values[String]
+### Suggestions +
FieldArgumentTypeDescription
cacheIdID + searchTerm from Query autocomplete is used as cacheId +
itemsReturned[Items]
+### Teaser +
FieldArgumentTypeDescription
nameString
conditionsTeaserCondition
effectsTeaserEffects
+### TeaserCondition +
FieldArgumentTypeDescription
minimumQuantityInt
parameters[TeaserValue]
+### TeaserEffects +
FieldArgumentTypeDescription
parameters[TeaserValue]
+### TeaserValue +
FieldArgumentTypeDescription
nameString
valueString
+### Video +
FieldArgumentTypeDescription
videoUrlString
+### productSpecification +
FieldArgumentTypeDescription
fieldNameString
fieldValues[String]
+## Inputs +### AssemblyOptionInput +
FieldTypeDescription
idID!
quantityInt!
assemblyIdString!
sellerString!
options[AssemblyOptionInput!]
+### Options +
FieldTypeDescription
allowRedirectBoolean +If the search has a redirect enabled, this allows (`true`) or not (`false`) the redirect to be used. +
+### ProductUniqueIdentifier +
FieldTypeDescription
fieldProductUniqueIdentifierField!
valueID!
+### SelectedFacetInput +
FieldTypeDescription
keyString +# Facet key + +A key for the selected facet. + +## General filters + + The `key` parameter also allows the following general filters. + + | `facetKey` | Description | + | --------------- | ------------------------------------------------------------------------------------------------------------------------------------- | + | `category-${n}` | Filter the search by category, where `n` represents the category tree level (1 = department, 2 = category, 3 = subcategory, and so on) | + | `region-id` | Filter the search by a region id (aka regionalization). The value is the region id | +
valueString +Facet value. +
+## Enums +### CategoryTreeBehavior +
ValueDescription
default +Uses the default value set by the search provider +
show +Show the category tree when it is possible +
hide +Hide the category tree in any situation +
+### CrossSelingInputEnum +
ValueDescription
buy
similars
view
viewAndBought
accessories
suggestions
+### FilterType +
ValueDescription
TEXT
NUMBER
CATEGORYTREE
BRAND
PRICERANGE
+### InputValueType +
ValueDescription
TEXT
BOOLEAN
OPTIONS
+### InstallmentsCriteria +
ValueDescription
MAX_WITHOUT_INTEREST
MAX_WITH_INTEREST
MAX
MIN
ALL
+### ItemsFilter +
ValueDescription
ALL +Returns all items, same as no filter. +
FIRST_AVAILABLE +Returns only the first available item. Returns first if no item is available. +
ALL_AVAILABLE +Returns all available items. Returns first if no item is available. +
+### Operator +
ValueDescription
and
or
+### PageEntityIdentifier +
ValueDescription
brand
department
category
subcategory
search
+### ProductUniqueIdentifierField +
ValueDescription
id
slug
ean
reference
sku
+### SORT +
ValueDescription
ASC
DESC
+### SimulationBehavior +
ValueDescription
default +Does simulation on catalog as usual +
only1P +Does simulation on catalog only for seller 1P +
skip +Calls catalog passing a parameter to not simulate each SKU and get its most up to date price. +
async +Does the simulation on the client side +
+## Scalars +### Boolean +The `Boolean` scalar type represents `true` or `false`. +### Float +The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). +### ID +The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. +### Int +The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. +### String +The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. +### StringOrBoolean diff --git a/package.json b/package.json new file mode 100644 index 0000000..aae14d7 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "search-graphql", + "version": "1.0.0", + "main": "index.js", + "repository": "git@github.com:vtex-apps/search-graphql.git", + "license": "MIT", + "devDependencies": { + "@graphql-tools/load-files": "^6.5.3", + "@graphql-tools/merge": "^8.2.10", + "graphql": "15", + "graphql-markdown": "^6.0.0" + } +} diff --git a/utils/generateDoc.js b/utils/generateDoc.js new file mode 100644 index 0000000..e0fc128 --- /dev/null +++ b/utils/generateDoc.js @@ -0,0 +1,34 @@ +const fs = require('fs') + +const { loadFilesSync } = require('@graphql-tools/load-files') +const { mergeTypeDefs } = require('@graphql-tools/merge') +const graphql = require('graphql') +const { + loadSchemaJSON, + renderSchema, +} = require('graphql-markdown') + +const SCHEMA_PATH = `${__dirname}/../graphql/**/*.graphql` +const BUNDLE_PATH = `${__dirname}/../joined.graphql` +const MARKDOWN_PATH = `${__dirname}/../docs/README.md` + +;(async () => { + // Generate bundle + const loadedFiles = loadFilesSync(SCHEMA_PATH) + const typeDefs = mergeTypeDefs(loadedFiles) + const printedTypeDefs = graphql.print(typeDefs) + fs.writeFileSync(BUNDLE_PATH, printedTypeDefs) + + // Generate markdown + fs.unlinkSync(MARKDOWN_PATH) + const schema = await loadSchemaJSON(BUNDLE_PATH, { graphql }) + renderSchema(schema, { + title: 'search-graphql', + prologue: + '# VTEX Search GraphQL\n\nThis app exports a GraphQL schema for search results on VTEX Stores.\n\nThe default implementation for this schema is on [vtex.search-resolver](https://github.com/vtex-apps/search-resolver) app.\n\n### Usage\n\nTo use it in your app, decalre it on your manifest file like:\n```\n"dependencies": {\n "vtex.search-graphql": "0.x"\n}\n```\n\nYou may then use it in your front end component queries, for example, write file `productQuery.gql`:\n```graphql\nquery ProductQuery($slug: String) {\n product(identifier: { field: slug, value: $slug}) @context(provider: "vtex.search-graphql") {\n productName\n }\n}\n```\n\nTo resolve this query, you need to have a app that implements the schema declared in this app, such as: [vtex.search-resolver](https://github.com/vtex-apps/search-resolver)', + printer: (doc) => fs.appendFileSync(MARKDOWN_PATH, doc) + }) + + // Delete temp file + fs.unlinkSync(BUNDLE_PATH) +})() diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..5e0eb60 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,270 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@graphql-tools/load-files@^6.5.3": + version "6.5.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/load-files/-/load-files-6.5.3.tgz#aa0debfae7fe5e63c4d95e63e4b8adc78bbf53f8" + integrity sha512-hu6hw2fj3ltno7ezbyAQc5VdLCymgx0XIwvk0l9sWAlV2xnaNcX7p/z1qm6U/db2MiCumRBBIm/QuR7Jn71qZg== + dependencies: + globby "11.0.4" + tslib "~2.3.0" + unixify "1.0.0" + +"@graphql-tools/merge@^8.2.10": + version "8.2.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.2.10.tgz#fe2fe5ad33dc2d1b0af8751c0c08d18bb6bb6d88" + integrity sha512-wpg22seOTNfkIO8jFAgo8w1BsT3IS2OTMpkCNf+dvcKSP09SVidYCOliyWHgjDCmpCrvvSjOX855NUKDx/Biew== + dependencies: + "@graphql-tools/utils" "8.6.9" + tslib "~2.3.0" + +"@graphql-tools/utils@8.6.9": + version "8.6.9" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.6.9.tgz#fe1b81df29c9418b41b7a1ffe731710b93d3a1fe" + integrity sha512-Z1X4d4GCT81+8CSt6SgU4t1w1UAUsAIRb67mI90k/zAs+ArkB95iE3bWXuJCUmd1+r8DGGtmUNOArtd6wkt+OQ== + dependencies: + tslib "~2.3.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +deep-diff@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-1.0.2.tgz#afd3d1f749115be965e89c63edc7abb1506b9c26" + integrity sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +fast-glob@^3.1.1: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +globby@11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +graphql-markdown@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/graphql-markdown/-/graphql-markdown-6.0.0.tgz#e9b04b91a5c6305ff024e3796dd2f895e561f2fe" + integrity sha512-VeTNRg8Qyzkki15n004qqUt4wGZrmxS8tIw2+2KhyUg0BrM1lR4RktXunPkxAMrEoHPQUa989KYJ9IJuD4A19A== + dependencies: + deep-diff "^1.0.2" + lodash.isplainobject "^4.0.6" + minimist "^1.2.0" + node-fetch "^2.2.0" + resolve-from "^4.0.0" + +graphql@15: + version "15.8.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" + integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== + +ignore@^5.1.4: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +minimist@^1.2.0: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +node-fetch@^2.2.0: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +tslib@~2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +unixify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" + integrity sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA= + dependencies: + normalize-path "^2.1.1" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0"