pareto 0.76.62 → 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 (67) 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 +25 -24
  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 +14 -11
  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 +12 -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 +152 -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/schema/astn_schema.js +2 -2
  62. package/dist/transformations/schema/exupery_implementation/marshall.js +2 -2
  63. package/dist/transformations/schema/exupery_implementation/migrate_boilerplate.js +2 -2
  64. package/dist/transformations/schema/exupery_implementation/unmarshall.js +2 -2
  65. package/dist/transformations/schema/exupery_interface/types.js +2 -2
  66. package/dist/transformations/unmarshall_astn_ast.js +3 -3
  67. package/package.json +1 -1
@@ -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,125 +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
85
  /**
86
86
  * the properties in a group are ordered. This way there is a canonical concise representation
87
87
  */
88
- "Group": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.component_cyclic("Type Node"), 'ordered')),
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')),
89
92
  "Type Node Reference": (0, schema_1.type)(schema_1.t.group({
90
- "type location": schema_1.t.component("Type Reference"),
91
- "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({
92
95
  "dictionary": schema_1.t.nothing(),
93
96
  "group": schema_1.t.reference("Group", []),
94
97
  "list": schema_1.t.nothing(),
95
98
  "optional": schema_1.t.nothing(),
96
99
  "state group": schema_1.t.reference("Type Node", [schema_1.tr.s("state group")])
97
- })),
98
- "resulting node": schema_1.t.reference_derived("Type Node", []),
100
+ }))),
101
+ "resulting node": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [])),
99
102
  })),
100
103
  "Type Reference": (0, schema_1.type)(schema_1.t.group({
101
- "location": schema_1.t.state_group({
104
+ "location": (0, schema_1.prop)(schema_1.t.state_group({
102
105
  "internal": schema_1.t.reference("Types", []),
103
106
  "external": schema_1.t.group({
104
- "import": schema_1.t.reference("Imports", []),
105
- "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", [])),
106
109
  }),
107
- }),
108
- "resulting node": schema_1.t.reference_derived("Type Node", []),
110
+ })),
111
+ "resulting node": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [])),
109
112
  })),
110
113
  "Signature Parameters": (0, schema_1.type)(schema_1.t.group({
111
- "values": schema_1.t.dictionary(schema_1.t.group({
112
- "data type": schema_1.t.component("Type Reference"),
113
- "presence": schema_1.t.component("Presence"),
114
- })),
115
- "lookups": schema_1.t.dictionary(schema_1.t.group({
116
- "referent": schema_1.t.component("Type Reference"),
117
- "dictionary": schema_1.t.reference_derived("Dictionary", []),
118
- "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({
119
122
  "cyclic": schema_1.t.nothing(),
120
123
  "acyclic": schema_1.t.nothing(),
121
124
  "stack": schema_1.t.nothing(),
122
- }),
123
- "presence": schema_1.t.component("Presence"),
124
- }))
125
+ })),
126
+ "presence": (0, schema_1.prop)(schema_1.t.component("Presence")),
127
+ })))
125
128
  })),
126
129
  "Signature": (0, schema_1.type)(schema_1.t.group({
127
- "type": schema_1.t.reference_derived("Type", []),
128
- "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({
129
132
  "local": schema_1.t.component("Signature Parameters"),
130
133
  "same as": schema_1.t.reference("Signatures", []),
131
- }),
132
- "resolved parameters": schema_1.t.reference_derived("Signature Parameters", []),
134
+ })),
135
+ "resolved parameters": (0, schema_1.prop)(schema_1.t.reference_derived("Signature Parameters", [])),
133
136
  })),
134
137
  "Relative Value Selection": (0, schema_1.type)(schema_1.t.group({
135
- "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({
136
139
  "component": schema_1.t.nothing(),
137
140
  "group": schema_1.t.reference("Group", []),
138
141
  "reference": schema_1.t.group({
139
- "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")])),
140
143
  }),
141
- })),
142
- "resulting node": schema_1.t.reference_derived("Type Node", []),
144
+ }))),
145
+ "resulting node": (0, schema_1.prop)(schema_1.t.reference_derived("Type Node", [])),
143
146
  })),
144
147
  //FIXME: there has to be a guaranteed lookup selection and a possible lookup selection
