pareto-test 0.0.1

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.
Files changed (57) hide show
  1. package/dist/bin/json_to_astn.d.ts +2 -0
  2. package/dist/bin/json_to_astn.js +177 -0
  3. package/dist/bin/temp_serialize_json_schema.d.ts +2 -0
  4. package/dist/bin/temp_serialize_json_schema.js +60 -0
  5. package/dist/generated/implementation/generic/resolve.d.ts +109 -0
  6. package/dist/generated/implementation/generic/resolve.js +276 -0
  7. package/dist/generated/implementation/generic/unmarshall.d.ts +42 -0
  8. package/dist/generated/implementation/generic/unmarshall.js +238 -0
  9. package/dist/generated/implementation/schemas/legacy_json_schema/marshall.d.ts +11 -0
  10. package/dist/generated/implementation/schemas/legacy_json_schema/marshall.js +260 -0
  11. package/dist/generated/implementation/schemas/legacy_json_schema/unmarshall.d.ts +11 -0
  12. package/dist/generated/implementation/schemas/legacy_json_schema/unmarshall.js +246 -0
  13. package/dist/generated/interface/core/astn_source.d.ts +108 -0
  14. package/dist/generated/interface/core/astn_source.js +3 -0
  15. package/dist/generated/interface/core/astn_target.d.ts +186 -0
  16. package/dist/generated/interface/core/astn_target.js +3 -0
  17. package/dist/generated/interface/core/resolve.d.ts +11 -0
  18. package/dist/generated/interface/core/resolve.js +3 -0
  19. package/dist/generated/interface/core/resolved.d.ts +117 -0
  20. package/dist/generated/interface/core/resolved.js +3 -0
  21. package/dist/generated/interface/core/unconstrained.d.ts +19 -0
  22. package/dist/generated/interface/core/unconstrained.js +3 -0
  23. package/dist/generated/interface/core/unresolved.d.ts +181 -0
  24. package/dist/generated/interface/core/unresolved.js +3 -0
  25. package/dist/generated/interface/schemas/legacy_json_schema/data_types/resolve.d.ts +1 -0
  26. package/dist/generated/interface/schemas/legacy_json_schema/data_types/resolve.js +7 -0
  27. package/dist/generated/interface/schemas/legacy_json_schema/data_types/source.d.ts +574 -0
  28. package/dist/generated/interface/schemas/legacy_json_schema/data_types/source.js +3 -0
  29. package/dist/generated/interface/schemas/legacy_json_schema/data_types/target.d.ts +574 -0
  30. package/dist/generated/interface/schemas/legacy_json_schema/data_types/target.js +3 -0
  31. package/dist/generated/interface/schemas/legacy_json_schema/marshall.d.ts +303 -0
  32. package/dist/generated/interface/schemas/legacy_json_schema/marshall.js +3 -0
  33. package/dist/generated/interface/schemas/legacy_json_schema/migrate_boilerplate.d.ts +222 -0
  34. package/dist/generated/interface/schemas/legacy_json_schema/migrate_boilerplate.js +3 -0
  35. package/dist/generated/interface/schemas/legacy_json_schema/unmarshall.d.ts +303 -0
  36. package/dist/generated/interface/schemas/legacy_json_schema/unmarshall.js +3 -0
  37. package/dist/generated/interface/schemas/legacy_json_schema/value_deserializers.d.ts +44 -0
  38. package/dist/generated/interface/schemas/legacy_json_schema/value_deserializers.js +3 -0
  39. package/dist/generated/interface/schemas/legacy_json_schema/value_serializers.d.ts +44 -0
  40. package/dist/generated/interface/schemas/legacy_json_schema/value_serializers.js +3 -0
  41. package/dist/interface/testrunner.d.ts +4 -0
  42. package/dist/interface/testrunner.js +3 -0
  43. package/dist/run_tests.d.ts +4 -0
  44. package/dist/run_tests.js +239 -0
  45. package/dist/shorthands/legacy_json_schema.d.ts +32 -0
  46. package/dist/shorthands/legacy_json_schema.js +119 -0
  47. package/dist/temp_astn_target_to_fountain_pen_block.d.ts +8 -0
  48. package/dist/temp_astn_target_to_fountain_pen_block.js +131 -0
  49. package/dist/temp_data/json_schema.astn.d.ts +2 -0
  50. package/dist/temp_data/json_schema.astn.js +278 -0
  51. package/dist/transformations/legacy_json_schema/astn_sealed_target.d.ts +38 -0
  52. package/dist/transformations/legacy_json_schema/astn_sealed_target.js +252 -0
  53. package/dist/types/json.d.ts +4 -0
  54. package/dist/types/json.js +3 -0
  55. package/dist/unmarshall_helpers.d.ts +16 -0
  56. package/dist/unmarshall_helpers.js +163 -0
  57. package/package.json +20 -0
