ivaldi/misc/ivaldi.schema.json
2026-09-18 02:13:11 +02:00

153 lines
4.3 KiB
JSON

{
"nullable": false,
"type": "object",
"properties": {
"version": {
"nullable": false,
"type": "string"
},
"name": {
"nullable": false,
"type": "string"
},
"kind": {
"nullable": false,
"type": "string",
"enum": ["node", "web"]
},
"dependencies": {
"nullable": true,
"type": "object",
"properties": {
"plankton": {
"nullable": true,
"type": "array",
"item": {
"nullable": false,
"type": "string"
},
"default": null
},
"node_modules": {
"nullable": true,
"type": "array",
"item": {
"nullable": false,
"type": "string"
},
"default": null
}
},
"required": [
],
"default": null
},
"core": {
"nullable": false,
"type": "array",
"item": {
"nullable": false,
"type": "string"
}
},
"apps": {
"nullable": false,
"type": "object",
"properties": {
"name": {
"nullable": false,
"type": "string"
},
"sources": {
"nullable": false,
"type": "array",
"item": {
"nullable": false,
"type": "string"
}
},
"additional_dependencies": {
"nullable": false,
"type": "array",
"item": {
"nullable": false,
"type": "string"
},
"default": []
},
"destination": {
"nullable": false,
"type": "string",
"default": "{{project}}-{{app}"
},
"shebang": {
"nullable": true,
"type": "string",
"default": null
},
"executable": {
"nullable": false,
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": [
"name",
"sources"
]
},
"custom_rules": {
"nullable": false,
"type": "array",
"item": {
"nullable": false,
"type": "object",
"properties": {
"targets": {
"nullable": false,
"type": "array",
"item": {
"nullable": false,
"type": "string"
}
},
"dependencies": {
"nullable": false,
"type": "array",
"item": {
"nullable": false,
"type": "string"
}
},
"actions": {
"nullable": false,
"type": "array",
"item": {
"nullable": false,
"type": "string"
}
},
"info": {
"nullable": true,
"type": "string"
}
},
"additionalProperties": false,
"required": [
"targets",
"dependencies",
"actions"
]
}
}
},
"additionalProperties": false,
"required": [
"version",
"name",
"kind",
"core"
]
}