pareto 0.76.1 → 0.76.3

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 (49) hide show
  1. package/dist/generated/generic/resolve.d.ts +90 -0
  2. package/dist/generated/generic/resolve.js +249 -0
  3. package/dist/generated/implementation/schemas/module/resolve.d.ts +4 -0
  4. package/dist/generated/implementation/schemas/module/resolve.js +149 -0
  5. package/dist/generated/implementation/schemas/schema/resolve.d.ts +35 -0
  6. package/dist/generated/implementation/schemas/schema/resolve.js +1998 -0
  7. package/dist/generated/interface/core/resolved.d.ts +100 -0
  8. package/dist/generated/interface/core/resolved.js +3 -0
  9. package/dist/generated/interface/core/unconstrained.d.ts +19 -0
  10. package/dist/generated/interface/core/unconstrained.js +3 -0
  11. package/dist/generated/interface/core/unresolved.d.ts +184 -0
  12. package/dist/generated/interface/core/unresolved.js +3 -0
  13. package/dist/generated/interface/schemas/module/migration_boilerplate.d.ts +50 -0
  14. package/dist/generated/interface/schemas/module/migration_boilerplate.js +3 -0
  15. package/dist/generated/interface/schemas/module/resolve.d.ts +127 -0
  16. package/dist/generated/interface/schemas/module/resolve.js +3 -0
  17. package/dist/generated/interface/schemas/module/resolved.d.ts +133 -0
  18. package/dist/generated/interface/schemas/module/resolved.js +3 -0
  19. package/dist/generated/interface/schemas/module/unresolved.d.ts +133 -0
  20. package/dist/generated/interface/schemas/module/unresolved.js +3 -0
  21. package/dist/generated/interface/schemas/schema/migration_boilerplate.d.ts +794 -0
  22. package/dist/generated/interface/schemas/schema/migration_boilerplate.js +3 -0
  23. package/dist/generated/interface/schemas/schema/resolve.d.ts +4401 -0
  24. package/dist/generated/interface/schemas/schema/resolve.js +3 -0
  25. package/dist/generated/interface/schemas/schema/resolved.d.ts +3793 -0
  26. package/dist/generated/interface/schemas/schema/resolved.js +3 -0
  27. package/dist/generated/interface/schemas/schema/unresolved.d.ts +3793 -0
  28. package/dist/generated/interface/schemas/schema/unresolved.js +3 -0
  29. package/dist/globals.d.ts +24 -0
  30. package/dist/globals.js +2 -0
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.js +5 -0
  33. package/dist/shorthands/module.d.ts +8 -0
  34. package/dist/shorthands/module.js +29 -0
  35. package/dist/shorthands/schema.d.ts +139 -0
  36. package/dist/shorthands/schema.js +870 -0
  37. package/dist/transformations/unmarshall/collect_errors.d.ts +38 -0
  38. package/dist/transformations/unmarshall/collect_errors.js +185 -0
  39. package/dist/transformations/unmarshall/dynamic_post_parse.d.ts +7 -0
  40. package/dist/transformations/unmarshall/dynamic_post_parse.js +267 -0
  41. package/dist/transformations/unmarshall/post_parse_types.d.ts +77 -0
  42. package/dist/transformations/unmarshall/post_parse_types.js +3 -0
  43. package/dist/unmarshall/collect_errors.d.ts +38 -0
  44. package/dist/unmarshall/collect_errors.js +185 -0
  45. package/dist/unmarshall/dynamic_post_parse.d.ts +7 -0
  46. package/dist/unmarshall/dynamic_post_parse.js +267 -0
  47. package/dist/unmarshall/post_parse_types.d.ts +77 -0
  48. package/dist/unmarshall/post_parse_types.js +3 -0
  49. package/package.json +2 -1
