@lowdefy/build 4.0.0-alpha.29 → 4.0.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/addDefaultPages/404.js +51 -0
- package/dist/build/addDefaultPages/addDefaultPages.js +43 -0
- package/dist/build/buildAuth/buildAuth.js +34 -0
- package/dist/build/buildAuth/buildAuthPlugins.js +71 -0
- package/dist/build/buildAuth/buildPageAuth.js +50 -0
- package/dist/build/buildAuth/getPageRoles.js +33 -0
- package/dist/build/buildAuth/getProtectedPages.js +28 -0
- package/dist/build/buildAuth/validateAuthConfig.js +61 -0
- package/dist/build/buildConnections.js +46 -0
- package/dist/build/buildImports/buildIconImports.js +83 -0
- package/dist/build/buildImports/buildImports.js +30 -0
- package/dist/build/buildImports/buildImportsDev.js +106 -0
- package/dist/build/buildImports/buildImportsProd.js +54 -0
- package/dist/build/buildImports/buildStyleImports.js +25 -0
- package/dist/build/buildImports/defaultIconsDev.js +584 -0
- package/dist/build/buildImports/defaultIconsProd.js +21 -0
- package/dist/build/buildMenu.js +118 -0
- package/dist/build/buildPages/buildBlock/buildBlock.js +35 -0
- package/dist/build/buildPages/buildBlock/buildEvents.js +76 -0
- package/dist/build/buildPages/buildBlock/buildRequests.js +51 -0
- package/dist/build/buildPages/buildBlock/buildSubBlocks.js +30 -0
- package/dist/build/buildPages/buildBlock/countBlockOperators.js +31 -0
- package/dist/build/buildPages/buildBlock/countBlockTypes.js +18 -0
- package/dist/build/buildPages/buildBlock/moveSkeletonBlocksToArea.js +35 -0
- package/dist/build/buildPages/buildBlock/moveSubBlocksToArea.js +25 -0
- package/dist/build/buildPages/buildBlock/setBlockId.js +20 -0
- package/dist/build/buildPages/buildBlock/validateBlock.js +38 -0
- package/dist/build/buildPages/buildPage.js +50 -0
- package/dist/build/buildPages/buildPages.js +31 -0
- package/dist/build/buildPages/buildTestPage.js +46 -0
- package/dist/build/buildRefs/buildRefs.js +32 -0
- package/dist/build/buildRefs/evaluateBuildOperators.js +34 -0
- package/dist/build/buildRefs/getConfigFile.js +28 -0
- package/dist/build/buildRefs/getRefContent.js +44 -0
- package/dist/build/buildRefs/getRefPath.js +30 -0
- package/dist/build/buildRefs/getRefsFromFile.js +37 -0
- package/dist/build/buildRefs/getUserJavascriptFunction.js +24 -0
- package/dist/build/buildRefs/makeRefDefinition.js +30 -0
- package/dist/build/buildRefs/parseNunjucks.js +20 -0
- package/dist/build/buildRefs/parseRefContent.js +37 -0
- package/dist/build/buildRefs/populateRefs.js +43 -0
- package/dist/build/buildRefs/recursiveBuild.js +68 -0
- package/dist/build/buildRefs/runRefResolver.js +33 -0
- package/dist/build/buildRefs/runTransformer.js +30 -0
- package/dist/build/buildTypes.js +124 -0
- package/dist/build/cleanBuildDirectory.js +19 -0
- package/dist/build/copyPublicFolder.js +23 -0
- package/dist/build/testSchema.js +32 -0
- package/dist/build/updateServerPackageJson.js +50 -0
- package/dist/build/validateApp.js +34 -0
- package/dist/build/validateConfig.js +33 -0
- package/dist/build/writeApp.js +18 -0
- package/dist/build/writeAuth.js +18 -0
- package/dist/build/writeConfig.js +18 -0
- package/dist/build/writeConnections.js +26 -0
- package/dist/build/writeGlobal.js +25 -0
- package/dist/build/writeMenus.js +22 -0
- package/dist/build/writePages.js +25 -0
- package/dist/build/writePluginImports/generateImportFile.js +31 -0
- package/dist/build/writePluginImports/writeActionImports.js +22 -0
- package/dist/build/writePluginImports/writeAuthImports.js +34 -0
- package/dist/build/writePluginImports/writeBlockImports.js +22 -0
- package/dist/build/writePluginImports/writeConnectionImports.js +22 -0
- package/dist/build/writePluginImports/writeIconImports.js +31 -0
- package/dist/build/writePluginImports/writeOperatorImports.js +26 -0
- package/dist/build/writePluginImports/writePluginImports.js +52 -0
- package/dist/build/writePluginImports/writeStyleImports.js +28 -0
- package/dist/build/writeRequests.js +31 -0
- package/dist/build/writeTypes.js +18 -0
- package/dist/createContext.js +55 -0
- package/dist/defaultTypesMap.js +2046 -0
- package/dist/index.js +139 -0
- package/dist/lowdefySchema.js +841 -0
- package/dist/scripts/generateDefaultTypes.js +88 -0
- package/dist/scripts/run.js +33 -0
- package/dist/test/buildRefs/testBuildRefsAsyncFunction.js +22 -0
- package/dist/test/buildRefs/testBuildRefsErrorResolver.js +18 -0
- package/dist/test/buildRefs/testBuildRefsNullResolver.js +19 -0
- package/dist/test/buildRefs/testBuildRefsParsingResolver.js +39 -0
- package/dist/test/buildRefs/testBuildRefsResolver.js +23 -0
- package/dist/test/buildRefs/testBuildRefsTransform.js +25 -0
- package/dist/test/buildRefs/testBuildRefsTransformIdentity.js +21 -0
- package/dist/test/testContext.js +54 -0
- package/dist/utils/countOperators.js +30 -0
- package/dist/utils/createCheckDuplicateId.js +31 -0
- package/dist/utils/createCounter.js +33 -0
- package/dist/utils/createPluginTypesMap.js +113 -0
- package/dist/utils/formatErrorMessage.js +56 -0
- package/dist/utils/readConfigFile.js +24 -0
- package/dist/utils/writeBuildArtifact.js +23 -0
- package/package.json +36 -36
|
@@ -0,0 +1,841 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
3
|
+
$id: 'http://lowdefy.com/appSchema.json',
|
|
4
|
+
type: 'object',
|
|
5
|
+
title: 'Lowdefy App Schema',
|
|
6
|
+
definitions: {
|
|
7
|
+
action: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
additionalProperties: false,
|
|
10
|
+
required: [
|
|
11
|
+
'id',
|
|
12
|
+
'type'
|
|
13
|
+
],
|
|
14
|
+
properties: {
|
|
15
|
+
async: {
|
|
16
|
+
type: 'boolean',
|
|
17
|
+
errorMessage: {
|
|
18
|
+
type: 'Action "async" should be a boolean.'
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
id: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
errorMessage: {
|
|
24
|
+
type: 'Action "id" should be a string.'
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
messages: {},
|
|
28
|
+
params: {},
|
|
29
|
+
skip: {},
|
|
30
|
+
type: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
errorMessage: {
|
|
33
|
+
type: 'Action "type" should be a string.'
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
errorMessage: {
|
|
38
|
+
type: 'Action should be an object.',
|
|
39
|
+
required: {
|
|
40
|
+
id: 'Action should have required property "id".',
|
|
41
|
+
type: 'Action should have required property "type".'
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
app: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
additionalProperties: false,
|
|
48
|
+
properties: {
|
|
49
|
+
html: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
errorMessage: {
|
|
52
|
+
type: 'App "app.html" should be an object.'
|
|
53
|
+
},
|
|
54
|
+
properties: {
|
|
55
|
+
appendBody: {
|
|
56
|
+
type: 'string',
|
|
57
|
+
errorMessage: {
|
|
58
|
+
type: 'App "app.html.appendBody" should be a string.'
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
appendHead: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
errorMessage: {
|
|
64
|
+
type: 'App "app.html.appendHead" should be a string.'
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
authConfig: {
|
|
72
|
+
type: 'object',
|
|
73
|
+
additionalProperties: false,
|
|
74
|
+
errorMessage: {
|
|
75
|
+
type: 'App "auth" should be an object.'
|
|
76
|
+
},
|
|
77
|
+
properties: {
|
|
78
|
+
advanced: {
|
|
79
|
+
type: 'object',
|
|
80
|
+
properties: {
|
|
81
|
+
cookies: {
|
|
82
|
+
type: 'object'
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
adapter: {
|
|
87
|
+
type: 'object',
|
|
88
|
+
required: [
|
|
89
|
+
'id',
|
|
90
|
+
'type'
|
|
91
|
+
],
|
|
92
|
+
properties: {
|
|
93
|
+
id: {
|
|
94
|
+
type: 'string',
|
|
95
|
+
errorMessage: {
|
|
96
|
+
type: 'Auth adapter "id" should be a string.'
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
type: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
errorMessage: {
|
|
102
|
+
type: 'Auth adapter "type" should be a string.'
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
properties: {
|
|
106
|
+
type: 'object'
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
errorMessage: {
|
|
110
|
+
type: 'Auth adapter should be an object.',
|
|
111
|
+
required: {
|
|
112
|
+
id: 'Auth adapter should have required property "id".',
|
|
113
|
+
type: 'Auth adapter should have required property "type".'
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
callbacks: {
|
|
118
|
+
type: 'array',
|
|
119
|
+
items: {
|
|
120
|
+
type: 'object',
|
|
121
|
+
required: [
|
|
122
|
+
'id',
|
|
123
|
+
'type'
|
|
124
|
+
],
|
|
125
|
+
properties: {
|
|
126
|
+
id: {
|
|
127
|
+
type: 'string',
|
|
128
|
+
errorMessage: {
|
|
129
|
+
type: 'Auth callback "id" should be a string.'
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
type: {
|
|
133
|
+
type: 'string',
|
|
134
|
+
errorMessage: {
|
|
135
|
+
type: 'Auth callback "type" should be a string.'
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
properties: {
|
|
139
|
+
type: 'object'
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
errorMessage: {
|
|
143
|
+
type: 'Auth callback should be an object.',
|
|
144
|
+
required: {
|
|
145
|
+
id: 'Auth callback should have required property "id".',
|
|
146
|
+
type: 'Auth callback should have required property "type".'
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
events: {
|
|
152
|
+
type: 'array',
|
|
153
|
+
items: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
required: [
|
|
156
|
+
'id',
|
|
157
|
+
'type'
|
|
158
|
+
],
|
|
159
|
+
properties: {
|
|
160
|
+
id: {
|
|
161
|
+
type: 'string',
|
|
162
|
+
errorMessage: {
|
|
163
|
+
type: 'Auth event "id" should be a string.'
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
type: {
|
|
167
|
+
type: 'string',
|
|
168
|
+
errorMessage: {
|
|
169
|
+
type: 'Auth event "type" should be a string.'
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
properties: {
|
|
173
|
+
type: 'object'
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
errorMessage: {
|
|
177
|
+
type: 'Auth event should be an object.',
|
|
178
|
+
required: {
|
|
179
|
+
id: 'Auth event should have required property "id".',
|
|
180
|
+
type: 'Auth event should have required property "type".'
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
pages: {
|
|
186
|
+
type: 'object',
|
|
187
|
+
additionalProperties: false,
|
|
188
|
+
errorMessage: {
|
|
189
|
+
type: 'App "config.auth.pages" should be an object.'
|
|
190
|
+
},
|
|
191
|
+
properties: {
|
|
192
|
+
protected: {
|
|
193
|
+
type: [
|
|
194
|
+
'array',
|
|
195
|
+
'boolean'
|
|
196
|
+
],
|
|
197
|
+
errorMessage: {
|
|
198
|
+
type: 'App "auth.pages.protected.$" should be an array of strings.'
|
|
199
|
+
},
|
|
200
|
+
items: {
|
|
201
|
+
type: 'string',
|
|
202
|
+
description: 'Page ids for which authentication is required. When specified, all unspecified pages will be public.',
|
|
203
|
+
errorMessage: {
|
|
204
|
+
type: 'App "auth.pages.protected.$" should be an array of strings.'
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
public: {
|
|
209
|
+
type: [
|
|
210
|
+
'array',
|
|
211
|
+
'boolean'
|
|
212
|
+
],
|
|
213
|
+
errorMessage: {
|
|
214
|
+
type: 'App "auth.pages.public.$" should be an array of strings.'
|
|
215
|
+
},
|
|
216
|
+
items: {
|
|
217
|
+
type: 'string',
|
|
218
|
+
description: 'Page ids for which authentication is not required. When specified, all unspecified pages will be protected.',
|
|
219
|
+
errorMessage: {
|
|
220
|
+
type: 'App "auth.pages.public.$" should be an array of strings.'
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
roles: {
|
|
225
|
+
type: 'object',
|
|
226
|
+
patternProperties: {
|
|
227
|
+
'^.*$': {
|
|
228
|
+
type: 'array',
|
|
229
|
+
items: {
|
|
230
|
+
type: 'string'
|
|
231
|
+
},
|
|
232
|
+
errorMessage: {
|
|
233
|
+
type: 'App "auth.pages.roles.[role]" should be an array of strings.'
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
errorMessage: {
|
|
238
|
+
type: 'App "auth.pages.roles" should be an object.'
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
providers: {
|
|
244
|
+
type: 'array',
|
|
245
|
+
items: {
|
|
246
|
+
type: 'object',
|
|
247
|
+
required: [
|
|
248
|
+
'id',
|
|
249
|
+
'type'
|
|
250
|
+
],
|
|
251
|
+
properties: {
|
|
252
|
+
id: {
|
|
253
|
+
type: 'string',
|
|
254
|
+
errorMessage: {
|
|
255
|
+
type: 'Auth provider "id" should be a string.'
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
type: {
|
|
259
|
+
type: 'string',
|
|
260
|
+
errorMessage: {
|
|
261
|
+
type: 'Auth provider "type" should be a string.'
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
properties: {
|
|
265
|
+
type: 'object'
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
errorMessage: {
|
|
269
|
+
type: 'Auth provider should be an object.',
|
|
270
|
+
required: {
|
|
271
|
+
id: 'Auth provider should have required property "id".',
|
|
272
|
+
type: 'Auth provider should have required property "type".'
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
session: {
|
|
278
|
+
type: 'object'
|
|
279
|
+
},
|
|
280
|
+
theme: {
|
|
281
|
+
type: 'object'
|
|
282
|
+
},
|
|
283
|
+
userFields: {
|
|
284
|
+
type: 'object'
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
block: {
|
|
289
|
+
type: 'object',
|
|
290
|
+
additionalProperties: false,
|
|
291
|
+
required: [
|
|
292
|
+
'id',
|
|
293
|
+
'type'
|
|
294
|
+
],
|
|
295
|
+
properties: {
|
|
296
|
+
id: {
|
|
297
|
+
type: 'string',
|
|
298
|
+
errorMessage: {
|
|
299
|
+
type: 'Block "id" should be a string.'
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
type: {
|
|
303
|
+
type: 'string',
|
|
304
|
+
errorMessage: {
|
|
305
|
+
type: 'Block "type" should be a string.'
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
field: {
|
|
309
|
+
type: 'string',
|
|
310
|
+
errorMessage: {
|
|
311
|
+
type: 'Block "field" should be a string.'
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
properties: {
|
|
315
|
+
type: 'object'
|
|
316
|
+
},
|
|
317
|
+
layout: {
|
|
318
|
+
type: 'object',
|
|
319
|
+
errorMessage: {
|
|
320
|
+
type: 'Block "layout" should be an object.'
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
skeleton: {
|
|
324
|
+
type: 'object',
|
|
325
|
+
errorMessage: {
|
|
326
|
+
type: 'Block "skeleton" should be an object.'
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
style: {
|
|
330
|
+
type: 'object',
|
|
331
|
+
errorMessage: {
|
|
332
|
+
type: 'Block "style" should be an object.'
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
visible: {},
|
|
336
|
+
loading: {},
|
|
337
|
+
blocks: {
|
|
338
|
+
type: 'array',
|
|
339
|
+
items: {
|
|
340
|
+
$ref: '#/definitions/block'
|
|
341
|
+
},
|
|
342
|
+
errorMessage: {
|
|
343
|
+
type: 'Block "blocks" should be an array.'
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
requests: {
|
|
347
|
+
type: 'array',
|
|
348
|
+
items: {
|
|
349
|
+
$ref: '#/definitions/request'
|
|
350
|
+
},
|
|
351
|
+
errorMessage: {
|
|
352
|
+
type: 'Block "requests" should be an array.'
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
required: {},
|
|
356
|
+
validate: {
|
|
357
|
+
type: 'array',
|
|
358
|
+
items: {
|
|
359
|
+
type: 'object',
|
|
360
|
+
errorMessage: {
|
|
361
|
+
type: 'Block "validate" should be an array of objects.'
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
errorMessage: {
|
|
365
|
+
type: 'Block "validate" should be an array.'
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
events: {
|
|
369
|
+
type: 'object',
|
|
370
|
+
patternProperties: {
|
|
371
|
+
'^.*$': {
|
|
372
|
+
anyOf: [
|
|
373
|
+
{
|
|
374
|
+
type: 'array',
|
|
375
|
+
items: {
|
|
376
|
+
$ref: '#/definitions/action'
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
type: 'object',
|
|
381
|
+
additionalProperties: false,
|
|
382
|
+
properties: {
|
|
383
|
+
try: {
|
|
384
|
+
type: 'array',
|
|
385
|
+
items: {
|
|
386
|
+
$ref: '#/definitions/action'
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
catch: {
|
|
390
|
+
type: 'array',
|
|
391
|
+
items: {
|
|
392
|
+
$ref: '#/definitions/action'
|
|
393
|
+
}
|
|
394
|
+
},
|
|
395
|
+
debounce: {
|
|
396
|
+
type: 'object',
|
|
397
|
+
additionalProperties: false,
|
|
398
|
+
properties: {
|
|
399
|
+
immediate: {
|
|
400
|
+
type: 'boolean',
|
|
401
|
+
errorMessage: {
|
|
402
|
+
type: 'Event "debounce.immediate" should be an boolean.'
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
ms: {
|
|
406
|
+
type: 'number',
|
|
407
|
+
errorMessage: {
|
|
408
|
+
type: 'Event "debounce.ms" should be a number.'
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
]
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
errorMessage: {
|
|
419
|
+
type: 'Block "events" should be an object.'
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
areas: {
|
|
423
|
+
type: 'object',
|
|
424
|
+
patternProperties: {
|
|
425
|
+
'^.*$': {
|
|
426
|
+
type: 'object',
|
|
427
|
+
properties: {
|
|
428
|
+
blocks: {
|
|
429
|
+
type: 'array',
|
|
430
|
+
items: {
|
|
431
|
+
$ref: '#/definitions/block'
|
|
432
|
+
},
|
|
433
|
+
errorMessage: {
|
|
434
|
+
type: 'Block "areas.{areaKey}.blocks" should be an array.'
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
errorMessage: {
|
|
439
|
+
type: 'Block "areas.{areaKey}" should be an object.'
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
errorMessage: {
|
|
444
|
+
type: 'Block "areas" should be an object.'
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
errorMessage: {
|
|
449
|
+
type: 'Block should be an object.',
|
|
450
|
+
required: {
|
|
451
|
+
id: 'Block should have required property "id".',
|
|
452
|
+
type: 'Block should have required property "type".'
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
},
|
|
456
|
+
connection: {
|
|
457
|
+
type: 'object',
|
|
458
|
+
additionalProperties: false,
|
|
459
|
+
required: [
|
|
460
|
+
'id',
|
|
461
|
+
'type'
|
|
462
|
+
],
|
|
463
|
+
properties: {
|
|
464
|
+
id: {
|
|
465
|
+
type: 'string',
|
|
466
|
+
errorMessage: {
|
|
467
|
+
type: 'Connection "id" should be a string.'
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
type: {
|
|
471
|
+
type: 'string',
|
|
472
|
+
errorMessage: {
|
|
473
|
+
type: 'Connection "type" should be a string.'
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
properties: {
|
|
477
|
+
type: 'object',
|
|
478
|
+
errorMessage: {
|
|
479
|
+
type: 'Connection "properties" should be an object.'
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
errorMessage: {
|
|
484
|
+
type: 'Connection should be an object.',
|
|
485
|
+
required: {
|
|
486
|
+
id: 'Connection should have required property "id".',
|
|
487
|
+
type: 'Connection should have required property "type".'
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
},
|
|
491
|
+
menu: {
|
|
492
|
+
type: 'object',
|
|
493
|
+
additionalProperties: false,
|
|
494
|
+
required: [
|
|
495
|
+
'id'
|
|
496
|
+
],
|
|
497
|
+
properties: {
|
|
498
|
+
id: {
|
|
499
|
+
type: 'string',
|
|
500
|
+
errorMessage: {
|
|
501
|
+
type: 'Menu "id" should be a string.'
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
properties: {
|
|
505
|
+
type: 'object',
|
|
506
|
+
errorMessage: {
|
|
507
|
+
type: 'Menu "properties" should be an object.'
|
|
508
|
+
}
|
|
509
|
+
},
|
|
510
|
+
links: {
|
|
511
|
+
type: 'array',
|
|
512
|
+
items: {
|
|
513
|
+
$ref: '#/definitions/menuItem'
|
|
514
|
+
},
|
|
515
|
+
errorMessage: {
|
|
516
|
+
type: 'Menu "links" should be an array.'
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
},
|
|
520
|
+
errorMessage: {
|
|
521
|
+
type: 'Menu should be an object.',
|
|
522
|
+
required: {
|
|
523
|
+
id: 'Menu should have required property "id".'
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
menuGroup: {
|
|
528
|
+
type: 'object',
|
|
529
|
+
additionalProperties: false,
|
|
530
|
+
required: [
|
|
531
|
+
'id',
|
|
532
|
+
'type'
|
|
533
|
+
],
|
|
534
|
+
properties: {
|
|
535
|
+
id: {
|
|
536
|
+
type: 'string',
|
|
537
|
+
errorMessage: {
|
|
538
|
+
type: 'MenuGroup "id" should be a string.'
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
type: {
|
|
542
|
+
type: 'string',
|
|
543
|
+
errorMessage: {
|
|
544
|
+
type: 'MenuGroup "type" should be a string.'
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
properties: {
|
|
548
|
+
type: 'object',
|
|
549
|
+
errorMessage: {
|
|
550
|
+
type: 'MenuGroup "properties" should be an object.'
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
links: {
|
|
554
|
+
type: 'array',
|
|
555
|
+
items: {
|
|
556
|
+
$ref: '#/definitions/menuItem'
|
|
557
|
+
},
|
|
558
|
+
errorMessage: {
|
|
559
|
+
type: 'MenuGroup "links" should be an array.'
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
},
|
|
563
|
+
errorMessage: {
|
|
564
|
+
type: 'MenuGroup should be an object.',
|
|
565
|
+
required: {
|
|
566
|
+
id: 'MenuGroup should have required property "id".',
|
|
567
|
+
type: 'MenuGroup should have required property "type".'
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
},
|
|
571
|
+
menuItem: {
|
|
572
|
+
anyOf: [
|
|
573
|
+
{
|
|
574
|
+
$ref: '#/definitions/menuGroup'
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
$ref: '#/definitions/menuLink'
|
|
578
|
+
},
|
|
579
|
+
]
|
|
580
|
+
},
|
|
581
|
+
menuLink: {
|
|
582
|
+
type: 'object',
|
|
583
|
+
additionalProperties: false,
|
|
584
|
+
required: [
|
|
585
|
+
'id',
|
|
586
|
+
'type'
|
|
587
|
+
],
|
|
588
|
+
properties: {
|
|
589
|
+
id: {
|
|
590
|
+
type: 'string',
|
|
591
|
+
errorMessage: {
|
|
592
|
+
type: 'MenuLink "id" should be a string.'
|
|
593
|
+
}
|
|
594
|
+
},
|
|
595
|
+
type: {
|
|
596
|
+
type: 'string',
|
|
597
|
+
errorMessage: {
|
|
598
|
+
type: 'MenuLink "type" should be a string.'
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
pageId: {
|
|
602
|
+
type: 'string',
|
|
603
|
+
errorMessage: {
|
|
604
|
+
type: 'MenuLink "pageId" should be a string.'
|
|
605
|
+
}
|
|
606
|
+
},
|
|
607
|
+
url: {
|
|
608
|
+
type: 'string',
|
|
609
|
+
errorMessage: {
|
|
610
|
+
type: 'MenuLink "url" should be a string.'
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
properties: {
|
|
614
|
+
type: 'object',
|
|
615
|
+
errorMessage: {
|
|
616
|
+
type: 'MenuLink "properties" should be an object.'
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
},
|
|
620
|
+
errorMessage: {
|
|
621
|
+
type: 'MenuLink should be an object.',
|
|
622
|
+
required: {
|
|
623
|
+
id: 'MenuLink should have required property "id".',
|
|
624
|
+
type: 'MenuLink should have required property "type".'
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
},
|
|
628
|
+
plugin: {
|
|
629
|
+
type: 'object',
|
|
630
|
+
additionalProperties: false,
|
|
631
|
+
required: [
|
|
632
|
+
'name',
|
|
633
|
+
'version'
|
|
634
|
+
],
|
|
635
|
+
properties: {
|
|
636
|
+
name: {
|
|
637
|
+
type: 'string',
|
|
638
|
+
errorMessage: {
|
|
639
|
+
type: 'Plugin "name" should be a string.'
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
version: {
|
|
643
|
+
type: 'string',
|
|
644
|
+
errorMessage: {
|
|
645
|
+
type: 'Plugin "version" should be a string.'
|
|
646
|
+
}
|
|
647
|
+
},
|
|
648
|
+
typePrefix: {
|
|
649
|
+
type: 'string',
|
|
650
|
+
errorMessage: {
|
|
651
|
+
type: 'Plugin "typePrefix" should be a string.'
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
},
|
|
655
|
+
errorMessage: {
|
|
656
|
+
type: 'Plugin should be an object.',
|
|
657
|
+
required: {
|
|
658
|
+
name: 'Plugin should have required property "name".',
|
|
659
|
+
version: 'Plugin should have required property "version".'
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
request: {
|
|
664
|
+
type: 'object',
|
|
665
|
+
additionalProperties: false,
|
|
666
|
+
required: [
|
|
667
|
+
'id',
|
|
668
|
+
'type',
|
|
669
|
+
'connectionId'
|
|
670
|
+
],
|
|
671
|
+
properties: {
|
|
672
|
+
id: {
|
|
673
|
+
type: 'string',
|
|
674
|
+
errorMessage: {
|
|
675
|
+
type: 'Request "id" should be a string.'
|
|
676
|
+
}
|
|
677
|
+
},
|
|
678
|
+
type: {
|
|
679
|
+
type: 'string',
|
|
680
|
+
errorMessage: {
|
|
681
|
+
type: 'Request "type" should be a string.'
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
connectionId: {
|
|
685
|
+
type: 'string',
|
|
686
|
+
errorMessage: {
|
|
687
|
+
type: 'Request "connectionId" should be a string.'
|
|
688
|
+
}
|
|
689
|
+
},
|
|
690
|
+
payload: {
|
|
691
|
+
type: 'object',
|
|
692
|
+
errorMessage: {
|
|
693
|
+
type: 'Request "payload" should be an object.'
|
|
694
|
+
}
|
|
695
|
+
},
|
|
696
|
+
properties: {
|
|
697
|
+
type: 'object',
|
|
698
|
+
errorMessage: {
|
|
699
|
+
type: 'Request "properties" should be an object.'
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
errorMessage: {
|
|
704
|
+
type: 'Request should be an object.',
|
|
705
|
+
required: {
|
|
706
|
+
id: 'Request should have required property "id".',
|
|
707
|
+
type: 'Request should have required property "type".',
|
|
708
|
+
connectionId: 'Request should have required property "connectionId".'
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
},
|
|
713
|
+
additionalProperties: false,
|
|
714
|
+
required: [
|
|
715
|
+
'lowdefy'
|
|
716
|
+
],
|
|
717
|
+
properties: {
|
|
718
|
+
name: {
|
|
719
|
+
type: 'string',
|
|
720
|
+
errorMessage: {
|
|
721
|
+
type: 'App "name" should be a string.'
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
lowdefy: {
|
|
725
|
+
type: 'string',
|
|
726
|
+
errorMessage: {
|
|
727
|
+
type: 'Lowdefy version in field "lowdefy" should be a string.'
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
license: {
|
|
731
|
+
type: 'string',
|
|
732
|
+
errorMessage: {
|
|
733
|
+
type: 'App "license" should be a string.'
|
|
734
|
+
}
|
|
735
|
+
},
|
|
736
|
+
version: {
|
|
737
|
+
type: 'string',
|
|
738
|
+
errorMessage: {
|
|
739
|
+
type: 'App "version" should be a string.'
|
|
740
|
+
}
|
|
741
|
+
},
|
|
742
|
+
app: {
|
|
743
|
+
$ref: '#/definitions/app'
|
|
744
|
+
},
|
|
745
|
+
auth: {
|
|
746
|
+
$ref: '#/definitions/authConfig'
|
|
747
|
+
},
|
|
748
|
+
cli: {
|
|
749
|
+
type: 'object',
|
|
750
|
+
errorMessage: {
|
|
751
|
+
type: 'App "cli" should be an object.'
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
config: {
|
|
755
|
+
type: 'object',
|
|
756
|
+
errorMessage: {
|
|
757
|
+
type: 'App "config" should be an object.'
|
|
758
|
+
},
|
|
759
|
+
additionalProperties: false,
|
|
760
|
+
properties: {
|
|
761
|
+
basePath: {
|
|
762
|
+
type: 'string',
|
|
763
|
+
description: 'App base path to apply to all routes. Base path must start with "/".',
|
|
764
|
+
errorMessage: {
|
|
765
|
+
type: 'App "config.basePath" should be a string.'
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
homePageId: {
|
|
769
|
+
type: 'string',
|
|
770
|
+
description: 'Page id to use as homepage. When visiting home route "/", the router will redirect to this page. If not provided, the first page in default or first menu will be used as the homePageId.',
|
|
771
|
+
errorMessage: {
|
|
772
|
+
type: 'App "config.homePageId" should be a string.'
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
theme: {
|
|
776
|
+
type: 'object',
|
|
777
|
+
errorMessage: {
|
|
778
|
+
type: 'App "config.theme" should be an object.'
|
|
779
|
+
},
|
|
780
|
+
properties: {
|
|
781
|
+
lessVariables: {
|
|
782
|
+
type: 'object',
|
|
783
|
+
description: 'App theme less variables.',
|
|
784
|
+
errorMessage: {
|
|
785
|
+
type: 'App "config.theme.lessVariables" should be an object.'
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
},
|
|
792
|
+
plugins: {
|
|
793
|
+
type: 'array',
|
|
794
|
+
items: {
|
|
795
|
+
$ref: '#/definitions/plugin'
|
|
796
|
+
},
|
|
797
|
+
errorMessage: {
|
|
798
|
+
type: 'App "plugins" should be an array.'
|
|
799
|
+
}
|
|
800
|
+
},
|
|
801
|
+
global: {
|
|
802
|
+
type: 'object',
|
|
803
|
+
errorMessage: {
|
|
804
|
+
type: 'App "global" should be an object.'
|
|
805
|
+
}
|
|
806
|
+
},
|
|
807
|
+
connections: {
|
|
808
|
+
type: 'array',
|
|
809
|
+
items: {
|
|
810
|
+
$ref: '#/definitions/connection'
|
|
811
|
+
},
|
|
812
|
+
errorMessage: {
|
|
813
|
+
type: 'App "connections" should be an array.'
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
menus: {
|
|
817
|
+
type: 'array',
|
|
818
|
+
items: {
|
|
819
|
+
$ref: '#/definitions/menu'
|
|
820
|
+
},
|
|
821
|
+
errorMessage: {
|
|
822
|
+
type: 'App "menus" should be an array.'
|
|
823
|
+
}
|
|
824
|
+
},
|
|
825
|
+
pages: {
|
|
826
|
+
type: 'array',
|
|
827
|
+
items: {
|
|
828
|
+
$ref: '#/definitions/block'
|
|
829
|
+
},
|
|
830
|
+
errorMessage: {
|
|
831
|
+
type: 'App "pages" should be an array.'
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
},
|
|
835
|
+
errorMessage: {
|
|
836
|
+
type: 'Lowdefy configuration should be an object.',
|
|
837
|
+
required: {
|
|
838
|
+
lowdefy: 'Lowdefy configuration should have required property "lowdefy".'
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
};
|