diff --git a/.gitignore b/.gitignore index 1333390..0ae2b2a 100644 --- a/.gitignore +++ b/.gitignore @@ -65,4 +65,10 @@ coverage .idea !/demo/grpc-test.json -!/demo/grpc-test-compact.json \ No newline at end of file +!/demo/grpc-test-compact.json + +# AsyncAPI 3.0/3.1 fixtures +!demo/async30.json +!demo/async30-compact.json +!demo/async31.json +!demo/async31-compact.json \ No newline at end of file diff --git a/demo/async30-compact.json b/demo/async30-compact.json new file mode 100644 index 0000000..dde77f0 --- /dev/null +++ b/demo/async30-compact.json @@ -0,0 +1 @@ +{"@graph":[{"@id":"amf://id#1","@type":["http://a.ml/vocabularies/document#APIContractProcessingData"],"http://a.ml/vocabularies/apiContract#modelVersion":"3.11.0","http://a.ml/vocabularies/document#transformed":true,"http://a.ml/vocabularies/document#sourceSpec":"ASYNC 3.0"},{"@id":"amf://id#2","@type":["http://a.ml/vocabularies/apiContract#AsyncAPI","http://a.ml/vocabularies/apiContract#API","http://a.ml/vocabularies/document#RootDomainElement","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#topLevelOperations":[{"@id":"amf://id#12"}],"http://a.ml/vocabularies/core#name":"AsyncAPI 3.0 Test","http://a.ml/vocabularies/core#version":"1.0.0","http://a.ml/vocabularies/apiContract#endpoint":[{"@id":"amf://id#3"}]},{"@id":"amf://id#12","@type":["http://a.ml/vocabularies/apiContract#Operation","http://a.ml/vocabularies/core#Operation","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"sendUserSignedUp","http://a.ml/vocabularies/apiContract#operationId":"sendUserSignedUp","http://a.ml/vocabularies/apiContract#action":"send","http://a.ml/vocabularies/apiContract#channel":{"@id":"amf://id#13"},"http://a.ml/vocabularies/apiContract#operationMessages":[{"@id":"amf://id#4"}]},{"@id":"amf://id#3","@type":["http://a.ml/vocabularies/apiContract#EndPoint","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#path":"user.signedup","http://a.ml/vocabularies/core#name":"userSignedUp","http://a.ml/vocabularies/core#description":"Channel for user signup events","http://a.ml/vocabularies/apiContract#supportedOperation":[{"@id":"amf://id#12"}],"http://a.ml/vocabularies/apiContract#server":[],"http://a.ml/vocabularies/apiContract#channelMessages":[{"@id":"amf://id#4"}]},{"@id":"amf://id#13","@type":["http://a.ml/vocabularies/apiContract#EndPoint","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#path":"user.signedup","http://a.ml/vocabularies/core#name":"userSignedUp","http://a.ml/vocabularies/core#description":"Channel for user signup events","http://a.ml/vocabularies/apiContract#server":[],"http://a.ml/vocabularies/apiContract#channelMessages":[{"@id":"amf://id#4"}]},{"@id":"amf://id#4","@type":["http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"userSignedUpMessage","http://a.ml/vocabularies/apiContract#payload":[{"@id":"amf://id#5"}],"http://a.ml/vocabularies/core#displayName":"userSignedUpMessage"},{"@id":"amf://id#5","@type":["http://a.ml/vocabularies/apiContract#Payload","http://a.ml/vocabularies/core#Payload","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#mediaType":"application/json","http://a.ml/vocabularies/shapes#schema":{"@id":"amf://id#6"}},{"@id":"amf://id#6","@type":["http://www.w3.org/ns/shacl#NodeShape","http://a.ml/vocabularies/shapes#AnyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#closed":false,"http://www.w3.org/ns/shacl#property":[{"@id":"amf://id#7"},{"@id":"amf://id#9"}],"http://www.w3.org/ns/shacl#name":"schema"},{"@id":"amf://id#7","@type":["http://www.w3.org/ns/shacl#PropertyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#path":[{"@id":"http://a.ml/vocabularies/data#userId"}],"http://a.ml/vocabularies/shapes#range":{"@id":"amf://id#8"},"http://www.w3.org/ns/shacl#minCount":0,"http://www.w3.org/ns/shacl#name":"userId"},{"@id":"amf://id#9","@type":["http://www.w3.org/ns/shacl#PropertyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#path":[{"@id":"http://a.ml/vocabularies/data#email"}],"http://a.ml/vocabularies/shapes#range":{"@id":"amf://id#10"},"http://www.w3.org/ns/shacl#minCount":0,"http://www.w3.org/ns/shacl#name":"email"},{"@id":"amf://id#8","@type":["http://a.ml/vocabularies/shapes#ScalarShape","http://a.ml/vocabularies/shapes#AnyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#datatype":[{"@id":"http://www.w3.org/2001/XMLSchema#string"}],"http://www.w3.org/ns/shacl#name":"userId"},{"@id":"amf://id#10","@type":["http://a.ml/vocabularies/shapes#ScalarShape","http://a.ml/vocabularies/shapes#AnyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#datatype":[{"@id":"http://www.w3.org/2001/XMLSchema#string"}],"http://www.w3.org/ns/shacl#name":"email"},{"@id":"amf://id","@type":["http://a.ml/vocabularies/document#Document","http://a.ml/vocabularies/document#Fragment","http://a.ml/vocabularies/document#Module","http://a.ml/vocabularies/document#Unit"],"http://a.ml/vocabularies/document#encodes":{"@id":"amf://id#2"},"http://a.ml/vocabularies/document#root":true,"http://a.ml/vocabularies/document#processingData":{"@id":"amf://id#1"}}]} \ No newline at end of file diff --git a/demo/async30.json b/demo/async30.json new file mode 100644 index 0000000..843798d --- /dev/null +++ b/demo/async30.json @@ -0,0 +1,769 @@ +{ +"@graph": [ +{ +"@id": "amf://id#1", +"@type": [ +"http://a.ml/vocabularies/document#APIContractProcessingData" +], +"http://a.ml/vocabularies/apiContract#modelVersion": "3.11.0", +"http://a.ml/vocabularies/document#transformed": true, +"http://a.ml/vocabularies/document#sourceSpec": "ASYNC 3.0" +}, +{ +"@id": "amf://id#2", +"@type": [ +"http://a.ml/vocabularies/apiContract#AsyncAPI", +"http://a.ml/vocabularies/apiContract#API", +"http://a.ml/vocabularies/document#RootDomainElement", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#topLevelOperations": [ +{ +"@id": "amf://id#12" +} +], +"http://a.ml/vocabularies/core#name": "AsyncAPI 3.0 Test", +"http://a.ml/vocabularies/core#version": "1.0.0", +"http://a.ml/vocabularies/apiContract#endpoint": [ +{ +"@id": "amf://id#3" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#2/source-map" +} +] +}, +{ +"@id": "amf://id#12", +"@type": [ +"http://a.ml/vocabularies/apiContract#Operation", +"http://a.ml/vocabularies/core#Operation", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "sendUserSignedUp", +"http://a.ml/vocabularies/apiContract#operationId": "sendUserSignedUp", +"http://a.ml/vocabularies/apiContract#action": "send", +"http://a.ml/vocabularies/apiContract#channel": { +"@id": "amf://id#13" +}, +"http://a.ml/vocabularies/apiContract#operationMessages": [ +{ +"@id": "amf://id#4" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#12/source-map" +} +] +}, +{ +"@id": "amf://id#3", +"@type": [ +"http://a.ml/vocabularies/apiContract#EndPoint", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#path": "user.signedup", +"http://a.ml/vocabularies/core#name": "userSignedUp", +"http://a.ml/vocabularies/core#description": "Channel for user signup events", +"http://a.ml/vocabularies/apiContract#supportedOperation": [ +{ +"@id": "amf://id#12" +} +], +"http://a.ml/vocabularies/apiContract#server": [], +"http://a.ml/vocabularies/apiContract#channelMessages": [ +{ +"@id": "amf://id#4" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#3/source-map" +} +] +}, +{ +"@id": "amf://id#2/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#2/source-map/lexical/element_4" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_3" +} +] +}, +{ +"@id": "amf://id#13", +"@type": [ +"http://a.ml/vocabularies/apiContract#EndPoint", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#path": "user.signedup", +"http://a.ml/vocabularies/core#name": "userSignedUp", +"http://a.ml/vocabularies/core#description": "Channel for user signup events", +"http://a.ml/vocabularies/apiContract#server": [], +"http://a.ml/vocabularies/apiContract#channelMessages": [ +{ +"@id": "amf://id#4" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#13/source-map" +} +] +}, +{ +"@id": "amf://id#4", +"@type": [ +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "userSignedUpMessage", +"http://a.ml/vocabularies/apiContract#payload": [ +{ +"@id": "amf://id#5" +} +], +"http://a.ml/vocabularies/core#displayName": "userSignedUpMessage", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#4/source-map" +} +] +}, +{ +"@id": "amf://id#12/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#12/source-map/lexical/element_5" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_3" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_4" +} +], +"http://a.ml/vocabularies/document-source-maps#async3-flattened-operation": [ +{ +"@id": "amf://id#12/source-map/async3-flattened-operation/element_0" +} +] +}, +{ +"@id": "amf://id#3/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#3/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#3/source-map/lexical/element_4" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_3" +} +] +}, +{ +"@id": "amf://id#2/source-map/lexical/element_4", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#version", +"http://a.ml/vocabularies/document-source-maps#value": "[(5,2)-(7,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#2", +"http://a.ml/vocabularies/document-source-maps#value": "[(2,0)-(30,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#endpoint", +"http://a.ml/vocabularies/document-source-maps#value": "[(7,0)-(23,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(4,2)-(5,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#topLevelOperations", +"http://a.ml/vocabularies/document-source-maps#value": "[(23,0)-(30,0)]" +}, +{ +"@id": "amf://id#13/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#13/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#resolved-link": [ +{ +"@id": "amf://id#13/source-map/resolved-link/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#resolved-link-target": [ +{ +"@id": "amf://id#13/source-map/resolved-link-target/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#13/source-map/lexical/element_3" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_2" +} +] +}, +{ +"@id": "amf://id#5", +"@type": [ +"http://a.ml/vocabularies/apiContract#Payload", +"http://a.ml/vocabularies/core#Payload", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#mediaType": "application/json", +"http://a.ml/vocabularies/shapes#schema": { +"@id": "amf://id#6" +}, +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#5/source-map" +} +] +}, +{ +"@id": "amf://id#4/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#virtual-element": [ +{ +"@id": "amf://id#4/source-map/virtual-element/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#resolved-link": [ +{ +"@id": "amf://id#4/source-map/resolved-link/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#resolved-link-target": [ +{ +"@id": "amf://id#4/source-map/resolved-link-target/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#4/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#12/source-map/lexical/element_5", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#channel", +"http://a.ml/vocabularies/document-source-maps#value": "[(26,4)-(28,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#12", +"http://a.ml/vocabularies/document-source-maps#value": "[(24,2)-(30,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#action", +"http://a.ml/vocabularies/document-source-maps#value": "[(25,4)-(26,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#operationMessages", +"http://a.ml/vocabularies/document-source-maps#value": "[(28,4)-(30,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(24,2)-(24,18)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_4", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#operationId", +"http://a.ml/vocabularies/document-source-maps#value": "[(24,2)-(24,18)]" +}, +{ +"@id": "amf://id#12/source-map/async3-flattened-operation/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#12", +"http://a.ml/vocabularies/document-source-maps#value": "" +}, +{ +"@id": "amf://id#3/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#server", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_4", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#description", +"http://a.ml/vocabularies/document-source-maps#value": "[(10,4)-(11,0)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#3", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(23,0)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#channelMessages", +"http://a.ml/vocabularies/document-source-maps#value": "[(11,4)-(23,0)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(8,14)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#path", +"http://a.ml/vocabularies/document-source-maps#value": "[(9,4)-(10,0)]" +}, +{ +"@id": "amf://id#13/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#server", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#13/source-map/resolved-link/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#13", +"http://a.ml/vocabularies/document-source-maps#value": "amf://id#13" +}, +{ +"@id": "amf://id#13/source-map/resolved-link-target/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#13", +"http://a.ml/vocabularies/document-source-maps#value": "amf://id#3" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#description", +"http://a.ml/vocabularies/document-source-maps#value": "[(10,4)-(11,0)]" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(8,14)]" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#channelMessages", +"http://a.ml/vocabularies/document-source-maps#value": "[(11,4)-(23,0)]" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#13", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(23,0)]" +}, +{ +"@id": "amf://id#6", +"@type": [ +"http://www.w3.org/ns/shacl#NodeShape", +"http://a.ml/vocabularies/shapes#AnyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#closed": false, +"http://www.w3.org/ns/shacl#property": [ +{ +"@id": "amf://id#7" +}, +{ +"@id": "amf://id#9" +} +], +"http://www.w3.org/ns/shacl#name": "schema", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#6/source-map" +} +] +}, +{ +"@id": "amf://id#5/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#5/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#4/source-map/virtual-element/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#payload", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#4/source-map/resolved-link/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#4", +"http://a.ml/vocabularies/document-source-maps#value": "amf://id#11" +}, +{ +"@id": "amf://id#4/source-map/resolved-link-target/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#4", +"http://a.ml/vocabularies/document-source-maps#value": "amf://id#4" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(12,6)-(12,25)]" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#displayName", +"http://a.ml/vocabularies/document-source-maps#value": "[(13,8)-(14,0)]" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#4", +"http://a.ml/vocabularies/document-source-maps#value": "[(12,6)-(23,0)]" +}, +{ +"@id": "amf://id#7", +"@type": [ +"http://www.w3.org/ns/shacl#PropertyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#path": [ +{ +"@id": "http://a.ml/vocabularies/data#userId" +} +], +"http://a.ml/vocabularies/shapes#range": { +"@id": "amf://id#8" +}, +"http://www.w3.org/ns/shacl#minCount": 0, +"http://www.w3.org/ns/shacl#name": "userId", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#7/source-map" +} +] +}, +{ +"@id": "amf://id#9", +"@type": [ +"http://www.w3.org/ns/shacl#PropertyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#path": [ +{ +"@id": "http://a.ml/vocabularies/data#email" +} +], +"http://a.ml/vocabularies/shapes#range": { +"@id": "amf://id#10" +}, +"http://www.w3.org/ns/shacl#minCount": 0, +"http://www.w3.org/ns/shacl#name": "email", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#9/source-map" +} +] +}, +{ +"@id": "amf://id#6/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#6/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#type-property-lexical-info": [ +{ +"@id": "amf://id#6/source-map/type-property-lexical-info/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#6/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#5/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#mediaType", +"http://a.ml/vocabularies/document-source-maps#value": "[(14,8)-(15,0)]" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/shapes#schema", +"http://a.ml/vocabularies/document-source-maps#value": "[(15,8)-(23,0)]" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#5", +"http://a.ml/vocabularies/document-source-maps#value": "[(13,0)-(23,0)]" +}, +{ +"@id": "amf://id#8", +"@type": [ +"http://a.ml/vocabularies/shapes#ScalarShape", +"http://a.ml/vocabularies/shapes#AnyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#datatype": [ +{ +"@id": "http://www.w3.org/2001/XMLSchema#string" +} +], +"http://www.w3.org/ns/shacl#name": "userId", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#8/source-map" +} +] +}, +{ +"@id": "amf://id#7/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#7/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#7/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#10", +"@type": [ +"http://a.ml/vocabularies/shapes#ScalarShape", +"http://a.ml/vocabularies/shapes#AnyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#datatype": [ +{ +"@id": "http://www.w3.org/2001/XMLSchema#string" +} +], +"http://www.w3.org/ns/shacl#name": "email", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#10/source-map" +} +] +}, +{ +"@id": "amf://id#9/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#9/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#9/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#6/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#closed", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#6/source-map/type-property-lexical-info/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#6", +"http://a.ml/vocabularies/document-source-maps#value": "[(16,10)-(16,14)]" +}, +{ +"@id": "amf://id#6/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#6", +"http://a.ml/vocabularies/document-source-maps#value": "[(15,8)-(23,0)]" +}, +{ +"@id": "amf://id#8/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#8/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#type-property-lexical-info": [ +{ +"@id": "amf://id#8/source-map/type-property-lexical-info/element_0" +} +] +}, +{ +"@id": "amf://id#7/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#minCount", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#7", +"http://a.ml/vocabularies/document-source-maps#value": "[(18,12)-(20,0)]" +}, +{ +"@id": "amf://id#10/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#10/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#10/source-map/lexical/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#type-property-lexical-info": [ +{ +"@id": "amf://id#10/source-map/type-property-lexical-info/element_0" +} +] +}, +{ +"@id": "amf://id#9/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#minCount", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#9", +"http://a.ml/vocabularies/document-source-maps#value": "[(20,12)-(23,0)]" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#8", +"http://a.ml/vocabularies/document-source-maps#value": "[(18,12)-(20,0)]" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#datatype", +"http://a.ml/vocabularies/document-source-maps#value": "[(19,14)-(20,0)]" +}, +{ +"@id": "amf://id#8/source-map/type-property-lexical-info/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#8", +"http://a.ml/vocabularies/document-source-maps#value": "[(19,14)-(19,18)]" +}, +{ +"@id": "amf://id#10/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#10", +"http://a.ml/vocabularies/document-source-maps#value": "[(20,12)-(23,0)]" +}, +{ +"@id": "amf://id#10/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#datatype", +"http://a.ml/vocabularies/document-source-maps#value": "[(21,14)-(23,0)]" +}, +{ +"@id": "amf://id#10/source-map/type-property-lexical-info/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#10", +"http://a.ml/vocabularies/document-source-maps#value": "[(21,14)-(21,18)]" +}, +{ +"@id": "amf://id", +"@type": [ +"http://a.ml/vocabularies/document#Document", +"http://a.ml/vocabularies/document#Fragment", +"http://a.ml/vocabularies/document#Module", +"http://a.ml/vocabularies/document#Unit" +], +"http://a.ml/vocabularies/document#encodes": { +"@id": "amf://id#2" +}, +"http://a.ml/vocabularies/document#root": true, +"http://a.ml/vocabularies/document#processingData": { +"@id": "amf://id#1" +} +} +] +} diff --git a/demo/async31-compact.json b/demo/async31-compact.json new file mode 100644 index 0000000..87f2605 --- /dev/null +++ b/demo/async31-compact.json @@ -0,0 +1 @@ +{"@graph":[{"@id":"amf://id#1","@type":["http://a.ml/vocabularies/document#APIContractProcessingData"],"http://a.ml/vocabularies/apiContract#modelVersion":"3.11.0","http://a.ml/vocabularies/document#transformed":true,"http://a.ml/vocabularies/document#sourceSpec":"ASYNC 3.1"},{"@id":"amf://id#2","@type":["http://a.ml/vocabularies/apiContract#AsyncAPI","http://a.ml/vocabularies/apiContract#API","http://a.ml/vocabularies/document#RootDomainElement","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#topLevelOperations":[{"@id":"amf://id#12"}],"http://a.ml/vocabularies/core#name":"AsyncAPI 3.1 Test","http://a.ml/vocabularies/core#version":"1.0.0","http://a.ml/vocabularies/apiContract#endpoint":[{"@id":"amf://id#3"}]},{"@id":"amf://id#12","@type":["http://a.ml/vocabularies/apiContract#Operation","http://a.ml/vocabularies/core#Operation","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"publishDiagnostics","http://a.ml/vocabularies/apiContract#operationId":"publishDiagnostics","http://a.ml/vocabularies/apiContract#action":"send","http://a.ml/vocabularies/apiContract#channel":{"@id":"amf://id#13"},"http://a.ml/vocabularies/apiContract#operationMessages":[{"@id":"amf://id#4"}]},{"@id":"amf://id#3","@type":["http://a.ml/vocabularies/apiContract#EndPoint","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#path":"/robot/diagnostics","http://a.ml/vocabularies/core#name":"diagnostics","http://a.ml/vocabularies/apiContract#supportedOperation":[{"@id":"amf://id#12"}],"http://a.ml/vocabularies/apiContract#server":[],"http://a.ml/vocabularies/apiContract#channelMessages":[{"@id":"amf://id#4"}]},{"@id":"amf://id#13","@type":["http://a.ml/vocabularies/apiContract#EndPoint","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#path":"/robot/diagnostics","http://a.ml/vocabularies/core#name":"diagnostics","http://a.ml/vocabularies/apiContract#server":[],"http://a.ml/vocabularies/apiContract#channelMessages":[{"@id":"amf://id#4"}]},{"@id":"amf://id#4","@type":["http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"diagnosticMessage","http://a.ml/vocabularies/apiContract#payload":[{"@id":"amf://id#5"}],"http://a.ml/vocabularies/core#displayName":"diagnosticMessage"},{"@id":"amf://id#5","@type":["http://a.ml/vocabularies/apiContract#Payload","http://a.ml/vocabularies/core#Payload","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#mediaType":"application/json","http://a.ml/vocabularies/shapes#schema":{"@id":"amf://id#6"}},{"@id":"amf://id#6","@type":["http://www.w3.org/ns/shacl#NodeShape","http://a.ml/vocabularies/shapes#AnyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#closed":false,"http://www.w3.org/ns/shacl#property":[{"@id":"amf://id#7"},{"@id":"amf://id#9"}],"http://www.w3.org/ns/shacl#name":"schema"},{"@id":"amf://id#7","@type":["http://www.w3.org/ns/shacl#PropertyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#path":[{"@id":"http://a.ml/vocabularies/data#status"}],"http://a.ml/vocabularies/shapes#range":{"@id":"amf://id#8"},"http://www.w3.org/ns/shacl#minCount":0,"http://www.w3.org/ns/shacl#name":"status"},{"@id":"amf://id#9","@type":["http://www.w3.org/ns/shacl#PropertyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#path":[{"@id":"http://a.ml/vocabularies/data#timestamp"}],"http://a.ml/vocabularies/shapes#range":{"@id":"amf://id#10"},"http://www.w3.org/ns/shacl#minCount":0,"http://www.w3.org/ns/shacl#name":"timestamp"},{"@id":"amf://id#8","@type":["http://a.ml/vocabularies/shapes#ScalarShape","http://a.ml/vocabularies/shapes#AnyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#datatype":[{"@id":"http://www.w3.org/2001/XMLSchema#string"}],"http://www.w3.org/ns/shacl#name":"status"},{"@id":"amf://id#10","@type":["http://a.ml/vocabularies/shapes#ScalarShape","http://a.ml/vocabularies/shapes#AnyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#datatype":[{"@id":"http://a.ml/vocabularies/shapes#number"}],"http://www.w3.org/ns/shacl#name":"timestamp"},{"@id":"amf://id","@type":["http://a.ml/vocabularies/document#Document","http://a.ml/vocabularies/document#Fragment","http://a.ml/vocabularies/document#Module","http://a.ml/vocabularies/document#Unit"],"http://a.ml/vocabularies/document#encodes":{"@id":"amf://id#2"},"http://a.ml/vocabularies/document#root":true,"http://a.ml/vocabularies/document#processingData":{"@id":"amf://id#1"}}]} \ No newline at end of file diff --git a/demo/async31.json b/demo/async31.json new file mode 100644 index 0000000..adaf303 --- /dev/null +++ b/demo/async31.json @@ -0,0 +1,751 @@ +{ +"@graph": [ +{ +"@id": "amf://id#1", +"@type": [ +"http://a.ml/vocabularies/document#APIContractProcessingData" +], +"http://a.ml/vocabularies/apiContract#modelVersion": "3.11.0", +"http://a.ml/vocabularies/document#transformed": true, +"http://a.ml/vocabularies/document#sourceSpec": "ASYNC 3.1" +}, +{ +"@id": "amf://id#2", +"@type": [ +"http://a.ml/vocabularies/apiContract#AsyncAPI", +"http://a.ml/vocabularies/apiContract#API", +"http://a.ml/vocabularies/document#RootDomainElement", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#topLevelOperations": [ +{ +"@id": "amf://id#12" +} +], +"http://a.ml/vocabularies/core#name": "AsyncAPI 3.1 Test", +"http://a.ml/vocabularies/core#version": "1.0.0", +"http://a.ml/vocabularies/apiContract#endpoint": [ +{ +"@id": "amf://id#3" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#2/source-map" +} +] +}, +{ +"@id": "amf://id#12", +"@type": [ +"http://a.ml/vocabularies/apiContract#Operation", +"http://a.ml/vocabularies/core#Operation", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "publishDiagnostics", +"http://a.ml/vocabularies/apiContract#operationId": "publishDiagnostics", +"http://a.ml/vocabularies/apiContract#action": "send", +"http://a.ml/vocabularies/apiContract#channel": { +"@id": "amf://id#13" +}, +"http://a.ml/vocabularies/apiContract#operationMessages": [ +{ +"@id": "amf://id#4" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#12/source-map" +} +] +}, +{ +"@id": "amf://id#3", +"@type": [ +"http://a.ml/vocabularies/apiContract#EndPoint", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#path": "/robot/diagnostics", +"http://a.ml/vocabularies/core#name": "diagnostics", +"http://a.ml/vocabularies/apiContract#supportedOperation": [ +{ +"@id": "amf://id#12" +} +], +"http://a.ml/vocabularies/apiContract#server": [], +"http://a.ml/vocabularies/apiContract#channelMessages": [ +{ +"@id": "amf://id#4" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#3/source-map" +} +] +}, +{ +"@id": "amf://id#2/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#2/source-map/lexical/element_4" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_3" +} +] +}, +{ +"@id": "amf://id#13", +"@type": [ +"http://a.ml/vocabularies/apiContract#EndPoint", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#path": "/robot/diagnostics", +"http://a.ml/vocabularies/core#name": "diagnostics", +"http://a.ml/vocabularies/apiContract#server": [], +"http://a.ml/vocabularies/apiContract#channelMessages": [ +{ +"@id": "amf://id#4" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#13/source-map" +} +] +}, +{ +"@id": "amf://id#4", +"@type": [ +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "diagnosticMessage", +"http://a.ml/vocabularies/apiContract#payload": [ +{ +"@id": "amf://id#5" +} +], +"http://a.ml/vocabularies/core#displayName": "diagnosticMessage", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#4/source-map" +} +] +}, +{ +"@id": "amf://id#12/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#12/source-map/lexical/element_5" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_3" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_4" +} +], +"http://a.ml/vocabularies/document-source-maps#async3-flattened-operation": [ +{ +"@id": "amf://id#12/source-map/async3-flattened-operation/element_0" +} +] +}, +{ +"@id": "amf://id#3/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#3/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#3/source-map/lexical/element_3" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_2" +} +] +}, +{ +"@id": "amf://id#2/source-map/lexical/element_4", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#version", +"http://a.ml/vocabularies/document-source-maps#value": "[(5,2)-(7,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#2", +"http://a.ml/vocabularies/document-source-maps#value": "[(2,0)-(29,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#endpoint", +"http://a.ml/vocabularies/document-source-maps#value": "[(7,0)-(22,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(4,2)-(5,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#topLevelOperations", +"http://a.ml/vocabularies/document-source-maps#value": "[(22,0)-(29,0)]" +}, +{ +"@id": "amf://id#13/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#13/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#resolved-link": [ +{ +"@id": "amf://id#13/source-map/resolved-link/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#resolved-link-target": [ +{ +"@id": "amf://id#13/source-map/resolved-link-target/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#13/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#5", +"@type": [ +"http://a.ml/vocabularies/apiContract#Payload", +"http://a.ml/vocabularies/core#Payload", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#mediaType": "application/json", +"http://a.ml/vocabularies/shapes#schema": { +"@id": "amf://id#6" +}, +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#5/source-map" +} +] +}, +{ +"@id": "amf://id#4/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#virtual-element": [ +{ +"@id": "amf://id#4/source-map/virtual-element/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#resolved-link": [ +{ +"@id": "amf://id#4/source-map/resolved-link/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#resolved-link-target": [ +{ +"@id": "amf://id#4/source-map/resolved-link-target/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#4/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#12/source-map/lexical/element_5", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#channel", +"http://a.ml/vocabularies/document-source-maps#value": "[(25,4)-(27,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#12", +"http://a.ml/vocabularies/document-source-maps#value": "[(23,2)-(29,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#action", +"http://a.ml/vocabularies/document-source-maps#value": "[(24,4)-(25,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#operationMessages", +"http://a.ml/vocabularies/document-source-maps#value": "[(27,4)-(29,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(23,2)-(23,20)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_4", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#operationId", +"http://a.ml/vocabularies/document-source-maps#value": "[(23,2)-(23,20)]" +}, +{ +"@id": "amf://id#12/source-map/async3-flattened-operation/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#12", +"http://a.ml/vocabularies/document-source-maps#value": "" +}, +{ +"@id": "amf://id#3/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#server", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(8,13)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#path", +"http://a.ml/vocabularies/document-source-maps#value": "[(9,4)-(10,0)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#channelMessages", +"http://a.ml/vocabularies/document-source-maps#value": "[(10,4)-(22,0)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#3", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(22,0)]" +}, +{ +"@id": "amf://id#13/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#server", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#13/source-map/resolved-link/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#13", +"http://a.ml/vocabularies/document-source-maps#value": "amf://id#13" +}, +{ +"@id": "amf://id#13/source-map/resolved-link-target/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#13", +"http://a.ml/vocabularies/document-source-maps#value": "amf://id#3" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(8,13)]" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#channelMessages", +"http://a.ml/vocabularies/document-source-maps#value": "[(10,4)-(22,0)]" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#13", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(22,0)]" +}, +{ +"@id": "amf://id#6", +"@type": [ +"http://www.w3.org/ns/shacl#NodeShape", +"http://a.ml/vocabularies/shapes#AnyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#closed": false, +"http://www.w3.org/ns/shacl#property": [ +{ +"@id": "amf://id#7" +}, +{ +"@id": "amf://id#9" +} +], +"http://www.w3.org/ns/shacl#name": "schema", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#6/source-map" +} +] +}, +{ +"@id": "amf://id#5/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#5/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#4/source-map/virtual-element/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#payload", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#4/source-map/resolved-link/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#4", +"http://a.ml/vocabularies/document-source-maps#value": "amf://id#11" +}, +{ +"@id": "amf://id#4/source-map/resolved-link-target/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#4", +"http://a.ml/vocabularies/document-source-maps#value": "amf://id#4" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(11,6)-(11,23)]" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#displayName", +"http://a.ml/vocabularies/document-source-maps#value": "[(12,8)-(13,0)]" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#4", +"http://a.ml/vocabularies/document-source-maps#value": "[(11,6)-(22,0)]" +}, +{ +"@id": "amf://id#7", +"@type": [ +"http://www.w3.org/ns/shacl#PropertyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#path": [ +{ +"@id": "http://a.ml/vocabularies/data#status" +} +], +"http://a.ml/vocabularies/shapes#range": { +"@id": "amf://id#8" +}, +"http://www.w3.org/ns/shacl#minCount": 0, +"http://www.w3.org/ns/shacl#name": "status", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#7/source-map" +} +] +}, +{ +"@id": "amf://id#9", +"@type": [ +"http://www.w3.org/ns/shacl#PropertyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#path": [ +{ +"@id": "http://a.ml/vocabularies/data#timestamp" +} +], +"http://a.ml/vocabularies/shapes#range": { +"@id": "amf://id#10" +}, +"http://www.w3.org/ns/shacl#minCount": 0, +"http://www.w3.org/ns/shacl#name": "timestamp", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#9/source-map" +} +] +}, +{ +"@id": "amf://id#6/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#6/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#type-property-lexical-info": [ +{ +"@id": "amf://id#6/source-map/type-property-lexical-info/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#6/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#5/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#mediaType", +"http://a.ml/vocabularies/document-source-maps#value": "[(13,8)-(14,0)]" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/shapes#schema", +"http://a.ml/vocabularies/document-source-maps#value": "[(14,8)-(22,0)]" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#5", +"http://a.ml/vocabularies/document-source-maps#value": "[(12,0)-(22,0)]" +}, +{ +"@id": "amf://id#8", +"@type": [ +"http://a.ml/vocabularies/shapes#ScalarShape", +"http://a.ml/vocabularies/shapes#AnyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#datatype": [ +{ +"@id": "http://www.w3.org/2001/XMLSchema#string" +} +], +"http://www.w3.org/ns/shacl#name": "status", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#8/source-map" +} +] +}, +{ +"@id": "amf://id#7/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#7/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#7/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#10", +"@type": [ +"http://a.ml/vocabularies/shapes#ScalarShape", +"http://a.ml/vocabularies/shapes#AnyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#datatype": [ +{ +"@id": "http://a.ml/vocabularies/shapes#number" +} +], +"http://www.w3.org/ns/shacl#name": "timestamp", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#10/source-map" +} +] +}, +{ +"@id": "amf://id#9/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#9/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#9/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#6/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#closed", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#6/source-map/type-property-lexical-info/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#6", +"http://a.ml/vocabularies/document-source-maps#value": "[(15,10)-(15,14)]" +}, +{ +"@id": "amf://id#6/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#6", +"http://a.ml/vocabularies/document-source-maps#value": "[(14,8)-(22,0)]" +}, +{ +"@id": "amf://id#8/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#8/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#type-property-lexical-info": [ +{ +"@id": "amf://id#8/source-map/type-property-lexical-info/element_0" +} +] +}, +{ +"@id": "amf://id#7/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#minCount", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#7", +"http://a.ml/vocabularies/document-source-maps#value": "[(17,12)-(19,0)]" +}, +{ +"@id": "amf://id#10/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#10/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#10/source-map/lexical/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#type-property-lexical-info": [ +{ +"@id": "amf://id#10/source-map/type-property-lexical-info/element_0" +} +] +}, +{ +"@id": "amf://id#9/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#minCount", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#9", +"http://a.ml/vocabularies/document-source-maps#value": "[(19,12)-(22,0)]" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#8", +"http://a.ml/vocabularies/document-source-maps#value": "[(17,12)-(19,0)]" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#datatype", +"http://a.ml/vocabularies/document-source-maps#value": "[(18,14)-(19,0)]" +}, +{ +"@id": "amf://id#8/source-map/type-property-lexical-info/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#8", +"http://a.ml/vocabularies/document-source-maps#value": "[(18,14)-(18,18)]" +}, +{ +"@id": "amf://id#10/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#10", +"http://a.ml/vocabularies/document-source-maps#value": "[(19,12)-(22,0)]" +}, +{ +"@id": "amf://id#10/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#datatype", +"http://a.ml/vocabularies/document-source-maps#value": "[(20,14)-(22,0)]" +}, +{ +"@id": "amf://id#10/source-map/type-property-lexical-info/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#10", +"http://a.ml/vocabularies/document-source-maps#value": "[(20,14)-(20,18)]" +}, +{ +"@id": "amf://id", +"@type": [ +"http://a.ml/vocabularies/document#Document", +"http://a.ml/vocabularies/document#Fragment", +"http://a.ml/vocabularies/document#Module", +"http://a.ml/vocabularies/document#Unit" +], +"http://a.ml/vocabularies/document#encodes": { +"@id": "amf://id#2" +}, +"http://a.ml/vocabularies/document#root": true, +"http://a.ml/vocabularies/document#processingData": { +"@id": "amf://id#1" +} +} +] +} diff --git a/demo/oas32-compact.json b/demo/oas32-compact.json new file mode 100644 index 0000000..a30437a --- /dev/null +++ b/demo/oas32-compact.json @@ -0,0 +1 @@ +{"@graph":[{"@id":"amf://id#6","@type":["http://a.ml/vocabularies/document#APIContractProcessingData"],"http://a.ml/vocabularies/apiContract#modelVersion":"3.11.0","http://a.ml/vocabularies/document#transformed":true,"http://a.ml/vocabularies/document#sourceSpec":"OAS 3.2"},{"@id":"amf://id#7","@type":["http://a.ml/vocabularies/apiContract#WebAPI","http://a.ml/vocabularies/apiContract#API","http://a.ml/vocabularies/document#RootDomainElement","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"OAS 3.2 Test API","http://a.ml/vocabularies/core#version":"1.0.0","http://a.ml/vocabularies/apiContract#endpoint":[{"@id":"amf://id#10"},{"@id":"amf://id#14"}],"http://a.ml/vocabularies/apiContract#tag":[{"@id":"amf://id#8"},{"@id":"amf://id#9"}]},{"@id":"amf://id#10","@type":["http://a.ml/vocabularies/apiContract#EndPoint","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#path":"/auth","http://a.ml/vocabularies/apiContract#supportedOperation":[{"@id":"amf://id#11"}]},{"@id":"amf://id#14","@type":["http://a.ml/vocabularies/apiContract#EndPoint","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#path":"/resources/{id}","http://a.ml/vocabularies/apiContract#supportedOperation":[{"@id":"amf://id#15"},{"@id":"amf://id#20"},{"@id":"amf://id#23"},{"@id":"amf://id#26"}]},{"@id":"amf://id#8","@type":["http://a.ml/vocabularies/apiContract#Tag","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"data","http://a.ml/vocabularies/core#summary":"Data operations"},{"@id":"amf://id#9","@type":["http://a.ml/vocabularies/apiContract#Tag","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"authentication","http://a.ml/vocabularies/core#summary":"All authentication-related operations","http://a.ml/vocabularies/apiContract#parentTag":"data"},{"@id":"amf://id#11","@type":["http://a.ml/vocabularies/apiContract#Operation","http://a.ml/vocabularies/core#Operation","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#method":"get","http://a.ml/vocabularies/apiContract#guiSummary":"Get authenticated data","http://a.ml/vocabularies/apiContract#returns":[{"@id":"amf://id#13"}],"http://a.ml/vocabularies/apiContract#tag":[{"@id":"amf://id#12"}],"http://a.ml/vocabularies/apiContract#operationKind":"standard"},{"@id":"amf://id#15","@type":["http://a.ml/vocabularies/apiContract#Operation","http://a.ml/vocabularies/core#Operation","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#method":"get","http://a.ml/vocabularies/apiContract#guiSummary":"Get a resource","http://a.ml/vocabularies/apiContract#expects":[{"@id":"amf://id#17"}],"http://a.ml/vocabularies/apiContract#returns":[{"@id":"amf://id#16"}],"http://a.ml/vocabularies/apiContract#operationKind":"standard"},{"@id":"amf://id#20","@type":["http://a.ml/vocabularies/apiContract#Operation","http://a.ml/vocabularies/core#Operation","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#method":"QUERY","http://a.ml/vocabularies/apiContract#guiSummary":"Search resources","http://a.ml/vocabularies/apiContract#expects":[{"@id":"amf://id#22"}],"http://a.ml/vocabularies/apiContract#returns":[{"@id":"amf://id#21"}],"http://a.ml/vocabularies/apiContract#operationKind":"query"},{"@id":"amf://id#23","@type":["http://a.ml/vocabularies/apiContract#Operation","http://a.ml/vocabularies/core#Operation","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#method":"COPY","http://a.ml/vocabularies/apiContract#guiSummary":"Copy the resource","http://a.ml/vocabularies/apiContract#expects":[{"@id":"amf://id#25"}],"http://a.ml/vocabularies/apiContract#returns":[{"@id":"amf://id#24"}],"http://a.ml/vocabularies/apiContract#operationKind":"additionalOperation"},{"@id":"amf://id#26","@type":["http://a.ml/vocabularies/apiContract#Operation","http://a.ml/vocabularies/core#Operation","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#method":"MOVE","http://a.ml/vocabularies/apiContract#guiSummary":"Move the resource","http://a.ml/vocabularies/apiContract#expects":[{"@id":"amf://id#28"}],"http://a.ml/vocabularies/apiContract#returns":[{"@id":"amf://id#27"}],"http://a.ml/vocabularies/apiContract#operationKind":"additionalOperation"},{"@id":"amf://id#13","@type":["http://a.ml/vocabularies/apiContract#Response","http://a.ml/vocabularies/core#Response","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#statusCode":"200","http://a.ml/vocabularies/core#name":"200","http://a.ml/vocabularies/core#description":"Success"},{"@id":"amf://id#12","@type":["http://a.ml/vocabularies/apiContract#Tag","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"authentication"},{"@id":"amf://id#17","@type":["http://a.ml/vocabularies/apiContract#Request","http://a.ml/vocabularies/core#Request","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#uriParameter":[{"@id":"amf://id#18"}]},{"@id":"amf://id#16","@type":["http://a.ml/vocabularies/apiContract#Response","http://a.ml/vocabularies/core#Response","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#statusCode":"200","http://a.ml/vocabularies/core#name":"200","http://a.ml/vocabularies/core#description":"OK"},{"@id":"amf://id#22","@type":["http://a.ml/vocabularies/apiContract#Request","http://a.ml/vocabularies/core#Request","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#uriParameter":[{"@id":"amf://id#18"}]},{"@id":"amf://id#21","@type":["http://a.ml/vocabularies/apiContract#Response","http://a.ml/vocabularies/core#Response","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#statusCode":"200","http://a.ml/vocabularies/core#name":"200","http://a.ml/vocabularies/core#description":"Results"},{"@id":"amf://id#25","@type":["http://a.ml/vocabularies/apiContract#Request","http://a.ml/vocabularies/core#Request","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#uriParameter":[{"@id":"amf://id#18"}]},{"@id":"amf://id#24","@type":["http://a.ml/vocabularies/apiContract#Response","http://a.ml/vocabularies/core#Response","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#statusCode":"200","http://a.ml/vocabularies/core#name":"200","http://a.ml/vocabularies/core#description":"Copied"},{"@id":"amf://id#28","@type":["http://a.ml/vocabularies/apiContract#Request","http://a.ml/vocabularies/core#Request","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#uriParameter":[{"@id":"amf://id#18"}]},{"@id":"amf://id#27","@type":["http://a.ml/vocabularies/apiContract#Response","http://a.ml/vocabularies/core#Response","http://a.ml/vocabularies/apiContract#Message","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/apiContract#statusCode":"200","http://a.ml/vocabularies/core#name":"200","http://a.ml/vocabularies/core#description":"Moved"},{"@id":"amf://id#18","@type":["http://a.ml/vocabularies/apiContract#Parameter","http://a.ml/vocabularies/core#Parameter","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"id","http://a.ml/vocabularies/apiContract#paramName":"id","http://a.ml/vocabularies/apiContract#required":true,"http://a.ml/vocabularies/apiContract#style":"simple","http://a.ml/vocabularies/apiContract#explode":false,"http://a.ml/vocabularies/apiContract#binding":"path","http://a.ml/vocabularies/shapes#schema":{"@id":"amf://id#19"}},{"@id":"amf://id#19","@type":["http://a.ml/vocabularies/shapes#ScalarShape","http://a.ml/vocabularies/shapes#AnyShape","http://www.w3.org/ns/shacl#Shape","http://a.ml/vocabularies/shapes#Shape","http://a.ml/vocabularies/document#DomainElement"],"http://www.w3.org/ns/shacl#datatype":[{"@id":"http://www.w3.org/2001/XMLSchema#string"}],"http://www.w3.org/ns/shacl#name":"id","http://a.ml/vocabularies/shapes#schemaVersion":"https://json-schema.org/draft/2020-12/schema"},{"@id":"amf://id","http://a.ml/vocabularies/document#declares":[{"@id":"amf://id#1"}],"@type":["http://a.ml/vocabularies/document#Document","http://a.ml/vocabularies/document#Fragment","http://a.ml/vocabularies/document#Module","http://a.ml/vocabularies/document#Unit"],"http://a.ml/vocabularies/document#encodes":{"@id":"amf://id#7"},"http://a.ml/vocabularies/document#root":true,"http://a.ml/vocabularies/document#processingData":{"@id":"amf://id#6"}},{"@id":"amf://id#1","@type":["http://a.ml/vocabularies/security#SecurityScheme","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"oauth2Device","http://a.ml/vocabularies/security#type":"OAuth 2.0","http://a.ml/vocabularies/security#settings":{"@id":"amf://id#2"}},{"@id":"amf://id#2","@type":["http://a.ml/vocabularies/security#OAuth2Settings","http://a.ml/vocabularies/security#Settings","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/security#flows":[{"@id":"amf://id#3"}]},{"@id":"amf://id#3","@type":["http://a.ml/vocabularies/security#OAuth2Flow","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/security#accessTokenUri":"https://example.com/oauth/token","http://a.ml/vocabularies/security#flow":"deviceAuthorization","http://a.ml/vocabularies/security#scope":[{"@id":"amf://id#4"},{"@id":"amf://id#5"}],"http://a.ml/vocabularies/security#deviceAuthorizationUri":"https://example.com/oauth/device/authorize"},{"@id":"amf://id#4","@type":["http://a.ml/vocabularies/security#Scope","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"read","http://a.ml/vocabularies/core#description":"Read access"},{"@id":"amf://id#5","@type":["http://a.ml/vocabularies/security#Scope","http://a.ml/vocabularies/document#DomainElement"],"http://a.ml/vocabularies/core#name":"write","http://a.ml/vocabularies/core#description":"Write access"}]} \ No newline at end of file diff --git a/demo/oas32.json b/demo/oas32.json new file mode 100644 index 0000000..6bce5a6 --- /dev/null +++ b/demo/oas32.json @@ -0,0 +1,1330 @@ +{ +"@graph": [ +{ +"@id": "amf://id#6", +"@type": [ +"http://a.ml/vocabularies/document#APIContractProcessingData" +], +"http://a.ml/vocabularies/apiContract#modelVersion": "3.11.0", +"http://a.ml/vocabularies/document#transformed": true, +"http://a.ml/vocabularies/document#sourceSpec": "OAS 3.2" +}, +{ +"@id": "amf://id#7", +"@type": [ +"http://a.ml/vocabularies/apiContract#WebAPI", +"http://a.ml/vocabularies/apiContract#API", +"http://a.ml/vocabularies/document#RootDomainElement", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "OAS 3.2 Test API", +"http://a.ml/vocabularies/core#version": "1.0.0", +"http://a.ml/vocabularies/apiContract#endpoint": [ +{ +"@id": "amf://id#10" +}, +{ +"@id": "amf://id#14" +} +], +"http://a.ml/vocabularies/apiContract#tag": [ +{ +"@id": "amf://id#8" +}, +{ +"@id": "amf://id#9" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#7/source-map" +} +] +}, +{ +"@id": "amf://id#10", +"@type": [ +"http://a.ml/vocabularies/apiContract#EndPoint", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#path": "/auth", +"http://a.ml/vocabularies/apiContract#supportedOperation": [ +{ +"@id": "amf://id#11" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#10/source-map" +} +] +}, +{ +"@id": "amf://id#14", +"@type": [ +"http://a.ml/vocabularies/apiContract#EndPoint", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#path": "/resources/{id}", +"http://a.ml/vocabularies/apiContract#supportedOperation": [ +{ +"@id": "amf://id#15" +}, +{ +"@id": "amf://id#20" +}, +{ +"@id": "amf://id#23" +}, +{ +"@id": "amf://id#26" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#14/source-map" +} +] +}, +{ +"@id": "amf://id#8", +"@type": [ +"http://a.ml/vocabularies/apiContract#Tag", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "data", +"http://a.ml/vocabularies/core#summary": "Data operations", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#8/source-map" +} +] +}, +{ +"@id": "amf://id#9", +"@type": [ +"http://a.ml/vocabularies/apiContract#Tag", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "authentication", +"http://a.ml/vocabularies/core#summary": "All authentication-related operations", +"http://a.ml/vocabularies/apiContract#parentTag": "data", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#9/source-map" +} +] +}, +{ +"@id": "amf://id#7/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#7/source-map/lexical/element_4" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_3" +} +] +}, +{ +"@id": "amf://id#11", +"@type": [ +"http://a.ml/vocabularies/apiContract#Operation", +"http://a.ml/vocabularies/core#Operation", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#method": "get", +"http://a.ml/vocabularies/apiContract#guiSummary": "Get authenticated data", +"http://a.ml/vocabularies/apiContract#returns": [ +{ +"@id": "amf://id#13" +} +], +"http://a.ml/vocabularies/apiContract#tag": [ +{ +"@id": "amf://id#12" +} +], +"http://a.ml/vocabularies/apiContract#operationKind": "standard", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#11/source-map" +} +] +}, +{ +"@id": "amf://id#10/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#10/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#15", +"@type": [ +"http://a.ml/vocabularies/apiContract#Operation", +"http://a.ml/vocabularies/core#Operation", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#method": "get", +"http://a.ml/vocabularies/apiContract#guiSummary": "Get a resource", +"http://a.ml/vocabularies/apiContract#expects": [ +{ +"@id": "amf://id#17" +} +], +"http://a.ml/vocabularies/apiContract#returns": [ +{ +"@id": "amf://id#16" +} +], +"http://a.ml/vocabularies/apiContract#operationKind": "standard", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#15/source-map" +} +] +}, +{ +"@id": "amf://id#20", +"@type": [ +"http://a.ml/vocabularies/apiContract#Operation", +"http://a.ml/vocabularies/core#Operation", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#method": "QUERY", +"http://a.ml/vocabularies/apiContract#guiSummary": "Search resources", +"http://a.ml/vocabularies/apiContract#expects": [ +{ +"@id": "amf://id#22" +} +], +"http://a.ml/vocabularies/apiContract#returns": [ +{ +"@id": "amf://id#21" +} +], +"http://a.ml/vocabularies/apiContract#operationKind": "query", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#20/source-map" +} +] +}, +{ +"@id": "amf://id#23", +"@type": [ +"http://a.ml/vocabularies/apiContract#Operation", +"http://a.ml/vocabularies/core#Operation", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#method": "COPY", +"http://a.ml/vocabularies/apiContract#guiSummary": "Copy the resource", +"http://a.ml/vocabularies/apiContract#expects": [ +{ +"@id": "amf://id#25" +} +], +"http://a.ml/vocabularies/apiContract#returns": [ +{ +"@id": "amf://id#24" +} +], +"http://a.ml/vocabularies/apiContract#operationKind": "additionalOperation", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#23/source-map" +} +] +}, +{ +"@id": "amf://id#26", +"@type": [ +"http://a.ml/vocabularies/apiContract#Operation", +"http://a.ml/vocabularies/core#Operation", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#method": "MOVE", +"http://a.ml/vocabularies/apiContract#guiSummary": "Move the resource", +"http://a.ml/vocabularies/apiContract#expects": [ +{ +"@id": "amf://id#28" +} +], +"http://a.ml/vocabularies/apiContract#returns": [ +{ +"@id": "amf://id#27" +} +], +"http://a.ml/vocabularies/apiContract#operationKind": "additionalOperation", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#26/source-map" +} +] +}, +{ +"@id": "amf://id#14/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#14/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#8/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#8/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#9/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#9/source-map/lexical/element_3" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_2" +} +] +}, +{ +"@id": "amf://id#7/source-map/lexical/element_4", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#endpoint", +"http://a.ml/vocabularies/document-source-maps#value": "[(7,0)-(46,0)]" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#7", +"http://a.ml/vocabularies/document-source-maps#value": "[(2,0)-(64,0)]" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#tag", +"http://a.ml/vocabularies/document-source-maps#value": "[(46,0)-(53,0)]" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#version", +"http://a.ml/vocabularies/document-source-maps#value": "[(5,2)-(7,0)]" +}, +{ +"@id": "amf://id#7/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(4,2)-(5,0)]" +}, +{ +"@id": "amf://id#13", +"@type": [ +"http://a.ml/vocabularies/apiContract#Response", +"http://a.ml/vocabularies/core#Response", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#statusCode": "200", +"http://a.ml/vocabularies/core#name": "200", +"http://a.ml/vocabularies/core#description": "Success", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#13/source-map" +} +] +}, +{ +"@id": "amf://id#12", +"@type": [ +"http://a.ml/vocabularies/apiContract#Tag", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "authentication", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#12/source-map" +} +] +}, +{ +"@id": "amf://id#11/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#11/source-map/lexical/element_3" +}, +{ +"@id": "amf://id#11/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#11/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#11/source-map/lexical/element_2" +} +] +}, +{ +"@id": "amf://id#10/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#10", +"http://a.ml/vocabularies/document-source-maps#value": "[(8,2)-(17,0)]" +}, +{ +"@id": "amf://id#17", +"@type": [ +"http://a.ml/vocabularies/apiContract#Request", +"http://a.ml/vocabularies/core#Request", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#uriParameter": [ +{ +"@id": "amf://id#18" +} +] +}, +{ +"@id": "amf://id#16", +"@type": [ +"http://a.ml/vocabularies/apiContract#Response", +"http://a.ml/vocabularies/core#Response", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#statusCode": "200", +"http://a.ml/vocabularies/core#name": "200", +"http://a.ml/vocabularies/core#description": "OK", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#16/source-map" +} +] +}, +{ +"@id": "amf://id#15/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#15/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#15/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#15/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#22", +"@type": [ +"http://a.ml/vocabularies/apiContract#Request", +"http://a.ml/vocabularies/core#Request", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#uriParameter": [ +{ +"@id": "amf://id#18" +} +] +}, +{ +"@id": "amf://id#21", +"@type": [ +"http://a.ml/vocabularies/apiContract#Response", +"http://a.ml/vocabularies/core#Response", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#statusCode": "200", +"http://a.ml/vocabularies/core#name": "200", +"http://a.ml/vocabularies/core#description": "Results", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#21/source-map" +} +] +}, +{ +"@id": "amf://id#20/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#20/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#20/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#20/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#25", +"@type": [ +"http://a.ml/vocabularies/apiContract#Request", +"http://a.ml/vocabularies/core#Request", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#uriParameter": [ +{ +"@id": "amf://id#18" +} +] +}, +{ +"@id": "amf://id#24", +"@type": [ +"http://a.ml/vocabularies/apiContract#Response", +"http://a.ml/vocabularies/core#Response", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#statusCode": "200", +"http://a.ml/vocabularies/core#name": "200", +"http://a.ml/vocabularies/core#description": "Copied", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#24/source-map" +} +] +}, +{ +"@id": "amf://id#23/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#23/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#23/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#23/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#28", +"@type": [ +"http://a.ml/vocabularies/apiContract#Request", +"http://a.ml/vocabularies/core#Request", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#uriParameter": [ +{ +"@id": "amf://id#18" +} +] +}, +{ +"@id": "amf://id#27", +"@type": [ +"http://a.ml/vocabularies/apiContract#Response", +"http://a.ml/vocabularies/core#Response", +"http://a.ml/vocabularies/apiContract#Message", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/apiContract#statusCode": "200", +"http://a.ml/vocabularies/core#name": "200", +"http://a.ml/vocabularies/core#description": "Moved", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#27/source-map" +} +] +}, +{ +"@id": "amf://id#26/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#26/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#26/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#26/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#14/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#14", +"http://a.ml/vocabularies/document-source-maps#value": "[(17,2)-(46,0)]" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(47,4)-(48,0)]" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#summary", +"http://a.ml/vocabularies/document-source-maps#value": "[(48,4)-(49,0)]" +}, +{ +"@id": "amf://id#8/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#8", +"http://a.ml/vocabularies/document-source-maps#value": "[(47,4)-(49,0)]" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#summary", +"http://a.ml/vocabularies/document-source-maps#value": "[(50,4)-(51,0)]" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(49,4)-(50,0)]" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#parentTag", +"http://a.ml/vocabularies/document-source-maps#value": "[(51,4)-(53,0)]" +}, +{ +"@id": "amf://id#9/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#9", +"http://a.ml/vocabularies/document-source-maps#value": "[(49,4)-(53,0)]" +}, +{ +"@id": "amf://id#13/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#13/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#12/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#12/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#11/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#returns", +"http://a.ml/vocabularies/document-source-maps#value": "[(13,6)-(17,0)]" +}, +{ +"@id": "amf://id#11/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#guiSummary", +"http://a.ml/vocabularies/document-source-maps#value": "[(10,6)-(11,0)]" +}, +{ +"@id": "amf://id#11/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#tag", +"http://a.ml/vocabularies/document-source-maps#value": "[(11,6)-(13,0)]" +}, +{ +"@id": "amf://id#11/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#11", +"http://a.ml/vocabularies/document-source-maps#value": "[(9,4)-(17,0)]" +}, +{ +"@id": "amf://id#18", +"@type": [ +"http://a.ml/vocabularies/apiContract#Parameter", +"http://a.ml/vocabularies/core#Parameter", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "id", +"http://a.ml/vocabularies/apiContract#paramName": "id", +"http://a.ml/vocabularies/apiContract#required": true, +"http://a.ml/vocabularies/apiContract#style": "simple", +"http://a.ml/vocabularies/apiContract#explode": false, +"http://a.ml/vocabularies/apiContract#binding": "path", +"http://a.ml/vocabularies/shapes#schema": { +"@id": "amf://id#19" +}, +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#18/source-map" +} +] +}, +{ +"@id": "amf://id#16/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#16/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#16/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#16/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#15/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#guiSummary", +"http://a.ml/vocabularies/document-source-maps#value": "[(25,6)-(26,0)]" +}, +{ +"@id": "amf://id#15/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#returns", +"http://a.ml/vocabularies/document-source-maps#value": "[(26,6)-(29,0)]" +}, +{ +"@id": "amf://id#15/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#15", +"http://a.ml/vocabularies/document-source-maps#value": "[(24,4)-(29,0)]" +}, +{ +"@id": "amf://id#21/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#21/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#21/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#21/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#20/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#guiSummary", +"http://a.ml/vocabularies/document-source-maps#value": "[(30,6)-(31,0)]" +}, +{ +"@id": "amf://id#20/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#returns", +"http://a.ml/vocabularies/document-source-maps#value": "[(31,6)-(34,0)]" +}, +{ +"@id": "amf://id#20/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#20", +"http://a.ml/vocabularies/document-source-maps#value": "[(29,10)-(34,0)]" +}, +{ +"@id": "amf://id#24/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#24/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#24/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#24/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#23/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#guiSummary", +"http://a.ml/vocabularies/document-source-maps#value": "[(36,8)-(37,0)]" +}, +{ +"@id": "amf://id#23/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#returns", +"http://a.ml/vocabularies/document-source-maps#value": "[(37,8)-(40,0)]" +}, +{ +"@id": "amf://id#23/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#23", +"http://a.ml/vocabularies/document-source-maps#value": "[(35,6)-(40,0)]" +}, +{ +"@id": "amf://id#27/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#27/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#27/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#27/source-map/lexical/element_1" +} +] +}, +{ +"@id": "amf://id#26/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#guiSummary", +"http://a.ml/vocabularies/document-source-maps#value": "[(41,8)-(42,0)]" +}, +{ +"@id": "amf://id#26/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#returns", +"http://a.ml/vocabularies/document-source-maps#value": "[(42,8)-(46,0)]" +}, +{ +"@id": "amf://id#26/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#26", +"http://a.ml/vocabularies/document-source-maps#value": "[(40,6)-(46,0)]" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(14,8)-(14,13)]" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#description", +"http://a.ml/vocabularies/document-source-maps#value": "[(15,10)-(17,0)]" +}, +{ +"@id": "amf://id#13/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#13", +"http://a.ml/vocabularies/document-source-maps#value": "[(14,8)-(17,0)]" +}, +{ +"@id": "amf://id#12/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#12", +"http://a.ml/vocabularies/document-source-maps#value": "[(12,10)-(12,24)]" +}, +{ +"@id": "amf://id#19", +"@type": [ +"http://a.ml/vocabularies/shapes#ScalarShape", +"http://a.ml/vocabularies/shapes#AnyShape", +"http://www.w3.org/ns/shacl#Shape", +"http://a.ml/vocabularies/shapes#Shape", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://www.w3.org/ns/shacl#datatype": [ +{ +"@id": "http://www.w3.org/2001/XMLSchema#string" +} +], +"http://www.w3.org/ns/shacl#name": "id", +"http://a.ml/vocabularies/shapes#schemaVersion": "https://json-schema.org/draft/2020-12/schema", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#19/source-map" +} +] +}, +{ +"@id": "amf://id#18/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#synthesized-field": [ +{ +"@id": "amf://id#18/source-map/synthesized-field/element_1" +}, +{ +"@id": "amf://id#18/source-map/synthesized-field/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#18/source-map/lexical/element_5" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_3" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_4" +} +] +}, +{ +"@id": "amf://id#16/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(27,8)-(27,13)]" +}, +{ +"@id": "amf://id#16/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#description", +"http://a.ml/vocabularies/document-source-maps#value": "[(28,10)-(29,0)]" +}, +{ +"@id": "amf://id#16/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#16", +"http://a.ml/vocabularies/document-source-maps#value": "[(27,8)-(29,0)]" +}, +{ +"@id": "amf://id#21/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(32,8)-(32,13)]" +}, +{ +"@id": "amf://id#21/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#description", +"http://a.ml/vocabularies/document-source-maps#value": "[(33,10)-(34,0)]" +}, +{ +"@id": "amf://id#21/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#21", +"http://a.ml/vocabularies/document-source-maps#value": "[(32,8)-(34,0)]" +}, +{ +"@id": "amf://id#24/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(38,10)-(38,15)]" +}, +{ +"@id": "amf://id#24/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#description", +"http://a.ml/vocabularies/document-source-maps#value": "[(39,12)-(40,0)]" +}, +{ +"@id": "amf://id#24/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#24", +"http://a.ml/vocabularies/document-source-maps#value": "[(38,10)-(40,0)]" +}, +{ +"@id": "amf://id#27/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(43,10)-(43,15)]" +}, +{ +"@id": "amf://id#27/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#description", +"http://a.ml/vocabularies/document-source-maps#value": "[(44,12)-(46,0)]" +}, +{ +"@id": "amf://id#27/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#27", +"http://a.ml/vocabularies/document-source-maps#value": "[(43,10)-(46,0)]" +}, +{ +"@id": "amf://id#19/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#19/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#19/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#19/source-map/lexical/element_1" +} +], +"http://a.ml/vocabularies/document-source-maps#auto-generated-name": [ +{ +"@id": "amf://id#19/source-map/auto-generated-name/element_0" +} +], +"http://a.ml/vocabularies/document-source-maps#type-property-lexical-info": [ +{ +"@id": "amf://id#19/source-map/type-property-lexical-info/element_0" +} +] +}, +{ +"@id": "amf://id#18/source-map/synthesized-field/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#style", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#18/source-map/synthesized-field/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#explode", +"http://a.ml/vocabularies/document-source-maps#value": "true" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_5", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#binding", +"http://a.ml/vocabularies/document-source-maps#value": "[(20,8)-(21,0)]" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#18", +"http://a.ml/vocabularies/document-source-maps#value": "[(19,8)-(24,0)]" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#required", +"http://a.ml/vocabularies/document-source-maps#value": "[(21,8)-(22,0)]" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/shapes#schema", +"http://a.ml/vocabularies/document-source-maps#value": "[(22,8)-(24,0)]" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(19,8)-(20,0)]" +}, +{ +"@id": "amf://id#18/source-map/lexical/element_4", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/apiContract#paramName", +"http://a.ml/vocabularies/document-source-maps#value": "[(19,8)-(20,0)]" +}, +{ +"@id": "amf://id#19/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#datatype", +"http://a.ml/vocabularies/document-source-maps#value": "[(23,10)-(24,0)]" +}, +{ +"@id": "amf://id#19/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://www.w3.org/ns/shacl#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(19,8)-(20,0)]" +}, +{ +"@id": "amf://id#19/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#19", +"http://a.ml/vocabularies/document-source-maps#value": "[(22,8)-(24,0)]" +}, +{ +"@id": "amf://id#19/source-map/auto-generated-name/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#19", +"http://a.ml/vocabularies/document-source-maps#value": "" +}, +{ +"@id": "amf://id#19/source-map/type-property-lexical-info/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#19", +"http://a.ml/vocabularies/document-source-maps#value": "[(23,10)-(23,14)]" +}, +{ +"@id": "amf://id", +"http://a.ml/vocabularies/document#declares": [ +{ +"@id": "amf://id#1" +} +], +"@type": [ +"http://a.ml/vocabularies/document#Document", +"http://a.ml/vocabularies/document#Fragment", +"http://a.ml/vocabularies/document#Module", +"http://a.ml/vocabularies/document#Unit" +], +"http://a.ml/vocabularies/document#encodes": { +"@id": "amf://id#7" +}, +"http://a.ml/vocabularies/document#root": true, +"http://a.ml/vocabularies/document#processingData": { +"@id": "amf://id#6" +} +}, +{ +"@id": "amf://id#1", +"@type": [ +"http://a.ml/vocabularies/security#SecurityScheme", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "oauth2Device", +"http://a.ml/vocabularies/security#type": "OAuth 2.0", +"http://a.ml/vocabularies/security#settings": { +"@id": "amf://id#2" +}, +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#1/source-map" +} +] +}, +{ +"@id": "amf://id#2", +"@type": [ +"http://a.ml/vocabularies/security#OAuth2Settings", +"http://a.ml/vocabularies/security#Settings", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/security#flows": [ +{ +"@id": "amf://id#3" +} +], +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#2/source-map" +} +] +}, +{ +"@id": "amf://id#1/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#1/source-map/lexical/element_3" +}, +{ +"@id": "amf://id#1/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#1/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#1/source-map/lexical/element_2" +} +], +"http://a.ml/vocabularies/document-source-maps#declared-element": [ +{ +"@id": "amf://id#1/source-map/declared-element/element_0" +} +] +}, +{ +"@id": "amf://id#3", +"@type": [ +"http://a.ml/vocabularies/security#OAuth2Flow", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/security#accessTokenUri": "https://example.com/oauth/token", +"http://a.ml/vocabularies/security#flow": "deviceAuthorization", +"http://a.ml/vocabularies/security#scope": [ +{ +"@id": "amf://id#4" +}, +{ +"@id": "amf://id#5" +} +], +"http://a.ml/vocabularies/security#deviceAuthorizationUri": "https://example.com/oauth/device/authorize", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#3/source-map" +} +] +}, +{ +"@id": "amf://id#2/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#2/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#1/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/security#type", +"http://a.ml/vocabularies/document-source-maps#value": "[(56,6)-(57,0)]" +}, +{ +"@id": "amf://id#1/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/core#name", +"http://a.ml/vocabularies/document-source-maps#value": "[(55,4)-(55,16)]" +}, +{ +"@id": "amf://id#1/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/security#settings", +"http://a.ml/vocabularies/document-source-maps#value": "[(56,0)-(64,0)]" +}, +{ +"@id": "amf://id#1/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#1", +"http://a.ml/vocabularies/document-source-maps#value": "[(55,4)-(64,0)]" +}, +{ +"@id": "amf://id#1/source-map/declared-element/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#1", +"http://a.ml/vocabularies/document-source-maps#value": "" +}, +{ +"@id": "amf://id#4", +"@type": [ +"http://a.ml/vocabularies/security#Scope", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "read", +"http://a.ml/vocabularies/core#description": "Read access", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#4/source-map" +} +] +}, +{ +"@id": "amf://id#5", +"@type": [ +"http://a.ml/vocabularies/security#Scope", +"http://a.ml/vocabularies/document#DomainElement" +], +"http://a.ml/vocabularies/core#name": "write", +"http://a.ml/vocabularies/core#description": "Write access", +"http://a.ml/vocabularies/document-source-maps#sources": [ +{ +"@id": "amf://id#5/source-map" +} +] +}, +{ +"@id": "amf://id#3/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#3/source-map/lexical/element_4" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_2" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_0" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_1" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_3" +} +] +}, +{ +"@id": "amf://id#2/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#2", +"http://a.ml/vocabularies/document-source-maps#value": "[(56,0)-(64,0)]" +}, +{ +"@id": "amf://id#2/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/security#flows", +"http://a.ml/vocabularies/document-source-maps#value": "[(57,6)-(64,0)]" +}, +{ +"@id": "amf://id#4/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#4/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#5/source-map", +"@type": [ +"http://a.ml/vocabularies/document-source-maps#SourceMap" +], +"http://a.ml/vocabularies/document-source-maps#lexical": [ +{ +"@id": "amf://id#5/source-map/lexical/element_0" +} +] +}, +{ +"@id": "amf://id#3/source-map/lexical/element_4", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/security#scope", +"http://a.ml/vocabularies/document-source-maps#value": "[(61,10)-(64,0)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_2", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#3", +"http://a.ml/vocabularies/document-source-maps#value": "[(58,8)-(64,0)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/security#deviceAuthorizationUri", +"http://a.ml/vocabularies/document-source-maps#value": "[(59,10)-(60,0)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_1", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/security#flow", +"http://a.ml/vocabularies/document-source-maps#value": "[(58,8)-(58,27)]" +}, +{ +"@id": "amf://id#3/source-map/lexical/element_3", +"http://a.ml/vocabularies/document-source-maps#element": "http://a.ml/vocabularies/security#accessTokenUri", +"http://a.ml/vocabularies/document-source-maps#value": "[(60,10)-(61,0)]" +}, +{ +"@id": "amf://id#4/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#4", +"http://a.ml/vocabularies/document-source-maps#value": "[(62,12)-(63,0)]" +}, +{ +"@id": "amf://id#5/source-map/lexical/element_0", +"http://a.ml/vocabularies/document-source-maps#element": "amf://id#5", +"http://a.ml/vocabularies/document-source-maps#value": "[(63,12)-(64,0)]" +} +] +} diff --git a/src/ApiNavigation.js b/src/ApiNavigation.js index 073cae9..59785aa 100644 --- a/src/ApiNavigation.js +++ b/src/ApiNavigation.js @@ -1110,9 +1110,9 @@ export class ApiNavigation extends AmfHelperMixin(LitElement) { item, this.ns.aml.vocabularies.core.name )); - const methodKey = this.ns.aml.vocabularies.apiContract.method; const id = item['@id']; - let method = /** @type string */ (this._getValue(item, methodKey)); + let method = /** @type string */ (this._computeOperationMethod(item)); + const methodForColor = this._operationColorMethod(method); // Populate gRPC fields via helpers when available /** @type {'unary'|'server_streaming'|'client_streaming'|'bidi_streaming'|undefined} */ const grpcStreamType = this._isGrpc && /** @type any */ (this._getGrpcStreamType(item)) @@ -1134,18 +1134,47 @@ export class ApiNavigation extends AmfHelperMixin(LitElement) { } } if (this._isGrpc && grpcStreamType) { + // `method` becomes a human-readable stream-type display name here; nav + // has no gRPC-specific color mapper (`_getMethodForColor`) at this layer + // — the caller (`_collectGrpcNavigationData`) overwrites `methodForColor` + // with its own stream-type→color map afterwards, so we deliberately do + // NOT invent a new mapping here. Leave `methodForColor` at its pre-gRPC + // value. method = this._getGrpcStreamTypeDisplayName(grpcStreamType); } return { label, id, method, + methodForColor, + kind: this._computeOperationKind(item), grpcStreamType, requestSchema, responseSchema, }; } + /** + * Groups an endpoint's operations by their OAS 3.2 `operationKind`. + * @param {MethodItem[]} methods List of method view-models for an endpoint + * @return {{label: string, methods: MethodItem[]}[]} Non-empty groups, in fixed order. + */ + _groupMethodsByKind(methods) { + const buckets = { standard: [], query: [], additionalOperation: [] }; + (methods || []).forEach((m) => { + const k = Object.prototype.hasOwnProperty.call(buckets, m.kind) ? m.kind : 'standard'; + buckets[k].push(m); + }); + const order = [ + { key: 'standard', label: 'Operations' }, + { key: 'query', label: 'Query' }, + { key: 'additionalOperation', label: 'Additional operations' }, + ]; + return order + .filter((g) => buckets[g.key].length) + .map((g) => ({ key: g.key, label: g.label, methods: buckets[g.key] })); + } + /** * Click handler for section name item. * Toggles the view. @@ -1313,7 +1342,7 @@ export class ApiNavigation extends AmfHelperMixin(LitElement) { } return ( (item.label || '').toLowerCase().indexOf(this.__effectiveQuery) !== -1 || - item.method.indexOf(this.__effectiveQuery) !== -1 + (item.method || '').indexOf(this.__effectiveQuery) !== -1 ); } @@ -1665,7 +1694,7 @@ export class ApiNavigation extends AmfHelperMixin(LitElement) { const method = eMethods[j]; if ( (method.label || '').toLowerCase().indexOf(q) !== -1 || - method.method.indexOf(q) !== -1 + (method.method || '').indexOf(q) !== -1 ) { methods[methods.length] = method; } @@ -2132,9 +2161,17 @@ export class ApiNavigation extends AmfHelperMixin(LitElement) { ?endpoint-opened="${isEndpointOpened}" > ${this._overviewTemplate(item)} - ${item.methods.map(methodItem => - this._methodTemplate(item, methodItem) - )} + ${(() => { + const groups = this._groupMethodsByKind(item.methods); + const hasNonStandard = groups.some((g) => g.key !== 'standard'); + if (!hasNonStandard) { + return item.methods.map((methodItem) => this._methodTemplate(item, methodItem)); + } + return groups.map((g) => html` + ${g.label} + ${g.methods.map((methodItem) => this._methodTemplate(item, methodItem))} + `); + })()} `; } diff --git a/src/Styles.js b/src/Styles.js index ad0b612..8db75eb 100644 --- a/src/Styles.js +++ b/src/Styles.js @@ -96,6 +96,14 @@ export default css` background-color: inherit; } + .op-group-label { + display: block; + font-size: 0.7rem; + font-weight: 700; + opacity: 0.7; + margin: 4px 0; + } + .list-item { display: block; position: relative; diff --git a/test/async3-rendering.test.js b/test/async3-rendering.test.js new file mode 100644 index 0000000..e93fe6c --- /dev/null +++ b/test/async3-rendering.test.js @@ -0,0 +1,58 @@ +import { assert, fixture, html, aTimeout } from '@open-wc/testing'; +import { AmfLoader } from './amf-loader.js'; +import '../api-navigation.js'; + +describe('AsyncAPI 3.0 operation rendering (navigation)', () => { + let element; + before(async () => { + const amf = await AmfLoader.load(true, 'async30'); // (compact, fileName) + element = await fixture(html``); + await aTimeout(0); + }); + + it('labels the async op SEND (not POST) and colors it publish', () => { + const badges = Array.from(element.shadowRoot.querySelectorAll('.method-label')); + const texts = badges.map((n) => n.textContent.trim().toLowerCase()); + assert.include(texts, 'send'); + assert.notInclude(texts, 'post'); + const send = badges.find((n) => n.textContent.trim().toLowerCase() === 'send'); + assert.equal(send.getAttribute('data-method'), 'publish'); + }); + + it('_methodFilter does not throw for a MethodItem with undefined method', () => { + // Directly drives the guarded `(item.method || '').indexOf(...)` branch + // in `_methodFilter` (ApiNavigation.js) with a method-less item — the + // shape you'd get from an operation `_computeOperationMethod` couldn't + // resolve a method/action for. `_flushQuery()` alone never reaches this + // code (it only sets `__effectiveQuery`; filtering runs later inside the + // Lit render cycle), so we call the filter itself. + element.__effectiveQuery = 'sig'; + const item = { label: 'label-without-match', method: undefined }; + let result; + assert.doesNotThrow(() => { + result = element._methodFilter(item); + }); + assert.isBoolean(result); + }); + + it('_getFilteredEndpoints does not throw for an endpoint with a method-less MethodItem', () => { + // Directly drives the guarded `(method.method || '').indexOf(q)` branch + // in `_getFilteredEndpoints`. + element.__effectiveQuery = 'sig'; + const endpoints = [ + { + label: 'endpoint-without-match', + path: '/no-match', + methods: [{ label: 'label-without-match', method: undefined }], + }, + ]; + let result; + assert.doesNotThrow(() => { + result = element._getFilteredEndpoints.call({ + _endpoints: endpoints, + __effectiveQuery: element.__effectiveQuery, + }); + }); + assert.deepEqual(result, []); + }); +}); diff --git a/test/operation-grouping.test.js b/test/operation-grouping.test.js new file mode 100644 index 0000000..4ecfb9d --- /dev/null +++ b/test/operation-grouping.test.js @@ -0,0 +1,31 @@ +import { assert, fixture, html, aTimeout } from '@open-wc/testing'; +import { AmfLoader } from './amf-loader.js'; +import '../api-navigation.js'; + +describe('OAS 3.2 operation grouping (navigation)', () => { + let element; + + before(async () => { + const amf = await AmfLoader.load(true, 'oas32'); + element = await fixture( + html`` + ); + await aTimeout(0); + }); + + it('labels query and additional operation groups', () => { + const labels = Array.from( + element.shadowRoot.querySelectorAll('.op-group-label') + ).map((n) => n.textContent.trim()); + assert.deepEqual(labels, ['Operations', 'Query', 'Additional operations']); + }); + + it('renders the standard-only endpoint as a flat list with no group labels', () => { + const endpointNode = Array.from( + element.shadowRoot.querySelectorAll('.list-item.endpoint') + ).find((n) => n.dataset.endpointPath === '/auth'); + assert.exists(endpointNode, 'endpoint node for /auth not found'); + const collapse = endpointNode.nextElementSibling; + assert.equal(collapse.querySelectorAll('.op-group-label').length, 0); + }); +});