mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-06 17:05:34 +00:00
Fixes #3199. Ensures that the model package compiler passes schema validation for kmp.json. Three problems were corrected: 1. `followKeyboardVersion` is a source-only property; it should not be in deployable kmp.json. 2. `copyLocation` should have been a number not a string (in XML everything is a string... but JSON has more control here) 3. `fileType` is a source-only property; it also should not be in deployable kmp.json. I have checked that the resulting files validate against the package kmp.json schema version 1.1.0 defined at https://github.com/keymanapp/api.keyman.com/blob/master/schemas/package/1.1.0/package.json. None of these fixes should impact the use of these packages in target apps. `followKeyboardVersion` and `fileType` are used only in the source at package development time, and `copyLocation` is unused (and should be eliminated from Keyman altogether in the future).
77 lines
1.5 KiB
TypeScript
77 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 {
|
|
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;
|
|
}
|