From 7807ed1c7fd8f95956bb4b49aff7052bed1e1143 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Fri, 8 Feb 2019 12:45:55 +1100 Subject: [PATCH 1/7] [api.keyman.com] Lexical model schema drafts --- schemas/package.json | 41 ++++++++++++++++++++++++++++++++++++++++- schemas/readme.MD | 19 +++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/schemas/package.json b/schemas/package.json index bfc4cc0..33bba9b 100644 --- a/schemas/package.json +++ b/schemas/package.json @@ -23,6 +23,9 @@ "keyboards": { "$ref": "#/definitions/keyboards" }, + "lexicalModels": { + "$ref": "#/definitions/lexicalModels" + }, "info": { "$ref": "#/definitions/info" } @@ -239,6 +242,42 @@ "required": [ "description" ] + }, + "lexicalModels": { + "type": "array", + "items": { + "$ref": "#/definitions/lexicalModel" + } + }, + "lexicalModel": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "version": { + "type": "string" + }, + "rtl": { + "type": "boolean" + }, + "languages": { + "type": "array", + "items": { + "$ref": "#/definitions/keyboardLanguage" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "id", + "version", + "languages" + ] } } -} +} \ No newline at end of file diff --git a/schemas/readme.MD b/schemas/readme.MD index 258c8c5..dff6a1c 100644 --- a/schemas/readme.MD +++ b/schemas/readme.MD @@ -69,6 +69,9 @@ Documentation at https://help.keyman.com/developer/10.0/reference/file-types/met # package.json version history +## 2019-01-31 1.1.0 +* Add lexicalModels properties + ## 2018-02-13 1.0.2 * Add rtl property for keyboard layouts @@ -108,3 +111,19 @@ Documentation at https://help.keyman.com/developer/cloud/ ## 2018-01-31 * Created schema files for existing json api endpoints + +------------------------------------------------------------ + +# model_info + +* model_info.source.json +* model_info.distribution.json + +Documentation at https://help.keyman.com/developer/cloud/model_info + +New versions should be deployed to +- **keymanapp/keyman/windows/src/global/inst/model_info** +- **keymanapp/lexical-models/tools** + +## 2019-01-31 1.0 beta +* Initial version From 7f302b994c35326b3a1ead5d7f6d17a01935dbfa Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Fri, 8 Feb 2019 12:50:36 +1100 Subject: [PATCH 2/7] [api.keyman.com] add draft schema files --- schemas/model_info.distribution.json | 8 ++++++++ schemas/model_info.source.json | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 schemas/model_info.distribution.json create mode 100644 schemas/model_info.source.json diff --git a/schemas/model_info.distribution.json b/schemas/model_info.distribution.json new file mode 100644 index 0000000..e9fbf66 --- /dev/null +++ b/schemas/model_info.distribution.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "allOf": [ + { "$ref": "/model_info.source.json#/definitions/ModelInfo" }, + { "required": [ "id", "name", "license", "languages", "lastModifiedDate" ] } + ] +} diff --git a/schemas/model_info.source.json b/schemas/model_info.source.json new file mode 100644 index 0000000..e9fbf66 --- /dev/null +++ b/schemas/model_info.source.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "allOf": [ + { "$ref": "/model_info.source.json#/definitions/ModelInfo" }, + { "required": [ "id", "name", "license", "languages", "lastModifiedDate" ] } + ] +} From ed978af7a845a14ca93896b67fd6b838487f7bb0 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Tue, 12 Feb 2019 06:08:00 +1100 Subject: [PATCH 3/7] [api.keyman.com] Fix model_info.source.json --- schemas/model_info.source.json | 67 ++++++++++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 7 deletions(-) diff --git a/schemas/model_info.source.json b/schemas/model_info.source.json index e9fbf66..1b91695 100644 --- a/schemas/model_info.source.json +++ b/schemas/model_info.source.json @@ -1,8 +1,61 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", - "type": "object", - "allOf": [ - { "$ref": "/model_info.source.json#/definitions/ModelInfo" }, - { "required": [ "id", "name", "license", "languages", "lastModifiedDate" ] } - ] -} + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/ModelInfo", + + "definitions": { + "ModelInfo": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "name": { "type": "string" }, + "authorName": { "type": "string" }, + "authorEmail": { "type": "string", "format": "email" }, + "description": { "type": "string" }, + "license": { "type": "string", "enum": ["mit"] }, + "languages": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, + "lastModifiedDate": { "type": "string", "format": "date-time" }, + "links": { "type": "array", "items": { "$ref": "#/definitions/ModelLinkInfo" } }, + "packageFilename": { "type": "string", "pattern": "\\.model\\.kmp$" }, + "packageFileSize": { "type": "number" }, + "jsFilename": { "type": "string", "pattern": "\\.model\\.js$" }, + "jsFileSize": { "type": "number" }, + "isRTL": { "type": "boolean" }, + "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["documentation", "fonts"] }, "additionalItems": false }, + "version": { "type": "string" }, + "minKeymanVersion": { "type": "string", "pattern": "^\\d+\\.0$" }, + "helpLink": { "type": "string", "pattern": "^https://help\\.keyman\\.com/lexical-model/" }, + "sourcePath": { "type": "string", "pattern": "^(release|experimental)/.+/.+$" }, + "related": { "type": "object", "patternProperties": { + ".": { "$ref": "#/definitions/ModelRelatedInfo" } + }, + "additionalProperties": false + } + }, + "required": [ + "license", "languages" + ], + "additionalProperties": false + }, + + "ModelLinkInfo": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "url": { "type": "string" } + }, + "required": ["name", "url"], + "additionalProperties": false + }, + + "ModelRelatedInfo": { + "type": "object", + "properties": { + "deprecates": { "type": "boolean" }, + "deprecatedBy": { "type": "boolean" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + } + } +} \ No newline at end of file From e2891fe6ce022cff760722788af74617a3dfd88a Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Tue, 12 Feb 2019 06:41:44 +1100 Subject: [PATCH 4/7] [api.keyman.com] Update required fields for model_info distribution --- schemas/model_info.distribution.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/model_info.distribution.json b/schemas/model_info.distribution.json index e9fbf66..e0da030 100644 --- a/schemas/model_info.distribution.json +++ b/schemas/model_info.distribution.json @@ -3,6 +3,6 @@ "type": "object", "allOf": [ { "$ref": "/model_info.source.json#/definitions/ModelInfo" }, - { "required": [ "id", "name", "license", "languages", "lastModifiedDate" ] } + { "required": [ "id", "name", "license", "languages", "lastModifiedDate", "packageFilename", "jsFilename", "packageIncludes", "version", "minKeymanVersion" ] } ] } From 769235d52c9087d6ff73438a54c6b69a247e9782 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Tue, 12 Feb 2019 07:19:46 +1100 Subject: [PATCH 5/7] [api.keyman.com] Sync schema to implementation --- schemas/model_info.source.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/model_info.source.json b/schemas/model_info.source.json index 1b91695..e8fda91 100644 --- a/schemas/model_info.source.json +++ b/schemas/model_info.source.json @@ -20,7 +20,7 @@ "jsFilename": { "type": "string", "pattern": "\\.model\\.js$" }, "jsFileSize": { "type": "number" }, "isRTL": { "type": "boolean" }, - "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["documentation", "fonts"] }, "additionalItems": false }, + "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["documentation"] }, "additionalItems": false }, "version": { "type": "string" }, "minKeymanVersion": { "type": "string", "pattern": "^\\d+\\.0$" }, "helpLink": { "type": "string", "pattern": "^https://help\\.keyman\\.com/lexical-model/" }, From 64d8b2637adef1a4add57355bc7f629e3f3a8f0f Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 13 Feb 2019 08:23:29 +1100 Subject: [PATCH 6/7] [api.keyman.com] Fix schema packageIncludes from documentation to fonts for model_info --- schemas/model_info.source.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/model_info.source.json b/schemas/model_info.source.json index e8fda91..990fd72 100644 --- a/schemas/model_info.source.json +++ b/schemas/model_info.source.json @@ -20,7 +20,7 @@ "jsFilename": { "type": "string", "pattern": "\\.model\\.js$" }, "jsFileSize": { "type": "number" }, "isRTL": { "type": "boolean" }, - "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["documentation"] }, "additionalItems": false }, + "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["fonts"] }, "additionalItems": false }, "version": { "type": "string" }, "minKeymanVersion": { "type": "string", "pattern": "^\\d+\\.0$" }, "helpLink": { "type": "string", "pattern": "^https://help\\.keyman\\.com/lexical-model/" }, From c7c79f9872418e24364c975b8146763f91cd473f Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Thu, 14 Feb 2019 14:10:04 +1100 Subject: [PATCH 7/7] [api.keyman.com] Reorganise json schema files to introduce versions --- .../1.0.1}/keyboard_info.distribution.json | 0 .../1.0.2/keyboard_info.distribution.json | 8 + .../1.0.3/keyboard_info.distribution.json | 8 + .../1.0.4/keyboard_info.distribution.json | 8 + .../1.0/keyboard_info.distribution.json | 8 + .../1.0.1/keyboard_info.source.json | 168 ++++++++++++ .../1.0.2/keyboard_info.source.json | 168 ++++++++++++ .../1.0.3/keyboard_info.source.json | 168 ++++++++++++ .../1.0.4}/keyboard_info.source.json | 0 .../1.0/keyboard_info.source.json | 162 ++++++++++++ .../1.0}/keyboard_json.json | 0 .../1.0}/model_info.distribution.json | 0 .../1.0}/model_info.source.json | 0 schemas/package/1.0.1/package.json | 241 +++++++++++++++++ schemas/package/1.0.2/package.json | 244 +++++++++++++++++ schemas/package/1.0/package.json | 245 ++++++++++++++++++ schemas/{ => package/1.1.0}/package.json | 0 schemas/readme.MD | 2 +- schemas/{ => search/1.0.1}/search.json | 0 schemas/search/1.0/search.json | 25 ++ schemas/{ => version/2.0}/version.json | 0 schemas/web.config | 47 ++++ 22 files changed, 1501 insertions(+), 1 deletion(-) rename schemas/{ => keyboard_info.distribution/1.0.1}/keyboard_info.distribution.json (100%) create mode 100644 schemas/keyboard_info.distribution/1.0.2/keyboard_info.distribution.json create mode 100644 schemas/keyboard_info.distribution/1.0.3/keyboard_info.distribution.json create mode 100644 schemas/keyboard_info.distribution/1.0.4/keyboard_info.distribution.json create mode 100644 schemas/keyboard_info.distribution/1.0/keyboard_info.distribution.json create mode 100644 schemas/keyboard_info.source/1.0.1/keyboard_info.source.json create mode 100644 schemas/keyboard_info.source/1.0.2/keyboard_info.source.json create mode 100644 schemas/keyboard_info.source/1.0.3/keyboard_info.source.json rename schemas/{ => keyboard_info.source/1.0.4}/keyboard_info.source.json (100%) create mode 100644 schemas/keyboard_info.source/1.0/keyboard_info.source.json rename schemas/{ => keyboard_json/1.0}/keyboard_json.json (100%) rename schemas/{ => model_info.distribution/1.0}/model_info.distribution.json (100%) rename schemas/{ => model_info.source/1.0}/model_info.source.json (100%) create mode 100644 schemas/package/1.0.1/package.json create mode 100644 schemas/package/1.0.2/package.json create mode 100644 schemas/package/1.0/package.json rename schemas/{ => package/1.1.0}/package.json (100%) rename schemas/{ => search/1.0.1}/search.json (100%) create mode 100644 schemas/search/1.0/search.json rename schemas/{ => version/2.0}/version.json (100%) diff --git a/schemas/keyboard_info.distribution.json b/schemas/keyboard_info.distribution/1.0.1/keyboard_info.distribution.json similarity index 100% rename from schemas/keyboard_info.distribution.json rename to schemas/keyboard_info.distribution/1.0.1/keyboard_info.distribution.json diff --git a/schemas/keyboard_info.distribution/1.0.2/keyboard_info.distribution.json b/schemas/keyboard_info.distribution/1.0.2/keyboard_info.distribution.json new file mode 100644 index 0000000..3d3d4ee --- /dev/null +++ b/schemas/keyboard_info.distribution/1.0.2/keyboard_info.distribution.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "allOf": [ + { "$ref": "/keyboard_info.source.json#/definitions/KeyboardInfo" }, + { "required": [ "id", "name", "license", "languages", "lastModifiedDate", "platformSupport" ] } + ] +} diff --git a/schemas/keyboard_info.distribution/1.0.3/keyboard_info.distribution.json b/schemas/keyboard_info.distribution/1.0.3/keyboard_info.distribution.json new file mode 100644 index 0000000..3d3d4ee --- /dev/null +++ b/schemas/keyboard_info.distribution/1.0.3/keyboard_info.distribution.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "allOf": [ + { "$ref": "/keyboard_info.source.json#/definitions/KeyboardInfo" }, + { "required": [ "id", "name", "license", "languages", "lastModifiedDate", "platformSupport" ] } + ] +} diff --git a/schemas/keyboard_info.distribution/1.0.4/keyboard_info.distribution.json b/schemas/keyboard_info.distribution/1.0.4/keyboard_info.distribution.json new file mode 100644 index 0000000..3d3d4ee --- /dev/null +++ b/schemas/keyboard_info.distribution/1.0.4/keyboard_info.distribution.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "allOf": [ + { "$ref": "/keyboard_info.source.json#/definitions/KeyboardInfo" }, + { "required": [ "id", "name", "license", "languages", "lastModifiedDate", "platformSupport" ] } + ] +} diff --git a/schemas/keyboard_info.distribution/1.0/keyboard_info.distribution.json b/schemas/keyboard_info.distribution/1.0/keyboard_info.distribution.json new file mode 100644 index 0000000..3d3d4ee --- /dev/null +++ b/schemas/keyboard_info.distribution/1.0/keyboard_info.distribution.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "allOf": [ + { "$ref": "/keyboard_info.source.json#/definitions/KeyboardInfo" }, + { "required": [ "id", "name", "license", "languages", "lastModifiedDate", "platformSupport" ] } + ] +} diff --git a/schemas/keyboard_info.source/1.0.1/keyboard_info.source.json b/schemas/keyboard_info.source/1.0.1/keyboard_info.source.json new file mode 100644 index 0000000..faebdb8 --- /dev/null +++ b/schemas/keyboard_info.source/1.0.1/keyboard_info.source.json @@ -0,0 +1,168 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/KeyboardInfo", + + "definitions": { + "KeyboardInfo": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "name": { "type": "string" }, + "authorName": { "type": "string" }, + "authorEmail": { "type": "string", "format": "email" }, + "description": { "type": "string" }, + "license": { "type": "string", "enum": ["freeware", "shareware", "commercial", "mit", "other"] }, + "languages": { "anyOf": [ + { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, + { "$ref": "#/definitions/KeyboardLanguageInfo" } + ]}, + "lastModifiedDate": { "type": "string", "format": "date-time" }, + "links": { "type": "array", "items": { "$ref": "#/definitions/KeyboardLinkInfo" } }, + "packageFilename": { "type": "string", "pattern": "\\.km[xp]$" }, + "packageFileSize": { "type": "number" }, + "jsFilename": { "type": "string", "pattern": "\\.js$" }, + "jsFileSize": { "type": "number" }, + "documentationFilename": { "type": "string", "pattern": "\\.(rtf|html?|pdf|txt)$" }, + "documentationFileSize": { "type": "number" }, + "isRTL": { "type": "boolean" }, + "encodings": { "type": "array", "items": { "type": "string", "enum": ["ansi", "unicode"] }, "additionalItems": false }, + "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["welcome", "documentation", "fonts", "visualKeyboard"] }, "additionalItems": false }, + "version": { "type": "string" }, + "minKeymanDesktopVersion": { "type": "string", "pattern": "^\\d+\\.0$" }, + "platformSupport": { "$ref": "#/definitions/KeyboardPlatformInfo" }, + "legacyId": { "type": "number" }, + "sourcePath": { "type": "string", "pattern": "^(release|legacy|experimental)/.+/.+$" }, + "related": { "type": "object", "patternProperties": { + ".": { "$ref": "#/definitions/KeyboardRelatedInfo" } + }, + "additionalProperties": false + } + }, + "required": [ + "license", "languages" + ], + "additionalProperties": false + }, + + "KeyboardLanguageInfo": { + "type": "object", + "patternProperties": { + ".": { "$ref": "#/definitions/KeyboardLanguageInfoItem" } + }, + "additionalProperties": false + }, + + "KeyboardLanguageInfoItem": { + "type": "object", + "properties": { + "font": { "$ref": "#/definitions/KeyboardFontInfo" }, + "oskFont": { "$ref": "#/definitions/KeyboardFontInfo" }, + "example": { "$ref": "#/definitions/KeyboardExampleInfo" } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardFontInfo": { + "type": "object", + "properties": { + "family": { "type": "string" }, + "source": { "anyOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] }, + "size": { "type": "string" } + }, + "required": ["family", "source"], + "additionalProperties": false + }, + + "KeyboardExampleInfo": { + "type": "object", + "properties": { + "keys": { "anyOf": [ + { "type": "string" }, + { "type": "array", "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "#/definitions/KeyboardExampleKeyInfo" } + ] } + } + ] }, + "text": { "type": "string" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardExampleKeyInfo": { + "type": "object", + "properties": { + "key": { "type": "string", "enum": [ + "K_SPACE", + "K_A", "K_B", "K_C", "K_D", "K_E", "K_F", "K_G", "K_H", "K_I", "K_J", "K_K", "K_L", "K_M", + "K_N", "K_O", "K_P", "K_Q", "K_R", "K_S", "K_T", "K_U", "K_V", "K_W", "K_X", "K_Y", "K_Z", + "K_1", "K_2", "K_3", "K_4", "K_5", "K_6", "K_7", "K_8", "K_9", "K_0", + "K_BKQUOTE", "K_HYPHEN", "K_EQUAL", "K_LBRKT", "K_RBRKT", "K_BKSLASH", "K_COLON", + "K_QUOTE", "K_COMMA", "K_PERIOD", "K_SLASH", + "K_oE2", "K_BKSP", "K_TAB", "K_ENTER", "K_ESC", + "K_LEFT", "K_UP", "K_RIGHT", "K_DOWN", "K_PGUP", "K_PGDN", "K_HOME", "K_END", "K_INS", "K_DEL", + "K_F1", "K_F2", "K_F3", "K_F4", "K_F5", "K_F6", "K_F7", "K_F8", "K_F9", "K_F10", "K_F11", "K_F12", + "K_KP5", "K_NP0", "K_NP1", "K_NP2", "K_NP3", "K_NP4", "K_NP5", "K_NP6", "K_NP7", "K_NP8", "K_NP9", + "K_NPSTAR", "K_NPPLUS", "K_NPMINUS", "K_NPDOT", "K_NPSLASH", + "K_SEL", "K_PRINT", "K_EXEC", "K_HELP", "K_SEPARATOR", + "K_F13", "K_F14", "K_F15", "K_F16", "K_F17", "K_F18", "K_F19", "K_F20", "K_F21", "K_F22", "K_F23", "K_F24", + "K_KANJI?15", "K_KANJI?16", "K_KANJI?17", "K_KANJI?18", "K_KANJI?19", "K_KANJI?1C", "K_KANJI?1D", "K_KANJI?1E", "K_KANJI?1F", + "K_oE0", "K_oE1", "K_oE3", "K_oE4", "K_oE6", "K_oE9", "K_oEA", "K_oEB", "K_oEC", "K_oED", "K_oEE", "K_oEF", + "K_oF0", "K_oF1", "K_oF2", "K_oF3", "K_oF4", "K_oF5", "K_?00", "K_?05", "K_NPENTER", + "K_?06", "K_?07", "K_?0A", "K_?0B", "K_?0E", "K_?0F", "K_?1A", "K_?3A", "K_?3B", "K_?3C", "K_?3D", "K_?3E", + "K_?3F", "K_?40", "K_?5B", "K_?5C", "K_?5D", "K_?5E", "K_?5F", "K_?88", "K_?89", "K_?8A", "K_?8B", "K_?8C", + "K_?8D", "K_?8E", "K_?8F", "K_?92", "K_?94", "K_?95", "K_?96", "K_?97", "K_?98", "K_?99", "K_?9A", "K_?9B", + "K_?9C", "K_?9D", "K_?9E", "K_?9F", "K_?A0", "K_?A1", "K_?A2", "K_?A3", "K_?A4", "K_?A5", "K_?A6", "K_?A7", + "K_?A8", "K_?A9", "K_?AA", "K_?AB", "K_?AC", "K_?AD", "K_?AE", "K_?AF", "K_?B0", "K_?B1", "K_?B2", "K_?B3", + "K_?B4", "K_?B5", "K_?B6", "K_?B7", "K_?B8", "K_?B9", "K_?C1", "K_?C2", "K_?C3", "K_?C4", "K_?C5", "K_?C6", + "K_?C7", "K_?C8", "K_?C9", "K_?CA", "K_?CB", "K_?CC", "K_?CD", "K_?CE", "K_?CF", "K_?D0", "K_?D1", "K_?D2", + "K_?D3", "K_?D4", "K_?D5", "K_?D6", "K_?D7", "K_?D8", "K_?D9", "K_?DA", "K_oDF", "K_?E5", "K_?E7", "K_?E8", + "K_?F6", "K_?F7", "K_?F8", "K_?F9", "K_?FA", "K_?FB", "K_?FC", "K_?FD", "K_?FE", "K_?FF" + ] }, + "modifiers": { + "type": "array", + "items": { "type": "string", "enum": ["shift", "s", "ctrl", "c", "alt", "a", "left-ctrl", "lc", "right-ctrl", "rc", "left-alt", "la", "right-alt", "ra"] } + } + }, + "required": ["key"], + "additionalProperties": false + }, + + "KeyboardLinkInfo": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "url": { "type": "string" } + }, + "required": ["name", "url"], + "additionalProperties": false + }, + + "KeyboardPlatformInfo": { + "type": "object", + "patternProperties": { + "^(windows|macos|desktopWeb|ios|android|mobileWeb|linux)$": { "type": "string", "enum": ["full", "basic", "none"] } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardRelatedInfo": { + "type": "object", + "properties": { + "deprecates": { "type": "boolean" }, + "deprecatedBy": { "type": "boolean" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/schemas/keyboard_info.source/1.0.2/keyboard_info.source.json b/schemas/keyboard_info.source/1.0.2/keyboard_info.source.json new file mode 100644 index 0000000..21ad84a --- /dev/null +++ b/schemas/keyboard_info.source/1.0.2/keyboard_info.source.json @@ -0,0 +1,168 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/KeyboardInfo", + + "definitions": { + "KeyboardInfo": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "name": { "type": "string" }, + "authorName": { "type": "string" }, + "authorEmail": { "type": "string", "format": "email" }, + "description": { "type": "string" }, + "license": { "type": "string", "enum": ["freeware", "shareware", "commercial", "mit", "other"] }, + "languages": { "anyOf": [ + { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, + { "$ref": "#/definitions/KeyboardLanguageInfo" } + ]}, + "lastModifiedDate": { "type": "string", "format": "date-time" }, + "links": { "type": "array", "items": { "$ref": "#/definitions/KeyboardLinkInfo" } }, + "packageFilename": { "type": "string", "pattern": "\\.km[xp]$" }, + "packageFileSize": { "type": "number" }, + "jsFilename": { "type": "string", "pattern": "\\.js$" }, + "jsFileSize": { "type": "number" }, + "documentationFilename": { "type": "string", "pattern": "\\.(rtf|html?|pdf|txt)$" }, + "documentationFileSize": { "type": "number" }, + "isRTL": { "type": "boolean" }, + "encodings": { "type": "array", "items": { "type": "string", "enum": ["ansi", "unicode"] }, "additionalItems": false }, + "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["welcome", "documentation", "fonts", "visualKeyboard"] }, "additionalItems": false }, + "version": { "type": "string" }, + "minKeymanDesktopVersion": { "type": "string", "pattern": "^\\d+\\.0$" }, + "platformSupport": { "$ref": "#/definitions/KeyboardPlatformInfo" }, + "legacyId": { "type": "number" }, + "sourcePath": { "type": "string", "pattern": "^(release|legacy|experimental)/.+/.+$" }, + "related": { "type": "object", "patternProperties": { + ".": { "$ref": "#/definitions/KeyboardRelatedInfo" } + }, + "additionalProperties": false + } + }, + "required": [ + "license", "languages" + ], + "additionalProperties": false + }, + + "KeyboardLanguageInfo": { + "type": "object", + "patternProperties": { + ".": { "$ref": "#/definitions/KeyboardLanguageInfoItem" } + }, + "additionalProperties": false + }, + + "KeyboardLanguageInfoItem": { + "type": "object", + "properties": { + "font": { "$ref": "#/definitions/KeyboardFontInfo" }, + "oskFont": { "$ref": "#/definitions/KeyboardFontInfo" }, + "example": { "$ref": "#/definitions/KeyboardExampleInfo" } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardFontInfo": { + "type": "object", + "properties": { + "family": { "type": "string" }, + "source": { "anyOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] }, + "size": { "type": "string" } + }, + "required": ["family", "source"], + "additionalProperties": false + }, + + "KeyboardExampleInfo": { + "type": "object", + "properties": { + "keys": { "anyOf": [ + { "type": "string" }, + { "type": "array", "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "#/definitions/KeyboardExampleKeyInfo" } + ] } + } + ] }, + "text": { "type": "string" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardExampleKeyInfo": { + "type": "object", + "properties": { + "key": { "type": "string", "enum": [ + "K_SPACE", + "K_A", "K_B", "K_C", "K_D", "K_E", "K_F", "K_G", "K_H", "K_I", "K_J", "K_K", "K_L", "K_M", + "K_N", "K_O", "K_P", "K_Q", "K_R", "K_S", "K_T", "K_U", "K_V", "K_W", "K_X", "K_Y", "K_Z", + "K_1", "K_2", "K_3", "K_4", "K_5", "K_6", "K_7", "K_8", "K_9", "K_0", + "K_BKQUOTE", "K_HYPHEN", "K_EQUAL", "K_LBRKT", "K_RBRKT", "K_BKSLASH", "K_COLON", + "K_QUOTE", "K_COMMA", "K_PERIOD", "K_SLASH", + "K_oE2", "K_BKSP", "K_TAB", "K_ENTER", "K_ESC", + "K_LEFT", "K_UP", "K_RIGHT", "K_DOWN", "K_PGUP", "K_PGDN", "K_HOME", "K_END", "K_INS", "K_DEL", + "K_F1", "K_F2", "K_F3", "K_F4", "K_F5", "K_F6", "K_F7", "K_F8", "K_F9", "K_F10", "K_F11", "K_F12", + "K_KP5", "K_NP0", "K_NP1", "K_NP2", "K_NP3", "K_NP4", "K_NP5", "K_NP6", "K_NP7", "K_NP8", "K_NP9", + "K_NPSTAR", "K_NPPLUS", "K_NPMINUS", "K_NPDOT", "K_NPSLASH", + "K_SEL", "K_PRINT", "K_EXEC", "K_HELP", "K_SEPARATOR", + "K_F13", "K_F14", "K_F15", "K_F16", "K_F17", "K_F18", "K_F19", "K_F20", "K_F21", "K_F22", "K_F23", "K_F24", + "K_KANJI?15", "K_KANJI?16", "K_KANJI?17", "K_KANJI?18", "K_KANJI?19", "K_KANJI?1C", "K_KANJI?1D", "K_KANJI?1E", "K_KANJI?1F", + "K_oE0", "K_oE1", "K_oE3", "K_oE4", "K_oE6", "K_oE9", "K_oEA", "K_oEB", "K_oEC", "K_oED", "K_oEE", "K_oEF", + "K_oF0", "K_oF1", "K_oF2", "K_oF3", "K_oF4", "K_oF5", "K_?00", "K_?05", "K_NPENTER", + "K_?06", "K_?07", "K_?0A", "K_?0B", "K_?0E", "K_?0F", "K_?1A", "K_?3A", "K_?3B", "K_?3C", "K_?3D", "K_?3E", + "K_?3F", "K_?40", "K_?5B", "K_?5C", "K_?5D", "K_?5E", "K_?5F", "K_?88", "K_?89", "K_?8A", "K_?8B", "K_?8C", + "K_?8D", "K_?8E", "K_?8F", "K_?92", "K_?94", "K_?95", "K_?96", "K_?97", "K_?98", "K_?99", "K_?9A", "K_?9B", + "K_?9C", "K_?9D", "K_?9E", "K_?9F", "K_?A0", "K_?A1", "K_?A2", "K_?A3", "K_?A4", "K_?A5", "K_?A6", "K_?A7", + "K_?A8", "K_?A9", "K_?AA", "K_?AB", "K_?AC", "K_?AD", "K_?AE", "K_?AF", "K_?B0", "K_?B1", "K_?B2", "K_?B3", + "K_?B4", "K_?B5", "K_?B6", "K_?B7", "K_?B8", "K_?B9", "K_?C1", "K_?C2", "K_?C3", "K_?C4", "K_?C5", "K_?C6", + "K_?C7", "K_?C8", "K_?C9", "K_?CA", "K_?CB", "K_?CC", "K_?CD", "K_?CE", "K_?CF", "K_?D0", "K_?D1", "K_?D2", + "K_?D3", "K_?D4", "K_?D5", "K_?D6", "K_?D7", "K_?D8", "K_?D9", "K_?DA", "K_oDF", "K_?E5", "K_?E7", "K_?E8", + "K_?F6", "K_?F7", "K_?F8", "K_?F9", "K_?FA", "K_?FB", "K_?FC", "K_?FD", "K_?FE", "K_?FF" + ] }, + "modifiers": { + "type": "array", + "items": { "type": "string", "enum": ["shift", "s", "ctrl", "c", "alt", "a", "left-ctrl", "lc", "right-ctrl", "rc", "left-alt", "la", "right-alt", "ra"] } + } + }, + "required": ["key"], + "additionalProperties": false + }, + + "KeyboardLinkInfo": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "url": { "type": "string" } + }, + "required": ["name", "url"], + "additionalProperties": false + }, + + "KeyboardPlatformInfo": { + "type": "object", + "patternProperties": { + "^(windows|macos|desktopWeb|ios|android|mobileWeb|linux)$": { "type": "string", "enum": ["dictionary", "full", "basic", "none"] } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardRelatedInfo": { + "type": "object", + "properties": { + "deprecates": { "type": "boolean" }, + "deprecatedBy": { "type": "boolean" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/schemas/keyboard_info.source/1.0.3/keyboard_info.source.json b/schemas/keyboard_info.source/1.0.3/keyboard_info.source.json new file mode 100644 index 0000000..66c5d9d --- /dev/null +++ b/schemas/keyboard_info.source/1.0.3/keyboard_info.source.json @@ -0,0 +1,168 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/KeyboardInfo", + + "definitions": { + "KeyboardInfo": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "name": { "type": "string" }, + "authorName": { "type": "string" }, + "authorEmail": { "type": "string", "format": "email" }, + "description": { "type": "string" }, + "license": { "type": "string", "enum": ["freeware", "shareware", "commercial", "mit", "other"] }, + "languages": { "anyOf": [ + { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, + { "$ref": "#/definitions/KeyboardLanguageInfo" } + ]}, + "lastModifiedDate": { "type": "string", "format": "date-time" }, + "links": { "type": "array", "items": { "$ref": "#/definitions/KeyboardLinkInfo" } }, + "packageFilename": { "type": "string", "pattern": "\\.km[xp]$" }, + "packageFileSize": { "type": "number" }, + "jsFilename": { "type": "string", "pattern": "\\.js$" }, + "jsFileSize": { "type": "number" }, + "documentationFilename": { "type": "string", "pattern": "\\.(rtf|html?|pdf|txt)$" }, + "documentationFileSize": { "type": "number" }, + "isRTL": { "type": "boolean" }, + "encodings": { "type": "array", "items": { "type": "string", "enum": ["ansi", "unicode"] }, "additionalItems": false }, + "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["welcome", "documentation", "fonts", "visualKeyboard"] }, "additionalItems": false }, + "version": { "type": "string" }, + "minKeymanVersion": { "type": "string", "pattern": "^\\d+\\.0$" }, + "platformSupport": { "$ref": "#/definitions/KeyboardPlatformInfo" }, + "legacyId": { "type": "number" }, + "sourcePath": { "type": "string", "pattern": "^(release|legacy|experimental)/.+/.+$" }, + "related": { "type": "object", "patternProperties": { + ".": { "$ref": "#/definitions/KeyboardRelatedInfo" } + }, + "additionalProperties": false + } + }, + "required": [ + "license", "languages" + ], + "additionalProperties": false + }, + + "KeyboardLanguageInfo": { + "type": "object", + "patternProperties": { + ".": { "$ref": "#/definitions/KeyboardLanguageInfoItem" } + }, + "additionalProperties": false + }, + + "KeyboardLanguageInfoItem": { + "type": "object", + "properties": { + "font": { "$ref": "#/definitions/KeyboardFontInfo" }, + "oskFont": { "$ref": "#/definitions/KeyboardFontInfo" }, + "example": { "$ref": "#/definitions/KeyboardExampleInfo" } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardFontInfo": { + "type": "object", + "properties": { + "family": { "type": "string" }, + "source": { "anyOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] }, + "size": { "type": "string" } + }, + "required": ["family", "source"], + "additionalProperties": false + }, + + "KeyboardExampleInfo": { + "type": "object", + "properties": { + "keys": { "anyOf": [ + { "type": "string" }, + { "type": "array", "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "#/definitions/KeyboardExampleKeyInfo" } + ] } + } + ] }, + "text": { "type": "string" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardExampleKeyInfo": { + "type": "object", + "properties": { + "key": { "type": "string", "enum": [ + "K_SPACE", + "K_A", "K_B", "K_C", "K_D", "K_E", "K_F", "K_G", "K_H", "K_I", "K_J", "K_K", "K_L", "K_M", + "K_N", "K_O", "K_P", "K_Q", "K_R", "K_S", "K_T", "K_U", "K_V", "K_W", "K_X", "K_Y", "K_Z", + "K_1", "K_2", "K_3", "K_4", "K_5", "K_6", "K_7", "K_8", "K_9", "K_0", + "K_BKQUOTE", "K_HYPHEN", "K_EQUAL", "K_LBRKT", "K_RBRKT", "K_BKSLASH", "K_COLON", + "K_QUOTE", "K_COMMA", "K_PERIOD", "K_SLASH", + "K_oE2", "K_BKSP", "K_TAB", "K_ENTER", "K_ESC", + "K_LEFT", "K_UP", "K_RIGHT", "K_DOWN", "K_PGUP", "K_PGDN", "K_HOME", "K_END", "K_INS", "K_DEL", + "K_F1", "K_F2", "K_F3", "K_F4", "K_F5", "K_F6", "K_F7", "K_F8", "K_F9", "K_F10", "K_F11", "K_F12", + "K_KP5", "K_NP0", "K_NP1", "K_NP2", "K_NP3", "K_NP4", "K_NP5", "K_NP6", "K_NP7", "K_NP8", "K_NP9", + "K_NPSTAR", "K_NPPLUS", "K_NPMINUS", "K_NPDOT", "K_NPSLASH", + "K_SEL", "K_PRINT", "K_EXEC", "K_HELP", "K_SEPARATOR", + "K_F13", "K_F14", "K_F15", "K_F16", "K_F17", "K_F18", "K_F19", "K_F20", "K_F21", "K_F22", "K_F23", "K_F24", + "K_KANJI?15", "K_KANJI?16", "K_KANJI?17", "K_KANJI?18", "K_KANJI?19", "K_KANJI?1C", "K_KANJI?1D", "K_KANJI?1E", "K_KANJI?1F", + "K_oE0", "K_oE1", "K_oE3", "K_oE4", "K_oE6", "K_oE9", "K_oEA", "K_oEB", "K_oEC", "K_oED", "K_oEE", "K_oEF", + "K_oF0", "K_oF1", "K_oF2", "K_oF3", "K_oF4", "K_oF5", "K_?00", "K_?05", "K_NPENTER", + "K_?06", "K_?07", "K_?0A", "K_?0B", "K_?0E", "K_?0F", "K_?1A", "K_?3A", "K_?3B", "K_?3C", "K_?3D", "K_?3E", + "K_?3F", "K_?40", "K_?5B", "K_?5C", "K_?5D", "K_?5E", "K_?5F", "K_?88", "K_?89", "K_?8A", "K_?8B", "K_?8C", + "K_?8D", "K_?8E", "K_?8F", "K_?92", "K_?94", "K_?95", "K_?96", "K_?97", "K_?98", "K_?99", "K_?9A", "K_?9B", + "K_?9C", "K_?9D", "K_?9E", "K_?9F", "K_?A0", "K_?A1", "K_?A2", "K_?A3", "K_?A4", "K_?A5", "K_?A6", "K_?A7", + "K_?A8", "K_?A9", "K_?AA", "K_?AB", "K_?AC", "K_?AD", "K_?AE", "K_?AF", "K_?B0", "K_?B1", "K_?B2", "K_?B3", + "K_?B4", "K_?B5", "K_?B6", "K_?B7", "K_?B8", "K_?B9", "K_?C1", "K_?C2", "K_?C3", "K_?C4", "K_?C5", "K_?C6", + "K_?C7", "K_?C8", "K_?C9", "K_?CA", "K_?CB", "K_?CC", "K_?CD", "K_?CE", "K_?CF", "K_?D0", "K_?D1", "K_?D2", + "K_?D3", "K_?D4", "K_?D5", "K_?D6", "K_?D7", "K_?D8", "K_?D9", "K_?DA", "K_oDF", "K_?E5", "K_?E7", "K_?E8", + "K_?F6", "K_?F7", "K_?F8", "K_?F9", "K_?FA", "K_?FB", "K_?FC", "K_?FD", "K_?FE", "K_?FF" + ] }, + "modifiers": { + "type": "array", + "items": { "type": "string", "enum": ["shift", "s", "ctrl", "c", "alt", "a", "left-ctrl", "lc", "right-ctrl", "rc", "left-alt", "la", "right-alt", "ra"] } + } + }, + "required": ["key"], + "additionalProperties": false + }, + + "KeyboardLinkInfo": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "url": { "type": "string" } + }, + "required": ["name", "url"], + "additionalProperties": false + }, + + "KeyboardPlatformInfo": { + "type": "object", + "patternProperties": { + "^(windows|macos|desktopWeb|ios|android|mobileWeb|linux)$": { "type": "string", "enum": ["dictionary", "full", "basic", "none"] } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardRelatedInfo": { + "type": "object", + "properties": { + "deprecates": { "type": "boolean" }, + "deprecatedBy": { "type": "boolean" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/schemas/keyboard_info.source.json b/schemas/keyboard_info.source/1.0.4/keyboard_info.source.json similarity index 100% rename from schemas/keyboard_info.source.json rename to schemas/keyboard_info.source/1.0.4/keyboard_info.source.json diff --git a/schemas/keyboard_info.source/1.0/keyboard_info.source.json b/schemas/keyboard_info.source/1.0/keyboard_info.source.json new file mode 100644 index 0000000..d4fa9cc --- /dev/null +++ b/schemas/keyboard_info.source/1.0/keyboard_info.source.json @@ -0,0 +1,162 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/KeyboardInfo", + + "definitions": { + "KeyboardInfo": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "name": { "type": "string" }, + "authorName": { "type": "string" }, + "authorEmail": { "type": "string", "format": "email" }, + "description": { "type": "string" }, + "license": { "type": "string", "enum": ["freeware", "shareware", "commercial", "mit", "other"] }, + "languages": { "anyOf": [ + { "type": "array", "items": { "type": "string" } }, + { "$ref": "#/definitions/KeyboardLanguageInfo" } + ]}, + "lastModifiedDate": { "type": "string", "format": "date-time" }, + "links": { "type": "array", "items": { "$ref": "#/definitions/KeyboardLinkInfo" } }, + "packageFilename": { "type": "string", "pattern": "\\.km[xp]$" }, + "jsFilename": { "type": "string", "pattern": "\\.js$" }, + "documentationFilename": { "type": "string", "pattern": "\\.(rtf|html?|pdf|txt)$" }, + "encodings": { "type": "array", "items": { "type": "string", "enum": ["ansi", "unicode"] }, "additionalItems": false }, + "packageIncludes": { "type": "array", "items": { "type": "string", "enum": ["welcome", "documentation", "fonts", "visualKeyboard"] }, "additionalItems": false }, + "version": { "type": "string" }, + "minKeymanDesktopVersion": { "type": "string", "pattern": "^\\d+\\.0$" }, + "platformSupport": { "$ref": "#/definitions/KeyboardPlatformInfo" }, + "legacyId": { "type": "number" }, + "related": { "type": "object", "patternProperties": { + ".": { "$ref": "#/definitions/KeyboardRelatedInfo" } + }, + "additionalProperties": false + } + }, + "required": [ + "license", "languages" + ], + "additionalProperties": false + }, + + "KeyboardLanguageInfo": { + "type": "object", + "patternProperties": { + ".": { "$ref": "#/definitions/KeyboardLanguageInfoItem" } + }, + "additionalProperties": false + }, + + "KeyboardLanguageInfoItem": { + "type": "object", + "properties": { + "font": { "$ref": "#/definitions/KeyboardFontInfo" }, + "oskFont": { "$ref": "#/definitions/KeyboardFontInfo" }, + "example": { "$ref": "#/definitions/KeyboardExampleInfo" } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardFontInfo": { + "type": "object", + "properties": { + "family": { "type": "string" }, + "source": { "anyOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] }, + "size": { "type": "string" } + }, + "required": ["family", "source"], + "additionalProperties": false + }, + + "KeyboardExampleInfo": { + "type": "object", + "properties": { + "keys": { "anyOf": [ + { "type": "string" }, + { "type": "array", "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "#/definitions/KeyboardExampleKeyInfo" } + ] } + } + ] }, + "text": { "type": "string" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardExampleKeyInfo": { + "type": "object", + "properties": { + "key": { "type": "string", "enum": [ + "K_SPACE", + "K_A", "K_B", "K_C", "K_D", "K_E", "K_F", "K_G", "K_H", "K_I", "K_J", "K_K", "K_L", "K_M", + "K_N", "K_O", "K_P", "K_Q", "K_R", "K_S", "K_T", "K_U", "K_V", "K_W", "K_X", "K_Y", "K_Z", + "K_1", "K_2", "K_3", "K_4", "K_5", "K_6", "K_7", "K_8", "K_9", "K_0", + "K_BKQUOTE", "K_HYPHEN", "K_EQUAL", "K_LBRKT", "K_RBRKT", "K_BKSLASH", "K_COLON", + "K_QUOTE", "K_COMMA", "K_PERIOD", "K_SLASH", + "K_oE2", "K_BKSP", "K_TAB", "K_ENTER", "K_ESC", + "K_LEFT", "K_UP", "K_RIGHT", "K_DOWN", "K_PGUP", "K_PGDN", "K_HOME", "K_END", "K_INS", "K_DEL", + "K_F1", "K_F2", "K_F3", "K_F4", "K_F5", "K_F6", "K_F7", "K_F8", "K_F9", "K_F10", "K_F11", "K_F12", + "K_KP5", "K_NP0", "K_NP1", "K_NP2", "K_NP3", "K_NP4", "K_NP5", "K_NP6", "K_NP7", "K_NP8", "K_NP9", + "K_NPSTAR", "K_NPPLUS", "K_NPMINUS", "K_NPDOT", "K_NPSLASH", + "K_SEL", "K_PRINT", "K_EXEC", "K_HELP", "K_SEPARATOR", + "K_F13", "K_F14", "K_F15", "K_F16", "K_F17", "K_F18", "K_F19", "K_F20", "K_F21", "K_F22", "K_F23", "K_F24", + "K_KANJI?15", "K_KANJI?16", "K_KANJI?17", "K_KANJI?18", "K_KANJI?19", "K_KANJI?1C", "K_KANJI?1D", "K_KANJI?1E", "K_KANJI?1F", + "K_oE0", "K_oE1", "K_oE3", "K_oE4", "K_oE6", "K_oE9", "K_oEA", "K_oEB", "K_oEC", "K_oED", "K_oEE", "K_oEF", + "K_oF0", "K_oF1", "K_oF2", "K_oF3", "K_oF4", "K_oF5", "K_?00", "K_?05", "K_NPENTER", + "K_?06", "K_?07", "K_?0A", "K_?0B", "K_?0E", "K_?0F", "K_?1A", "K_?3A", "K_?3B", "K_?3C", "K_?3D", "K_?3E", + "K_?3F", "K_?40", "K_?5B", "K_?5C", "K_?5D", "K_?5E", "K_?5F", "K_?88", "K_?89", "K_?8A", "K_?8B", "K_?8C", + "K_?8D", "K_?8E", "K_?8F", "K_?92", "K_?94", "K_?95", "K_?96", "K_?97", "K_?98", "K_?99", "K_?9A", "K_?9B", + "K_?9C", "K_?9D", "K_?9E", "K_?9F", "K_?A0", "K_?A1", "K_?A2", "K_?A3", "K_?A4", "K_?A5", "K_?A6", "K_?A7", + "K_?A8", "K_?A9", "K_?AA", "K_?AB", "K_?AC", "K_?AD", "K_?AE", "K_?AF", "K_?B0", "K_?B1", "K_?B2", "K_?B3", + "K_?B4", "K_?B5", "K_?B6", "K_?B7", "K_?B8", "K_?B9", "K_?C1", "K_?C2", "K_?C3", "K_?C4", "K_?C5", "K_?C6", + "K_?C7", "K_?C8", "K_?C9", "K_?CA", "K_?CB", "K_?CC", "K_?CD", "K_?CE", "K_?CF", "K_?D0", "K_?D1", "K_?D2", + "K_?D3", "K_?D4", "K_?D5", "K_?D6", "K_?D7", "K_?D8", "K_?D9", "K_?DA", "K_oDF", "K_?E5", "K_?E7", "K_?E8", + "K_?F6", "K_?F7", "K_?F8", "K_?F9", "K_?FA", "K_?FB", "K_?FC", "K_?FD", "K_?FE", "K_?FF" + ] }, + "modifiers": { + "type": "array", + "items": { "type": "string", "enum": ["shift", "s", "ctrl", "c", "alt", "a", "left-ctrl", "lc", "right-ctrl", "rc", "left-alt", "la", "right-alt", "ra"] } + } + }, + "required": ["key"], + "additionalProperties": false + }, + + "KeyboardLinkInfo": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "url": { "type": "string" } + }, + "required": ["name", "url"], + "additionalProperties": false + }, + + "KeyboardPlatformInfo": { + "type": "object", + "patternProperties": { + "^(windows|macos|desktopWeb|ios|android|mobileWeb|linux)$": { "type": "string", "enum": ["full", "basic", "none"] } + }, + "required": [], + "additionalProperties": false + }, + + "KeyboardRelatedInfo": { + "type": "object", + "properties": { + "deprecates": { "type": "boolean" }, + "note": { "type": "string" } + }, + "required": [], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/schemas/keyboard_json.json b/schemas/keyboard_json/1.0/keyboard_json.json similarity index 100% rename from schemas/keyboard_json.json rename to schemas/keyboard_json/1.0/keyboard_json.json diff --git a/schemas/model_info.distribution.json b/schemas/model_info.distribution/1.0/model_info.distribution.json similarity index 100% rename from schemas/model_info.distribution.json rename to schemas/model_info.distribution/1.0/model_info.distribution.json diff --git a/schemas/model_info.source.json b/schemas/model_info.source/1.0/model_info.source.json similarity index 100% rename from schemas/model_info.source.json rename to schemas/model_info.source/1.0/model_info.source.json diff --git a/schemas/package/1.0.1/package.json b/schemas/package/1.0.1/package.json new file mode 100644 index 0000000..14afd95 --- /dev/null +++ b/schemas/package/1.0.1/package.json @@ -0,0 +1,241 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/package", + "definitions": { + "package": { + "type": "object", + "properties": { + "system": { + "$ref": "#/definitions/system" + }, + "options": { + "$ref": "#/definitions/options" + }, + "startMenu": { + "$ref": "#/definitions/startMenu" + }, + "strings": { + "$ref": "#/definitions/strings" + }, + "files": { + "$ref": "#/definitions/files" + }, + "keyboards": { + "$ref": "#/definitions/keyboards" + }, + "info": { + "$ref": "#/definitions/info" + } + }, + "additionalProperties": false, + "required": [ + "options", + "system" + ] + }, + "system": { + "type": "object", + "properties": { + "keymanDeveloperVersion": { + "type": "string" + }, + "fileVersion": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "fileVersion" + ] + }, + "options": { + "type": "object", + "properties": { + "readmeFile": { + "type": "string" + }, + "graphicFile": { + "type": "string" + }, + "executeProgram": { + "type": "string" + }, + "msiFilename": { + "type": "string" + }, + "msiOptions": { + "type": "string" + } + }, + "additionalProperties": false + }, + "startMenu": { + "type": "object", + "properties": { + "folder": { + "type": "string" + }, + "addUninstallEntry": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/startMenuItem" + } + } + }, + "additionalProperties": false + }, + "startMenuItem": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "arguments": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "location": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "name", + "filename" + ] + }, + "strings": { + "type": "object", + "patternProperties": { + ".": { + "type": "string" + } + }, + "additionalProperties": false + }, + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/file" + } + }, + "file": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "copyLocation": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description" + ] + }, + "keyboards": { + "type": "array", + "items": { + "$ref": "#/definitions/keyboard" + } + }, + "keyboard": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "version": { + "type": "string" + }, + "oskFont": { + "type": "string" + }, + "displayFont": { + "type": "string" + }, + "languages": { + "type": "array", + "items": { + "$ref": "#/definitions/keyboardLanguage" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "id", + "version" + ] + }, + "keyboardLanguage": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "name" + ] + }, + "info": { + "type": "object", + "properties": { + "website": { + "$ref": "#/definitions/infoItem" + }, + "version": { + "$ref": "#/definitions/infoItem" + }, + "name": { + "$ref": "#/definitions/infoItem" + }, + "copyright": { + "$ref": "#/definitions/infoItem" + }, + "author": { + "$ref": "#/definitions/infoItem" + } + }, + "additionalProperties": false, + "required": [] + }, + "infoItem": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "description" + ] + } + } +} \ No newline at end of file diff --git a/schemas/package/1.0.2/package.json b/schemas/package/1.0.2/package.json new file mode 100644 index 0000000..cf7e7fa --- /dev/null +++ b/schemas/package/1.0.2/package.json @@ -0,0 +1,244 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/package", + "definitions": { + "package": { + "type": "object", + "properties": { + "system": { + "$ref": "#/definitions/system" + }, + "options": { + "$ref": "#/definitions/options" + }, + "startMenu": { + "$ref": "#/definitions/startMenu" + }, + "strings": { + "$ref": "#/definitions/strings" + }, + "files": { + "$ref": "#/definitions/files" + }, + "keyboards": { + "$ref": "#/definitions/keyboards" + }, + "info": { + "$ref": "#/definitions/info" + } + }, + "additionalProperties": false, + "required": [ + "options", + "system" + ] + }, + "system": { + "type": "object", + "properties": { + "keymanDeveloperVersion": { + "type": "string" + }, + "fileVersion": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "fileVersion" + ] + }, + "options": { + "type": "object", + "properties": { + "readmeFile": { + "type": "string" + }, + "graphicFile": { + "type": "string" + }, + "executeProgram": { + "type": "string" + }, + "msiFilename": { + "type": "string" + }, + "msiOptions": { + "type": "string" + } + }, + "additionalProperties": false + }, + "startMenu": { + "type": "object", + "properties": { + "folder": { + "type": "string" + }, + "addUninstallEntry": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/startMenuItem" + } + } + }, + "additionalProperties": false + }, + "startMenuItem": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "arguments": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "location": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "name", + "filename" + ] + }, + "strings": { + "type": "object", + "patternProperties": { + ".": { + "type": "string" + } + }, + "additionalProperties": false + }, + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/file" + } + }, + "file": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "copyLocation": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description" + ] + }, + "keyboards": { + "type": "array", + "items": { + "$ref": "#/definitions/keyboard" + } + }, + "keyboard": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "version": { + "type": "string" + }, + "oskFont": { + "type": "string" + }, + "displayFont": { + "type": "string" + }, + "rtl": { + "type": "boolean" + }, + "languages": { + "type": "array", + "items": { + "$ref": "#/definitions/keyboardLanguage" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "id", + "version" + ] + }, + "keyboardLanguage": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "name" + ] + }, + "info": { + "type": "object", + "properties": { + "website": { + "$ref": "#/definitions/infoItem" + }, + "version": { + "$ref": "#/definitions/infoItem" + }, + "name": { + "$ref": "#/definitions/infoItem" + }, + "copyright": { + "$ref": "#/definitions/infoItem" + }, + "author": { + "$ref": "#/definitions/infoItem" + } + }, + "additionalProperties": false, + "required": [] + }, + "infoItem": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "description" + ] + } + } +} \ No newline at end of file diff --git a/schemas/package/1.0/package.json b/schemas/package/1.0/package.json new file mode 100644 index 0000000..ada3f86 --- /dev/null +++ b/schemas/package/1.0/package.json @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/package", + "definitions": { + "package": { + "type": "object", + "properties": { + "system": { + "$ref": "#/definitions/system" + }, + "options": { + "$ref": "#/definitions/options" + }, + "startMenu": { + "$ref": "#/definitions/startMenu" + }, + "strings": { + "$ref": "#/definitions/strings" + }, + "files": { + "$ref": "#/definitions/files" + }, + "keyboards": { + "$ref": "#/definitions/keyboards" + }, + "info": { + "$ref": "#/definitions/info" + } + }, + "additionalProperties": false, + "required": [ + "options", + "system" + ] + }, + "system": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "keymanDeveloperVersion": { + "type": "string" + }, + "fileVersion": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "fileVersion" + ] + }, + "options": { + "type": "object", + "properties": { + "readmeFile": { + "type": "string" + }, + "graphicFile": { + "type": "string" + }, + "executeProgram": { + "type": "string" + }, + "msiFilename": { + "type": "string" + }, + "msiOptions": { + "type": "string" + } + }, + "additionalProperties": false + }, + "startMenu": { + "type": "object", + "properties": { + "folder": { + "type": "string" + }, + "addUninstallEntry": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/startMenuItem" + } + } + }, + "additionalProperties": false + }, + "startMenuItem": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "arguments": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "location": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "name", + "filename" + ] + }, + "strings": { + "type": "object", + "patternProperties": { + ".": { + "type": "string" + } + }, + "additionalProperties": false + }, + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/file" + } + }, + "file": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "copyLocation": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description" + ] + }, + "keyboards": { + "type": "array", + "items": { + "$ref": "#/definitions/keyboard" + } + }, + "keyboard": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "version": { + "type": "string" + }, + "oskFont": { + "type": "string" + }, + "displayFont": { + "type": "string" + }, + "languages": { + "type": "array", + "items": { + "$ref": "#/definitions/keyboardLanguage" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "id", + "version" + ] + }, + "keyboardLanguage": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "name" + ] + }, + "info": { + "type": "object", + "properties": { + "website": { + "$ref": "#/definitions/infoItem" + }, + "version": { + "$ref": "#/definitions/infoItem" + }, + "name": { + "$ref": "#/definitions/infoItem" + }, + "copyright": { + "$ref": "#/definitions/infoItem" + }, + "author": { + "$ref": "#/definitions/infoItem" + } + }, + "additionalProperties": false, + "required": [] + }, + "infoItem": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "description" + ] + } + } +} \ No newline at end of file diff --git a/schemas/package.json b/schemas/package/1.1.0/package.json similarity index 100% rename from schemas/package.json rename to schemas/package/1.1.0/package.json diff --git a/schemas/readme.MD b/schemas/readme.MD index dff6a1c..ae88afa 100644 --- a/schemas/readme.MD +++ b/schemas/readme.MD @@ -91,7 +91,7 @@ Documentation at https://help.keyman.com/developer/cloud/version/2.0 ## version.json version history -## 2018-03-07 1.0 beta +## 2018-03-07 2.0 beta * Initial version ------------------------------------------------------------ diff --git a/schemas/search.json b/schemas/search/1.0.1/search.json similarity index 100% rename from schemas/search.json rename to schemas/search/1.0.1/search.json diff --git a/schemas/search/1.0/search.json b/schemas/search/1.0/search.json new file mode 100644 index 0000000..fb2aab9 --- /dev/null +++ b/schemas/search/1.0/search.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$ref": "#/definitions/Search", + + "definitions": { + "Search": { + "type": "object", + "properties": { + "languages": { "type": "array", "items": { "$ref": "#/definitions/SearchLanguage" } }, + "keyboards": { "type": "array", "items": { "$ref": "/keyboard_info.source.json#/definitions/KeyboardInfo" } }, + "countries": { "type": "array" }, + "rangematch": { "type": "string" } + } + }, + + "SearchLanguage": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "name": { "type": "string" }, + "keyboards": { "type": "array", "items": { "type": "string" } } + } + } + } +} \ No newline at end of file diff --git a/schemas/version.json b/schemas/version/2.0/version.json similarity index 100% rename from schemas/version.json rename to schemas/version/2.0/version.json diff --git a/schemas/web.config b/schemas/web.config index 8b0e245..42ee985 100644 --- a/schemas/web.config +++ b/schemas/web.config @@ -5,5 +5,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +