pareto 0.76.61 → 0.76.63

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 (68) hide show
  1. package/dist/bin/compile.d.ts +1 -1
  2. package/dist/bin/compile.js +1 -1
  3. package/dist/bin/seal.d.ts +1 -1
  4. package/dist/bin/seal.js +1 -1
  5. package/dist/bin/serialize_schemas.d.ts +1 -1
  6. package/dist/bin/serialize_schemas.js +1 -1
  7. package/dist/bin/validate.d.ts +1 -1
  8. package/dist/bin/validate.js +1 -1
  9. package/dist/generated/implementation/schemas/schema/marshall.js +10 -4
  10. package/dist/generated/implementation/schemas/schema/resolve.js +27 -26
  11. package/dist/generated/implementation/schemas/schema/unmarshall.js +14 -3
  12. package/dist/generated/interface/core/resolved.d.ts +24 -7
  13. package/dist/generated/interface/schemas/schema/data_types/source.d.ts +26 -3
  14. package/dist/generated/interface/schemas/schema/data_types/target.d.ts +26 -3
  15. package/dist/resolvers/schema.d.ts +1 -1
  16. package/dist/resolvers/schema.js +19 -16
  17. package/dist/shorthands/schema.d.ts +108 -106
  18. package/dist/shorthands/schema.js +33 -19
  19. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/alan_light_oldstyle/$.types.astn.js +30 -30
  20. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/builder_configuration/$.types.astn.js +17 -17
  21. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/csv/$.types.astn.js +11 -11
  22. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/html/$.types.astn.js +92 -92
  23. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/json_schema/$.types.astn.js +22 -22
  24. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/legacy_schema/$.types.astn.js +24 -24
  25. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/railroad_diagram/$.types.astn.js +9 -9
  26. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/regular_expression/$.types.astn.js +13 -13
  27. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/semantic_versioning/$.types.astn.js +6 -6
  28. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/xml/parse_result/$.types.astn.js +24 -24
  29. package/dist/temp/temporary_schemas/accounting_ruwe_data/schemas/xml/simple/$.types.astn.js +10 -10
  30. package/dist/temp/temporary_schemas/astn/schemas/authoring_ast/$.types.astn.js +45 -45
  31. package/dist/temp/temporary_schemas/astn/schemas/authoring_parse_result/$.types.astn.js +9 -9
  32. package/dist/temp/temporary_schemas/astn/schemas/authoring_target/$.types.astn.js +15 -12
  33. package/dist/temp/temporary_schemas/astn/schemas/ide/$.types.astn.js +8 -8
  34. package/dist/temp/temporary_schemas/astn/schemas/sealed_ast/$.types.astn.js +37 -37
  35. package/dist/temp/temporary_schemas/astn/schemas/sealed_parse_result/$.types.astn.js +9 -9
  36. package/dist/temp/temporary_schemas/astn/schemas/sealed_target/$.types.astn.js +6 -6
  37. package/dist/temp/temporary_schemas/astn/schemas/token/$.types.astn.js +26 -26
  38. package/dist/temp/temporary_schemas/exupery/schemas/implementation/$.types.astn.js +57 -57
  39. package/dist/temp/temporary_schemas/exupery/schemas/interface/$.types.astn.js +28 -28
  40. package/dist/temp/temporary_schemas/exupery/schemas/typescript_light/$.types.astn.js +47 -47
  41. package/dist/temp/temporary_schemas/pareto/schemas/astn_schema/$.types.astn.js +17 -17
  42. package/dist/temp/temporary_schemas/pareto/schemas/module/$.types.astn.js +7 -7
  43. package/dist/temp/temporary_schemas/pareto/schemas/schema/$.resolvers.astn.js +12 -9
  44. package/dist/temp/temporary_schemas/pareto/schemas/schema/$.types.astn.js +155 -149
  45. package/dist/temp/temporary_schemas/pareto/schemas/unmarshall_errors/$.types.astn.js +17 -17
  46. package/dist/temp/temporary_schemas/pareto/schemas/unmarshall_result/$.types.astn.js +1 -1
  47. package/dist/temp/temporary_schemas/pareto-boekhouding/schemas/boekhouding/$.types.astn.js +227 -227
  48. package/dist/temp/temporary_schemas/pareto-boekhouding/schemas/boekhouding_oude_model/$.types.astn.js +246 -245
  49. package/dist/temp/temporary_schemas/pareto-fountain-pen/schemas/block/$.types.astn.js +1 -1
  50. package/dist/temp/temporary_schemas/pareto-fountain-pen/schemas/lines/$.types.astn.js +1 -1
  51. package/dist/temp/temporary_schemas/pareto-fountain-pen/schemas/semi_lines/$.types.astn.js +3 -3
  52. package/dist/temp/temporary_schemas/pareto-fountain-pen/schemas/text/$.types.astn.js +1 -1
  53. package/dist/temp/temporary_schemas/pareto-json/schemas/json/$.types.astn.js +3 -3
  54. package/dist/temp/temporary_schemas/pareto-targets/schemas/alan_light/$.types.astn.js +38 -38
  55. package/dist/temp/temporary_schemas/pareto-targets/schemas/graphviz/high_level/$.types.astn.js +28 -28
  56. package/dist/temp/temporary_schemas/pareto-targets/schemas/graphviz/low_level/$.types.astn.js +27 -27
  57. package/dist/temp/temporary_schemas/pareto-targets/schemas/lionweb/$.types.astn.js +30 -30
  58. package/dist/temp/temporary_schemas/pareto-targets/schemas/pareto_documentation/$.types.astn.js +1 -1
  59. package/dist/temp/temporary_schemas/pareto-vscode-backend/schemas/client/$.types.astn.js +20 -20
  60. package/dist/temp/temporary_schemas/pareto-vscode-backend/schemas/server/$.types.astn.js +35 -35
  61. package/dist/transformations/module/exupery_interface.js +5 -2
  62. package/dist/transformations/schema/astn_schema.js +2 -2
  63. package/dist/transformations/schema/exupery_implementation/marshall.js +2 -2
  64. package/dist/transformations/schema/exupery_implementation/migrate_boilerplate.js +2 -2
  65. package/dist/transformations/schema/exupery_implementation/unmarshall.js +3 -3
  66. package/dist/transformations/schema/exupery_interface/types.js +2 -2
  67. package/dist/transformations/unmarshall_astn_ast.js +6 -6
  68. package/package.json +5 -5