@@ -0,0 +1,870 @@
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.schema_ = exports.unconstrained = exports.constrained = exports.import_ = exports.schemas = exports.resolvers = exports.signatures = exports.resolver = exports.r = exports.pc = exports.oc = exports.state_constrained = exports.state = exports.av = exports.gvs = exports.pvs = exports.ovi = exports.vst = exports.al = exports.rls = exports.lookup_parameter = exports.value_parameter_external = exports.value_parameter = exports.sig = exports.sig_params = exports.tr = exports.t = exports.part_reference = exports.reference = exports.n = exports.text = exports.type = exports.globals = exports.types = void 0;
27
+ const pd = __importStar(require("exupery-core-data"));
28
+ const unresolved_1 = require("exupery-core-data/dist/shorthands/unresolved");
29
+ const types = (types) => {
30
+ return (0, unresolved_1.wrap_dictionary)(types);
31
+ };
32
+ exports.types = types;
33
+ const globals = (complexity, text_types, number_types) => {
34
+ return {
35
+ 'complexity': complexity === 'unconstrained'
36
+ ? (0, unresolved_1.wrap_state_group)(['unconstrained', null])
37
+ : (0, unresolved_1.wrap_state_group)(['constrained', null]),
38
+ 'text types': (0, unresolved_1.wrap_dictionary)(text_types),
39
+ 'number types': (0, unresolved_1.wrap_dictionary)(number_types),
40
+ };
41
+ };
42
+ exports.globals = globals;
43
+ const type = (type) => {
44
+ return {
45
+ 'type parameters': (0, unresolved_1.wrap_dictionary)({}),
46
+ 'node': type,
47
+ };
48
+ };
49
+ exports.type = type;
50
+ const text = (type) => {
51
+ return {
52
+ 'type': type === 'single line' ? (0, unresolved_1.wrap_state_group)(['single line', null]) : (0, unresolved_1.wrap_state_group)(['multi line', null]),
53
+ };
54
+ };
55
+ exports.text = text;
56
+ var n;
57
+ (function (n) {
58
+ n.integer = (decimal_separator_offset) => {
59
+ return {
60
+ 'precision': (0, unresolved_1.wrap_state_group)(['exact', {
61
+ 'decimal separator offset': decimal_separator_offset === undefined ? pd.not_set() : pd.set(decimal_separator_offset),
62
+ 'type': (0, unresolved_1.wrap_state_group)(['integer', null]),
63
+ }])
64
+ };
65
+ };
66
+ n.approximation = (significant_digits) => {
67
+ return {
68
+ 'precision': (0, unresolved_1.wrap_state_group)(['approximation', {
69
+ 'significant digits': significant_digits,
70
+ }])
71
+ };
72
+ };
73
+ n.natural = (decimal_separator_offset) => {
74
+ return {
75
+ 'precision': (0, unresolved_1.wrap_state_group)(['exact', {
76
+ 'decimal separator offset': decimal_separator_offset === undefined ? pd.not_set() : pd.set(decimal_separator_offset),
77
+ 'type': (0, unresolved_1.wrap_state_group)(['natural', null]),
78
+ }])
79
+ };
80
+ };
81
+ n.positive_natural = (decimal_separator_offset) => {
82
+ return {
83
+ 'precision': (0, unresolved_1.wrap_state_group)(['exact', {
84
+ 'decimal separator offset': decimal_separator_offset === undefined ? pd.not_set() : pd.set(decimal_separator_offset),
85
+ 'type': (0, unresolved_1.wrap_state_group)(['positive natural', null]),
86
+ }])
87
+ };
88
+ };
89
+ })(n || (exports.n = n = {}));
90
+ const reference = (type) => {
91
+ return {
92
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(type)]),
93
+ 'resulting node': null,
94
+ };
95
+ };
96
+ exports.reference = reference;
97
+ const part_reference = (type, tail) => {
98
+ return {
99
+ 'type location': {
100
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(type)]),
101
+ 'resulting node': null,
102
+ },
103
+ 'tail': (0, unresolved_1.wrap_list)(tail),
104
+ 'resulting node': null,
105
+ };
106
+ };
107
+ exports.part_reference = part_reference;
108
+ var t;
109
+ (function (t) {
110
+ t.boolean = () => {
111
+ return (0, unresolved_1.wrap_state_group)(['boolean', null]);
112
+ };
113
+ t.component = (type) => {
114
+ return (0, unresolved_1.wrap_state_group)(['component', (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(type)])]);
115
+ };
116
+ t.component_cyclic = (type) => {
117
+ return (0, unresolved_1.wrap_state_group)(['component', (0, unresolved_1.wrap_state_group)(['internal cyclic', (0, unresolved_1.wrap_reference)(type)])]);
118
+ };
119
+ t.component_external = (imp, type) => {
120
+ return (0, unresolved_1.wrap_state_group)(['component', (0, unresolved_1.wrap_state_group)(['external', {
121
+ 'import': (0, unresolved_1.wrap_reference)(imp),
122
+ 'type': (0, unresolved_1.wrap_reference)(type),
123
+ }])]);
124
+ };
125
+ t.dictionary = (type, ordered) => {
126
+ return (0, unresolved_1.wrap_state_group)(['dictionary', {
127
+ 'node': type,
128
+ 'ordered': ordered === 'ordered',
129
+ 'benchmark': pd.not_set(),
130
+ }]);
131
+ };
132
+ t.group = (properties) => {
133
+ return (0, unresolved_1.wrap_state_group)(['group', (0, unresolved_1.wrap_dictionary)(properties)]);
134
+ };
135
+ t.identifier_value_pair = (type) => {
136
+ return (0, unresolved_1.wrap_state_group)(['identifier value pair', type]);
137
+ };
138
+ t.list = (type) => {
139
+ return (0, unresolved_1.wrap_state_group)(['list', {
140
+ 'node': type,
141
+ 'result': pd.not_set(),
142
+ }]);
143
+ };
144
+ t.nothing = () => {
145
+ return (0, unresolved_1.wrap_state_group)(['nothing', null]);
146
+ };
147
+ t.number_global = (name) => {
148
+ return (0, unresolved_1.wrap_state_group)(['number', (0, unresolved_1.wrap_state_group)(['global', (0, unresolved_1.wrap_reference)(name)])]);
149
+ };
150
+ t.number_local = (bt) => {
151
+ return (0, unresolved_1.wrap_state_group)(['number', (0, unresolved_1.wrap_state_group)(['local', bt])]);
152
+ };
153
+ t.optional = (type) => {
154
+ return (0, unresolved_1.wrap_state_group)(['optional', type]);
155
+ };
156
+ t.reference_derived = (type, tail) => {
157
+ const x = {
158
+ 'type location': {
159
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(type)]),
160
+ 'resulting node': null,
161
+ },
162
+ 'tail': (0, unresolved_1.wrap_list)(tail),
163
+ 'resulting node': null
164
+ };
165
+ return (0, unresolved_1.wrap_state_group)(['reference', {
166
+ 'referent': x,
167
+ 'type': (0, unresolved_1.wrap_state_group)(['derived', null]),
168
+ }]);
169
+ };
170
+ t.reference_derived_external = (imp, type, tail) => {
171
+ const x = {
172
+ 'type location': {
173
+ 'location': (0, unresolved_1.wrap_state_group)(['external', {
174
+ 'import': (0, unresolved_1.wrap_reference)(imp),
175
+ 'type': (0, unresolved_1.wrap_reference)(type),
176
+ }]),
177
+ 'resulting node': null
178
+ },
179
+ 'tail': (0, unresolved_1.wrap_list)(tail),
180
+ 'resulting node': null
181
+ };
182
+ return (0, unresolved_1.wrap_state_group)(['reference', {
183
+ 'referent': x,
184
+ 'type': (0, unresolved_1.wrap_state_group)(['derived', null]),
185
+ }]);
186
+ };
187
+ t.reference = (type, tail, dependency) => {
188
+ const p_type = (0, unresolved_1.wrap_state_group)(['selected', {
189
+ 'referent': {
190
+ 'type location': {
191
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(type)]),
192
+ 'resulting node': null
193
+ },
194
+ 'tail': (0, unresolved_1.wrap_list)(tail),
195
+ 'resulting node': null
196
+ },
197
+ 'dictionary': null,
198
+ 'dependency': dependency === "cyclic" ? (0, unresolved_1.wrap_state_group)(['cyclic', null]) : (0, unresolved_1.wrap_state_group)(['acyclic', null])
199
+ }]);
200
+ return (0, unresolved_1.wrap_state_group)(['reference', {
201
+ 'referent': {
202
+ 'type location': {
203
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(type)]),
204
+ 'resulting node': null
205
+ },
206
+ 'tail': (0, unresolved_1.wrap_list)(tail),
207
+ 'resulting node': null
208
+ },
209
+ 'type': p_type,
210
+ }]);
211
+ };
212
+ t.reference_stack = (type, tail) => {
213
+ const p_type = (0, unresolved_1.wrap_state_group)(['selected', {
214
+ 'dictionary': null,
215
+ 'dependency': (0, unresolved_1.wrap_state_group)(['stack', null])
216
+ }]);
217
+ return (0, unresolved_1.wrap_state_group)(['reference', {
218
+ 'referent': {
219
+ 'type location': {
220
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(type)]),
221
+ 'resulting node': null
222
+ },
223
+ 'tail': (0, unresolved_1.wrap_list)(tail),
224
+ 'resulting node': null
225
+ },
226
+ 'type': p_type,
227
+ }]);
228
+ };
229
+ t.reference_external = (imp, type, tail, dependency) => {
230
+ const p_type = (0, unresolved_1.wrap_state_group)(['selected', {
231
+ 'dictionary': null,
232
+ 'dependency': dependency === "cyclic" ? (0, unresolved_1.wrap_state_group)(['cyclic', null]) : (0, unresolved_1.wrap_state_group)(['acyclic', null])
233
+ }]);
234
+ return (0, unresolved_1.wrap_state_group)(['reference', {
235
+ 'referent': {
236
+ 'type location': {
237
+ 'location': (0, unresolved_1.wrap_state_group)(['external', {
238
+ 'import': (0, unresolved_1.wrap_reference)(imp),
239
+ 'type': (0, unresolved_1.wrap_reference)(type),
240
+ }]),
241
+ 'resulting node': null
242
+ },
243
+ 'tail': (0, unresolved_1.wrap_list)(tail),
244
+ 'resulting node': null
245
+ },
246
+ 'type': p_type,
247
+ }]);
248
+ };
249
+ t.state_group = (states) => {
250
+ return (0, unresolved_1.wrap_state_group)(['state group', (0, unresolved_1.wrap_dictionary)(states)]);
251
+ };
252
+ t.text_global = (name) => {
253
+ return (0, unresolved_1.wrap_state_group)(['text', (0, unresolved_1.wrap_state_group)(['global', (0, unresolved_1.wrap_reference)(name)])]);
254
+ };
255
+ t.text_local = (bt) => {
256
+ return (0, unresolved_1.wrap_state_group)(['text', (0, unresolved_1.wrap_state_group)(['local', bt])]);
257
+ };
258
+ t.type_parameter = (name) => {
259
+ return (0, unresolved_1.wrap_state_group)(['type parameter', (0, unresolved_1.wrap_reference)(name)]);
260
+ };
261
+ })(t || (exports.t = t = {}));
262
+ var tr;
263
+ (function (tr) {
264
+ tr.d = () => {
265
+ return (0, unresolved_1.wrap_state_group)(['dictionary', null]);
266
+ };
267
+ tr.g = (grp) => {
268
+ return (0, unresolved_1.wrap_state_group)(['group', (0, unresolved_1.wrap_reference)(grp)]);
269
+ };
270
+ tr.s = (state) => {
271
+ return (0, unresolved_1.wrap_state_group)(['state group', (0, unresolved_1.wrap_reference)(state)]);
272
+ };
273
+ tr.o = () => {
274
+ return (0, unresolved_1.wrap_state_group)(['optional', null]);
275
+ };
276
+ })(tr || (exports.tr = tr = {}));
277
+ const sig_params = (values, lookups) => {
278
+ return {
279
+ 'values': (0, unresolved_1.wrap_dictionary)(values),
280
+ 'lookups': (0, unresolved_1.wrap_dictionary)(lookups),
281
+ };
282
+ };
283
+ exports.sig_params = sig_params;
284
+ var sig;
285
+ (function (sig) {
286
+ sig.local = (values, lookups) => {
287
+ return {
288
+ 'type': null,
289
+ 'parameters': (0, unresolved_1.wrap_state_group)(['local', {
290
+ 'values': (0, unresolved_1.wrap_dictionary)(values),
291
+ 'lookups': (0, unresolved_1.wrap_dictionary)(lookups),
292
+ }]),
293
+ 'resolved parameters': null,
294
+ };
295
+ };
296
+ sig.same_as = (name) => {
297
+ return {
298
+ 'type': null,
299
+ 'parameters': (0, unresolved_1.wrap_state_group)(['same as', (0, unresolved_1.wrap_reference)(name)]),
300
+ 'resolved parameters': null,
301
+ };
302
+ };
303
+ })(sig || (exports.sig = sig = {}));
304
+ const value_parameter = (name, presence) => {
305
+ return {
306
+ 'data type': {
307
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(name)]),
308
+ 'resulting node': null,
309
+ },
310
+ 'presence': presence === 'optional'
311
+ ? (0, unresolved_1.wrap_state_group)(['optional', null])
312
+ : (0, unresolved_1.wrap_state_group)(['required', null]),
313
+ };
314
+ };
315
+ exports.value_parameter = value_parameter;
316
+ const value_parameter_external = (imp, type, presence) => {
317
+ return {
318
+ 'data type': {
319
+ 'location': (0, unresolved_1.wrap_state_group)(['external', {
320
+ 'import': (0, unresolved_1.wrap_reference)(imp),
321
+ 'type': (0, unresolved_1.wrap_reference)(type),
322
+ }]),
323
+ 'resulting node': null,
324
+ },
325
+ 'presence': presence === 'optional'
326
+ ? (0, unresolved_1.wrap_state_group)(['optional', null])
327
+ : (0, unresolved_1.wrap_state_group)(['required', null]),
328
+ };
329
+ };
330
+ exports.value_parameter_external = value_parameter_external;
331
+ const lookup_parameter = (name, type, presence) => {
332
+ return {
333
+ 'referent': {
334
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(name)]),
335
+ 'resulting node': null,
336
+ },
337
+ 'dictionary': null,
338
+ 'type': type === 'cyclic'
339
+ ? (0, unresolved_1.wrap_state_group)(['cyclic', null])
340
+ : type === 'stack'
341
+ ? (0, unresolved_1.wrap_state_group)(['stack', null])
342
+ : (0, unresolved_1.wrap_state_group)(['acyclic', null]),
343
+ 'presence': presence === 'optional'
344
+ ? (0, unresolved_1.wrap_state_group)(['optional', null])
345
+ : (0, unresolved_1.wrap_state_group)(['required', null]),
346
+ };
347
+ };
348
+ exports.lookup_parameter = lookup_parameter;
349
+ var rls;
350
+ (function (rls) {
351
+ rls.dictionary = (value_selection) => {
352
+ return {
353
+ 'type': (0, unresolved_1.wrap_state_group)(['dictionary', {
354
+ 'selection': value_selection,
355
+ 'selected dictionary': null,
356
+ }]),
357
+ 'resulting dictionary': null,
358
+ };
359
+ };
360
+ rls.parameter = (parameter) => {
361
+ return {
362
+ 'type': (0, unresolved_1.wrap_state_group)(['parameter', (0, unresolved_1.wrap_reference)(parameter)]),
363
+ 'resulting dictionary': null
364
+ };
365
+ };
366
+ rls.not_circular_dependent_siblings = () => {
367
+ return {
368
+ 'type': (0, unresolved_1.wrap_state_group)(['not circular dependent siblings', null]),
369
+ 'resulting dictionary': null
370
+ };
371
+ };
372
+ rls.possibly_circular_dependent_siblings = () => {
373
+ return {
374
+ 'type': (0, unresolved_1.wrap_state_group)(['possibly circular dependent siblings', null]),
375
+ 'resulting dictionary': null
376
+ };
377
+ };
378
+ })(rls || (exports.rls = rls = {}));
379
+ var al;
380
+ (function (al) {
381
+ al.not_set = () => {
382
+ return (0, unresolved_1.wrap_state_group)(['not set', null]);
383
+ };
384
+ al.empty_stack = () => {
385
+ return (0, unresolved_1.wrap_state_group)(['empty stack', null]);
386
+ };
387
+ al.stack = (stack, element) => {
388
+ return (0, unresolved_1.wrap_state_group)(['stack', {
389
+ 'stack': stack,
390
+ 'element': element,
391
+ }]);
392
+ };
393
+ al.dictionary = (value_selection) => {
394
+ return (0, unresolved_1.wrap_state_group)(['selection', {
395
+ 'type': (0, unresolved_1.wrap_state_group)(['dictionary', {
396
+ 'selection': value_selection,
397
+ 'selected dictionary': null,
398
+ }]),
399
+ 'resulting dictionary': null,
400
+ }]);
401
+ };
402
+ al.parameter = (parameter) => {
403
+ return (0, unresolved_1.wrap_state_group)(['selection', {
404
+ 'type': (0, unresolved_1.wrap_state_group)(['parameter', (0, unresolved_1.wrap_reference)(parameter)]),
405
+ 'resulting dictionary': null,
406
+ }]);
407
+ };
408
+ al.not_circular_dependent_siblings = () => {
409
+ return (0, unresolved_1.wrap_state_group)(['selection', {
410
+ 'type': (0, unresolved_1.wrap_state_group)(['not circular dependent siblings', null]),
411
+ 'resulting dictionary': null,
412
+ }]);
413
+ };
414
+ al.possibly_circular_dependent_siblings = () => {
415
+ return (0, unresolved_1.wrap_state_group)(['selection', {
416
+ 'type': (0, unresolved_1.wrap_state_group)(['possibly circular dependent siblings', null]),
417
+ 'resulting dictionary': null,
418
+ }]);
419
+ };
420
+ })(al || (exports.al = al = {}));
421
+ var vst;
422
+ (function (vst) {
423
+ vst.component = () => {
424
+ return (0, unresolved_1.wrap_state_group)(['component', null]);
425
+ };
426
+ vst.group = (property) => {
427
+ return (0, unresolved_1.wrap_state_group)(['group', (0, unresolved_1.wrap_reference)(property)]);
428
+ };
429
+ vst.reference = () => {
430
+ return (0, unresolved_1.wrap_state_group)(['reference', {
431
+ 'definition': null,
432
+ }]);
433
+ };
434
+ // export const state_group = (
435
+ // type: unresolved.Type_Node_Reference<pd.Source_Location>,
436
+ // states: Raw_Or_Normal_Dictionary<unresolved.Relative_Value_Selection.path.L.SG.state_group.states.D<pd.Source_Location>>,
437
+ // ): unresolved.Relative_Value_Selection.path.L<pd.Source_Location> => {
438
+ // return wrap_state_group(['state group', {
439
+ // 'definition': null,
440
+ // 'type': type,
441
+ // 'states': wrap_dictionary(states),
442
+ // }])
443
+ // }
444
+ })(vst || (exports.vst = vst = {}));
445
+ var ovi;
446
+ (function (ovi) {
447
+ ovi.not_set = () => {
448
+ return (0, unresolved_1.wrap_state_group)(['not set', null]);
449
+ };
450
+ ovi.set = (value) => {
451
+ return (0, unresolved_1.wrap_state_group)(['set', value]);
452
+ };
453
+ ovi.selection = (selection) => {
454
+ return (0, unresolved_1.wrap_state_group)(['selection', selection]);
455
+ };
456
+ })(ovi || (exports.ovi = ovi = {}));
457
+ var pvs;
458
+ (function (pvs) {
459
+ pvs.state_group = (state_group, result) => {
460
+ return (0, unresolved_1.wrap_state_group)(['result', (0, unresolved_1.wrap_state_group)(['state group', {
461
+ 'property': (0, unresolved_1.wrap_reference)(state_group),
462
+ 'state group': null,
463
+ 'result': result,
464
+ }])]);
465
+ };
466
+ pvs.optional_value = (optional_value, result) => {
467
+ return (0, unresolved_1.wrap_state_group)(['result', (0, unresolved_1.wrap_state_group)(['optional value', {
468
+ 'property': (0, unresolved_1.wrap_reference)(optional_value),
469
+ 'optional value': null,
470
+ 'result': result,
471
+ }])]);
472
+ };
473
+ pvs.parameter = (parameter) => {
474
+ return (0, unresolved_1.wrap_state_group)(['parameter', (0, unresolved_1.wrap_reference)(parameter)]);
475
+ };
476
+ })(pvs || (exports.pvs = pvs = {}));
477
+ var gvs;
478
+ (function (gvs) {
479
+ let constraint;
480
+ (function (constraint_1) {
481
+ constraint_1.component = (component, constraint, tail) => {
482
+ return {
483
+ 'start': (0, unresolved_1.wrap_state_group)(['constraint', (0, unresolved_1.wrap_state_group)(['component', {
484
+ 'property': (0, unresolved_1.wrap_reference)(component),
485
+ 'constraint': (0, unresolved_1.wrap_reference)(constraint),
486
+ }])]),
487
+ 'tail': {
488
+ 'path': (0, unresolved_1.wrap_list)(tail),
489
+ 'resulting node': null,
490
+ },
491
+ 'resulting node': null,
492
+ };
493
+ };
494
+ constraint_1.reference = (reference, constraint, tail) => {
495
+ return {
496
+ 'start': (0, unresolved_1.wrap_state_group)(['constraint', (0, unresolved_1.wrap_state_group)(['reference', {
497
+ 'property': (0, unresolved_1.wrap_reference)(reference),
498
+ 'constraint': (0, unresolved_1.wrap_reference)(constraint),
499
+ }])]),
500
+ 'tail': {
501
+ 'path': (0, unresolved_1.wrap_list)(tail),
502
+ 'resulting node': null,
503
+ },
504
+ 'resulting node': null,
505
+ };
506
+ };
507
+ })(constraint = gvs.constraint || (gvs.constraint = {}));
508
+ gvs.list = (list, tail) => {
509
+ return {
510
+ 'start': (0, unresolved_1.wrap_state_group)(['result', (0, unresolved_1.wrap_state_group)(['list', {
511
+ 'property': (0, unresolved_1.wrap_reference)(list),
512
+ 'list result': null,
513
+ }])]),
514
+ 'tail': {
515
+ 'path': (0, unresolved_1.wrap_list)(tail),
516
+ 'resulting node': null,
517
+ },
518
+ 'resulting node': null,
519
+ };
520
+ };
521
+ gvs.state_group = (state_group, result, tail) => {
522
+ return {
523
+ 'start': (0, unresolved_1.wrap_state_group)(['result', (0, unresolved_1.wrap_state_group)(['state group', {
524
+ 'property': (0, unresolved_1.wrap_reference)(state_group),
525
+ 'state group': null,
526
+ 'result': result,
527
+ }])]),
528
+ 'tail': {
529
+ 'path': (0, unresolved_1.wrap_list)(tail),
530
+ 'resulting node': null,
531
+ },
532
+ 'resulting node': null,
533
+ };
534
+ };
535
+ gvs.optional_value = (optional_value, result, tail) => {
536
+ return {
537
+ 'start': (0, unresolved_1.wrap_state_group)(['result', (0, unresolved_1.wrap_state_group)(['optional value', {
538
+ 'property': (0, unresolved_1.wrap_reference)(optional_value),
539
+ 'optional value': null,
540
+ 'result': result,
541
+ }])]),
542
+ 'tail': {
543
+ 'path': (0, unresolved_1.wrap_list)(tail),
544
+ 'resulting node': null,
545
+ },
546
+ 'resulting node': null,
547
+ };
548
+ };
549
+ gvs.parameter = (parameter, tail) => {
550
+ return {
551
+ 'start': (0, unresolved_1.wrap_state_group)(['parameter', (0, unresolved_1.wrap_reference)(parameter)]),
552
+ 'tail': {
553
+ 'path': (0, unresolved_1.wrap_list)(tail),
554
+ 'resulting node': null,
555
+ },
556
+ 'resulting node': null,
557
+ };
558
+ };
559
+ gvs.list_cursor = (tail) => {
560
+ return {
561
+ 'start': (0, unresolved_1.wrap_state_group)(['list cursor', null]),
562
+ 'tail': {
563
+ 'path': (0, unresolved_1.wrap_list)(tail),
564
+ 'resulting node': null,
565
+ },
566
+ 'resulting node': null,
567
+ };
568
+ };
569
+ gvs.linked_entry = (tail) => {
570
+ return {
571
+ 'start': (0, unresolved_1.wrap_state_group)(['linked entry', null]),
572
+ 'tail': {
573
+ 'path': (0, unresolved_1.wrap_list)(tail),
574
+ 'resulting node': null,
575
+ },
576
+ 'resulting node': null,
577
+ };
578
+ };
579
+ gvs.sibling = (sibling, tail) => {
580
+ return {
581
+ 'start': (0, unresolved_1.wrap_state_group)(['sibling', (0, unresolved_1.wrap_reference)(sibling)]),
582
+ 'tail': {
583
+ 'path': (0, unresolved_1.wrap_list)(tail),
584
+ 'resulting node': null,
585
+ },
586
+ 'resulting node': null,
587
+ };
588
+ };
589
+ gvs.parent_sibling = (parent_sibling, tail) => {
590
+ return {
591
+ 'start': (0, unresolved_1.wrap_state_group)(['parent sibling', (0, unresolved_1.wrap_reference)(parent_sibling)]),
592
+ 'tail': {
593
+ 'path': (0, unresolved_1.wrap_list)(tail),
594
+ 'resulting node': null,
595
+ },
596
+ 'resulting node': null,
597
+ };
598
+ };
599
+ gvs.option_constraint = (constraint, tail) => {
600
+ return {
601
+ 'start': (0, unresolved_1.wrap_state_group)(['option constraint', (0, unresolved_1.wrap_reference)(constraint)]),
602
+ 'tail': {
603
+ 'path': (0, unresolved_1.wrap_list)(tail),
604
+ 'resulting node': null,
605
+ },
606
+ 'resulting node': null,
607
+ };
608
+ };
609
+ })(gvs || (exports.gvs = gvs = {}));
610
+ var av;
611
+ (function (av) {
612
+ av.parameter = (parameter) => {
613
+ return (0, unresolved_1.wrap_state_group)(['parameter', (0, unresolved_1.wrap_reference)(parameter)]);
614
+ };
615
+ av.required = (value) => {
616
+ return (0, unresolved_1.wrap_state_group)(['required', value]);
617
+ };
618
+ av.optional = (value) => {
619
+ return (0, unresolved_1.wrap_state_group)(['optional', value]);
620
+ };
621
+ })(av || (exports.av = av = {}));
622
+ const state = (resolver) => {
623
+ return {
624
+ 'constraints': (0, unresolved_1.wrap_dictionary)({}),
625
+ 'resolver': resolver,
626
+ };
627
+ };
628
+ exports.state = state;
629
+ const state_constrained = (constraints, resolver) => {
630
+ return {
631
+ 'constraints': (0, unresolved_1.wrap_dictionary)(constraints),
632
+ 'resolver': resolver,
633
+ };
634
+ };
635
+ exports.state_constrained = state_constrained;
636
+ var oc;
637
+ (function (oc) {
638
+ oc.state = (value_selection, state) => {
639
+ return (0, unresolved_1.wrap_state_group)(['state', {
640
+ 'selection': value_selection,
641
+ 'selected state group': null,
642
+ 'state': (0, unresolved_1.wrap_reference)(state),
643
+ }]);
644
+ };
645
+ oc.assert_set = (possibly_optional) => {
646
+ return (0, unresolved_1.wrap_state_group)(['assert is set', possibly_optional]);
647
+ };
648
+ })(oc || (exports.oc = oc = {}));
649
+ var pc;
650
+ (function (pc) {
651
+ pc.property = (value_selection_tail, state) => {
652
+ return {
653
+ 'start': (0, unresolved_1.wrap_state_group)(['property', null]),
654
+ 'constraint': {
655
+ 'selection': {
656
+ 'path': (0, unresolved_1.wrap_list)(value_selection_tail),
657
+ 'resulting node': null,
658
+ },
659
+ 'type': (0, unresolved_1.wrap_state_group)(['state', {
660
+ 'selected state group': null,
661
+ 'state': (0, unresolved_1.wrap_reference)(state),
662
+ }])
663
+ },
664
+ };
665
+ };
666
+ pc.constraint = (constraint, value_selection_tail, state) => {
667
+ return {
668
+ 'start': (0, unresolved_1.wrap_state_group)(['sibling', (0, unresolved_1.wrap_reference)(constraint)]),
669
+ 'constraint': {
670
+ 'selection': {
671
+ 'path': (0, unresolved_1.wrap_list)(value_selection_tail),
672
+ 'resulting node': null,
673
+ },
674
+ 'type': state === undefined
675
+ ? (0, unresolved_1.wrap_state_group)(['optional value', {
676
+ 'selected optional value': null,
677
+ }])
678
+ : (0, unresolved_1.wrap_state_group)(['state', {
679
+ 'selected state group': null,
680
+ 'state': (0, unresolved_1.wrap_reference)(state),
681
+ }])
682
+ },
683
+ };
684
+ };
685
+ })(pc || (exports.pc = pc = {}));
686
+ var r;
687
+ (function (r) {
688
+ r.text = () => {
689
+ return (0, unresolved_1.wrap_state_group)(['text', null]);
690
+ };
691
+ r.boolean = () => {
692
+ return (0, unresolved_1.wrap_state_group)(['boolean', null]);
693
+ };
694
+ r.number = () => {
695
+ return (0, unresolved_1.wrap_state_group)(['number', null]);
696
+ };
697
+ r.component = (type, values, lookups, constraints) => {
698
+ return (0, unresolved_1.wrap_state_group)(['component', {
699
+ 'location': (0, unresolved_1.wrap_state_group)(['internal', (0, unresolved_1.wrap_reference)(type)]),
700
+ 'signature': null,
701
+ 'arguments': pd.set({
702
+ 'values': values === null ? pd.not_set() : pd.set((0, unresolved_1.wrap_dictionary)(values)),
703
+ 'lookups': lookups === null ? pd.not_set() : pd.set((0, unresolved_1.wrap_dictionary)(lookups)),
704
+ }),
705
+ 'constraints': (0, unresolved_1.wrap_dictionary)(constraints === undefined ? {} : constraints),
706
+ }]);
707
+ };
708
+ r.component_external = (imp, type, values, lookups, constraints) => {
709
+ return (0, unresolved_1.wrap_state_group)(['component', {
710
+ 'location': (0, unresolved_1.wrap_state_group)(['external', {
711
+ 'import': (0, unresolved_1.wrap_reference)(imp),
712
+ 'type': (0, unresolved_1.wrap_reference)(type),
713
+ }]),
714
+ 'signature': null,
715
+ 'arguments': pd.set({
716
+ 'values': values === null ? pd.not_set() : pd.set((0, unresolved_1.wrap_dictionary)(values)),
717
+ 'lookups': lookups === null ? pd.not_set() : pd.set((0, unresolved_1.wrap_dictionary)(lookups)),
718
+ }),
719
+ 'constraints': (0, unresolved_1.wrap_dictionary)(constraints === undefined ? {} : constraints),
720
+ }]);
721
+ };
722
+ r.dictionary = (resolver) => {
723
+ return (0, unresolved_1.wrap_state_group)(['dictionary', {
724
+ 'definition': null,
725
+ 'resolver': resolver,
726
+ 'benchmark': pd.not_set(),
727
+ }]);
728
+ };
729
+ r.dictionary_linked = (dense, selection, resolver) => {
730
+ return (0, unresolved_1.wrap_state_group)(['dictionary', {
731
+ 'definition': null,
732
+ 'resolver': resolver,
733
+ 'benchmark': pd.set({
734
+ 'selection': selection,
735
+ 'resulting dictionary': null,
736
+ 'dense': dense === 'dense',
737
+ }),
738
+ }]);
739
+ };
740
+ r.group = (properties //FIXME: remove the 'this entry' step
741
+ ) => {
742
+ const location = pd.get_location_info(1);
743
+ return (0, unresolved_1.wrap_state_group)(['group', {
744
+ 'location': location,
745
+ 'dictionary': (0, unresolved_1.wrap_dictionary)(properties).dictionary.map(($) => {
746
+ return {
747
+ 'location': location,
748
+ 'entry': {
749
+ 'definition': null,
750
+ 'resolver': $.entry
751
+ },
752
+ };
753
+ })
754
+ }]);
755
+ };
756
+ r.list = (type_resolver) => {
757
+ return (0, unresolved_1.wrap_state_group)(['list', {
758
+ 'definition': null,
759
+ 'resolver': type_resolver,
760
+ 'result': pd.not_set(),
761
+ }]);
762
+ };
763
+ r.list_with_result = (type_resolver, result) => {
764
+ return (0, unresolved_1.wrap_state_group)(['list', {
765
+ 'definition': null,
766
+ 'resolver': type_resolver,
767
+ 'result': pd.set(result),
768
+ }]);
769
+ };
770
+ r.nothing = () => {
771
+ return (0, unresolved_1.wrap_state_group)(['nothing', null]);
772
+ };
773
+ r.optional = (type_resolver) => {
774
+ return (0, unresolved_1.wrap_state_group)(['optional', {
775
+ 'constraints': (0, unresolved_1.wrap_dictionary)({}),
776
+ 'resolver': type_resolver,
777
+ }]);
778
+ };
779
+ r.optional_constrained = (constraints, type_resolver) => {
780
+ return (0, unresolved_1.wrap_state_group)(['optional', {
781
+ 'constraints': (0, unresolved_1.wrap_dictionary)(constraints),
782
+ 'resolver': type_resolver,
783
+ }]);
784
+ };
785
+ r.reference_derived = (value_selection) => {
786
+ return (0, unresolved_1.wrap_state_group)(['reference', {
787
+ 'definition': null,
788
+ 'type': (0, unresolved_1.wrap_state_group)(['derived', {
789
+ 'value': value_selection,
790
+ }])
791
+ }]);
792
+ };
793
+ r.reference = (lookup_selection, constraints) => {
794
+ return (0, unresolved_1.wrap_state_group)(['reference', {
795
+ 'definition': null,
796
+ 'type': (0, unresolved_1.wrap_state_group)(['selected', {
797
+ 'definition': null,
798
+ 'lookup': lookup_selection,
799
+ 'constraints': (0, unresolved_1.wrap_dictionary)(constraints === undefined ? {} : constraints),
800
+ }])
801
+ }]);
802
+ };
803
+ r.reference_stack = (lookup_selection, constraints) => {
804
+ return (0, unresolved_1.wrap_state_group)(['reference', {
805
+ 'definition': null,
806
+ 'type': (0, unresolved_1.wrap_state_group)(['selected', {
807
+ 'definition': null,
808
+ 'lookup': lookup_selection,
809
+ 'constraints': (0, unresolved_1.wrap_dictionary)(constraints === undefined ? {} : constraints),
810
+ }])
811
+ }]);
812
+ };
813
+ r.state_group = (states) => {
814
+ return (0, unresolved_1.wrap_state_group)(['state group', {
815
+ 'definition': null,
816
+ 'states': (0, unresolved_1.wrap_dictionary)(states),
817
+ }]);
818
+ };
819
+ })(r || (exports.r = r = {}));
820
+ const resolver = (type_resolver) => {
821
+ return {
822
+ 'signature': null,
823
+ 'type resolver': type_resolver,
824
+ };
825
+ };
826
+ exports.resolver = resolver;
827
+ const signatures = (signatures) => {
828
+ return {
829
+ 'types': (0, unresolved_1.wrap_dictionary)(signatures)
830
+ };
831
+ };
832
+ exports.signatures = signatures;
833
+ const resolvers = (resolvers) => {
834
+ return (0, unresolved_1.wrap_dictionary)(resolvers);
835
+ };
836
+ exports.resolvers = resolvers;
837
+ const schemas = (schemas) => {
838
+ return (0, unresolved_1.wrap_dictionary)(schemas);
839
+ };
840
+ exports.schemas = schemas;
841
+ const import_ = (up, name) => {
842
+ return {
843
+ 'schema set child': (0, unresolved_1.wrap_stack_reference)(up, name),
844
+ 'schema': null,
845
+ };
846
+ };
847
+ exports.import_ = import_;
848
+ const constrained = (signatures, resolvers) => {
849
+ return {
850
+ 'signatures': signatures,
851
+ 'resolvers': resolvers,
852
+ };
853
+ };
854
+ exports.constrained = constrained;
855
+ const unconstrained = () => {
856
+ return null;
857
+ };
858
+ exports.unconstrained = unconstrained;
859
+ const schema_ = (imports, globals, types, resolve) => {
860
+ return (0, unresolved_1.wrap_state_group)(['schema', {
861
+ 'imports': (0, unresolved_1.wrap_dictionary)(imports),
862
+ 'globals': globals,
863
+ 'types': types,
864
+ 'complexity': resolve === null
865
+ ? (0, unresolved_1.wrap_state_group)(['unconstrained', null])
866
+ : (0, unresolved_1.wrap_state_group)(['constrained', resolve])
867
+ }]);
868
+ };
869
+ exports.schema_ = schema_;
870
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nob3J0aGFuZHMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBSXZDLDZFQU9xRDtBQUU5QyxNQUFNLEtBQUssR0FBRyxDQUNqQixLQUF1RSxFQUNuQyxFQUFFO0lBQ3RDLE9BQU8sSUFBQSw0QkFBZSxFQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ2pDLENBQUMsQ0FBQTtBQUpZLFFBQUEsS0FBSyxTQUlqQjtBQUVNLE1BQU0sT0FBTyxHQUFHLENBQ25CLFVBQTJDLEVBQzNDLFVBQXlGLEVBQ3pGLFlBQTZGLEVBQ3ZELEVBQUU7SUFDeEMsT0FBTztRQUNILFlBQVksRUFBRSxVQUFVLEtBQUssZUFBZTtZQUN4QyxDQUFDLENBQUMsSUFBQSw2QkFBZ0IsRUFBQyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsSUFBQSw2QkFBZ0IsRUFBQyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3QyxZQUFZLEVBQUUsSUFBQSw0QkFBZSxFQUFDLFVBQVUsQ0FBQztRQUN6QyxjQUFjLEVBQUUsSUFBQSw0QkFBZSxFQUFDLFlBQVksQ0FBQztLQUNoRCxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBWlksUUFBQSxPQUFPLFdBWW5CO0FBRU0sTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUE4QyxFQUEwQyxFQUFFO0lBQzNHLE9BQU87UUFDSCxpQkFBaUIsRUFBRSxJQUFBLDRCQUFlLEVBQUMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxJQUFJO0tBQ2YsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQUxZLFFBQUEsSUFBSSxRQUtoQjtBQUVNLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBa0MsRUFBNEMsRUFBRTtJQUNqRyxPQUFPO1FBQ0gsTUFBTSxFQUFFLElBQUksS0FBSyxhQUFh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