diff --git a/docs/search-core.basefeaturedsnippetdirectanswer.fieldtype.md b/docs/search-core.basefeaturedsnippetdirectanswer.fieldtype.md index c3599a4c..4c998ba6 100644 --- a/docs/search-core.basefeaturedsnippetdirectanswer.fieldtype.md +++ b/docs/search-core.basefeaturedsnippetdirectanswer.fieldtype.md @@ -9,5 +9,5 @@ The field type of the direct answer. Signature: ```typescript -fieldType: EnumOrLiteral; +fieldType: EnumOrLiteral; ``` diff --git a/docs/search-core.basefeaturedsnippetdirectanswer.md b/docs/search-core.basefeaturedsnippetdirectanswer.md index a9e8fa56..d23ae803 100644 --- a/docs/search-core.basefeaturedsnippetdirectanswer.md +++ b/docs/search-core.basefeaturedsnippetdirectanswer.md @@ -17,7 +17,7 @@ export interface BaseFeaturedSnippetDirectAnswer extends DirectAnsw | Property | Type | Description | | --- | --- | --- | -| [fieldType](./search-core.basefeaturedsnippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.MultiLineText](./search-core.builtinfieldtype.md) \| [BuiltInFieldType.RichText](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | +| [fieldType](./search-core.basefeaturedsnippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.MultiLineText](./search-core.builtinfieldtype.md) \| [BuiltInFieldType.RichText](./search-core.builtinfieldtype.md) \| [BuiltInFieldType.RichText\_v2](./search-core.builtinfieldtype.md) \| [BuiltInFieldType.Html](./search-core.builtinfieldtype.md) \| [BuiltInFieldType.Markdown](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | | [snippet](./search-core.basefeaturedsnippetdirectanswer.snippet.md) | [Snippet](./search-core.snippet.md) | The snippet where the direct answer was found. | | [type](./search-core.basefeaturedsnippetdirectanswer.type.md) | [DirectAnswerType.FeaturedSnippet](./search-core.directanswertype.md) | Indicates that the DirectAnswer is a [FeaturedSnippetDirectAnswer](./search-core.featuredsnippetdirectanswer.md). | diff --git a/docs/search-core.builtinfieldtype.md b/docs/search-core.builtinfieldtype.md index 8c7d0d70..9a398825 100644 --- a/docs/search-core.builtinfieldtype.md +++ b/docs/search-core.builtinfieldtype.md @@ -23,12 +23,15 @@ export declare enum BuiltInFieldType | Email | "email" | | | FacebookURL | "facebook_url" | | | Hours | "hours" | | +| Html | "html" | | | InstagramHandle | "instagram_handle" | | | Integer | "integer" | | | IOSAppURL | "ios_app_url" | | +| Markdown | "markdown" | | | MultiLineText | "multi_line_text" | | | Phone | "phone" | | | RichText | "rich_text" | | +| RichText\_v2 | "rich_text_v2" | | | SingleLineText | "single_line_text" | | | TwitterHandle | "twitter_handle" | | | URL | "url" | | diff --git a/docs/search-core.directanswer.value.md b/docs/search-core.directanswer.value.md index 77aa935a..5fe63273 100644 --- a/docs/search-core.directanswer.value.md +++ b/docs/search-core.directanswer.value.md @@ -14,5 +14,5 @@ value?: T; ## Remarks -A value will not be present if the [DirectAnswer.type](./search-core.directanswer.type.md) is 'FEATURED\_SNIPPET' and [DirectAnswer.fieldType](./search-core.directanswer.fieldtype.md) is 'rich\_text'. +A value will not be present if the [DirectAnswer.type](./search-core.directanswer.type.md) is 'FEATURED\_SNIPPET' and [DirectAnswer.fieldType](./search-core.directanswer.fieldtype.md) is 'rich\_text', 'markdown', 'html' or 'rich\_text\_v2'. diff --git a/docs/search-core.featuredsnippetdirectanswer.md b/docs/search-core.featuredsnippetdirectanswer.md index fb2a6e1f..04447abb 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 = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; +export declare type FeaturedSnippetDirectAnswer = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer | RichTextV2SnippetDirectAnswer | HTMLSnippetDirectAnswer | MarkdownSnippetDirectAnswer; ``` -References: [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md), [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) +References: [MultiLineTextSnippetDirectAnswer](./search-core.multilinetextsnippetdirectanswer.md), [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md), [RichTextV2SnippetDirectAnswer](./search-core.richtextv2snippetdirectanswer.md), [HTMLSnippetDirectAnswer](./search-core.htmlsnippetdirectanswer.md), [MarkdownSnippetDirectAnswer](./search-core.markdownsnippetdirectanswer.md) diff --git a/docs/search-core.htmlsnippetdirectanswer.fieldtype.md b/docs/search-core.htmlsnippetdirectanswer.fieldtype.md new file mode 100644 index 00000000..a74b7076 --- /dev/null +++ b/docs/search-core.htmlsnippetdirectanswer.fieldtype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HTMLSnippetDirectAnswer](./search-core.htmlsnippetdirectanswer.md) > [fieldType](./search-core.htmlsnippetdirectanswer.fieldtype.md) + +## HTMLSnippetDirectAnswer.fieldType property + +The field type of the direct answer. + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.htmlsnippetdirectanswer.md b/docs/search-core.htmlsnippetdirectanswer.md new file mode 100644 index 00000000..030ca161 --- /dev/null +++ b/docs/search-core.htmlsnippetdirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [HTMLSnippetDirectAnswer](./search-core.htmlsnippetdirectanswer.md) + +## HTMLSnippetDirectAnswer interface + +A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'html' field type. "value" field is omitted for featured snippet direct answer of this field type. + +Signature: + +```typescript +export interface HTMLSnippetDirectAnswer extends Omit, 'value'> +``` +Extends: Omit<[BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md)<string>, 'value'> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.htmlsnippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.Html](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | + diff --git a/docs/search-core.markdownsnippetdirectanswer.fieldtype.md b/docs/search-core.markdownsnippetdirectanswer.fieldtype.md new file mode 100644 index 00000000..dbaedd5b --- /dev/null +++ b/docs/search-core.markdownsnippetdirectanswer.fieldtype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [MarkdownSnippetDirectAnswer](./search-core.markdownsnippetdirectanswer.md) > [fieldType](./search-core.markdownsnippetdirectanswer.fieldtype.md) + +## MarkdownSnippetDirectAnswer.fieldType property + +The field type of the direct answer. + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.markdownsnippetdirectanswer.md b/docs/search-core.markdownsnippetdirectanswer.md new file mode 100644 index 00000000..f64e1d06 --- /dev/null +++ b/docs/search-core.markdownsnippetdirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [MarkdownSnippetDirectAnswer](./search-core.markdownsnippetdirectanswer.md) + +## MarkdownSnippetDirectAnswer interface + +A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'markdown' field type. "value" field is omitted for featured snippet direct answer of this field type. + +Signature: + +```typescript +export interface MarkdownSnippetDirectAnswer extends Omit, 'value'> +``` +Extends: Omit<[BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md)<string>, 'value'> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.markdownsnippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.Markdown](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | + diff --git a/docs/search-core.md b/docs/search-core.md index ceda135f..ccbb1740 100644 --- a/docs/search-core.md +++ b/docs/search-core.md @@ -77,6 +77,7 @@ | [HolidayHours](./search-core.holidayhours.md) | An interface for holiday hours to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). | | [Hours](./search-core.hours.md) | An interface for hours fields to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). | | [HoursDirectAnswer](./search-core.hoursdirectanswer.md) | A [BaseFieldValueDirectAnswer](./search-core.basefieldvaluedirectanswer.md) interface with 'hours' field type. | +| [HTMLSnippetDirectAnswer](./search-core.htmlsnippetdirectanswer.md) | A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'html' field type. "value" field is omitted for featured snippet direct answer of this field type. | | [InstagramHandleDirectAnswer](./search-core.instagramhandledirectanswer.md) | A direct answer for an instagram handle field. | | [IntegerDirectAnswer](./search-core.integerdirectanswer.md) | A direct answer for an integer field. | | [Interval](./search-core.interval.md) | An interface for a time interval to use in [BaseFieldValueDirectAnswer.value](./search-core.basefieldvaluedirectanswer.value.md). | @@ -86,6 +87,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). | +| [MarkdownSnippetDirectAnswer](./search-core.markdownsnippetdirectanswer.md) | A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'markdown' field type. "value" field is omitted for featured snippet direct answer of this 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). | @@ -97,6 +99,7 @@ | [Result](./search-core.result.md) | An individual search result. | | [RichTextDirectAnswer](./search-core.richtextdirectanswer.md) | A direct answer for a rich text field. | | [RichTextSnippetDirectAnswer](./search-core.richtextsnippetdirectanswer.md) | A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'rich\_text' field type. "value" field is omitted for featured snippet direct answer of this field type. | +| [RichTextV2SnippetDirectAnswer](./search-core.richtextv2snippetdirectanswer.md) | A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'rich\_text\_v2' 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.richtextv2snippetdirectanswer.fieldtype.md b/docs/search-core.richtextv2snippetdirectanswer.fieldtype.md new file mode 100644 index 00000000..1bbf4c0b --- /dev/null +++ b/docs/search-core.richtextv2snippetdirectanswer.fieldtype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextV2SnippetDirectAnswer](./search-core.richtextv2snippetdirectanswer.md) > [fieldType](./search-core.richtextv2snippetdirectanswer.fieldtype.md) + +## RichTextV2SnippetDirectAnswer.fieldType property + +The field type of the direct answer. + +Signature: + +```typescript +fieldType: EnumOrLiteral; +``` diff --git a/docs/search-core.richtextv2snippetdirectanswer.md b/docs/search-core.richtextv2snippetdirectanswer.md new file mode 100644 index 00000000..aefceeb0 --- /dev/null +++ b/docs/search-core.richtextv2snippetdirectanswer.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@yext/search-core](./search-core.md) > [RichTextV2SnippetDirectAnswer](./search-core.richtextv2snippetdirectanswer.md) + +## RichTextV2SnippetDirectAnswer interface + +A [BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md) with 'rich\_text\_v2' field type. "value" field is omitted for featured snippet direct answer of this field type. + +Signature: + +```typescript +export interface RichTextV2SnippetDirectAnswer extends Omit, 'value'> +``` +Extends: Omit<[BaseFeaturedSnippetDirectAnswer](./search-core.basefeaturedsnippetdirectanswer.md)<string>, 'value'> + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [fieldType](./search-core.richtextv2snippetdirectanswer.fieldtype.md) | [EnumOrLiteral](./search-core.enumorliteral.md)<[BuiltInFieldType.RichText\_v2](./search-core.builtinfieldtype.md)> | The field type of the direct answer. | + diff --git a/docs/search-core.snippet.md b/docs/search-core.snippet.md index 35d1cf84..9262bb8b 100644 --- a/docs/search-core.snippet.md +++ b/docs/search-core.snippet.md @@ -17,5 +17,5 @@ export interface Snippet | Property | Type | Description | | --- | --- | --- | | [matchedSubstrings](./search-core.snippet.matchedsubstrings.md) | { offset: number; length: number; }\[\] | The locations in the document text of the [DirectAnswer.value](./search-core.directanswer.value.md) | -| [value](./search-core.snippet.value.md) | string | The snippet's body of text | +| [value](./search-core.snippet.value.md) | string | The raw snippet value, or HTML if - entity is of type HTML - the conversion to HTML is enabled in search configuration | diff --git a/docs/search-core.snippet.value.md b/docs/search-core.snippet.value.md index d061bf0c..80840c67 100644 --- a/docs/search-core.snippet.value.md +++ b/docs/search-core.snippet.value.md @@ -4,7 +4,7 @@ ## Snippet.value property -The snippet's body of text +The raw snippet value, or HTML if - entity is of type HTML - the conversion to HTML is enabled in search configuration Signature: diff --git a/etc/search-core.api.md b/etc/search-core.api.md index a44ffbea..2d46a534 100644 --- a/etc/search-core.api.md +++ b/etc/search-core.api.md @@ -90,7 +90,7 @@ export interface AutocompleteService { // @public export interface BaseFeaturedSnippetDirectAnswer extends DirectAnswer { - fieldType: EnumOrLiteral; + fieldType: EnumOrLiteral; snippet: Snippet; type: DirectAnswerType.FeaturedSnippet; } @@ -135,18 +135,24 @@ export enum BuiltInFieldType { // (undocumented) Hours = "hours", // (undocumented) + Html = "html", + // (undocumented) InstagramHandle = "instagram_handle", // (undocumented) Integer = "integer", // (undocumented) IOSAppURL = "ios_app_url", // (undocumented) + Markdown = "markdown", + // (undocumented) MultiLineText = "multi_line_text", // (undocumented) Phone = "phone", // (undocumented) RichText = "rich_text", // (undocumented) + RichText_v2 = "rich_text_v2", + // (undocumented) SingleLineText = "single_line_text", // (undocumented) TwitterHandle = "twitter_handle", @@ -321,7 +327,7 @@ export interface FailedVertical { } // @public -export type FeaturedSnippetDirectAnswer = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; +export type FeaturedSnippetDirectAnswer = MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer | RichTextV2SnippetDirectAnswer | HTMLSnippetDirectAnswer | MarkdownSnippetDirectAnswer; // @public export type FieldValueDirectAnswer = UnknownFieldValueDirectAnswer | TextDirectAnswer | UrlDirectAnswer | RichTextDirectAnswer | DecimalDirectAnswer | FacebookUrlDirectAnswer | InstagramHandleDirectAnswer | TwitterHandleDirectAnswer | IosAppUrlDirectAnswer | AndroidAppUrlDirectAnswer | ComplexUrlDirectAnswer | IntegerDirectAnswer | PhoneDirectAnswer | EmailDirectAnswer | AddressDirectAnswer | HoursDirectAnswer; @@ -419,6 +425,11 @@ export interface HoursDirectAnswer extends BaseFieldValueDirectAnswer; } +// @public +export interface HTMLSnippetDirectAnswer extends Omit, 'value'> { + fieldType: EnumOrLiteral; +} + // @public export interface InstagramHandleDirectAnswer extends BaseFieldValueDirectAnswer { // (undocumented) @@ -489,6 +500,11 @@ export interface LowerNumberRangeLimit { value: number; } +// @public +export interface MarkdownSnippetDirectAnswer extends Omit, 'value'> { + fieldType: EnumOrLiteral; +} + // @public export enum Matcher { Between = "$between", @@ -599,6 +615,11 @@ export interface RichTextSnippetDirectAnswer extends Omit; } +// @public +export interface RichTextV2SnippetDirectAnswer extends Omit, 'value'> { + fieldType: EnumOrLiteral; +} + // @public @deprecated export const SandboxEndpoints: Required; diff --git a/src/models/searchservice/response/Snippet.ts b/src/models/searchservice/response/Snippet.ts index 1f2538ff..f67fdbfc 100644 --- a/src/models/searchservice/response/Snippet.ts +++ b/src/models/searchservice/response/Snippet.ts @@ -4,7 +4,10 @@ * @public */ export interface Snippet { - /** The snippet's body of text */ + /** The raw snippet value, or HTML if + * - entity is of type HTML + * - the conversion to HTML is enabled in search configuration + * */ value: string, /** The locations in the document text of the {@link DirectAnswer.value} */ matchedSubstrings: { offset: number, length: number }[] diff --git a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts index 8251ecb0..8524c801 100644 --- a/src/models/searchservice/response/directanswer/BuiltInFieldType.ts +++ b/src/models/searchservice/response/directanswer/BuiltInFieldType.ts @@ -19,5 +19,8 @@ export enum BuiltInFieldType { Integer = 'integer', SingleLineText = 'single_line_text', RichText = 'rich_text', - MultiLineText = 'multi_line_text' + MultiLineText = 'multi_line_text', + RichText_v2 = 'rich_text_v2', + Html = 'html', + Markdown = 'markdown' } \ No newline at end of file diff --git a/src/models/searchservice/response/directanswer/DirectAnswer.ts b/src/models/searchservice/response/directanswer/DirectAnswer.ts index a4d38b45..ba01f8cd 100644 --- a/src/models/searchservice/response/directanswer/DirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/DirectAnswer.ts @@ -16,7 +16,7 @@ export interface DirectAnswer { * * @remarks * A value will not be present if the {@link DirectAnswer."type"} is 'FEATURED_SNIPPET' - * and {@link DirectAnswer.fieldType} is 'rich_text'. + * and {@link DirectAnswer.fieldType} is 'rich_text', 'markdown', 'html' or 'rich_text_v2'. */ value?: T, /** The entity associated with the direct answer. */ diff --git a/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts index ec48022f..cfff5170 100644 --- a/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/FeaturedSnippetDirectAnswer.ts @@ -5,7 +5,10 @@ import { BuiltInFieldType } from './BuiltInFieldType'; import { EnumOrLiteral } from '../../../utils/EnumOrLiteral'; import { MultiLineTextSnippetDirectAnswer, - RichTextSnippetDirectAnswer + RichTextSnippetDirectAnswer, + RichTextV2SnippetDirectAnswer, + HTMLSnippetDirectAnswer, + MarkdownSnippetDirectAnswer } from './featuredsnippetdirectanswers'; /** @@ -17,7 +20,12 @@ export interface BaseFeaturedSnippetDirectAnswer extends DirectAnsw /** {@inheritDoc DirectAnswerType.FeaturedSnippet} */ type: DirectAnswerType.FeaturedSnippet, /** {@inheritDoc DirectAnswer.fieldType} */ - fieldType: EnumOrLiteral, + fieldType: EnumOrLiteral< + BuiltInFieldType.MultiLineText | + BuiltInFieldType.RichText | + BuiltInFieldType.RichText_v2 | + BuiltInFieldType.Html | + BuiltInFieldType.Markdown>, /** The snippet where the direct answer was found. */ snippet: Snippet } @@ -28,4 +36,8 @@ export interface BaseFeaturedSnippetDirectAnswer extends DirectAnsw * @public */ export type FeaturedSnippetDirectAnswer = - MultiLineTextSnippetDirectAnswer | RichTextSnippetDirectAnswer; + MultiLineTextSnippetDirectAnswer | + RichTextSnippetDirectAnswer | + RichTextV2SnippetDirectAnswer | + HTMLSnippetDirectAnswer | + MarkdownSnippetDirectAnswer; diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/HTMLSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/HTMLSnippetDirectAnswer.ts new file mode 100644 index 00000000..dbb166dd --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/HTMLSnippetDirectAnswer.ts @@ -0,0 +1,14 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFeaturedSnippetDirectAnswer } from '../FeaturedSnippetDirectAnswer'; + +/** + * A {@link BaseFeaturedSnippetDirectAnswer} with 'html' field type. + * "value" field is omitted for featured snippet direct answer of this field type. + * + * @public + */ +export interface HTMLSnippetDirectAnswer extends Omit, 'value'> { + /** {@inheritDoc DirectAnswer.fieldType} */ + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MarkdownSnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MarkdownSnippetDirectAnswer.ts new file mode 100644 index 00000000..22b86834 --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/MarkdownSnippetDirectAnswer.ts @@ -0,0 +1,14 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFeaturedSnippetDirectAnswer } from '../FeaturedSnippetDirectAnswer'; + +/** + * A {@link BaseFeaturedSnippetDirectAnswer} with 'markdown' field type. + * "value" field is omitted for featured snippet direct answer of this field type. + * + * @public + */ +export interface MarkdownSnippetDirectAnswer extends Omit, 'value'> { + /** {@inheritDoc DirectAnswer.fieldType} */ + fieldType: EnumOrLiteral +} diff --git a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextV2SnippetDirectAnswer.ts b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextV2SnippetDirectAnswer.ts new file mode 100644 index 00000000..df632e16 --- /dev/null +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/RichTextV2SnippetDirectAnswer.ts @@ -0,0 +1,14 @@ +import { EnumOrLiteral } from '../../../../utils/EnumOrLiteral'; +import { BuiltInFieldType } from '../BuiltInFieldType'; +import { BaseFeaturedSnippetDirectAnswer } from '../FeaturedSnippetDirectAnswer'; + +/** + * A {@link BaseFeaturedSnippetDirectAnswer} with 'rich_text_v2' field type. + * "value" field is omitted for featured snippet direct answer of this field type. + * + * @public + */ +export interface RichTextV2SnippetDirectAnswer 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 61b085e5..bb7f5b2a 100644 --- a/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts +++ b/src/models/searchservice/response/directanswer/featuredsnippetdirectanswers/index.ts @@ -1,2 +1,5 @@ export { RichTextSnippetDirectAnswer } from './RichTextSnippetDirectAnswer'; export { MultiLineTextSnippetDirectAnswer } from './MultiLineTextSnippetDirectAnswer'; +export { RichTextV2SnippetDirectAnswer } from './RichTextV2SnippetDirectAnswer'; +export {HTMLSnippetDirectAnswer} from './HTMLSnippetDirectAnswer'; +export {MarkdownSnippetDirectAnswer} from './MarkdownSnippetDirectAnswer'; diff --git a/src/transformers/searchservice/createDirectAnswer.ts b/src/transformers/searchservice/createDirectAnswer.ts index b964b1d5..0157ca3d 100644 --- a/src/transformers/searchservice/createDirectAnswer.ts +++ b/src/transformers/searchservice/createDirectAnswer.ts @@ -25,7 +25,11 @@ export function createDirectAnswer(data: any): FeaturedSnippetDirectAnswer | Fie }; } else if (isFeaturedSnippetDirectAnswer) { const fieldType = commonDirectAnswerData.fieldType; - if (fieldType != BuiltInFieldType.MultiLineText && fieldType != BuiltInFieldType.RichText) { + if (fieldType != BuiltInFieldType.MultiLineText && + fieldType != BuiltInFieldType.RichText && + fieldType != BuiltInFieldType.RichText_v2 && + fieldType != BuiltInFieldType.Html && + fieldType != BuiltInFieldType.Markdown) { throw new Error(`Unexpected fieldType for featured snippet direct answer: ${fieldType}`); } return {