@fuaran-ui/conformance 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/lenient/lenient-460-explicit-default-column.expected.json +1 -1
- package/corpus/lenient/lenient-665-rows-opaque-sentinel.expected.json +1 -0
- package/corpus/lenient/lenient-665-rows-opaque-sentinel.json +1 -0
- package/corpus/lenient/lenient-alias-datagrid-data-column-type.expected.json +1 -1
- package/corpus/manifest.json +67 -1
- package/corpus/nodes/chart-1.json +1 -1
- package/corpus/nodes/chart-state-rows.json +1 -0
- package/corpus/nodes/empty-state-card.json +1 -0
- package/corpus/nodes/form-toggle.json +1 -0
- package/corpus/nodes/grid-1.json +1 -1
- package/corpus/nodes/grid-editable-state.json +1 -0
- package/corpus/nodes/master-detail-multi-field.json +1 -0
- package/corpus/nodes/now-environment-binding.json +1 -0
- package/corpus/nodes/switch-on-selection.json +1 -0
- package/corpus/nodes/table-1.json +1 -1
- package/corpus/schema.json +79 -31
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"len-460-g","kind":{"$type":"DataGrid","columns":[{"kind":{"$type":"Text"},"label":"Channel"}],"source":{"$type":"Static","value":
|
|
1
|
+
{"id":"len-460-g","kind":{"$type":"DataGrid","columns":[{"kind":{"$type":"Text"},"label":"Channel"}],"source":{"$type":"Static","value":[]}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"len-rows-opq","kind":{"$type":"DataGrid","columns":[{"field":"dept","kind":{"$type":"Text"},"label":"Dept"}],"rowKeyField":"dept","source":{"$type":"State","defaultValue":[],"key":"rows"}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"len-rows-opq","kind":{"$type":"DataGrid","columns":[{"field":"dept","kind":{"$type":"Text"},"label":"Dept"}],"rowKeyField":"dept","source":{"$type":"State","defaultValue":"<opaque>","key":"rows"}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"len-dg","kind":{"$type":"DataGrid","columns":[{"field":"name","kind":{"$type":"Text"},"label":"Name"}],"source":{"$type":"Static","value":"
|
|
1
|
+
{"id":"len-dg","kind":{"$type":"DataGrid","columns":[{"field":"name","kind":{"$type":"Text"},"label":"Name"}],"source":{"$type":"Static","value":[{"name":"A"}]}}}
|
package/corpus/manifest.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
3
|
"schema": "schema.json",
|
|
4
|
+
"idl": "idl.json",
|
|
4
5
|
"description": "Fuaran canonical wire-format conformance corpus. node-round-trip / op-round-trip fixtures: decode inputFile, re-encode, assert byte-equal to expectedFile. reject fixtures: decode inputFile, assert DecodeError.Code = expectedErrorCode and DecodeError.Path starts with expectedPath. lenient-accept fixtures (WIRE_FORMAT 16): decode the SHORTHAND inputFile, re-encode, assert byte-equal to expectedFile (the verbose canonical form) — a conformant host MUST accept the shorthand and normalise it; rejecting it, or decoding it to different bytes, is non-conformant. envelope-round-trip / envelope-reject fixtures (WIRE_FORMAT 15): read the $profile/$payload envelope, negotiate the authored profile against the host's own core@1.0, then either re-render byte-equal to expectedFile (Current/Behind — unknown kinds preserved verbatim, must-ignore-but-preserve) or refuse a Foreign profile with expectedErrorCode FOREIGN_PROFILE at expectedPath. elicitation-round-trip / elicitation-reject fixtures (WIRE_FORMAT 18): decode with the decoder-named entry point (elicitation = the envelope codec, elicitation-outcome = the outcome codec), then either re-encode byte-equal to expectedFile or assert the structured refusal (expectedErrorCode at a path starting with expectedPath). elicitation-answer-accept / elicitation-answer-reject fixtures (WIRE_FORMAT 18.4): the inputFile pairs {answer, contract}; run the host's answer-conformance validation and assert acceptance or the expected refusal. See fuaran-dotnet/docs/WIRE_FORMAT.md.",
|
|
5
6
|
"kinds": [
|
|
6
7
|
"Badge",
|
|
@@ -53,7 +54,8 @@
|
|
|
53
54
|
"RangedNumber",
|
|
54
55
|
"SegmentedChoice",
|
|
55
56
|
"Text",
|
|
56
|
-
"TextArea"
|
|
57
|
+
"TextArea",
|
|
58
|
+
"Toggle"
|
|
57
59
|
],
|
|
58
60
|
"fixtures": [
|
|
59
61
|
{
|
|
@@ -464,6 +466,14 @@
|
|
|
464
466
|
"expectedFile": "lenient/lenient-596-form-explicit-auto-state.expected.json",
|
|
465
467
|
"description": "Phase 596 — a form field's explicit auto-shape value (State(field id, placeholder)) normalises to the omitted-value canonical form"
|
|
466
468
|
},
|
|
469
|
+
{
|
|
470
|
+
"id": "lenient-665-rows-opaque-sentinel",
|
|
471
|
+
"kind": "lenient-accept",
|
|
472
|
+
"decoder": "node",
|
|
473
|
+
"inputFile": "lenient/lenient-665-rows-opaque-sentinel.json",
|
|
474
|
+
"expectedFile": "lenient/lenient-665-rows-opaque-sentinel.expected.json",
|
|
475
|
+
"description": "fuaran#665 read-compat: the legacy \"<opaque>\" rows sentinel decodes to the empty typed feed and re-encodes as []"
|
|
476
|
+
},
|
|
467
477
|
{
|
|
468
478
|
"id": "lenient-alias-call-url",
|
|
469
479
|
"kind": "lenient-accept",
|
|
@@ -928,6 +938,14 @@
|
|
|
928
938
|
"expectedFile": "nodes/chart-1.json",
|
|
929
939
|
"description": "Visualisation/Chart"
|
|
930
940
|
},
|
|
941
|
+
{
|
|
942
|
+
"id": "chart-state-rows",
|
|
943
|
+
"kind": "node-round-trip",
|
|
944
|
+
"decoder": "node",
|
|
945
|
+
"inputFile": "nodes/chart-state-rows.json",
|
|
946
|
+
"expectedFile": "nodes/chart-state-rows.json",
|
|
947
|
+
"description": "Visualisation/Chart (Phase 663/665 — chart on the editable grid's state key)"
|
|
948
|
+
},
|
|
931
949
|
{
|
|
932
950
|
"id": "code-1",
|
|
933
951
|
"kind": "node-round-trip",
|
|
@@ -1016,6 +1034,14 @@
|
|
|
1016
1034
|
"expectedFile": "nodes/drawing-empty.json",
|
|
1017
1035
|
"description": "Display/Drawing (degenerate — empty)"
|
|
1018
1036
|
},
|
|
1037
|
+
{
|
|
1038
|
+
"id": "empty-state-card",
|
|
1039
|
+
"kind": "node-round-trip",
|
|
1040
|
+
"decoder": "node",
|
|
1041
|
+
"inputFile": "nodes/empty-state-card.json",
|
|
1042
|
+
"expectedFile": "nodes/empty-state-card.json",
|
|
1043
|
+
"description": "Layout/Box (Phase 767 — the canonical empty state with a CTA: one Card region, no nested Callout)"
|
|
1044
|
+
},
|
|
1019
1045
|
{
|
|
1020
1046
|
"id": "fact-1",
|
|
1021
1047
|
"kind": "node-round-trip",
|
|
@@ -1136,6 +1162,14 @@
|
|
|
1136
1162
|
"expectedFile": "nodes/form-segmented.json",
|
|
1137
1163
|
"description": "Input/Form (SegmentedChoice horizontal + vertical)"
|
|
1138
1164
|
},
|
|
1165
|
+
{
|
|
1166
|
+
"id": "form-toggle",
|
|
1167
|
+
"kind": "node-round-trip",
|
|
1168
|
+
"decoder": "node",
|
|
1169
|
+
"inputFile": "nodes/form-toggle.json",
|
|
1170
|
+
"expectedFile": "nodes/form-toggle.json",
|
|
1171
|
+
"description": "Input/Form (Phase 766 — the Toggle switch affordance beside a Checkbox)"
|
|
1172
|
+
},
|
|
1139
1173
|
{
|
|
1140
1174
|
"id": "format-bindings",
|
|
1141
1175
|
"kind": "node-round-trip",
|
|
@@ -1216,6 +1250,14 @@
|
|
|
1216
1250
|
"expectedFile": "nodes/grid-1.json",
|
|
1217
1251
|
"description": "Visualisation/Grid"
|
|
1218
1252
|
},
|
|
1253
|
+
{
|
|
1254
|
+
"id": "grid-editable-state",
|
|
1255
|
+
"kind": "node-round-trip",
|
|
1256
|
+
"decoder": "node",
|
|
1257
|
+
"inputFile": "nodes/grid-editable-state.json",
|
|
1258
|
+
"expectedFile": "nodes/grid-editable-state.json",
|
|
1259
|
+
"description": "Visualisation/Grid (Phase 663/665 — editable State-sourced grid, typed rows on the wire)"
|
|
1260
|
+
},
|
|
1219
1261
|
{
|
|
1220
1262
|
"id": "grid-field-named",
|
|
1221
1263
|
"kind": "node-round-trip",
|
|
@@ -1304,6 +1346,14 @@
|
|
|
1304
1346
|
"expectedFile": "nodes/markdown-1.json",
|
|
1305
1347
|
"description": "Display/Markdown"
|
|
1306
1348
|
},
|
|
1349
|
+
{
|
|
1350
|
+
"id": "master-detail-multi-field",
|
|
1351
|
+
"kind": "node-round-trip",
|
|
1352
|
+
"decoder": "node",
|
|
1353
|
+
"inputFile": "nodes/master-detail-multi-field.json",
|
|
1354
|
+
"expectedFile": "nodes/master-detail-multi-field.json",
|
|
1355
|
+
"description": "Layout/Box (master-detail — ONE selection feeding N slots, each projecting a DIFFERENT field)"
|
|
1356
|
+
},
|
|
1307
1357
|
{
|
|
1308
1358
|
"id": "master-detail-preselected",
|
|
1309
1359
|
"kind": "node-round-trip",
|
|
@@ -1408,6 +1458,14 @@
|
|
|
1408
1458
|
"expectedFile": "nodes/multiselect-1.json",
|
|
1409
1459
|
"description": "Input/Select (multi-select — list value)"
|
|
1410
1460
|
},
|
|
1461
|
+
{
|
|
1462
|
+
"id": "now-environment-binding",
|
|
1463
|
+
"kind": "node-round-trip",
|
|
1464
|
+
"decoder": "node",
|
|
1465
|
+
"inputFile": "nodes/now-environment-binding.json",
|
|
1466
|
+
"expectedFile": "nodes/now-environment-binding.json",
|
|
1467
|
+
"description": "Binding/Now (Phase 765 — the host-furnished instant: a text slot + a Transform param feeding dateDiffDays)"
|
|
1468
|
+
},
|
|
1411
1469
|
{
|
|
1412
1470
|
"id": "progress-1",
|
|
1413
1471
|
"kind": "node-round-trip",
|
|
@@ -1512,6 +1570,14 @@
|
|
|
1512
1570
|
"expectedFile": "nodes/switch-1.json",
|
|
1513
1571
|
"description": "Switch (view state → details/summary cases + info default)"
|
|
1514
1572
|
},
|
|
1573
|
+
{
|
|
1574
|
+
"id": "switch-on-selection",
|
|
1575
|
+
"kind": "node-round-trip",
|
|
1576
|
+
"decoder": "node",
|
|
1577
|
+
"inputFile": "nodes/switch-on-selection.json",
|
|
1578
|
+
"expectedFile": "nodes/switch-on-selection.json",
|
|
1579
|
+
"description": "Meta/Switch (Phase 768 — the selector widened: `on` takes a Selection, the branch follows the clicked row)"
|
|
1580
|
+
},
|
|
1515
1581
|
{
|
|
1516
1582
|
"id": "table-1",
|
|
1517
1583
|
"kind": "node-round-trip",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"chart-1","kind":{"$type":"Chart","kind":"Line","source":{"$type":"Static","value":"
|
|
1
|
+
{"id":"chart-1","kind":{"$type":"Chart","kind":"Line","source":{"$type":"Static","value":[{"cost":420,"month":"Jan","revenue":980},{"cost":390,"month":"Feb","revenue":1105}]},"stacked":true,"title":"Channel mix","xField":"month","yFields":["revenue","cost"]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"chart-state-rows","kind":{"$type":"Chart","kind":"Bar","source":{"$type":"State","defaultValue":[{"month":"Jan","revenue":980},{"month":"Feb","revenue":1105}],"key":"planRows"},"stacked":false,"xField":"month","yFields":["revenue"]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"empty-state-card","kind":{"$type":"Box","children":[{"id":"empty-state-note","kind":{"$type":"Markdown","text":"Searches you save will appear here so you can re-run them with one click."}},{"id":"empty-state-cta","kind":{"$type":"Button","icon":"search","label":"Browse jobs","onClick":{"$type":"Chain","ops":[]},"variant":"Primary"}}],"heading":"No saved searches yet","layout":{"$type":"Flex","direction":"Vertical","wrap":false},"role":"Card"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"form-toggle","kind":{"$type":"Form","fields":[{"id":"irrigation-running","kind":{"$type":"Toggle"},"label":"Irrigation","required":false},{"id":"accept-terms","kind":{"$type":"Checkbox"},"label":"I accept the terms","required":true}],"onSubmit":{"$type":"Chain","ops":[]},"submitLabel":"Save"}}
|
package/corpus/nodes/grid-1.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"grid-1","kind":{"$type":"DataGrid","columns":[{"kind":{"$type":"Text"},"label":"Channel","value":"<closure>"}],"rowKey":"<closure>","source":{"$type":"Static","value":"
|
|
1
|
+
{"id":"grid-1","kind":{"$type":"DataGrid","columns":[{"kind":{"$type":"Text"},"label":"Channel","value":"<closure>"}],"rowKey":"<closure>","source":{"$type":"Static","value":[{"channel":"Direct","revenue":1200},{"channel":"Referral","revenue":830}]}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"grid-editable-state","kind":{"$type":"DataGrid","columns":[{"field":"month","kind":{"$type":"Text"},"label":"Month"},{"field":"revenue","kind":{"$type":"Numeric"},"label":"Revenue"}],"editable":true,"rowKeyField":"month","source":{"$type":"State","defaultValue":[{"month":"Jan","revenue":980},{"month":"Feb","revenue":1105}],"key":"planRows"}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"master-detail-multi-field","kind":{"$type":"Box","children":[{"id":"ticket-grid","kind":{"$type":"DataGrid","columns":[{"field":"id","kind":{"$type":"Text"},"label":"Ticket"},{"field":"priority","kind":{"$type":"Text"},"label":"Priority"},{"field":"assignee","kind":{"$type":"Text"},"label":"Assignee"}],"rowKeyField":"id","source":{"$type":"Transform","pipeline":[],"source":{"columns":{"assignee":{"validity":[true,true],"values":["R. Okafor","M. Lindqvist"]},"id":{"validity":[true,true],"values":["TCK-2041","TCK-2042"]},"priority":{"validity":[true,true],"values":["high","low"]}},"schema":[{"name":"id","type":"string"},{"name":"priority","type":"string"},{"name":"assignee","type":"string"}]}}}},{"id":"ticket-detail","kind":{"$type":"Box","children":[{"id":"detail-ticket","kind":{"$type":"Fact","label":"Selected ticket","value":{"$type":"Bound","binding":{"$type":"Selection","defaultValue":"TCK-2041","field":"id","nodeId":"ticket-grid"}}}},{"id":"detail-priority","kind":{"$type":"Fact","label":"Priority","value":{"$type":"Bound","binding":{"$type":"Selection","defaultValue":"TCK-2041","field":"priority","nodeId":"ticket-grid"}}}},{"id":"detail-assignee","kind":{"$type":"Fact","label":"Assignee","value":{"$type":"Bound","binding":{"$type":"Selection","defaultValue":"TCK-2041","field":"assignee","nodeId":"ticket-grid"}}}},{"id":"detail-note","kind":{"$type":"Callout","body":{"$type":"Bound","binding":{"$type":"Selection","defaultValue":"R. Okafor","field":"assignee","nodeId":"ticket-grid"}},"heading":"Assigned to","tone":"Info"}}],"heading":"Ticket detail","layout":{"$type":"Flex","direction":"Vertical","wrap":false},"role":"Card"}}],"layout":{"$type":"Auto"},"role":"Dashboard"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"now-environment-binding","kind":{"$type":"Box","children":[{"id":"today-fact","kind":{"$type":"Fact","label":"Today","value":{"$type":"Bound","binding":{"$type":"Now"}}}},{"id":"overdue-grid","kind":{"$type":"DataGrid","columns":[{"field":"id","kind":{"$type":"Text"},"label":"Invoice"},{"field":"due","kind":{"$type":"Text"},"label":"Due"},{"field":"daysOverdue","kind":{"$type":"Text"},"label":"Days overdue"}],"rowKeyField":"id","source":{"$type":"Transform","params":[{"from":{"$type":"Now"},"name":"today"}],"pipeline":[{"$type":"derive","expr":{"$type":"apply","args":[{"$type":"param","name":"today"},{"$type":"col","name":"due"}],"fn":"dateDiffDays"},"name":"daysOverdue"}],"source":{"columns":{"due":{"validity":[true,true],"values":["2026-07-01","2026-07-28"]},"id":{"validity":[true,true],"values":["INV-1001","INV-1002"]}},"schema":[{"name":"id","type":"string"},{"name":"due","type":"string"}]}}}}],"layout":{"$type":"Auto"},"role":"Dashboard"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"switch-on-selection","kind":{"$type":"Box","children":[{"id":"ward-grid","kind":{"$type":"DataGrid","columns":[{"field":"id","kind":{"$type":"Text"},"label":"Ward"},{"field":"status","kind":{"$type":"Text"},"label":"Status"}],"rowKeyField":"id","source":{"$type":"Transform","pipeline":[],"source":{"columns":{"id":{"validity":[true,true],"values":["WARD-A","WARD-B"]},"status":{"validity":[true,true],"values":["steady","critical"]}},"schema":[{"name":"id","type":"string"},{"name":"status","type":"string"}]}}}},{"id":"ward-status-panel","kind":{"$type":"Switch","cases":[{"child":{"id":"ward-critical","kind":{"$type":"Callout","body":"Escalate admissions to the on-call manager.","heading":"Ward at capacity","tone":"Critical"}},"match":"critical"}],"default":{"id":"ward-steady","kind":{"$type":"Markdown","text":"Occupancy within normal range."}},"on":{"$type":"Selection","defaultValue":"steady","field":"status","nodeId":"ward-grid"}}}],"layout":{"$type":"Auto"},"role":"Dashboard"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"table-1","kind":{"$type":"DataGrid","columns":[],"source":{"$type":"Static","value":
|
|
1
|
+
{"id":"table-1","kind":{"$type":"DataGrid","columns":[],"source":{"$type":"Static","value":[]},"staticRows":{"headers":["Term","Definition"],"rows":[["MVU","Model-View-Update"],["DSL","Domain-specific language"]]}}}
|
package/corpus/schema.json
CHANGED
|
@@ -350,6 +350,17 @@
|
|
|
350
350
|
"fn"
|
|
351
351
|
]
|
|
352
352
|
},
|
|
353
|
+
{
|
|
354
|
+
"type": "object",
|
|
355
|
+
"properties": {
|
|
356
|
+
"$type": {
|
|
357
|
+
"const": "Now"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"required": [
|
|
361
|
+
"$type"
|
|
362
|
+
]
|
|
363
|
+
},
|
|
353
364
|
{
|
|
354
365
|
"type": "object",
|
|
355
366
|
"properties": {
|
|
@@ -1187,6 +1198,23 @@
|
|
|
1187
1198
|
"$type"
|
|
1188
1199
|
]
|
|
1189
1200
|
},
|
|
1201
|
+
{
|
|
1202
|
+
"type": "object",
|
|
1203
|
+
"properties": {
|
|
1204
|
+
"$type": {
|
|
1205
|
+
"const": "Toggle"
|
|
1206
|
+
},
|
|
1207
|
+
"onToggle": {
|
|
1208
|
+
"const": "<closure>"
|
|
1209
|
+
},
|
|
1210
|
+
"value": {
|
|
1211
|
+
"$ref": "#/$defs/Binding"
|
|
1212
|
+
}
|
|
1213
|
+
},
|
|
1214
|
+
"required": [
|
|
1215
|
+
"$type"
|
|
1216
|
+
]
|
|
1217
|
+
},
|
|
1190
1218
|
{
|
|
1191
1219
|
"type": "object",
|
|
1192
1220
|
"properties": {
|
|
@@ -4012,41 +4040,61 @@
|
|
|
4012
4040
|
]
|
|
4013
4041
|
},
|
|
4014
4042
|
{
|
|
4015
|
-
"
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
"
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
"
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4043
|
+
"allOf": [
|
|
4044
|
+
{
|
|
4045
|
+
"type": "object",
|
|
4046
|
+
"properties": {
|
|
4047
|
+
"$type": {
|
|
4048
|
+
"const": "Switch"
|
|
4049
|
+
},
|
|
4050
|
+
"cases": {
|
|
4051
|
+
"type": "array",
|
|
4052
|
+
"items": {
|
|
4053
|
+
"type": "object",
|
|
4054
|
+
"properties": {
|
|
4055
|
+
"child": {
|
|
4056
|
+
"$ref": "#/$defs/Node"
|
|
4057
|
+
},
|
|
4058
|
+
"match": {
|
|
4059
|
+
"type": "string"
|
|
4060
|
+
}
|
|
4061
|
+
},
|
|
4062
|
+
"required": [
|
|
4063
|
+
"child",
|
|
4064
|
+
"match"
|
|
4065
|
+
]
|
|
4030
4066
|
}
|
|
4031
4067
|
},
|
|
4032
|
-
"
|
|
4033
|
-
"
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4068
|
+
"default": {
|
|
4069
|
+
"$ref": "#/$defs/Node"
|
|
4070
|
+
},
|
|
4071
|
+
"stateKey": {
|
|
4072
|
+
"type": "string"
|
|
4073
|
+
},
|
|
4074
|
+
"on": {
|
|
4075
|
+
"$ref": "#/$defs/Binding"
|
|
4076
|
+
}
|
|
4077
|
+
},
|
|
4078
|
+
"required": [
|
|
4079
|
+
"$type",
|
|
4080
|
+
"cases",
|
|
4081
|
+
"default"
|
|
4082
|
+
]
|
|
4040
4083
|
},
|
|
4041
|
-
|
|
4042
|
-
"
|
|
4084
|
+
{
|
|
4085
|
+
"anyOf": [
|
|
4086
|
+
{
|
|
4087
|
+
"required": [
|
|
4088
|
+
"stateKey"
|
|
4089
|
+
]
|
|
4090
|
+
},
|
|
4091
|
+
{
|
|
4092
|
+
"required": [
|
|
4093
|
+
"on"
|
|
4094
|
+
]
|
|
4095
|
+
}
|
|
4096
|
+
]
|
|
4043
4097
|
}
|
|
4044
|
-
},
|
|
4045
|
-
"required": [
|
|
4046
|
-
"$type",
|
|
4047
|
-
"cases",
|
|
4048
|
-
"default",
|
|
4049
|
-
"stateKey"
|
|
4050
4098
|
]
|
|
4051
4099
|
},
|
|
4052
4100
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fuaran-ui/conformance",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Third-party certification kit for the Fuaran UI wire format — runs any candidate implementation (via a small decode/encode adapter) over the bundled canonical fixture corpus and emits a per-leg pass/fail conformance report naming the corpus version. See CONFORMANCE.md for the certification procedure.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fuaran",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/node": "^22.10.2",
|
|
46
|
-
"@fuaran-ui/ops": "0.
|
|
47
|
-
"@fuaran-ui/schema": "0.
|
|
46
|
+
"@fuaran-ui/ops": "0.6.0",
|
|
47
|
+
"@fuaran-ui/schema": "0.6.0"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|