@@ -4,10 +4,10 @@ exports.$ = void 0;
4
4
  const schema_1 = require("../../../../../shorthands/schema");
5
5
  exports.$ = (0, schema_1.types)({
6
6
  "Text Type": (0, schema_1.type)(schema_1.t.group({
7
- "type": schema_1.t.state_group({
7
+ "type": (0, schema_1.prop)(schema_1.t.state_group({
8
8
  "multi line": schema_1.t.nothing(),
9
9
  "single line": schema_1.t.nothing(),
10
- }),
10
+ })),
11
11
  })),
12
12
  "Number Type": (0, schema_1.type)(schema_1.t.group({
13
13
  /**
@@ -15,7 +15,7 @@ exports.$ = (0, schema_1.types)({
15
15
  * 'variable' is similar to floating point (in programming languages) or scientific notation
16
16
  * 'fixed' is similar to integers/positive integers
17
17
  */
18
- "precision": schema_1.t.state_group({
18
+ "precision": (0, schema_1.prop)(schema_1.t.state_group({
19
19
  /**
20
20
  * variable is similar to scientific notation or floating point (in programming languages)
21
21
  */
@@ -23,7 +23,7 @@ exports.$ = (0, schema_1.types)({
23
23
  /**
24
24
  * the total number of digits in the number
25
25
  */
26
- "significant digits": schema_1.t.number_local(schema_1.n.natural()),
26
+ "significant digits": (0, schema_1.prop)(schema_1.t.number_local(schema_1.n.natural())),
27
27
  }),
28
28
  /**
29
29
  * fixed is similar to integers/signed integers
@@ -35,27 +35,27 @@ exports.$ = (0, schema_1.types)({
35
35
  * but in this context, there can be decimals. However, because the number of decimals (the 'scale') is fixed,
36
36
  * it is trivial to convert these to a whole number; just multiply by 10^offset.
37
37
  */
38
- "decimal separator offset": schema_1.t.optional(schema_1.t.number_local(schema_1.n.natural())),
38
+ "decimal separator offset": (0, schema_1.prop)(schema_1.t.optional(schema_1.t.number_local(schema_1.n.natural()))),
39
39
  /**
40
40
  * can the number be negative? > 'integer'
41
41
  * can the number be zero? > 'natural'
42
42
  * else > 'positive natural'
43
43
  */
44
- "type": schema_1.t.state_group({
44
+ "type": (0, schema_1.prop)(schema_1.t.state_group({
45
45
  "integer": schema_1.t.nothing(),
46
46
  "natural": schema_1.t.nothing(),
47
47
  "positive natural": schema_1.t.nothing(),
48
- }),
48
+ })),
49
49
  }),
50
- })
50
+ }))
51
51
  })),
52
52
  "Globals": (0, schema_1.type)(schema_1.t.group({
53
- "complexity": schema_1.t.state_group({
53
+ "complexity": (0, schema_1.prop)(schema_1.t.state_group({
54
54
  "constrained": schema_1.t.nothing(),
55
55
  "unconstrained": schema_1.t.nothing(),
56
- }),
57
- "text types": schema_1.t.dictionary(schema_1.t.component("Text Type")),
58
- "number types": schema_1.t.dictionary(schema_1.t.component("Number Type")),
56
+ })),
57
+ "text types": (0, schema_1.prop)(schema_1.t.dictionary(schema_1.t.component("Text Type"))),
58
+ "number types": (0, schema_1.prop)(schema_1.t.dictionary(schema_1.t.component("Number Type"))),
59
59
  })),
60
60
  "Presence": (0, schema_1.type)(schema_1.t.state_group({
61
61
  "optional": schema_1.t.nothing(),
@@ -63,122 +63,128 @@ exports.$ = (0, schema_1.types)({
63
63
  })),
64
64
  "Type Parameters": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.nothing())),
65
65
  "Type": (0, schema_1.type)(schema_1.t.group({
66
- "type parameters": schema_1.t.component("Type Parameters"),
67
- "node": schema_1.t.component_cyclic("Type Node")
66
+ "type parameters": (0, schema_1.prop)(schema_1.t.component("Type Parameters")),
67
+ "node": (0, schema_1.prop)(schema_1.t.component_cyclic("Type Node"))
68
68
  })),
69
69
  "Types": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.component("Type"), 'ordered')),
70
70
  "Dictionary": (0, schema_1.type)(schema_1.t.group({
71
- "node": schema_1.t.component_cyclic("Type Node"),
72
- "ordered": schema_1.t.boolean(),
71
+ "node": (0, schema_1.prop)(schema_1.t.component_cyclic("Type Node")),
72
+ "ordered": (0, schema_1.prop)(schema_1.t.boolean()),
73
73
  })),
