@voxgig/create-sdkgen 0.1.1 → 0.2.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/bin/create-sdkgen +2 -0
- package/bin/create-sdkgen~ +261 -0
- package/dist/create-sdkgen.js +2 -1
- package/dist/create-sdkgen.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/project/standard/.env.local +1 -0
- package/project/standard/.sdk/build/apidef.js +8 -0
- package/project/standard/.sdk/build/docgen.js +15 -0
- package/project/standard/.sdk/build/sdkgen.js +16 -0
- package/project/standard/.sdk/def/README.md +4 -0
- package/project/standard/.sdk/model/.model-config/model-config.jsonic +19 -0
- package/project/standard/.sdk/model/README.md +2 -0
- package/project/standard/.sdk/model/api/api-def.jsonic +5 -0
- package/project/standard/.sdk/model/api/api-entity-index.jsonic +2 -0
- package/project/standard/.sdk/model/config.jsonic +13 -0
- package/project/standard/.sdk/model/feature/README.md +2 -0
- package/project/standard/.sdk/model/feature/feature-index.jsonic +3 -0
- package/project/standard/.sdk/model/flow/flow-index.jsonic +2 -0
- package/project/standard/.sdk/model/guide.jsonic +5 -0
- package/project/standard/.sdk/model/sdk.fragment.jsonic +39 -0
- package/project/standard/.sdk/model/target/README.md +2 -0
- package/project/standard/.sdk/model/target/target-index.jsonic +2 -0
- package/project/standard/.sdk/model/target/target-index.jsonic~ +4 -0
- package/project/standard/.sdk/package.json +37 -0
- package/project/standard/.sdk/src/DocStaticRoot.ts +45 -0
- package/project/standard/.sdk/src/Root.ts +233 -0
- package/project/standard/.sdk/src/Top.ts +48 -0
- package/project/standard/.sdk/src/cmp/README.md +2 -0
- package/project/standard/.sdk/src/tsconfig.json +16 -0
- package/project/standard/.sdk/test/.model-config/model-config.json +7 -0
- package/project/standard/.sdk/test/.model-config/model-config.jsonic +4 -0
- package/project/standard/.sdk/test/primary/auth.jsonic +20 -0
- package/project/standard/.sdk/test/primary/body.jsonic +27 -0
- package/project/standard/.sdk/test/primary/contextify.jsonic +5 -0
- package/project/standard/.sdk/test/primary/done.jsonic +7 -0
- package/project/standard/.sdk/test/primary/error.jsonic +19 -0
- package/project/standard/.sdk/test/primary/findparam.jsonic +22 -0
- package/project/standard/.sdk/test/primary/fullurl.jsonic +50 -0
- package/project/standard/.sdk/test/primary/headers.jsonic +12 -0
- package/project/standard/.sdk/test/primary/inward.jsonic +3 -0
- package/project/standard/.sdk/test/primary/method.jsonic +11 -0
- package/project/standard/.sdk/test/primary/operator.jsonic +60 -0
- package/project/standard/.sdk/test/primary/options.jsonic +60 -0
- package/project/standard/.sdk/test/primary/outward.jsonic +3 -0
- package/project/standard/.sdk/test/primary/params.jsonic +10 -0
- package/project/standard/.sdk/test/primary/query.jsonic +9 -0
- package/project/standard/.sdk/test/primary/reqform.jsonic +9 -0
- package/project/standard/.sdk/test/primary/request.jsonic +31 -0
- package/project/standard/.sdk/test/primary/resbasic.jsonic +15 -0
- package/project/standard/.sdk/test/primary/resbody.jsonic +5 -0
- package/project/standard/.sdk/test/primary/resform.jsonic +11 -0
- package/project/standard/.sdk/test/primary/resheaders.jsonic +9 -0
- package/project/standard/.sdk/test/primary/response.jsonic +20 -0
- package/project/standard/.sdk/test/primary/spec.jsonic +32 -0
- package/project/standard/.sdk/test/struct/getpath.jsonic +143 -0
- package/project/standard/.sdk/test/struct/inject.jsonic +76 -0
- package/project/standard/.sdk/test/struct/merge.jsonic +161 -0
- package/project/standard/.sdk/test/struct/minor.jsonic +693 -0
- package/project/standard/.sdk/test/struct/select.jsonic +166 -0
- package/project/standard/.sdk/test/struct/transform.jsonic +453 -0
- package/project/standard/.sdk/test/struct/validate.jsonic +287 -0
- package/project/standard/.sdk/test/struct/walk.jsonic +57 -0
- package/project/standard/.sdk/test/test.json +15080 -0
- package/project/standard/.sdk/test/test.jsonic +44 -0
- package/project/standard/.sdk/tm/LICENSE +22 -0
- package/project/standard/.sdk/tm/README.md +2 -0
- package/src/create-sdkgen.ts +3 -1
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
basic: {
|
|
4
|
+
set: [
|
|
5
|
+
{ in: { data: 1000, spec: 1000 }, out: 1000 }
|
|
6
|
+
{ in: { data: 1002, spec: 1001 }, out: 1002 }
|
|
7
|
+
|
|
8
|
+
{ in: { data: {x0:'X0'}, spec: {x0:'X0'} }, out: {x0:'X0'} }
|
|
9
|
+
{ in: { data: {x1:'X0'}, spec: {x1:'X1'} }, out: {x1:'X0'} }
|
|
10
|
+
{ in: { data: {}, spec: {x2:'X2'} }, out: {x2:'X2'} }
|
|
11
|
+
|
|
12
|
+
{ in: { data: a, spec: '`$STRING`' }, out: a }
|
|
13
|
+
{ in: { data: 1, spec: '`$STRING`' }, out: 1,
|
|
14
|
+
err: 'Invalid data: Expected string, but found number: 1.' }
|
|
15
|
+
|
|
16
|
+
{ in: { data: {a0:A}, spec: {a0:'`$STRING`'} }, out: {a0:A} }
|
|
17
|
+
|
|
18
|
+
{ in: { data: {a1:1}, spec: {a1:'`$STRING`'} }
|
|
19
|
+
err: 'Expected field a1 to be string, but found number: 1' }
|
|
20
|
+
|
|
21
|
+
{ in: { data: {a2:11,b2:'B'}, spec: {a2:'`$STRING`',b2:'`$NUMBER`'} }
|
|
22
|
+
err: 'Expected field a2 to be string, but found number: 11. | Expected field b2 to be number, but found string: B.' }
|
|
23
|
+
|
|
24
|
+
{ in: { data: {a3:2,b3:B,c3:true}, spec: {a3:'`$NUMBER`',b3:'`$STRING`',c3:'`$BOOLEAN`'}}
|
|
25
|
+
out: {a3:2,b3:B,c3:true} }
|
|
26
|
+
|
|
27
|
+
{ in: { data: {a4:3,b4:B}, spec: {a4:'`$NUMBER`'}}
|
|
28
|
+
out: {a4:3,b4:B}
|
|
29
|
+
err: 'Unexpected keys at field <root>: b4' }
|
|
30
|
+
|
|
31
|
+
{ in: { data: {a5:4,b5:D}, spec: {a5:'`$NUMBER`',b5:C}}
|
|
32
|
+
out: {a5:4,b5:D} }
|
|
33
|
+
|
|
34
|
+
{ in: { data: {a:5,b:D}, spec: {a:'`$NUMBER`',b:C}}
|
|
35
|
+
out: {a:5,b:D} }
|
|
36
|
+
|
|
37
|
+
{ in: { data: {a:6,b:2}, spec: {a:'`$NUMBER`',b:C}}
|
|
38
|
+
err: 'Expected field b to be string, but found number: 2' }
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
{ in: { data: {x1:{a:1}}, spec: {x1:'`$OBJECT`'}}
|
|
42
|
+
out: {x1:{a:1}} }
|
|
43
|
+
|
|
44
|
+
{ in: { data: {x2:{}}, spec: {x2:'`$OBJECT`'}}
|
|
45
|
+
out: {x2:{}} }
|
|
46
|
+
|
|
47
|
+
{ in: { data: {a:[],b:{}}, spec: {a:'`$ARRAY`',b:'`$OBJECT`'}}
|
|
48
|
+
out: {a:[],b:{}} }
|
|
49
|
+
|
|
50
|
+
{ in: { data: {a:[11,22],b:{c:33,d:44}}, spec: {a:'`$ARRAY`',b:'`$OBJECT`'}}
|
|
51
|
+
out: {a:[11,22],b:{c:33,d:44}} }
|
|
52
|
+
|
|
53
|
+
{ in: { data: {a:[[55],{c:66}],b:{d:[77],e:{f:88}}}, spec: {a:'`$ARRAY`',b:'`$OBJECT`'}}
|
|
54
|
+
out: {a:[[55],{c:66}],b:{d:[77],e:{f:88}}} }
|
|
55
|
+
|
|
56
|
+
{ in: { data: {}, spec: {b0:'`$BOOLEAN`'} }
|
|
57
|
+
err: 'Expected field b0 to be boolean, but found no value.' }
|
|
58
|
+
|
|
59
|
+
{ in: { data: {a:{x:1}}, spec: {a:{}} }, out: {a:{x:1}} }
|
|
60
|
+
{ in: { data: {a:{x:{y:2}}}, spec: {a:{}} }, out: {a:{x:{y:2}}} }
|
|
61
|
+
|
|
62
|
+
{ in: { data: {}, spec: {x:{y:11}} }, out: {x:{y:11}} }
|
|
63
|
+
|
|
64
|
+
{ in: { data: [30], spec: ['`$NUMBER`']}, out: [30] }
|
|
65
|
+
{ in: { data: [31,32], spec: ['`$NUMBER`','`$NUMBER`']}, out: [31,32] }
|
|
66
|
+
|
|
67
|
+
{ in: { data: {a:{x:12,y:22}}, spec: {a:{x:0,'`$OPEN`':true}} }, out: {a:{x:12,y:22}} }
|
|
68
|
+
|
|
69
|
+
{ in: { data: {a1:{}}, spec: {a1:[]} },
|
|
70
|
+
err:'Expected field a1 to be array, but found object: {}.' }
|
|
71
|
+
|
|
72
|
+
{ in: { data: {a2:[]}, spec: {a2:{}} },
|
|
73
|
+
err:'Expected field a2 to be object, but found array: [].' }
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
child: {
|
|
79
|
+
set: [
|
|
80
|
+
{ in: { data: {q:{a:{x:1},b:{x:2}}}, spec: {q:{'`$CHILD`':{x:'`$NUMBER`'}}} },
|
|
81
|
+
out: {q:{a:{x:1},b:{x:2}}} }
|
|
82
|
+
|
|
83
|
+
{ in: { data: {q:{}}, spec: {q:{'`$CHILD`':{x:'`$NUMBER`'}}} },
|
|
84
|
+
out: {q:{}} }
|
|
85
|
+
|
|
86
|
+
{ in: { data: {q:{a:{x:X}}}, spec: {q:{'`$CHILD`':{x:'`$NUMBER`'}}} },
|
|
87
|
+
err: 'Invalid data: Expected field q.a.x to be number, but found string: X' }
|
|
88
|
+
|
|
89
|
+
{ in: { data: {q:{a:{x:1,y:'Y1'},b:{x:2,y:'Y2'}}},
|
|
90
|
+
spec: {q:{'`$CHILD`':{x:'`$NUMBER`','`$OPEN`':true}}} },
|
|
91
|
+
out: {q:{a:{x:1,y:'Y1'},b:{x:2,y:'Y2'}}} }
|
|
92
|
+
|
|
93
|
+
{ in: { data: {q:{a:{a0:{x:0},a1:{x:1}}, b:{b0:{x:2},b1:{x:3}}}},
|
|
94
|
+
spec: {q:{'`$CHILD`':{'`$CHILD`':{x:'`$NUMBER`'}}}} },
|
|
95
|
+
out: {q:{a:{a0:{x:0},a1:{x:1}}, b:{b0:{x:2},b1:{x:3}}}} }
|
|
96
|
+
|
|
97
|
+
{ in: { data: {q:[21,22]}, spec: {q:['`$CHILD`','`$NUMBER`']} },
|
|
98
|
+
out: {q:[21,22]} }
|
|
99
|
+
|
|
100
|
+
{ in: { data: {q:[23,a23]}, spec: {q:['`$CHILD`','`$NUMBER`']} },
|
|
101
|
+
err: 'Expected field q.1 to be number, but found string: a23' }
|
|
102
|
+
|
|
103
|
+
{ in: { data: {q:[a24]}, spec: {q:['`$CHILD`','`$STRING`']} },
|
|
104
|
+
out: {q:[a24]} }
|
|
105
|
+
|
|
106
|
+
{ in: { data: {q:[true,false]}, spec: {q:['`$CHILD`','`$BOOLEAN`']} },
|
|
107
|
+
out: {q:[true,false]} }
|
|
108
|
+
|
|
109
|
+
{ in: { data: {q:[]}, spec: {q:['`$CHILD`','`$BOOLEAN`']} },
|
|
110
|
+
out: {q:[]} }
|
|
111
|
+
|
|
112
|
+
{ in: { data: {q:a25}, spec: {q:['`$CHILD`','`$OBJECT`']} },
|
|
113
|
+
err: 'Expected field q to be array, but found string: a25' }
|
|
114
|
+
|
|
115
|
+
# Child template is a default value defining type
|
|
116
|
+
{ in: { data:{a40:{x0:2}}, spec: {a40:{'`$CHILD`':1}}}, out:{a40:{x0:2}} }
|
|
117
|
+
{ in: { data:{a41:{x0:3,x1:4}}, spec: {a41:{'`$CHILD`':1}}}, out:{a41:{x0:3,x1:4}} }
|
|
118
|
+
{ in: { data:{a411:{x2:'X'}}, spec: {a411:{'`$CHILD`':1}}}
|
|
119
|
+
err: 'Expected field a411.x2 to be number, but found string: X'}
|
|
120
|
+
|
|
121
|
+
{ in: { data:{a42:{}}, spec: {a42:{'`$CHILD`':1}}}, out:{a42:{}} }
|
|
122
|
+
{ in: { data:{}, spec: {a43:{'`$CHILD`':1}}}, out:{a43:{}} }
|
|
123
|
+
|
|
124
|
+
{ in: { data:{a44:1}, spec: {a44:{'`$CHILD`':{y:1}}}}
|
|
125
|
+
err: 'Expected field a44 to be object, but found number: 1' }
|
|
126
|
+
|
|
127
|
+
{ in: { data:{a50:[2]}, spec: {a50:['`$CHILD`',1]}}, out:{a50:[2]} }
|
|
128
|
+
{ in: { data:{a51:[3,4]}, spec: {a51:['`$CHILD`',1]}}, out:{a51:[3,4]} }
|
|
129
|
+
{ in: { data:{a52:[]}, spec: {a52:['`$CHILD`',1]}}, out:{a52:[]} }
|
|
130
|
+
{ in: { data:{}, spec: {a53:['`$CHILD`',1]}}, out:{a53:[]} }
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
{ in: {
|
|
134
|
+
data: {a54:1,b54:2}
|
|
135
|
+
spec: { '`$OPEN`':true, '`$CHILD`': '`$NUMBER`' }
|
|
136
|
+
}
|
|
137
|
+
out:{a54:1,b54:2} }
|
|
138
|
+
|
|
139
|
+
{ in: {
|
|
140
|
+
data: {x:{a55:1,b55:2}}
|
|
141
|
+
spec: {x:{ '`$OPEN`':true, '`$CHILD`': '`$NUMBER`' }}
|
|
142
|
+
}
|
|
143
|
+
out:{x:{a55:1,b55:2}} }
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
one: {
|
|
149
|
+
set: [
|
|
150
|
+
{ in: { data: 33, spec: ['`$ONE`','`$STRING`','`$NUMBER`']}, out: 33 }
|
|
151
|
+
|
|
152
|
+
{ in: { data: 'a31', spec: ['`$ONE`','`$STRING`','`$NUMBER`']}, out: 'a31' }
|
|
153
|
+
|
|
154
|
+
{ in: { data: true, spec: ['`$ONE`','`$STRING`','`$NUMBER`']},
|
|
155
|
+
err: 'Expected one of string, number, but found boolean: true.' }
|
|
156
|
+
|
|
157
|
+
{ in: { data: {x0:true}, spec: {x0:['`$ONE`','`$STRING`','`$NUMBER`']}},
|
|
158
|
+
err: 'Expected field x0 to be one of string, number, but found boolean: true.' }
|
|
159
|
+
|
|
160
|
+
{ in: { data: {x1:{a:1}}, spec: ['`$ONE`',{x1:'`$ARRAY`'}, {x1:'`$OBJECT`'}]},
|
|
161
|
+
out: {x1:{a:1}} }
|
|
162
|
+
|
|
163
|
+
{ in: { data: {x2:{a:1}}, spec: ['`$ONE`',{x2:{a:'`$STRING`'}}, {x2:{a:'`$NUMBER`'}}]},
|
|
164
|
+
out: {x2:{a:1}} }
|
|
165
|
+
|
|
166
|
+
{ in: { data: {a:{}}, spec: {a:['`$ONE`','`$OBJECT`','`$ARRAY`']} }, out: {a:{}} }
|
|
167
|
+
{ in: { data: {a:[]}, spec: {a:['`$ONE`','`$OBJECT`','`$ARRAY`']} }, out: {a:[]} }
|
|
168
|
+
|
|
169
|
+
{ in: { data: {a:1}, spec: {a:['`$ONE`','`$OBJECT`','`$ARRAY`']} },
|
|
170
|
+
err: 'Expected field a to be one of object, array, but found number: 1.' }
|
|
171
|
+
|
|
172
|
+
{ in: { data: {}, spec: {a:['`$ONE`','`$OBJECT`','`$ARRAY`']} },
|
|
173
|
+
err: 'Expected field a to be one of object, array, but found no value.' }
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
exact: {
|
|
179
|
+
set: [
|
|
180
|
+
{ in: { data: 11, spec: ['`$EXACT`',22,11]}, out: 11 }
|
|
181
|
+
{ in: { data: 12, spec: ['`$EXACT`',12,23]}, out: 12 }
|
|
182
|
+
{ in: { data: 13, spec: ['`$EXACT`',13]}, out: 13 }
|
|
183
|
+
{ in: { data: 'a', spec: ['`$EXACT`','a']}, out: 'a' }
|
|
184
|
+
{ in: { data: true, spec: ['`$EXACT`',true]}, out: true }
|
|
185
|
+
{ in: { data: null, spec: ['`$EXACT`',null]}, out: null }
|
|
186
|
+
{ in: { data: {x:1}, spec: ['`$EXACT`',{x:1}]}, out: {x:1} }
|
|
187
|
+
{ in: { data: {x:[2]}, spec: ['`$EXACT`', {x:[2]} ] }, out: {x:[2]} }
|
|
188
|
+
{ in: { data: {x:{y:[3]}}, spec: ['`$EXACT`', {x:{y:[3]}} ] }, out: {x:{y:[3]}} }
|
|
189
|
+
|
|
190
|
+
{ in: { data: [33], spec: ['`$EXACT`',[33] ] }, out: [33] }
|
|
191
|
+
{ in: { data: [{x:2}], spec: ['`$EXACT`',[{x:2}] ] }, out: [{x:2}] }
|
|
192
|
+
|
|
193
|
+
{ in: { data: 21, spec: ['`$EXACT`',22] },
|
|
194
|
+
err:'Expected value exactly equal to 22, but found number: 21.' }
|
|
195
|
+
|
|
196
|
+
{ in: { data: 23, spec: ['`$EXACT`','a',false,24] },
|
|
197
|
+
err:'Expected value exactly equal to one of a, false, 24, but found number: 23.' }
|
|
198
|
+
|
|
199
|
+
{ in: { data: 25, spec: ['`$EXACT`',{},[]] },
|
|
200
|
+
err:'Expected value exactly equal to one of {}, [], but found number: 25.' }
|
|
201
|
+
|
|
202
|
+
{ in: { data: 26, spec: ['`$EXACT`',{x:1},[2]] },
|
|
203
|
+
err:'Expected value exactly equal to one of {x:1}, [2], but found number: 26.' }
|
|
204
|
+
|
|
205
|
+
{ in: { data: 27, spec: ['`$EXACT`',{x:[3]},[{y:4}]] },
|
|
206
|
+
err:'Expected value exactly equal to one of {x:[3]}, [{y:4}], but found number: 27.' }
|
|
207
|
+
|
|
208
|
+
{ in: { data: 28, spec: ['`$EXACT`',{x:{y:{z:[]}}}] },
|
|
209
|
+
err:'Expected value exactly equal to {x:{y:{z:[]}}}, but found number: 28.' }
|
|
210
|
+
|
|
211
|
+
{ in: { data: [31,32], spec: ['`$EXACT`',[33,34]] },
|
|
212
|
+
err:'Expected value exactly equal to [33,34], but found array: [31,32].' }
|
|
213
|
+
|
|
214
|
+
{ in: { data: {x:111}, spec: ['`$EXACT`',{x:222}] },
|
|
215
|
+
err:'Expected value exactly equal to {x:222}, but found object: {x:111}.' }
|
|
216
|
+
|
|
217
|
+
{ in: { data: {b:35,a:36}, spec: ['`$EXACT`',{b:37,a:36}] },
|
|
218
|
+
err:'Expected value exactly equal to {a:36,b:37}, but found object: {a:36,b:35}.' }
|
|
219
|
+
|
|
220
|
+
{ in: { data: {x0:{b:35,a:36}}, spec: {x0:['`$EXACT`',{b:37,a:36}]} },
|
|
221
|
+
err:'Expected field x0 to be exactly equal to {a:36,b:37}, but found object: {a:36,b:35}.' }
|
|
222
|
+
|
|
223
|
+
]
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
invalid: set: [
|
|
228
|
+
{ in: { data: null, spec: '`$STRING`' },
|
|
229
|
+
err: 'Expected string, but found no value.' }
|
|
230
|
+
|
|
231
|
+
{ in: { data:{b0:1,a0:'a'}, spec: {a0:11,b0:'bb'}},
|
|
232
|
+
err: 'Expected field a0 to be number, but found string: a. | '+
|
|
233
|
+
'Expected field b0 to be string, but found number: 1.' }
|
|
234
|
+
|
|
235
|
+
{ in: { data: {a0:2}, spec: {a0:['`$EXACT`', 1]} },
|
|
236
|
+
err: 'Invalid data: Expected field a0 to be exactly equal to 1, but found number: 2.' }
|
|
237
|
+
|
|
238
|
+
{ in: { data: {}, spec:{a1:['`$EXACT`', 1] } },
|
|
239
|
+
err: 'Invalid data: Expected field a1 to be exactly equal to 1, but found no value.' }
|
|
240
|
+
|
|
241
|
+
{ in: { data: null, spec:{a2:['`$EXACT`', 1] } },
|
|
242
|
+
err: 'Invalid data: Expected field a2 to be exactly equal to 1, but found no value.' }
|
|
243
|
+
|
|
244
|
+
{ in: { spec:{a3:['`$EXACT`', 1] } },
|
|
245
|
+
err: 'Invalid data: Expected field a3 to be exactly equal to 1, but found no value.' }
|
|
246
|
+
]
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
special: set: [
|
|
250
|
+
{ in: { data: {x0:1}, spec:{x0:'`$NUMBER`', y0:'`x0`'} }, out: {x0:1,y0:1} }
|
|
251
|
+
{ in: { data: {x1:1,y1:1}, spec:{x1:'`$NUMBER`', y1:'`x1`'} }, out: {x1:1,y1:1} }
|
|
252
|
+
{ in: { data: {x2:2,y2:1}, spec:{x2:'`$NUMBER`', y2:'`x2`'} }, out: {x2:2,y2:1} }
|
|
253
|
+
|
|
254
|
+
{ in: { data: {x3:3,y3:3}, spec:{x3:'`$NUMBER`', y3:['`$REF`','x3']} }, out: {x3:3,y3:3} }
|
|
255
|
+
{ in: { data: {x4:3,y4:4}, spec:{x4:'`$NUMBER`', y4:['`$REF`','x4']} }, out: {x4:3,y4:4} }
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
{ in: { data: {x10:100}, spec:{x10:['`$EXACT`', 100] }, inj:meta:q0:x1:100 }, out: {x10:100}}
|
|
259
|
+
{ in: { data: {x11:'s11'}, spec:{x11:['`$EXACT`', 101] }, inj:meta:q0:x1:101 },
|
|
260
|
+
err: 'Invalid data: Expected field x11 to be exactly equal to 101, but found string: s11.'}
|
|
261
|
+
|
|
262
|
+
{ in: { data: {x12:102}, spec:{x12:'`q0$=x1`' }, inj:meta:q0:x1:102 }, out: {x12:102} }
|
|
263
|
+
{ in: { data: {x13:'s13'}, spec:{x13:'`q0$=x1`' }, inj:meta:q0:x1:103 },
|
|
264
|
+
err: 'Invalid data: Expected field x13 to be exactly equal to 103, but found string: s13.'}
|
|
265
|
+
|
|
266
|
+
{ in: { data: {x14:104}, spec:{x14:'`q0$~x1`' }, inj:meta:q0:x1:104 }, out: {x14:104} }
|
|
267
|
+
{ in: { data: {x15:204}, spec:{x15:'`q0$~x1`' }, inj:meta:q0:x1:104 }, out: {x15:204} }
|
|
268
|
+
{ in: { data: {x16:'s16'}, spec:{x16:'`q0$~x1`' }, inj:meta:q0:x1:104 }
|
|
269
|
+
err: 'Invalid data: Expected field x16 to be number, but found string: s16.' }
|
|
270
|
+
|
|
271
|
+
{ in: { data: 2000, spec:2000, inj:meta:'`$EXACT`':true }, out: 2000 }
|
|
272
|
+
|
|
273
|
+
{ in: { data: 2001, spec:2002, inj:meta:'`$EXACT`':true }
|
|
274
|
+
err: 'Value 2001 should equal 2002.' }
|
|
275
|
+
|
|
276
|
+
{ in: { data: [3000], spec:[3000], inj:meta:'`$EXACT`':true }, out: [3000] }
|
|
277
|
+
|
|
278
|
+
{ in: { data: [3001], spec:[3002], inj:meta:'`$EXACT`':true }
|
|
279
|
+
err: 'Value at field 0: 3001 should equal 3002.' }
|
|
280
|
+
|
|
281
|
+
{ in: { data: a:b:c:4000, spec:a:b:c:4000, inj:meta:'`$EXACT`':true }, out: a:b:c:4000 }
|
|
282
|
+
|
|
283
|
+
{ in: { data: a:b:c:4001, spec:a:b:c:4002, inj:meta:'`$EXACT`':true }
|
|
284
|
+
err: 'Value at field a.b.c: 4001 should equal 4002.' }
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
]
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
|
|
2
|
+
log: {
|
|
3
|
+
in: { a: { c: 2, b: 1 } }
|
|
4
|
+
out: [
|
|
5
|
+
'k=b, v=1, p={b:1,c:2}, t=a.b',
|
|
6
|
+
'k=c, v=2, p={b:1,c:2}, t=a.c',
|
|
7
|
+
'k=a, v={b:1,c:2}, p={a:{b:1,c:2}}, t=a',
|
|
8
|
+
'k=, v={a:{b:1,c:2}}, p=, t=<root>'
|
|
9
|
+
]
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
basic: {
|
|
14
|
+
set: [
|
|
15
|
+
{ in: { a: 'A' }, out: { a: 'A~a' } }
|
|
16
|
+
|
|
17
|
+
{ in: { a: 'A', b: 'B' }, out: { a: 'A~a', b: 'B~b' } }
|
|
18
|
+
|
|
19
|
+
{ in: { a: { b: 'B' } }, out: { a: { b: 'B~a.b' } } }
|
|
20
|
+
{ in: { a: { b: 'B', c: 'C' } }, out: { a: { b: 'B~a.b', c: 'C~a.c' } } }
|
|
21
|
+
|
|
22
|
+
{ in: { a: { b: 'B' }, c: 'C' }, out: { a: { b: 'B~a.b' }, c: 'C~c' } }
|
|
23
|
+
{ in: { d: 'D', a: { b: 'B' } }, out: { d: 'D~d', a: { b: 'B~a.b' } } }
|
|
24
|
+
{ in: { d: 'D', a: { b: 'B' }, c: 'C' }, out: { d: 'D~d', a: { b: 'B~a.b' }, c: 'C~c' } }
|
|
25
|
+
|
|
26
|
+
{ in: { a: { b: { c: 'C' } } }, out: { a: { b: { c: 'C~a.b.c' } } } }
|
|
27
|
+
{ in: { a: { b: { c: { d: 'D' } } } }, out: { a: { b: { c: { d: 'D~a.b.c.d' } } } } }
|
|
28
|
+
{ in: { a: { b: { c: { d: { e: 'E'} } } } },
|
|
29
|
+
out: { a: { b: { c: { d: { e: 'E~a.b.c.d.e' } } } } } }
|
|
30
|
+
|
|
31
|
+
{ in: {}, out: {} }
|
|
32
|
+
{ }
|
|
33
|
+
{ in: { a: 1 }, out: { a: 1 } }
|
|
34
|
+
{ in: { a: 1, b: 'B' }, out: { a: 1, b: 'B~b' } }
|
|
35
|
+
|
|
36
|
+
{ in: [], out: [] }
|
|
37
|
+
{ in: [1], out: [1] }
|
|
38
|
+
{ in: ['A'], out: ['A~0'] }
|
|
39
|
+
{ in: [['A']], out: [['A~0.0']] }
|
|
40
|
+
{ in: [[['A']]], out: [[['A~0.0.0']]] }
|
|
41
|
+
{ in: [[[['A']]]], out: [[[['A~0.0.0.0']]]] }
|
|
42
|
+
{ in: [[[[['A']]]]], out: [[[[['A~0.0.0.0.0']]]]] }
|
|
43
|
+
|
|
44
|
+
{ in: {a:['A']}, out: {a:['A~a.0']} }
|
|
45
|
+
{ in: {a:['A','B']}, out: {a:['A~a.0','B~a.1']} }
|
|
46
|
+
{ in: {a:['A','B','C']}, out: {a:['A~a.0','B~a.1','C~a.2']} }
|
|
47
|
+
|
|
48
|
+
{ in: {a:[{b:'B'}]}, out: {a:[{b:'B~a.0.b'}]} }
|
|
49
|
+
{ in: {a:[{b:['B']}]}, out: {a:[{b:['B~a.0.b.0']}]} }
|
|
50
|
+
{ in: {a:[{b:[{c:'C'}]}]}, out: {a:[{b:[{c:'C~a.0.b.0.c'}]}]} }
|
|
51
|
+
|
|
52
|
+
{ in: {x1:{}}, out: {x1:{}} }
|
|
53
|
+
{ in: {x2:[]}, out: {x2:[]} }
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|