diff --git a/src/configs/tools_schema.json b/src/configs/tools_schema.json index a85d3086..9070ae8f 100644 --- a/src/configs/tools_schema.json +++ b/src/configs/tools_schema.json @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/shivammathur/setup-php/develop/src/configs/tools_schema.json", "type": "object", "title": "Tools", @@ -14,123 +14,118 @@ "function": "function_name", "repository": "user/tool", "packagist": "user/tool", - "scope": "global, scoped", - "type": "phar, composer, custom-package or custom-function", + "scope": "scoped", + "type": "composer", "version_parameter": "--version", "version_prefix": "v" } } ], - "items": { - "properties": { - "alias": { - "$id": "#/items/properties/alias", - "type": "string", - "title": "The alias schema", - "description": "Alias for a tool.", - "examples": [ - "tool_alias" - ] + "additionalProperties": { + "$ref": "#/$defs/tool" + }, + "$defs": { + "tool": { + "type": "object", + "properties": { + "alias": { + "type": "string", + "title": "The alias schema", + "description": "Alias for a tool.", + "examples": [ + "tool_alias" + ] + }, + "domain": { + "type": "string", + "title": "The domain schema", + "description": "Domain URL of the tool.", + "examples": [ + "https://example.com" + ] + }, + "extension": { + "type": "string", + "title": "The extension schema", + "description": "File extension of the tool.", + "examples": [ + ".ext" + ] + }, + "fetch_latest": { + "type": "string", + "title": "The fetch_latest schema", + "description": "Fetch the latest version from GitHub releases.", + "enum": [ + "true", + "false" + ] + }, + "function": { + "type": "string", + "title": "The function schema", + "description": "Function name in tools.ts which returns the script to setup the tool.", + "examples": [ + "function_name" + ] + }, + "repository": { + "type": "string", + "title": "The repository schema", + "description": "GitHub repository of the tool.", + "examples": [ + "user/tool" + ] + }, + "packagist": { + "type": "string", + "title": "The repository schema", + "description": "Packagist repository of the tool in case different from repository.", + "examples": [ + "user/tool" + ] + }, + "scope": { + "type": "string", + "title": "The scope schema", + "description": "Scope of tool installation: global or scoped", + "enum": [ + "global", + "scoped" + ] + }, + "type": { + "type": "string", + "title": "The type schema", + "description": "Type of tool: phar, composer, custom-package or custom-function.", + "enum": [ + "phar", + "composer", + "custom-package", + "custom-function" + ] + }, + "version_parameter": { + "type": "string", + "title": "The version_parameter schema", + "description": "Parameter to get the tool version.", + "examples": [ + "--version" + ] + }, + "version_prefix": { + "type": "string", + "title": "The version_prefix schema", + "description": "Prefix of the version in the download URL.", + "examples": [ + "v" + ] + } }, - "domain": { - "$id": "#/items/properties/domain", - "type": "string", - "title": "The domain schema", - "description": "Domain URL of the tool.", - "examples": [ - "https://example.com" - ] - }, - "extension": { - "$id": "#/items/properties/extension", - "type": "string", - "title": "The extension schema", - "description": "File extension of the tool.", - "examples": [ - ".ext" - ] - }, - "fetch_latest": { - "$id": "#/items/properties/fetch_latest", - "type": "string", - "title": "The fetch_latest schema", - "description": "Fetch the latest version from GitHub releases.", - "enum": [ - "true", - "false" - ] - }, - "function": { - "$id": "#/items/properties/function", - "type": "string", - "title": "The function schema", - "description": "Function name in tools.ts which returns the script to setup the tool.", - "examples": [ - "function_name" - ] - }, - "repository": { - "$id": "#/items/properties/repository", - "type": "string", - "title": "The repository schema", - "description": "GitHub repository of the tool.", - "examples": [ - "user/tool" - ] - }, - "packagist": { - "$id": "#/items/properties/packagist", - "type": "string", - "title": "The repository schema", - "description": "Packagist repository of the tool in case different from repository.", - "examples": [ - "user/tool" - ] - }, - "scope": { - "$id": "#/items/properties/scope", - "type": "string", - "title": "The scope schema", - "description": "Scope of tool installation: global or scoped", - "enum": [ - "global", - "scoped" - ] - }, - "type": { - "$id": "#/items/properties/type", - "type": "string", - "title": "The type schema", - "description": "Type of tool: phar, composer, custom-package or custom-function.", - "enum": [ - "phar", - "composer", - "custom-package", - "custom-function" - ] - }, - "version_parameter": { - "$id": "#/items/properties/version_parameter", - "type": "string", - "title": "The version_parameter schema", - "description": "Parameter to get the tool version.", - "examples": [ - "--version" - ] - }, - "version_prefix": { - "$id": "#/items/properties/version_prefix", - "type": "string", - "title": "The version_prefix schema", - "description": "Prefix of the version in the download URL.", - "examples": [ - "v" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": true + "required": [ + "type" + ], + "additionalProperties": true + } } -} \ No newline at end of file +}