74
74
  "Signatures": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.component_cyclic("Signature"), 'ordered')),
75
75
  "Resolvers": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.group({
76
- "signature": schema_1.t.reference_derived("Signatures", [schema_1.tr.d()]),
77
- "type resolver": schema_1.t.component_cyclic("Node Resolver"),
76
+ "signature": (0, schema_1.prop)(schema_1.t.reference_derived("Signatures", [schema_1.tr.d()])),
77
+ "type resolver": (0, schema_1.prop)(schema_1.t.component_cyclic("Node Resolver")),
78
78
  }), 'ordered')),
79
79
  "Resolve Logic": (0, schema_1.type)(schema_1.t.group({
80
- "signatures": schema_1.t.group({
81
- "types": schema_1.t.component_cyclic("Signatures")
82
- }),
83
- "resolvers": schema_1.t.component_cyclic("Resolvers"),
80
+ "signatures": (0, schema_1.prop)(schema_1.t.group({
81
+ "types": (0, schema_1.prop)(schema_1.t.component_cyclic("Signatures"))
82
+ })),
83
+ "resolvers": (0, schema_1.prop)(schema_1.t.component_cyclic("Resolvers")),
84
84
  })),
85
- "Group": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.component_cyclic("Type Node"))),
85
+ /**
86
+ * the properties in a group are ordered. This way there is a canonical concise representation
87
+ */
88
+ "Group": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.group({
89
+ "description": (0, schema_1.prop)(schema_1.t.optional(schema_1.t.text_local((0, schema_1.text)('multi line')))),
90
+ "node": (0, schema_1.prop)(schema_1.t.component_cyclic("Type Node"))
91
+ }), 'ordered')),
86
92
  "Type Node Reference": (0, schema_1.type)(schema_1.t.group({
87
- "type location": schema_1.t.component("Type Reference"),
88
- "tail": schema_1.t.list(schema_1.t.state_group({
93
+ "type location": (0, schema_1.prop)(schema_1.t.component("Type Reference")),
94
+ "tail": (0, schema_1.prop)(schema_1.t.list(schema_1.t.state_group({
89
95
  "dictionary": schema_1.t.nothing(),
90
96
  "group": schema_1.t.reference("Group", []),
91
97
  "list": schema_1.t.nothing(),
92
98
  "optional": schema_1.t.nothing(),
93
99
  "state group": schema_1.t.reference("Type Node", [schema_1.tr.s("state group")])
94
- })),
95
- "resulting node": schema_1.t.reference_derived("Type Node", []),
100
+ }))),
101
+ "resulting node": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [])),
96
102
  })),
97
103
  "Type Reference": (0, schema_1.type)(schema_1.t.group({
98
- "location": schema_1.t.state_group({
104
+ "location": (0, schema_1.prop)(schema_1.t.state_group({
99
105
  "internal": schema_1.t.reference("Types", []),
100
106
  "external": schema_1.t.group({
101
- "import": schema_1.t.reference("Imports", []),
102
- "type": schema_1.t.reference("Types", []),
107
+ "import": (0, schema_1.prop)(schema_1.t.reference("Imports", [])),
108
+ "type": (0, schema_1.prop)(schema_1.t.reference("Types", [])),
103
109
  }),
104
- }),
105
- "resulting node": schema_1.t.reference_derived("Type Node", []),
110
+ })),
111
+ "resulting node": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [])),
106
112
  })),
107
113
  "Signature Parameters": (0, schema_1.type)(schema_1.t.group({
108
- "values": schema_1.t.dictionary(schema_1.t.group({
109
- "data type": schema_1.t.component("Type Reference"),
110
- "presence": schema_1.t.component("Presence"),
111
- })),
112
- "lookups": schema_1.t.dictionary(schema_1.t.group({
113
- "referent": schema_1.t.component("Type Reference"),
114
- "dictionary": schema_1.t.reference_derived("Dictionary", []),
115
- "type": schema_1.t.state_group({
114
+ "values": (0, schema_1.prop)(schema_1.t.dictionary(schema_1.t.group({
115
+ "data type": (0, schema_1.prop)(schema_1.t.component("Type Reference")),
116
+ "presence": (0, schema_1.prop)(schema_1.t.component("Presence")),
117
+ }))),
118
+ "lookups": (0, schema_1.prop)(schema_1.t.dictionary(schema_1.t.group({
119
+ "referent": (0, schema_1.prop)(schema_1.t.component("Type Reference")),
120
+ "dictionary": (0, schema_1.prop)(schema_1.t.reference_derived("Dictionary", [])),
121
+ "type": (0, schema_1.prop)(schema_1.t.state_group({
116
122
  "cyclic": schema_1.t.nothing(),
117
123
  "acyclic": schema_1.t.nothing(),
118
124
  "stack": schema_1.t.nothing(),
119
- }),
120
- "presence": schema_1.t.component("Presence"),
121
- }))
125
+ })),
126
+ "presence": (0, schema_1.prop)(schema_1.t.component("Presence")),
127
+ })))
122
128
  })),