145
148
  "Lookup Selection": (0, schema_1.type)(schema_1.t.group({
146
- "type": schema_1.t.state_group({
149
+ "type": (0, schema_1.prop)(schema_1.t.state_group({
147
150
  "dictionary": schema_1.t.group({
148
- "selection": schema_1.t.component_cyclic("Guaranteed Value Selection"),
149
- "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", [])),
150
153
  }),
151
154
  "parameter": schema_1.t.reference("Signature Parameters", [schema_1.tr.g("lookups")]),
152
155
  "not circular dependent siblings": schema_1.t.reference_derived("Dictionary", []),
153
156
  "possibly circular dependent siblings": schema_1.t.reference_derived("Dictionary", []),
154
- }),
155
- "resulting dictionary": schema_1.t.reference_derived("Dictionary", []),
157
+ })),
158
+ "resulting dictionary": (0, schema_1.prop)(schema_1.t.reference_derived("Dictionary", [])),
156
159
  })),
157
160
  "Constraint": (0, schema_1.type)(schema_1.t.group({
158
- "selection": schema_1.t.component("Relative Value Selection"),
159
- "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({
160
163
  "state": schema_1.t.group({
161
- "selected state group": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")]),
162
- "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")])),
163
166
  }),
164
167
  "optional value": schema_1.t.group({
165
- "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")])),
166
169
  }),
167
- }),
170
+ })),
168
171
  })),
169
172
  "Option Constraints": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.state_group({
170
173
  "state": schema_1.t.group({
171
- "selection": schema_1.t.component_cyclic("Guaranteed Value Selection"),
172
- "selected state group": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")]),
173
- "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")])),
174
177
  }),
175
178
  "assert is set": schema_1.t.component_cyclic("Possible Value Selection"),
176
179
  }))),
177
180
  "Property Constraints": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.component_cyclic("Property Constraint"), 'ordered')),
178
181
  "Reference To Property Constraint": (0, schema_1.type)(schema_1.t.reference("Property Constraints", [])), //FIXME : inline
179
182
  "Property Constraint": (0, schema_1.type)(schema_1.t.group({
180
- "start": schema_1.t.state_group({
183
+ "start": (0, schema_1.prop)(schema_1.t.state_group({
181
184
  "property": schema_1.t.nothing(),
182
185
  "sibling": schema_1.t.component("Reference To Property Constraint"),
183
- }),
184
- "constraint": schema_1.t.component("Constraint"),
186
+ })),
187
+ "constraint": (0, schema_1.prop)(schema_1.t.component("Constraint")),
185
188
  })),
186
189
  "Optional Value Initialization": (0, schema_1.type)(schema_1.t.state_group({
187
190
  "not set": schema_1.t.nothing(),
@@ -189,44 +192,44 @@ exports.$ = (0, schema_1.types)({
189
192
  "selection": schema_1.t.component_cyclic("Possible Value Selection"),
190
193
  })),
191
194
  "Node Resolver Group": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.group({
192
- "definition": schema_1.t.reference_derived("Group", [schema_1.tr.d()]),
193
- "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")),
194
197
  }), 'ordered')),
195
198
  "Node Resolver List Result": (0, schema_1.type)(schema_1.t.component("Type Reference")),
196
199
  "Benchmark": (0, schema_1.type)(schema_1.t.group({
197
- "selection": schema_1.t.component_cyclic("Guaranteed Value Selection"),
198
- "resulting dictionary": schema_1.t.reference_derived("Dictionary", []),
199
- "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()),
200
203
  })),
201
204
  "Schemas": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.component("Schema Tree"), 'ordered')),
202
205
  "Type Specification": (0, schema_1.type)(schema_1.t.group({
203
- "schema": schema_1.t.component("Schema Tree"),
204
- "schema path": schema_1.t.list(schema_1.t.text_local((0, schema_1.text)('single line'))),
205
- "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'))),
206
209
  })),
207
210
  "Schema Tree": (0, schema_1.type)(schema_1.t.state_group({
208
211
  "schema": schema_1.t.component("Schema"),
209
212
  "set": schema_1.t.component_cyclic("Schemas")
210
213
  })),
211
214
  "Schema": (0, schema_1.type)(schema_1.t.group({
212
- "imports": schema_1.t.component_cyclic("Imports"),
213
- "globals": schema_1.t.component("Globals"),
214
- "types": schema_1.t.component("Types"),
215
- "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({
216
219
  "constrained": schema_1.t.component("Resolve Logic"),
217
220
  "unconstrained": schema_1.t.nothing(),
218
- }),
221
+ })),
219
222
  })),
