@jargon/platform-sdk-core
Version:
Core components of the Jargon Platform SDK for node.js
148 lines (147 loc) • 5.07 kB
TypeScript
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> {
}