123
129
  "Signature": (0, schema_1.type)(schema_1.t.group({
124
- "type": schema_1.t.reference_derived("Type", []),
125
- "parameters": schema_1.t.state_group({
130
+ "type": (0, schema_1.prop)(schema_1.t.reference_derived("Type", [])),
131
+ "parameters": (0, schema_1.prop)(schema_1.t.state_group({
126
132
  "local": schema_1.t.component("Signature Parameters"),
127
133
  "same as": schema_1.t.reference("Signatures", []),
128
- }),
129
- "resolved parameters": schema_1.t.reference_derived("Signature Parameters", []),
134
+ })),
135
+ "resolved parameters": (0, schema_1.prop)(schema_1.t.reference_derived("Signature Parameters", [])),
130
136
  })),
131
137
  "Relative Value Selection": (0, schema_1.type)(schema_1.t.group({
132
- "path": schema_1.t.list(schema_1.t.state_group({
138
+ "path": (0, schema_1.prop)(schema_1.t.list(schema_1.t.state_group({
133
139
  "component": schema_1.t.nothing(),
134
140
  "group": schema_1.t.reference("Group", []),
135
141
  "reference": schema_1.t.group({
136
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("reference")]),
142
+ "definition": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [schema_1.tr.s("reference")])),
137
143
  }),
138
- })),
139
- "resulting node": schema_1.t.reference_derived("Type Node", []),
144
+ }))),
145
+ "resulting node": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [])),
140
146
  })),
141
147
  //FIXME: there has to be a guaranteed lookup selection and a possible lookup selection
142
148
  "Lookup Selection": (0, schema_1.type)(schema_1.t.group({
143
- "type": schema_1.t.state_group({
149
+ "type": (0, schema_1.prop)(schema_1.t.state_group({
144
150
  "dictionary": schema_1.t.group({
145
- "selection": schema_1.t.component_cyclic("Guaranteed Value Selection"),
146
- "selected dictionary": schema_1.t.reference_derived("Dictionary", []),
151
+ "selection": (0, schema_1.prop)(schema_1.t.component_cyclic("Guaranteed Value Selection")),
152
+ "selected dictionary": (0, schema_1.prop)(schema_1.t.reference_derived("Dictionary", [])),
147
153
  }),
148
154
  "parameter": schema_1.t.reference("Signature Parameters", [schema_1.tr.g("lookups")]),
149
155
  "not circular dependent siblings": schema_1.t.reference_derived("Dictionary", []),
150
156
  "possibly circular dependent siblings": schema_1.t.reference_derived("Dictionary", []),
151
- }),
152
- "resulting dictionary": schema_1.t.reference_derived("Dictionary", []),
157
+ })),
158
+ "resulting dictionary": (0, schema_1.prop)(schema_1.t.reference_derived("Dictionary", [])),
153
159
  })),
154
160
  "Constraint": (0, schema_1.type)(schema_1.t.group({
155
- "selection": schema_1.t.component("Relative Value Selection"),
156
- "type": schema_1.t.state_group({
161
+ "selection": (0, schema_1.prop)(schema_1.t.component("Relative Value Selection")),
162
+ "type": (0, schema_1.prop)(schema_1.t.state_group({
157
163
  "state": schema_1.t.group({
158
- "selected state group": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")]),
159
- "state": schema_1.t.reference("Type Node", [schema_1.tr.s("state group")]),
164
+ "selected state group": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")])),
165
+ "state": (0, schema_1.prop)(schema_1.t.reference("Type Node", [schema_1.tr.s("state group")])),
160
166
  }),
161
167
  "optional value": schema_1.t.group({
162
- "selected optional value": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("optional")]),
168
+ "selected optional value": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [schema_1.tr.s("optional")])),
163
169
  }),
164
- }),
170
+ })),
165
171
  })),
166
172
  "Option Constraints": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.state_group({
167
173
  "state": schema_1.t.group({
168
- "selection": schema_1.t.component_cyclic("Guaranteed Value Selection"),
169
- "selected state group": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")]),
170
- "state": schema_1.t.reference("Type Node", [schema_1.tr.s("state group")]),
174
+ "selection": (0, schema_1.prop)(schema_1.t.component_cyclic("Guaranteed Value Selection")),
175
+ "selected state group": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")])),
176
+ "state": (0, schema_1.prop)(schema_1.t.reference("Type Node", [schema_1.tr.s("state group")])),
171
177
  }),
172
178
  "assert is set": schema_1.t.component_cyclic("Possible Value Selection"),
173
179
  }))),
174
180
  "Property Constraints": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.component_cyclic("Property Constraint"), 'ordered')),
175
181
  "Reference To Property Constraint": (0, schema_1.type)(schema_1.t.reference("Property Constraints", [])), //FIXME : inline
176
182
  "Property Constraint": (0, schema_1.type)(schema_1.t.group({
177
- "start": schema_1.t.state_group({
183
+ "start": (0, schema_1.prop)(schema_1.t.state_group({
178
184
  "property": schema_1.t.nothing(),
179
185
  "sibling": schema_1.t.component("Reference To Property Constraint"),
180
- }),
181
- "constraint": schema_1.t.component("Constraint"),
186
+ })),
187
+ "constraint": (0, schema_1.prop)(schema_1.t.component("Constraint")),
182
188
  })),
183
189
  "Optional Value Initialization": (0, schema_1.type)(schema_1.t.state_group({
184
190
  "not set": schema_1.t.nothing(),
@@ -186,44 +192,44 @@ exports.$ = (0, schema_1.types)({
186
192
  "selection": schema_1.t.component_cyclic("Possible Value Selection"),
187
193
  })),
188
194
  "Node Resolver Group": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.group({
189
- "definition": schema_1.t.reference_derived("Group", [schema_1.tr.d()]),
190
- "resolver": schema_1.t.component_cyclic("Node Resolver"),
195
+ "definition": (0, schema_1.prop)(schema_1.t.reference_derived("Group", [schema_1.tr.d()])),
196
+ "resolver": (0, schema_1.prop)(schema_1.t.component_cyclic("Node Resolver")),
191
197
  }), 'ordered')),
