pareto-test 0.12.3 → 0.13.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/dist/globals.d.ts +26 -0
- package/dist/globals.js +2 -0
- package/dist/implementation/commands/run_tests.d.ts +11 -0
- package/dist/implementation/commands/run_tests.js +73 -0
- package/dist/implementation/generic.d.ts +13 -0
- package/dist/implementation/generic.js +82 -0
- package/dist/implementation/transformers/test_result/fountain_pen.d.ts +4 -0
- package/dist/implementation/transformers/test_result/fountain_pen.js +53 -0
- package/dist/implementation/transformers/test_result/lines.d.ts +3 -0
- package/dist/implementation/transformers/test_result/lines.js +35 -0
- package/dist/interface/generic.d.ts +27 -0
- package/dist/interface/generic.js +3 -0
- package/package.json +6 -7
- package/dist/bin/json_to_astn.d.ts +0 -2
- package/dist/bin/json_to_astn.js +0 -177
- package/dist/bin/temp_serialize_json_schema.d.ts +0 -2
- package/dist/bin/temp_serialize_json_schema.js +0 -60
- package/dist/generated/implementation/generic/resolve.d.ts +0 -109
- package/dist/generated/implementation/generic/resolve.js +0 -276
- package/dist/generated/implementation/generic/unmarshall.d.ts +0 -42
- package/dist/generated/implementation/generic/unmarshall.js +0 -238
- package/dist/generated/implementation/schemas/legacy_json_schema/marshall.d.ts +0 -11
- package/dist/generated/implementation/schemas/legacy_json_schema/marshall.js +0 -260
- package/dist/generated/implementation/schemas/legacy_json_schema/unmarshall.d.ts +0 -11
- package/dist/generated/implementation/schemas/legacy_json_schema/unmarshall.js +0 -246
- package/dist/generated/interface/core/astn_source.d.ts +0 -108
- package/dist/generated/interface/core/astn_source.js +0 -3
- package/dist/generated/interface/core/astn_target.d.ts +0 -186
- package/dist/generated/interface/core/astn_target.js +0 -3
- package/dist/generated/interface/core/resolve.d.ts +0 -11
- package/dist/generated/interface/core/resolve.js +0 -3
- package/dist/generated/interface/core/resolved.d.ts +0 -117
- package/dist/generated/interface/core/resolved.js +0 -3
- package/dist/generated/interface/core/unconstrained.d.ts +0 -19
- package/dist/generated/interface/core/unconstrained.js +0 -3
- package/dist/generated/interface/core/unresolved.d.ts +0 -181
- package/dist/generated/interface/core/unresolved.js +0 -3
- package/dist/generated/interface/schemas/legacy_json_schema/data_types/resolve.d.ts +0 -1
- package/dist/generated/interface/schemas/legacy_json_schema/data_types/resolve.js +0 -7
- package/dist/generated/interface/schemas/legacy_json_schema/data_types/source.d.ts +0 -574
- package/dist/generated/interface/schemas/legacy_json_schema/data_types/source.js +0 -3
- package/dist/generated/interface/schemas/legacy_json_schema/data_types/target.d.ts +0 -574
- package/dist/generated/interface/schemas/legacy_json_schema/data_types/target.js +0 -3
- package/dist/generated/interface/schemas/legacy_json_schema/marshall.d.ts +0 -303
- package/dist/generated/interface/schemas/legacy_json_schema/marshall.js +0 -3
- package/dist/generated/interface/schemas/legacy_json_schema/migrate_boilerplate.d.ts +0 -222
- package/dist/generated/interface/schemas/legacy_json_schema/migrate_boilerplate.js +0 -3
- package/dist/generated/interface/schemas/legacy_json_schema/unmarshall.d.ts +0 -303
- package/dist/generated/interface/schemas/legacy_json_schema/unmarshall.js +0 -3
- package/dist/generated/interface/schemas/legacy_json_schema/value_deserializers.d.ts +0 -44
- package/dist/generated/interface/schemas/legacy_json_schema/value_deserializers.js +0 -3
- package/dist/generated/interface/schemas/legacy_json_schema/value_serializers.d.ts +0 -44
- package/dist/generated/interface/schemas/legacy_json_schema/value_serializers.js +0 -3
- package/dist/interface/testrunner.d.ts +0 -6
- package/dist/interface/testrunner.js +0 -3
- package/dist/run_tests.d.ts +0 -3
- package/dist/run_tests.js +0 -232
- package/dist/shorthands/legacy_json_schema.d.ts +0 -32
- package/dist/shorthands/legacy_json_schema.js +0 -119
- package/dist/temp_astn_target_to_fountain_pen_block.d.ts +0 -8
- package/dist/temp_astn_target_to_fountain_pen_block.js +0 -131
- package/dist/temp_data/json_schema.astn.d.ts +0 -2
- package/dist/temp_data/json_schema.astn.js +0 -278
- package/dist/transformations/legacy_json_schema/astn_sealed_target.d.ts +0 -38
- package/dist/transformations/legacy_json_schema/astn_sealed_target.js +0 -252
- package/dist/types/json.d.ts +0 -4
- package/dist/types/json.js +0 -3
- package/dist/unmarshall_helpers.d.ts +0 -16
- package/dist/unmarshall_helpers.js +0 -163
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import * as _et from 'exupery-core-types';
|
|
2
|
-
import * as d_out from "../../generated/interface/core/astn_target";
|
|
3
|
-
import * as d_json from "../../types/json";
|
|
4
|
-
import * as d_schema from "../../generated/interface/schemas/legacy_json_schema/data_types/target";
|
|
5
|
-
export declare class Abort {
|
|
6
|
-
path: string[];
|
|
7
|
-
error: Error;
|
|
8
|
-
constructor(path: string[], error: Error);
|
|
9
|
-
}
|
|
10
|
-
export type Error = ['type not allowed', Type_Not_Allowed] | ['missing required property', string];
|
|
11
|
-
type Type_Not_Allowed = {
|
|
12
|
-
'allowed types': _et.Array<JSON_Type>;
|
|
13
|
-
};
|
|
14
|
-
export declare const Array_Definition: ($p: {
|
|
15
|
-
"path": string[];
|
|
16
|
-
"json array": _et.Array<d_json.Value>;
|
|
17
|
-
"definition": d_schema.Array_Definition;
|
|
18
|
-
"temp definitions": d_schema.Schema.definitions;
|
|
19
|
-
}) => d_out.Value;
|
|
20
|
-
export declare const Object_Definition: ($p: {
|
|
21
|
-
"path": string[];
|
|
22
|
-
"json object": _et.Dictionary<d_json.Value>;
|
|
23
|
-
"definition": d_schema.Object_Definition;
|
|
24
|
-
"temp definitions": d_schema.Schema.definitions;
|
|
25
|
-
}) => d_out.Value;
|
|
26
|
-
export declare const String_Definition: ($p: {
|
|
27
|
-
"json string": string;
|
|
28
|
-
"path": string[];
|
|
29
|
-
"definition": d_schema.String_Definition;
|
|
30
|
-
}) => d_out.Value;
|
|
31
|
-
type JSON_Type = ['string', null] | ['number', null] | ['boolean', null] | ['object', null] | ['array', null] | ['null', null];
|
|
32
|
-
export declare const Definition: ($p: {
|
|
33
|
-
"json value": d_json.Value;
|
|
34
|
-
"definition": d_schema.Definition;
|
|
35
|
-
"temp definitions": d_schema.Schema.definitions;
|
|
36
|
-
"path": string[];
|
|
37
|
-
}) => d_out.Value;
|
|
38
|
-
export {};
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Definition = exports.String_Definition = exports.Object_Definition = exports.Array_Definition = exports.Abort = void 0;
|
|
27
|
-
const _ea = __importStar(require("exupery-core-alg"));
|
|
28
|
-
const unmarshall_helpers_1 = require("../../unmarshall_helpers");
|
|
29
|
-
const json_schema_astn_1 = require("../../temp_data/json_schema.astn");
|
|
30
|
-
class Abort {
|
|
31
|
-
path;
|
|
32
|
-
error;
|
|
33
|
-
constructor(path, error) {
|
|
34
|
-
this.path = path;
|
|
35
|
-
this.error = error;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.Abort = Abort;
|
|
39
|
-
const abort = (error, path) => {
|
|
40
|
-
throw new Abort(path, error);
|
|
41
|
-
};
|
|
42
|
-
// export const Value_Type = ($: d_ast.Value): d_schema.Value_Type => _ea.cc($.type, ($) => {
|
|
43
|
-
// switch ($[0]) {
|
|
44
|
-
// case 'string': return ['string', null]
|
|
45
|
-
// case 'number': return ['number', null]
|
|
46
|
-
// case 'object': return ['object', null]
|
|
47
|
-
// case 'array': return ['array', null]
|
|
48
|
-
// case 'false': return ['boolean', null]
|
|
49
|
-
// case 'null': return ['null', null]
|
|
50
|
-
// case 'true': return ['boolean', null]
|
|
51
|
-
// default: return _ea.au($[0])
|
|
52
|
-
// }
|
|
53
|
-
// })
|
|
54
|
-
const Array_Definition = ($p) => {
|
|
55
|
-
const $_def = $p.definition;
|
|
56
|
-
return _ea.cc($p.definition.type, ($) => {
|
|
57
|
-
switch ($[0]) {
|
|
58
|
-
case 'list': return _ea.ss($, ($) => {
|
|
59
|
-
const $_list_def = $;
|
|
60
|
-
let counter = -1;
|
|
61
|
-
return ['list', $p['json array'].map(($) => {
|
|
62
|
-
counter++;
|
|
63
|
-
return (0, exports.Definition)({
|
|
64
|
-
'json value': $,
|
|
65
|
-
'definition': $_list_def,
|
|
66
|
-
'temp definitions': $p['temp definitions'],
|
|
67
|
-
'path': [...$p.path, "" + counter],
|
|
68
|
-
});
|
|
69
|
-
})];
|
|
70
|
-
});
|
|
71
|
-
default: return _ea.au($[0]);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
exports.Array_Definition = Array_Definition;
|
|
76
|
-
const Object_Definition = ($p) => {
|
|
77
|
-
const $_def = $p.definition;
|
|
78
|
-
const $_value = json_schema_astn_1.$;
|
|
79
|
-
const $_obj = json_schema_astn_1.$;
|
|
80
|
-
return _ea.cc($_def.type, ($) => {
|
|
81
|
-
switch ($[0]) {
|
|
82
|
-
case 'dictionary': return _ea.ss($, ($) => {
|
|
83
|
-
const $_dictionary_def = $;
|
|
84
|
-
return ['dictionary', $p['json object'].map(($, key) => (0, exports.Definition)({
|
|
85
|
-
'json value': $,
|
|
86
|
-
'definition': $_dictionary_def,
|
|
87
|
-
'temp definitions': $p['temp definitions'],
|
|
88
|
-
'path': [...$p.path, key],
|
|
89
|
-
}))];
|
|
90
|
-
});
|
|
91
|
-
case 'verbose group': return _ea.ss($, ($) => {
|
|
92
|
-
const $_verbose_group_def = $;
|
|
93
|
-
return _ea.cc((0, unmarshall_helpers_1.expect_verbose_type)($p['json object'], $.properties.map(($) => null)), ($) => {
|
|
94
|
-
return ['verbose group', $_verbose_group_def.properties.map(($, key) => {
|
|
95
|
-
const do_def = (property_value) => {
|
|
96
|
-
return (0, exports.Definition)({
|
|
97
|
-
'json value': property_value,
|
|
98
|
-
'definition': $.definition,
|
|
99
|
-
'temp definitions': $p['temp definitions'],
|
|
100
|
-
'path': [...$p.path, key],
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
return $.optional
|
|
104
|
-
? $p['json object'].__get_entry(key).transform(($) => ['optional', ['set', do_def($)]], () => ['optional', ['not set', null]])
|
|
105
|
-
: do_def($p['json object'].__get_entry(key).transform(($) => $, () => abort(['missing required property', key], $p.path)));
|
|
106
|
-
})];
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
default: return _ea.au($[0]);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
exports.Object_Definition = Object_Definition;
|
|
114
|
-
const String_Definition = ($p) => {
|
|
115
|
-
const $_def = $p.definition;
|
|
116
|
-
return _ea.cc($_def, ($) => {
|
|
117
|
-
switch ($[0]) {
|
|
118
|
-
case 'any': return _ea.ss($, ($) => ['text', {
|
|
119
|
-
'delimiter': ['quote', null],
|
|
120
|
-
'value': $p['json string'],
|
|
121
|
-
}]);
|
|
122
|
-
case 'enum': return _ea.ss($, ($) => ['state', {
|
|
123
|
-
'state': $.__get_entry($p['json string']).transform(($) => $p['json string'], () => _ea.panic("Enum value not found: " + $p['json string'])),
|
|
124
|
-
'value': ['nothing', null]
|
|
125
|
-
}]); //FIXME
|
|
126
|
-
default: return _ea.au($[0]);
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
};
|
|
130
|
-
exports.String_Definition = String_Definition;
|
|
131
|
-
const determine_allowed = ($) => {
|
|
132
|
-
return {
|
|
133
|
-
'allowed types': _ea.array_literal([
|
|
134
|
-
['string', null],
|
|
135
|
-
['number', null],
|
|
136
|
-
['boolean', null],
|
|
137
|
-
['object', null],
|
|
138
|
-
['array', null],
|
|
139
|
-
['null', null],
|
|
140
|
-
])
|
|
141
|
-
};
|
|
142
|
-
};
|
|
143
|
-
// const Typed_Value_to_JSON_Type = ($: d_schema.Definition.SG.any_of): JSON_Type => _ea.cc($, ($) => {
|
|
144
|
-
// switch ($[0]) {
|
|
145
|
-
// case 'string': return ['string', null]
|
|
146
|
-
// case 'number': return ['number', null]
|
|
147
|
-
// case 'boolean': return ['boolean', null]
|
|
148
|
-
// case 'object': return ['object', null]
|
|
149
|
-
// case 'array': return ['array', null]
|
|
150
|
-
// case 'null': return ['null', null]
|
|
151
|
-
// default: return _ea.au($[0])
|
|
152
|
-
// }
|
|
153
|
-
// })
|
|
154
|
-
const Definition = ($p) => {
|
|
155
|
-
return _ea.cc($p.definition, ($) => {
|
|
156
|
-
switch ($[0]) {
|
|
157
|
-
case 'any': return _ea.ss($, ($) => ['text', {
|
|
158
|
-
'delimiter': ['quote', null],
|
|
159
|
-
'value': "IMPLEMENT ME: any",
|
|
160
|
-
}]);
|
|
161
|
-
case 'any of': return _ea.ss($, ($) => {
|
|
162
|
-
const $_any_of_def = $;
|
|
163
|
-
const typed_value = (0, unmarshall_helpers_1.determine_type)($p['json value']);
|
|
164
|
-
return _ea.cc(typed_value, ($) => {
|
|
165
|
-
switch ($[0]) {
|
|
166
|
-
case 'string': return _ea.ss($, ($) => {
|
|
167
|
-
const $_string = $;
|
|
168
|
-
return $_any_of_def.string.transform(($) => (0, exports.String_Definition)({
|
|
169
|
-
'definition': $,
|
|
170
|
-
'json string': $_string,
|
|
171
|
-
'path': $p.path,
|
|
172
|
-
}), () => abort(['type not allowed', determine_allowed($_any_of_def)], $p.path));
|
|
173
|
-
});
|
|
174
|
-
case 'number': return _ea.ss($, ($) => {
|
|
175
|
-
const $_number = $;
|
|
176
|
-
return $_any_of_def.number.transform(($) => ['text', {
|
|
177
|
-
'delimiter': ['none', null],
|
|
178
|
-
'value': "" + $_number,
|
|
179
|
-
}], () => abort(['type not allowed', determine_allowed($_any_of_def)], $p.path));
|
|
180
|
-
});
|
|
181
|
-
case 'boolean': return _ea.ss($, ($) => {
|
|
182
|
-
const $_boolean = $;
|
|
183
|
-
return $_any_of_def.boolean.transform(($) => ['text', {
|
|
184
|
-
'delimiter': ['none', null],
|
|
185
|
-
'value': $_boolean ? "true" : "false",
|
|
186
|
-
}], () => abort(['type not allowed', determine_allowed($_any_of_def)], $p.path));
|
|
187
|
-
});
|
|
188
|
-
case 'object': return _ea.ss($, ($) => {
|
|
189
|
-
const $_object = $;
|
|
190
|
-
return $_any_of_def.object.transform(($) => (0, exports.Object_Definition)({
|
|
191
|
-
'json object': $_object,
|
|
192
|
-
'definition': $,
|
|
193
|
-
'path': $p.path,
|
|
194
|
-
'temp definitions': $p['temp definitions'],
|
|
195
|
-
}), () => abort(['type not allowed', determine_allowed($_any_of_def)], $p.path));
|
|
196
|
-
});
|
|
197
|
-
case 'array': return _ea.ss($, ($) => {
|
|
198
|
-
const $_array = $;
|
|
199
|
-
return $_any_of_def.array.transform(($) => ['text', {
|
|
200
|
-
'delimiter': ['none', null],
|
|
201
|
-
'value': "FIXME ARRAY",
|
|
202
|
-
}], () => abort(['type not allowed', determine_allowed($_any_of_def)], $p.path));
|
|
203
|
-
});
|
|
204
|
-
case 'null': return _ea.ss($, ($) => {
|
|
205
|
-
const $_null = $;
|
|
206
|
-
return $_any_of_def.null.transform(($) => ['text', {
|
|
207
|
-
'delimiter': ['none', null],
|
|
208
|
-
'value': "null",
|
|
209
|
-
}], () => abort(['type not allowed', determine_allowed($_any_of_def)], $p.path));
|
|
210
|
-
});
|
|
211
|
-
default: return _ea.au($[0]);
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
|
-
case 'string': return _ea.ss($, ($) => (0, exports.String_Definition)({
|
|
216
|
-
'definition': $,
|
|
217
|
-
'json string': (0, unmarshall_helpers_1.expect_string)($p['json value']),
|
|
218
|
-
'path': $p.path,
|
|
219
|
-
}));
|
|
220
|
-
case 'number': return _ea.ss($, ($) => ['text', {
|
|
221
|
-
'delimiter': ['none', null],
|
|
222
|
-
'value': "" + (0, unmarshall_helpers_1.expect_number)($p['json value']),
|
|
223
|
-
}]);
|
|
224
|
-
case 'boolean': return _ea.ss($, ($) => ['text', {
|
|
225
|
-
'delimiter': ['none', null],
|
|
226
|
-
'value': (0, unmarshall_helpers_1.expect_boolean)($p['json value']) ? "true" : "false",
|
|
227
|
-
}]);
|
|
228
|
-
case 'object': return _ea.ss($, ($) => (0, exports.Object_Definition)({
|
|
229
|
-
'json object': (0, unmarshall_helpers_1.expect_dictionary)($p['json value']),
|
|
230
|
-
'definition': $,
|
|
231
|
-
'path': $p.path,
|
|
232
|
-
'temp definitions': $p['temp definitions'],
|
|
233
|
-
}));
|
|
234
|
-
case 'definition reference': return _ea.ss($, ($) => $p['temp definitions'].__get_entry($).transform(($) => (0, exports.Definition)({
|
|
235
|
-
'json value': $p['json value'],
|
|
236
|
-
'path': $p.path,
|
|
237
|
-
'definition': $,
|
|
238
|
-
'temp definitions': $p['temp definitions'],
|
|
239
|
-
}), () => _ea.panic("missing definition reference: " + $)));
|
|
240
|
-
case 'array': return _ea.ss($, ($) => (0, exports.Array_Definition)({
|
|
241
|
-
'json array': (0, unmarshall_helpers_1.expect_array)($p['json value']),
|
|
242
|
-
'definition': $,
|
|
243
|
-
'temp definitions': $p['temp definitions'],
|
|
244
|
-
'path': $p.path,
|
|
245
|
-
}));
|
|
246
|
-
case 'null': return _ea.ss($, ($) => ['nothing', (0, unmarshall_helpers_1.expect_null)($p['json value'])]);
|
|
247
|
-
default: return _ea.au($[0]);
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
};
|
|
251
|
-
exports.Definition = Definition;
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0bl9zZWFsZWRfdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zZm9ybWF0aW9ucy9sZWdhY3lfanNvbl9zY2hlbWEvYXN0bl9zZWFsZWRfdGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBUXZDLGlFQUF1TDtBQUN2TCx1RUFBb0Q7QUFLcEQsTUFBYSxLQUFLO0lBRUg7SUFDQTtJQUZYLFlBQ1csSUFBYyxFQUNkLEtBQVk7UUFEWixTQUFJLEdBQUosSUFBSSxDQUFVO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUNuQixDQUFDO0NBQ1I7QUFMRCxzQkFLQztBQVNELE1BQU0sS0FBSyxHQUFHLENBQ1YsS0FBWSxFQUNaLElBQWMsRUFDaEIsRUFBRTtJQUNBLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ2hDLENBQUMsQ0FBQTtBQUVELDZGQUE2RjtBQUM3RixzQkFBc0I7QUFDdEIsaURBQWlEO0FBQ2pELGlEQUFpRDtBQUNqRCxpREFBaUQ7QUFDakQsK0NBQStDO0FBQy9DLGlEQUFpRDtBQUNqRCw2Q0FBNkM7QUFDN0MsZ0RBQWdEO0FBQ2hELHVDQUF1QztBQUN2QyxRQUFRO0FBQ1IsS0FBSztBQUVFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDNUIsRUFLQyxFQUNVLEVBQUU7SUFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFBO0lBRTNCLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3BDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFD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
|
package/dist/types/json.d.ts
DELETED
package/dist/types/json.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as _et from 'exupery-core-types';
|
|
2
|
-
import { Value } from "./types/json";
|
|
3
|
-
export type Typed_Value = ['string', string] | ['number', number] | ['boolean', boolean] | ['null', null] | ['array', _et.Array<Value>] | ['object', _et.Dictionary<Value>];
|
|
4
|
-
export declare const determine_type: ($: Value) => Typed_Value;
|
|
5
|
-
export declare const expect_dictionary: ($: Value) => _et.Dictionary<Value>;
|
|
6
|
-
export declare const expect_verbose_type: ($: _et.Dictionary<Value>, allowed_properties: _et.Dictionary<null>) => _et.Dictionary<Value>;
|
|
7
|
-
export declare const expect_property: ($: _et.Dictionary<Value>, key: string) => Value;
|
|
8
|
-
export declare const expect_optional_property: ($: _et.Dictionary<Value>, key: string) => _et.Optional_Value<Value>;
|
|
9
|
-
export declare const expect_array: ($: Value) => _et.Array<Value>;
|
|
10
|
-
export type State = [string, Value];
|
|
11
|
-
export declare const expect_state: ($: Value) => State;
|
|
12
|
-
export declare const expect_number: ($: Value) => number;
|
|
13
|
-
export declare const expect_boolean: ($: Value) => boolean;
|
|
14
|
-
export declare const expect_string: ($: Value) => string;
|
|
15
|
-
export declare const expect_null: ($: Value) => null;
|
|
16
|
-
export declare const expect_optional_null: ($: Value) => _et.Optional_Value<Value>;
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.expect_optional_null = exports.expect_null = exports.expect_string = exports.expect_boolean = exports.expect_number = exports.expect_state = exports.expect_array = exports.expect_optional_property = exports.expect_property = exports.expect_verbose_type = exports.expect_dictionary = exports.determine_type = void 0;
|
|
27
|
-
const _ei = __importStar(require("exupery-core-internals"));
|
|
28
|
-
const determine_type = ($) => {
|
|
29
|
-
if (typeof $ === 'string') {
|
|
30
|
-
return ['string', $];
|
|
31
|
-
}
|
|
32
|
-
else if (typeof $ === 'number') {
|
|
33
|
-
return ['number', $];
|
|
34
|
-
}
|
|
35
|
-
else if (typeof $ === 'boolean') {
|
|
36
|
-
return ['boolean', $];
|
|
37
|
-
}
|
|
38
|
-
else if ($ === null) {
|
|
39
|
-
return ['null', null];
|
|
40
|
-
}
|
|
41
|
-
else if (Array.isArray($)) {
|
|
42
|
-
return ['array', _ei.array_literal($)];
|
|
43
|
-
}
|
|
44
|
-
else if (typeof $ === 'object') {
|
|
45
|
-
return ['object', _ei.dictionary_literal($)];
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
_ei.panic(`Unknown type: ${typeof $}`);
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
exports.determine_type = determine_type;
|
|
52
|
-
const expect_dictionary = ($) => {
|
|
53
|
-
if (typeof $ !== 'object' || $ === null || Array.isArray($)) {
|
|
54
|
-
_ei.panic("Expected object");
|
|
55
|
-
}
|
|
56
|
-
const result = _ei.dictionary_literal($);
|
|
57
|
-
return result;
|
|
58
|
-
};
|
|
59
|
-
exports.expect_dictionary = expect_dictionary;
|
|
60
|
-
const expect_verbose_type = ($, allowed_properties) => {
|
|
61
|
-
const keys = [];
|
|
62
|
-
allowed_properties.map(($, key) => {
|
|
63
|
-
keys.push(key);
|
|
64
|
-
});
|
|
65
|
-
$.map(($, key) => {
|
|
66
|
-
if (!keys.includes(key)) {
|
|
67
|
-
_ei.panic(`Unexpected property: '${key}'`);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
return $;
|
|
71
|
-
};
|
|
72
|
-
exports.expect_verbose_type = expect_verbose_type;
|
|
73
|
-
// export const resolve_object = <T, NT>(
|
|
74
|
-
// $: { [key: string]: T },
|
|
75
|
-
// fn: (value: T, key: string, sibling_getter: ($: string) => NT) => NT
|
|
76
|
-
// ): { [key: string]: NT } => {
|
|
77
|
-
// const result: { [key: string]: NT } = {}
|
|
78
|
-
// const inner_resolve = (key: string): NT => {
|
|
79
|
-
// if (key in result) {
|
|
80
|
-
// return result[key]
|
|
81
|
-
// }
|
|
82
|
-
// if (!(key in $)) {
|
|
83
|
-
// _ea.panic(`no such entry: '${key}'`)
|
|
84
|
-
// }
|
|
85
|
-
// const value = $[key]
|
|
86
|
-
// const resolved = fn(value, key, (sibling_key: string) => inner_resolve(sibling_key))
|
|
87
|
-
// result[key] = resolved
|
|
88
|
-
// return resolved
|
|
89
|
-
// }
|
|
90
|
-
// Object.entries($).forEach(([key, value]) => {
|
|
91
|
-
// inner_resolve(key)
|
|
92
|
-
// })
|
|
93
|
-
// return result
|
|
94
|
-
// }
|
|
95
|
-
const expect_property = ($, key) => {
|
|
96
|
-
return $.__get_entry(key).transform(($) => $, () => _ei.panic("no such entry"));
|
|
97
|
-
};
|
|
98
|
-
exports.expect_property = expect_property;
|
|
99
|
-
const expect_optional_property = ($, key) => {
|
|
100
|
-
return $.__get_entry(key);
|
|
101
|
-
};
|
|
102
|
-
exports.expect_optional_property = expect_optional_property;
|
|
103
|
-
const expect_array = ($) => {
|
|
104
|
-
if (!Array.isArray($)) {
|
|
105
|
-
_ei.panic("Expected array");
|
|
106
|
-
}
|
|
107
|
-
return _ei.array_literal($);
|
|
108
|
-
};
|
|
109
|
-
exports.expect_array = expect_array;
|
|
110
|
-
const expect_state = ($) => {
|
|
111
|
-
if (!Array.isArray($)) {
|
|
112
|
-
console.log(JSON.stringify($));
|
|
113
|
-
_ei.panic(`Expected array for state, got ${typeof $}`);
|
|
114
|
-
}
|
|
115
|
-
if ($.length !== 2) {
|
|
116
|
-
console.log(JSON.stringify($));
|
|
117
|
-
_ei.panic(`Expected tuple of 2 for state, got ${$.length}`);
|
|
118
|
-
}
|
|
119
|
-
const widget_name = $[0];
|
|
120
|
-
const widget_value = $[1];
|
|
121
|
-
if (typeof widget_name !== 'string') {
|
|
122
|
-
console.log(JSON.stringify($));
|
|
123
|
-
_ei.panic(`Expected state name to be string, got ${JSON.stringify(widget_name)}`);
|
|
124
|
-
}
|
|
125
|
-
return [widget_name, widget_value];
|
|
126
|
-
};
|
|
127
|
-
exports.expect_state = expect_state;
|
|
128
|
-
const expect_number = ($) => {
|
|
129
|
-
if (typeof $ !== 'number') {
|
|
130
|
-
_ei.panic(`Expected number, got ${JSON.stringify($)}`);
|
|
131
|
-
}
|
|
132
|
-
return $;
|
|
133
|
-
};
|
|
134
|
-
exports.expect_number = expect_number;
|
|
135
|
-
const expect_boolean = ($) => {
|
|
136
|
-
if (typeof $ !== 'boolean') {
|
|
137
|
-
_ei.panic(`Expected boolean, got ${JSON.stringify($)}`);
|
|
138
|
-
}
|
|
139
|
-
return $;
|
|
140
|
-
};
|
|
141
|
-
exports.expect_boolean = expect_boolean;
|
|
142
|
-
const expect_string = ($) => {
|
|
143
|
-
if (typeof $ !== 'string') {
|
|
144
|
-
_ei.panic(`Expected string, got ${JSON.stringify($)}`);
|
|
145
|
-
}
|
|
146
|
-
return $;
|
|
147
|
-
};
|
|
148
|
-
exports.expect_string = expect_string;
|
|
149
|
-
const expect_null = ($) => {
|
|
150
|
-
if ($ !== null) {
|
|
151
|
-
_ei.panic(`Expected null, got ${JSON.stringify($)}`);
|
|
152
|
-
}
|
|
153
|
-
return null;
|
|
154
|
-
};
|
|
155
|
-
exports.expect_null = expect_null;
|
|
156
|
-
const expect_optional_null = ($) => {
|
|
157
|
-
if ($ !== null) {
|
|
158
|
-
return _ei.set($);
|
|
159
|
-
}
|
|
160
|
-
return _ei.not_set();
|
|
161
|
-
};
|
|
162
|
-
exports.expect_optional_null = expect_optional_null;
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5tYXJzaGFsbF9oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VubWFyc2hhbGxfaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDREQUE2QztBQVl0QyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQVEsRUFBZSxFQUFFO0lBQ3BELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN4QixDQUFDO1NBQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3hCLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDekIsQ0FBQztTQUFNLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDekIsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFDLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDaEQsQ0FBQztTQUFNLENBQUM7UUFDSixHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDMUMsQ0FBQztBQUNMLENB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
|