Skip to content

Commit 3ffd8a7

Browse files
authored
Merge pull request #133 from EmilyGraceSeville7cf/feature/json-schema
feat: json schema
2 parents c9b0ce0 + d004602 commit 3ffd8a7

File tree

1 file changed

+269
-0
lines changed

1 file changed

+269
-0
lines changed

schema.json

Lines changed: 269 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,269 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"definitions": {
4+
"count-property": {
5+
"title": "count",
6+
"description": "A repetition count\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#actions",
7+
"type": "integer",
8+
"minimum": 0,
9+
"default": 1
10+
},
11+
"speed-property": {
12+
"title": "speed",
13+
"description": "An interval between key typing in milliseconds\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#actions",
14+
"type": "integer",
15+
"minimum": 0,
16+
"default": 10
17+
}
18+
},
19+
"title": "clive settings",
20+
"description": "clive settings\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#gear-configuration",
21+
"type": "object",
22+
"properties": {
23+
"settings": {
24+
"title": "settings",
25+
"description": "clive settings\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#settings",
26+
"type": "object",
27+
"properties": {
28+
"loginCommand": {
29+
"title": "login command",
30+
"description": "A login command with arguments\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#logincommand",
31+
"type": "array",
32+
"items": {
33+
"type": "string",
34+
"examples": [
35+
"bash",
36+
"--login"
37+
]
38+
},
39+
"minItems": 1,
40+
"default": [
41+
"bash",
42+
"--login"
43+
]
44+
},
45+
"fontSize": {
46+
"title": "font size",
47+
"description": "A font size\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#fontsize",
48+
"type": "integer",
49+
"minimum": 1,
50+
"default": 22
51+
},
52+
"fontFamily": {
53+
"title": "font family",
54+
"description": "A font family\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#fontfamily",
55+
"type": "string",
56+
"minLength": 1,
57+
"pattern": "[^ ]",
58+
"examples": [
59+
"monospace"
60+
]
61+
},
62+
"defaultSpeed": {
63+
"title": "default speed",
64+
"description": "An interval between key typing in milliseconds\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#defaultspeed",
65+
"type": "integer",
66+
"minimum": 0,
67+
"default": 10
68+
},
69+
"skipPauseBeforeQuit": {
70+
"title": "skip pause before quit",
71+
"description": "Whether to skip pausing before quitting or not\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#skippausebeforequit",
72+
"type": "boolean",
73+
"default": false
74+
},
75+
"screenshotsDir": {
76+
"title": "screenshots directory",
77+
"description": "A directory to save screenshots\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#screenshotsdir",
78+
"type": "boolean",
79+
"default": false
80+
},
81+
"browserBin": {
82+
"title": "browser binary",
83+
"description": "A path to an executable browser binary\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#browserbin",
84+
"type": "string",
85+
"minLength": 1,
86+
"pattern": "[^ ]",
87+
"default": "screenshots"
88+
},
89+
"headless": {
90+
"title": "headless",
91+
"description": "Whether to run a browser in a headless mode\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#headless",
92+
"type": "string",
93+
"minLength": 1,
94+
"pattern": "[^ ]",
95+
"examples": [
96+
"/Applications/Sidekick.app/Contents/MacOS/Sidekick"
97+
]
98+
},
99+
"width": {
100+
"title": "width",
101+
"description": "A window width\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#width",
102+
"type": "integer",
103+
"minimum": 0
104+
},
105+
"height": {
106+
"title": "height",
107+
"description": "A window height\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#height",
108+
"type": "integer",
109+
"minimum": 0
110+
}
111+
},
112+
"minProperties": 1,
113+
"additionalProperties": false
114+
},
115+
"actions": {
116+
"title": "actions",
117+
"description": "Actions\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#actions",
118+
"type": "array",
119+
"items": {
120+
"oneOf": [
121+
{
122+
"title": "type",
123+
"description": "Type characters\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#type",
124+
"type": "object",
125+
"required": [
126+
"type"
127+
],
128+
"properties": {
129+
"type": {
130+
"title": "type",
131+
"description": "Characters to type\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#type",
132+
"type": "string",
133+
"examples": [
134+
"echo 'Hello World'"
135+
]
136+
},
137+
"count": {
138+
"$ref": "#/definitions/count-property"
139+
},
140+
"speed": {
141+
"$ref": "#/definitions/speed-property"
142+
}
143+
},
144+
"additionalProperties": false
145+
},
146+
{
147+
"title": "key",
148+
"description": "Press special characters\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#key",
149+
"type": "object",
150+
"required": [
151+
"key"
152+
],
153+
"properties": {
154+
"key": {
155+
"title": "key",
156+
"description": "Character to press\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#key",
157+
"type": "string",
158+
"enum": [
159+
"esc",
160+
"backspace",
161+
"tab",
162+
"enter",
163+
"left",
164+
"up",
165+
"right",
166+
"down",
167+
"space"
168+
]
169+
},
170+
"count": {
171+
"$ref": "#/definitions/count-property"
172+
},
173+
"speed": {
174+
"$ref": "#/definitions/speed-property"
175+
}
176+
},
177+
"additionalProperties": false
178+
},
179+
{
180+
"title": "ctrl",
181+
"description": "Press Ctrl with other character\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#ctrl",
182+
"type": "object",
183+
"required": [
184+
"ctrl"
185+
],
186+
"properties": {
187+
"ctrl": {
188+
"title": "ctrl",
189+
"description": "Character to type alongside Ctrl\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#ctrl",
190+
"type": "string",
191+
"minLength": 1,
192+
"pattern": "[^ ]",
193+
"examples": [
194+
"C"
195+
]
196+
},
197+
"count": {
198+
"$ref": "#/definitions/count-property"
199+
},
200+
"speed": {
201+
"$ref": "#/definitions/speed-property"
202+
}
203+
},
204+
"additionalProperties": false
205+
},
206+
{
207+
"title": "sleep",
208+
"description": "Sleep for a specific number of milliseconds\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#sleep",
209+
"type": "object",
210+
"required": [
211+
"sleep"
212+
],
213+
"properties": {
214+
"sleep": {
215+
"title": "sleep",
216+
"description": "A milliseconds amount\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#sleep",
217+
"type": "integer",
218+
"minimum": 0
219+
}
220+
},
221+
"additionalProperties": false
222+
},
223+
{
224+
"title": "pause",
225+
"description": "Wait for Enter to be pressed\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#screenshot",
226+
"type": "string",
227+
"enum": [
228+
"pause"
229+
]
230+
},
231+
{
232+
"title": "screenshot",
233+
"description": "Take a screenshot\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#screenshot",
234+
"oneOf": [
235+
{
236+
"type": "string",
237+
"enum": [
238+
"screenshot"
239+
]
240+
},
241+
{
242+
"type": "object",
243+
"required": [
244+
"screenshot"
245+
],
246+
"properties": {
247+
"screenshot": {
248+
"title": "screenshot",
249+
"description": "A screenshot path\nhttps://github.com/koki-develop/clive?tab=readme-ov-file#screenshot",
250+
"type": "string",
251+
"minLength": 1,
252+
"pattern": "[^ ]",
253+
"default": [
254+
"ACTION_INDEX_yyyymmddHHMMSS.png"
255+
]
256+
}
257+
},
258+
"additionalProperties": false
259+
}
260+
]
261+
}
262+
]
263+
},
264+
"minItems": 1
265+
}
266+
},
267+
"minProperties": 1,
268+
"additionalProperties": false
269+
}

0 commit comments

Comments
 (0)