651 lines
21 KiB
JSON
651 lines
21 KiB
JSON
|
|
{
|
||
|
|
"$schema": "http://json-schema.org/draft-07/schema",
|
||
|
|
"type": "object",
|
||
|
|
"definitions": {
|
||
|
|
"typePrimitive": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"name"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:primitive",
|
||
|
|
"description": "A primitive type"
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"type": "string"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"typeClass": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"name"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:class",
|
||
|
|
"description": "A class type"
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"type": "string",
|
||
|
|
"$ref": "probe.class-definitions.json#/definitions/typeClassname"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"typeVariable": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"name"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:variable",
|
||
|
|
"description": "A variable type"
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"type": "string"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"typeParameterized": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"base",
|
||
|
|
"params"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:parameterized"
|
||
|
|
},
|
||
|
|
"base": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
},
|
||
|
|
"params": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"typeIntersection": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"types"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:intersection"
|
||
|
|
},
|
||
|
|
"types": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"typeUnion": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"types"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:union"
|
||
|
|
},
|
||
|
|
"types": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"typeArray": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"component"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:array"
|
||
|
|
},
|
||
|
|
"component": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"typeObject": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"members"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:object"
|
||
|
|
},
|
||
|
|
"members": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"key",
|
||
|
|
"value"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"key": {
|
||
|
|
"anyOf": [
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyObjectKey"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"value": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertyObjectKey": {
|
||
|
|
"anyOf": [
|
||
|
|
{
|
||
|
|
"type": "string"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"optional"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"optional": {
|
||
|
|
"type": "boolean",
|
||
|
|
"default": true
|
||
|
|
},
|
||
|
|
"key": {
|
||
|
|
"$ref": "#/definitions/propertyObjectKey"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"additionalProperties": false
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"typeJSArray": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"types"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "type:jsArray"
|
||
|
|
},
|
||
|
|
"types": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertyType": {
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"type": "string",
|
||
|
|
"enum": [
|
||
|
|
"type:primitive",
|
||
|
|
"type:class",
|
||
|
|
"type:variable",
|
||
|
|
"type:parameterized",
|
||
|
|
"type:union",
|
||
|
|
"type:intersection",
|
||
|
|
"type:array",
|
||
|
|
"type:object",
|
||
|
|
"type:jsArray"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:underscored"
|
||
|
|
},
|
||
|
|
"underscored": {
|
||
|
|
"type": "boolean"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"anyOf": [
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typePrimitive"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typeClass"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typeVariable"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typeParameterized"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typeUnion"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typeIntersection"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typeArray"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typeObject"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/typeJSArray"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyComment": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"lines"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:comment"
|
||
|
|
},
|
||
|
|
"lines": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "string"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertyHide": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:hide"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertyAssign": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"assign"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:assign"
|
||
|
|
},
|
||
|
|
"shield": {
|
||
|
|
"type": "boolean"
|
||
|
|
},
|
||
|
|
"assign": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertyMod": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"mod"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:mod"
|
||
|
|
},
|
||
|
|
"mod": {
|
||
|
|
"type": "string"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertyModify": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"index"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:modify"
|
||
|
|
},
|
||
|
|
"index": {
|
||
|
|
"type": "integer"
|
||
|
|
},
|
||
|
|
"newType": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"type": "string"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertyReturns": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"returns"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:returns"
|
||
|
|
},
|
||
|
|
"returns": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertyClass": {
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"type": "string",
|
||
|
|
"enum": [
|
||
|
|
"property:comment",
|
||
|
|
"property:hide",
|
||
|
|
"property:assign",
|
||
|
|
"property:mod"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"anyOf": [
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyComment"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyHide"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyAssign"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyMod"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyMethod": {
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"type": "string",
|
||
|
|
"enum": [
|
||
|
|
"property:comment",
|
||
|
|
"property:hide",
|
||
|
|
"property:mod",
|
||
|
|
"property:modify",
|
||
|
|
"property:returns"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"anyOf": [
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyComment"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyHide"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyMod"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyModify"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyReturns"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyField": {
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"type": "string",
|
||
|
|
"enum": [
|
||
|
|
"property:comment",
|
||
|
|
"property:hide",
|
||
|
|
"property:mod"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"anyOf": [
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyComment"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyHide"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyMod"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyConstructor": {
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"type": "string",
|
||
|
|
"enum": [
|
||
|
|
"property:comment",
|
||
|
|
"property:hide",
|
||
|
|
"property:mod",
|
||
|
|
"property:modify"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"anyOf": [
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyComment"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyHide"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyMod"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyModify"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"properties": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"anyOf": [
|
||
|
|
{
|
||
|
|
"$ref": "#/definitions/propertyMod"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"classes": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "document:class"
|
||
|
|
},
|
||
|
|
"className": {
|
||
|
|
"type": "string",
|
||
|
|
"description": "The class name",
|
||
|
|
"$ref": "probe.class-definitions.json#/definitions/typeClassname"
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyClass"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"methods": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"name",
|
||
|
|
"returns"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "document:method"
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"type": "string"
|
||
|
|
},
|
||
|
|
"static": {
|
||
|
|
"type": "boolean"
|
||
|
|
},
|
||
|
|
"abstract": {
|
||
|
|
"type": "boolean"
|
||
|
|
},
|
||
|
|
"params": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"name",
|
||
|
|
"paramType"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:param"
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"type": "string"
|
||
|
|
},
|
||
|
|
"paramType": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"returns": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyMethod"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"interfaces": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"constructors": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"required": [
|
||
|
|
"type"
|
||
|
|
],
|
||
|
|
"type": "object",
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "document:constructor"
|
||
|
|
},
|
||
|
|
"params": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"name",
|
||
|
|
"paramType"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "property:param"
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"type": "string"
|
||
|
|
},
|
||
|
|
"paramType": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyConstructor"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"fields": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"type",
|
||
|
|
"name",
|
||
|
|
"fieldType"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"const": "document:field"
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"type": "string"
|
||
|
|
},
|
||
|
|
"fieldType": {
|
||
|
|
"$ref": "#/definitions/propertyType"
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"$ref": "#/definitions/propertyField"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"final": {
|
||
|
|
"type": "boolean"
|
||
|
|
},
|
||
|
|
"static": {
|
||
|
|
"type": "boolean"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|