mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 03:01:16 +00:00
537 lines
10 KiB
JSON
537 lines
10 KiB
JSON
{
|
|
"$id": "@ali/low-code-component-protocol-schema",
|
|
"description": "json schema for low code component protocol",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/BasicSection"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/PropsSection"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/ConfigureSection"
|
|
}
|
|
],
|
|
"definitions": {
|
|
"BasicSection": {
|
|
"type": "object",
|
|
"properties": {
|
|
"componentName": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"docUrl": {
|
|
"type": "string"
|
|
},
|
|
"screenshot": {
|
|
"type": "string"
|
|
},
|
|
"icon": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"devMode": {
|
|
"enum": [
|
|
"proCode",
|
|
"lowCode"
|
|
]
|
|
},
|
|
"npm": {
|
|
"$ref": "#/definitions/Npm"
|
|
}
|
|
},
|
|
"required": [
|
|
"componentName",
|
|
"title",
|
|
"npm",
|
|
"docUrl",
|
|
"screenshot"
|
|
]
|
|
},
|
|
"PropsSection": {
|
|
"type": "object",
|
|
"properties": {
|
|
"props": {
|
|
"type": "array",
|
|
"items": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"propType": {
|
|
"$ref": "#/definitions/PropType"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"defaultValue": {}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"propType"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ConfigureSection": {
|
|
"type": "object",
|
|
"properties": {
|
|
"configure": {
|
|
"type": "object",
|
|
"properties": {
|
|
"props": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/ConfigureProp"
|
|
}
|
|
},
|
|
"styles": {
|
|
"type": "object",
|
|
"properties": {}
|
|
},
|
|
"events": {
|
|
"type": "object",
|
|
"properties": {}
|
|
},
|
|
"component": {
|
|
"$ref": "#/definitions/ConfigureComponent"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Npm": {
|
|
"type": "object",
|
|
"properties": {
|
|
"package": {
|
|
"type": "string"
|
|
},
|
|
"exportName": {
|
|
"type": "string"
|
|
},
|
|
"subName": {
|
|
"type": "string"
|
|
},
|
|
"main": {
|
|
"type": "string"
|
|
},
|
|
"destructuring": {
|
|
"type": "boolean"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"package",
|
|
"exportName",
|
|
"subName",
|
|
"main",
|
|
"destructuring",
|
|
"version"
|
|
]
|
|
},
|
|
"PropType": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/BasicType"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/RequiredType"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/ComplexType"
|
|
}
|
|
]
|
|
},
|
|
"BasicType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"array",
|
|
"bool",
|
|
"func",
|
|
"number",
|
|
"object",
|
|
"string",
|
|
"node",
|
|
"element",
|
|
"any"
|
|
]
|
|
},
|
|
"RequiredType": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"$ref": "#/definitions/BasicType"
|
|
},
|
|
"isRequired": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type"
|
|
]
|
|
},
|
|
"ComplexType": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/OneOf"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/OneOfType"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/ArrayOf"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/ObjectOf"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/Shape"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/Exact"
|
|
}
|
|
]
|
|
},
|
|
"OneOf": {
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"oneOf"
|
|
]
|
|
},
|
|
"value": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"isRequired": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"OneOfType": {
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"oneOfType"
|
|
]
|
|
},
|
|
"value": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/PropType"
|
|
}
|
|
},
|
|
"isRequired": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"ArrayOf": {
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"arrayOf"
|
|
]
|
|
},
|
|
"value": {
|
|
"$ref": "#/definitions/PropType"
|
|
},
|
|
"isRequired": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"ObjectOf": {
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"objectOf"
|
|
]
|
|
},
|
|
"value": {
|
|
"$ref": "#/definitions/PropType"
|
|
},
|
|
"isRequired": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Shape": {
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"shape"
|
|
]
|
|
},
|
|
"value": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"propType": {
|
|
"$ref": "#/definitions/PropType"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"isRequired": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"ShapeItem": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"propType"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"propType": {
|
|
"$ref": "#/definitions/PropType"
|
|
},
|
|
"isRequired": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Exact": {
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"exact"
|
|
]
|
|
},
|
|
"value": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"propType": {
|
|
"$ref": "#/definitions/PropType"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"isRequired": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"ConfigureProp": {
|
|
"type": "object",
|
|
"allOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"extraProps": {
|
|
"type": "object",
|
|
"properties": {}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/ConfigureFieldProp"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/ConfigureGroupProp"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"ConfigureFieldProp": {
|
|
"type": "object",
|
|
"required": [
|
|
"type"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"field"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"setter": {
|
|
"$ref": "#/definitions/ConfigureFieldSetter"
|
|
}
|
|
}
|
|
},
|
|
"ConfigureFieldSetter": {
|
|
"type": "object",
|
|
"required": [
|
|
"componentName"
|
|
],
|
|
"properties": {
|
|
"componentName": {
|
|
"type": "string",
|
|
"enum": [
|
|
"List",
|
|
"Object",
|
|
"Function",
|
|
"Node",
|
|
"Mixin",
|
|
"Expression",
|
|
"Switch",
|
|
"Number",
|
|
"Input",
|
|
"TextArea",
|
|
"Date",
|
|
"DateYear",
|
|
"DateMonth",
|
|
"DateRange",
|
|
"ColorPicker",
|
|
"CodeEditor",
|
|
"Select",
|
|
"RadioGroup"
|
|
]
|
|
},
|
|
"props": {
|
|
"type": "object",
|
|
"properties": {}
|
|
}
|
|
}
|
|
},
|
|
"ConfigureGroupProp": {
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"items"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"group"
|
|
]
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/ConfigureProp"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ConfigureComponent": {
|
|
"type": "object",
|
|
"properties": {
|
|
"isContainer": {
|
|
"type": "boolean"
|
|
},
|
|
"isModal": {
|
|
"type": "boolean"
|
|
},
|
|
"descriptor": {
|
|
"type": "string"
|
|
},
|
|
"nestingRule": {
|
|
"type": "object",
|
|
"properties": {
|
|
"childWhitelist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"parentWhitelist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"descendantBlacklist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ancestorWhitelist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"isNullNode": {
|
|
"type": "boolean"
|
|
},
|
|
"isLayout": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |