UNPKG

@jargon/platform-sdk-core

Version:

Core components of the Jargon Platform SDK for node.js

148 lines (147 loc) 5.07 kB
export declare type Platform = 'ActionsOnGoogle' | 'Alexa' | 'Bixby' | 'Siri'; export declare type ManifestFormat = 1; export declare type PackageFormat = 1; export declare type LocaleContentFormat = 1; export declare const MANIFEST_FILE_NAME = "jargon-manifest.json"; export interface ReleaseManifestV1 { manifestFormat: ManifestFormat; packageFormat: PackageFormat; projectID?: string; releaseID?: string; generated?: Date; contentInterfaceID?: string; supportContentInterfaceIDs?: string[]; locales: string[]; fallbackLocales?: Record<string, string[]>; } export declare function isReleaseManifest(m: any): m is ReleaseManifestV1; export interface LocaleContentMetadata { format: LocaleContentFormat; locale: string; } export interface LocaleContentV1 { __jmd: LocaleContentMetadata; responses?: Record<string, ResponseContent>; strings?: Record<string, StringContent>; objects?: Record<string, ObjectContent>; } export declare function isLocaleContentV1(c: any): c is LocaleContentV1; export interface VariadicContent<T extends Variant, CM extends ContentMetadata = ContentMetadata> { __jmd?: CM; variants: VariantRecord<T>; } export interface ObjectContent extends VariadicContent<ObjectVariant> { } export interface ResponseContent extends VariadicContent<ResponseVariant> { } export interface StringContent extends VariadicContent<StringVariant> { } export interface ContentMetadata { } export interface Variant { __jmd?: VariantMetadata; } export interface VariantMetadata { /** If present, the variant is not eligible for the listed platforms. Ignored if platforms is set. */ excludedPlatforms?: [Platform]; /** If present, the variant is only eligible for the listed platforms */ platforms?: [Platform]; } export interface VariantRecord<T extends Variant> extends Record<string, T> { } export interface ResponseVariant extends Variant { speech?: StringResource; reprompt?: StringResource; alexaCard?: AlexaCardResource; alexaDirectives?: Record<string, AlexaDirectiveResource>; googleCard?: GoogleCardResource; googleSuggestions?: GoogleSuggestionsResource; googleMediaObject?: GoogleMediaObjectResource; } export declare const ResponseVariantStringResources: string[]; export declare type StringVariant = Variant & StringResource; export declare type ObjectVariant = Variant & ObjectResource; export declare function isResponseVariant(rv: any): rv is ResponseVariant; export interface Resource<T, RM extends ResourceMetadata = ResourceMetadata> { __jmd?: RM; content: T; } export interface ResourceMetadata { } export declare type StringFormat = 'ssml' | 'plain' | 'apl' | 'html'; export interface StringResourceMetadata extends ResourceMetadata { format?: StringFormat; } export interface StringResource extends Resource<string, StringResourceMetadata> { } export interface ObjectResourceMetadata extends ResourceMetadata { } export interface ObjectResource extends Resource<object, ObjectResourceMetadata> { } export declare type AlexaCardType = 'Simple' | 'Standard'; export declare type AlexaCard = AlexaSimpleCard | AlexaStandardCard; export interface AlexaSimpleCard { type: 'Simple'; title: string; content: string; } export interface AlexaStandardCard { type: 'Standard'; title: string; text: string; image?: AlexaCardImages; } export interface AlexaCardImages { smallImageUrl?: string; largeImageUrl?: string; } export interface AlexaCardResourceMetadata extends ResourceMetadata { } export interface AlexaCardResource extends Resource<AlexaCard, AlexaCardResourceMetadata> { } export interface GoogleCard { title?: string; subtitle?: string; text?: string; image?: GoogleCardImage; button?: GoogleCardButtons; } export interface GoogleCardImage { imageUrl?: string; imageAlt?: string; } export interface GoogleCardButtons { buttonTitle?: string; buttonUrl?: string; } export interface GoogleCardResourceMetadata extends ResourceMetadata { } export interface GoogleCardResource extends Resource<GoogleCard, GoogleCardResourceMetadata> { } export interface GoogleMediaObject { url: string; name?: string; description?: string; imageOrIcon?: GoogleMediaObjectImageOrIcon; } export interface GoogleMediaObjectImageOrIcon { type: 'Image' | 'Icon'; url: string; alt: string; } export interface GoogleMediaObjectResourceMetadata extends ResourceMetadata { } export interface GoogleMediaObjectResource extends Resource<GoogleMediaObject, GoogleMediaObjectResourceMetadata> { } export interface GoogleSuggestion { chip: string; url?: string; } export interface AlexaDirectiveResourceMetadata extends ResourceMetadata { } export interface AlexaDirectiveResource extends Resource<object, AlexaDirectiveResourceMetadata> { } export interface GoogleSuggestionsResourceMetadata extends ResourceMetadata { } export interface GoogleSuggestionsResource extends Resource<GoogleSuggestion[], GoogleSuggestionsResourceMetadata> { }