192
198
  "Node Resolver List Result": (0, schema_1.type)(schema_1.t.component("Type Reference")),
193
199
  "Benchmark": (0, schema_1.type)(schema_1.t.group({
194
- "selection": schema_1.t.component_cyclic("Guaranteed Value Selection"),
195
- "resulting dictionary": schema_1.t.reference_derived("Dictionary", []),
196
- "dense": schema_1.t.boolean(),
200
+ "selection": (0, schema_1.prop)(schema_1.t.component_cyclic("Guaranteed Value Selection")),
201
+ "resulting dictionary": (0, schema_1.prop)(schema_1.t.reference_derived("Dictionary", [])),
202
+ "dense": (0, schema_1.prop)(schema_1.t.boolean()),
197
203
  })),
198
204
  "Schemas": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.component("Schema Tree"), 'ordered')),
199
205
  "Type Specification": (0, schema_1.type)(schema_1.t.group({
200
- "schema": schema_1.t.component("Schema Tree"),
201
- "schema path": schema_1.t.list(schema_1.t.text_local((0, schema_1.text)('single line'))),
202
- "type": schema_1.t.text_local((0, schema_1.text)('single line')),
206
+ "schema": (0, schema_1.propd)("select 'schema' if you want to have 1 schema, if you have or need multple, select 'set'", schema_1.t.component("Schema Tree")),
207
+ "schema path": (0, schema_1.propd)("selects the schema in which the root type is specified", schema_1.t.list(schema_1.t.text_local((0, schema_1.text)('single line')))),
208
+ "type": (0, schema_1.propd)("the type that is the root of the document", schema_1.t.text_local((0, schema_1.text)('single line'))),
203
209
  })),
204
210
  "Schema Tree": (0, schema_1.type)(schema_1.t.state_group({
205
211
  "schema": schema_1.t.component("Schema"),
206
212
  "set": schema_1.t.component_cyclic("Schemas")
207
213
  })),
208
214
  "Schema": (0, schema_1.type)(schema_1.t.group({
209
- "imports": schema_1.t.component_cyclic("Imports"),
210
- "globals": schema_1.t.component("Globals"),
211
- "types": schema_1.t.component("Types"),
212
- "complexity": schema_1.t.state_group({
215
+ "imports": (0, schema_1.prop)(schema_1.t.component_cyclic("Imports")),
216
+ "globals": (0, schema_1.prop)(schema_1.t.component("Globals")),
217
+ "types": (0, schema_1.prop)(schema_1.t.component("Types")),
218
+ "complexity": (0, schema_1.prop)(schema_1.t.state_group({
213
219
  "constrained": schema_1.t.component("Resolve Logic"),
214
220
  "unconstrained": schema_1.t.nothing(),
215
- }),
221
+ })),
216
222
  })),
217
223
  "Imports": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.group({
218
- "schema set child": schema_1.t.reference_stack("Schemas", []),
219
- "schema": schema_1.t.reference_derived("Schema", []),
224
+ "schema set child": (0, schema_1.prop)(schema_1.t.reference_stack("Schemas", [])),
225
+ "schema": (0, schema_1.prop)(schema_1.t.reference_derived("Schema", [])),
220
226
  }))),
