diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 862cb849..863900a2 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -10,3 +10,9 @@ jobs: uses: yext/slapshot-reusable-workflows/.github/workflows/run_tests.yml@v1 with: build_script: npm run build-ci + + compilation_check_for_test_site: + uses: yext/slapshot-reusable-workflows/.github/workflows/run_tests.yml@v1 + with: + test_script: cd test-site && npm i && npm run build + node_matrix: '["16.x"]' diff --git a/README.md b/README.md index 566b05af..a2eb0a72 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Search Core is a networking library for interacting with the Yext Search API. ## Getting Started -For a full getting started walk through, view our [official Hitchhiker Guide](https://hitchhikers.yext.com/guides/answers-core-getting-started/). +For a full getting started walk through, view our [official Hitchhiker Guide](https://hitchhikers.yext.com/guides/search-core-getting-started/). First, install Search-core via [npm](https://www.npmjs.com/get-npm): diff --git a/docs/search-core.address.city.md b/docs/search-core.address.city.md new file mode 100644 index 00000000..4eb847fb --- /dev/null +++ b/docs/search-core.address.city.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [city](./search-core.address.city.md) + +## Address.city property + +Signature: + +```typescript +city?: string; +``` diff --git a/docs/search-core.address.countrycode.md b/docs/search-core.address.countrycode.md new file mode 100644 index 00000000..c396d1f8 --- /dev/null +++ b/docs/search-core.address.countrycode.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [countryCode](./search-core.address.countrycode.md) + +## Address.countryCode property + +Signature: + +```typescript +countryCode: string; +``` diff --git a/docs/search-core.address.extradescription.md b/docs/search-core.address.extradescription.md new file mode 100644 index 00000000..39a4f316 --- /dev/null +++ b/docs/search-core.address.extradescription.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [extraDescription](./search-core.address.extradescription.md) + +## Address.extraDescription property + +Signature: + +```typescript +extraDescription?: string; +``` diff --git a/docs/search-core.address.line1.md b/docs/search-core.address.line1.md new file mode 100644 index 00000000..c9dda0dc --- /dev/null +++ b/docs/search-core.address.line1.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [line1](./search-core.address.line1.md) + +## Address.line1 property + +Signature: + +```typescript +line1?: string; +``` diff --git a/docs/search-core.address.line2.md b/docs/search-core.address.line2.md new file mode 100644 index 00000000..caf4856b --- /dev/null +++ b/docs/search-core.address.line2.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [line2](./search-core.address.line2.md) + +## Address.line2 property + +Signature: + +```typescript +line2?: string; +``` diff --git a/docs/search-core.address.line3.md b/docs/search-core.address.line3.md new file mode 100644 index 00000000..4380f7d9 --- /dev/null +++ b/docs/search-core.address.line3.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [line3](./search-core.address.line3.md) + +## Address.line3 property + +Signature: + +```typescript +line3?: string; +``` diff --git a/docs/search-core.address.md b/docs/search-core.address.md new file mode 100644 index 00000000..ba5617a1 --- /dev/null +++ b/docs/search-core.address.md @@ -0,0 +1,28 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) + +## Address interface + +An interface with address fields to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). + +Signature: + +```typescript +export interface Address +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [city?](./search-core.address.city.md) | string | (Optional) | +| [countryCode](./search-core.address.countrycode.md) | string | | +| [extraDescription?](./search-core.address.extradescription.md) | string | (Optional) | +| [line1?](./search-core.address.line1.md) | string | (Optional) | +| [line2?](./search-core.address.line2.md) | string | (Optional) | +| [line3?](./search-core.address.line3.md) | string | (Optional) | +| [postalCode?](./search-core.address.postalcode.md) | string | (Optional) | +| [region?](./search-core.address.region.md) | string | (Optional) | +| [sublocality?](./search-core.address.sublocality.md) | string | (Optional) | + diff --git a/docs/search-core.address.postalcode.md b/docs/search-core.address.postalcode.md new file mode 100644 index 00000000..6a331902 --- /dev/null +++ b/docs/search-core.address.postalcode.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [postalCode](./search-core.address.postalcode.md) + +## Address.postalCode property + +Signature: + +```typescript +postalCode?: string; +``` diff --git a/docs/search-core.address.region.md b/docs/search-core.address.region.md new file mode 100644 index 00000000..934b14c3 --- /dev/null +++ b/docs/search-core.address.region.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [region](./search-core.address.region.md) + +## Address.region property + +Signature: + +```typescript +region?: string; +``` diff --git a/docs/search-core.address.sublocality.md b/docs/search-core.address.sublocality.md new file mode 100644 index 00000000..25177c53 --- /dev/null +++ b/docs/search-core.address.sublocality.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Address](./search-core.address.md) > [sublocality](./search-core.address.sublocality.md) + +## Address.sublocality property + +Signature: + +```typescript +sublocality?: string; +``` diff --git a/docs/search-core.addressdirectanswer.fieldtype.md b/docs/search-core.addressdirectanswer.fieldtype.md new file mode 100644 index 00000000..a398c548 --- /dev/null +++ b/docs/search-core.addressdirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [AddressDirectAnswer](./search-core.addressdirectanswer.md) > [fieldType](./search-core.addressdirectanswer.fieldtype.md) + +## AddressDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.addressdirectanswer.md b/docs/search-core.addressdirectanswer.md new file mode 100644 index 00000000..d0da1257 --- /dev/null +++ b/docs/search-core.addressdirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [AddressDirectAnswer](./search-core.addressdirectanswer.md) + +## AddressDirectAnswer interface + +A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with 'address' field type. + +Signature: + +```typescript +export interface AddressDirectAnswer extends BaseFieldValueDirectAnswer
+``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<[Address](./search-core.address.md)> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.addressdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.Address](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.androidappurldirectanswer.fieldtype.md b/docs/search-core.androidappurldirectanswer.fieldtype.md new file mode 100644 index 00000000..1477337b --- /dev/null +++ b/docs/search-core.androidappurldirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [AndroidAppUrlDirectAnswer](./search-core.androidappurldirectanswer.md) > [fieldType](./search-core.androidappurldirectanswer.fieldtype.md) + +## AndroidAppUrlDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.androidappurldirectanswer.md b/docs/search-core.androidappurldirectanswer.md new file mode 100644 index 00000000..eb2b7ef4 --- /dev/null +++ b/docs/search-core.androidappurldirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [AndroidAppUrlDirectAnswer](./search-core.androidappurldirectanswer.md) + +## AndroidAppUrlDirectAnswer interface + +A direct answer for an android app url field. + +Signature: + +```typescript +export interface AndroidAppUrlDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.androidappurldirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.AndroidAppURL](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.answersconfig.md b/docs/search-core.answersconfig.md deleted file mode 100644 index faf4ecb2..00000000 --- a/docs/search-core.answersconfig.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [AnswersConfig](./search-core.answersconfig.md) - -## AnswersConfig type - -> Warning: This API is now obsolete. -> -> AnswersConfig is deprecated and has been replaced by [SearchConfig](./search-core.searchconfig.md) -> - -Signature: - -```typescript -export declare type AnswersConfig = SearchConfig; -``` -References: [SearchConfig](./search-core.searchconfig.md) - diff --git a/docs/search-core.answersconfigwithapikey.md b/docs/search-core.answersconfigwithapikey.md deleted file mode 100644 index 7f1c36c8..00000000 --- a/docs/search-core.answersconfigwithapikey.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [AnswersConfigWithApiKey](./search-core.answersconfigwithapikey.md) - -## AnswersConfigWithApiKey interface - -> Warning: This API is now obsolete. -> -> AnswersConfigWithApiKey is deprecated and has been replaced by [SearchConfigWithApiKey](./search-core.searchconfigwithapikey.md) -> - -Signature: - -```typescript -export interface AnswersConfigWithApiKey extends SearchConfigWithApiKey -``` -Extends: [SearchConfigWithApiKey](./search-core.searchconfigwithapikey.md) - diff --git a/docs/search-core.answersconfigwithtoken.md b/docs/search-core.answersconfigwithtoken.md deleted file mode 100644 index 01755fd6..00000000 --- a/docs/search-core.answersconfigwithtoken.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [AnswersConfigWithToken](./search-core.answersconfigwithtoken.md) - -## AnswersConfigWithToken interface - -> Warning: This API is now obsolete. -> -> AnswersConfigWithToken is deprecated and has been replaced by [SearchConfigWithToken](./search-core.searchconfigwithtoken.md) -> - -Signature: - -```typescript -export interface AnswersConfigWithToken extends SearchConfigWithToken -``` -Extends: [SearchConfigWithToken](./search-core.searchconfigwithtoken.md) - diff --git a/docs/search-core.answerscore.md b/docs/search-core.answerscore.md deleted file mode 100644 index bcffe85f..00000000 --- a/docs/search-core.answerscore.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [AnswersCore](./search-core.answerscore.md) - -## AnswersCore class - -> Warning: This API is now obsolete. -> -> AnswersCore is deprecated and has been replaced by [SearchCore](./search-core.searchcore.md) -> - -Signature: - -```typescript -export declare class AnswersCore extends SearchCore -``` -Extends: [SearchCore](./search-core.searchcore.md) - diff --git a/docs/search-core.answerserror.md b/docs/search-core.answerserror.md deleted file mode 100644 index 4bacf89e..00000000 --- a/docs/search-core.answerserror.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [AnswersError](./search-core.answerserror.md) - -## AnswersError interface - -> Warning: This API is now obsolete. -> -> AnswersError is deprecated and has been replaced by [SearchError](./search-core.searcherror.md) -> - -Signature: - -```typescript -export interface AnswersError extends SearchError -``` -Extends: [SearchError](./search-core.searcherror.md) - diff --git a/docs/search-core.answersrequest.md b/docs/search-core.answersrequest.md deleted file mode 100644 index 3733c784..00000000 --- a/docs/search-core.answersrequest.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [AnswersRequest](./search-core.answersrequest.md) - -## AnswersRequest interface - -> Warning: This API is now obsolete. -> -> AnswersRequest is deprecated and has been replaced by [SearchRequest](./search-core.searchrequest.md) -> - -Signature: - -```typescript -export interface AnswersRequest extends SearchRequest -``` -Extends: [SearchRequest](./search-core.searchrequest.md) - diff --git a/docs/search-core.appliedqueryfilter.filter.md b/docs/search-core.appliedqueryfilter.filter.md index 8ef7046b..7847162b 100644 --- a/docs/search-core.appliedqueryfilter.filter.md +++ b/docs/search-core.appliedqueryfilter.filter.md @@ -9,5 +9,5 @@ The filter applied to the query results. Signature: ```typescript -filter: Filter; +filter: FieldValueFilter; ``` diff --git a/docs/search-core.appliedqueryfilter.md b/docs/search-core.appliedqueryfilter.md index 28cdac0c..277d5a2e 100644 --- a/docs/search-core.appliedqueryfilter.md +++ b/docs/search-core.appliedqueryfilter.md @@ -19,6 +19,6 @@ export interface AppliedQueryFilter | [details?](./search-core.appliedqueryfilter.details.md) | [LocationFilterDetails](./search-core.locationfilterdetails.md) | (Optional) Additional details relevant to the filter with "PLACE" for its [AppliedQueryFilterType](./search-core.appliedqueryfiltertype.md). | | [displayKey](./search-core.appliedqueryfilter.displaykey.md) | string | The display name of the filter key. | | [displayValue](./search-core.appliedqueryfilter.displayvalue.md) | string | The value used in the filter. | -| [filter](./search-core.appliedqueryfilter.filter.md) | [Filter](./search-core.filter.md) | The filter applied to the query results. | +| [filter](./search-core.appliedqueryfilter.filter.md) | [FieldValueFilter](./search-core.fieldvaluefilter.md) | The filter applied to the query results. | | [type](./search-core.appliedqueryfilter.type.md) | [AppliedQueryFilterType](./search-core.appliedqueryfiltertype.md) | Represents the type of [AppliedQueryFilter](./search-core.appliedqueryfilter.md) applied to a search. | diff --git a/docs/search-core.autocompleteresult.filter.md b/docs/search-core.autocompleteresult.filter.md index 718d2b1f..d125e7cc 100644 --- a/docs/search-core.autocompleteresult.filter.md +++ b/docs/search-core.autocompleteresult.filter.md @@ -9,7 +9,7 @@ A filter applied to the autocomplete response. Signature: ```typescript -filter?: Filter; +filter?: FieldValueFilter; ``` ## Remarks diff --git a/docs/search-core.autocompleteresult.md b/docs/search-core.autocompleteresult.md index 94ca63cb..a84dcaa8 100644 --- a/docs/search-core.autocompleteresult.md +++ b/docs/search-core.autocompleteresult.md @@ -16,7 +16,7 @@ export interface AutocompleteResult | Property | Type | Description | | --- | --- | --- | -| [filter?](./search-core.autocompleteresult.filter.md) | [Filter](./search-core.filter.md) | (Optional) A filter applied to the autocomplete response. | +| [filter?](./search-core.autocompleteresult.filter.md) | [FieldValueFilter](./search-core.fieldvaluefilter.md) | (Optional) A filter applied to the autocomplete response. | | [key?](./search-core.autocompleteresult.key.md) | string | (Optional) The fieldId which corresponds to the AutocompleteResult value. | | [matchedSubstrings?](./search-core.autocompleteresult.matchedsubstrings.md) | { length: number; offset: number; }\[\] | (Optional) An array of substrings which overlap with the autocomplete input. | | [relatedItem?](./search-core.autocompleteresult.relateditem.md) | [Result](./search-core.result.md) | (Optional) An entity that corresponds to the autocomplete result. | diff --git a/docs/search-core.baseanswersconfig.md b/docs/search-core.baseanswersconfig.md deleted file mode 100644 index c40e97d8..00000000 --- a/docs/search-core.baseanswersconfig.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseAnswersConfig](./search-core.baseanswersconfig.md) - -## BaseAnswersConfig interface - -> Warning: This API is now obsolete. -> -> BaseAnswersConfig is deprecated and has been replaced by [BaseSearchConfig](./search-core.basesearchconfig.md) -> - -Signature: - -```typescript -export interface BaseAnswersConfig extends BaseSearchConfig -``` -Extends: [BaseSearchConfig](./search-core.basesearchconfig.md) - diff --git a/docs/search-core.basefeaturedsnippetdirectanswer.fieldtype.md b/docs/search-core.basefeaturedsnippetdirectanswer.fieldtype.md new file mode 100644 index 00000000..c3599a4c --- /dev/null +++ b/docs/search-core.basefeaturedsnippetdirectanswer.fieldtype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) > [fieldType](./search-core.basefeaturedsnippetdirectanswer.fieldtype.md) + +## BaseFeaturedSnippetDirectAnswer.fieldType property + +The field type of the direct answer. + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.basefeaturedsnippetdirectanswer.md b/docs/search-core.basefeaturedsnippetdirectanswer.md new file mode 100644 index 00000000..a9e8fa56 --- /dev/null +++ b/docs/search-core.basefeaturedsnippetdirectanswer.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) + +## BaseFeaturedSnippetDirectAnswer interface + +A direct answer which was found within a document. + +Signature: + +```typescript +export interface BaseFeaturedSnippetDirectAnswer extends DirectAnswer +``` +Extends: [DirectAnswer](./search-core.directanswer.md)<T> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.basefeaturedsnippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.MultiLineText](./search-core.builtinfieldtype.md) \| [BuiltInFieldType.RichText](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | +| [snippet](./search-core.basefeaturedsnippetdirectanswer.snippet.md) | [Snippet](./search-core.snippet.md) | The snippet where the direct answer was found. | +| [type](./search-core.basefeaturedsnippetdirectanswer.type.md) | [DirectAnswerType.FeaturedSnippet](./search-core.directanswertype.md) | Indicates that the DirectAnswer is a [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md). | + diff --git a/docs/search-core.featuredsnippetdirectanswer.snippet.md b/docs/search-core.basefeaturedsnippetdirectanswer.snippet.md similarity index 52% rename from docs/search-core.featuredsnippetdirectanswer.snippet.md rename to docs/search-core.basefeaturedsnippetdirectanswer.snippet.md index b85ac80f..459f16c4 100644 --- a/docs/search-core.featuredsnippetdirectanswer.snippet.md +++ b/docs/search-core.basefeaturedsnippetdirectanswer.snippet.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) > [snippet](./search-core.featuredsnippetdirectanswer.snippet.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) > [snippet](./search-core.basefeaturedsnippetdirectanswer.snippet.md) -## FeaturedSnippetDirectAnswer.snippet property +## BaseFeaturedSnippetDirectAnswer.snippet property The snippet where the direct answer was found. diff --git a/docs/search-core.basefeaturedsnippetdirectanswer.type.md b/docs/search-core.basefeaturedsnippetdirectanswer.type.md new file mode 100644 index 00000000..973b5e0d --- /dev/null +++ b/docs/search-core.basefeaturedsnippetdirectanswer.type.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) > [type](./search-core.basefeaturedsnippetdirectanswer.type.md) + +## BaseFeaturedSnippetDirectAnswer.type property + +Indicates that the DirectAnswer is a [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md). + +Signature: + +```typescript +type: DirectAnswerType.FeaturedSnippet; +``` diff --git a/docs/search-core.fieldvaluedirectanswer.entityname.md b/docs/search-core.basefieldvaluedirectanswer.entityname.md similarity index 54% rename from docs/search-core.fieldvaluedirectanswer.entityname.md rename to docs/search-core.basefieldvaluedirectanswer.entityname.md index 7cd22617..940dbe03 100644 --- a/docs/search-core.fieldvaluedirectanswer.entityname.md +++ b/docs/search-core.basefieldvaluedirectanswer.entityname.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) > [entityName](./search-core.fieldvaluedirectanswer.entityname.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) > [entityName](./search-core.basefieldvaluedirectanswer.entityname.md) -## FieldValueDirectAnswer.entityName property +## BaseFieldValueDirectAnswer.entityName property The name of the entity that direct answer came from. diff --git a/docs/search-core.fieldvaluedirectanswer.fieldapiname.md b/docs/search-core.basefieldvaluedirectanswer.fieldapiname.md similarity index 53% rename from docs/search-core.fieldvaluedirectanswer.fieldapiname.md rename to docs/search-core.basefieldvaluedirectanswer.fieldapiname.md index f6827355..572606ec 100644 --- a/docs/search-core.fieldvaluedirectanswer.fieldapiname.md +++ b/docs/search-core.basefieldvaluedirectanswer.fieldapiname.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) > [fieldApiName](./search-core.fieldvaluedirectanswer.fieldapiname.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) > [fieldApiName](./search-core.basefieldvaluedirectanswer.fieldapiname.md) -## FieldValueDirectAnswer.fieldApiName property +## BaseFieldValueDirectAnswer.fieldApiName property The field api name of the direct answer. diff --git a/docs/search-core.fieldvaluedirectanswer.fieldname.md b/docs/search-core.basefieldvaluedirectanswer.fieldname.md similarity index 53% rename from docs/search-core.fieldvaluedirectanswer.fieldname.md rename to docs/search-core.basefieldvaluedirectanswer.fieldname.md index fd8b6cff..c796d903 100644 --- a/docs/search-core.fieldvaluedirectanswer.fieldname.md +++ b/docs/search-core.basefieldvaluedirectanswer.fieldname.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) > [fieldName](./search-core.fieldvaluedirectanswer.fieldname.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) > [fieldName](./search-core.basefieldvaluedirectanswer.fieldname.md) -## FieldValueDirectAnswer.fieldName property +## BaseFieldValueDirectAnswer.fieldName property The field name of the direct answer. diff --git a/docs/search-core.basefieldvaluedirectanswer.md b/docs/search-core.basefieldvaluedirectanswer.md new file mode 100644 index 00000000..9a5f2bc7 --- /dev/null +++ b/docs/search-core.basefieldvaluedirectanswer.md @@ -0,0 +1,25 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) + +## BaseFieldValueDirectAnswer interface + +A direct answer where the answer came from a field from the knowledge graph. + +Signature: + +```typescript +export interface BaseFieldValueDirectAnswer extends DirectAnswer +``` +Extends: [DirectAnswer](./search-core.directanswer.md)<T> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [entityName](./search-core.basefieldvaluedirectanswer.entityname.md) | string | The name of the entity that direct answer came from. | +| [fieldApiName](./search-core.basefieldvaluedirectanswer.fieldapiname.md) | string | The field api name of the direct answer. | +| [fieldName](./search-core.basefieldvaluedirectanswer.fieldname.md) | string | The field name of the direct answer. | +| [type](./search-core.basefieldvaluedirectanswer.type.md) | [DirectAnswerType.FieldValue](./search-core.directanswertype.md) | Indicates that the DirectAnswer is a [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md). | +| [value](./search-core.basefieldvaluedirectanswer.value.md) | T | The result of the direct answer. | + diff --git a/docs/search-core.basefieldvaluedirectanswer.type.md b/docs/search-core.basefieldvaluedirectanswer.type.md new file mode 100644 index 00000000..e5083a6c --- /dev/null +++ b/docs/search-core.basefieldvaluedirectanswer.type.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) > [type](./search-core.basefieldvaluedirectanswer.type.md) + +## BaseFieldValueDirectAnswer.type property + +Indicates that the DirectAnswer is a [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md). + +Signature: + +```typescript +type: DirectAnswerType.FieldValue; +``` diff --git a/docs/search-core.basefieldvaluedirectanswer.value.md b/docs/search-core.basefieldvaluedirectanswer.value.md new file mode 100644 index 00000000..bd68420e --- /dev/null +++ b/docs/search-core.basefieldvaluedirectanswer.value.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) > [value](./search-core.basefieldvaluedirectanswer.value.md) + +## BaseFieldValueDirectAnswer.value property + +The result of the direct answer. + +Signature: + +```typescript +value: T; +``` diff --git a/docs/search-core.basesearchconfig.additionalqueryparams.md b/docs/search-core.basesearchconfig.additionalqueryparams.md new file mode 100644 index 00000000..b3891309 --- /dev/null +++ b/docs/search-core.basesearchconfig.additionalqueryparams.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BaseSearchConfig](./search-core.basesearchconfig.md) > [additionalQueryParams](./search-core.basesearchconfig.additionalqueryparams.md) + +## BaseSearchConfig.additionalQueryParams property + +Additional query params added on to every request. + +Signature: + +```typescript +additionalQueryParams?: { + [key: string]: string | number | boolean; + }; +``` diff --git a/docs/search-core.basesearchconfig.md b/docs/search-core.basesearchconfig.md index 8f9407ef..e3e2d413 100644 --- a/docs/search-core.basesearchconfig.md +++ b/docs/search-core.basesearchconfig.md @@ -16,6 +16,7 @@ export interface BaseSearchConfig | Property | Type | Description | | --- | --- | --- | +| [additionalQueryParams?](./search-core.basesearchconfig.additionalqueryparams.md) | { \[key: string\]: string \| number \| boolean; } | (Optional) Additional query params added on to every request. | | [endpoints?](./search-core.basesearchconfig.endpoints.md) | [Endpoints](./search-core.endpoints.md) | (Optional) Overrides for the URLs which are used when making requests to the Search API. | | [experienceKey](./search-core.basesearchconfig.experiencekey.md) | string | The experience key of the search experience. | | [experienceVersion?](./search-core.basesearchconfig.experienceversion.md) | 'STAGING' \| 'PRODUCTION' \| string \| number | (Optional) The version of the search experience configuration. | diff --git a/docs/search-core.builtinfieldtype.md b/docs/search-core.builtinfieldtype.md new file mode 100644 index 00000000..8c7d0d70 --- /dev/null +++ b/docs/search-core.builtinfieldtype.md @@ -0,0 +1,35 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [BuiltInFieldType](./search-core.builtinfieldtype.md) + +## BuiltInFieldType enum + +Possible built-in field types for [DirectAnswer.fieldType](./search-core.directanswer.fieldtype.md). + +Signature: + +```typescript +export declare enum BuiltInFieldType +``` + +## Enumeration Members + +| Member | Value | Description | +| --- | --- | --- | +| Address | "address" | | +| AndroidAppURL | "android_app_url" | | +| ComplexURL | "complex_url" | | +| Decimal | "decimal" | | +| Email | "email" | | +| FacebookURL | "facebook_url" | | +| Hours | "hours" | | +| InstagramHandle | "instagram_handle" | | +| Integer | "integer" | | +| IOSAppURL | "ios_app_url" | | +| MultiLineText | "multi_line_text" | | +| Phone | "phone" | | +| RichText | "rich_text" | | +| SingleLineText | "single_line_text" | | +| TwitterHandle | "twitter_handle" | | +| URL | "url" | | + diff --git a/docs/search-core.combinedfilter.combinator.md b/docs/search-core.combinedfilter.combinator.md deleted file mode 100644 index ff0853f5..00000000 --- a/docs/search-core.combinedfilter.combinator.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [CombinedFilter](./search-core.combinedfilter.md) > [combinator](./search-core.combinedfilter.combinator.md) - -## CombinedFilter.combinator property - -The logical operator used to combine the filters. - -Signature: - -```typescript -combinator: FilterCombinator; -``` diff --git a/docs/search-core.combinedfilter.filters.md b/docs/search-core.combinedfilter.filters.md deleted file mode 100644 index 73d97aad..00000000 --- a/docs/search-core.combinedfilter.filters.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [CombinedFilter](./search-core.combinedfilter.md) > [filters](./search-core.combinedfilter.filters.md) - -## CombinedFilter.filters property - -An array of filters applied to the search. - -Signature: - -```typescript -filters: (Filter | CombinedFilter)[]; -``` diff --git a/docs/search-core.combinedfilter.md b/docs/search-core.combinedfilter.md deleted file mode 100644 index db5da7cc..00000000 --- a/docs/search-core.combinedfilter.md +++ /dev/null @@ -1,21 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [CombinedFilter](./search-core.combinedfilter.md) - -## CombinedFilter interface - -Represents multiple filters that will be combined to refine results. - -Signature: - -```typescript -export interface CombinedFilter -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [combinator](./search-core.combinedfilter.combinator.md) | [FilterCombinator](./search-core.filtercombinator.md) | The logical operator used to combine the filters. | -| [filters](./search-core.combinedfilter.filters.md) | ([Filter](./search-core.filter.md) \| [CombinedFilter](./search-core.combinedfilter.md))\[\] | An array of filters applied to the search. | - diff --git a/docs/search-core.complexurl.displayurl.md b/docs/search-core.complexurl.displayurl.md new file mode 100644 index 00000000..1402fe61 --- /dev/null +++ b/docs/search-core.complexurl.displayurl.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ComplexURL](./search-core.complexurl.md) > [displayUrl](./search-core.complexurl.displayurl.md) + +## ComplexURL.displayUrl property + +Signature: + +```typescript +displayUrl?: string; +``` diff --git a/docs/search-core.complexurl.md b/docs/search-core.complexurl.md new file mode 100644 index 00000000..1be69994 --- /dev/null +++ b/docs/search-core.complexurl.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ComplexURL](./search-core.complexurl.md) + +## ComplexURL interface + +The shape of a [BuiltInFieldType.ComplexURL](./search-core.builtinfieldtype.md) DirectAnswer value + +Signature: + +```typescript +export interface ComplexURL +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [displayUrl?](./search-core.complexurl.displayurl.md) | string | (Optional) | +| [preferDisplayUrl](./search-core.complexurl.preferdisplayurl.md) | boolean | | +| [url](./search-core.complexurl.url.md) | string | | + diff --git a/docs/search-core.complexurl.preferdisplayurl.md b/docs/search-core.complexurl.preferdisplayurl.md new file mode 100644 index 00000000..e03669eb --- /dev/null +++ b/docs/search-core.complexurl.preferdisplayurl.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ComplexURL](./search-core.complexurl.md) > [preferDisplayUrl](./search-core.complexurl.preferdisplayurl.md) + +## ComplexURL.preferDisplayUrl property + +Signature: + +```typescript +preferDisplayUrl: boolean; +``` diff --git a/docs/search-core.complexurl.url.md b/docs/search-core.complexurl.url.md new file mode 100644 index 00000000..7dd97ddc --- /dev/null +++ b/docs/search-core.complexurl.url.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ComplexURL](./search-core.complexurl.md) > [url](./search-core.complexurl.url.md) + +## ComplexURL.url property + +Signature: + +```typescript +url: string; +``` diff --git a/docs/search-core.complexurldirectanswer.fieldtype.md b/docs/search-core.complexurldirectanswer.fieldtype.md new file mode 100644 index 00000000..ce9931fd --- /dev/null +++ b/docs/search-core.complexurldirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ComplexUrlDirectAnswer](./search-core.complexurldirectanswer.md) > [fieldType](./search-core.complexurldirectanswer.fieldtype.md) + +## ComplexUrlDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.complexurldirectanswer.md b/docs/search-core.complexurldirectanswer.md new file mode 100644 index 00000000..7da685c3 --- /dev/null +++ b/docs/search-core.complexurldirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ComplexUrlDirectAnswer](./search-core.complexurldirectanswer.md) + +## ComplexUrlDirectAnswer interface + +A direct answer for a complex url field. + +Signature: + +```typescript +export interface ComplexUrlDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<[ComplexURL](./search-core.complexurl.md)> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.complexurldirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.ComplexURL](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.conjunctionstaticfilter.combinator.md b/docs/search-core.conjunctionstaticfilter.combinator.md new file mode 100644 index 00000000..9ef17207 --- /dev/null +++ b/docs/search-core.conjunctionstaticfilter.combinator.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ConjunctionStaticFilter](./search-core.conjunctionstaticfilter.md) > [combinator](./search-core.conjunctionstaticfilter.combinator.md) + +## ConjunctionStaticFilter.combinator property + +Indicates that filters should be combined with a logical AND. + +Signature: + +```typescript +combinator: FilterCombinator.AND; +``` diff --git a/docs/search-core.conjunctionstaticfilter.filters.md b/docs/search-core.conjunctionstaticfilter.filters.md new file mode 100644 index 00000000..2f615049 --- /dev/null +++ b/docs/search-core.conjunctionstaticfilter.filters.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ConjunctionStaticFilter](./search-core.conjunctionstaticfilter.md) > [filters](./search-core.conjunctionstaticfilter.filters.md) + +## ConjunctionStaticFilter.filters property + +The filters to combine together. + +Signature: + +```typescript +filters: StaticFilter[]; +``` diff --git a/docs/search-core.conjunctionstaticfilter.kind.md b/docs/search-core.conjunctionstaticfilter.kind.md new file mode 100644 index 00000000..181ffb98 --- /dev/null +++ b/docs/search-core.conjunctionstaticfilter.kind.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ConjunctionStaticFilter](./search-core.conjunctionstaticfilter.md) > [kind](./search-core.conjunctionstaticfilter.kind.md) + +## ConjunctionStaticFilter.kind property + +The kind of static filter. + +Signature: + +```typescript +kind: 'conjunction'; +``` diff --git a/docs/search-core.conjunctionstaticfilter.md b/docs/search-core.conjunctionstaticfilter.md new file mode 100644 index 00000000..618daaa3 --- /dev/null +++ b/docs/search-core.conjunctionstaticfilter.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [ConjunctionStaticFilter](./search-core.conjunctionstaticfilter.md) + +## ConjunctionStaticFilter interface + +A static filter composed by combining other static filters with the logical AND operator. + +Signature: + +```typescript +export interface ConjunctionStaticFilter +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [combinator](./search-core.conjunctionstaticfilter.combinator.md) | [FilterCombinator.AND](./search-core.filtercombinator.md) | Indicates that filters should be combined with a logical AND. | +| [filters](./search-core.conjunctionstaticfilter.filters.md) | [StaticFilter](./search-core.staticfilter.md)\[\] | The filters to combine together. | +| [kind](./search-core.conjunctionstaticfilter.kind.md) | 'conjunction' | The kind of static filter. | + diff --git a/docs/search-core.dayhour.isclosed.md b/docs/search-core.dayhour.isclosed.md new file mode 100644 index 00000000..18f41a97 --- /dev/null +++ b/docs/search-core.dayhour.isclosed.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DayHour](./search-core.dayhour.md) > [isClosed](./search-core.dayhour.isclosed.md) + +## DayHour.isClosed property + +Signature: + +```typescript +isClosed?: boolean; +``` diff --git a/docs/search-core.dayhour.md b/docs/search-core.dayhour.md new file mode 100644 index 00000000..0b7ce429 --- /dev/null +++ b/docs/search-core.dayhour.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DayHour](./search-core.dayhour.md) + +## DayHour interface + +An interface for a day's hours to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). + +Signature: + +```typescript +export interface DayHour +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [isClosed?](./search-core.dayhour.isclosed.md) | boolean | (Optional) | +| [openIntervals?](./search-core.dayhour.openintervals.md) | [Interval](./search-core.interval.md)\[\] | (Optional) | + diff --git a/docs/search-core.dayhour.openintervals.md b/docs/search-core.dayhour.openintervals.md new file mode 100644 index 00000000..29827320 --- /dev/null +++ b/docs/search-core.dayhour.openintervals.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DayHour](./search-core.dayhour.md) > [openIntervals](./search-core.dayhour.openintervals.md) + +## DayHour.openIntervals property + +Signature: + +```typescript +openIntervals?: Interval[]; +``` diff --git a/docs/search-core.decimaldirectanswer.fieldtype.md b/docs/search-core.decimaldirectanswer.fieldtype.md new file mode 100644 index 00000000..dd1583fb --- /dev/null +++ b/docs/search-core.decimaldirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DecimalDirectAnswer](./search-core.decimaldirectanswer.md) > [fieldType](./search-core.decimaldirectanswer.fieldtype.md) + +## DecimalDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.decimaldirectanswer.md b/docs/search-core.decimaldirectanswer.md new file mode 100644 index 00000000..dd91c212 --- /dev/null +++ b/docs/search-core.decimaldirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DecimalDirectAnswer](./search-core.decimaldirectanswer.md) + +## DecimalDirectAnswer interface + +A direct answer for a decimal field, which is a number represented using a string. + +Signature: + +```typescript +export interface DecimalDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string \| string\[\]> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.decimaldirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.Decimal](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.directanswer.fieldtype.md b/docs/search-core.directanswer.fieldtype.md index 09571f86..03a13438 100644 --- a/docs/search-core.directanswer.fieldtype.md +++ b/docs/search-core.directanswer.fieldtype.md @@ -9,5 +9,5 @@ The field type of the direct answer. Signature: ```typescript -fieldType: string; +fieldType: EnumOrLiteral | 'unknown'; ``` diff --git a/docs/search-core.directanswer.md b/docs/search-core.directanswer.md index 18f1eb25..f6fd8b6f 100644 --- a/docs/search-core.directanswer.md +++ b/docs/search-core.directanswer.md @@ -9,16 +9,16 @@ A direct answer to a search. Signature: ```typescript -export interface DirectAnswer +export interface DirectAnswer ``` ## Properties | Property | Type | Description | | --- | --- | --- | -| [fieldType](./search-core.directanswer.fieldtype.md) | string | The field type of the direct answer. | +| [fieldType](./search-core.directanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType](./search-core.builtinfieldtype.md)> \| 'unknown' | The field type of the direct answer. | | [relatedResult](./search-core.directanswer.relatedresult.md) | [Result](./search-core.result.md) | The entity associated with the direct answer. | | [type](./search-core.directanswer.type.md) | [DirectAnswerType](./search-core.directanswertype.md) | The [DirectAnswerType](./search-core.directanswertype.md). | -| [value?](./search-core.directanswer.value.md) | string | (Optional) The result of the direct answer. | +| [value?](./search-core.directanswer.value.md) | T | (Optional) The value of the direct answer. | | [verticalKey](./search-core.directanswer.verticalkey.md) | string | The vertical key of the direct answer. | diff --git a/docs/search-core.directanswer.value.md b/docs/search-core.directanswer.value.md index 1076e975..77aa935a 100644 --- a/docs/search-core.directanswer.value.md +++ b/docs/search-core.directanswer.value.md @@ -4,15 +4,15 @@ ## DirectAnswer.value property -The result of the direct answer. +The value of the direct answer. Signature: ```typescript -value?: string; +value?: T; ``` ## Remarks -A value will not be present if the [DirectAnswer.fieldType](./search-core.directanswer.fieldtype.md) is 'rich\_text'. +A value will not be present if the [DirectAnswer.type](./search-core.directanswer.type.md) is 'FEATURED\_SNIPPET' and [DirectAnswer.fieldType](./search-core.directanswer.fieldtype.md) is 'rich\_text'. diff --git a/docs/search-core.disjunctionstaticfilter.combinator.md b/docs/search-core.disjunctionstaticfilter.combinator.md new file mode 100644 index 00000000..f25f03c8 --- /dev/null +++ b/docs/search-core.disjunctionstaticfilter.combinator.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DisjunctionStaticFilter](./search-core.disjunctionstaticfilter.md) > [combinator](./search-core.disjunctionstaticfilter.combinator.md) + +## DisjunctionStaticFilter.combinator property + +Indicates that filters should be combined with a logical OR. + +Signature: + +```typescript +combinator: FilterCombinator.OR; +``` diff --git a/docs/search-core.disjunctionstaticfilter.filters.md b/docs/search-core.disjunctionstaticfilter.filters.md new file mode 100644 index 00000000..8819489f --- /dev/null +++ b/docs/search-core.disjunctionstaticfilter.filters.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DisjunctionStaticFilter](./search-core.disjunctionstaticfilter.md) > [filters](./search-core.disjunctionstaticfilter.filters.md) + +## DisjunctionStaticFilter.filters property + +The filters to combine together. + +Signature: + +```typescript +filters: (DisjunctionStaticFilter | FieldValueStaticFilter)[]; +``` diff --git a/docs/search-core.disjunctionstaticfilter.kind.md b/docs/search-core.disjunctionstaticfilter.kind.md new file mode 100644 index 00000000..b39dfe85 --- /dev/null +++ b/docs/search-core.disjunctionstaticfilter.kind.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DisjunctionStaticFilter](./search-core.disjunctionstaticfilter.md) > [kind](./search-core.disjunctionstaticfilter.kind.md) + +## DisjunctionStaticFilter.kind property + +The kind of static filter. + +Signature: + +```typescript +kind: 'disjunction'; +``` diff --git a/docs/search-core.disjunctionstaticfilter.md b/docs/search-core.disjunctionstaticfilter.md new file mode 100644 index 00000000..0e3451bc --- /dev/null +++ b/docs/search-core.disjunctionstaticfilter.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [DisjunctionStaticFilter](./search-core.disjunctionstaticfilter.md) + +## DisjunctionStaticFilter interface + +A static filter composed by combining filters with the logical OR operator. The combined filters can either be field value filters or other disjunction filters. + +Signature: + +```typescript +export interface DisjunctionStaticFilter +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [combinator](./search-core.disjunctionstaticfilter.combinator.md) | [FilterCombinator.OR](./search-core.filtercombinator.md) | Indicates that filters should be combined with a logical OR. | +| [filters](./search-core.disjunctionstaticfilter.filters.md) | ([DisjunctionStaticFilter](./search-core.disjunctionstaticfilter.md) \| [FieldValueStaticFilter](./search-core.fieldvaluestaticfilter.md))\[\] | The filters to combine together. | +| [kind](./search-core.disjunctionstaticfilter.kind.md) | 'disjunction' | The kind of static filter. | + diff --git a/docs/search-core.displayablefacet.fieldid.md b/docs/search-core.displayablefacet.fieldid.md deleted file mode 100644 index 000f13a9..00000000 --- a/docs/search-core.displayablefacet.fieldid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [DisplayableFacet](./search-core.displayablefacet.md) > [fieldId](./search-core.displayablefacet.fieldid.md) - -## DisplayableFacet.fieldId property - -The associated fieldId. - -Signature: - -```typescript -fieldId: string; -``` diff --git a/docs/search-core.displayablefacet.md b/docs/search-core.displayablefacet.md index d093ab92..783eaf78 100644 --- a/docs/search-core.displayablefacet.md +++ b/docs/search-core.displayablefacet.md @@ -18,6 +18,5 @@ export interface DisplayableFacet extends Facet | Property | Type | Description | | --- | --- | --- | | [displayName](./search-core.displayablefacet.displayname.md) | string | The name of the facet which is meant to be displayed to the user. | -| [fieldId](./search-core.displayablefacet.fieldid.md) | string | The associated fieldId. | | [options](./search-core.displayablefacet.options.md) | [DisplayableFacetOption](./search-core.displayablefacetoption.md)\[\] | An array of [DisplayableFacetOption](./search-core.displayablefacetoption.md) | diff --git a/docs/search-core.displayablefacetoption.matcher.md b/docs/search-core.displayablefacetoption.matcher.md deleted file mode 100644 index d910e08d..00000000 --- a/docs/search-core.displayablefacetoption.matcher.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [DisplayableFacetOption](./search-core.displayablefacetoption.md) > [matcher](./search-core.displayablefacetoption.matcher.md) - -## DisplayableFacetOption.matcher property - -A Matcher is a filtering operation. - -Signature: - -```typescript -matcher: Matcher; -``` diff --git a/docs/search-core.displayablefacetoption.md b/docs/search-core.displayablefacetoption.md index 2d4558c2..7bc320af 100644 --- a/docs/search-core.displayablefacetoption.md +++ b/docs/search-core.displayablefacetoption.md @@ -19,7 +19,5 @@ export interface DisplayableFacetOption extends FacetOption | --- | --- | --- | | [count](./search-core.displayablefacetoption.count.md) | number | The number of results associated with this facet option. | | [displayName](./search-core.displayablefacetoption.displayname.md) | string | The name of the facet option which is meant to be displayed to the end user. | -| [matcher](./search-core.displayablefacetoption.matcher.md) | [Matcher](./search-core.matcher.md) | A Matcher is a filtering operation. | | [selected](./search-core.displayablefacetoption.selected.md) | boolean | Whether or not the filter is selected in the search results. | -| [value](./search-core.displayablefacetoption.value.md) | string \| number \| boolean \| [NumberRangeValue](./search-core.numberrangevalue.md) | The value to compare. | diff --git a/docs/search-core.displayablefacetoption.value.md b/docs/search-core.displayablefacetoption.value.md deleted file mode 100644 index 383c4736..00000000 --- a/docs/search-core.displayablefacetoption.value.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [DisplayableFacetOption](./search-core.displayablefacetoption.md) > [value](./search-core.displayablefacetoption.value.md) - -## DisplayableFacetOption.value property - -The value to compare. - -Signature: - -```typescript -value: string | number | boolean | NumberRangeValue; -``` diff --git a/docs/search-core.emaildirectanswer.fieldtype.md b/docs/search-core.emaildirectanswer.fieldtype.md new file mode 100644 index 00000000..4091a0d2 --- /dev/null +++ b/docs/search-core.emaildirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [EmailDirectAnswer](./search-core.emaildirectanswer.md) > [fieldType](./search-core.emaildirectanswer.fieldtype.md) + +## EmailDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.emaildirectanswer.md b/docs/search-core.emaildirectanswer.md new file mode 100644 index 00000000..f8065de3 --- /dev/null +++ b/docs/search-core.emaildirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [EmailDirectAnswer](./search-core.emaildirectanswer.md) + +## EmailDirectAnswer interface + +A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with 'email' field type. + +Signature: + +```typescript +export interface EmailDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string\[\]> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.emaildirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.Email](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.enumorliteral.md b/docs/search-core.enumorliteral.md new file mode 100644 index 00000000..7dc80b4c --- /dev/null +++ b/docs/search-core.enumorliteral.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [EnumOrLiteral](./search-core.enumorliteral.md) + +## EnumOrLiteral type + +Produces a union type from the enum passed as a generic which consists of the enum values and the string literals of the enum. + +Signature: + +```typescript +export declare type EnumOrLiteral = T | `${T}`; +``` diff --git a/docs/search-core.facebookurldirectanswer.fieldtype.md b/docs/search-core.facebookurldirectanswer.fieldtype.md new file mode 100644 index 00000000..ae99e755 --- /dev/null +++ b/docs/search-core.facebookurldirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [FacebookUrlDirectAnswer](./search-core.facebookurldirectanswer.md) > [fieldType](./search-core.facebookurldirectanswer.fieldtype.md) + +## FacebookUrlDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.facebookurldirectanswer.md b/docs/search-core.facebookurldirectanswer.md new file mode 100644 index 00000000..5f087370 --- /dev/null +++ b/docs/search-core.facebookurldirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [FacebookUrlDirectAnswer](./search-core.facebookurldirectanswer.md) + +## FacebookUrlDirectAnswer interface + +A direct answer for a facebook url field. + +Signature: + +```typescript +export interface FacebookUrlDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.facebookurldirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.FacebookURL](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.facetoption.matcher.md b/docs/search-core.facetoption.matcher.md deleted file mode 100644 index 202080d0..00000000 --- a/docs/search-core.facetoption.matcher.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FacetOption](./search-core.facetoption.md) > [matcher](./search-core.facetoption.matcher.md) - -## FacetOption.matcher property - -A Matcher is a filtering operation. - -Signature: - -```typescript -matcher: Matcher; -``` diff --git a/docs/search-core.facetoption.md b/docs/search-core.facetoption.md index 42c429b6..9fb89ab1 100644 --- a/docs/search-core.facetoption.md +++ b/docs/search-core.facetoption.md @@ -9,13 +9,13 @@ A filter associated with the facet. Signature: ```typescript -export interface FacetOption +export interface FacetOption extends Omit ``` +Extends: Omit<[FieldValueFilter](./search-core.fieldvaluefilter.md), 'fieldId'> ## Properties | Property | Type | Description | | --- | --- | --- | -| [matcher](./search-core.facetoption.matcher.md) | [Matcher](./search-core.matcher.md) | A Matcher is a filtering operation. | -| [value](./search-core.facetoption.value.md) | string \| number \| boolean \| [NumberRangeValue](./search-core.numberrangevalue.md) | The value to compare. | +| [value](./search-core.facetoption.value.md) | Exclude<[FieldValueFilter](./search-core.fieldvaluefilter.md)\['value'\], [NearFilterValue](./search-core.nearfiltervalue.md)> | The value to compare. | diff --git a/docs/search-core.facetoption.value.md b/docs/search-core.facetoption.value.md index 7b5d5e2a..bcb1b025 100644 --- a/docs/search-core.facetoption.value.md +++ b/docs/search-core.facetoption.value.md @@ -9,7 +9,7 @@ The value to compare. Signature: ```typescript -value: string | number | boolean | NumberRangeValue; +value: Exclude; ``` ## Example diff --git a/docs/search-core.featuredsnippetdirectanswer.md b/docs/search-core.featuredsnippetdirectanswer.md index a8c535d4..fb2a6e1f 100644 --- a/docs/search-core.featuredsnippetdirectanswer.md +++ b/docs/search-core.featuredsnippetdirectanswer.md @@ -2,25 +2,14 @@ [Home](./index.md) > [@yext/search-core](./search-core.md) > [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) -## FeaturedSnippetDirectAnswer interface +## FeaturedSnippetDirectAnswer type -A direct answer which was found within a document. +All possible built-in [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) interfaces. Signature: ```typescript -export interface FeaturedSnippetDirectAnswer extends DirectAnswer +export declare type FeaturedSnippetDirectAnswer = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; ``` -Extends: [DirectAnswer](./search-core.directanswer.md) - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [fieldType](./search-core.featuredsnippetdirectanswer.fieldtype.md) | string | The field type of the direct answer. | -| [relatedResult](./search-core.featuredsnippetdirectanswer.relatedresult.md) | [Result](./search-core.result.md) | The entity associated with the direct answer. | -| [snippet](./search-core.featuredsnippetdirectanswer.snippet.md) | [Snippet](./search-core.snippet.md) | The snippet where the direct answer was found. | -| [type](./search-core.featuredsnippetdirectanswer.type.md) | [DirectAnswerType.FeaturedSnippet](./search-core.directanswertype.md) | [DirectAnswerType](./search-core.directanswertype.md).FeaturedSnippet. | -| [value?](./search-core.featuredsnippetdirectanswer.value.md) | string | (Optional) The result of the direct answer. | -| [verticalKey](./search-core.featuredsnippetdirectanswer.verticalkey.md) | string | The vertical key of the direct answer. | +References: [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md), [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) diff --git a/docs/search-core.featuredsnippetdirectanswer.relatedresult.md b/docs/search-core.featuredsnippetdirectanswer.relatedresult.md deleted file mode 100644 index b4225916..00000000 --- a/docs/search-core.featuredsnippetdirectanswer.relatedresult.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) > [relatedResult](./search-core.featuredsnippetdirectanswer.relatedresult.md) - -## FeaturedSnippetDirectAnswer.relatedResult property - -The entity associated with the direct answer. - -Signature: - -```typescript -relatedResult: Result; -``` diff --git a/docs/search-core.featuredsnippetdirectanswer.type.md b/docs/search-core.featuredsnippetdirectanswer.type.md deleted file mode 100644 index e5428ab2..00000000 --- a/docs/search-core.featuredsnippetdirectanswer.type.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) > [type](./search-core.featuredsnippetdirectanswer.type.md) - -## FeaturedSnippetDirectAnswer.type property - -[DirectAnswerType](./search-core.directanswertype.md).FeaturedSnippet. - -Signature: - -```typescript -type: DirectAnswerType.FeaturedSnippet; -``` diff --git a/docs/search-core.featuredsnippetdirectanswer.value.md b/docs/search-core.featuredsnippetdirectanswer.value.md deleted file mode 100644 index 2627ae03..00000000 --- a/docs/search-core.featuredsnippetdirectanswer.value.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) > [value](./search-core.featuredsnippetdirectanswer.value.md) - -## FeaturedSnippetDirectAnswer.value property - -The result of the direct answer. - -Signature: - -```typescript -value?: string; -``` - -## Remarks - -A value will not be present if the [DirectAnswer.fieldType](./search-core.directanswer.fieldtype.md) is 'rich\_text'. - diff --git a/docs/search-core.featuredsnippetdirectanswer.verticalkey.md b/docs/search-core.featuredsnippetdirectanswer.verticalkey.md deleted file mode 100644 index c7e00c0c..00000000 --- a/docs/search-core.featuredsnippetdirectanswer.verticalkey.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) > [verticalKey](./search-core.featuredsnippetdirectanswer.verticalkey.md) - -## FeaturedSnippetDirectAnswer.verticalKey property - -The vertical key of the direct answer. - -Signature: - -```typescript -verticalKey: string; -``` diff --git a/docs/search-core.fieldvaluedirectanswer.fieldtype.md b/docs/search-core.fieldvaluedirectanswer.fieldtype.md deleted file mode 100644 index e7af3c09..00000000 --- a/docs/search-core.fieldvaluedirectanswer.fieldtype.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) > [fieldType](./search-core.fieldvaluedirectanswer.fieldtype.md) - -## FieldValueDirectAnswer.fieldType property - -The field type of the direct answer. - -Signature: - -```typescript -fieldType: string; -``` diff --git a/docs/search-core.fieldvaluedirectanswer.md b/docs/search-core.fieldvaluedirectanswer.md index 1bc85324..952a3fbb 100644 --- a/docs/search-core.fieldvaluedirectanswer.md +++ b/docs/search-core.fieldvaluedirectanswer.md @@ -2,27 +2,14 @@ [Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) -## FieldValueDirectAnswer interface +## FieldValueDirectAnswer type -A direct answer where the answer came from a field from the knowledge graph. +Possible built-in and custom [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interfaces. Signature: ```typescript -export interface FieldValueDirectAnswer extends DirectAnswer +export declare type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | ComplexUrlDirectAnswer | IntegerDirectAnswer | PhoneDirectAnswer | EmailDirectAnswer | AddressDirectAnswer | HoursDirectAnswer; ``` -Extends: [DirectAnswer](./search-core.directanswer.md) - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [entityName](./search-core.fieldvaluedirectanswer.entityname.md) | string | The name of the entity that direct answer came from. | -| [fieldApiName](./search-core.fieldvaluedirectanswer.fieldapiname.md) | string | The field api name of the direct answer. | -| [fieldName](./search-core.fieldvaluedirectanswer.fieldname.md) | string | The field name of the direct answer. | -| [fieldType](./search-core.fieldvaluedirectanswer.fieldtype.md) | string | The field type of the direct answer. | -| [relatedResult](./search-core.fieldvaluedirectanswer.relatedresult.md) | [Result](./search-core.result.md) | The entity associated with the direct answer. | -| [type](./search-core.fieldvaluedirectanswer.type.md) | [DirectAnswerType.FieldValue](./search-core.directanswertype.md) | [DirectAnswerType](./search-core.directanswertype.md).FieldValue. | -| [value](./search-core.fieldvaluedirectanswer.value.md) | string | The result of the direct answer. | -| [verticalKey](./search-core.fieldvaluedirectanswer.verticalkey.md) | string | The vertical key of the direct answer. | +References: [UnknownFieldValueDirectAnswer](./search-core.unknownfieldvaluedirectanswer.md), [TextDirectAnswer](./search-core.textdirectanswer.md), [UrlDirectAnswer](./search-core.urldirectanswer.md), [RichTextDirectAnswer](./search-core.richtextdirectanswer.md), [DecimalDirectAnswer](./search-core.decimaldirectanswer.md), [FacebookUrlDirectAnswer](./search-core.facebookurldirectanswer.md), [InstagramHandleDirectAnswer](./search-core.instagramhandledirectanswer.md), [TwitterHandleDirectAnswer](./search-core.twitterhandledirectanswer.md), [IosAppUrlDirectAnswer](./search-core.iosappurldirectanswer.md), [AndroidAppUrlDirectAnswer](./search-core.androidappurldirectanswer.md), [ComplexUrlDirectAnswer](./search-core.complexurldirectanswer.md), [IntegerDirectAnswer](./search-core.integerdirectanswer.md), [PhoneDirectAnswer](./search-core.phonedirectanswer.md), [EmailDirectAnswer](./search-core.emaildirectanswer.md), [AddressDirectAnswer](./search-core.addressdirectanswer.md), [HoursDirectAnswer](./search-core.hoursdirectanswer.md) diff --git a/docs/search-core.fieldvaluedirectanswer.relatedresult.md b/docs/search-core.fieldvaluedirectanswer.relatedresult.md deleted file mode 100644 index fe294b19..00000000 --- a/docs/search-core.fieldvaluedirectanswer.relatedresult.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) > [relatedResult](./search-core.fieldvaluedirectanswer.relatedresult.md) - -## FieldValueDirectAnswer.relatedResult property - -The entity associated with the direct answer. - -Signature: - -```typescript -relatedResult: Result; -``` diff --git a/docs/search-core.fieldvaluedirectanswer.type.md b/docs/search-core.fieldvaluedirectanswer.type.md deleted file mode 100644 index 83b42814..00000000 --- a/docs/search-core.fieldvaluedirectanswer.type.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) > [type](./search-core.fieldvaluedirectanswer.type.md) - -## FieldValueDirectAnswer.type property - -[DirectAnswerType](./search-core.directanswertype.md).FieldValue. - -Signature: - -```typescript -type: DirectAnswerType.FieldValue; -``` diff --git a/docs/search-core.fieldvaluedirectanswer.value.md b/docs/search-core.fieldvaluedirectanswer.value.md deleted file mode 100644 index aa85b209..00000000 --- a/docs/search-core.fieldvaluedirectanswer.value.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) > [value](./search-core.fieldvaluedirectanswer.value.md) - -## FieldValueDirectAnswer.value property - -The result of the direct answer. - -Signature: - -```typescript -value: string; -``` - -## Remarks - -A value will not be present if the [DirectAnswer.fieldType](./search-core.directanswer.fieldtype.md) is 'rich\_text'. - diff --git a/docs/search-core.fieldvaluedirectanswer.verticalkey.md b/docs/search-core.fieldvaluedirectanswer.verticalkey.md deleted file mode 100644 index 5f9197cc..00000000 --- a/docs/search-core.fieldvaluedirectanswer.verticalkey.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) > [verticalKey](./search-core.fieldvaluedirectanswer.verticalkey.md) - -## FieldValueDirectAnswer.verticalKey property - -The vertical key of the direct answer. - -Signature: - -```typescript -verticalKey: string; -``` diff --git a/docs/search-core.filter.fieldid.md b/docs/search-core.fieldvaluefilter.fieldid.md similarity index 61% rename from docs/search-core.filter.fieldid.md rename to docs/search-core.fieldvaluefilter.fieldid.md index 9c2ca524..8e3ad0d0 100644 --- a/docs/search-core.filter.fieldid.md +++ b/docs/search-core.fieldvaluefilter.fieldid.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [Filter](./search-core.filter.md) > [fieldId](./search-core.filter.fieldid.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueFilter](./search-core.fieldvaluefilter.md) > [fieldId](./search-core.fieldvaluefilter.fieldid.md) -## Filter.fieldId property +## FieldValueFilter.fieldId property The fieldId to apply the filter against. diff --git a/docs/search-core.filter.matcher.md b/docs/search-core.fieldvaluefilter.matcher.md similarity index 59% rename from docs/search-core.filter.matcher.md rename to docs/search-core.fieldvaluefilter.matcher.md index 41197f93..ec908ff3 100644 --- a/docs/search-core.filter.matcher.md +++ b/docs/search-core.fieldvaluefilter.matcher.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [Filter](./search-core.filter.md) > [matcher](./search-core.filter.matcher.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueFilter](./search-core.fieldvaluefilter.md) > [matcher](./search-core.fieldvaluefilter.matcher.md) -## Filter.matcher property +## FieldValueFilter.matcher property A Matcher is a filtering operation. diff --git a/docs/search-core.fieldvaluefilter.md b/docs/search-core.fieldvaluefilter.md new file mode 100644 index 00000000..204e12d0 --- /dev/null +++ b/docs/search-core.fieldvaluefilter.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueFilter](./search-core.fieldvaluefilter.md) + +## FieldValueFilter interface + +Represents a filter which compares values to a single field. + +Signature: + +```typescript +export interface FieldValueFilter +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldId](./search-core.fieldvaluefilter.fieldid.md) | string | The fieldId to apply the filter against. | +| [matcher](./search-core.fieldvaluefilter.matcher.md) | [Matcher](./search-core.matcher.md) | A Matcher is a filtering operation. | +| [value](./search-core.fieldvaluefilter.value.md) | string \| number \| boolean \| [NearFilterValue](./search-core.nearfiltervalue.md) \| [NumberRangeValue](./search-core.numberrangevalue.md) | The value to compare. | + diff --git a/docs/search-core.filter.value.md b/docs/search-core.fieldvaluefilter.value.md similarity index 64% rename from docs/search-core.filter.value.md rename to docs/search-core.fieldvaluefilter.value.md index a552358c..d473650e 100644 --- a/docs/search-core.filter.value.md +++ b/docs/search-core.fieldvaluefilter.value.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [Filter](./search-core.filter.md) > [value](./search-core.filter.value.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueFilter](./search-core.fieldvaluefilter.md) > [value](./search-core.fieldvaluefilter.value.md) -## Filter.value property +## FieldValueFilter.value property The value to compare. diff --git a/docs/search-core.fieldvaluestaticfilter.kind.md b/docs/search-core.fieldvaluestaticfilter.kind.md new file mode 100644 index 00000000..2650e070 --- /dev/null +++ b/docs/search-core.fieldvaluestaticfilter.kind.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueStaticFilter](./search-core.fieldvaluestaticfilter.md) > [kind](./search-core.fieldvaluestaticfilter.kind.md) + +## FieldValueStaticFilter.kind property + +The kind of static filter. + +Signature: + +```typescript +kind: 'fieldValue'; +``` diff --git a/docs/search-core.fieldvaluestaticfilter.md b/docs/search-core.fieldvaluestaticfilter.md new file mode 100644 index 00000000..66f1fe4a --- /dev/null +++ b/docs/search-core.fieldvaluestaticfilter.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [FieldValueStaticFilter](./search-core.fieldvaluestaticfilter.md) + +## FieldValueStaticFilter interface + +A [FieldValueFilter](./search-core.fieldvaluefilter.md) with the kind of filter specified to discriminate between static filter types. + +Signature: + +```typescript +export interface FieldValueStaticFilter extends FieldValueFilter +``` +Extends: [FieldValueFilter](./search-core.fieldvaluefilter.md) + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [kind](./search-core.fieldvaluestaticfilter.kind.md) | 'fieldValue' | The kind of static filter. | + diff --git a/docs/search-core.filter.md b/docs/search-core.filter.md deleted file mode 100644 index 4851d627..00000000 --- a/docs/search-core.filter.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [Filter](./search-core.filter.md) - -## Filter interface - -Represents a filter which compares values to a single field. - -Signature: - -```typescript -export interface Filter -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [fieldId](./search-core.filter.fieldid.md) | string | The fieldId to apply the filter against. | -| [matcher](./search-core.filter.matcher.md) | [Matcher](./search-core.matcher.md) | A Matcher is a filtering operation. | -| [value](./search-core.filter.value.md) | string \| number \| boolean \| [NearFilterValue](./search-core.nearfiltervalue.md) \| [NumberRangeValue](./search-core.numberrangevalue.md) | The value to compare. | - diff --git a/docs/search-core.filtercombinator.md b/docs/search-core.filtercombinator.md index 7c2789e5..566b8ff1 100644 --- a/docs/search-core.filtercombinator.md +++ b/docs/search-core.filtercombinator.md @@ -4,7 +4,7 @@ ## FilterCombinator enum -Indicates how the filters in a [CombinedFilter](./search-core.combinedfilter.md) should be combined. +Indicates how child filters in a [StaticFilter](./search-core.staticfilter.md) should be combined. Signature: diff --git a/docs/search-core.filtersearchrequest.excluded.md b/docs/search-core.filtersearchrequest.excluded.md index 621b3d3d..46610a10 100644 --- a/docs/search-core.filtersearchrequest.excluded.md +++ b/docs/search-core.filtersearchrequest.excluded.md @@ -4,10 +4,10 @@ ## FilterSearchRequest.excluded property -an array of filters that should be excluded from filter search results. +An array of field value filters that should be excluded from filter search results. Signature: ```typescript -excluded?: Filter[]; +excluded?: FieldValueFilter[]; ``` diff --git a/docs/search-core.filtersearchrequest.fields.md b/docs/search-core.filtersearchrequest.fields.md index 98fe1a1f..aedfbd86 100644 --- a/docs/search-core.filtersearchrequest.fields.md +++ b/docs/search-core.filtersearchrequest.fields.md @@ -4,7 +4,7 @@ ## FilterSearchRequest.fields property -An array of [SearchParameterField](./search-core.searchparameterfield.md) +An array of [SearchParameterField](./search-core.searchparameterfield.md). Signature: diff --git a/docs/search-core.filtersearchrequest.md b/docs/search-core.filtersearchrequest.md index 266caf5c..1facc433 100644 --- a/docs/search-core.filtersearchrequest.md +++ b/docs/search-core.filtersearchrequest.md @@ -17,8 +17,8 @@ export interface FilterSearchRequest extends SearchRequest | Property | Type | Description | | --- | --- | --- | -| [excluded?](./search-core.filtersearchrequest.excluded.md) | [Filter](./search-core.filter.md)\[\] | (Optional) an array of filters that should be excluded from filter search results. | -| [fields](./search-core.filtersearchrequest.fields.md) | [SearchParameterField](./search-core.searchparameterfield.md)\[\] | An array of [SearchParameterField](./search-core.searchparameterfield.md) | +| [excluded?](./search-core.filtersearchrequest.excluded.md) | [FieldValueFilter](./search-core.fieldvaluefilter.md)\[\] | (Optional) An array of field value filters that should be excluded from filter search results. | +| [fields](./search-core.filtersearchrequest.fields.md) | [SearchParameterField](./search-core.searchparameterfield.md)\[\] | An array of [SearchParameterField](./search-core.searchparameterfield.md). | | [input](./search-core.filtersearchrequest.input.md) | string | The input string for autocomplete. | | [sectioned](./search-core.filtersearchrequest.sectioned.md) | boolean | Determines whether or not the results of the [FilterSearchResponse](./search-core.filtersearchresponse.md) are separated by field. | | [sessionTrackingEnabled?](./search-core.filtersearchrequest.sessiontrackingenabled.md) | boolean | (Optional) Enables session tracking. | diff --git a/docs/search-core.holidayhours.date.md b/docs/search-core.holidayhours.date.md new file mode 100644 index 00000000..83353f60 --- /dev/null +++ b/docs/search-core.holidayhours.date.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HolidayHours](./search-core.holidayhours.md) > [date](./search-core.holidayhours.date.md) + +## HolidayHours.date property + +Signature: + +```typescript +date: string; +``` diff --git a/docs/search-core.holidayhours.isclosed.md b/docs/search-core.holidayhours.isclosed.md new file mode 100644 index 00000000..fc2486a4 --- /dev/null +++ b/docs/search-core.holidayhours.isclosed.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HolidayHours](./search-core.holidayhours.md) > [isClosed](./search-core.holidayhours.isclosed.md) + +## HolidayHours.isClosed property + +Signature: + +```typescript +isClosed?: boolean; +``` diff --git a/docs/search-core.holidayhours.isregularhours.md b/docs/search-core.holidayhours.isregularhours.md new file mode 100644 index 00000000..da39c59c --- /dev/null +++ b/docs/search-core.holidayhours.isregularhours.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HolidayHours](./search-core.holidayhours.md) > [isRegularHours](./search-core.holidayhours.isregularhours.md) + +## HolidayHours.isRegularHours property + +Signature: + +```typescript +isRegularHours?: boolean; +``` diff --git a/docs/search-core.holidayhours.md b/docs/search-core.holidayhours.md new file mode 100644 index 00000000..9decf23b --- /dev/null +++ b/docs/search-core.holidayhours.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HolidayHours](./search-core.holidayhours.md) + +## HolidayHours interface + +An interface for holiday hours to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). + +Signature: + +```typescript +export interface HolidayHours +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [date](./search-core.holidayhours.date.md) | string | | +| [isClosed?](./search-core.holidayhours.isclosed.md) | boolean | (Optional) | +| [isRegularHours?](./search-core.holidayhours.isregularhours.md) | boolean | (Optional) | +| [openIntervals?](./search-core.holidayhours.openintervals.md) | [Interval](./search-core.interval.md)\[\] | (Optional) | + diff --git a/docs/search-core.holidayhours.openintervals.md b/docs/search-core.holidayhours.openintervals.md new file mode 100644 index 00000000..38a3dcc3 --- /dev/null +++ b/docs/search-core.holidayhours.openintervals.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HolidayHours](./search-core.holidayhours.md) > [openIntervals](./search-core.holidayhours.openintervals.md) + +## HolidayHours.openIntervals property + +Signature: + +```typescript +openIntervals?: Interval[]; +``` diff --git a/docs/search-core.hours.friday.md b/docs/search-core.hours.friday.md new file mode 100644 index 00000000..50c6b426 --- /dev/null +++ b/docs/search-core.hours.friday.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [friday](./search-core.hours.friday.md) + +## Hours.friday property + +Signature: + +```typescript +friday?: DayHour; +``` diff --git a/docs/search-core.hours.holidayhours.md b/docs/search-core.hours.holidayhours.md new file mode 100644 index 00000000..16decf5b --- /dev/null +++ b/docs/search-core.hours.holidayhours.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [holidayHours](./search-core.hours.holidayhours.md) + +## Hours.holidayHours property + +Signature: + +```typescript +holidayHours?: HolidayHours[]; +``` diff --git a/docs/search-core.hours.md b/docs/search-core.hours.md new file mode 100644 index 00000000..2498686f --- /dev/null +++ b/docs/search-core.hours.md @@ -0,0 +1,28 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) + +## Hours interface + +An interface for hours fields to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). + +Signature: + +```typescript +export interface Hours +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [friday?](./search-core.hours.friday.md) | [DayHour](./search-core.dayhour.md) | (Optional) | +| [holidayHours?](./search-core.hours.holidayhours.md) | [HolidayHours](./search-core.holidayhours.md)\[\] | (Optional) | +| [monday?](./search-core.hours.monday.md) | [DayHour](./search-core.dayhour.md) | (Optional) | +| [reopenDate?](./search-core.hours.reopendate.md) | string | (Optional) | +| [saturday?](./search-core.hours.saturday.md) | [DayHour](./search-core.dayhour.md) | (Optional) | +| [sunday?](./search-core.hours.sunday.md) | [DayHour](./search-core.dayhour.md) | (Optional) | +| [thursday?](./search-core.hours.thursday.md) | [DayHour](./search-core.dayhour.md) | (Optional) | +| [tuesday?](./search-core.hours.tuesday.md) | [DayHour](./search-core.dayhour.md) | (Optional) | +| [wednesday?](./search-core.hours.wednesday.md) | [DayHour](./search-core.dayhour.md) | (Optional) | + diff --git a/docs/search-core.hours.monday.md b/docs/search-core.hours.monday.md new file mode 100644 index 00000000..ac0ebfd2 --- /dev/null +++ b/docs/search-core.hours.monday.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [monday](./search-core.hours.monday.md) + +## Hours.monday property + +Signature: + +```typescript +monday?: DayHour; +``` diff --git a/docs/search-core.hours.reopendate.md b/docs/search-core.hours.reopendate.md new file mode 100644 index 00000000..367b1252 --- /dev/null +++ b/docs/search-core.hours.reopendate.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [reopenDate](./search-core.hours.reopendate.md) + +## Hours.reopenDate property + +Signature: + +```typescript +reopenDate?: string; +``` diff --git a/docs/search-core.hours.saturday.md b/docs/search-core.hours.saturday.md new file mode 100644 index 00000000..300c7369 --- /dev/null +++ b/docs/search-core.hours.saturday.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [saturday](./search-core.hours.saturday.md) + +## Hours.saturday property + +Signature: + +```typescript +saturday?: DayHour; +``` diff --git a/docs/search-core.hours.sunday.md b/docs/search-core.hours.sunday.md new file mode 100644 index 00000000..76f29e76 --- /dev/null +++ b/docs/search-core.hours.sunday.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [sunday](./search-core.hours.sunday.md) + +## Hours.sunday property + +Signature: + +```typescript +sunday?: DayHour; +``` diff --git a/docs/search-core.hours.thursday.md b/docs/search-core.hours.thursday.md new file mode 100644 index 00000000..e8eeb401 --- /dev/null +++ b/docs/search-core.hours.thursday.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [thursday](./search-core.hours.thursday.md) + +## Hours.thursday property + +Signature: + +```typescript +thursday?: DayHour; +``` diff --git a/docs/search-core.hours.tuesday.md b/docs/search-core.hours.tuesday.md new file mode 100644 index 00000000..62718769 --- /dev/null +++ b/docs/search-core.hours.tuesday.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [tuesday](./search-core.hours.tuesday.md) + +## Hours.tuesday property + +Signature: + +```typescript +tuesday?: DayHour; +``` diff --git a/docs/search-core.hours.wednesday.md b/docs/search-core.hours.wednesday.md new file mode 100644 index 00000000..63522c30 --- /dev/null +++ b/docs/search-core.hours.wednesday.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Hours](./search-core.hours.md) > [wednesday](./search-core.hours.wednesday.md) + +## Hours.wednesday property + +Signature: + +```typescript +wednesday?: DayHour; +``` diff --git a/docs/search-core.hoursdirectanswer.fieldtype.md b/docs/search-core.hoursdirectanswer.fieldtype.md new file mode 100644 index 00000000..19d8efa0 --- /dev/null +++ b/docs/search-core.hoursdirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HoursDirectAnswer](./search-core.hoursdirectanswer.md) > [fieldType](./search-core.hoursdirectanswer.fieldtype.md) + +## HoursDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.hoursdirectanswer.md b/docs/search-core.hoursdirectanswer.md new file mode 100644 index 00000000..977144fd --- /dev/null +++ b/docs/search-core.hoursdirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HoursDirectAnswer](./search-core.hoursdirectanswer.md) + +## HoursDirectAnswer interface + +A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with 'hours' field type. + +Signature: + +```typescript +export interface HoursDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<[Hours](./search-core.hours.md) \| [Hours](./search-core.hours.md)\[\]> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.hoursdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.Hours](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.instagramhandledirectanswer.fieldtype.md b/docs/search-core.instagramhandledirectanswer.fieldtype.md new file mode 100644 index 00000000..57db7932 --- /dev/null +++ b/docs/search-core.instagramhandledirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [InstagramHandleDirectAnswer](./search-core.instagramhandledirectanswer.md) > [fieldType](./search-core.instagramhandledirectanswer.fieldtype.md) + +## InstagramHandleDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.instagramhandledirectanswer.md b/docs/search-core.instagramhandledirectanswer.md new file mode 100644 index 00000000..ad4c088a --- /dev/null +++ b/docs/search-core.instagramhandledirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [InstagramHandleDirectAnswer](./search-core.instagramhandledirectanswer.md) + +## InstagramHandleDirectAnswer interface + +A direct answer for an instagram handle field. + +Signature: + +```typescript +export interface InstagramHandleDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.instagramhandledirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.InstagramHandle](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.integerdirectanswer.fieldtype.md b/docs/search-core.integerdirectanswer.fieldtype.md new file mode 100644 index 00000000..03d12abb --- /dev/null +++ b/docs/search-core.integerdirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [IntegerDirectAnswer](./search-core.integerdirectanswer.md) > [fieldType](./search-core.integerdirectanswer.fieldtype.md) + +## IntegerDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.integerdirectanswer.md b/docs/search-core.integerdirectanswer.md new file mode 100644 index 00000000..374cc186 --- /dev/null +++ b/docs/search-core.integerdirectanswer.md @@ -0,0 +1,25 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [IntegerDirectAnswer](./search-core.integerdirectanswer.md) + +## IntegerDirectAnswer interface + +A direct answer for an integer field. + +Signature: + +```typescript +export interface IntegerDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<number> + +## Remarks + +`IntegerDirectAnswer`s are only used for built in number fields. Custom number fields use [DecimalDirectAnswer](./search-core.decimaldirectanswer.md) instead. + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.integerdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.Integer](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.interval.end.md b/docs/search-core.interval.end.md new file mode 100644 index 00000000..9b259347 --- /dev/null +++ b/docs/search-core.interval.end.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Interval](./search-core.interval.md) > [end](./search-core.interval.end.md) + +## Interval.end property + +Signature: + +```typescript +end?: string; +``` diff --git a/docs/search-core.interval.md b/docs/search-core.interval.md new file mode 100644 index 00000000..38be524b --- /dev/null +++ b/docs/search-core.interval.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Interval](./search-core.interval.md) + +## Interval interface + +An interface for a time interval to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). + +Signature: + +```typescript +export interface Interval +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [end?](./search-core.interval.end.md) | string | (Optional) | +| [start?](./search-core.interval.start.md) | string | (Optional) | + diff --git a/docs/search-core.interval.start.md b/docs/search-core.interval.start.md new file mode 100644 index 00000000..96fba5f6 --- /dev/null +++ b/docs/search-core.interval.start.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [Interval](./search-core.interval.md) > [start](./search-core.interval.start.md) + +## Interval.start property + +Signature: + +```typescript +start?: string; +``` diff --git a/docs/search-core.iosappurldirectanswer.fieldtype.md b/docs/search-core.iosappurldirectanswer.fieldtype.md new file mode 100644 index 00000000..1d54979a --- /dev/null +++ b/docs/search-core.iosappurldirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [IosAppUrlDirectAnswer](./search-core.iosappurldirectanswer.md) > [fieldType](./search-core.iosappurldirectanswer.fieldtype.md) + +## IosAppUrlDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.iosappurldirectanswer.md b/docs/search-core.iosappurldirectanswer.md new file mode 100644 index 00000000..cc17fac5 --- /dev/null +++ b/docs/search-core.iosappurldirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [IosAppUrlDirectAnswer](./search-core.iosappurldirectanswer.md) + +## IosAppUrlDirectAnswer interface + +A direct answer for an iOS app url field. + +Signature: + +```typescript +export interface IosAppUrlDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.iosappurldirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.IOSAppURL](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.md b/docs/search-core.md index 3b130d7b..615f03a8 100644 --- a/docs/search-core.md +++ b/docs/search-core.md @@ -8,7 +8,6 @@ | Class | Description | | --- | --- | -| [AnswersCore](./search-core.answerscore.md) | | | [SearchCore](./search-core.searchcore.md) | Provides methods for executing searches, submitting questions, and performing autocompletes. | | [SearchError](./search-core.searcherror.md) | Represents an error | @@ -17,10 +16,11 @@ | Enumeration | Description | | --- | --- | | [AppliedQueryFilterType](./search-core.appliedqueryfiltertype.md) | Represents the type of [AppliedQueryFilter](./search-core.appliedqueryfilter.md) applied to a search. | +| [BuiltInFieldType](./search-core.builtinfieldtype.md) | Possible built-in field types for [DirectAnswer.fieldType](./search-core.directanswer.fieldtype.md). | | [DirectAnswerType](./search-core.directanswertype.md) | Represents the type of direct answer. | | [Direction](./search-core.direction.md) | The direction of a sort. | | [ErrorType](./search-core.errortype.md) | Identifier for the type of error causing the failure. | -| [FilterCombinator](./search-core.filtercombinator.md) | Indicates how the filters in a [CombinedFilter](./search-core.combinedfilter.md) should be combined. | +| [FilterCombinator](./search-core.filtercombinator.md) | Indicates how child filters in a [StaticFilter](./search-core.staticfilter.md) should be combined. | | [LocationBiasMethod](./search-core.locationbiasmethod.md) | The method used to determine the location. | | [Matcher](./search-core.matcher.md) | A Matcher is a filtering operation. | | [QuerySource](./search-core.querysource.md) | The source of the search request. | @@ -41,43 +41,60 @@ | Interface | Description | | --- | --- | | [AdditionalHttpHeaders](./search-core.additionalhttpheaders.md) | AdditionalHttpHeaders allows users to specify additional values for specific HTTP headers. | -| [AnswersConfigWithApiKey](./search-core.answersconfigwithapikey.md) | | -| [AnswersConfigWithToken](./search-core.answersconfigwithtoken.md) | | -| [AnswersError](./search-core.answerserror.md) | | -| [AnswersRequest](./search-core.answersrequest.md) | | +| [Address](./search-core.address.md) | An interface with address fields to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). | +| [AddressDirectAnswer](./search-core.addressdirectanswer.md) | A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with 'address' field type. | +| [AndroidAppUrlDirectAnswer](./search-core.androidappurldirectanswer.md) | A direct answer for an android app url field. | | [AppliedQueryFilter](./search-core.appliedqueryfilter.md) | A filter that the Search API applied to the search. | | [AutocompleteResponse](./search-core.autocompleteresponse.md) | The response of a universal or vertical autocomplete request. | | [AutocompleteResult](./search-core.autocompleteresult.md) | An autocomplete suggestion. | | [AutocompleteService](./search-core.autocompleteservice.md) | A service for autocomplete requests. | -| [BaseAnswersConfig](./search-core.baseanswersconfig.md) | | +| [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) | A direct answer which was found within a document. | +| [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) | A direct answer where the answer came from a field from the knowledge graph. | | [BaseSearchConfig](./search-core.basesearchconfig.md) | The base configuration options for [SearchCore](./search-core.searchcore.md). | | [ClientSDKHeaderValues](./search-core.clientsdkheadervalues.md) | Additional agents and their versions used to create the Search experience. The information for these agents is added to the Client-SDK HTTP header along with that of the ANSWERS\_CORE agent. | -| [CombinedFilter](./search-core.combinedfilter.md) | Represents multiple filters that will be combined to refine results. | +| [ComplexURL](./search-core.complexurl.md) | The shape of a [BuiltInFieldType.ComplexURL](./search-core.builtinfieldtype.md) DirectAnswer value | +| [ComplexUrlDirectAnswer](./search-core.complexurldirectanswer.md) | A direct answer for a complex url field. | +| [ConjunctionStaticFilter](./search-core.conjunctionstaticfilter.md) | A static filter composed by combining other static filters with the logical AND operator. | +| [DayHour](./search-core.dayhour.md) | An interface for a day's hours to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). | +| [DecimalDirectAnswer](./search-core.decimaldirectanswer.md) | A direct answer for a decimal field, which is a number represented using a string. | | [DirectAnswer](./search-core.directanswer.md) | A direct answer to a search. | +| [DisjunctionStaticFilter](./search-core.disjunctionstaticfilter.md) | A static filter composed by combining filters with the logical OR operator. The combined filters can either be field value filters or other disjunction filters. | | [DisplayableFacet](./search-core.displayablefacet.md) | A [Facet](./search-core.facet.md) which contains extra fields meant to be displayed to the end user. | | [DisplayableFacetOption](./search-core.displayablefacetoption.md) | A [FacetOption](./search-core.facetoption.md) with extra data meant to be displayed to the end user. | +| [EmailDirectAnswer](./search-core.emaildirectanswer.md) | A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with 'email' field type. | | [Endpoints](./search-core.endpoints.md) | Overrides for the URLs which are used when making requests to the Search API. | +| [FacebookUrlDirectAnswer](./search-core.facebookurldirectanswer.md) | A direct answer for a facebook url field. | | [Facet](./search-core.facet.md) | Represents dynamic filter options for the Search API. | | [FacetOption](./search-core.facetoption.md) | A filter associated with the facet. | | [FailedVertical](./search-core.failedvertical.md) | Error information from when a vertical fails to return results. | -| [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) | A direct answer which was found within a document. | -| [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) | A direct answer where the answer came from a field from the knowledge graph. | -| [Filter](./search-core.filter.md) | Represents a filter which compares values to a single field. | +| [FieldValueFilter](./search-core.fieldvaluefilter.md) | Represents a filter which compares values to a single field. | +| [FieldValueStaticFilter](./search-core.fieldvaluestaticfilter.md) | A [FieldValueFilter](./search-core.fieldvaluefilter.md) with the kind of filter specified to discriminate between static filter types. | | [FilterSearchRequest](./search-core.filtersearchrequest.md) | Options for a filtersearch request. | | [FilterSearchResponse](./search-core.filtersearchresponse.md) | The response of a filtersearch request. | | [HighlightedValue](./search-core.highlightedvalue.md) | A field value and its substring matches as emphasized by the Search API. | +| [HolidayHours](./search-core.holidayhours.md) | An interface for holiday hours to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). | +| [Hours](./search-core.hours.md) | An interface for hours fields to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). | +| [HoursDirectAnswer](./search-core.hoursdirectanswer.md) | A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with 'hours' field type. | +| [InstagramHandleDirectAnswer](./search-core.instagramhandledirectanswer.md) | A direct answer for an instagram handle field. | +| [IntegerDirectAnswer](./search-core.integerdirectanswer.md) | A direct answer for an integer field. | +| [Interval](./search-core.interval.md) | An interface for a time interval to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). | +| [IosAppUrlDirectAnswer](./search-core.iosappurldirectanswer.md) | A direct answer for an iOS app url field. | | [LatLong](./search-core.latlong.md) | The latitude and longitude of the user making the request. Used to bias the results. | | [LocationBias](./search-core.locationbias.md) | Information about the user's location. | | [LocationBoundingBox](./search-core.locationboundingbox.md) | Location boundaries for a filter with "Place" for its [AppliedQueryFilterType](./search-core.appliedqueryfiltertype.md). (e.g. boundary for a locality or region specific location filter) | | [LocationFilterDetails](./search-core.locationfilterdetails.md) | Additional details relevant to the filter with "PLACE" for its [AppliedQueryFilterType](./search-core.appliedqueryfiltertype.md). | | [LowerNumberRangeLimit](./search-core.lowernumberrangelimit.md) | The start limit of [NumberRangeValue](./search-core.numberrangevalue.md). | +| [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md) | A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'multi\_line\_text' field type. | | [NearFilterValue](./search-core.nearfiltervalue.md) | A filter value for a filter with a $near [Matcher](./search-core.matcher.md). | | [NumberRangeValue](./search-core.numberrangevalue.md) | A filter value for a filter with a $between [Matcher](./search-core.matcher.md). | +| [PhoneDirectAnswer](./search-core.phonedirectanswer.md) | A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with phone value. | | [QueryRulesActionsData](./search-core.queryrulesactionsdata.md) | Data returned from the Search query rules system. | | [QuestionSubmissionRequest](./search-core.questionsubmissionrequest.md) | Options for a QuestionSubmission request. | | [QuestionSubmissionResponse](./search-core.questionsubmissionresponse.md) | A representation of a question submission response. | | [QuestionSubmissionService](./search-core.questionsubmissionservice.md) | Submits a custom question to the Search API. | | [Result](./search-core.result.md) | An individual search result. | +| [RichTextDirectAnswer](./search-core.richtextdirectanswer.md) | A direct answer for a rich text field. | +| [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) | A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'rich\_text' field type. "value" field is omitted for featured snippet direct answer of this field type. | | [SearchConfigWithApiKey](./search-core.searchconfigwithapikey.md) | Configuration options for [SearchCore](./search-core.searchcore.md), which includes the options from [BaseSearchConfig](./search-core.basesearchconfig.md), but requires apiKey. | | [SearchConfigWithToken](./search-core.searchconfigwithtoken.md) | Configuration options for [SearchCore](./search-core.searchcore.md), which includes the options from [BaseSearchConfig](./search-core.basesearchconfig.md), but requires token. | | [SearchParameterField](./search-core.searchparameterfield.md) | Indicates which entity field to perform the autocomplete request on. | @@ -86,11 +103,15 @@ | [Snippet](./search-core.snippet.md) | The section of text where a [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) was found. | | [SortBy](./search-core.sortby.md) | Represents a criterion that can be used to sort results. | | [SpellCheck](./search-core.spellcheck.md) | A spellcheck response from a search query. | +| [TextDirectAnswer](./search-core.textdirectanswer.md) | A direct answer whose source is a string or string list field in the knowledge graph. | +| [TwitterHandleDirectAnswer](./search-core.twitterhandledirectanswer.md) | A direct answer for an twitter handle field. | | [UniversalAutocompleteRequest](./search-core.universalautocompleterequest.md) | Options for a universal autocomplete request. | | [UniversalLimit](./search-core.universallimit.md) | The maximum limit of results per vertical. Each limit can be set from 1-50, inclusive. | | [UniversalSearchRequest](./search-core.universalsearchrequest.md) | Options which can be specified for a universal search. | | [UniversalSearchResponse](./search-core.universalsearchresponse.md) | A representation of a response from a universal search. | +| [UnknownFieldValueDirectAnswer](./search-core.unknownfieldvaluedirectanswer.md) | A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) with a field type outside of [BuiltInFieldType](./search-core.builtinfieldtype.md). | | [UpperNumberRangeLimit](./search-core.uppernumberrangelimit.md) | The end limit of [NumberRangeValue](./search-core.numberrangevalue.md). | +| [UrlDirectAnswer](./search-core.urldirectanswer.md) | A direct answer for a simple url field. | | [VerticalAutocompleteRequest](./search-core.verticalautocompleterequest.md) | Options for a vertial autocomplete request. | | [VerticalResults](./search-core.verticalresults.md) | Represents results from a search vertical. | | [VerticalSearchRequest](./search-core.verticalsearchrequest.md) | Options which can be specified for a vertical search. | @@ -107,8 +128,11 @@ | Type Alias | Description | | --- | --- | -| [AnswersConfig](./search-core.answersconfig.md) | | | [Context](./search-core.context.md) | Used to trigger Search [Query Rules](https://hitchhikers.yext.com/tracks/answers-advanced/ans302-query-rules/). | +| [EnumOrLiteral](./search-core.enumorliteral.md) | Produces a union type from the enum passed as a generic which consists of the enum values and the string literals of the enum. | +| [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) | All possible built-in [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) interfaces. | +| [FieldValueDirectAnswer](./search-core.fieldvaluedirectanswer.md) | Possible built-in and custom [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interfaces. | | [HighlightedFields](./search-core.highlightedfields.md) | A mapping of fields to the values emphasized by the Search API. | | [SearchConfig](./search-core.searchconfig.md) | The main configuration options for [SearchCore](./search-core.searchcore.md). For a full description of the options, see [BaseSearchConfig](./search-core.basesearchconfig.md). The config requires either an apiKey or a token. | +| [StaticFilter](./search-core.staticfilter.md) | Represents a static filter that will be used to refine results. | diff --git a/docs/search-core.multilinetextsnippetdirectanswer.fieldtype.md b/docs/search-core.multilinetextsnippetdirectanswer.fieldtype.md new file mode 100644 index 00000000..cd86822f --- /dev/null +++ b/docs/search-core.multilinetextsnippetdirectanswer.fieldtype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md) > [fieldType](./search-core.multilinetextsnippetdirectanswer.fieldtype.md) + +## MultiLineTextSnippetDirectAnswer.fieldType property + +The field type of the direct answer. + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.multilinetextsnippetdirectanswer.md b/docs/search-core.multilinetextsnippetdirectanswer.md new file mode 100644 index 00000000..dbe3bc75 --- /dev/null +++ b/docs/search-core.multilinetextsnippetdirectanswer.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md) + +## MultiLineTextSnippetDirectAnswer interface + +A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'multi\_line\_text' field type. + +Signature: + +```typescript +export interface MultiLineTextSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer +``` +Extends: [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md)<string> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.multilinetextsnippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.MultiLineText](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | +| [value](./search-core.multilinetextsnippetdirectanswer.value.md) | string | The value of the direct answer. | + diff --git a/docs/search-core.multilinetextsnippetdirectanswer.value.md b/docs/search-core.multilinetextsnippetdirectanswer.value.md new file mode 100644 index 00000000..8184b639 --- /dev/null +++ b/docs/search-core.multilinetextsnippetdirectanswer.value.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md) > [value](./search-core.multilinetextsnippetdirectanswer.value.md) + +## MultiLineTextSnippetDirectAnswer.value property + +The value of the direct answer. + +Signature: + +```typescript +value: string; +``` diff --git a/docs/search-core.phonedirectanswer.fieldtype.md b/docs/search-core.phonedirectanswer.fieldtype.md new file mode 100644 index 00000000..e342ab59 --- /dev/null +++ b/docs/search-core.phonedirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [PhoneDirectAnswer](./search-core.phonedirectanswer.md) > [fieldType](./search-core.phonedirectanswer.fieldtype.md) + +## PhoneDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: BuiltInFieldType.Phone; +``` diff --git a/docs/search-core.phonedirectanswer.md b/docs/search-core.phonedirectanswer.md new file mode 100644 index 00000000..dc504094 --- /dev/null +++ b/docs/search-core.phonedirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [PhoneDirectAnswer](./search-core.phonedirectanswer.md) + +## PhoneDirectAnswer interface + +A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with phone value. + +Signature: + +```typescript +export interface PhoneDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.phonedirectanswer.fieldtype.md) | [BuiltInFieldType.Phone](./search-core.builtinfieldtype.md) | | + diff --git a/docs/search-core.richtextdirectanswer.fieldtype.md b/docs/search-core.richtextdirectanswer.fieldtype.md new file mode 100644 index 00000000..2a6ab44c --- /dev/null +++ b/docs/search-core.richtextdirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextDirectAnswer](./search-core.richtextdirectanswer.md) > [fieldType](./search-core.richtextdirectanswer.fieldtype.md) + +## RichTextDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.richtextdirectanswer.md b/docs/search-core.richtextdirectanswer.md new file mode 100644 index 00000000..1460dcfb --- /dev/null +++ b/docs/search-core.richtextdirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextDirectAnswer](./search-core.richtextdirectanswer.md) + +## RichTextDirectAnswer interface + +A direct answer for a rich text field. + +Signature: + +```typescript +export interface RichTextDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string \| string\[\]> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.richtextdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.RichText](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.featuredsnippetdirectanswer.fieldtype.md b/docs/search-core.richtextsnippetdirectanswer.fieldtype.md similarity index 50% rename from docs/search-core.featuredsnippetdirectanswer.fieldtype.md rename to docs/search-core.richtextsnippetdirectanswer.fieldtype.md index 1a5e64a0..42d81d8d 100644 --- a/docs/search-core.featuredsnippetdirectanswer.fieldtype.md +++ b/docs/search-core.richtextsnippetdirectanswer.fieldtype.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md) > [fieldType](./search-core.featuredsnippetdirectanswer.fieldtype.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) > [fieldType](./search-core.richtextsnippetdirectanswer.fieldtype.md) -## FeaturedSnippetDirectAnswer.fieldType property +## RichTextSnippetDirectAnswer.fieldType property The field type of the direct answer. Signature: ```typescript -fieldType: string; +fieldType: EnumOrLiteral; ``` diff --git a/docs/search-core.richtextsnippetdirectanswer.md b/docs/search-core.richtextsnippetdirectanswer.md new file mode 100644 index 00000000..231fb466 --- /dev/null +++ b/docs/search-core.richtextsnippetdirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) + +## RichTextSnippetDirectAnswer interface + +A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'rich\_text' field type. "value" field is omitted for featured snippet direct answer of this field type. + +Signature: + +```typescript +export interface RichTextSnippetDirectAnswer extends Omit, 'value'> +``` +Extends: Omit<[BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md)<string>, 'value'> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.richtextsnippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.RichText](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | + diff --git a/docs/search-core.snippet.matchedsubstrings.md b/docs/search-core.snippet.matchedsubstrings.md index 7a3945f9..983a7f15 100644 --- a/docs/search-core.snippet.matchedsubstrings.md +++ b/docs/search-core.snippet.matchedsubstrings.md @@ -4,7 +4,7 @@ ## Snippet.matchedSubstrings property -The locations in the document text of the [FeaturedSnippetDirectAnswer.value](./search-core.featuredsnippetdirectanswer.value.md) +The locations in the document text of the [DirectAnswer.value](./search-core.directanswer.value.md) Signature: diff --git a/docs/search-core.snippet.md b/docs/search-core.snippet.md index 50692ffc..35d1cf84 100644 --- a/docs/search-core.snippet.md +++ b/docs/search-core.snippet.md @@ -16,6 +16,6 @@ export interface Snippet | Property | Type | Description | | --- | --- | --- | -| [matchedSubstrings](./search-core.snippet.matchedsubstrings.md) | { offset: number; length: number; }\[\] | The locations in the document text of the [FeaturedSnippetDirectAnswer.value](./search-core.featuredsnippetdirectanswer.value.md) | +| [matchedSubstrings](./search-core.snippet.matchedsubstrings.md) | { offset: number; length: number; }\[\] | The locations in the document text of the [DirectAnswer.value](./search-core.directanswer.value.md) | | [value](./search-core.snippet.value.md) | string | The snippet's body of text | diff --git a/docs/search-core.staticfilter.md b/docs/search-core.staticfilter.md new file mode 100644 index 00000000..757a6a6d --- /dev/null +++ b/docs/search-core.staticfilter.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [StaticFilter](./search-core.staticfilter.md) + +## StaticFilter type + +Represents a static filter that will be used to refine results. + +Signature: + +```typescript +export declare type StaticFilter = FieldValueStaticFilter | DisjunctionStaticFilter | ConjunctionStaticFilter; +``` +References: [FieldValueStaticFilter](./search-core.fieldvaluestaticfilter.md), [DisjunctionStaticFilter](./search-core.disjunctionstaticfilter.md), [ConjunctionStaticFilter](./search-core.conjunctionstaticfilter.md) + diff --git a/docs/search-core.textdirectanswer.fieldtype.md b/docs/search-core.textdirectanswer.fieldtype.md new file mode 100644 index 00000000..ceb70d7e --- /dev/null +++ b/docs/search-core.textdirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [TextDirectAnswer](./search-core.textdirectanswer.md) > [fieldType](./search-core.textdirectanswer.fieldtype.md) + +## TextDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.textdirectanswer.md b/docs/search-core.textdirectanswer.md new file mode 100644 index 00000000..206bc73d --- /dev/null +++ b/docs/search-core.textdirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [TextDirectAnswer](./search-core.textdirectanswer.md) + +## TextDirectAnswer interface + +A direct answer whose source is a string or string list field in the knowledge graph. + +Signature: + +```typescript +export interface TextDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string \| string\[\]> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.textdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.SingleLineText](./search-core.builtinfieldtype.md) \| [BuiltInFieldType.MultiLineText](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.twitterhandledirectanswer.fieldtype.md b/docs/search-core.twitterhandledirectanswer.fieldtype.md new file mode 100644 index 00000000..6bc84554 --- /dev/null +++ b/docs/search-core.twitterhandledirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [TwitterHandleDirectAnswer](./search-core.twitterhandledirectanswer.md) > [fieldType](./search-core.twitterhandledirectanswer.fieldtype.md) + +## TwitterHandleDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.twitterhandledirectanswer.md b/docs/search-core.twitterhandledirectanswer.md new file mode 100644 index 00000000..c8f1750b --- /dev/null +++ b/docs/search-core.twitterhandledirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [TwitterHandleDirectAnswer](./search-core.twitterhandledirectanswer.md) + +## TwitterHandleDirectAnswer interface + +A direct answer for an twitter handle field. + +Signature: + +```typescript +export interface TwitterHandleDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.twitterhandledirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.TwitterHandle](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.universalsearchrequest.referrerpageurl.md b/docs/search-core.universalsearchrequest.referrerpageurl.md index ae9428ee..b2185ad0 100644 --- a/docs/search-core.universalsearchrequest.referrerpageurl.md +++ b/docs/search-core.universalsearchrequest.referrerpageurl.md @@ -14,5 +14,5 @@ referrerPageUrl?: string; ## Example -If a user is on https://www.yext.com/ and navigates to https://www.yext.com/answers and perform a search, the referrerPageUrl would be https://www.yext.com/. +If a user is on https://www.yext.com/ and navigates to https://search.yext.com/ and perform a search, the referrerPageUrl would be https://www.yext.com/. diff --git a/docs/search-core.unknownfieldvaluedirectanswer.fieldtype.md b/docs/search-core.unknownfieldvaluedirectanswer.fieldtype.md new file mode 100644 index 00000000..291ac4f3 --- /dev/null +++ b/docs/search-core.unknownfieldvaluedirectanswer.fieldtype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [UnknownFieldValueDirectAnswer](./search-core.unknownfieldvaluedirectanswer.md) > [fieldType](./search-core.unknownfieldvaluedirectanswer.fieldtype.md) + +## UnknownFieldValueDirectAnswer.fieldType property + +The field type of the direct answer. + +Signature: + +```typescript +fieldType: 'unknown'; +``` diff --git a/docs/search-core.unknownfieldvaluedirectanswer.md b/docs/search-core.unknownfieldvaluedirectanswer.md new file mode 100644 index 00000000..351f27f5 --- /dev/null +++ b/docs/search-core.unknownfieldvaluedirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [UnknownFieldValueDirectAnswer](./search-core.unknownfieldvaluedirectanswer.md) + +## UnknownFieldValueDirectAnswer interface + +A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) with a field type outside of [BuiltInFieldType](./search-core.builtinfieldtype.md). + +Signature: + +```typescript +export interface UnknownFieldValueDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<T> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.unknownfieldvaluedirectanswer.fieldtype.md) | 'unknown' | The field type of the direct answer. | + diff --git a/docs/search-core.urldirectanswer.fieldtype.md b/docs/search-core.urldirectanswer.fieldtype.md new file mode 100644 index 00000000..b07732c8 --- /dev/null +++ b/docs/search-core.urldirectanswer.fieldtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [UrlDirectAnswer](./search-core.urldirectanswer.md) > [fieldType](./search-core.urldirectanswer.fieldtype.md) + +## UrlDirectAnswer.fieldType property + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.urldirectanswer.md b/docs/search-core.urldirectanswer.md new file mode 100644 index 00000000..b2f3539f --- /dev/null +++ b/docs/search-core.urldirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [UrlDirectAnswer](./search-core.urldirectanswer.md) + +## UrlDirectAnswer interface + +A direct answer for a simple url field. + +Signature: + +```typescript +export interface UrlDirectAnswer extends BaseFieldValueDirectAnswer +``` +Extends: [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md)<string \| string\[\]> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.urldirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.URL](./search-core.builtinfieldtype.md)> | | + diff --git a/docs/search-core.verticalsearchrequest.md b/docs/search-core.verticalsearchrequest.md index 5a7d6959..0be58e4d 100644 --- a/docs/search-core.verticalsearchrequest.md +++ b/docs/search-core.verticalsearchrequest.md @@ -33,6 +33,6 @@ export interface VerticalSearchRequest extends SearchRequest | [sessionTrackingEnabled?](./search-core.verticalsearchrequest.sessiontrackingenabled.md) | boolean | (Optional) Enables session tracking. | | [skipSpellCheck?](./search-core.verticalsearchrequest.skipspellcheck.md) | boolean | (Optional) Skips spell checking if true. | | [sortBys?](./search-core.verticalsearchrequest.sortbys.md) | [SortBy](./search-core.sortby.md)\[\] | (Optional) Determines how results are sorted. \* | -| [staticFilters?](./search-core.verticalsearchrequest.staticfilters.md) | [CombinedFilter](./search-core.combinedfilter.md) \| [Filter](./search-core.filter.md) | (Optional) The static filters to apply to the search. | +| [staticFilter?](./search-core.verticalsearchrequest.staticfilter.md) | [StaticFilter](./search-core.staticfilter.md) | (Optional) The static filter to apply to the search. | | [verticalKey](./search-core.verticalsearchrequest.verticalkey.md) | string | The key associated with the vertical. | diff --git a/docs/search-core.verticalsearchrequest.staticfilters.md b/docs/search-core.verticalsearchrequest.staticfilter.md similarity index 52% rename from docs/search-core.verticalsearchrequest.staticfilters.md rename to docs/search-core.verticalsearchrequest.staticfilter.md index 4d42211f..2cd74f11 100644 --- a/docs/search-core.verticalsearchrequest.staticfilters.md +++ b/docs/search-core.verticalsearchrequest.staticfilter.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [VerticalSearchRequest](./search-core.verticalsearchrequest.md) > [staticFilters](./search-core.verticalsearchrequest.staticfilters.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [VerticalSearchRequest](./search-core.verticalsearchrequest.md) > [staticFilter](./search-core.verticalsearchrequest.staticfilter.md) -## VerticalSearchRequest.staticFilters property +## VerticalSearchRequest.staticFilter property -The static filters to apply to the search. +The static filter to apply to the search. Signature: ```typescript -staticFilters?: CombinedFilter | Filter; +staticFilter?: StaticFilter; ``` diff --git a/etc/search-core.api.md b/etc/search-core.api.md index b1830baf..1cbf0217 100644 --- a/etc/search-core.api.md +++ b/etc/search-core.api.md @@ -9,27 +9,38 @@ export interface AdditionalHttpHeaders { 'Client-SDK'?: ClientSDKHeaderValues; } -// @public @deprecated (undocumented) -export type AnswersConfig = SearchConfig; - -// @public @deprecated (undocumented) -export interface AnswersConfigWithApiKey extends SearchConfigWithApiKey { -} - -// @public @deprecated (undocumented) -export interface AnswersConfigWithToken extends SearchConfigWithToken { -} - -// @public @deprecated (undocumented) -export class AnswersCore extends SearchCore { +// @public +export interface Address { + // (undocumented) + city?: string; + // (undocumented) + countryCode: string; + // (undocumented) + extraDescription?: string; + // (undocumented) + line1?: string; + // (undocumented) + line2?: string; + // (undocumented) + line3?: string; + // (undocumented) + postalCode?: string; + // (undocumented) + region?: string; + // (undocumented) + sublocality?: string; } -// @public @deprecated (undocumented) -export interface AnswersError extends SearchError { +// @public +export interface AddressDirectAnswer extends BaseFieldValueDirectAnswer
{ + // (undocumented) + fieldType: EnumOrLiteral; } -// @public @deprecated (undocumented) -export interface AnswersRequest extends SearchRequest { +// @public +export interface AndroidAppUrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; } // @public @@ -37,7 +48,7 @@ export interface AppliedQueryFilter { details?: LocationFilterDetails; displayKey: string; displayValue: string; - filter: Filter; + filter: FieldValueFilter; type: AppliedQueryFilterType; } @@ -58,7 +69,7 @@ export interface AutocompleteResponse { // @public export interface AutocompleteResult { - filter?: Filter; + filter?: FieldValueFilter; key?: string; matchedSubstrings?: { length: number; @@ -76,13 +87,24 @@ export interface AutocompleteService { verticalAutocomplete(request: VerticalAutocompleteRequest): Promise; } -// @public @deprecated (undocumented) -export interface BaseAnswersConfig extends BaseSearchConfig { +// @public +export interface BaseFeaturedSnippetDirectAnswer extends DirectAnswer { + fieldType: EnumOrLiteral; + snippet: Snippet; + type: DirectAnswerType.FeaturedSnippet; +} + +// @public +export interface BaseFieldValueDirectAnswer extends DirectAnswer { + entityName: string; + fieldApiName: string; + fieldName: string; + type: DirectAnswerType.FieldValue; + value: T; } // @public export interface BaseSearchConfig { - // @alpha additionalQueryParams?: { [key: string]: string | number | boolean; }; @@ -93,6 +115,42 @@ export interface BaseSearchConfig { visitor?: Visitor; } +// @public +export enum BuiltInFieldType { + // (undocumented) + Address = "address", + // (undocumented) + AndroidAppURL = "android_app_url", + // (undocumented) + ComplexURL = "complex_url", + // (undocumented) + Decimal = "decimal", + // (undocumented) + Email = "email", + // (undocumented) + FacebookURL = "facebook_url", + // (undocumented) + Hours = "hours", + // (undocumented) + InstagramHandle = "instagram_handle", + // (undocumented) + Integer = "integer", + // (undocumented) + IOSAppURL = "ios_app_url", + // (undocumented) + MultiLineText = "multi_line_text", + // (undocumented) + Phone = "phone", + // (undocumented) + RichText = "rich_text", + // (undocumented) + SingleLineText = "single_line_text", + // (undocumented) + TwitterHandle = "twitter_handle", + // (undocumented) + URL = "url" +} + // @public export interface ClientSDKHeaderValues { [agent: string]: string | undefined; @@ -100,20 +158,51 @@ export interface ClientSDKHeaderValues { } // @public -export interface CombinedFilter { - combinator: FilterCombinator; - filters: (Filter | CombinedFilter)[]; +export interface ComplexURL { + // (undocumented) + displayUrl?: string; + // (undocumented) + preferDisplayUrl: boolean; + // (undocumented) + url: string; +} + +// @public +export interface ComplexUrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + +// @public +export interface ConjunctionStaticFilter { + combinator: FilterCombinator.AND; + filters: StaticFilter[]; + kind: 'conjunction'; } // @public export type Context = any; // @public -export interface DirectAnswer { - fieldType: string; +export interface DayHour { + // (undocumented) + isClosed?: boolean; + // (undocumented) + openIntervals?: Interval[]; +} + +// @public +export interface DecimalDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + +// @public +export interface DirectAnswer { + fieldType: EnumOrLiteral | 'unknown'; relatedResult: Result; type: DirectAnswerType; - value?: string; + value?: T; verticalKey: string; } @@ -129,10 +218,16 @@ export enum Direction { Descending = "DESC" } +// @public +export interface DisjunctionStaticFilter { + combinator: FilterCombinator.OR; + filters: (DisjunctionStaticFilter | FieldValueStaticFilter)[]; + kind: 'disjunction'; +} + // @public export interface DisplayableFacet extends Facet { displayName: string; - fieldId: string; options: DisplayableFacetOption[]; } @@ -140,9 +235,13 @@ export interface DisplayableFacet extends Facet { export interface DisplayableFacetOption extends FacetOption { count: number; displayName: string; - matcher: Matcher; selected: boolean; - value: string | number | boolean | NumberRangeValue; +} + +// @public +export interface EmailDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; } // @public @@ -163,6 +262,9 @@ export interface Endpoints { verticalSearch?: string; } +// @public +export type EnumOrLiteral = T | `${T}`; + // @public export enum ErrorType { BackendError = "BACKEND_ERROR", @@ -171,6 +273,12 @@ export enum ErrorType { Timeout = "TIMEOUT" } +// @public +export interface FacebookUrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface Facet { fieldId: string; @@ -178,9 +286,8 @@ export interface Facet { } // @public -export interface FacetOption { - matcher: Matcher; - value: string | number | boolean | NumberRangeValue; +export interface FacetOption extends Omit { + value: Exclude; } // @public @@ -195,34 +302,23 @@ export interface FailedVertical { } // @public -export interface FeaturedSnippetDirectAnswer extends DirectAnswer { - fieldType: string; - relatedResult: Result; - snippet: Snippet; - type: DirectAnswerType.FeaturedSnippet; - value?: string; - verticalKey: string; -} +export type FeaturedSnippetDirectAnswer = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; // @public -export interface FieldValueDirectAnswer extends DirectAnswer { - entityName: string; - fieldApiName: string; - fieldName: string; - fieldType: string; - relatedResult: Result; - type: DirectAnswerType.FieldValue; - value: string; - verticalKey: string; -} +export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | ComplexUrlDirectAnswer | IntegerDirectAnswer | PhoneDirectAnswer | EmailDirectAnswer | AddressDirectAnswer | HoursDirectAnswer; // @public -export interface Filter { +export interface FieldValueFilter { fieldId: string; matcher: Matcher; value: string | number | boolean | NearFilterValue | NumberRangeValue; } +// @public +export interface FieldValueStaticFilter extends FieldValueFilter { + kind: 'fieldValue'; +} + // @public export enum FilterCombinator { AND = "$and", @@ -231,7 +327,7 @@ export enum FilterCombinator { // @public export interface FilterSearchRequest extends SearchRequest { - excluded?: Filter[]; + excluded?: FieldValueFilter[]; fields: SearchParameterField[]; input: string; sectioned: boolean; @@ -264,6 +360,72 @@ export interface HighlightedValue { value: string; } +// @public +export interface HolidayHours { + // (undocumented) + date: string; + // (undocumented) + isClosed?: boolean; + // (undocumented) + isRegularHours?: boolean; + // (undocumented) + openIntervals?: Interval[]; +} + +// @public +export interface Hours { + // (undocumented) + friday?: DayHour; + // (undocumented) + holidayHours?: HolidayHours[]; + // (undocumented) + monday?: DayHour; + // (undocumented) + reopenDate?: string; + // (undocumented) + saturday?: DayHour; + // (undocumented) + sunday?: DayHour; + // (undocumented) + thursday?: DayHour; + // (undocumented) + tuesday?: DayHour; + // (undocumented) + wednesday?: DayHour; +} + +// @public +export interface HoursDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + +// @public +export interface InstagramHandleDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + +// @public +export interface IntegerDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + +// @public +export interface Interval { + // (undocumented) + end?: string; + // (undocumented) + start?: string; +} + +// @public +export interface IosAppUrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface LatLong { latitude: number; @@ -320,6 +482,12 @@ export enum Matcher { NotEquals = "!$eq" } +// @public +export interface MultiLineTextSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer { + fieldType: EnumOrLiteral; + value: string; +} + // @public export interface NearFilterValue { lat: number; @@ -333,6 +501,12 @@ export interface NumberRangeValue { start?: LowerNumberRangeLimit; } +// @public +export interface PhoneDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: BuiltInFieldType.Phone; +} + // @public export function provideCore(config: SearchConfig): SearchCore; @@ -395,6 +569,17 @@ export interface Result> { source: Source; } +// @public +export interface RichTextDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + +// @public +export interface RichTextSnippetDirectAnswer extends Omit, 'value'> { + fieldType: EnumOrLiteral; +} + // @public export const SandboxEndpoints: Required; @@ -507,6 +692,21 @@ export enum SpellCheckType { Suggest = "SUGGEST" } +// @public +export type StaticFilter = FieldValueStaticFilter | DisjunctionStaticFilter | ConjunctionStaticFilter; + +// @public +export interface TextDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + +// @public +export interface TwitterHandleDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface UniversalAutocompleteRequest extends SearchRequest { input: string; @@ -547,12 +747,23 @@ export interface UniversalSearchResponse { verticalResults: VerticalResults[]; } +// @public +export interface UnknownFieldValueDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: 'unknown'; +} + // @public export interface UpperNumberRangeLimit { matcher: Matcher.LessThan | Matcher.LessThanOrEqualTo; value: number; } +// @public +export interface UrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface VerticalAutocompleteRequest extends SearchRequest { input: string; @@ -588,7 +799,7 @@ export interface VerticalSearchRequest extends SearchRequest { sessionTrackingEnabled?: boolean; skipSpellCheck?: boolean; sortBys?: SortBy[]; - staticFilters?: CombinedFilter | Filter; + staticFilter?: StaticFilter; verticalKey: string; } diff --git a/package-lock.json b/package-lock.json index f133465e..940ed4b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@yext/search-core", - "version": "1.9.0", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@yext/search-core", - "version": "1.9.0", + "version": "2.0.0", "license": "BSD-3-Clause", "dependencies": { "@babel/runtime-corejs3": "^7.12.5", @@ -5810,9 +5810,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", "dev": true, "engines": { "node": ">=6" @@ -5844,7 +5844,7 @@ "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, "engines": { "node": ">=0.8" @@ -6176,7 +6176,7 @@ "node_modules/defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", "dev": true, "dependencies": { "clone": "^1.0.2" @@ -6616,9 +6616,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", - "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -8611,9 +8611,9 @@ } }, "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -14168,9 +14168,9 @@ } }, "node_modules/rxjs": { - "version": "6.6.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", - "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" @@ -15439,7 +15439,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/timsort": { @@ -16056,7 +16056,7 @@ "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "dependencies": { "defaults": "^1.0.3" @@ -20830,9 +20830,9 @@ } }, "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", "dev": true }, "cli-width": { @@ -20855,7 +20855,7 @@ "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true }, "clone-deep": { @@ -21127,7 +21127,7 @@ "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", "dev": true, "requires": { "clone": "^1.0.2" @@ -21567,9 +21567,9 @@ } }, "eslint-config-prettier": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", - "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "dev": true, "requires": {} }, @@ -22966,9 +22966,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27256,9 +27256,9 @@ } }, "rxjs": { - "version": "6.6.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", - "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -28270,7 +28270,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "timsort": { @@ -28749,7 +28749,7 @@ "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "requires": { "defaults": "^1.0.3" diff --git a/package.json b/package.json index 14fdcc8b..476db98c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@yext/search-core", - "version": "1.9.0", + "version": "2.0.0", "description": "Typescript Networking Library for the Yext Search API", "main": "./dist/commonjs/src/index.js", "module": "./dist/esm/src/index.js", @@ -28,7 +28,7 @@ }, "scripts": { "test": "npm run lint && jest", - "lint": "eslint .", + "lint": "eslint . --max-warnings=0", "tsc-cjs": "tsc -p tsconfig.cjs.json", "tsc-esm": "tsc -p tsconfig.esm.json", "tsc": "npm run tsc-cjs && npm run tsc-esm", diff --git a/src/constants.ts b/src/constants.ts index aa60d984..fed7d675 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -3,13 +3,13 @@ import { Endpoints } from './models/core/Endpoints'; export const defaultApiVersion = 20220511; export const defaultEndpoints: Required = { - universalSearch: 'https://liveapi.yext.com/v2/accounts/me/answers/query', - verticalSearch: 'https://liveapi.yext.com/v2/accounts/me/answers/vertical/query', + universalSearch: 'https://liveapi.yext.com/v2/accounts/me/search/query', + verticalSearch: 'https://liveapi.yext.com/v2/accounts/me/search/vertical/query', questionSubmission: 'https://liveapi.yext.com/v2/accounts/me/createQuestion', status: 'https://answersstatus.pagescdn.com', - universalAutocomplete: 'https://liveapi-cached.yext.com/v2/accounts/me/answers/autocomplete', - verticalAutocomplete: 'https://liveapi-cached.yext.com/v2/accounts/me/answers/vertical/autocomplete', - filterSearch: 'https://liveapi-cached.yext.com/v2/accounts/me/answers/filtersearch', + universalAutocomplete: 'https://liveapi-cached.yext.com/v2/accounts/me/search/autocomplete', + verticalAutocomplete: 'https://liveapi-cached.yext.com/v2/accounts/me/search/vertical/autocomplete', + filterSearch: 'https://liveapi-cached.yext.com/v2/accounts/me/search/filtersearch', } as const; /** @@ -18,11 +18,11 @@ export const defaultEndpoints: Required = { * @public */ export const SandboxEndpoints: Required = { - universalSearch: 'https://liveapi-sandbox.yext.com/v2/accounts/me/answers/query', - verticalSearch: 'https://liveapi-sandbox.yext.com/v2/accounts/me/answers/vertical/query', + universalSearch: 'https://liveapi-sandbox.yext.com/v2/accounts/me/search/query', + verticalSearch: 'https://liveapi-sandbox.yext.com/v2/accounts/me/search/vertical/query', questionSubmission: 'https://liveapi-sandbox.yext.com/v2/accounts/me/createQuestion', status: 'https://answersstatus.pagescdn.com', - universalAutocomplete: 'https://liveapi-sandbox.yext.com/v2/accounts/me/answers/autocomplete', - verticalAutocomplete: 'https://liveapi-sandbox.yext.com/v2/accounts/me/answers/vertical/autocomplete', - filterSearch: 'https://liveapi-sandbox.yext.com/v2/accounts/me/answers/filtersearch', + universalAutocomplete: 'https://liveapi-sandbox.yext.com/v2/accounts/me/search/autocomplete', + verticalAutocomplete: 'https://liveapi-sandbox.yext.com/v2/accounts/me/search/vertical/autocomplete', + filterSearch: 'https://liveapi-sandbox.yext.com/v2/accounts/me/search/filtersearch', } as const; \ No newline at end of file diff --git a/src/deprecated.ts b/src/deprecated.ts deleted file mode 100644 index 7b965448..00000000 --- a/src/deprecated.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { SearchCore } from './SearchCore'; - -/** - * @deprecated AnswersCore is deprecated and has been replaced by {@link SearchCore} - * @public - */ -export class AnswersCore extends SearchCore{} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 8862474c..fcff8109 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,3 @@ -// deprecated symbols -export { AnswersCore } from './deprecated'; - // main symbols export { SearchCore } from './SearchCore'; export { provideCore } from './provideCore'; diff --git a/src/infra/SearchServiceImpl.ts b/src/infra/SearchServiceImpl.ts index 2f0411d2..0355e8b7 100644 --- a/src/infra/SearchServiceImpl.ts +++ b/src/infra/SearchServiceImpl.ts @@ -150,7 +150,7 @@ export class SearchServiceImpl implements SearchService { input: request.query, location: this.stringifyLatLong(request.location), verticalKey: request.verticalKey, - filters: request.staticFilters && serializeStaticFilters(request.staticFilters), + filters: request.staticFilter && serializeStaticFilters(request.staticFilter), limit: request.limit, offset: request.offset, retrieveFacets: request.retrieveFacets, diff --git a/src/models/autocompleteservice/AutocompleteRequest.ts b/src/models/autocompleteservice/AutocompleteRequest.ts index 15a3e4db..c6c42959 100644 --- a/src/models/autocompleteservice/AutocompleteRequest.ts +++ b/src/models/autocompleteservice/AutocompleteRequest.ts @@ -1,5 +1,5 @@ import { SearchRequest } from '../core/SearchRequest'; -import { Filter } from '../searchservice/request/Filter'; +import { FieldValueFilter } from '../searchservice/request/FieldValueFilter'; /** * Options for a universal autocomplete request. @@ -41,10 +41,10 @@ export interface FilterSearchRequest extends SearchRequest { verticalKey: string, /** Determines whether or not the results of the {@link FilterSearchResponse} are separated by field. */ sectioned: boolean, - /** An array of {@link SearchParameterField} */ + /** An array of {@link SearchParameterField}. */ fields: SearchParameterField[], - /** an array of filters that should be excluded from filter search results. */ - excluded?: Filter[] + /** An array of field value filters that should be excluded from filter search results. */ + excluded?: FieldValueFilter[] } /** diff --git a/src/models/autocompleteservice/AutocompleteResponse.ts b/src/models/autocompleteservice/AutocompleteResponse.ts index 50b20498..bff6380e 100644 --- a/src/models/autocompleteservice/AutocompleteResponse.ts +++ b/src/models/autocompleteservice/AutocompleteResponse.ts @@ -1,4 +1,4 @@ -import { Filter } from '../searchservice/request/Filter'; +import { FieldValueFilter } from '../searchservice/request/FieldValueFilter'; import { SearchIntent } from '../searchservice/response/SearchIntent'; import { Result } from '../searchservice/response/Result'; @@ -63,7 +63,7 @@ export interface AutocompleteResult { * @remarks * This property is only defined for filtersearch. */ - filter?: Filter, + filter?: FieldValueFilter, /** * The fieldId which corresponds to the AutocompleteResult value. * diff --git a/src/models/core/SearchConfig.ts b/src/models/core/SearchConfig.ts index 6a198725..ae6e2178 100644 --- a/src/models/core/SearchConfig.ts +++ b/src/models/core/SearchConfig.ts @@ -31,7 +31,7 @@ export interface BaseSearchConfig { /** * Additional query params added on to every request. * - * @alpha + * @public */ additionalQueryParams?: { [key: string]: string | number | boolean diff --git a/src/models/deprecated.ts b/src/models/deprecated.ts deleted file mode 100644 index 839ed26a..00000000 --- a/src/models/deprecated.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* eslint-disable @typescript-eslint/no-empty-interface */ -import { SearchConfig } from './core/SearchConfig'; -import { BaseSearchConfig } from './core/SearchConfig'; -import { SearchConfigWithApiKey } from './core/SearchConfig'; -import { SearchConfigWithToken } from './core/SearchConfig'; -import { SearchError } from './searchapi/SearchError'; -import { SearchRequest } from './core/SearchRequest'; - -/** - * @deprecated AnswersConfig is deprecated and has been replaced by {@link SearchConfig} - * @public - */ -export type AnswersConfig = SearchConfig; - -/** - * @deprecated BaseAnswersConfig is deprecated and has been replaced by {@link BaseSearchConfig} - * @public - */ -export interface BaseAnswersConfig extends BaseSearchConfig{} - -/** - * @deprecated AnswersConfigWithApiKey is deprecated and has been replaced by {@link SearchConfigWithApiKey} - * @public - */ -export interface AnswersConfigWithApiKey extends SearchConfigWithApiKey{} - -/** - * @deprecated AnswersConfigWithToken is deprecated and has been replaced by {@link SearchConfigWithToken} - * @public - */ -export interface AnswersConfigWithToken extends SearchConfigWithToken{} - -/** - * @deprecated AnswersError is deprecated and has been replaced by {@link SearchError} - * @public - */ -export interface AnswersError extends SearchError{} - -/** -* @deprecated AnswersRequest is deprecated and has been replaced by {@link SearchRequest} -* @public -*/ -export interface AnswersRequest extends SearchRequest{} diff --git a/src/models/index.ts b/src/models/index.ts index e16a746c..023f7576 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -1,11 +1,3 @@ -// deprecated symbols -export { AnswersConfig } from './deprecated'; -export { BaseAnswersConfig } from './deprecated'; -export { AnswersConfigWithApiKey } from './deprecated'; -export { AnswersConfigWithToken } from './deprecated'; -export { AnswersError } from './deprecated'; -export { AnswersRequest } from './deprecated'; - // Search API models export { SearchError } from './searchapi/SearchError'; @@ -33,14 +25,20 @@ export { QuestionSubmissionRequest } from './questionsubmission/QuestionSubmissi export { QuestionSubmissionResponse } from './questionsubmission/QuestionSubmissionResponse'; // Search service request models -export { CombinedFilter, FilterCombinator } from './searchservice/request/CombinedFilter'; +export { + StaticFilter, + FieldValueStaticFilter, + ConjunctionStaticFilter, + DisjunctionStaticFilter, + FilterCombinator +} from './searchservice/request/StaticFilter'; export { Context } from './searchservice/request/Context'; export { UniversalLimit } from './searchservice/request/UniversalLimit'; export { LatLong } from './searchservice/request/LatLong'; export { QuerySource } from './searchservice/request/QuerySource'; export { QueryTrigger } from './searchservice/request/QueryTrigger'; export { Facet, FacetOption } from './searchservice/request/Facet'; -export { Filter, NearFilterValue } from './searchservice/request/Filter'; +export { FieldValueFilter, NearFilterValue } from './searchservice/request/FieldValueFilter'; export { SortBy } from './searchservice/request/SortBy'; export { UniversalSearchRequest } from './searchservice/request/UniversalSearchRequest'; export { VerticalSearchRequest } from './searchservice/request/VerticalSearchRequest'; @@ -51,10 +49,21 @@ export { Direction } from './searchservice/request/Direction'; export { AppliedQueryFilter } from './searchservice/response/AppliedQueryFilter'; export { AppliedQueryFilterType } from './searchservice/response/AppliedQueryFilterType'; export { LocationFilterDetails, LocationBoundingBox } from './searchservice/response/LocationFilterDetails'; -export { DirectAnswer } from './searchservice/response/DirectAnswer'; -export { FieldValueDirectAnswer } from './searchservice/response/FieldValueDirectAnswer'; -export { FeaturedSnippetDirectAnswer } from './searchservice/response/FeaturedSnippetDirectAnswer'; -export { DirectAnswerType } from './searchservice/response/DirectAnswerType'; + +export { DirectAnswer } from './searchservice/response/directanswer/DirectAnswer'; +export { DirectAnswerType } from './searchservice/response/directanswer/DirectAnswerType'; +export { BuiltInFieldType } from './searchservice/response/directanswer/BuiltInFieldType'; + +export { BaseFieldValueDirectAnswer } from './searchservice/response/directanswer/BaseFieldValueDirectAnswer'; +export { FieldValueDirectAnswer } from './searchservice/response/directanswer/FieldValueDirectAnswer'; +export * from './searchservice/response/directanswer/fieldvaluedirectanswers'; + +export { + BaseFeaturedSnippetDirectAnswer, + FeaturedSnippetDirectAnswer +} from './searchservice/response/directanswer/FeaturedSnippetDirectAnswer'; +export * from './searchservice/response/directanswer/featuredsnippetdirectanswers'; + export { DisplayableFacet, DisplayableFacetOption } from './searchservice/response/DisplayableFacet'; export { HighlightedFields } from './searchservice/response/HighlightedFields'; export { HighlightedValue } from './searchservice/response/HighlightedValue'; @@ -78,3 +87,6 @@ export { LowerNumberRangeLimit, UpperNumberRangeLimit } from './searchservice/common/NumberRangeValue'; + +// Utils +export { EnumOrLiteral } from './utils/EnumOrLiteral'; diff --git a/src/models/searchservice/request/ApiStaticFilters.ts b/src/models/searchservice/request/ApiStaticFilters.ts index 5f9b13c9..cf27cd13 100644 --- a/src/models/searchservice/request/ApiStaticFilters.ts +++ b/src/models/searchservice/request/ApiStaticFilters.ts @@ -1,4 +1,4 @@ -import { NearFilterValue } from './Filter'; +import { NearFilterValue } from './FieldValueFilter'; /** * Represents static filters in the format that the Search API expects. diff --git a/src/models/searchservice/request/CombinedFilter.ts b/src/models/searchservice/request/CombinedFilter.ts deleted file mode 100644 index 6bd3f580..00000000 --- a/src/models/searchservice/request/CombinedFilter.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Filter } from './Filter'; - -/** - * Represents multiple filters that will be combined to refine results. - * - * @public - */ -export interface CombinedFilter { - /** An array of filters applied to the search. */ - filters: (Filter | CombinedFilter)[], - /** The logical operator used to combine the filters. */ - combinator: FilterCombinator -} - -/** - * Indicates how the filters in a {@link CombinedFilter} should be combined. - * - * @public - */ -export enum FilterCombinator { - /** Indicates that filters should be combined with a logical AND. */ - AND = '$and', - /** Indicates that filters should be combined with a logical OR. */ - OR = '$or' -} \ No newline at end of file diff --git a/src/models/searchservice/request/Facet.ts b/src/models/searchservice/request/Facet.ts index 4e943ab8..6a6ea296 100644 --- a/src/models/searchservice/request/Facet.ts +++ b/src/models/searchservice/request/Facet.ts @@ -1,5 +1,4 @@ -import { Matcher } from '../common/Matcher'; -import { NumberRangeValue } from '../common/NumberRangeValue'; +import { FieldValueFilter, NearFilterValue } from './FieldValueFilter'; /** * Represents dynamic filter options for the Search API. @@ -23,14 +22,12 @@ export interface Facet { * * @public */ -export interface FacetOption { - /** {@inheritDoc Matcher} */ - matcher: Matcher, +export interface FacetOption extends Omit { /** * The value to compare. * * @example * 'Sales' */ - value: string | number | boolean | NumberRangeValue + value: Exclude } diff --git a/src/models/searchservice/request/Filter.ts b/src/models/searchservice/request/FieldValueFilter.ts similarity index 95% rename from src/models/searchservice/request/Filter.ts rename to src/models/searchservice/request/FieldValueFilter.ts index 41e170c4..514bb9cf 100644 --- a/src/models/searchservice/request/Filter.ts +++ b/src/models/searchservice/request/FieldValueFilter.ts @@ -6,7 +6,7 @@ import { NumberRangeValue } from '../common/NumberRangeValue'; * * @public */ -export interface Filter { +export interface FieldValueFilter { /** * The fieldId to apply the filter against. * diff --git a/src/models/searchservice/request/StaticFilter.ts b/src/models/searchservice/request/StaticFilter.ts new file mode 100644 index 00000000..ce4b33bc --- /dev/null +++ b/src/models/searchservice/request/StaticFilter.ts @@ -0,0 +1,62 @@ +import { FieldValueFilter } from './FieldValueFilter'; + +/** + * Represents a static filter that will be used to refine results. + * + * @public + */ +export type StaticFilter = FieldValueStaticFilter | DisjunctionStaticFilter | ConjunctionStaticFilter; + +/** + * A {@link FieldValueFilter} with the kind of filter specified + * to discriminate between static filter types. + * + * @public + */ +export interface FieldValueStaticFilter extends FieldValueFilter { + /** The kind of static filter. */ + kind: 'fieldValue' +} + +/** + * A static filter composed by combining filters with the logical OR + * operator. The combined filters can either be field value filters or + * other disjunction filters. + * + * @public + */ +export interface DisjunctionStaticFilter { + /** {@inheritDoc FieldValueStaticFilter.kind} */ + kind: 'disjunction', + /** {@inheritDoc FilterCombinator.OR} */ + combinator: FilterCombinator.OR, + /** The filters to combine together. */ + filters: (DisjunctionStaticFilter | FieldValueStaticFilter)[] +} + +/** + * A static filter composed by combining other static filters with the + * logical AND operator. + * + * @public + */ +export interface ConjunctionStaticFilter { + /** {@inheritDoc FieldValueStaticFilter.kind} */ + kind: 'conjunction', + /** {@inheritDoc FilterCombinator.AND} */ + combinator: FilterCombinator.AND, + /** {@inheritDoc DisjunctionStaticFilter.filters} */ + filters: StaticFilter[] +} + +/** + * Indicates how child filters in a {@link StaticFilter} should be combined. + * + * @public + */ +export enum FilterCombinator { + /** Indicates that filters should be combined with a logical AND. */ + AND = '$and', + /** Indicates that filters should be combined with a logical OR. */ + OR = '$or' +} \ No newline at end of file diff --git a/src/models/searchservice/request/UniversalSearchRequest.ts b/src/models/searchservice/request/UniversalSearchRequest.ts index de9b49d9..8e4086a8 100644 --- a/src/models/searchservice/request/UniversalSearchRequest.ts +++ b/src/models/searchservice/request/UniversalSearchRequest.ts @@ -29,7 +29,7 @@ export interface UniversalSearchRequest extends SearchRequest { * The URl of the page which referred the user to the current page. * * @example - * If a user is on https://www.yext.com/ and navigates to https://www.yext.com/answers and perform a search, + * If a user is on https://www.yext.com/ and navigates to https://search.yext.com/ and perform a search, * the referrerPageUrl would be https://www.yext.com/. */ referrerPageUrl?: string, diff --git a/src/models/searchservice/request/VerticalSearchRequest.ts b/src/models/searchservice/request/VerticalSearchRequest.ts index 84e1921d..b9cdf9ab 100644 --- a/src/models/searchservice/request/VerticalSearchRequest.ts +++ b/src/models/searchservice/request/VerticalSearchRequest.ts @@ -1,5 +1,4 @@ -import { CombinedFilter } from './CombinedFilter'; -import { Filter } from './Filter'; +import { StaticFilter } from './StaticFilter'; import { Context } from './Context'; import { LatLong } from './LatLong'; import { QueryTrigger } from './QueryTrigger'; @@ -38,8 +37,8 @@ export interface VerticalSearchRequest extends SearchRequest { sessionId?: string, /** Enables session tracking. */ sessionTrackingEnabled?: boolean, - /** The static filters to apply to the search. */ - staticFilters?: CombinedFilter | Filter, + /** The static filter to apply to the search. */ + staticFilter?: StaticFilter, /** Determines how results are sorted. **/ sortBys?: SortBy[], /** {@inheritdoc UniversalSearchRequest.referrerPageUrl} */ diff --git a/src/models/searchservice/response/AppliedQueryFilter.ts b/src/models/searchservice/response/AppliedQueryFilter.ts index 9b9b71e6..f922e26f 100644 --- a/src/models/searchservice/response/AppliedQueryFilter.ts +++ b/src/models/searchservice/response/AppliedQueryFilter.ts @@ -1,4 +1,4 @@ -import { Filter } from '../request/Filter'; +import { FieldValueFilter } from '../request/FieldValueFilter'; import { AppliedQueryFilterType } from './AppliedQueryFilterType'; import { LocationFilterDetails } from './LocationFilterDetails'; @@ -23,7 +23,7 @@ export interface AppliedQueryFilter { */ displayValue: string, /** The filter applied to the query results. */ - filter: Filter, + filter: FieldValueFilter, /** {@inheritDoc AppliedQueryFilterType} */ type: AppliedQueryFilterType, /** {@inheritDoc LocationFilterDetails} */ diff --git a/src/models/searchservice/response/DirectAnswer.ts b/src/models/searchservice/response/DirectAnswer.ts deleted file mode 100644 index 7a4b2eed..00000000 --- a/src/models/searchservice/response/DirectAnswer.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Result } from './Result'; -import { DirectAnswerType } from './DirectAnswerType'; - -/** - * A direct answer to a search. - * - * @public - */ -export interface DirectAnswer { - /** The {@link DirectAnswerType}. */ - type: DirectAnswerType, - /** - * The result of the direct answer. - * - * @remarks - * A value will not be present if the {@link DirectAnswer.fieldType} is 'rich_text'. - */ - value?: string, - /** The entity associated with the direct answer. */ - relatedResult: Result, - /** The vertical key of the direct answer. */ - verticalKey: string, - /** The field type of the direct answer. */ - fieldType: string -} \ No newline at end of file diff --git a/src/models/searchservice/response/DisplayableFacet.ts b/src/models/searchservice/response/DisplayableFacet.ts index ca71c3ba..1a370d48 100644 --- a/src/models/searchservice/response/DisplayableFacet.ts +++ b/src/models/searchservice/response/DisplayableFacet.ts @@ -1,6 +1,4 @@ import { Facet, FacetOption } from '../request/Facet'; -import { Matcher } from '../common/Matcher'; -import { NumberRangeValue } from '../common/NumberRangeValue'; /** * A {@link Facet} which contains extra fields meant to be displayed to the end user. @@ -8,8 +6,6 @@ import { NumberRangeValue } from '../common/NumberRangeValue'; * @public */ export interface DisplayableFacet extends Facet { - /** {@inheritDoc Facet.fieldId} */ - fieldId: string, /** An array of {@link DisplayableFacetOption} */ options: DisplayableFacetOption[], /** The name of the facet which is meant to be displayed to the user. */ @@ -22,10 +18,6 @@ export interface DisplayableFacet extends Facet { * @public */ export interface DisplayableFacetOption extends FacetOption { - /** {@inheritDoc Matcher} */ - matcher: Matcher, - /** {@inheritDoc FacetOption.value} */ - value: string | number | boolean | NumberRangeValue, /** The name of the facet option which is meant to be displayed to the end user. */ displayName: string, /** The number of results associated with this facet option. */ diff --git a/src/models/searchservice/response/FeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/FeaturedSnippetDirectAnswer.ts deleted file mode 100644 index 1c2138c8..00000000 --- a/src/models/searchservice/response/FeaturedSnippetDirectAnswer.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { DirectAnswer } from './DirectAnswer'; -import { DirectAnswerType } from './DirectAnswerType'; -import { Result } from './Result'; -import { Snippet } from './Snippet'; - -/** - * A direct answer which was found within a document. - * - * @public - */ -export interface FeaturedSnippetDirectAnswer extends DirectAnswer { - /** {@link DirectAnswerType}.FeaturedSnippet. */ - type: DirectAnswerType.FeaturedSnippet, - /** {@inheritDoc DirectAnswer.value} */ - value?: string, - /** {@inheritDoc DirectAnswer.relatedResult} */ - relatedResult: Result, - /** {@inheritDoc DirectAnswer.verticalKey} */ - verticalKey: string, - /** {@inheritDoc DirectAnswer.fieldType} */ - fieldType: string, - /** The snippet where the direct answer was found. */ - snippet: Snippet -} \ No newline at end of file diff --git a/src/models/searchservice/response/Snippet.ts b/src/models/searchservice/response/Snippet.ts index b6b47577..1f2538ff 100644 --- a/src/models/searchservice/response/Snippet.ts +++ b/src/models/searchservice/response/Snippet.ts @@ -6,6 +6,6 @@ export interface Snippet { /** The snippet's body of text */ value: string, - /** The locations in the document text of the {@link FeaturedSnippetDirectAnswer.value} */ + /** The locations in the document text of the {@link DirectAnswer.value} */ matchedSubstrings: { offset: number, length: number }[] } \ No newline at end of file diff --git a/src/models/searchservice/response/UniversalSearchResponse.ts b/src/models/searchservice/response/UniversalSearchResponse.ts index f8e2a30c..c1ddb4ec 100644 --- a/src/models/searchservice/response/UniversalSearchResponse.ts +++ b/src/models/searchservice/response/UniversalSearchResponse.ts @@ -1,7 +1,7 @@ import { VerticalResults } from './VerticalResults'; import { SearchIntent } from './SearchIntent'; -import { FeaturedSnippetDirectAnswer } from './FeaturedSnippetDirectAnswer'; -import { FieldValueDirectAnswer } from './FieldValueDirectAnswer'; +import { FeaturedSnippetDirectAnswer } from './directanswer/FeaturedSnippetDirectAnswer'; +import { FieldValueDirectAnswer } from './directanswer/FieldValueDirectAnswer'; import { SpellCheck } from './SpellCheck'; import { LocationBias } from './LocationBias'; import { QueryRulesActionsData } from './QueryRulesActionsData'; diff --git a/src/models/searchservice/response/VerticalSearchResponse.ts b/src/models/searchservice/response/VerticalSearchResponse.ts index 7a0d0a1c..54904f63 100644 --- a/src/models/searchservice/response/VerticalSearchResponse.ts +++ b/src/models/searchservice/response/VerticalSearchResponse.ts @@ -1,7 +1,7 @@ import { VerticalResults } from './VerticalResults'; import { SearchIntent } from './SearchIntent'; -import { FeaturedSnippetDirectAnswer } from './FeaturedSnippetDirectAnswer'; -import { FieldValueDirectAnswer } from './FieldValueDirectAnswer'; +import { FeaturedSnippetDirectAnswer } from './directanswer/FeaturedSnippetDirectAnswer'; +import { FieldValueDirectAnswer } from './directanswer/FieldValueDirectAnswer'; import { DisplayableFacet } from './DisplayableFacet'; import { LocationBias } from './LocationBias'; import { SpellCheck } from './SpellCheck'; @@ -35,4 +35,4 @@ export interface VerticalSearchResponse { uuid: string, /** {@inheritDoc QueryRulesActionsData} */ queryRulesActionsData?: QueryRulesActionsData[] -} \ No newline at end of file +} diff --git a/src/models/searchservice/response/FieldValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/BaseFieldValueDirectAnswer.ts similarity index 52% rename from src/models/searchservice/response/FieldValueDirectAnswer.ts rename to src/models/searchservice/response/directanswer/BaseFieldValueDirectAnswer.ts index 32b7a438..7bca684b 100644 --- a/src/models/searchservice/response/FieldValueDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/BaseFieldValueDirectAnswer.ts @@ -1,27 +1,20 @@ import { DirectAnswer } from './DirectAnswer'; import { DirectAnswerType } from './DirectAnswerType'; -import { Result } from './Result'; /** * A direct answer where the answer came from a field from the knowledge graph. * * @public */ -export interface FieldValueDirectAnswer extends DirectAnswer { - /** {@link DirectAnswerType}.FieldValue. */ +export interface BaseFieldValueDirectAnswer extends DirectAnswer { + /** {@inheritDoc DirectAnswerType.FieldValue} */ type: DirectAnswerType.FieldValue, - /** {@inheritDoc DirectAnswer.value} */ - value: string, - /** {@inheritDoc DirectAnswer.relatedResult} */ - relatedResult: Result, - /** {@inheritDoc DirectAnswer.verticalKey} */ - verticalKey: string, - /** {@inheritDoc DirectAnswer.fieldType} */ - fieldType: string, + /** The result of the direct answer. */ + value: T, /** The name of the entity that direct answer came from. */ entityName: string, /** The field name of the direct answer. */ fieldName: string, /** The field api name of the direct answer. */ fieldApiName: string -} \ No newline at end of file +} diff --git a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts new file mode 100644 index 00000000..8251ecb0 --- /dev/null +++ b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts @@ -0,0 +1,23 @@ +/** + * Possible built-in field types for {@link DirectAnswer.fieldType}. + * + * @public + */ +export enum BuiltInFieldType { + URL = 'url', + ComplexURL = 'complex_url', + IOSAppURL = 'ios_app_url', + AndroidAppURL = 'android_app_url', + FacebookURL = 'facebook_url', + Email = 'email', + InstagramHandle = 'instagram_handle', + TwitterHandle = 'twitter_handle', + Phone = 'phone', + Address = 'address', + Hours = 'hours', + Decimal = 'decimal', + Integer = 'integer', + SingleLineText = 'single_line_text', + RichText = 'rich_text', + MultiLineText = 'multi_line_text' +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/DirectAnswer.ts b/src/models/searchservice/response/directanswer/DirectAnswer.ts new file mode 100644 index 00000000..a4d38b45 --- /dev/null +++ b/src/models/searchservice/response/directanswer/DirectAnswer.ts @@ -0,0 +1,28 @@ +import { Result } from '../Result'; +import { DirectAnswerType } from './DirectAnswerType'; +import { BuiltInFieldType } from './BuiltInFieldType'; +import { EnumOrLiteral } from '../../../utils/EnumOrLiteral'; + +/** + * A direct answer to a search. + * + * @public + */ +export interface DirectAnswer { + /** The {@link DirectAnswerType}. */ + type: DirectAnswerType, + /** + * The value of the direct answer. + * + * @remarks + * A value will not be present if the {@link DirectAnswer."type"} is 'FEATURED_SNIPPET' + * and {@link DirectAnswer.fieldType} is 'rich_text'. + */ + value?: T, + /** The entity associated with the direct answer. */ + relatedResult: Result, + /** The vertical key of the direct answer. */ + verticalKey: string, + /** The field type of the direct answer. */ + fieldType: EnumOrLiteral | 'unknown' +} diff --git a/src/models/searchservice/response/DirectAnswerType.ts b/src/models/searchservice/response/directanswer/DirectAnswerType.ts similarity index 100% rename from src/models/searchservice/response/DirectAnswerType.ts rename to src/models/searchservice/response/directanswer/DirectAnswerType.ts diff --git a/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts new file mode 100644 index 00000000..ec48022f --- /dev/null +++ b/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts @@ -0,0 +1,31 @@ +import { DirectAnswer } from './DirectAnswer'; +import { DirectAnswerType } from './DirectAnswerType'; +import { Snippet } from '../Snippet'; +import { BuiltInFieldType } from './BuiltInFieldType'; +import { EnumOrLiteral } from '../../../utils/EnumOrLiteral'; +import { + MultiLineTextSnippetDirectAnswer, + RichTextSnippetDirectAnswer +} from './featuredsnippetdirectanswers'; + +/** + * A direct answer which was found within a document. + * + * @public + */ +export interface BaseFeaturedSnippetDirectAnswer extends DirectAnswer { + /** {@inheritDoc DirectAnswerType.FeaturedSnippet} */ + type: DirectAnswerType.FeaturedSnippet, + /** {@inheritDoc DirectAnswer.fieldType} */ + fieldType: EnumOrLiteral, + /** The snippet where the direct answer was found. */ + snippet: Snippet +} + +/** + * All possible built-in {@link BaseFeaturedSnippetDirectAnswer} interfaces. + * + * @public + */ +export type FeaturedSnippetDirectAnswer = + MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; diff --git a/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts new file mode 100644 index 00000000..411a783e --- /dev/null +++ b/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts @@ -0,0 +1,41 @@ +import { + UnknownFieldValueDirectAnswer, + DecimalDirectAnswer, + InstagramHandleDirectAnswer, + IosAppUrlDirectAnswer, + AndroidAppUrlDirectAnswer, + TwitterHandleDirectAnswer, + FacebookUrlDirectAnswer, + RichTextDirectAnswer, + UrlDirectAnswer, + TextDirectAnswer, + ComplexUrlDirectAnswer, + IntegerDirectAnswer, + PhoneDirectAnswer, + EmailDirectAnswer, + AddressDirectAnswer, + HoursDirectAnswer +} from './fieldvaluedirectanswers'; + +/** + * Possible built-in and custom {@link BaseFieldValueDirectAnswer} interfaces. + * + * @public + */ +export type FieldValueDirectAnswer = + UnknownFieldValueDirectAnswer | + TextDirectAnswer | + UrlDirectAnswer | + RichTextDirectAnswer | + DecimalDirectAnswer | + FacebookUrlDirectAnswer | + InstagramHandleDirectAnswer | + TwitterHandleDirectAnswer | + IosAppUrlDirectAnswer | + AndroidAppUrlDirectAnswer | + ComplexUrlDirectAnswer | + IntegerDirectAnswer | + PhoneDirectAnswer | + EmailDirectAnswer | + AddressDirectAnswer | + HoursDirectAnswer; diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextSnippetDirectAnswer.ts new file mode 100644 index 00000000..c3c4a2e4 --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextSnippetDirectAnswer.ts @@ -0,0 +1,15 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFeaturedSnippetDirectAnswer } from '../FeaturedSnippetDirectAnswer'; + +/** + * A {@link BaseFeaturedSnippetDirectAnswer} with 'multi_line_text' field type. + * + * @public + */ +export interface MultiLineTextSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer { + /** The value of the direct answer. */ + value: string, + /** {@inheritDoc DirectAnswer.fieldType} */ + fieldType: EnumOrLiteral +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextSnippetDirectAnswer.ts new file mode 100644 index 00000000..fe60225a --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextSnippetDirectAnswer.ts @@ -0,0 +1,14 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFeaturedSnippetDirectAnswer } from '../FeaturedSnippetDirectAnswer'; + +/** + * A {@link BaseFeaturedSnippetDirectAnswer} with 'rich_text' field type. + * "value" field is omitted for featured snippet direct answer of this field type. + * + * @public + */ +export interface RichTextSnippetDirectAnswer extends Omit, 'value'> { + /** {@inheritDoc DirectAnswer.fieldType} */ + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts new file mode 100644 index 00000000..61b085e5 --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts @@ -0,0 +1,2 @@ +export { RichTextSnippetDirectAnswer } from './RichTextSnippetDirectAnswer'; +export { MultiLineTextSnippetDirectAnswer } from './MultiLineTextSnippetDirectAnswer'; diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/AddressDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/AddressDirectAnswer.ts new file mode 100644 index 00000000..087e7de2 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/AddressDirectAnswer.ts @@ -0,0 +1,29 @@ +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; + +/** + * A {@link BaseFieldValueDirectAnswer} interface with 'address' field type. + * + * @public + */ +export interface AddressDirectAnswer extends BaseFieldValueDirectAnswer
{ + fieldType: EnumOrLiteral +} + +/** + * An interface with address fields to use in {@link BaseFieldValueDirectAnswer.value}. + * + * @public + */ +export interface Address { + line1?: string, + line2?: string, + line3?: string, + sublocality?: string, + city?: string, + region?: string, + postalCode?: string, + extraDescription?: string, + countryCode: string +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/AndroidAppUrlDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/AndroidAppUrlDirectAnswer.ts new file mode 100644 index 00000000..e83b73a2 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/AndroidAppUrlDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for an android app url field. + * + * @public + */ +export interface AndroidAppUrlDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/ComplexUrlDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/ComplexUrlDirectAnswer.ts new file mode 100644 index 00000000..e9c9a4c8 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/ComplexUrlDirectAnswer.ts @@ -0,0 +1,23 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for a complex url field. + * + * @public + */ +export interface ComplexUrlDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} + +/** + * The shape of a {@link BuiltInFieldType.ComplexURL} DirectAnswer value + * + * @public + */ +export interface ComplexURL { + url: string, + displayUrl?: string, + preferDisplayUrl: boolean +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/DecimalDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/DecimalDirectAnswer.ts new file mode 100644 index 00000000..0f9968fb --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/DecimalDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for a decimal field, which is a number represented using a string. + * + * @public + */ +export interface DecimalDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/EmailDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/EmailDirectAnswer.ts new file mode 100644 index 00000000..02c2b037 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/EmailDirectAnswer.ts @@ -0,0 +1,12 @@ +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; + +/** + * A {@link BaseFieldValueDirectAnswer} interface with 'email' field type. + * + * @public + */ +export interface EmailDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/FacebookUrlDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/FacebookUrlDirectAnswer.ts new file mode 100644 index 00000000..9a3fc7f5 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/FacebookUrlDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for a facebook url field. + * + * @public + */ +export interface FacebookUrlDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/HoursDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/HoursDirectAnswer.ts new file mode 100644 index 00000000..61729fb9 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/HoursDirectAnswer.ts @@ -0,0 +1,61 @@ +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; + +/** + * A {@link BaseFieldValueDirectAnswer} interface with 'hours' field type. + * + * @public + */ +export interface HoursDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} + +/** + * An interface for hours fields to use in {@link BaseFieldValueDirectAnswer.value}. + * + * @public + */ +export interface Hours { + monday?: DayHour, + tuesday?: DayHour, + wednesday?: DayHour, + thursday?: DayHour, + friday?: DayHour, + saturday?: DayHour, + sunday?: DayHour, + holidayHours?: HolidayHours[], + reopenDate?: string +} + +/** + * An interface for a day's hours to use in {@link BaseFieldValueDirectAnswer.value}. + * + * @public + */ +export interface DayHour { + openIntervals?: Interval[], + isClosed?: boolean +} + +/** + * An interface for holiday hours to use in {@link BaseFieldValueDirectAnswer.value}. + * + * @public + */ +export interface HolidayHours { + date: string, + openIntervals?: Interval[], + isClosed?: boolean, + isRegularHours?: boolean +} + +/** + * An interface for a time interval to use in {@link BaseFieldValueDirectAnswer.value}. + * + * @public + */ +export interface Interval { + start?: string, + end?: string +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/InstagramHandleDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/InstagramHandleDirectAnswer.ts new file mode 100644 index 00000000..e39149e6 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/InstagramHandleDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for an instagram handle field. + * + * @public + */ +export interface InstagramHandleDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/IntegerDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/IntegerDirectAnswer.ts new file mode 100644 index 00000000..96116622 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/IntegerDirectAnswer.ts @@ -0,0 +1,16 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for an integer field. + * + * @remarks + * `IntegerDirectAnswer`s are only used for built in number fields. + * Custom number fields use {@link DecimalDirectAnswer} instead. + * + * @public + */ +export interface IntegerDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/IosAppUrlDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/IosAppUrlDirectAnswer.ts new file mode 100644 index 00000000..278c1417 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/IosAppUrlDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for an iOS app url field. + * + * @public + */ +export interface IosAppUrlDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/PhoneDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/PhoneDirectAnswer.ts new file mode 100644 index 00000000..c1bdb587 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/PhoneDirectAnswer.ts @@ -0,0 +1,11 @@ +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; + +/** + * A {@link BaseFieldValueDirectAnswer} interface with phone value. + * + * @public + */ +export interface PhoneDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: BuiltInFieldType.Phone +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/RichTextDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/RichTextDirectAnswer.ts new file mode 100644 index 00000000..dd5e12ca --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/RichTextDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for a rich text field. + * + * @public + */ +export interface RichTextDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/TextDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/TextDirectAnswer.ts new file mode 100644 index 00000000..9aa5d0a0 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/TextDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer whose source is a string or string list field in the knowledge graph. + * + * @public + */ +export interface TextDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/TwitterHandleDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/TwitterHandleDirectAnswer.ts new file mode 100644 index 00000000..131b1a7b --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/TwitterHandleDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for an twitter handle field. + * + * @public + */ +export interface TwitterHandleDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UnknownFieldValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UnknownFieldValueDirectAnswer.ts new file mode 100644 index 00000000..154e8b52 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UnknownFieldValueDirectAnswer.ts @@ -0,0 +1,11 @@ +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; + +/** + * A {@link BaseFieldValueDirectAnswer} with a field type outside of {@link BuiltInFieldType}. + * + * @public + */ +export interface UnknownFieldValueDirectAnswer extends BaseFieldValueDirectAnswer{ + /** {@inheritDoc DirectAnswer.fieldType} */ + fieldType: 'unknown' +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UrlDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UrlDirectAnswer.ts new file mode 100644 index 00000000..6466669a --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UrlDirectAnswer.ts @@ -0,0 +1,12 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; +import { BuiltInFieldType } from '../BuiltInFieldType'; + +/** + * A direct answer for a simple url field. + * + * @public + */ +export interface UrlDirectAnswer extends BaseFieldValueDirectAnswer { + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts new file mode 100644 index 00000000..4b0bf664 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts @@ -0,0 +1,16 @@ +export { UnknownFieldValueDirectAnswer } from './UnknownFieldValueDirectAnswer'; +export { DecimalDirectAnswer } from './DecimalDirectAnswer'; +export { InstagramHandleDirectAnswer } from './InstagramHandleDirectAnswer'; +export { IosAppUrlDirectAnswer } from './IosAppUrlDirectAnswer'; +export { AndroidAppUrlDirectAnswer } from './AndroidAppUrlDirectAnswer'; +export { TwitterHandleDirectAnswer } from './TwitterHandleDirectAnswer'; +export { FacebookUrlDirectAnswer } from './FacebookUrlDirectAnswer'; +export { RichTextDirectAnswer } from './RichTextDirectAnswer'; +export { UrlDirectAnswer } from './UrlDirectAnswer'; +export { TextDirectAnswer } from './TextDirectAnswer'; +export { ComplexUrlDirectAnswer, ComplexURL } from './ComplexUrlDirectAnswer'; +export { IntegerDirectAnswer } from './IntegerDirectAnswer'; +export { AddressDirectAnswer, Address } from './AddressDirectAnswer'; +export { PhoneDirectAnswer } from './PhoneDirectAnswer'; +export { EmailDirectAnswer } from './EmailDirectAnswer'; +export { HoursDirectAnswer, Hours, HolidayHours, DayHour, Interval } from './HoursDirectAnswer'; diff --git a/src/models/utils/EnumOrLiteral.ts b/src/models/utils/EnumOrLiteral.ts new file mode 100644 index 00000000..b630513e --- /dev/null +++ b/src/models/utils/EnumOrLiteral.ts @@ -0,0 +1,7 @@ +/** + * Produces a union type from the enum passed as a generic which consists of the enum values + * and the string literals of the enum. + * + * @public + */ +export type EnumOrLiteral = T | `${T}`; diff --git a/src/serializers/serializeFacets.ts b/src/serializers/serializeFacets.ts index c9181e34..ab68dd55 100644 --- a/src/serializers/serializeFacets.ts +++ b/src/serializers/serializeFacets.ts @@ -1,6 +1,6 @@ import { Facet, FacetOption } from '../models/searchservice/request/Facet'; import { ApiStaticFilters } from '../models/searchservice/request/ApiStaticFilters'; -import { shapeFilterForApi } from './serializeStaticFilters'; +import { shapeFieldValueFilterForApi } from './serializeStaticFilters'; export function serializeFacets(filters: Facet[]): string { return JSON.stringify(filters.reduce>((obj, facet) => { @@ -13,6 +13,6 @@ export function serializeFacets(filters: Facet[]): string { function shapeFacetOptionArrayForApi(options: FacetOption[], fieldId: string): ApiStaticFilters[] { return options.map((option) => { - return shapeFilterForApi({ ...option, fieldId: fieldId }); + return shapeFieldValueFilterForApi({ ...option, fieldId: fieldId }); }); } \ No newline at end of file diff --git a/src/serializers/serializeFilterSearch.ts b/src/serializers/serializeFilterSearch.ts index dc533e15..2700e618 100644 --- a/src/serializers/serializeFilterSearch.ts +++ b/src/serializers/serializeFilterSearch.ts @@ -1,5 +1,5 @@ import { SearchParameterField } from '../models/autocompleteservice/AutocompleteRequest'; -import { Filter } from '../models/searchservice/request/Filter'; +import { FieldValueFilter } from '../models/searchservice/request/FieldValueFilter'; export function serializeSearchParameterFields(fields: SearchParameterField[]) { return fields.map(({ fieldApiName, entityType, fetchEntities }) => ( @@ -11,7 +11,7 @@ export function serializeSearchParameterFields(fields: SearchParameterField[]) { )); } -export function serializeExcludedFields(excludedFields?: Filter[]) { +export function serializeExcludedFields(excludedFields?: FieldValueFilter[]) { return excludedFields?.map(({ fieldId, matcher, value }) => ( { [fieldId]: { diff --git a/src/serializers/serializeStaticFilters.ts b/src/serializers/serializeStaticFilters.ts index df13a525..1fe8da67 100644 --- a/src/serializers/serializeStaticFilters.ts +++ b/src/serializers/serializeStaticFilters.ts @@ -1,32 +1,39 @@ import { isNumberRangeValue } from '../models/searchservice/common/NumberRangeValue'; -import { CombinedFilter } from '../models/searchservice/request/CombinedFilter'; -import { Filter } from '../models/searchservice/request/Filter'; +import { FilterCombinator, StaticFilter } from '../models/searchservice/request/StaticFilter'; +import { FieldValueFilter } from '../models/searchservice/request/FieldValueFilter'; import { ApiStaticFilters, ApiFilter } from '../models/searchservice/request/ApiStaticFilters'; -export function serializeStaticFilters( - filter: CombinedFilter | Filter): string | undefined { - if (isCombinedFilter(filter)) { - return JSON.stringify(shapeCombinedFilterForApi(filter)); +export function serializeStaticFilters(filter: StaticFilter): string | undefined { + if (filter.kind !== 'fieldValue') { + const shapedFilter = shapeCombinedFilterForApi(filter.combinator, filter.filters); + return shapedFilter && JSON.stringify(shapedFilter); } - return JSON.stringify(shapeFilterForApi(filter)); + return JSON.stringify(shapeFieldValueFilterForApi(filter)); } -function shapeCombinedFilterForApi(combinedFilter: CombinedFilter): ApiStaticFilters { +function shapeCombinedFilterForApi( + combinator: FilterCombinator, + filters: StaticFilter[] +): ApiStaticFilters | undefined { const shapedFilters: ApiStaticFilters[] = []; - for (const filter of combinedFilter.filters) { - if (isCombinedFilter(filter)) { - shapedFilters.push(shapeCombinedFilterForApi(filter)); + for (const filter of filters) { + if (filter.kind !== 'fieldValue') { + const shapedFilter = shapeCombinedFilterForApi(filter.combinator, filter.filters); + shapedFilter && shapedFilters.push(shapedFilter); } else { - shapedFilters.push(shapeFilterForApi(filter)); + shapedFilters.push(shapeFieldValueFilterForApi(filter)); } } - return shapedFilters.length === 1 - ? shapedFilters[0] - : { [combinedFilter.combinator]: shapedFilters }; + + return shapedFilters.length === 0 + ? undefined + : shapedFilters.length === 1 + ? shapedFilters[0] + : { [combinator]: shapedFilters }; } -export function shapeFilterForApi(filter: Filter): ApiStaticFilters { +export function shapeFieldValueFilterForApi(filter: FieldValueFilter): ApiStaticFilters { let filterValues: ApiFilter = {}; if (isNumberRangeValue(filter.value)) { if (filter.value.start) { @@ -42,8 +49,3 @@ export function shapeFilterForApi(filter: Filter): ApiStaticFilters { [filter.fieldId]: filterValues }; } - -function isCombinedFilter(filter: CombinedFilter | Filter): filter is CombinedFilter { - return ((filter as CombinedFilter).filters !== undefined) - && ((filter as CombinedFilter).combinator !== undefined); -} \ No newline at end of file diff --git a/src/transformers/autocompleteservice/createAutocompleteResult.ts b/src/transformers/autocompleteservice/createAutocompleteResult.ts index 0dc4d56a..e47f83a3 100644 --- a/src/transformers/autocompleteservice/createAutocompleteResult.ts +++ b/src/transformers/autocompleteservice/createAutocompleteResult.ts @@ -1,6 +1,6 @@ import { AutocompleteResult } from '../../models/autocompleteservice/AutocompleteResponse'; import { Source } from '../../models/searchservice/response/Source'; -import { createFilter } from '../core/createFilter'; +import { createFieldValueFilter } from '../core/createFieldValueFilter'; import { ResultsFactory } from '../searchservice/ResultsFactory'; export function createAutocompleteResult(result: any): AutocompleteResult { @@ -8,7 +8,7 @@ export function createAutocompleteResult(result: any): AutocompleteResult { ? ResultsFactory.create([result.relatedItem], Source.KnowledgeManager)[0] : result.relatedItem; return { - filter: result.filter && createFilter(result.filter), + filter: result.filter && createFieldValueFilter(result.filter), key: result.key, matchedSubstrings: result.matchedSubstrings || [], value: result.value, diff --git a/src/transformers/core/createFilter.ts b/src/transformers/core/createFieldValueFilter.ts similarity index 86% rename from src/transformers/core/createFilter.ts rename to src/transformers/core/createFieldValueFilter.ts index 98ff4fdb..e02856df 100644 --- a/src/transformers/core/createFilter.ts +++ b/src/transformers/core/createFieldValueFilter.ts @@ -1,8 +1,8 @@ -import { Filter, NearFilterValue } from '../../models/searchservice/request/Filter'; +import { FieldValueFilter, NearFilterValue } from '../../models/searchservice/request/FieldValueFilter'; import { Matcher } from '../../models/searchservice/common/Matcher'; import { NumberRangeValue } from '../../models/searchservice/common/NumberRangeValue'; -export function createFilter(filter: any): Filter { +export function createFieldValueFilter(filter: any): FieldValueFilter { const fieldId = Object.keys(filter)[0]; const matcher = Object.keys(filter[fieldId])[0]; let value: string | number | boolean | NearFilterValue | NumberRangeValue; diff --git a/src/transformers/searchservice/createAppliedQueryFilter.ts b/src/transformers/searchservice/createAppliedQueryFilter.ts index 41421217..a84d140b 100644 --- a/src/transformers/searchservice/createAppliedQueryFilter.ts +++ b/src/transformers/searchservice/createAppliedQueryFilter.ts @@ -1,11 +1,11 @@ import { AppliedQueryFilter } from '../../models/searchservice/response/AppliedQueryFilter'; -import { createFilter } from '../core/createFilter'; +import { createFieldValueFilter } from '../core/createFieldValueFilter'; export function createAppliedQueryFilter(data: any): AppliedQueryFilter { return { displayKey: data.displayKey, displayValue: data.displayValue, - filter: createFilter(data.filter), + filter: createFieldValueFilter(data.filter), type: data.type, ...(data.details && { details: data.details }) }; diff --git a/src/transformers/searchservice/createDirectAnswer.ts b/src/transformers/searchservice/createDirectAnswer.ts index fdc1cc40..b964b1d5 100644 --- a/src/transformers/searchservice/createDirectAnswer.ts +++ b/src/transformers/searchservice/createDirectAnswer.ts @@ -1,7 +1,8 @@ -import { FeaturedSnippetDirectAnswer } from '../../models/searchservice/response/FeaturedSnippetDirectAnswer'; -import { FieldValueDirectAnswer } from '../../models/searchservice/response/FieldValueDirectAnswer'; -import { DirectAnswerType } from '../../models/searchservice/response/DirectAnswerType'; +import { FeaturedSnippetDirectAnswer } from '../../models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer'; +import { FieldValueDirectAnswer } from '../../models/searchservice/response/directanswer/FieldValueDirectAnswer'; +import { DirectAnswerType } from '../../models/searchservice/response/directanswer/DirectAnswerType'; import { ResultsFactory } from './ResultsFactory'; +import { BuiltInFieldType } from '../../models/searchservice/response/directanswer/BuiltInFieldType'; export function createDirectAnswer(data: any): FeaturedSnippetDirectAnswer | FieldValueDirectAnswer { const isFieldValueDirectAnswer = data?.type === DirectAnswerType.FieldValue; @@ -11,7 +12,7 @@ export function createDirectAnswer(data: any): FeaturedSnippetDirectAnswer | Fie value: data.answer.value, relatedResult: ResultsFactory.fromDirectAnswer(data.relatedItem.data), verticalKey: data.relatedItem.verticalConfigId, - fieldType: data.answer.fieldType + fieldType: Object.values(BuiltInFieldType).includes(data.answer.fieldType) ? data.answer.fieldType : 'unknown' }; if (isFieldValueDirectAnswer) { @@ -23,12 +24,16 @@ export function createDirectAnswer(data: any): FeaturedSnippetDirectAnswer | Fie fieldApiName: data.answer.fieldApiName, }; } else if (isFeaturedSnippetDirectAnswer) { + const fieldType = commonDirectAnswerData.fieldType; + if (fieldType != BuiltInFieldType.MultiLineText && fieldType != BuiltInFieldType.RichText) { + throw new Error(`Unexpected fieldType for featured snippet direct answer: ${fieldType}`); + } return { type: DirectAnswerType.FeaturedSnippet, ...commonDirectAnswerData, snippet: data.answer.snippet }; } else { - throw new Error('The Search API returned an unknown direct answer type'); + throw new Error(`The Search API returned an unknown direct answer type: ${data?.type}`); } } \ No newline at end of file diff --git a/src/transformers/searchservice/createFacets.ts b/src/transformers/searchservice/createFacets.ts index 19d97e81..e928ba6d 100644 --- a/src/transformers/searchservice/createFacets.ts +++ b/src/transformers/searchservice/createFacets.ts @@ -1,6 +1,6 @@ import { NumberRangeValue } from '../../models/searchservice/common/NumberRangeValue'; import { DisplayableFacet, DisplayableFacetOption } from '../../models/searchservice/response/DisplayableFacet'; -import { createFilter } from '../core/createFilter'; +import { createFieldValueFilter } from '../core/createFieldValueFilter'; export function createFacets(facets: any): DisplayableFacet[] { if (!facets) { @@ -16,7 +16,7 @@ export function createFacets(facets: any): DisplayableFacet[] { function createFacetOptions(options: any[]): DisplayableFacetOption[] { return options.map((option: any) => { - const filter = createFilter(option.filter); + const filter = createFieldValueFilter(option.filter); return { displayName: option.displayName, diff --git a/test-site/index.html b/test-site/index.html index 0c435a86..5bc1868c 100644 --- a/test-site/index.html +++ b/test-site/index.html @@ -6,6 +6,7 @@ + diff --git a/test-site/src/js/index.js b/test-site/src/js/index.js index 8ce2e33b..19a7ed73 100644 --- a/test-site/src/js/index.js +++ b/test-site/src/js/index.js @@ -3,7 +3,7 @@ import { provideCore } from '@yext/search-core'; import verticalRequest from './requests/verticalRequest'; import universalRequest from './requests/universalRequest'; import questionRequest from './requests/questionRequest'; -import { univeralAutocompleteRequest, verticalAutocompleteRequest, filterSearchRequest } from './requests/autoCompleteRequests'; +import { univeralAutocompleteRequest, verticalAutocompleteRequest, filterSearchRequest } from './requests/autocompleteRequests'; const coreConfig = { apiKey: 'df4b24f4075800e5e9705090c54c6c13', diff --git a/test-site/src/ts/index.ts b/test-site/src/ts/index.ts index 675ac3cb..b844a45f 100644 --- a/test-site/src/ts/index.ts +++ b/test-site/src/ts/index.ts @@ -1,8 +1,9 @@ -import { provideCore, SearchConfig, SearchCore } from '@yext/search-core'; +import { provideCore, SearchConfig, SearchCore, UniversalSearchRequest, UniversalSearchResponse } from '@yext/search-core'; import verticalRequest from './requests/verticalRequest'; import universalRequest from './requests/universalRequest'; import questionRequest from './requests/questionRequest'; import { univeralAutocompleteRequest, verticalAutocompleteRequest, filterSearchRequest } from './requests/autocompleteRequests'; +import initDirectAnswers from './initDirectAnswers'; const coreConfig: SearchConfig = { apiKey: '2d8c550071a64ea23e263118a2b0680b', @@ -14,10 +15,20 @@ const coreConfig: SearchConfig = { const element = document.createElement('pre'); window.onload = () => { document.body.appendChild(element); + initDirectAnswers(); }; const globalCore: SearchCore = provideCore(coreConfig); +export async function directAnswer(query: string): Promise { + loadingSpinner(); + const startTime = new Date().getTime(); + const req: UniversalSearchRequest = { query }; + const res: UniversalSearchResponse = await globalCore.universalSearch(req); + updateUI(res.directAnswer, startTime, 'Universal Direct Answer Response:'); + return res; +} + export async function universalSearch(): Promise { loadingSpinner(); const startTime = new Date().getTime(); diff --git a/test-site/src/ts/initDirectAnswers.ts b/test-site/src/ts/initDirectAnswers.ts new file mode 100644 index 00000000..056bd593 --- /dev/null +++ b/test-site/src/ts/initDirectAnswers.ts @@ -0,0 +1,168 @@ +import { BuiltInFieldType, DirectAnswerType, FeaturedSnippetDirectAnswer, FieldValueDirectAnswer } from '@yext/search-core'; +import { directAnswer } from './index'; + +/** + * The comments denote the expected {@link DirectAnswer.value} type. + */ +const FEATURED_SNIPPET_QUERIES = { + [BuiltInFieldType.MultiLineText]: [ + 'what is oliver shi’s birthday', // string + 'who is chihaya ayase' // string + ], + [BuiltInFieldType.RichText]: [ + 'how to rich text' // no value + ] +}; +const FIELD_VALUE_QUERIES = { + [BuiltInFieldType.URL]: [ + 'what is Abington\'s myurl ', // string + 'what are oliver shi\'s list of urls?' // string[] + ], + [BuiltInFieldType.SingleLineText]: [ + 'Abington Services Offered' // string[] + ], + [BuiltInFieldType.Decimal]: [ + 'oliver shi popularity', // string + 'what are oliver shi\'s favorite numbers?' // string[] + ], + [BuiltInFieldType.AndroidAppURL]: [ + 'what is oliver shi\'s android app url?' // string + ], + [BuiltInFieldType.FacebookURL]: [ + 'what is oliver shi\'s facebook url?' // string + ], + [BuiltInFieldType.IOSAppURL]: [ + 'what is oliver shi\'s ios app url?' // string + ], + [BuiltInFieldType.InstagramHandle]: [ + 'what is oliver shi\'s instagram handle?' // string + ], + [BuiltInFieldType.TwitterHandle]: [ + 'what is oliver shi\'s twitter handle?' // string + ], + [BuiltInFieldType.RichText]: [ + 'oliver shi my rich text field', // string + 'oliver shi multi line rich text' // string[] + ], + [BuiltInFieldType.ComplexURL]: [ + 'oliver shi website url' // ComplexUrl + ], + [BuiltInFieldType.Integer]: [ + 'oliver shi outdoor pools?' // number + ], + [BuiltInFieldType.Address]: [ + 'oliver shi address?' // Address + ], + [BuiltInFieldType.Phone]: [ + 'amani farooque phone number?' // string + ], + [BuiltInFieldType.Email]: [ + 'oliver shi email' // string[] + ], + [BuiltInFieldType.Hours]: [ + 'what are Abington hours?' + ] +}; + +export default function initDirectAnswers() { + const selectEl = document.getElementById('directAnswers'); + if (!(selectEl instanceof HTMLSelectElement)) { + console.error('no select el found'); + return; + } + const possibleQueries = [ + ...Object.values(FEATURED_SNIPPET_QUERIES).flatMap(v => v), + ...Object.values(FIELD_VALUE_QUERIES).flatMap(v => v) + ]; + + possibleQueries.forEach(q => { + const optionEl = document.createElement('option'); + optionEl.innerText = q; + selectEl.appendChild(optionEl); + }); + + selectEl.addEventListener('change', async e => { + const val = (e.target as HTMLSelectElement).value; + const res = await directAnswer(val); + const da = res.directAnswer; + if (da.type === DirectAnswerType.FieldValue) { + ensureFieldValueSwitchability(da); + } else if (da.type === DirectAnswerType.FeaturedSnippet) { + ensureFeaturedSnippetSwitchability(da); + } + }); +} + +/** + * This function will only compile if every direct answer case can be switched over, + * otherwise `da` will have type `never`, which will cause a compile time error when + * trying to access `da.value`. + */ +function ensureFieldValueSwitchability(da: FieldValueDirectAnswer) { + switch (da.fieldType) { + case BuiltInFieldType.AndroidAppURL: + console.log(da.value); + break; + case BuiltInFieldType.Decimal: + console.log(da.value); + break; + case BuiltInFieldType.FacebookURL: + console.log(da.value); + break; + case BuiltInFieldType.IOSAppURL: + console.log(da.value); + break; + case BuiltInFieldType.InstagramHandle: + console.log(da.value); + break; + case BuiltInFieldType.MultiLineText: + console.log(da.value); + break; + case BuiltInFieldType.RichText: + console.log(da.value); + break; + case BuiltInFieldType.SingleLineText: + console.log(da.value); + break; + case BuiltInFieldType.TwitterHandle: + console.log(da.value); + break; + case BuiltInFieldType.URL: + console.log(da.value); + break; + case BuiltInFieldType.ComplexURL: + console.log(da.value); + break; + case BuiltInFieldType.Integer: + console.log(da.value); + break; + case BuiltInFieldType.Address: + console.log(da.value); + break; + case BuiltInFieldType.Phone: + console.log(da.value); + break; + case BuiltInFieldType.Email: + console.log(da.value); + break; + case BuiltInFieldType.Hours: + console.log(da.value); + break; + } +} + +/** + * This function will only compile if every direct answer case can be switched over, + * otherwise `da` will have type `never`, which will cause a compile time error when + * trying to access properties like `da.value` or `da.snippet`. + */ +function ensureFeaturedSnippetSwitchability(da: FeaturedSnippetDirectAnswer) { + switch (da.fieldType) { + case BuiltInFieldType.RichText: + console.log(da.snippet); + break; + case BuiltInFieldType.MultiLineText: + console.log(da.value); + break; + } +} diff --git a/test-site/tsconfig.json b/test-site/tsconfig.json index 14649b15..6d28410b 100644 --- a/test-site/tsconfig.json +++ b/test-site/tsconfig.json @@ -4,6 +4,6 @@ "noImplicitAny": true, "module": "commonjs", "esModuleInterop": true, - "target": "es2015", + "target": "es2019", } } \ No newline at end of file diff --git a/tests/infra/SearchServiceImpl.ts b/tests/infra/SearchServiceImpl.ts index 3395c364..5460b3eb 100644 --- a/tests/infra/SearchServiceImpl.ts +++ b/tests/infra/SearchServiceImpl.ts @@ -74,7 +74,7 @@ describe('SearchService', () => { }); describe('Universal Search', () => { - const expectedUniversalUrl = 'https://liveapi.yext.com/v2/accounts/me/answers/query'; + const expectedUniversalUrl = 'https://liveapi.yext.com/v2/accounts/me/search/query'; it('Query params are correct when only required params (without token) are supplied', async () => { const requestWithRequiredParams: UniversalSearchRequest = { @@ -200,7 +200,7 @@ describe('SearchService', () => { }); describe('Vertical Search', () => { - const expectedVerticalUrl = 'https://liveapi.yext.com/v2/accounts/me/answers/vertical/query'; + const expectedVerticalUrl = 'https://liveapi.yext.com/v2/accounts/me/search/vertical/query'; it('Query params are correct when only required params (without token) are supplied', async () => { const requestWithRequiredParams: VerticalSearchRequest = { @@ -274,7 +274,8 @@ describe('SearchService', () => { field: 'name', type: SortType.Field }], - staticFilters: { + staticFilter: { + kind: 'fieldValue', fieldId: 'city', matcher: Matcher.NotEquals, value: 'Arlington' diff --git a/tests/serializers/serializeStaticFilters.ts b/tests/serializers/serializeStaticFilters.ts index bc5684c0..98523b2b 100644 --- a/tests/serializers/serializeStaticFilters.ts +++ b/tests/serializers/serializeStaticFilters.ts @@ -1,19 +1,66 @@ import { Matcher } from '../../src/models/searchservice/common/Matcher'; -import { FilterCombinator } from '../../src/models/searchservice/request/CombinedFilter'; +import { FilterCombinator } from '../../src/models/searchservice/request/StaticFilter'; import { serializeStaticFilters } from '../../src/serializers/serializeStaticFilters'; it('serializeStaticFilters works with multiple levels of nesting', () => { const actualSerializedFilters = serializeStaticFilters({ + kind: 'conjunction', filters: [ { + kind: 'disjunction', filters: [ - { fieldId: 'c_Region', matcher: Matcher.Equals, value: 'APAC' }, - { fieldId: 'c_Region', matcher: Matcher.Equals, value: 'EMEA' } + { + kind: 'fieldValue', + fieldId: 'c_Region', + matcher: Matcher.Equals, + value: 'APAC' + }, + { + kind: 'disjunction', + filters: [ + { + kind: 'fieldValue', + fieldId: 'c_Region', + matcher: Matcher.Equals, + value: 'EMEA' + }, + { + kind: 'fieldValue', + fieldId: 'c_puppyPreference', + matcher: Matcher.Equals, + value: 'Frodo' + } + ], + combinator: FilterCombinator.OR + } ], combinator: FilterCombinator.OR }, - { fieldId: 'builtin.entityType', matcher: Matcher.Equals, value: 'Publication' }, + { + kind: 'fieldValue', + fieldId: 'builtin.entityType', + matcher: Matcher.Equals, + value: 'Publication' + }, + { + kind: 'conjunction', + filters: [ + { + kind: 'fieldValue', + fieldId: 'c_puppyPreference', + matcher: Matcher.Equals, + value: 'Marty' + }, + { + kind: 'fieldValue', + fieldId: 'c_employeeDepartment', + matcher: Matcher.Equals, + value: 'Technology' + }, + ], + combinator: FilterCombinator.AND + } ], combinator: FilterCombinator.AND }); @@ -23,20 +70,42 @@ it('serializeStaticFilters works with multiple levels of nesting', () => { { $or: [ { c_Region: { $eq: 'APAC' } }, - { c_Region: { $eq: 'EMEA' } } + { + $or: [ + { c_Region: { $eq: 'EMEA' } }, + { c_puppyPreference: { $eq: 'Frodo' } } + ] + } + ] + }, + { 'builtin.entityType': { $eq: 'Publication' } }, + { + $and: [ + { c_puppyPreference: { $eq: 'Marty' } }, + { c_employeeDepartment: { $eq: 'Technology' } } ] }, - { 'builtin.entityType': { $eq: 'Publication' } } ] }; expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); }); -it('serializeStaticFilters works with a simple Combined Filter', () => { +it('serializeStaticFilters works with a DisjunctionStaticFilter', () => { const actualSerializedFilters = serializeStaticFilters({ + kind: 'disjunction', filters: [ - { fieldId: 'c_Region', matcher: Matcher.Equals, value: 'APAC' }, - { fieldId: 'c_Region', matcher: Matcher.Equals, value: 'EMEA' } + { + kind: 'fieldValue', + fieldId: 'c_Region', + matcher: Matcher.Equals, + value: 'APAC' + }, + { + kind: 'fieldValue', + fieldId: 'c_Region', + matcher: Matcher.Equals, + value: 'EMEA' + } ], combinator: FilterCombinator.OR }); @@ -50,8 +119,38 @@ it('serializeStaticFilters works with a simple Combined Filter', () => { expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); }); -it('serializeStaticFilters works with only a Simple Filter', () => { +it('serializeStaticFilters works with a ConjunctionStaticFilter', () => { + const actualSerializedFilters = serializeStaticFilters({ + kind: 'conjunction', + filters: [ + { + kind: 'fieldValue', + fieldId: 'c_Region', + matcher: Matcher.Equals, + value: 'APAC' + }, + { + kind: 'fieldValue', + fieldId: 'builtin.entityType', + matcher: Matcher.Equals, + value: 'Publication' + } + ], + combinator: FilterCombinator.AND + }); + + const expectedSerializedFilters = { + $and: [ + { c_Region: { $eq: 'APAC' } }, + { 'builtin.entityType': { $eq: 'Publication' } } + ] + }; + expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); +}); + +it('serializeStaticFilters works with a FieldValueStaticFilter', () => { const actualSerializedFilters = serializeStaticFilters({ + kind: 'fieldValue', fieldId: 'c_Region', matcher: Matcher.Equals, value: 'APAC' @@ -61,8 +160,9 @@ it('serializeStaticFilters works with only a Simple Filter', () => { expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); }); -it('serializeStaticFilters works with a $near Simple filter', () => { +it('serializeStaticFilters works with a $near FieldValueStaticFilter', () => { const actualSerializedFilters = serializeStaticFilters({ + kind: 'fieldValue', fieldId: 'builtin.location', matcher: Matcher.Near, value: { @@ -84,9 +184,10 @@ it('serializeStaticFilters works with a $near Simple filter', () => { expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); }); -it('serializeStaticFilters works with a $between Simple filter', () => { +it('serializeStaticFilters works with a $between FieldValueStaticFilter', () => { const actualSerializedFilters = serializeStaticFilters( { + kind: 'fieldValue', fieldId: 'price', matcher: Matcher.Between, value: { @@ -102,9 +203,10 @@ it('serializeStaticFilters works with a $between Simple filter', () => { expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); }); -it('serializeStaticFilters works with only lower limit defined for a $between Simple filter', () => { +it('serializeStaticFilters works with only lower limit defined for a $between FieldValueStaticFilter', () => { const actualSerializedFilters = serializeStaticFilters( { + kind: 'fieldValue', fieldId: 'price', matcher: Matcher.Between, value: { @@ -118,9 +220,10 @@ it('serializeStaticFilters works with only lower limit defined for a $between Si expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); }); -it('serializeStaticFilters works with only upper limit defined for a $between Simple filter', () => { +it('serializeStaticFilters works with only upper limit defined for a $between FieldValueStaticFilter', () => { const actualSerializedFilters = serializeStaticFilters( { + kind: 'fieldValue', fieldId: 'price', matcher: Matcher.Between, value: { @@ -132,4 +235,57 @@ it('serializeStaticFilters works with only upper limit defined for a $between Si price: { $lt: 10 } }; expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); -}); \ No newline at end of file +}); + +it('serializeStaticFilters works with a nested filter with single or no children', () => { + const actualSerializedFilters = serializeStaticFilters({ + kind: 'conjunction', + filters: [ + { + kind: 'disjunction', + filters: [], + combinator: FilterCombinator.OR + }, + { + kind: 'fieldValue', + fieldId: 'builtin.entityType', + matcher: Matcher.Equals, + value: 'Publication' + }, + ], + combinator: FilterCombinator.AND + }); + + const expectedSerializedFilters = { + 'builtin.entityType': { $eq: 'Publication' } + }; + expect(actualSerializedFilters).toEqual(JSON.stringify(expectedSerializedFilters)); +}); + +it('serializeStaticFilters works with a DisjunctionStaticFilter with no children', () => { + const actualSerializedFilters = serializeStaticFilters({ + kind: 'disjunction', + filters: [], + combinator: FilterCombinator.OR + }); + + expect(actualSerializedFilters).toBeUndefined(); +}); + +it('serializeStaticFilters works with a nested ConjunctionStaticFilter with no children', () => { + const actualSerializedFilters = serializeStaticFilters({ + kind: 'conjunction', + filters: [{ + kind: 'conjunction', + filters: [], + combinator: FilterCombinator.AND + }, { + kind: 'disjunction', + filters: [], + combinator: FilterCombinator.OR + }], + combinator: FilterCombinator.AND + }); + + expect(actualSerializedFilters).toBeUndefined(); +}); diff --git a/tests/transformers/searchservice/createDirectAnswer.ts b/tests/transformers/searchservice/createDirectAnswer.ts index eb1d54fa..78b90aed 100644 --- a/tests/transformers/searchservice/createDirectAnswer.ts +++ b/tests/transformers/searchservice/createDirectAnswer.ts @@ -1,5 +1,5 @@ import { createDirectAnswer } from '../../../src/transformers/searchservice/createDirectAnswer'; -import { DirectAnswerType } from '../../../src/models/searchservice/response/DirectAnswerType'; +import { DirectAnswerType } from '../../../src/models/searchservice/response/directanswer/DirectAnswerType'; it('can create a FeaturedSnippetDirectAnswer', () => { const apiFeaturedSnippetDirectAnswer = { @@ -32,6 +32,26 @@ it('can create a FeaturedSnippetDirectAnswer', () => { expect(actualDirectAnswer).toMatchObject(expectedDirectAnswer); }); +it('can handle unexpected fieldType for a FeaturedSnippetDirectAnswer', () => { + const apiFeaturedSnippetDirectAnswer = { + type: 'FEATURED_SNIPPET', + answer: { + value: 'Honolulu. Hawaii', + fieldType: 'phone', + snippet: { + matchedSubstrings: [{ offset: 31, length: 16 }], + value: '111 222 3333' + } + }, + relatedItem: { + verticalConfigId: 'wiki_bios', + data: {} + } + }; + expect(() => createDirectAnswer(apiFeaturedSnippetDirectAnswer)) + .toThrow('Unexpected fieldType for featured snippet direct answer: phone'); +}); + it('can create a FieldValueDirectAnswer', () => { const apiFieldValueDirectAnswer = { type: 'FIELD_VALUE', @@ -59,4 +79,26 @@ it('can create a FieldValueDirectAnswer', () => { fieldType: 'phone' }; expect(actualDirectAnswer).toMatchObject(expectedDirectAnswer); +}); + +it('can create a custom FieldValueDirectAnswer', () => { + const apiFieldValueDirectAnswer = { + type: 'FIELD_VALUE', + answer: { + value: { + color: 'yellow', + os: 'android' + }, + entityName: 'Obama Phone', + fieldName: 'Phone Description', + fieldApiName: 'phoneDescription', + fieldType: 'c3350634.specialtype' + }, + relatedItem: { + verticalConfigId: 'phone', + data: {} + } + }; + const actualDirectAnswer = createDirectAnswer(apiFieldValueDirectAnswer); + expect(actualDirectAnswer).toMatchObject(expect.objectContaining({ fieldType: 'unknown' })); }); \ No newline at end of file