220
223
  "Imports": (0, schema_1.type)(schema_1.t.dictionary(schema_1.t.group({
221
- "schema set child": schema_1.t.reference_stack("Schemas", []),
222
- "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", [])),
223
226
  }))),
224
227
  "Type Node": (0, schema_1.type)(schema_1.t.state_group({
225
228
  "boolean": schema_1.t.nothing(),
226
229
  "component": schema_1.t.state_group({
227
230
  "external": schema_1.t.group({
228
- "import": schema_1.t.reference("Imports", []),
229
- "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", [])),
230
233
  }),
231
234
  "internal": schema_1.t.reference("Types", []),
232
235
  "internal cyclic": schema_1.t.reference("Types", [], 'cyclic'),
@@ -234,7 +237,7 @@ exports.$ = (0, schema_1.types)({
234
237
  "dictionary": schema_1.t.component("Dictionary"),
235
238
  "group": schema_1.t.component("Group"),
236
239
  "list": schema_1.t.group({
237
- "node": schema_1.t.component_cyclic("Type Node"),
240
+ "node": (0, schema_1.prop)(schema_1.t.component_cyclic("Type Node")),
238
241
  }),
239
242
  "nothing": schema_1.t.nothing(),
240
243
  "number": schema_1.t.state_group({
@@ -243,18 +246,18 @@ exports.$ = (0, schema_1.types)({
243
246
  }),
244
247
  "optional": schema_1.t.component_cyclic("Type Node"),
245
248
  "reference": schema_1.t.group({
246
- "referent": schema_1.t.component_cyclic("Type Node Reference"),
247
- "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({
248
251
  "derived": schema_1.t.nothing(),
249
252
  "selected": schema_1.t.group({
250
- "dictionary": schema_1.t.reference_derived("Dictionary", []),
251
- "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({
252
255
  "acyclic": schema_1.t.nothing(),
253
256
  "cyclic": schema_1.t.nothing(),
254
257
  "stack": schema_1.t.nothing(),
255
- })
258
+ })),
256
259
  }),
257
- }),
260
+ })),
258
261
  }),
259
262
  "state group": schema_1.t.dictionary(schema_1.t.component_cyclic("Type Node")),
260
263
  "text": schema_1.t.state_group({
@@ -266,74 +269,74 @@ exports.$ = (0, schema_1.types)({
266
269
  "Node Resolver": (0, schema_1.type)(schema_1.t.state_group({
267
270
  "boolean": schema_1.t.nothing(),
268
271
  "component": schema_1.t.group({
269
- "location": schema_1.t.state_group({
272
+ "location": (0, schema_1.prop)(schema_1.t.state_group({
270
273
  "external": schema_1.t.group({
271
- "import": schema_1.t.reference("Imports", []),
272
- "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", [])),
273
276
  }),
274
277
  "internal": schema_1.t.reference("Signatures", []),
275
- }),
276
- "signature": schema_1.t.reference_derived("Signatures", [schema_1.tr.d()]),
277
- "arguments": schema_1.t.optional(schema_1.t.group({
278
- "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({
279
282
  "optional": schema_1.t.component("Optional Value Initialization"),
280
283
  "required": schema_1.t.component_cyclic("Guaranteed Value Selection"),
281
284
  "parameter": schema_1.t.reference("Signature Parameters", [schema_1.tr.g("values")]),
282
- }))),
283
- "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({
284
287
  "empty stack": schema_1.t.nothing(),
285
288
  "not set": schema_1.t.nothing(),
286
289
  "selection": schema_1.t.component("Lookup Selection"),
287
290
  "stack": schema_1.t.group({
288
- "stack": schema_1.t.component("Lookup Selection"),
289
- "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")),
290
293
  }),
291
- }))),
292
- })),
293
- "constraints": schema_1.t.component("Property Constraints"),
294
+ })))),
295
+ }))),
296
+ "constraints": (0, schema_1.prop)(schema_1.t.component("Property Constraints")),
294
297
  }),
295
298
  "dictionary": schema_1.t.group({
296
- "definition": schema_1.t.reference_derived("Dictionary", []),
297
- "resolver": schema_1.t.component_cyclic("Node Resolver"),
298
- "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"))),
299
302
  }),