221
227
  "Type Node": (0, schema_1.type)(schema_1.t.state_group({
222
228
  "boolean": schema_1.t.nothing(),
223
229
  "component": schema_1.t.state_group({
224
230
  "external": schema_1.t.group({
225
- "import": schema_1.t.reference("Imports", []),
226
- "type": schema_1.t.reference("Types", []),
231
+ "import": (0, schema_1.prop)(schema_1.t.reference("Imports", [])),
232
+ "type": (0, schema_1.prop)(schema_1.t.reference("Types", [])),
227
233
  }),
228
234
  "internal": schema_1.t.reference("Types", []),
229
235
  "internal cyclic": schema_1.t.reference("Types", [], 'cyclic'),
@@ -231,7 +237,7 @@ exports.$ = (0, schema_1.types)({
231
237
  "dictionary": schema_1.t.component("Dictionary"),
232
238
  "group": schema_1.t.component("Group"),
233
239
  "list": schema_1.t.group({
234
- "node": schema_1.t.component_cyclic("Type Node"),
240
+ "node": (0, schema_1.prop)(schema_1.t.component_cyclic("Type Node")),
235
241
  }),
236
242
  "nothing": schema_1.t.nothing(),
237
243
  "number": schema_1.t.state_group({
@@ -240,18 +246,18 @@ exports.$ = (0, schema_1.types)({
240
246
  }),
241
247
  "optional": schema_1.t.component_cyclic("Type Node"),
242
248
  "reference": schema_1.t.group({
243
- "referent": schema_1.t.component_cyclic("Type Node Reference"),
244
- "type": schema_1.t.state_group({
249
+ "referent": (0, schema_1.prop)(schema_1.t.component_cyclic("Type Node Reference")),
250
+ "type": (0, schema_1.prop)(schema_1.t.state_group({
245
251
  "derived": schema_1.t.nothing(),
246
252
  "selected": schema_1.t.group({
247
- "dictionary": schema_1.t.reference_derived("Dictionary", []),
248
- "dependency": schema_1.t.state_group({
253
+ "dictionary": (0, schema_1.prop)(schema_1.t.reference_derived("Dictionary", [])),
254
+ "dependency": (0, schema_1.prop)(schema_1.t.state_group({
249
255
  "acyclic": schema_1.t.nothing(),
250
256
  "cyclic": schema_1.t.nothing(),
251
257
  "stack": schema_1.t.nothing(),
252
- })
258
+ })),
253
259
  }),
254
- }),
260
+ })),
255
261
  }),
256
262
  "state group": schema_1.t.dictionary(schema_1.t.component_cyclic("Type Node")),
257
263
  "text": schema_1.t.state_group({
@@ -263,74 +269,74 @@ exports.$ = (0, schema_1.types)({
263
269
  "Node Resolver": (0, schema_1.type)(schema_1.t.state_group({
264
270
  "boolean": schema_1.t.nothing(),
265
271
  "component": schema_1.t.group({
266
- "location": schema_1.t.state_group({
272
+ "location": (0, schema_1.prop)(schema_1.t.state_group({
267
273
  "external": schema_1.t.group({
268
- "import": schema_1.t.reference("Imports", []),
269
- "type": schema_1.t.reference("Signatures", []),
274
+ "import": (0, schema_1.prop)(schema_1.t.reference("Imports", [])),
275
+ "type": (0, schema_1.prop)(schema_1.t.reference("Signatures", [])),
270
276
  }),
271
277
  "internal": schema_1.t.reference("Signatures", []),
272
- }),
273
- "signature": schema_1.t.reference_derived("Signatures", [schema_1.tr.d()]),
274
- "arguments": schema_1.t.optional(schema_1.t.group({
275
- "values": schema_1.t.optional(schema_1.t.dictionary(schema_1.t.state_group({
278
+ })),
279
+ "signature": (0, schema_1.prop)(schema_1.t.reference_derived("Signatures", [schema_1.tr.d()])),
280
+ "arguments": (0, schema_1.prop)(schema_1.t.optional(schema_1.t.group({
281
+ "values": (0, schema_1.prop)(schema_1.t.optional(schema_1.t.dictionary(schema_1.t.state_group({
276
282
  "optional": schema_1.t.component("Optional Value Initialization"),
277
283
  "required": schema_1.t.component_cyclic("Guaranteed Value Selection"),
278
284
  "parameter": schema_1.t.reference("Signature Parameters", [schema_1.tr.g("values")]),
279
- }))),
280
- "lookups": schema_1.t.optional(schema_1.t.dictionary(schema_1.t.state_group({
285
+ })))),
286
+ "lookups": (0, schema_1.prop)(schema_1.t.optional(schema_1.t.dictionary(schema_1.t.state_group({
281
287
  "empty stack": schema_1.t.nothing(),
282
288
  "not set": schema_1.t.nothing(),
283
289
  "selection": schema_1.t.component("Lookup Selection"),
284
290
  "stack": schema_1.t.group({
285
- "stack": schema_1.t.component("Lookup Selection"),
286
- "element": schema_1.t.component("Lookup Selection"),
291
+ "stack": (0, schema_1.prop)(schema_1.t.component("Lookup Selection")),
292
+ "element": (0, schema_1.prop)(schema_1.t.component("Lookup Selection")),
287
293
  }),
288
- }))),
289
- })),
290
- "constraints": schema_1.t.component("Property Constraints"),
294
+ })))),
295
+ }))),
296
+ "constraints": (0, schema_1.prop)(schema_1.t.component("Property Constraints")),
291
297
  }),
292
298
  "dictionary": schema_1.t.group({
293
- "definition": schema_1.t.reference_derived("Dictionary", []),
294
- "resolver": schema_1.t.component_cyclic("Node Resolver"),
295
- "benchmark": schema_1.t.optional(schema_1.t.component("Benchmark"))
299
+ "definition": (0, schema_1.prop)(schema_1.t.reference_derived("Dictionary", [])),
300
+ "resolver": (0, schema_1.prop)(schema_1.t.component_cyclic("Node Resolver")),
301
+ "benchmark": (0, schema_1.prop)(schema_1.t.optional(schema_1.t.component("Benchmark"))),
296
302
  }),
297
303
  "group": schema_1.t.component("Node Resolver Group"),
298
304
  "list": schema_1.t.group({
299
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("list")]),
300
- "resolver": schema_1.t.component_cyclic("Node Resolver"),
301
- "result": schema_1.t.optional(schema_1.t.component("Node Resolver List Result")),
305
+ "definition": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [schema_1.tr.s("list")])),
306
+ "resolver": (0, schema_1.prop)(schema_1.t.component_cyclic("Node Resolver")),
307
+ "result": (0, schema_1.prop)(schema_1.t.optional(schema_1.t.component("Node Resolver List Result"))),
302
308
  }),
303
309
  "nothing": schema_1.t.nothing(),
304
310
  "number": schema_1.t.nothing(),
305
311
  "optional": schema_1.t.group({
306
- "constraints": schema_1.t.component("Option Constraints"),
307
- "resolver": schema_1.t.component_cyclic("Node Resolver"),
312
+ "constraints": (0, schema_1.prop)(schema_1.t.component("Option Constraints")),
313
+ "resolver": (0, schema_1.prop)(schema_1.t.component_cyclic("Node Resolver")),
308
314
  }),
309
315
  "reference": schema_1.t.group({
310
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("reference")]),
311
- "type": schema_1.t.state_group({
316
+ "definition": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [schema_1.tr.s("reference")])),
317
+ "type": (0, schema_1.prop)(schema_1.t.state_group({
312
318
  "derived": schema_1.t.group({
313
- "value": schema_1.t.component_cyclic("Guaranteed Value Selection"),
319
+ "value": (0, schema_1.prop)(schema_1.t.component_cyclic("Guaranteed Value Selection")),
314
320
  }),
315
321
  "selected": schema_1.t.group({
316
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("reference"), schema_1.tr.g("type"), schema_1.tr.s("selected")]),
317
- "lookup": schema_1.t.component("Lookup Selection"),
318
- "constraints": schema_1.t.component("Property Constraints"),
322
+ "definition": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [schema_1.tr.s("reference"), schema_1.tr.g("type"), schema_1.tr.s("selected")])),
323
+ "lookup": (0, schema_1.prop)(schema_1.t.component("Lookup Selection")),
324
+ "constraints": (0, schema_1.prop)(schema_1.t.component("Property Constraints")),
319
325
  }),
320
- }),
326
+ })),
321
327
  }),
322
328
  "state group": schema_1.t.group({
323
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")]),
324
- "states": schema_1.t.dictionary(schema_1.t.group({
325
- "constraints": schema_1.t.component("Option Constraints"),
326
- "resolver": schema_1.t.component_cyclic("Node Resolver"),
327
- })),
329
+ "definition": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")])),
330
+ "states": (0, schema_1.prop)(schema_1.t.dictionary(schema_1.t.group({
331
+ "constraints": (0, schema_1.prop)(schema_1.t.component("Option Constraints")),
332
+ "resolver": (0, schema_1.prop)(schema_1.t.component_cyclic("Node Resolver")),
333
+ }))),
328
334
  }),
329
335
  "text": schema_1.t.nothing(),
330
336
  // "type parameter": t.nothing(),
331
337
  })),
332
338
  "Guaranteed Value Selection": (0, schema_1.type)(schema_1.t.group({
333
- "start": schema_1.t.state_group({
339
+ "start": (0, schema_1.prop)(schema_1.t.state_group({
334
340
  //stack
335
341
  "sibling": schema_1.t.reference("Node Resolver Group", []),
336
342
  "parent sibling": schema_1.t.reference("Node Resolver Group", []),
@@ -340,49 +346,49 @@ exports.$ = (0, schema_1.types)({
340
346
  //siblings
341
347
  "constraint": schema_1.t.state_group({
342
348
  "component": schema_1.t.group({
343
- "property": schema_1.t.reference("Node Resolver Group", []),
344
- "constraint": schema_1.t.reference("Property Constraints", []),
349
+ "property": (0, schema_1.prop)(schema_1.t.reference("Node Resolver Group", [])),
350
+ "constraint": (0, schema_1.prop)(schema_1.t.reference("Property Constraints", [])),
345
351
  }),
346
352
  "reference": schema_1.t.group({
347
- "property": schema_1.t.reference("Node Resolver Group", []),
348
- "constraint": schema_1.t.reference("Property Constraints", []),
353
+ "property": (0, schema_1.prop)(schema_1.t.reference("Node Resolver Group", [])),
354
+ "constraint": (0, schema_1.prop)(schema_1.t.reference("Property Constraints", [])),
349
355
  }),
350
356
  }),
351
357
  "parameter": schema_1.t.reference("Signature Parameters", [schema_1.tr.g("values")]), //FIXME: validate that presence is 'required'
352
358
  "result": schema_1.t.state_group({
353
359
  "list": schema_1.t.group({
354
- "property": schema_1.t.reference("Node Resolver Group", []),
355
- "list result": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("list"), schema_1.tr.g("result"), schema_1.tr.o()]),
360
+ "property": (0, schema_1.prop)(schema_1.t.reference("Node Resolver Group", [])),
361
+ "list result": (0, schema_1.prop)(schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("list"), schema_1.tr.g("result"), schema_1.tr.o()])),
356
362
  }),
357
363
  "state group": schema_1.t.group({
358
- "property": schema_1.t.reference("Node Resolver Group", []),
359
- "state group": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("state group")]),
360
- "result": schema_1.t.component("Type Reference"),
364
+ "property": (0, schema_1.prop)(schema_1.t.reference("Node Resolver Group", [])),
365
+ "state group": (0, schema_1.prop)(schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("state group")])),
366
+ "result": (0, schema_1.prop)(schema_1.t.component("Type Reference")),
361
367
  }),
362
368
  "optional value": schema_1.t.group({
363
- "property": schema_1.t.reference("Node Resolver Group", []),
364
- "optional value": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("optional")]),
365
- "result": schema_1.t.component("Type Reference"),
369
+ "property": (0, schema_1.prop)(schema_1.t.reference("Node Resolver Group", [])),
370
+ "optional value": (0, schema_1.prop)(schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("optional")])),
371
+ "result": (0, schema_1.prop)(schema_1.t.component("Type Reference")),
366
372
  }),
367
373
  })
