{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "aite lock file",
"description": "scripts//.aite.lock.json (docs/design/data-formats.md)",
"type": "object",
"required": ["version", "targets"],
"additionalProperties": false,
"properties": {
"version": { "const": 1 },
"targets": {
"type": "object",
"additionalProperties": {
"type": "object",
"required": ["source", "descriptor", "seen", "lastRepaired"],
"additionalProperties": false,
"properties": {
"source": { "type": "string" },
"seen": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$" },
"lastRepaired": { "type": ["string", "null"] },
"descriptor": {
"type": "object",
"required": ["tag", "role", "name", "text", "attrs", "classes", "css", "xpath", "near", "rect"],
"additionalProperties": false,
"properties": {
"tag": { "type": "string" },
"role": { "type": "string" },
"name": { "type": "string" },
"text": { "type": "string" },
"css": { "type": "string" },
"xpath": { "type": "string" },
"classes": { "type": "array", "items": { "type": "string" } },
"attrs": {
"type": "object",
"required": ["aria-label", "data-testid", "id", "name", "type", "placeholder"],
"additionalProperties": false,
"properties": {
"aria-label": { "type": ["string", "null"] },
"data-testid": { "type": ["string", "null"] },
"id": { "type": ["string", "null"] },
"name": { "type": ["string", "null"] },
"type": { "type": ["string", "null"] },
"placeholder": { "type": ["string", "null"] }
}
},
"near": {
"type": "object",
"required": ["heading", "previousText", "nextText"],
"additionalProperties": false,
"properties": {
"heading": { "type": ["string", "null"] },
"previousText": { "type": ["string", "null"] },
"nextText": { "type": ["string", "null"] }
}
},
"rect": {
"type": "object",
"required": ["x", "y", "w", "h"],
"additionalProperties": false,
"properties": { "x": { "type": "number" }, "y": { "type": "number" }, "w": { "type": "number" }, "h": { "type": "number" } }
}
}
}
}
}
}
}
}