300
303
  "group": schema_1.t.component("Node Resolver Group"),
301
304
  "list": schema_1.t.group({
302
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("list")]),
303
- "resolver": schema_1.t.component_cyclic("Node Resolver"),
304
- "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"))),
305
308
  }),
306
309
  "nothing": schema_1.t.nothing(),
307
310
  "number": schema_1.t.nothing(),
308
311
  "optional": schema_1.t.group({
309
- "constraints": schema_1.t.component("Option Constraints"),
310
- "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")),
311
314
  }),
312
315
  "reference": schema_1.t.group({
313
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("reference")]),
314
- "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({
315
318
  "derived": schema_1.t.group({
316
- "value": schema_1.t.component_cyclic("Guaranteed Value Selection"),
319
+ "value": (0, schema_1.prop)(schema_1.t.component_cyclic("Guaranteed Value Selection")),
317
320
  }),
318
321
  "selected": schema_1.t.group({
319
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("reference"), schema_1.tr.g("type"), schema_1.tr.s("selected")]),
320
- "lookup": schema_1.t.component("Lookup Selection"),
321
- "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")),
322
325
  }),
323
- }),
326
+ })),
324
327
  }),
325
328
  "state group": schema_1.t.group({
326
- "definition": schema_1.t.reference_derived("Type Node", [schema_1.tr.s("state group")]),
327
- "states": schema_1.t.dictionary(schema_1.t.group({
328
- "constraints": schema_1.t.component("Option Constraints"),
329
- "resolver": schema_1.t.component_cyclic("Node Resolver"),
330
- })),
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
+ }))),
331
334
  }),
332
335
  "text": schema_1.t.nothing(),
333
336
  // "type parameter": t.nothing(),
334
337
  })),
335
338
  "Guaranteed Value Selection": (0, schema_1.type)(schema_1.t.group({
336
- "start": schema_1.t.state_group({
339
+ "start": (0, schema_1.prop)(schema_1.t.state_group({
337
340
  //stack
338
341
  "sibling": schema_1.t.reference("Node Resolver Group", []),
339
342
  "parent sibling": schema_1.t.reference("Node Resolver Group", []),
@@ -343,49 +346,49 @@ exports.$ = (0, schema_1.types)({
343
346
  //siblings
344
347
  "constraint": schema_1.t.state_group({
345
348
  "component": schema_1.t.group({
346
- "property": schema_1.t.reference("Node Resolver Group", []),
347
- "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", [])),
348
351
  }),
349
352
  "reference": schema_1.t.group({
350
- "property": schema_1.t.reference("Node Resolver Group", []),
351
- "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", [])),
352
355
  }),
353
356
  }),
354
357
  "parameter": schema_1.t.reference("Signature Parameters", [schema_1.tr.g("values")]), //FIXME: validate that presence is 'required'
355
358
  "result": schema_1.t.state_group({
356
359
  "list": schema_1.t.group({
357
- "property": schema_1.t.reference("Node Resolver Group", []),
358
- "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()])),
359
362
  }),
360
363
  "state group": schema_1.t.group({
361
- "property": schema_1.t.reference("Node Resolver Group", []),
362
- "state group": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("state group")]),
363
- "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")),
364
367
  }),
365
368
  "optional value": schema_1.t.group({
366
- "property": schema_1.t.reference("Node Resolver Group", []),
367
- "optional value": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("optional")]),
368
- "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")),
369
372
  }),
370
373
  })
371
- }),
372
- "tail": schema_1.t.component("Relative Value Selection"),
373
- "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", [])),
374
377
  })),
375
378
  "Possible Value Selection": (0, schema_1.type)(schema_1.t.state_group({
376
379
  "parameter": schema_1.t.reference("Signature Parameters", [schema_1.tr.g("values")]), //FIXME: validate that presence is 'optional'
377
380
  "result": schema_1.t.state_group({
378
381
  "state group": schema_1.t.group({
379
- "property": schema_1.t.reference("Node Resolver Group", []),
380
- "state group": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("state group")]),
381
- "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")),
382
385
  }),
383
386
  "optional value": schema_1.t.group({
384
- "property": schema_1.t.reference("Node Resolver Group", []),
385
- "optional value": schema_1.t.reference_derived("Node Resolver", [schema_1.tr.s("optional")]),
386
- "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")),
387
390
  }),