368
- }),
369
- "tail": schema_1.t.component("Relative Value Selection"),
370
- "resulting node": schema_1.t.reference_derived("Type Node", []),
374
+ })),
375
+ "tail": (0, schema_1.prop)(schema_1.t.component("Relative Value Selection")),
376
+ "resulting node": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [])),
371
377
  })),
372
378
  "Possible Value Selection": (0, schema_1.type)(schema_1.t.state_group({
373
379
  "parameter": schema_1.t.reference("Signature Parameters", [schema_1.tr.g("values")]), //FIXME: validate that presence is 'optional'
374
380
  "result": schema_1.t.state_group({
375
381
  "state group": schema_1.t.group({
376
- "property": schema_1.t.reference("Node Resolver Group", []),
377
- "state group": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("state group")]),
378
- "result": schema_1.t.component("Type Reference"),
382
+ "property": (0, schema_1.prop)(schema_1.t.reference("Node Resolver Group", [])),
383
+ "state group": (0, schema_1.prop)(schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("state group")])),
384
+ "result": (0, schema_1.prop)(schema_1.t.component("Type Reference")),
379
385
  }),
380
386
  "optional value": schema_1.t.group({
381
- "property": schema_1.t.reference("Node Resolver Group", []),
382
- "optional value": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("optional")]),
383
- "result": schema_1.t.component("Type Reference"),
387
+ "property": (0, schema_1.prop)(schema_1.t.reference("Node Resolver Group", [])),
388
+ "optional value": (0, schema_1.prop)(schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("optional")])),
389
+ "result": (0, schema_1.prop)(schema_1.t.component("Type Reference")),
384
390
  }),
