94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | |
| 	"$schema": "http://json-schema.org/draft-04/schema#",
 | |
| 	"description": "A haxelib project",
 | |
| 	"type": "object",
 | |
| 	"properties": {
 | |
| 		"name": { "$ref": "#/definitions/projectName" },
 | |
| 		"url": {
 | |
| 			"description": "Project's website",
 | |
| 			"type": "string",
 | |
| 			"format": "uri"
 | |
| 		},
 | |
| 		"description": {
 | |
| 			"description": "Short description of the project",
 | |
| 			"type": "string"
 | |
| 		},
 | |
| 		"license": {
 | |
| 			"description": "Open source license under which the project is licensed",
 | |
| 			"enum": ["GPL", "LGPL", "BSD", "Public", "MIT", "Apache"]
 | |
| 		},
 | |
| 		"version": { "$ref": "#/definitions/semver" },
 | |
| 		"classPath": {
 | |
| 			"description": "Folder in the package which contains the source files for this project",
 | |
| 			"type": "string"
 | |
| 		},
 | |
| 		"contributors": {
 | |
| 			"description": "List of project contributors that are allowed to upload to haxelib",
 | |
| 			"type": "array",
 | |
| 			"items": { "$ref": "#/definitions/userName" },
 | |
| 			"minItems": 1,
 | |
| 			"uniqueItems": true
 | |
| 		},
 | |
| 		"tags": {
 | |
| 			"description": "List of tags for easier finding the project on haxelib",
 | |
| 			"type": "array",
 | |
| 			"items": { "$ref": "#/definitions/haxelibTag" },
 | |
| 			"uniqueItems": true
 | |
| 		},
 | |
| 		"dependencies": {
 | |
| 			"type": "object",
 | |
| 			"description": "Project's dependencies",
 | |
| 			"patternProperties": {
 | |
| 				"^[A-Za-z0-9_.-]{3,}$": { "$ref": "#/definitions/dependencyVersion" }
 | |
| 			},
 | |
| 			"additionalProperties": false
 | |
| 		},
 | |
| 		"releasenote": {
 | |
| 			"description": "Short description of changes made in this version",
 | |
| 			"type": "string"
 | |
| 		}
 | |
| 	},
 | |
| 	"additionalProperties": false,
 | |
| 	"required": ["name", "license", "releasenote", "contributors", "version"],
 | |
| 	"definitions": {
 | |
| 		"userName": {
 | |
| 			"description": "The name of a user",
 | |
| 			"type": "string",
 | |
| 			"minLength": 3,
 | |
| 			"pattern": "^[A-Za-z0-9_.-]{3,}$"
 | |
| 		},
 | |
| 		"projectName": {
 | |
| 			"description": "The name of a haxelib project",
 | |
| 			"type": "string",
 | |
| 			"minLength": 3,
 | |
| 			"pattern": "^[A-Za-z0-9_.-]{3,}$",
 | |
| 			"not": {
 | |
| 				"anyOf": [
 | |
| 					{"enum": ["haxe", "all"]},
 | |
| 					{"pattern": "\\.(zip|hxml)$"}
 | |
| 				]
 | |
| 			}
 | |
| 		},
 | |
| 		"haxelibTag": {
 | |
| 			"description": "A keyword or term associated with a haxelib project",
 | |
| 			"type": "string",
 | |
| 			"minLength": 2,
 | |
| 			"pattern": "^[A-Za-z0-9_.-]{2,}$"
 | |
| 		},
 | |
| 		"semver": {
 | |
| 			"type": "string",
 | |
| 			"description": "Project's version",
 | |
| 			"pattern": "^(\\d|[1-9]\\d*)\\.(\\d|[1-9]\\d*)\\.(\\d|[1-9]\\d*)(-(alpha|beta|rc)(\\.(\\d|[1-9]\\d*))?)?$"
 | |
| 		},
 | |
| 		"dependencyVersion": {
 | |
| 			"oneOf": [
 | |
| 				{ "$ref": "#/definitions/semver" },
 | |
| 				{
 | |
| 					"type": "string",
 | |
| 					"maxLength": 0
 | |
| 				}
 | |
| 			]
 | |
| 		}
 | |
| 	}
 | |
| }
 |