@@ -0,0 +1,38 @@
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 {};
@@ -0,0 +1,252 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0bl9zZWFsZWRfdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zZm9ybWF0aW9ucy9sZWdhY3lfanNvbl9zY2hlbWEvYXN0bl9zZWFsZWRfdGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBUXZDLGlFQUF1TDtBQUN2TCx1RUFBb0Q7QUFLcEQsTUFBYSxLQUFLO0lBRUg7SUFDQTtJQUZYLFlBQ1csSUFBYyxFQUNkLEtBQVk7UUFEWixTQUFJLEdBQUosSUFBSSxDQUFVO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUNuQixDQUFDO0NBQ1I7QUFMRCxzQkFLQztBQVNELE1BQU0sS0FBSyxHQUFHLENBQ1YsS0FBWSxFQUNaLElBQWMsRUFDaEIsRUFBRTtJQUNBLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ2hDLENBQUMsQ0FBQTtBQUVELDZGQUE2RjtBQUM3RixzQkFBc0I7QUFDdEIsaURBQWlEO0FBQ2pELGlEQUFpRDtBQUNqRCxpREFBaUQ7QUFDakQsK0NBQStDO0FBQy9DLGlEQUFpRDtBQUNqRCw2Q0FBNkM7QUFDN0MsZ0RBQWdEO0FBQ2hELHVDQUF1QztBQUN2QyxRQUFRO0FBQ1IsS0FBSztBQUVFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDNUIsRUFLQyxFQUNVLEVBQUU7SUFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFBO0lBRTNCLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3BDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDaEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFBO2dCQUNwQixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDaEIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ3ZDLE9BQU8sRUFBRSxDQUFBO3dCQUNULE9BQU8sSUFBQSxrQkFBVSxFQUFDOzRCQUNkLFlBQVksRUFBRSxDQUFDOzRCQUNmLFlBQVksRUFBRSxVQUFVOzRCQUN4QixrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUM7NEJBQzFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDO3lCQUNyQyxDQUFDLENBQUE7b0JBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNQLENBQUMsQ0FBQyxDQUFBO1lBRUYsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2hDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUVOLENBQUMsQ0FBQTtBQTlCWSxRQUFBLGdCQUFnQixvQkE4QjVCO0FBSU0sTUFBTSxpQkFBaUIsR0FBRyxDQUM3QixFQUtDLEVBQ1UsRUFBRTtJQUNiLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUE7SUFDM0IsTUFBTSxPQUFPLEdBQUcsb0JBQUMsQ0FBQTtJQUNqQixNQUFNLEtBQUssR0FBRyxvQkFBQyxDQUFBO0lBRWYsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUM1QixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsS0FBSyxZQUFZLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFlLEVBQUU7Z0JBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFBO2dCQUMxQixPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFBLGtCQUFVLEVBQUM7d0JBQy9ELFlBQVksRUFBRSxDQUFDO3dCQUNmLFlBQVksRUFBRSxnQkFBZ0I7d0JBQzlCLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzt3QkFDMUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztxQkFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNSLENBQUMsQ0FBQyxDQUFBO1lBQ0YsS0FBSyxlQUFlLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFlLEVBQUU7Z0JBQ3RELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO2dCQUM3QixPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQ1QsSUFBQSx3Q0FBbUIsRUFDZixFQUFFLENBQUMsYUFBYSxDQUFDLEVBQ2pCLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEMsRUFDRCxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNGLE9BQU8sQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTs0QkFFbkUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxjQUE0QixFQUFFLEVBQUU7Z0NBQzVDLE9BQU8sSUFBQSxrQkFBVSxFQUFDO29DQUNkLFlBQVksRUFBRSxjQUFjO29DQUM1QixZQUFZLEVBQUUsQ0FBQyxDQUFDLFVBQVU7b0NBQzFCLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQ0FDMUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztpQ0FDNUIsQ0FBQyxDQUFBOzRCQUVOLENBQUMsQ0FBQTs0QkFDRCxPQUFPLENBQUMsQ0FBQyxRQUFRO2dDQUNiLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FDMUMsQ0FBQyxDQUFDLEVBQWUsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3BELEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQ3hDO2dDQUNELENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQ2pELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ1IsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUMzRCxDQUFDLENBQUE7d0JBRVYsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDUCxDQUFDLENBQ0osQ0FBQTtZQUNMLENBQUMsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2hDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQTtBQTNEWSxRQUFBLGlCQUFpQixxQkEyRDdCO0FBRU0sTUFBTSxpQkFBaUIsR0FBRyxDQUM3QixFQUlDLEVBQ1UsRUFBRTtJQUNiLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUE7SUFDM0IsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3ZCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUN6QyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO29CQUM1QixPQUFPLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDN0IsQ0FBQyxDQUFDLENBQUE7WUFDSCxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQWUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUN4RCxPQUFPLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQy9DLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQ3hCLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQ2hFO29CQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7aUJBQzdCLENBQUMsQ0FBQyxDQUFBLENBQUMsT0FBTztZQUNYLE9BQU8sQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUF4QlksUUFBQSxpQkFBaUIscUJBd0I3QjtBQVdELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFnQyxFQUFvQixFQUFFO0lBQzdFLE9BQU87UUFDSCxlQUFlLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQztZQUMvQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7WUFDaEIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQ2hCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQztZQUNqQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7WUFDaEIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1lBQ2YsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1NBQ2pCLENBQUM7S0FDTCxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsdUdBQXVHO0FBQ3ZHLHNCQUFzQjtBQUN0QixpREFBaUQ7QUFDakQsaURBQWlEO0FBQ2pELG1EQUFtRDtBQUNuRCxpREFBaUQ7QUFDakQsK0NBQStDO0FBQy9DLDZDQUE2QztBQUM3Qyx1Q0FBdUM7QUFDdkMsUUFBUTtBQUNSLEtBQUs7QUFFRSxNQUFNLFVBQVUsR0FBRyxDQUN0QixFQUtDLEVBQ1UsRUFBRTtJQUNiLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFlLEVBQUU7UUFDNUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNYLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3pDLFdBQVcsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxtQkFBbUI7aUJBQy9CLENBQUMsQ0FBQyxDQUFBO1lBQ0gsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFlLEVBQUU7Z0JBQy9DLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQTtnQkFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQ0FBYyxFQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO2dCQUNwRCxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQ1QsV0FBVyxFQUNYLENBQUMsQ0FBQyxFQUFlLEVBQUU7b0JBQ2YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDWCxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTs0QkFDbEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFBOzRCQUNsQixPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUNoQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBaUIsRUFBQztnQ0FDckIsWUFBWSxFQUFFLENBQUM7Z0NBQ2YsYUFBYSxFQUFFLFFBQVE7Z0NBQ3ZCLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTs2QkFDbEIsQ0FBQyxFQUNGLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUM5RSxDQUFBO3dCQUNMLENBQUMsQ0FBQyxDQUFBO3dCQUNGLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFOzRCQUNsQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUE7NEJBQ2xCLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ2hDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtvQ0FDWixXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO29DQUMzQixPQUFPLEVBQUUsRUFBRSxHQUFHLFFBQVE7aUNBQ3pCLENBQUMsRUFDRixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDOUUsQ0FBQTt3QkFDTCxDQUFDLENBQUMsQ0FBQTt3QkFDRixLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTs0QkFDbkMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFBOzRCQUNuQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUNqQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7b0NBQ1osV0FBVyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztvQ0FDM0IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2lDQUN4QyxDQUFDLEVBQ0YsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQzlFLENBQUE7d0JBQ0wsQ0FBQyxDQUFDLENBQUE7d0JBQ0YsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7NEJBQ2xDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQTs0QkFDbEIsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDaEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEseUJBQWlCLEVBQUM7Z0NBQ3JCLGFBQWEsRUFBRSxRQUFRO2dDQUN2QixZQUFZLEVBQUUsQ0FBQztnQ0FDZixNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUk7Z0NBQ2Ysa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDOzZCQUM3QyxDQUFDLEVBQ0YsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQzlFLENBQUE7d0JBQ0wsQ0FBQyxDQUFDLENBQUE7d0JBQ0YsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7NEJBQ2pDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQTs0QkFDakIsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDL0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO29DQUNaLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7b0NBQzNCLE9BQU8sRUFBRSxhQUFhO2lDQUN6QixDQUFDLEVBQ0YsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQzlFLENBQUE7d0JBQ0wsQ0FBQyxDQUFDLENBQUE7d0JBQ0YsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7NEJBQ2hDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQTs0QkFDaEIsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDOUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO29DQUNaLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7b0NBQzNCLE9BQU8sRUFBRSxNQUFNO2lDQUNsQixDQUFDLEVBQ0YsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQzlFLENBQUE7d0JBQ0wsQ0FBQyxDQUFDLENBQUE7d0JBQ0YsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNoQyxDQUFDO2dCQUNMLENBQUMsQ0FDSixDQUFBO1lBQ0wsQ0FBQyxDQUFDLENBQUE7WUFFRixLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEseUJBQWlCLEVBQUM7Z0JBQ3JELFlBQVksRUFBRSxDQUFDO2dCQUNmLGFBQWEsRUFBRSxJQUFBLGtDQUFhLEVBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUk7YUFDbEIsQ0FBQyxDQUFDLENBQUE7WUFDSCxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUM1QyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO29CQUMzQixPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUEsa0NBQWEsRUFBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ2hELENBQUMsQ0FBQyxDQUFBO1lBQ0gsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtvQkFDN0MsV0FBVyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztvQkFDM0IsT0FBTyxFQUFFLElBQUEsbUNBQWMsRUFBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2lCQUMvRCxDQUFDLENBQUMsQ0FBQTtZQUNILEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBaUIsRUFBQztnQkFDckQsYUFBYSxFQUFFLElBQUEsc0NBQWlCLEVBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsRCxZQUFZLEVBQUUsQ0FBQztnQkFDZixNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUk7Z0JBQ2Ysa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzdDLENBQUMsQ0FBQyxDQUFBO1lBQ0gsS0FBSyxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ2hHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLGtCQUFVLEVBQ2I7Z0JBQ0ksWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQzlCLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTtnQkFDZixZQUFZLEVBQUUsQ0FBQztnQkFDZixrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUM7YUFDN0MsQ0FDSixFQUNELEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDLENBQ3hELENBQUMsQ0FBQTtZQUNGLEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx3QkFBZ0IsRUFBQztnQkFDbkQsWUFBWSxFQUFFLElBQUEsaUNBQVksRUFBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzVDLFlBQVksRUFBRSxDQUFDO2dCQUNmLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDMUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJO2FBQ2xCLENBQUMsQ0FBQyxDQUFBO1lBQ0gsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFBLGdDQUFXLEVBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2hGLE9BQU8sQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUFsSVksUUFBQSxVQUFVLGNBa0l0QiJ9
@@ -0,0 +1,4 @@
1
+ export type Value = string | boolean | null | number | Value[] | Object;
2
+ export type Object = {
3
+ [key: string]: Value;
4
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,16 @@
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>;
@@ -0,0 +1,163 @@
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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
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "pareto-test",
3
+ "version": "0.0.1",
4
+ "description": "A testing framework for Pareto projects",
5
+ "main": "./dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "dependencies": {
11
+ "astn": "^0.111.29",
12
+ "exupery-core-alg": "^0.1.12",
13
+ "exupery-core-async": "^0.1.43",
14
+ "exupery-core-dev": "^0.1.3",
15
+ "pareto-fountain-pen": "^0.1.41"
16
+ },
17
+ "devDependencies": {
18
+ "@types/node": "^24.7.1"
19
+ }
20
+ }