385
391
  })
386
392
  })),
387
393
  });
388
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiJC50eXBlcy5hc3RuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXAvdGVtcG9yYXJ5X3NjaGVtYXMvcGFyZXRvL3NjaGVtYXMvc2NoZW1hLyQudHlwZXMuYXN0bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2REFPeUM7QUFHNUIsUUFBQSxDQUFDLEdBQWlDLElBQUEsY0FBSyxFQUNoRDtJQUNJLFdBQVcsRUFBRSxJQUFBLGFBQUksRUFBQyxVQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxVQUFDLENBQUMsV0FBVyxDQUFDO1lBQ2xCLFlBQVksRUFBRSxVQUFDLENBQUMsT0FBTyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxVQUFDLENBQUMsT0FBTyxFQUFFO1NBQzdCLENBQUM7S0FDTCxDQUFDLENBQUM7SUFFSCxhQUFhLEVBQUUsSUFBQSxhQUFJLEVBQUMsVUFBQyxDQUFDLEtBQUssQ0FBQztRQUN4Qjs7OztXQUlHO1FBQ0gsV0FBVyxFQUFFLFVBQUMsQ0FBQyxXQUFXLENBQUM7WUFDdkI7O2VBRUc7WUFDSCxlQUFlLEVBQUUsVUFBQyxDQUFDLEtBQUssQ0FBQztnQkFDckI7O21CQUVHO2dCQUNILG9CQUFvQixFQUFFLFVBQUMsQ0FBQyxZQUFZLENBQUMsVUFBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3BELENBQUM7WUFDRjs7ZUFFRztZQUNILE9BQU8sRUFBRSxVQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNiOzs7OzttQkFLRztnQkFDSCwwQkFBMEIsRUFBRSxVQUFDLENBQUMsUUFBUSxDQUFDLFVBQUMsQ0FBQyxZQUFZLENBQUMsVUFBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBRW5FOzs7O21CQUlHO2dCQUNILE1BQU0sRUFBRSxVQUFDLENBQUMsV0FBVyxDQUFDO29CQUNsQixTQUFTLEVBQUUsVUFBQyxDQUFDLE9BQU8sRUFBRTtvQkFDdEIsU0FBUyxFQUFF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
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiJC50eXBlcy5hc3RuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXAvdGVtcG9yYXJ5X3NjaGVtYXMvcGFyZXRvL3NjaGVtYXMvc2NoZW1hLyQudHlwZXMuYXN0bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2REFTeUM7QUFHNUIsUUFBQSxDQUFDLEdBQWlDLElBQUEsY0FBSyxFQUNoRDtJQUNJLFdBQVcsRUFBRSxJQUFBLGFBQUksRUFBQyxVQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxJQUFBLGFBQUksRUFBQyxVQUFDLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLFlBQVksRUFBRSxVQUFDLENBQUMsT0FBTyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxVQUFDLENBQUMsT0FBTyxFQUFFO1NBQzdCLENBQUMsQ0FBQztLQUNOLENBQUMsQ0FBQztJQUVILGFBQWEsRUFBRSxJQUFBLGFBQUksRUFBQyxVQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3hCOzs7O1dBSUc7UUFDSCxXQUFXLEVBQUUsSUFBQSxhQUFJLEVBQUMsVUFBQyxDQUFDLFdBQVcsQ0FBQztZQUM1Qjs7ZUFFRztZQUNILGVBQWUsRUFBRSxVQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNyQjs7bUJBRUc7Z0JBQ0gsb0JBQW9CLEVBQUUsSUFBQSxhQUFJLEVBQUMsVUFBQyxDQUFDLFlBQVksQ0FBQyxVQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUMxRCxDQUFDO1lBQ0Y7O2VBRUc7WUFDSCxPQUFPLEVBQUUsVUFBQyxDQUFDLEtBQUssQ0FBQztnQkFDYjs7Ozs7bUJBS0c7Z0JBQ0gsMEJBQTBCLEVBQUUsSUFBQSxhQUFJLEVBQUMsVUFBQyxDQUFDLFFBQVEsQ0FBQyxVQUFDLENBQUMsWUFBWSxDQUFDLFVBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBRXpFOzs7O21CQUlHO2dCQUNILE1BQU0sRUFB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