spiegel-keyman/developer/js/source/package-compiler/kmp-json-file.ts

78 lines
1.5 KiB
TypeScript

interface KmpJsonFile {
system: KmpJsonFileSystem;
options: KmpJsonFileOptions;
info?: KmpJsonFileInfo;
files?: KmpJsonFileContentFile[];
lexicalModels?: KmpJsonFileLexicalModel[];
startMenu?: KmpJsonFileStartMenu;
keyboards?: KmpJsonFileKeyboard[];
strings?: string[];
}
interface KmpJsonFileSystem {
keymanDeveloperVersion: string;
fileVersion: string;
}
interface KmpJsonFileOptions {
followKeyboardVersion: boolean;
readmeFile?: string;
graphicFile?: string;
executeProgram?: string;
msiFilename?: string;
msiOptions?: string;
}
interface KmpJsonFileInfo {
website?: KmpJsonFileInfoItem;
version?: KmpJsonFileInfoItem;
name?: KmpJsonFileInfoItem;
copyright?: KmpJsonFileInfoItem;
author?: KmpJsonFileInfoItem;
}
interface KmpJsonFileInfoItem {
description: string;
url?: string;
}
interface KmpJsonFileContentFile {
name: string;
description: string;
copyLocation?: number;
}
interface KmpJsonFileLexicalModel {
name: string;
id: string;
languages: KmpJsonFileLanguage[];
}
interface KmpJsonFileLanguage {
name: string;
id: string;
}
interface KmpJsonFileKeyboard {
name: string;
id: string;
version: string;
oskFont?: string;
displayFont?: string;
rtl?: boolean;
languages?: KmpJsonFileLanguage[];
}
interface KmpJsonFileStartMenu {
folder?: string;
addUninstallEntry?: boolean;
items?: KmpJsonFileStartMenuItem[];
}
interface KmpJsonFileStartMenuItem {
name: string;
filename: string;
arguments?: string;
icon?: string;
location?: string;
}