From f4066f215934a090ce9de810a48cdb5ee78b2a60 Mon Sep 17 00:00:00 2001 From: Oliver Shi Date: Tue, 16 Aug 2022 10:17:52 -0400 Subject: [PATCH 1/4] add additional string and string[] field value direct answers (#208) Each direct answer fieldType was manually tested and experimented with. I used the test-site to double check that every single BuiltInFieldType could be switch-cased over, and also added a bunch of test direct answer queries that I used to test. J=SLAP-2317,2311,2312,2309,2314 TEST=manual,auto added switch case to the test site, and updated github workflow to make sure test site always compiles manually tried all the queries I added to the test-site and verified the value matches --- .github/workflows/run-tests.yml | 12 ++ ...ore.androidappurldirectanswer.fieldtype.md | 11 ++ docs/search-core.androidappurldirectanswer.md | 21 +++ docs/search-core.builtinfieldtype.md | 7 + ...arch-core.decimaldirectanswer.fieldtype.md | 11 ++ docs/search-core.decimaldirectanswer.md | 21 +++ ...-core.facebookurldirectanswer.fieldtype.md | 11 ++ docs/search-core.facebookurldirectanswer.md | 21 +++ docs/search-core.fieldvaluedirectanswer.md | 4 +- ...e.instagramhandledirectanswer.fieldtype.md | 11 ++ ...search-core.instagramhandledirectanswer.md | 21 +++ ...ch-core.iosappurldirectanswer.fieldtype.md | 11 ++ docs/search-core.iosappurldirectanswer.md | 21 +++ docs/search-core.md | 9 ++ ...rch-core.richtextdirectanswer.fieldtype.md | 11 ++ docs/search-core.richtextdirectanswer.md | 21 +++ .../search-core.textdirectanswer.fieldtype.md | 11 ++ docs/search-core.textdirectanswer.md | 21 +++ ...ore.twitterhandledirectanswer.fieldtype.md | 11 ++ docs/search-core.twitterhandledirectanswer.md | 21 +++ docs/search-core.urldirectanswer.fieldtype.md | 11 ++ docs/search-core.urldirectanswer.md | 21 +++ etc/search-core.api.md | 72 +++++++++- src/models/index.ts | 7 +- .../response/directanswer/BuiltInFieldType.ts | 15 +- .../FeaturedSnippetDirectAnswer.ts | 27 +--- .../directanswer/FieldValueDirectAnswer.ts | 26 +++- .../directanswer/StringValueDirectAnswer.ts | 12 -- ...ultiLineTextFeaturedSnippetDirectAnswer.ts | 15 ++ .../RichTextFeaturedSnippetDirectAnswer.ts | 14 ++ .../featuredsnippetdirectanswers/index.ts | 2 + .../AndroidAppUrlDirectAnswer.ts | 12 ++ .../DecimalDirectAnswer.ts | 12 ++ .../FacebookUrlDirectAnswer.ts | 12 ++ .../InstagramHandleDirectAnswer.ts | 12 ++ .../IosAppUrlDirectAnswer.ts | 12 ++ .../RichTextDirectAnswer.ts | 12 ++ .../TextDirectAnswer.ts | 12 ++ .../TwitterHandleDirectAnswer.ts | 12 ++ .../UnknownFieldValueDirectAnswer.ts | 2 +- .../UrlDirectAnswer.ts | 12 ++ .../fieldvaluedirectanswers/index.ts | 10 ++ test-site/index.html | 1 + test-site/src/ts/index.ts | 13 +- test-site/src/ts/initDirectAnswers.ts | 132 ++++++++++++++++++ test-site/tsconfig.json | 2 +- 46 files changed, 722 insertions(+), 56 deletions(-) create mode 100644 docs/search-core.androidappurldirectanswer.fieldtype.md create mode 100644 docs/search-core.androidappurldirectanswer.md create mode 100644 docs/search-core.decimaldirectanswer.fieldtype.md create mode 100644 docs/search-core.decimaldirectanswer.md create mode 100644 docs/search-core.facebookurldirectanswer.fieldtype.md create mode 100644 docs/search-core.facebookurldirectanswer.md create mode 100644 docs/search-core.instagramhandledirectanswer.fieldtype.md create mode 100644 docs/search-core.instagramhandledirectanswer.md create mode 100644 docs/search-core.iosappurldirectanswer.fieldtype.md create mode 100644 docs/search-core.iosappurldirectanswer.md create mode 100644 docs/search-core.richtextdirectanswer.fieldtype.md create mode 100644 docs/search-core.richtextdirectanswer.md create mode 100644 docs/search-core.textdirectanswer.fieldtype.md create mode 100644 docs/search-core.textdirectanswer.md create mode 100644 docs/search-core.twitterhandledirectanswer.fieldtype.md create mode 100644 docs/search-core.twitterhandledirectanswer.md create mode 100644 docs/search-core.urldirectanswer.fieldtype.md create mode 100644 docs/search-core.urldirectanswer.md delete mode 100644 src/models/searchservice/response/directanswer/StringValueDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextFeaturedSnippetDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextFeaturedSnippetDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/AndroidAppUrlDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/DecimalDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/FacebookUrlDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/InstagramHandleDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/IosAppUrlDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/RichTextDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/TextDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/TwitterHandleDirectAnswer.ts rename src/models/searchservice/response/directanswer/{ => fieldvaluedirectanswers}/UnknownFieldValueDirectAnswer.ts (79%) create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UrlDirectAnswer.ts create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts create mode 100644 test-site/src/ts/initDirectAnswers.ts diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 862cb849..368ffd7f 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -10,3 +10,15 @@ jobs: uses: yext/slapshot-reusable-workflows/.github/workflows/run_tests.yml@v1 with: build_script: npm run build-ci + + compilation_check_for_test_site: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + - run: npm ci + - run: npm run build + - run: cd test-site + - run: npm i + - run: npm run build 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.builtinfieldtype.md b/docs/search-core.builtinfieldtype.md index 70b5881e..1bf120b2 100644 --- a/docs/search-core.builtinfieldtype.md +++ b/docs/search-core.builtinfieldtype.md @@ -16,8 +16,15 @@ export declare enum BuiltInFieldType | Member | Value | Description | | --- | --- | --- | +| AndroidAppURL | "android_app_url" | | +| Decimal | "decimal" | | +| FacebookURL | "facebook_url" | | +| InstagramHandle | "instagram_handle" | | +| 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.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.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.fieldvaluedirectanswer.md b/docs/search-core.fieldvaluedirectanswer.md index efed1aea..7bea5801 100644 --- a/docs/search-core.fieldvaluedirectanswer.md +++ b/docs/search-core.fieldvaluedirectanswer.md @@ -9,7 +9,7 @@ Possible built-in and custom [BaseFieldValueDirectAnswer](./search-core.basefiel Signature: ```typescript -export declare type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer; +export declare type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer; ``` -References: [UnknownFieldValueDirectAnswer](./search-core.unknownfieldvaluedirectanswer.md) +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) 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.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 02139104..fdaaf382 100644 --- a/docs/search-core.md +++ b/docs/search-core.md @@ -42,6 +42,7 @@ | Interface | Description | | --- | --- | | [AdditionalHttpHeaders](./search-core.additionalhttpheaders.md) | AdditionalHttpHeaders allows users to specify additional values for specific HTTP headers. | +| [AndroidAppUrlDirectAnswer](./search-core.androidappurldirectanswer.md) | A direct answer for an android app url field. | | [AnswersConfigWithApiKey](./search-core.answersconfigwithapikey.md) | | | [AnswersConfigWithToken](./search-core.answersconfigwithtoken.md) | | | [AnswersError](./search-core.answerserror.md) | | @@ -56,11 +57,13 @@ | [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. | | [ConjunctionStaticFilter](./search-core.conjunctionstaticfilter.md) | A static filter composed by combining other static filters with the logical AND operator. | +| [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. | | [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. | @@ -69,6 +72,8 @@ | [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. | +| [InstagramHandleDirectAnswer](./search-core.instagramhandledirectanswer.md) | A direct answer for an instagram handle field. | +| [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) | @@ -82,6 +87,7 @@ | [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. | | [RichTextFeaturedSnippetDirectAnswer](./search-core.richtextfeaturedsnippetdirectanswer.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. | @@ -91,12 +97,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. | 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.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.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/etc/search-core.api.md b/etc/search-core.api.md index c98de5a4..58d96d52 100644 --- a/etc/search-core.api.md +++ b/etc/search-core.api.md @@ -9,6 +9,12 @@ export interface AdditionalHttpHeaders { 'Client-SDK'?: ClientSDKHeaderValues; } +// @public +export interface AndroidAppUrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public @deprecated (undocumented) export type AnswersConfig = SearchConfig; @@ -111,6 +117,16 @@ export interface BaseSearchConfig { // @public export enum BuiltInFieldType { + // (undocumented) + AndroidAppURL = "android_app_url", + // (undocumented) + Decimal = "decimal", + // (undocumented) + FacebookURL = "facebook_url", + // (undocumented) + InstagramHandle = "instagram_handle", + // (undocumented) + IOSAppURL = "ios_app_url", // (undocumented) MultiLineText = "multi_line_text", // (undocumented) @@ -118,7 +134,11 @@ export enum BuiltInFieldType { // (undocumented) RichText = "rich_text", // (undocumented) - SingleLineText = "single_line_text" + SingleLineText = "single_line_text", + // (undocumented) + TwitterHandle = "twitter_handle", + // (undocumented) + URL = "url" } // @public @@ -137,6 +157,12 @@ export interface ConjunctionStaticFilter { // @public export type Context = any; +// @public +export interface DecimalDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface DirectAnswer { fieldType: EnumOrLiteral | 'unknown'; @@ -207,6 +233,12 @@ export enum ErrorType { Timeout = "TIMEOUT" } +// @public +export interface FacebookUrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface Facet { fieldId: string; @@ -233,7 +265,7 @@ export interface FailedVertical { export type FeaturedSnippetDirectAnswer = MultiLineTextFeaturedSnippetDirectAnswer | RichTextFeaturedSnippetDirectAnswer; // @public -export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer; +export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer; // @public export interface FieldValueFilter { @@ -288,6 +320,18 @@ export interface HighlightedValue { value: string; } +// @public +export interface InstagramHandleDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + +// @public +export interface IosAppUrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface LatLong { latitude: number; @@ -425,6 +469,12 @@ export interface Result> { source: Source; } +// @public +export interface RichTextDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface RichTextFeaturedSnippetDirectAnswer extends Omit, 'value'> { fieldType: EnumOrLiteral; @@ -545,6 +595,18 @@ export enum SpellCheckType { // @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; @@ -596,6 +658,12 @@ export interface UpperNumberRangeLimit { value: number; } +// @public +export interface UrlDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface VerticalAutocompleteRequest extends SearchRequest { input: string; diff --git a/src/models/index.ts b/src/models/index.ts index c19d32b4..80dfc5d6 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -64,14 +64,13 @@ export { BuiltInFieldType } from './searchservice/response/directanswer/BuiltInF export { BaseFieldValueDirectAnswer } from './searchservice/response/directanswer/BaseFieldValueDirectAnswer'; export { FieldValueDirectAnswer } from './searchservice/response/directanswer/FieldValueDirectAnswer'; -export { UnknownFieldValueDirectAnswer } from './searchservice/response/directanswer/UnknownFieldValueDirectAnswer'; +export * from './searchservice/response/directanswer/fieldvaluedirectanswers'; export { BaseFeaturedSnippetDirectAnswer, - FeaturedSnippetDirectAnswer, - RichTextFeaturedSnippetDirectAnswer, - MultiLineTextFeaturedSnippetDirectAnswer + 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'; diff --git a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts index b080b809..0256a317 100644 --- a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts +++ b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts @@ -4,18 +4,19 @@ * @public */ export enum BuiltInFieldType { - // URL = 'url', + URL = 'url', // ComplexURL = 'complex_url', - // IOSAppURL = 'ios_app_url', - // AndroidAppURL = 'android_app_url', - // FacebookURL = 'facebook_url', + IOSAppURL = 'ios_app_url', + AndroidAppURL = 'android_app_url', + FacebookURL = 'facebook_url', // Email = 'email', - // InstagramHandle = 'instagram_handle', - // TwitterHandle = 'twitter_handle', + InstagramHandle = 'instagram_handle', + TwitterHandle = 'twitter_handle', Phone = 'phone', // Address = 'address', // Hours = 'hours', - // Decimal = 'decimal', + Decimal = 'decimal', + // Integer = 'integer', SingleLineText = 'single_line_text', RichText = 'rich_text', MultiLineText = 'multi_line_text' diff --git a/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts index 23a0e882..2322f469 100644 --- a/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts @@ -3,6 +3,10 @@ import { DirectAnswerType } from './DirectAnswerType'; import { Snippet } from '../Snippet'; import { BuiltInFieldType } from './BuiltInFieldType'; import { EnumOrLiteral } from '../../../utils/EnumOrLiteral'; +import { + MultiLineTextFeaturedSnippetDirectAnswer, + RichTextFeaturedSnippetDirectAnswer +} from './featuredsnippetdirectanswers'; /** * A direct answer which was found within a document. @@ -18,29 +22,6 @@ export interface BaseFeaturedSnippetDirectAnswer extends DirectAnsw snippet: Snippet } -/** - * A {@link BaseFeaturedSnippetDirectAnswer} with 'multi_line_text' field type. - * - * @public - */ -export interface MultiLineTextFeaturedSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer { - /** The value of the direct answer. */ - value: string, - /** {@inheritDoc DirectAnswer.fieldType} */ - fieldType: EnumOrLiteral -} - -/** - * A {@link BaseFeaturedSnippetDirectAnswer} with 'rich_text' field type. - * "value" field is omitted for featured snippet direct answer of this field type. - * - * @public - */ -export interface RichTextFeaturedSnippetDirectAnswer extends Omit, 'value'> { - /** {@inheritDoc DirectAnswer.fieldType} */ - fieldType: EnumOrLiteral -} - /** * All possible built-in {@link BaseFeaturedSnippetDirectAnswer} interfaces. * diff --git a/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts index dea868ab..38f1bcf3 100644 --- a/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts @@ -1,9 +1,29 @@ -import { UnknownFieldValueDirectAnswer } from './UnknownFieldValueDirectAnswer'; +import { + UnknownFieldValueDirectAnswer, + DecimalDirectAnswer, + InstagramHandleDirectAnswer, + IosAppUrlDirectAnswer, + AndroidAppUrlDirectAnswer, + TwitterHandleDirectAnswer, + FacebookUrlDirectAnswer, + RichTextDirectAnswer, + UrlDirectAnswer, + TextDirectAnswer +} from './fieldvaluedirectanswers'; /** * Possible built-in and custom {@link BaseFieldValueDirectAnswer} interfaces. * * @public */ -//add other builtin field value direct answer interfaces here -export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer; +export type FieldValueDirectAnswer = + UnknownFieldValueDirectAnswer | + TextDirectAnswer | + UrlDirectAnswer | + RichTextDirectAnswer | + DecimalDirectAnswer | + FacebookUrlDirectAnswer | + InstagramHandleDirectAnswer | + TwitterHandleDirectAnswer | + IosAppUrlDirectAnswer | + AndroidAppUrlDirectAnswer; diff --git a/src/models/searchservice/response/directanswer/StringValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/StringValueDirectAnswer.ts deleted file mode 100644 index 55687954..00000000 --- a/src/models/searchservice/response/directanswer/StringValueDirectAnswer.ts +++ /dev/null @@ -1,12 +0,0 @@ -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 TextValueDirectAnswer extends BaseFieldValueDirectAnswer { - fieldType: EnumOrLiteral -} \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextFeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextFeaturedSnippetDirectAnswer.ts new file mode 100644 index 00000000..ff8ffc02 --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextFeaturedSnippetDirectAnswer.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 MultiLineTextFeaturedSnippetDirectAnswer 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/RichTextFeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextFeaturedSnippetDirectAnswer.ts new file mode 100644 index 00000000..b7cf61fc --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextFeaturedSnippetDirectAnswer.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 RichTextFeaturedSnippetDirectAnswer 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..c9601444 --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts @@ -0,0 +1,2 @@ +export { RichTextFeaturedSnippetDirectAnswer } from './RichTextFeaturedSnippetDirectAnswer'; +export { MultiLineTextFeaturedSnippetDirectAnswer } from './MultiLineTextFeaturedSnippetDirectAnswer'; 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/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/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/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/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/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/UnknownFieldValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UnknownFieldValueDirectAnswer.ts similarity index 79% rename from src/models/searchservice/response/directanswer/UnknownFieldValueDirectAnswer.ts rename to src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UnknownFieldValueDirectAnswer.ts index 8d66ed17..154e8b52 100644 --- a/src/models/searchservice/response/directanswer/UnknownFieldValueDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/UnknownFieldValueDirectAnswer.ts @@ -1,4 +1,4 @@ -import { BaseFieldValueDirectAnswer } from './BaseFieldValueDirectAnswer'; +import { BaseFieldValueDirectAnswer } from '../BaseFieldValueDirectAnswer'; /** * A {@link BaseFieldValueDirectAnswer} with a field type outside of {@link BuiltInFieldType}. 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..66ab7052 --- /dev/null +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts @@ -0,0 +1,10 @@ +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'; 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/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..e1358940 --- /dev/null +++ b/test-site/src/ts/initDirectAnswers.ts @@ -0,0 +1,132 @@ +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[] + ], +}; + +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; + } +} + +/** + * 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; + } +} \ No newline at end of file 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 From b33f6f2948e82bdef07b5720856f04406c4dd32a Mon Sep 17 00:00:00 2001 From: Oliver Shi Date: Tue, 16 Aug 2022 11:15:56 -0400 Subject: [PATCH 2/4] add IntegerDirectAnswer (#210) I checked that fieldType: integer with a number array value should never exists (afaict) by adding all possible number fields in our test account to our "Test Entity" entity type, hitting composeAbstractSchema, and checking that type.integer was not present for any list types. When you add a custom field, if you make it a number of list of number field, the field type will be a "decimal" type not an "integer". (I am probably not using terminology in an exact manner here). J=SLAP-2314 TEST=manual tested that I can get back an integer direct answer using the "oliver shi pool count?" query --- docs/search-core.builtinfieldtype.md | 1 + docs/search-core.fieldvaluedirectanswer.md | 4 +-- ...arch-core.integerdirectanswer.fieldtype.md | 11 ++++++++ docs/search-core.integerdirectanswer.md | 25 +++++++++++++++++++ docs/search-core.md | 1 + etc/search-core.api.md | 10 +++++++- .../response/directanswer/BuiltInFieldType.ts | 2 +- .../directanswer/FieldValueDirectAnswer.ts | 6 +++-- .../IntegerDirectAnswer.ts | 16 ++++++++++++ .../fieldvaluedirectanswers/index.ts | 1 + test-site/src/ts/initDirectAnswers.ts | 6 +++++ 11 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 docs/search-core.integerdirectanswer.fieldtype.md create mode 100644 docs/search-core.integerdirectanswer.md create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/IntegerDirectAnswer.ts diff --git a/docs/search-core.builtinfieldtype.md b/docs/search-core.builtinfieldtype.md index 1bf120b2..689cc075 100644 --- a/docs/search-core.builtinfieldtype.md +++ b/docs/search-core.builtinfieldtype.md @@ -20,6 +20,7 @@ export declare enum BuiltInFieldType | Decimal | "decimal" | | | FacebookURL | "facebook_url" | | | InstagramHandle | "instagram_handle" | | +| Integer | "integer" | | | IOSAppURL | "ios_app_url" | | | MultiLineText | "multi_line_text" | | | Phone | "phone" | | diff --git a/docs/search-core.fieldvaluedirectanswer.md b/docs/search-core.fieldvaluedirectanswer.md index 7bea5801..69fc2b1d 100644 --- a/docs/search-core.fieldvaluedirectanswer.md +++ b/docs/search-core.fieldvaluedirectanswer.md @@ -9,7 +9,7 @@ Possible built-in and custom [BaseFieldValueDirectAnswer](./search-core.basefiel Signature: ```typescript -export declare type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer; +export declare type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | IntegerDirectAnswer; ``` -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) +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), [IntegerDirectAnswer](./search-core.integerdirectanswer.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.md b/docs/search-core.md index fdaaf382..261161a3 100644 --- a/docs/search-core.md +++ b/docs/search-core.md @@ -73,6 +73,7 @@ | [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. | | [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. | | [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. | diff --git a/etc/search-core.api.md b/etc/search-core.api.md index 58d96d52..aacdaa18 100644 --- a/etc/search-core.api.md +++ b/etc/search-core.api.md @@ -126,6 +126,8 @@ export enum BuiltInFieldType { // (undocumented) InstagramHandle = "instagram_handle", // (undocumented) + Integer = "integer", + // (undocumented) IOSAppURL = "ios_app_url", // (undocumented) MultiLineText = "multi_line_text", @@ -265,7 +267,7 @@ export interface FailedVertical { export type FeaturedSnippetDirectAnswer = MultiLineTextFeaturedSnippetDirectAnswer | RichTextFeaturedSnippetDirectAnswer; // @public -export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer; +export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | IntegerDirectAnswer; // @public export interface FieldValueFilter { @@ -326,6 +328,12 @@ export interface InstagramHandleDirectAnswer extends BaseFieldValueDirectAnswer< fieldType: EnumOrLiteral; } +// @public +export interface IntegerDirectAnswer extends BaseFieldValueDirectAnswer { + // (undocumented) + fieldType: EnumOrLiteral; +} + // @public export interface IosAppUrlDirectAnswer extends BaseFieldValueDirectAnswer { // (undocumented) diff --git a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts index 0256a317..14b92625 100644 --- a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts +++ b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts @@ -16,7 +16,7 @@ export enum BuiltInFieldType { // Address = 'address', // Hours = 'hours', Decimal = 'decimal', - // Integer = 'integer', + Integer = 'integer', SingleLineText = 'single_line_text', RichText = 'rich_text', MultiLineText = 'multi_line_text' diff --git a/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts index 38f1bcf3..7d252511 100644 --- a/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts @@ -8,7 +8,8 @@ import { FacebookUrlDirectAnswer, RichTextDirectAnswer, UrlDirectAnswer, - TextDirectAnswer + TextDirectAnswer, + IntegerDirectAnswer } from './fieldvaluedirectanswers'; /** @@ -26,4 +27,5 @@ export type FieldValueDirectAnswer = InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | - AndroidAppUrlDirectAnswer; + AndroidAppUrlDirectAnswer | + IntegerDirectAnswer; 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/index.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts index 66ab7052..dad77731 100644 --- a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts @@ -8,3 +8,4 @@ export { FacebookUrlDirectAnswer } from './FacebookUrlDirectAnswer'; export { RichTextDirectAnswer } from './RichTextDirectAnswer'; export { UrlDirectAnswer } from './UrlDirectAnswer'; export { TextDirectAnswer } from './TextDirectAnswer'; +export { IntegerDirectAnswer } from './IntegerDirectAnswer'; diff --git a/test-site/src/ts/initDirectAnswers.ts b/test-site/src/ts/initDirectAnswers.ts index e1358940..516be2a7 100644 --- a/test-site/src/ts/initDirectAnswers.ts +++ b/test-site/src/ts/initDirectAnswers.ts @@ -44,6 +44,9 @@ const FIELD_VALUE_QUERIES = { 'oliver shi my rich text field', // string 'oliver shi multi line rich text' // string[] ], + [BuiltInFieldType.Integer]: [ + 'oliver shi outdoor pools?' // number + ] }; export default function initDirectAnswers() { @@ -112,6 +115,9 @@ function ensureFieldValueSwitchability(da: FieldValueDirectAnswer) { case BuiltInFieldType.URL: console.log(da.value); break; + case BuiltInFieldType.Integer: + console.log(da.value); + break; } } From cb048885f016fb831d96b91f392ee57ab194fac4 Mon Sep 17 00:00:00 2001 From: Oliver Shi Date: Tue, 16 Aug 2022 11:19:35 -0400 Subject: [PATCH 3/4] rename [Type]FeaturedSnippetDirectAnswer -> [Type]SnippetDirectAnswer (#212) This shortens the name and removes a little redundancy. J=NONE TEST=none --- ...search-core.featuredsnippetdirectanswer.md | 4 ++-- docs/search-core.md | 4 ++-- ...ultilinetextfeaturedsnippetdirectanswer.md | 22 ------------------- ...netextfeaturedsnippetdirectanswer.value.md | 13 ----------- ...ilinetextsnippetdirectanswer.fieldtype.md} | 4 ++-- ...h-core.multilinetextsnippetdirectanswer.md | 22 +++++++++++++++++++ ....multilinetextsnippetdirectanswer.value.md | 13 +++++++++++ ....richtextsnippetdirectanswer.fieldtype.md} | 4 ++-- ...earch-core.richtextsnippetdirectanswer.md} | 8 +++---- etc/search-core.api.md | 6 ++--- .../FeaturedSnippetDirectAnswer.ts | 6 ++--- ...ts => MultiLineTextSnippetDirectAnswer.ts} | 2 +- ...swer.ts => RichTextSnippetDirectAnswer.ts} | 2 +- .../featuredsnippetdirectanswers/index.ts | 4 ++-- 14 files changed, 57 insertions(+), 57 deletions(-) delete mode 100644 docs/search-core.multilinetextfeaturedsnippetdirectanswer.md delete mode 100644 docs/search-core.multilinetextfeaturedsnippetdirectanswer.value.md rename docs/{search-core.multilinetextfeaturedsnippetdirectanswer.fieldtype.md => search-core.multilinetextsnippetdirectanswer.fieldtype.md} (51%) create mode 100644 docs/search-core.multilinetextsnippetdirectanswer.md create mode 100644 docs/search-core.multilinetextsnippetdirectanswer.value.md rename docs/{search-core.richtextfeaturedsnippetdirectanswer.fieldtype.md => search-core.richtextsnippetdirectanswer.fieldtype.md} (52%) rename docs/{search-core.richtextfeaturedsnippetdirectanswer.md => search-core.richtextsnippetdirectanswer.md} (52%) rename src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/{MultiLineTextFeaturedSnippetDirectAnswer.ts => MultiLineTextSnippetDirectAnswer.ts} (81%) rename src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/{RichTextFeaturedSnippetDirectAnswer.ts => RichTextSnippetDirectAnswer.ts} (80%) diff --git a/docs/search-core.featuredsnippetdirectanswer.md b/docs/search-core.featuredsnippetdirectanswer.md index e09c2ad9..fb2a6e1f 100644 --- a/docs/search-core.featuredsnippetdirectanswer.md +++ b/docs/search-core.featuredsnippetdirectanswer.md @@ -9,7 +9,7 @@ All possible built-in [BaseFeaturedSnippetDirectAnswer](./search-core.basefeatur Signature: ```typescript -export declare type FeaturedSnippetDirectAnswer = MultiLineTextFeaturedSnippetDirectAnswer | RichTextFeaturedSnippetDirectAnswer; +export declare type FeaturedSnippetDirectAnswer = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; ``` -References: [MultiLineTextFeaturedSnippetDirectAnswer](./search-core.multilinetextfeaturedsnippetdirectanswer.md), [RichTextFeaturedSnippetDirectAnswer](./search-core.richtextfeaturedsnippetdirectanswer.md) +References: [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md), [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) diff --git a/docs/search-core.md b/docs/search-core.md index 261161a3..fc0c2ec6 100644 --- a/docs/search-core.md +++ b/docs/search-core.md @@ -80,7 +80,7 @@ | [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). | -| [MultiLineTextFeaturedSnippetDirectAnswer](./search-core.multilinetextfeaturedsnippetdirectanswer.md) | A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'multi\_line\_text' field type. | +| [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). | | [QueryRulesActionsData](./search-core.queryrulesactionsdata.md) | Data returned from the Search query rules system. | @@ -89,7 +89,7 @@ | [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. | -| [RichTextFeaturedSnippetDirectAnswer](./search-core.richtextfeaturedsnippetdirectanswer.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. | +| [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. | diff --git a/docs/search-core.multilinetextfeaturedsnippetdirectanswer.md b/docs/search-core.multilinetextfeaturedsnippetdirectanswer.md deleted file mode 100644 index 9311570a..00000000 --- a/docs/search-core.multilinetextfeaturedsnippetdirectanswer.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [MultiLineTextFeaturedSnippetDirectAnswer](./search-core.multilinetextfeaturedsnippetdirectanswer.md) - -## MultiLineTextFeaturedSnippetDirectAnswer interface - -A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'multi\_line\_text' field type. - -Signature: - -```typescript -export interface MultiLineTextFeaturedSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer -``` -Extends: [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md)<string> - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [fieldType](./search-core.multilinetextfeaturedsnippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.MultiLineText](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | -| [value](./search-core.multilinetextfeaturedsnippetdirectanswer.value.md) | string | The value of the direct answer. | - diff --git a/docs/search-core.multilinetextfeaturedsnippetdirectanswer.value.md b/docs/search-core.multilinetextfeaturedsnippetdirectanswer.value.md deleted file mode 100644 index d42be387..00000000 --- a/docs/search-core.multilinetextfeaturedsnippetdirectanswer.value.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@yext/search-core](./search-core.md) > [MultiLineTextFeaturedSnippetDirectAnswer](./search-core.multilinetextfeaturedsnippetdirectanswer.md) > [value](./search-core.multilinetextfeaturedsnippetdirectanswer.value.md) - -## MultiLineTextFeaturedSnippetDirectAnswer.value property - -The value of the direct answer. - -Signature: - -```typescript -value: string; -``` diff --git a/docs/search-core.multilinetextfeaturedsnippetdirectanswer.fieldtype.md b/docs/search-core.multilinetextsnippetdirectanswer.fieldtype.md similarity index 51% rename from docs/search-core.multilinetextfeaturedsnippetdirectanswer.fieldtype.md rename to docs/search-core.multilinetextsnippetdirectanswer.fieldtype.md index 4ccad829..cd86822f 100644 --- a/docs/search-core.multilinetextfeaturedsnippetdirectanswer.fieldtype.md +++ b/docs/search-core.multilinetextsnippetdirectanswer.fieldtype.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [MultiLineTextFeaturedSnippetDirectAnswer](./search-core.multilinetextfeaturedsnippetdirectanswer.md) > [fieldType](./search-core.multilinetextfeaturedsnippetdirectanswer.fieldtype.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md) > [fieldType](./search-core.multilinetextsnippetdirectanswer.fieldtype.md) -## MultiLineTextFeaturedSnippetDirectAnswer.fieldType property +## MultiLineTextSnippetDirectAnswer.fieldType property The field type of the direct answer. 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.richtextfeaturedsnippetdirectanswer.fieldtype.md b/docs/search-core.richtextsnippetdirectanswer.fieldtype.md similarity index 52% rename from docs/search-core.richtextfeaturedsnippetdirectanswer.fieldtype.md rename to docs/search-core.richtextsnippetdirectanswer.fieldtype.md index 8dcbeb3d..42d81d8d 100644 --- a/docs/search-core.richtextfeaturedsnippetdirectanswer.fieldtype.md +++ b/docs/search-core.richtextsnippetdirectanswer.fieldtype.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextFeaturedSnippetDirectAnswer](./search-core.richtextfeaturedsnippetdirectanswer.md) > [fieldType](./search-core.richtextfeaturedsnippetdirectanswer.fieldtype.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) > [fieldType](./search-core.richtextsnippetdirectanswer.fieldtype.md) -## RichTextFeaturedSnippetDirectAnswer.fieldType property +## RichTextSnippetDirectAnswer.fieldType property The field type of the direct answer. diff --git a/docs/search-core.richtextfeaturedsnippetdirectanswer.md b/docs/search-core.richtextsnippetdirectanswer.md similarity index 52% rename from docs/search-core.richtextfeaturedsnippetdirectanswer.md rename to docs/search-core.richtextsnippetdirectanswer.md index 0699a0fa..231fb466 100644 --- a/docs/search-core.richtextfeaturedsnippetdirectanswer.md +++ b/docs/search-core.richtextsnippetdirectanswer.md @@ -1,15 +1,15 @@ -[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextFeaturedSnippetDirectAnswer](./search-core.richtextfeaturedsnippetdirectanswer.md) +[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) -## RichTextFeaturedSnippetDirectAnswer interface +## 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 RichTextFeaturedSnippetDirectAnswer extends Omit, 'value'> +export interface RichTextSnippetDirectAnswer extends Omit, 'value'> ``` Extends: Omit<[BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md)<string>, 'value'> @@ -17,5 +17,5 @@ export interface RichTextFeaturedSnippetDirectAnswer extends Omit<[BuiltInFieldType.RichText](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | +| [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/etc/search-core.api.md b/etc/search-core.api.md index aacdaa18..e940fe6e 100644 --- a/etc/search-core.api.md +++ b/etc/search-core.api.md @@ -264,7 +264,7 @@ export interface FailedVertical { } // @public -export type FeaturedSnippetDirectAnswer = MultiLineTextFeaturedSnippetDirectAnswer | RichTextFeaturedSnippetDirectAnswer; +export type FeaturedSnippetDirectAnswer = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; // @public export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | IntegerDirectAnswer; @@ -397,7 +397,7 @@ export enum Matcher { } // @public -export interface MultiLineTextFeaturedSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer { +export interface MultiLineTextSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer { fieldType: EnumOrLiteral; value: string; } @@ -484,7 +484,7 @@ export interface RichTextDirectAnswer extends BaseFieldValueDirectAnswer, 'value'> { +export interface RichTextSnippetDirectAnswer extends Omit, 'value'> { fieldType: EnumOrLiteral; } diff --git a/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts index 2322f469..ec48022f 100644 --- a/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts @@ -4,8 +4,8 @@ import { Snippet } from '../Snippet'; import { BuiltInFieldType } from './BuiltInFieldType'; import { EnumOrLiteral } from '../../../utils/EnumOrLiteral'; import { - MultiLineTextFeaturedSnippetDirectAnswer, - RichTextFeaturedSnippetDirectAnswer + MultiLineTextSnippetDirectAnswer, + RichTextSnippetDirectAnswer } from './featuredsnippetdirectanswers'; /** @@ -28,4 +28,4 @@ export interface BaseFeaturedSnippetDirectAnswer extends DirectAnsw * @public */ export type FeaturedSnippetDirectAnswer = - MultiLineTextFeaturedSnippetDirectAnswer | RichTextFeaturedSnippetDirectAnswer; + MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextFeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextSnippetDirectAnswer.ts similarity index 81% rename from src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextFeaturedSnippetDirectAnswer.ts rename to src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextSnippetDirectAnswer.ts index ff8ffc02..c3c4a2e4 100644 --- a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextFeaturedSnippetDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MultiLineTextSnippetDirectAnswer.ts @@ -7,7 +7,7 @@ import { BaseFeaturedSnippetDirectAnswer } from '../FeaturedSnippetDirectAnswer' * * @public */ -export interface MultiLineTextFeaturedSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer { +export interface MultiLineTextSnippetDirectAnswer extends BaseFeaturedSnippetDirectAnswer { /** The value of the direct answer. */ value: string, /** {@inheritDoc DirectAnswer.fieldType} */ diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextFeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextSnippetDirectAnswer.ts similarity index 80% rename from src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextFeaturedSnippetDirectAnswer.ts rename to src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextSnippetDirectAnswer.ts index b7cf61fc..fe60225a 100644 --- a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextFeaturedSnippetDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextSnippetDirectAnswer.ts @@ -8,7 +8,7 @@ import { BaseFeaturedSnippetDirectAnswer } from '../FeaturedSnippetDirectAnswer' * * @public */ -export interface RichTextFeaturedSnippetDirectAnswer extends Omit, 'value'> { +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 index c9601444..61b085e5 100644 --- a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts @@ -1,2 +1,2 @@ -export { RichTextFeaturedSnippetDirectAnswer } from './RichTextFeaturedSnippetDirectAnswer'; -export { MultiLineTextFeaturedSnippetDirectAnswer } from './MultiLineTextFeaturedSnippetDirectAnswer'; +export { RichTextSnippetDirectAnswer } from './RichTextSnippetDirectAnswer'; +export { MultiLineTextSnippetDirectAnswer } from './MultiLineTextSnippetDirectAnswer'; From b69f8e5b3f5f6fa465cb0d0bd7afacad10c23041 Mon Sep 17 00:00:00 2001 From: Oliver Shi Date: Tue, 16 Aug 2022 11:32:05 -0400 Subject: [PATCH 4/4] Add ComplexUrlDirectAnswer (#211) tested that displayUrl can be optional by deleting it in Knowledge Graph. J=SLAP-2309 TEST=manual --- docs/search-core.builtinfieldtype.md | 1 + docs/search-core.complexurl.displayurl.md | 11 +++++++++ docs/search-core.complexurl.md | 22 ++++++++++++++++++ ...search-core.complexurl.preferdisplayurl.md | 11 +++++++++ docs/search-core.complexurl.url.md | 11 +++++++++ ...h-core.complexurldirectanswer.fieldtype.md | 11 +++++++++ docs/search-core.complexurldirectanswer.md | 21 +++++++++++++++++ docs/search-core.fieldvaluedirectanswer.md | 4 ++-- docs/search-core.md | 2 ++ etc/search-core.api.md | 20 +++++++++++++++- .../response/directanswer/BuiltInFieldType.ts | 2 +- .../directanswer/FieldValueDirectAnswer.ts | 2 ++ .../ComplexUrlDirectAnswer.ts | 23 +++++++++++++++++++ .../fieldvaluedirectanswers/index.ts | 1 + test-site/src/ts/initDirectAnswers.ts | 8 ++++++- 15 files changed, 145 insertions(+), 5 deletions(-) create mode 100644 docs/search-core.complexurl.displayurl.md create mode 100644 docs/search-core.complexurl.md create mode 100644 docs/search-core.complexurl.preferdisplayurl.md create mode 100644 docs/search-core.complexurl.url.md create mode 100644 docs/search-core.complexurldirectanswer.fieldtype.md create mode 100644 docs/search-core.complexurldirectanswer.md create mode 100644 src/models/searchservice/response/directanswer/fieldvaluedirectanswers/ComplexUrlDirectAnswer.ts diff --git a/docs/search-core.builtinfieldtype.md b/docs/search-core.builtinfieldtype.md index 689cc075..0396b04f 100644 --- a/docs/search-core.builtinfieldtype.md +++ b/docs/search-core.builtinfieldtype.md @@ -17,6 +17,7 @@ export declare enum BuiltInFieldType | Member | Value | Description | | --- | --- | --- | | AndroidAppURL | "android_app_url" | | +| ComplexURL | "complex_url" | | | Decimal | "decimal" | | | FacebookURL | "facebook_url" | | | InstagramHandle | "instagram_handle" | | 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.fieldvaluedirectanswer.md b/docs/search-core.fieldvaluedirectanswer.md index 69fc2b1d..aac67387 100644 --- a/docs/search-core.fieldvaluedirectanswer.md +++ b/docs/search-core.fieldvaluedirectanswer.md @@ -9,7 +9,7 @@ Possible built-in and custom [BaseFieldValueDirectAnswer](./search-core.basefiel Signature: ```typescript -export declare type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | IntegerDirectAnswer; +export declare type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | ComplexUrlDirectAnswer | IntegerDirectAnswer; ``` -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), [IntegerDirectAnswer](./search-core.integerdirectanswer.md) +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) diff --git a/docs/search-core.md b/docs/search-core.md index fc0c2ec6..fd80d914 100644 --- a/docs/search-core.md +++ b/docs/search-core.md @@ -56,6 +56,8 @@ | [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. | +| [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. | | [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. | diff --git a/etc/search-core.api.md b/etc/search-core.api.md index e940fe6e..058eda35 100644 --- a/etc/search-core.api.md +++ b/etc/search-core.api.md @@ -120,6 +120,8 @@ export enum BuiltInFieldType { // (undocumented) AndroidAppURL = "android_app_url", // (undocumented) + ComplexURL = "complex_url", + // (undocumented) Decimal = "decimal", // (undocumented) FacebookURL = "facebook_url", @@ -149,6 +151,22 @@ export interface ClientSDKHeaderValues { ANSWERS_CORE?: never; } +// @public +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; @@ -267,7 +285,7 @@ export interface FailedVertical { export type FeaturedSnippetDirectAnswer = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; // @public -export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | IntegerDirectAnswer; +export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | ComplexUrlDirectAnswer | IntegerDirectAnswer; // @public export interface FieldValueFilter { diff --git a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts index 14b92625..a46dc370 100644 --- a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts +++ b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts @@ -5,7 +5,7 @@ */ export enum BuiltInFieldType { URL = 'url', - // ComplexURL = 'complex_url', + ComplexURL = 'complex_url', IOSAppURL = 'ios_app_url', AndroidAppURL = 'android_app_url', FacebookURL = 'facebook_url', diff --git a/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts index 7d252511..96398e47 100644 --- a/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/FieldValueDirectAnswer.ts @@ -9,6 +9,7 @@ import { RichTextDirectAnswer, UrlDirectAnswer, TextDirectAnswer, + ComplexUrlDirectAnswer, IntegerDirectAnswer } from './fieldvaluedirectanswers'; @@ -28,4 +29,5 @@ export type FieldValueDirectAnswer = TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | + ComplexUrlDirectAnswer | IntegerDirectAnswer; 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/index.ts b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts index dad77731..f61d42a2 100644 --- a/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts +++ b/src/models/searchservice/response/directanswer/fieldvaluedirectanswers/index.ts @@ -8,4 +8,5 @@ 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'; diff --git a/test-site/src/ts/initDirectAnswers.ts b/test-site/src/ts/initDirectAnswers.ts index 516be2a7..adbe450b 100644 --- a/test-site/src/ts/initDirectAnswers.ts +++ b/test-site/src/ts/initDirectAnswers.ts @@ -44,6 +44,9 @@ const FIELD_VALUE_QUERIES = { '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 ] @@ -115,6 +118,9 @@ function ensureFieldValueSwitchability(da: FieldValueDirectAnswer) { case BuiltInFieldType.URL: console.log(da.value); break; + case BuiltInFieldType.ComplexURL: + console.log(da.value); + break; case BuiltInFieldType.Integer: console.log(da.value); break; @@ -135,4 +141,4 @@ function ensureFeaturedSnippetSwitchability(da: FeaturedSnippetDirectAnswer) { console.log(da.value); break; } -} \ No newline at end of file +}