@lionweb/validation 0.8.0-beta.7 → 0.8.0
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/CHANGELOG.md +2 -3
- package/dist/languages/LanguageRegistry.d.ts +1 -1
- package/dist/languages/LanguageRegistry.d.ts.map +1 -1
- package/dist/languages/LanguageRegistry.js +3 -0
- package/dist/languages/LanguageRegistry.js.map +1 -1
- package/dist/languages/LanguageUtils.d.ts.map +1 -1
- package/dist/languages/LanguageUtils.js +2 -4
- package/dist/languages/LanguageUtils.js.map +1 -1
- package/dist/validators/LionWebReferenceValidator.d.ts +3 -1
- package/dist/validators/LionWebReferenceValidator.d.ts.map +1 -1
- package/dist/validators/LionWebReferenceValidator.js +27 -8
- package/dist/validators/LionWebReferenceValidator.js.map +1 -1
- package/dist/validators/definitions/AdminRequestDefinitions.d.ts +3 -0
- package/dist/validators/definitions/AdminRequestDefinitions.d.ts.map +1 -0
- package/dist/validators/definitions/AdminRequestDefinitions.js +155 -0
- package/dist/validators/definitions/AdminRequestDefinitions.js.map +1 -0
- package/dist/validators/definitions/AdminResponseDefinitions.d.ts +3 -0
- package/dist/validators/definitions/AdminResponseDefinitions.d.ts.map +1 -0
- package/dist/validators/definitions/AdminResponseDefinitions.js +169 -0
- package/dist/validators/definitions/AdminResponseDefinitions.js.map +1 -0
- package/dist/validators/definitions/AdminTypesDefinitions.d.ts +3 -0
- package/dist/validators/definitions/AdminTypesDefinitions.d.ts.map +1 -0
- package/dist/validators/definitions/AdminTypesDefinitions.js +33 -0
- package/dist/validators/definitions/AdminTypesDefinitions.js.map +1 -0
- package/dist/validators/definitions/ChunksDefinitions.d.ts +1 -1
- package/dist/validators/definitions/ChunksDefinitions.d.ts.map +1 -1
- package/dist/validators/definitions/CommandDefinitions.d.ts +1 -1
- package/dist/validators/definitions/CommandDefinitions.d.ts.map +1 -1
- package/dist/validators/definitions/CommandDefinitions.js +130 -64
- package/dist/validators/definitions/CommandDefinitions.js.map +1 -1
- package/dist/validators/definitions/DeltaTypesDefinitions.d.ts +1 -1
- package/dist/validators/definitions/DeltaTypesDefinitions.d.ts.map +1 -1
- package/dist/validators/definitions/DeltaTypesDefinitions.js +8 -1
- package/dist/validators/definitions/DeltaTypesDefinitions.js.map +1 -1
- package/dist/validators/definitions/EventDefinitions.d.ts +1 -1
- package/dist/validators/definitions/EventDefinitions.d.ts.map +1 -1
- package/dist/validators/definitions/EventDefinitions.js +324 -244
- package/dist/validators/definitions/EventDefinitions.js.map +1 -1
- package/dist/validators/definitions/RequestDefinitions.d.ts +1 -1
- package/dist/validators/definitions/RequestDefinitions.d.ts.map +1 -1
- package/dist/validators/definitions/RequestDefinitions.js +114 -74
- package/dist/validators/definitions/RequestDefinitions.js.map +1 -1
- package/dist/validators/definitions/ResponseDefinitions.d.ts +1 -1
- package/dist/validators/definitions/ResponseDefinitions.d.ts.map +1 -1
- package/dist/validators/definitions/ResponseDefinitions.js +126 -60
- package/dist/validators/definitions/ResponseDefinitions.js.map +1 -1
- package/dist/validators/definitions/index.d.ts +3 -0
- package/dist/validators/definitions/index.d.ts.map +1 -1
- package/dist/validators/definitions/index.js +3 -0
- package/dist/validators/definitions/index.js.map +1 -1
- package/dist/validators/generic/schema/SyntaxDefinition.d.ts +23 -0
- package/dist/validators/generic/schema/SyntaxDefinition.d.ts.map +1 -1
- package/dist/validators/generic/schema/SyntaxDefinition.js +12 -0
- package/dist/validators/generic/schema/SyntaxDefinition.js.map +1 -1
- package/package.json +6 -6
- package/src/languages/LanguageRegistry.ts +4 -1
- package/src/languages/LanguageUtils.ts +2 -6
- package/src/validators/LionWebReferenceValidator.ts +27 -8
- package/src/validators/definitions/AdminRequestDefinitions.ts +156 -0
- package/src/validators/definitions/AdminResponseDefinitions.ts +170 -0
- package/src/validators/definitions/AdminTypesDefinitions.ts +34 -0
- package/src/validators/definitions/ChunksDefinitions.ts +1 -1
- package/src/validators/definitions/CommandDefinitions.ts +131 -65
- package/src/validators/definitions/DeltaTypesDefinitions.ts +9 -2
- package/src/validators/definitions/EventDefinitions.ts +325 -245
- package/src/validators/definitions/RequestDefinitions.ts +115 -75
- package/src/validators/definitions/ResponseDefinitions.ts +127 -61
- package/src/validators/definitions/index.ts +3 -0
- package/src/validators/generic/schema/SyntaxDefinition.ts +24 -1
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { MessageGroup } from "../generic/schema/SyntaxDefinition.js";
|
|
1
|
+
import type { MessageGroup } from "../generic/schema/SyntaxDefinition.js";
|
|
2
2
|
|
|
3
3
|
export const ResponseDefinitions: MessageGroup = {
|
|
4
4
|
name: "Response",
|
|
5
5
|
taggedUnionProperty: "messageKind",
|
|
6
6
|
sharedProperties: [
|
|
7
7
|
{
|
|
8
|
-
name: "
|
|
9
|
-
type: "
|
|
8
|
+
name: "queryId",
|
|
9
|
+
type: "QueryId",
|
|
10
10
|
isList: false,
|
|
11
11
|
isOptional: false,
|
|
12
12
|
mayBeNull: false,
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
name: "
|
|
16
|
-
type: "
|
|
17
|
-
isList:
|
|
15
|
+
name: "messageKind",
|
|
16
|
+
type: "String",
|
|
17
|
+
isList: false,
|
|
18
18
|
isOptional: false,
|
|
19
19
|
mayBeNull: false,
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
-
name: "
|
|
23
|
-
type: "
|
|
24
|
-
isList:
|
|
22
|
+
name: "additionalInfos",
|
|
23
|
+
type: "AdditionalInfo",
|
|
24
|
+
isList: true,
|
|
25
25
|
isOptional: false,
|
|
26
26
|
mayBeNull: false,
|
|
27
27
|
},
|
|
@@ -30,6 +30,13 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
30
30
|
{
|
|
31
31
|
name: "SubscribeToChangingPartitionsResponse",
|
|
32
32
|
properties: [
|
|
33
|
+
{
|
|
34
|
+
name: "queryId",
|
|
35
|
+
type: "QueryId",
|
|
36
|
+
isList: false,
|
|
37
|
+
isOptional: false,
|
|
38
|
+
mayBeNull: false,
|
|
39
|
+
},
|
|
33
40
|
{
|
|
34
41
|
name: "messageKind",
|
|
35
42
|
type: "String",
|
|
@@ -38,12 +45,17 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
38
45
|
mayBeNull: false,
|
|
39
46
|
},
|
|
40
47
|
{
|
|
41
|
-
name: "
|
|
42
|
-
type: "
|
|
48
|
+
name: "additionalInfos",
|
|
49
|
+
type: "AdditionalInfo",
|
|
43
50
|
isList: true,
|
|
44
51
|
isOptional: false,
|
|
45
52
|
mayBeNull: false,
|
|
46
53
|
},
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "InformAboutChangingPartitionsResponse",
|
|
58
|
+
properties: [
|
|
47
59
|
{
|
|
48
60
|
name: "queryId",
|
|
49
61
|
type: "QueryId",
|
|
@@ -51,6 +63,20 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
51
63
|
isOptional: false,
|
|
52
64
|
mayBeNull: false,
|
|
53
65
|
},
|
|
66
|
+
{
|
|
67
|
+
name: "messageKind",
|
|
68
|
+
type: "String",
|
|
69
|
+
isList: false,
|
|
70
|
+
isOptional: false,
|
|
71
|
+
mayBeNull: false,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "additionalInfos",
|
|
75
|
+
type: "AdditionalInfo",
|
|
76
|
+
isList: true,
|
|
77
|
+
isOptional: false,
|
|
78
|
+
mayBeNull: false,
|
|
79
|
+
},
|
|
54
80
|
],
|
|
55
81
|
},
|
|
56
82
|
{
|
|
@@ -64,23 +90,23 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
64
90
|
mayBeNull: false,
|
|
65
91
|
},
|
|
66
92
|
{
|
|
67
|
-
name: "
|
|
68
|
-
type: "
|
|
93
|
+
name: "queryId",
|
|
94
|
+
type: "QueryId",
|
|
69
95
|
isList: false,
|
|
70
96
|
isOptional: false,
|
|
71
97
|
mayBeNull: false,
|
|
72
98
|
},
|
|
73
99
|
{
|
|
74
|
-
name: "
|
|
75
|
-
type: "
|
|
76
|
-
isList:
|
|
100
|
+
name: "messageKind",
|
|
101
|
+
type: "String",
|
|
102
|
+
isList: false,
|
|
77
103
|
isOptional: false,
|
|
78
104
|
mayBeNull: false,
|
|
79
105
|
},
|
|
80
106
|
{
|
|
81
|
-
name: "
|
|
82
|
-
type: "
|
|
83
|
-
isList:
|
|
107
|
+
name: "additionalInfos",
|
|
108
|
+
type: "AdditionalInfo",
|
|
109
|
+
isList: true,
|
|
84
110
|
isOptional: false,
|
|
85
111
|
mayBeNull: false,
|
|
86
112
|
},
|
|
@@ -90,23 +116,23 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
90
116
|
name: "UnsubscribeFromPartitionContentsResponse",
|
|
91
117
|
properties: [
|
|
92
118
|
{
|
|
93
|
-
name: "
|
|
94
|
-
type: "
|
|
119
|
+
name: "queryId",
|
|
120
|
+
type: "QueryId",
|
|
95
121
|
isList: false,
|
|
96
122
|
isOptional: false,
|
|
97
123
|
mayBeNull: false,
|
|
98
124
|
},
|
|
99
125
|
{
|
|
100
|
-
name: "
|
|
101
|
-
type: "
|
|
102
|
-
isList:
|
|
126
|
+
name: "messageKind",
|
|
127
|
+
type: "String",
|
|
128
|
+
isList: false,
|
|
103
129
|
isOptional: false,
|
|
104
130
|
mayBeNull: false,
|
|
105
131
|
},
|
|
106
132
|
{
|
|
107
|
-
name: "
|
|
108
|
-
type: "
|
|
109
|
-
isList:
|
|
133
|
+
name: "additionalInfos",
|
|
134
|
+
type: "AdditionalInfo",
|
|
135
|
+
isList: true,
|
|
110
136
|
isOptional: false,
|
|
111
137
|
mayBeNull: false,
|
|
112
138
|
},
|
|
@@ -123,23 +149,23 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
123
149
|
mayBeNull: false,
|
|
124
150
|
},
|
|
125
151
|
{
|
|
126
|
-
name: "
|
|
127
|
-
type: "
|
|
152
|
+
name: "queryId",
|
|
153
|
+
type: "QueryId",
|
|
128
154
|
isList: false,
|
|
129
155
|
isOptional: false,
|
|
130
156
|
mayBeNull: false,
|
|
131
157
|
},
|
|
132
158
|
{
|
|
133
|
-
name: "
|
|
134
|
-
type: "
|
|
135
|
-
isList:
|
|
159
|
+
name: "messageKind",
|
|
160
|
+
type: "String",
|
|
161
|
+
isList: false,
|
|
136
162
|
isOptional: false,
|
|
137
163
|
mayBeNull: false,
|
|
138
164
|
},
|
|
139
165
|
{
|
|
140
|
-
name: "
|
|
141
|
-
type: "
|
|
142
|
-
isList:
|
|
166
|
+
name: "additionalInfos",
|
|
167
|
+
type: "AdditionalInfo",
|
|
168
|
+
isList: true,
|
|
143
169
|
isOptional: false,
|
|
144
170
|
mayBeNull: false,
|
|
145
171
|
},
|
|
@@ -149,23 +175,23 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
149
175
|
name: "SignOffResponse",
|
|
150
176
|
properties: [
|
|
151
177
|
{
|
|
152
|
-
name: "
|
|
153
|
-
type: "
|
|
178
|
+
name: "queryId",
|
|
179
|
+
type: "QueryId",
|
|
154
180
|
isList: false,
|
|
155
181
|
isOptional: false,
|
|
156
182
|
mayBeNull: false,
|
|
157
183
|
},
|
|
158
184
|
{
|
|
159
|
-
name: "
|
|
160
|
-
type: "
|
|
161
|
-
isList:
|
|
185
|
+
name: "messageKind",
|
|
186
|
+
type: "String",
|
|
187
|
+
isList: false,
|
|
162
188
|
isOptional: false,
|
|
163
189
|
mayBeNull: false,
|
|
164
190
|
},
|
|
165
191
|
{
|
|
166
|
-
name: "
|
|
167
|
-
type: "
|
|
168
|
-
isList:
|
|
192
|
+
name: "additionalInfos",
|
|
193
|
+
type: "AdditionalInfo",
|
|
194
|
+
isList: true,
|
|
169
195
|
isOptional: false,
|
|
170
196
|
mayBeNull: false,
|
|
171
197
|
},
|
|
@@ -182,23 +208,23 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
182
208
|
mayBeNull: false,
|
|
183
209
|
},
|
|
184
210
|
{
|
|
185
|
-
name: "
|
|
186
|
-
type: "
|
|
211
|
+
name: "queryId",
|
|
212
|
+
type: "QueryId",
|
|
187
213
|
isList: false,
|
|
188
214
|
isOptional: false,
|
|
189
215
|
mayBeNull: false,
|
|
190
216
|
},
|
|
191
217
|
{
|
|
192
|
-
name: "
|
|
193
|
-
type: "
|
|
194
|
-
isList:
|
|
218
|
+
name: "messageKind",
|
|
219
|
+
type: "String",
|
|
220
|
+
isList: false,
|
|
195
221
|
isOptional: false,
|
|
196
222
|
mayBeNull: false,
|
|
197
223
|
},
|
|
198
224
|
{
|
|
199
|
-
name: "
|
|
200
|
-
type: "
|
|
201
|
-
isList:
|
|
225
|
+
name: "additionalInfos",
|
|
226
|
+
type: "AdditionalInfo",
|
|
227
|
+
isList: true,
|
|
202
228
|
isOptional: false,
|
|
203
229
|
mayBeNull: false,
|
|
204
230
|
},
|
|
@@ -215,23 +241,23 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
215
241
|
mayBeNull: false,
|
|
216
242
|
},
|
|
217
243
|
{
|
|
218
|
-
name: "
|
|
219
|
-
type: "
|
|
244
|
+
name: "queryId",
|
|
245
|
+
type: "QueryId",
|
|
220
246
|
isList: false,
|
|
221
247
|
isOptional: false,
|
|
222
248
|
mayBeNull: false,
|
|
223
249
|
},
|
|
224
250
|
{
|
|
225
|
-
name: "
|
|
226
|
-
type: "
|
|
227
|
-
isList:
|
|
251
|
+
name: "messageKind",
|
|
252
|
+
type: "String",
|
|
253
|
+
isList: false,
|
|
228
254
|
isOptional: false,
|
|
229
255
|
mayBeNull: false,
|
|
230
256
|
},
|
|
231
257
|
{
|
|
232
|
-
name: "
|
|
233
|
-
type: "
|
|
234
|
-
isList:
|
|
258
|
+
name: "additionalInfos",
|
|
259
|
+
type: "AdditionalInfo",
|
|
260
|
+
isList: true,
|
|
235
261
|
isOptional: false,
|
|
236
262
|
mayBeNull: false,
|
|
237
263
|
},
|
|
@@ -247,6 +273,13 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
247
273
|
isOptional: false,
|
|
248
274
|
mayBeNull: false,
|
|
249
275
|
},
|
|
276
|
+
{
|
|
277
|
+
name: "queryId",
|
|
278
|
+
type: "QueryId",
|
|
279
|
+
isList: false,
|
|
280
|
+
isOptional: false,
|
|
281
|
+
mayBeNull: false,
|
|
282
|
+
},
|
|
250
283
|
{
|
|
251
284
|
name: "messageKind",
|
|
252
285
|
type: "String",
|
|
@@ -255,12 +288,31 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
255
288
|
mayBeNull: false,
|
|
256
289
|
},
|
|
257
290
|
{
|
|
258
|
-
name: "
|
|
259
|
-
type: "
|
|
291
|
+
name: "additionalInfos",
|
|
292
|
+
type: "AdditionalInfo",
|
|
260
293
|
isList: true,
|
|
261
294
|
isOptional: false,
|
|
262
295
|
mayBeNull: false,
|
|
263
296
|
},
|
|
297
|
+
],
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
name: "ErrorResponse",
|
|
301
|
+
properties: [
|
|
302
|
+
{
|
|
303
|
+
name: "errorCode",
|
|
304
|
+
type: "String",
|
|
305
|
+
isList: false,
|
|
306
|
+
isOptional: false,
|
|
307
|
+
mayBeNull: false,
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
name: "message",
|
|
311
|
+
type: "String",
|
|
312
|
+
isList: false,
|
|
313
|
+
isOptional: false,
|
|
314
|
+
mayBeNull: false,
|
|
315
|
+
},
|
|
264
316
|
{
|
|
265
317
|
name: "queryId",
|
|
266
318
|
type: "QueryId",
|
|
@@ -268,6 +320,20 @@ export const ResponseDefinitions: MessageGroup = {
|
|
|
268
320
|
isOptional: false,
|
|
269
321
|
mayBeNull: false,
|
|
270
322
|
},
|
|
323
|
+
{
|
|
324
|
+
name: "messageKind",
|
|
325
|
+
type: "String",
|
|
326
|
+
isList: false,
|
|
327
|
+
isOptional: false,
|
|
328
|
+
mayBeNull: false,
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
name: "additionalInfos",
|
|
332
|
+
type: "AdditionalInfo",
|
|
333
|
+
isList: true,
|
|
334
|
+
isOptional: false,
|
|
335
|
+
mayBeNull: false,
|
|
336
|
+
},
|
|
271
337
|
],
|
|
272
338
|
},
|
|
273
339
|
],
|
|
@@ -5,3 +5,6 @@ export * from "./EventDefinitions.js"
|
|
|
5
5
|
export * from "./QueryDefinitions.js"
|
|
6
6
|
export * from "./RequestDefinitions.js"
|
|
7
7
|
export * from "./ResponseDefinitions.js"
|
|
8
|
+
export * from "./AdminRequestDefinitions.js"
|
|
9
|
+
export * from "./AdminResponseDefinitions.js"
|
|
10
|
+
export * from "./AdminTypesDefinitions.js"
|
|
@@ -3,8 +3,15 @@ import { ValidationResult } from "../ValidationResult.js"
|
|
|
3
3
|
|
|
4
4
|
export type UnknownObjectType = { [key: string]: unknown }
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Type representing a function that validates a primitive value.
|
|
8
|
+
*/
|
|
6
9
|
export type PrimitiveValidatorFunction = <T>(obj: T, result: ValidationResult, ctx: JsonContext) => void
|
|
7
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Represents a group of message beloning to the same group.
|
|
13
|
+
* Used for representing message groups in the delta protocol.
|
|
14
|
+
*/
|
|
8
15
|
export type MessageGroup = {
|
|
9
16
|
name: string;
|
|
10
17
|
taggedUnionProperty: string; // messageKind
|
|
@@ -25,23 +32,34 @@ export type StructuredType = {
|
|
|
25
32
|
properties: PropertyDefinition[];
|
|
26
33
|
}
|
|
27
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Represents a group of type definitions.
|
|
37
|
+
* Used for both the bulk and the delta protocol.
|
|
38
|
+
*/
|
|
28
39
|
export type TypeGroup = {
|
|
29
40
|
name: string;
|
|
30
41
|
primitiveTypes: PrimitiveType[];
|
|
31
42
|
structuredTypes: StructuredType[];
|
|
32
|
-
|
|
33
43
|
}
|
|
44
|
+
|
|
34
45
|
export type PrimitiveType = {
|
|
35
46
|
name: string
|
|
36
47
|
primitiveType: string;
|
|
37
48
|
}
|
|
38
49
|
|
|
50
|
+
/**
|
|
51
|
+
* A `SyntaxDefinition` represents a collection of message- or type-groups that should be validated
|
|
52
|
+
* as a whole.
|
|
53
|
+
*/
|
|
39
54
|
export class SyntaxDefinition {
|
|
40
55
|
// Maps to make searching easier and faster
|
|
41
56
|
allPrimitiveTypes: Map<string, PrimitiveType> = new Map<string, PrimitiveType>()
|
|
42
57
|
allStructuredTypes: Map<string, StructuredType> = new Map<string, StructuredType>()
|
|
43
58
|
allMessageGroups: Map<string, MessageGroup> = new Map<string, MessageGroup>()
|
|
44
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Map from a primitive type-name to the function used to validate values of that type.
|
|
62
|
+
*/
|
|
45
63
|
validateFunctions: Map<string, PrimitiveValidatorFunction> = new Map<string, PrimitiveValidatorFunction>()
|
|
46
64
|
|
|
47
65
|
constructor(messageGroups: MessageGroup[], typeGroups: TypeGroup[]) {
|
|
@@ -61,6 +79,11 @@ export class SyntaxDefinition {
|
|
|
61
79
|
})
|
|
62
80
|
}
|
|
63
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Add `validate` as the function to validate values of type `primitiveTypeName`.
|
|
84
|
+
* @param primitiveTypeName The type to be validated.
|
|
85
|
+
* @param validate The function performing the validation.
|
|
86
|
+
*/
|
|
64
87
|
addValidator(primitiveTypeName: string, validate: PrimitiveValidatorFunction): void {
|
|
65
88
|
this.validateFunctions.set(primitiveTypeName, validate)
|
|
66
89
|
}
|