388
391
  })
389
392
  })),
390
393
  });
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiJC50eXBlcy5hc3RuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXAvdGVtcG9yYXJ5X3NjaGVtYXMvcGFyZXRvL3NjaGVtYXMvc2NoZW1hLyQudHlwZXMuYXN0bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2REFPeUM7QUFHNUIsUUFBQSxDQUFDLEdBQWlDLElBQUEsY0FBSyxFQUNoRDtJQUNJLFdBQVcsRUFBRSxJQUFBLGFBQUksRUFBQyxVQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxVQUFDLENBQUMsV0FBVyxDQUFDO1lBQ2xCLFlBQVksRUFBRSxVQUFDLENBQUMsT0FBTyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxVQUFDLENBQUMsT0FBTyxFQUFFO1NBQzdCLENBQUM7S0FDTCxDQUFDLENBQUM7SUFFSCxhQUFhLEVBQUUsSUFBQSxhQUFJLEVBQUMsVUFBQyxDQUFDLEtBQUssQ0FBQztRQUN4Qjs7OztXQUlHO1FBQ0gsV0FBVyxFQUFFLFVBQUMsQ0FBQyxXQUFXLENBQUM7WUFDdkI7O2VBRUc7WUFDSCxlQUFlLEVBQUUsVUFBQyxDQUFDLEtBQUssQ0FBQztnQkFDckI7O21CQUVHO2dCQUNILG9CQUFvQixFQUFFLFVBQUMsQ0FBQyxZQUFZLENBQUMsVUFBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3BELENBQUM7WUFDRjs7ZUFFRztZQUNILE9BQU8sRUFBRSxVQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNiOzs7OzttQkFLRztnQkFDSCwwQkFBMEIsRUFBRSxVQUFDLENBQUMsUUFBUSxDQUFDLFVBQUMsQ0FBQyxZQUFZLENBQUMsVUFBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBRW5FOzs7O21CQUlHO2dCQUNILE1BQU0sRUFBRSxVQUFDLENBQUMsV0FBVyxDQUFDO29CQUNsQixTQUFTLEVBQUUsVUFBQyxDQUFDLE9BQU8sRUFBRTtvQkFDdEIsU0FBUyxFQUFF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
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiJC50eXBlcy5hc3RuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXAvdGVtcG9yYXJ5X3NjaGVtYXMvcGFyZXRvL3NjaGVtYXMvc2NoZW1hLyQudHlwZXMuYXN0bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2REFTeUM7QUFHNUIsUUFBQSxDQUFDLEdBQWlDLElBQUEsY0FBSyxFQUNoRDtJQUNJLFdBQVcsRUFBRSxJQUFBLGFBQUksRUFBQyxVQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxJQUFBLGFBQUksRUFBQyxVQUFDLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLFlBQVksRUFBRSxVQUFDLENBQUMsT0FBTyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxVQUFDLENBQUMsT0FBTyxFQUFFO1NBQzdCLENBQUMsQ0FBQztLQUNOLENBQUMsQ0FBQztJQUVILGFBQWEsRUFBRSxJQUFBLGFBQUksRUFBQyxVQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3hCOzs7O1dBSUc7UUFDSCxXQUFXLEVBQUUsSUFBQSxhQUFJLEVBQUMsVUFBQyxDQUFDLFdBQVcsQ0FBQztZQUM1Qjs7ZUFFRztZQUNILGVBQWUsRUFBRSxVQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNyQjs7bUJBRUc7Z0JBQ0gsb0JBQW9CLEVBQUUsSUFBQSxhQUFJLEVBQUMsVUFBQyxDQUFDLFlBQVksQ0FBQyxVQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUMxRCxDQUFDO1lBQ0Y7O2VBRUc7WUFDSCxPQUFPLEVBQUUsVUFBQyxDQUFDLEtBQUssQ0FBQztnQkFDYjs7Ozs7bUJBS0c7Z0JBQ0gsMEJBQTBCLEVBQUUsSUFBQSxhQUFJLEVBQUMsVUFBQyxDQUFDLFFBQVEsQ0FBQyxVQUFDLENBQUMsWUFBWSxDQUFDLFVBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBRXpFOzs7O21CQUlHO2dCQUNILE1BQU0sRUFB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