diff --git a/.gitignore b/.gitignore index e4dcaf8..747f5d1 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,7 @@ dist/ !demo/apis.json !demo/avro.json !demo/avro2.json +!demo/grpc-test.json .idea/ -.codegenie/ \ No newline at end of file +.codegenie/ diff --git a/demo/grpc-test.json b/demo/grpc-test.json new file mode 100644 index 0000000..e72924b --- /dev/null +++ b/demo/grpc-test.json @@ -0,0 +1,4490 @@ +[ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto", + "@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": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api", + "@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": [ + { + "@value": "helloworld" + } + ], + "http://a.ml/vocabularies/apiContract#endpoint": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter", + "@type": [ + "http://a.ml/vocabularies/apiContract#EndPoint", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "Greeter" + } + ], + "http://a.ml/vocabularies/apiContract#supportedOperation": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1", + "@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": [ + { + "@value": "post" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "SayHello1" + } + ], + "http://a.ml/vocabularies/apiContract#expects": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/expects/request", + "@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#payload": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/expects/request/payload/application%2Fgrpc", + "@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": [ + { + "@value": "application/grpc" + } + ], + "http://a.ml/vocabularies/shapes#schema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/expects/request/payload/application%2Fgrpc/shape/HelloRequest", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloRequest" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/expects/request/payload/application%2Fgrpc/shape/HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(15,2)-(15,54)]" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/apiContract#returns": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/returns/resp/", + "@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": [ + { + "@value": "" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "" + } + ], + "http://a.ml/vocabularies/apiContract#payload": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/returns/resp/payload/application%2Fprotobuf", + "@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": [ + { + "@value": "application/protobuf" + } + ], + "http://a.ml/vocabularies/shapes#schema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/returns/resp/payload/application%2Fprotobuf/shape/HelloReply", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloReply" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/returns/resp/payload/application%2Fprotobuf/shape/HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(15,2)-(15,54)]" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/apiContract#operationId": [ + { + "@value": "SayHello1" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/post/SayHello1" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(15,2)-(15,54)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2", + "@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": [ + { + "@value": "publish" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "SayHello2" + } + ], + "http://a.ml/vocabularies/apiContract#expects": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/expects/request", + "@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#payload": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/expects/request/payload/application%2Fgrpc", + "@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": [ + { + "@value": "application/grpc" + } + ], + "http://a.ml/vocabularies/shapes#schema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/expects/request/payload/application%2Fgrpc/shape/HelloRequest", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloRequest" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/expects/request/payload/application%2Fgrpc/shape/HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(16,2)-(16,61)]" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/apiContract#returns": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/returns/resp/", + "@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": [ + { + "@value": "" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "" + } + ], + "http://a.ml/vocabularies/apiContract#payload": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/returns/resp/payload/application%2Fprotobuf", + "@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": [ + { + "@value": "application/protobuf" + } + ], + "http://a.ml/vocabularies/shapes#schema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/returns/resp/payload/application%2Fprotobuf/shape/HelloReply", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloReply" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/returns/resp/payload/application%2Fprotobuf/shape/HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(16,2)-(16,61)]" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/apiContract#operationId": [ + { + "@value": "SayHello2" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/publish/SayHello2" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(16,2)-(16,61)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3", + "@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": [ + { + "@value": "subscribe" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "SayHello3" + } + ], + "http://a.ml/vocabularies/apiContract#expects": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/expects/request", + "@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#payload": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/expects/request/payload/application%2Fgrpc", + "@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": [ + { + "@value": "application/grpc" + } + ], + "http://a.ml/vocabularies/shapes#schema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/expects/request/payload/application%2Fgrpc/shape/HelloRequest", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloRequest" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/expects/request/payload/application%2Fgrpc/shape/HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(17,2)-(17,61)]" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/apiContract#returns": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/returns/resp/", + "@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": [ + { + "@value": "" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "" + } + ], + "http://a.ml/vocabularies/apiContract#payload": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/returns/resp/payload/application%2Fprotobuf", + "@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": [ + { + "@value": "application/protobuf" + } + ], + "http://a.ml/vocabularies/shapes#schema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/returns/resp/payload/application%2Fprotobuf/shape/HelloReply", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloReply" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/returns/resp/payload/application%2Fprotobuf/shape/HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(17,2)-(17,61)]" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/apiContract#operationId": [ + { + "@value": "SayHello3" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/subscribe/SayHello3" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(17,2)-(17,61)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4", + "@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": [ + { + "@value": "pubsub" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "SayHello4" + } + ], + "http://a.ml/vocabularies/apiContract#expects": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/expects/request", + "@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#payload": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/expects/request/payload/application%2Fgrpc", + "@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": [ + { + "@value": "application/grpc" + } + ], + "http://a.ml/vocabularies/shapes#schema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/expects/request/payload/application%2Fgrpc/shape/HelloRequest", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloRequest" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/expects/request/payload/application%2Fgrpc/shape/HelloRequest/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/expects/request/payload/application%2Fgrpc/shape/HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(18,2)-(18,68)]" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/apiContract#returns": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/returns/resp/", + "@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": [ + { + "@value": "" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "" + } + ], + "http://a.ml/vocabularies/apiContract#payload": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/returns/resp/payload/application%2Fprotobuf", + "@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": [ + { + "@value": "application/protobuf" + } + ], + "http://a.ml/vocabularies/shapes#schema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/returns/resp/payload/application%2Fprotobuf/shape/HelloReply", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloReply" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/returns/resp/payload/application%2Fprotobuf/shape/HelloReply/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/returns/resp/payload/application%2Fprotobuf/shape/HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(18,2)-(18,68)]" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/apiContract#operationId": [ + { + "@value": "SayHello4" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/supportedOperation/pubsub/SayHello4" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(18,2)-(18,68)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/endpoint/Greeter" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(13,0)-(19,1)]" + } + ] + } + ] + } + ] + } + ], + "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/definedBy": { + "http://a.ml/vocabularies/core#extensionName": [ + { + "@value": "java_multiple_files" + } + ], + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/data-node", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "true" + } + ], + "http://www.w3.org/ns/shacl#datatype": [ + { + "@id": "http://www.w3.org/2001/XMLSchema#boolean" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/data-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/data-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/data-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(3,29)-(3,33)]" + } + ] + } + ] + } + ] + }, + "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_1/definedBy": { + "http://a.ml/vocabularies/core#extensionName": [ + { + "@value": "java_package" + } + ], + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_1/data-node", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "io.grpc.examples.helloworld" + } + ], + "http://www.w3.org/ns/shacl#datatype": [ + { + "@id": "http://www.w3.org/2001/XMLSchema#string" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_1/data-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_1/data-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_1/data-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(4,22)-(4,51)]" + } + ] + } + ] + } + ] + }, + "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_2/definedBy": { + "http://a.ml/vocabularies/core#extensionName": [ + { + "@value": "java_outer_classname" + } + ], + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_2/data-node", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "HelloWorldProto" + } + ], + "http://www.w3.org/ns/shacl#datatype": [ + { + "@id": "http://www.w3.org/2001/XMLSchema#string" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_2/data-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_2/data-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_2/data-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(5,30)-(5,47)]" + } + ] + } + ] + } + ] + }, + "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_3/definedBy": { + "http://a.ml/vocabularies/core#extensionName": [ + { + "@value": "objc_class_prefix" + } + ], + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_3/data-node", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "HLW" + } + ], + "http://www.w3.org/ns/shacl#datatype": [ + { + "@id": "http://www.w3.org/2001/XMLSchema#string" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_3/data-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_3/data-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_3/data-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(6,27)-(6,32)]" + } + ] + } + ] + } + ] + }, + "http://a.ml/vocabularies/document#customDomainProperties": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/definedBy" + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_1/definedBy" + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_2/definedBy" + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/customDomainProperties/_3/definedBy" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/web-api" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(1,0)-(68,1)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document#root": [ + { + "@value": true + } + ], + "http://a.ml/vocabularies/document#package": [ + { + "@value": "helloworld" + } + ], + "http://a.ml/vocabularies/document#processingData": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/BaseUnitProcessingData", + "@type": [ + "http://a.ml/vocabularies/document#APIContractProcessingData" + ], + "http://a.ml/vocabularies/apiContract#modelVersion": [ + { + "@value": "3.11.0" + } + ], + "http://a.ml/vocabularies/document#sourceSpec": [ + { + "@value": "Grpc" + } + ] + } + ], + "http://a.ml/vocabularies/document#references": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0", + "@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": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/web-api", + "@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": [ + { + "@value": "library" + } + ], + "http://a.ml/vocabularies/apiContract#endpoint": [], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/web-api/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/web-api/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/web-api" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(1,0)-(7,1)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document#declares": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/array/default-array", + "@type": [ + "http://a.ml/vocabularies/shapes#ArrayShape", + "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://a.ml/vocabularies/shapes#items": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/array/default-array/scalar/default-scalar", + "@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://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/array/default-array/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/array/default-array/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/array/default-array/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(6,11)-(6,17)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/array/default-array/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/array/default-array/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/array/default-array" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(6,2)-(6,30)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 2 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "message" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/property/property/message" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(6,2)-(6,30)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": ".library.Wadus" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "Wadus" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(5,0)-(7,1)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document#references": [], + "http://a.ml/vocabularies/document#root": [ + { + "@value": false + } + ], + "http://a.ml/vocabularies/document#package": [ + { + "@value": "library" + } + ], + "http://a.ml/vocabularies/document#processingData": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/BaseUnitProcessingData", + "@type": [ + "http://a.ml/vocabularies/document#APIContractProcessingData" + ], + "http://a.ml/vocabularies/apiContract#modelVersion": [ + { + "@value": "3.11.0" + } + ], + "http://a.ml/vocabularies/document#sourceSpec": [ + { + "@value": "Grpc" + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document#declares": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus", + "@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#name": [ + { + "@value": ".helloworld.Corpus" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "Corpus" + } + ], + "http://www.w3.org/ns/shacl#in": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/list", + "@type": "http://www.w3.org/2000/01/rdf-schema#Seq", + "http://www.w3.org/2000/01/rdf-schema#_1": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/in/data-node", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "UNIVERSAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/in/data-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/in/data-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/in/data-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(45,2)-(45,11)]" + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationSchema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/shape/default-node", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/shape/default-node/property/property/UNIVERSAL", + "@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://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 0 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "UNIVERSAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/shape/default-node/property/property/UNIVERSAL/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/shape/default-node/property/property/UNIVERSAL/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/shape/default-node/property/property/UNIVERSAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(45,2)-(45,16)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/shape/default-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/shape/default-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/shape/default-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(44,0)-(46,1)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(44,0)-(46,1)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.Corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fa", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fa/scalar/default-scalar", + "@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://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fa/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fa/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fa/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(30,4)-(30,10)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 1 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "fa" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fa/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fa/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fa" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(30,4)-(30,18)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb/shape/default-node", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "NestedMessage2" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb/shape/default-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb/shape/default-node/source-map/synthesized-field/element_1", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb/shape/default-node/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-label" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb/shape/default-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb/shape/default-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(31,4)-(31,18)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 2 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "fb" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/property/property/fb" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(31,4)-(31,26)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": ".helloworld.SampleMessage.NestedMessage1" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "NestedMessage1" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(29,2)-(35,3)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/array/default-array", + "@type": [ + "http://a.ml/vocabularies/shapes#ArrayShape", + "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://a.ml/vocabularies/shapes#items": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/array/default-array/scalar/default-scalar", + "@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://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/array/default-array/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/array/default-array/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/array/default-array/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(23,11)-(23,17)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/array/default-array/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/array/default-array/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/array/default-array" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(23,2)-(23,27)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 1 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "name" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/name" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(23,2)-(23,27)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus/shape/library.Wadus", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/references/0/declares/shape/.library.Wadus" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "library.Wadus" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "library.Wadus" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus/shape/library.Wadus/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus/shape/library.Wadus/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus/shape/library.Wadus/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus/shape/library.Wadus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(24,2)-(24,15)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 2 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "wadus" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/property/property/wadus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(24,2)-(24,26)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": ".helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(22,0)-(25,1)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/query", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/query/scalar/default-scalar", + "@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://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/query/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/query/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/query/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(49,2)-(49,8)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 1 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "query" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/query/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/query/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/query" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(49,2)-(49,19)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/page_number", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/page_number/scalar/default-scalar", + "@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#integer" + } + ], + "http://a.ml/vocabularies/shapes#format": [ + { + "@value": "int32" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/page_number/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/page_number/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/page_number/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(50,2)-(50,7)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 2 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "page_number" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/page_number/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/page_number/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/page_number" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(50,2)-(50,24)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/result_per_page", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/result_per_page/scalar/default-scalar", + "@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#integer" + } + ], + "http://a.ml/vocabularies/shapes#format": [ + { + "@value": "int32" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/result_per_page/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/result_per_page/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/result_per_page/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(51,2)-(51,7)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 3 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "result_per_page" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/result_per_page/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/result_per_page/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/result_per_page" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(51,2)-(51,28)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus/scalar/Corpus", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "Corpus" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "Corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus/scalar/Corpus/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus/scalar/Corpus/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus/scalar/Corpus/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus/scalar/Corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(61,2)-(61,8)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 4 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/property/property/corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(61,2)-(61,20)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": ".helloworld.SearchRequest" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "SearchRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(48,0)-(62,1)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/property/property/fa", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/property/property/fa/scalar/default-scalar", + "@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://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/property/property/fa/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/property/property/fa/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/property/property/fa/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(33,6)-(33,12)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 1 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "fa" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/property/property/fa/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/property/property/fa/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/property/property/fa" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(33,6)-(33,20)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": ".helloworld.SampleMessage.NestedMessage1.NestedMessage2" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "NestedMessage2" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(32,4)-(34,5)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node", + "@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#additionalPropertiesKeySchema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/scalar/default-scalar", + "@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://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(28,6)-(28,12)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#additionalPropertiesSchema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/shape/default-node", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SearchRequest" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "SearchRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/shape/default-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/shape/default-node/source-map/synthesized-field/element_1", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/shape/default-node/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-label" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/shape/default-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/shape/default-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(28,14)-(28,27)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/shape/default-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(28,2)-(28,42)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 3 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "searches" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/searches" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(28,2)-(28,42)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc/shape/NestedMessage1.NestedMessage2", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage.NestedMessage1.NestedMessage2" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "NestedMessage1.NestedMessage2" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "NestedMessage1.NestedMessage2" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc/shape/NestedMessage1.NestedMessage2/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc/shape/NestedMessage1.NestedMessage2/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc/shape/NestedMessage1.NestedMessage2/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc/shape/NestedMessage1.NestedMessage2" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(36,2)-(36,31)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 10 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "fc" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fc" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(36,2)-(36,40)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd/shape/.helloworld.HelloRequest", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": ".helloworld.HelloRequest" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": ".helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd/shape/.helloworld.HelloRequest/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd/shape/.helloworld.HelloRequest/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd/shape/.helloworld.HelloRequest/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(37,2)-(37,26)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 11 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "fd" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/property/property/fd" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(37,2)-(37,35)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": ".helloworld.SampleMessage" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "SampleMessage" + } + ], + "http://www.w3.org/ns/shacl#and": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof", + "@type": [ + "http://a.ml/vocabularies/shapes#UnionShape", + "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://a.ml/vocabularies/shapes#anyOf": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/property/property/name", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/property/property/name/scalar/default-scalar", + "@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://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/property/property/name/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/property/property/name/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/property/property/name/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(39,4)-(39,10)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 4 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "name" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/property/property/name/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/property/property/name/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/property/property/name" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(39,4)-(39,20)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(39,4)-(39,20)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message/shape/HelloRequest", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloRequest" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "HelloRequest" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message/shape/HelloRequest/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message/shape/HelloRequest/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message/shape/HelloRequest/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message/shape/HelloRequest" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(40,4)-(40,16)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 9 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "sub_message" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/property/property/sub_message" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(40,4)-(40,33)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/anyOf/shape/default-node_10" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(40,4)-(40,33)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "test_oneof" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/and/union/test_oneof" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(38,2)-(41,3)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(27,0)-(42,1)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.SampleMessage" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus", + "@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#name": [ + { + "@value": ".helloworld.SearchRequest.Corpus" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "Corpus" + } + ], + "http://www.w3.org/ns/shacl#in": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/list", + "@type": "http://www.w3.org/2000/01/rdf-schema#Seq", + "http://www.w3.org/2000/01/rdf-schema#_1": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "UNIVERSAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(53,4)-(53,13)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/2000/01/rdf-schema#_2": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_4", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "WEB" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_4/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_4/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_4" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(54,4)-(54,7)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/2000/01/rdf-schema#_3": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_5", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "IMAGES" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_5/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_5/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_5" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(55,4)-(55,10)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/2000/01/rdf-schema#_4": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_6", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "LOCAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_6/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_6/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_6" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(56,4)-(56,9)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/2000/01/rdf-schema#_5": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_7", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "NEWS" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_7/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_7/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_7" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(57,4)-(57,8)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/2000/01/rdf-schema#_6": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_8", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "PRODUCTS" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_8/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_8/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_8" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(58,4)-(58,12)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/2000/01/rdf-schema#_7": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_9", + "@type": [ + "http://a.ml/vocabularies/data#Scalar", + "http://a.ml/vocabularies/data#Node", + "http://a.ml/vocabularies/document#DomainElement" + ], + "http://a.ml/vocabularies/data#value": [ + { + "@value": "VIDEO" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_9/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_9/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/in/data-node_9" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(59,4)-(59,9)]" + } + ] + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationSchema": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/UNIVERSAL", + "@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://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 0 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "UNIVERSAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/UNIVERSAL/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/UNIVERSAL/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/UNIVERSAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(53,4)-(53,18)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/WEB", + "@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://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 1 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "WEB" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/WEB/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/WEB/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/WEB" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(54,4)-(54,12)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/IMAGES", + "@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://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 2 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "IMAGES" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/IMAGES/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/IMAGES/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/IMAGES" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(55,4)-(55,15)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/LOCAL", + "@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://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 3 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "LOCAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/LOCAL/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/LOCAL/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/LOCAL" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(56,4)-(56,14)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/NEWS", + "@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://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 4 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "NEWS" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/NEWS/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/NEWS/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/NEWS" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(57,4)-(57,13)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/PRODUCTS", + "@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://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 5 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "PRODUCTS" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/PRODUCTS/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/PRODUCTS/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/PRODUCTS" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(58,4)-(58,17)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/VIDEO", + "@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://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 6 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "VIDEO" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/VIDEO/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/VIDEO/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/property/property/VIDEO" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(59,4)-(59,14)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/shape/default-node" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(52,2)-(60,3)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(52,2)-(60,3)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply", + "@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#property": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/message", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/message/scalar/default-scalar", + "@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://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/message/scalar/default-scalar/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/message/scalar/default-scalar/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/message/scalar/default-scalar" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(66,2)-(66,8)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 1 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "message" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/message/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/message/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/message" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(66,2)-(66,21)]" + } + ] + } + ] + } + ] + }, + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other", + "@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://a.ml/vocabularies/shapes#range": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other/scalar/SearchRequest.Corpus", + "@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://a.ml/vocabularies/document#link-target": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/scalar/.helloworld.SearchRequest.Corpus" + } + ], + "http://a.ml/vocabularies/document#link-label": [ + { + "@value": "SearchRequest.Corpus" + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "SearchRequest.Corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other/scalar/SearchRequest.Corpus/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#synthesized-field": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other/scalar/SearchRequest.Corpus/source-map/synthesized-field/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "http://a.ml/vocabularies/document#link-target" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "true" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other/scalar/SearchRequest.Corpus/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other/scalar/SearchRequest.Corpus" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(67,2)-(67,22)]" + } + ] + } + ] + } + ] + } + ], + "http://a.ml/vocabularies/shapes#serializationOrder": [ + { + "@value": 2 + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": "other" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/property/property/other" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(67,2)-(67,33)]" + } + ] + } + ] + } + ] + } + ], + "http://www.w3.org/ns/shacl#name": [ + { + "@value": ".helloworld.HelloReply" + } + ], + "http://a.ml/vocabularies/core#name": [ + { + "@value": "HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#sources": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/source-map", + "@type": [ + "http://a.ml/vocabularies/document-source-maps#SourceMap" + ], + "http://a.ml/vocabularies/document-source-maps#lexical": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/source-map/lexical/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "[(65,0)-(68,1)]" + } + ] + } + ], + "http://a.ml/vocabularies/document-source-maps#declared-element": [ + { + "@id": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply/source-map/declared-element/element_0", + "http://a.ml/vocabularies/document-source-maps#element": [ + { + "@value": "file://amf-cli/shared/src/test/resources/upanddown/grpc/simple.proto#/declares/shape/.helloworld.HelloReply" + } + ], + "http://a.ml/vocabularies/document-source-maps#value": [ + { + "@value": "" + } + ] + } + ] + } + ] + } + ] + } +] diff --git a/demo/index.js b/demo/index.js index 3233c06..8d50262 100644 --- a/demo/index.js +++ b/demo/index.js @@ -99,6 +99,7 @@ class ApiDemo extends ApiDemoPage { _apiListTemplate() { return [ + ['grpc-test', 'GRPC test'], ['shopper-products', 'shopper-products'], ['demo-api', 'Demo API'], ['avro', 'avro'], diff --git a/package-lock.json b/package-lock.json index 76c3121..596483d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,19 @@ { "name": "@api-components/api-type-document", - "version": "4.2.34", + "version": "4.2.35", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@api-components/api-type-document", - "version": "4.2.34", + "version": "4.2.35", "license": "Apache-2.0", "dependencies": { "@advanced-rest-client/arc-marked": "^1.1.0", + "@advanced-rest-client/icons": "^4.0.2", "@advanced-rest-client/markdown-styles": "^3.1.4", "@anypoint-web-components/anypoint-button": "^1.2.3", - "@api-components/amf-helper-mixin": "^4.5.29", + "@api-components/amf-helper-mixin": "^4.5.34", "@api-components/api-annotation-document": "^4.1.0", "@api-components/api-resource-example-document": "^4.3.3", "@open-wc/dedupe-mixin": "^1.3.0", @@ -220,6 +221,16 @@ "@open-wc/dedupe-mixin": "^1.3.0" } }, + "node_modules/@advanced-rest-client/icons": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/icons/-/icons-4.0.2.tgz", + "integrity": "sha512-iO36eRTBY0uugWND7y0wFs0v3A5l6cZeNadpNIlwFRkf+USONlbru7QrC52AmvfE88F2Sk+kmg69qkMSy2q+Dg==", + "license": "Apache-2.0", + "dependencies": { + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + }, "node_modules/@advanced-rest-client/json-table": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@advanced-rest-client/json-table/-/json-table-3.3.1.tgz", @@ -578,9 +589,10 @@ } }, "node_modules/@api-components/amf-helper-mixin": { - "version": "4.5.29", - "resolved": "https://registry.npmjs.org/@api-components/amf-helper-mixin/-/amf-helper-mixin-4.5.29.tgz", - "integrity": "sha512-SvwsUrbyij4sagr1/TWdA+atvGEkBBwZeX3VGnWlXLKlBiGS9zdJHoFTeMAeR3jtspu9UkyLOIZ5KU5Gt+BkHg==", + "version": "4.5.34", + "resolved": "https://registry.npmjs.org/@api-components/amf-helper-mixin/-/amf-helper-mixin-4.5.34.tgz", + "integrity": "sha512-zw3169JqvFI4FpJY2ne9mfI0Z70rs4xpxve/cxPHsVQLbBJyAtjsGt/3xMm52ci5uVHtzdQ5yVTSrlHUDtA0LA==", + "license": "Apache-2.0", "dependencies": { "amf-json-ld-lib": "0.0.14" } @@ -15652,6 +15664,15 @@ "@open-wc/dedupe-mixin": "^1.3.0" } }, + "@advanced-rest-client/icons": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@advanced-rest-client/icons/-/icons-4.0.2.tgz", + "integrity": "sha512-iO36eRTBY0uugWND7y0wFs0v3A5l6cZeNadpNIlwFRkf+USONlbru7QrC52AmvfE88F2Sk+kmg69qkMSy2q+Dg==", + "requires": { + "lit-element": "^2.5.1", + "lit-html": "^1.4.1" + } + }, "@advanced-rest-client/json-table": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@advanced-rest-client/json-table/-/json-table-3.3.1.tgz", @@ -16008,9 +16029,9 @@ } }, "@api-components/amf-helper-mixin": { - "version": "4.5.29", - "resolved": "https://registry.npmjs.org/@api-components/amf-helper-mixin/-/amf-helper-mixin-4.5.29.tgz", - "integrity": "sha512-SvwsUrbyij4sagr1/TWdA+atvGEkBBwZeX3VGnWlXLKlBiGS9zdJHoFTeMAeR3jtspu9UkyLOIZ5KU5Gt+BkHg==", + "version": "4.5.34", + "resolved": "https://registry.npmjs.org/@api-components/amf-helper-mixin/-/amf-helper-mixin-4.5.34.tgz", + "integrity": "sha512-zw3169JqvFI4FpJY2ne9mfI0Z70rs4xpxve/cxPHsVQLbBJyAtjsGt/3xMm52ci5uVHtzdQ5yVTSrlHUDtA0LA==", "requires": { "amf-json-ld-lib": "0.0.14" } diff --git a/package.json b/package.json index 6ed8566..0594169 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@api-components/api-type-document", "description": "A documentation table for type (resource) properties. Works with AMF data model", - "version": "4.2.34", + "version": "4.2.35", "license": "Apache-2.0", "main": "index.js", "module": "index.js", @@ -26,9 +26,10 @@ }, "dependencies": { "@advanced-rest-client/arc-marked": "^1.1.0", + "@advanced-rest-client/icons": "^4.0.2", "@advanced-rest-client/markdown-styles": "^3.1.4", "@anypoint-web-components/anypoint-button": "^1.2.3", - "@api-components/amf-helper-mixin": "^4.5.29", + "@api-components/amf-helper-mixin": "^4.5.34", "@api-components/api-annotation-document": "^4.1.0", "@api-components/api-resource-example-document": "^4.3.3", "@open-wc/dedupe-mixin": "^1.3.0", diff --git a/src/ApiTypeDocument.d.ts b/src/ApiTypeDocument.d.ts index 054269b..a031fed 100644 --- a/src/ApiTypeDocument.d.ts +++ b/src/ApiTypeDocument.d.ts @@ -54,6 +54,23 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { selectedMediaType: number; // The type after it has been resolved. _resolvedType: Object; + /** + * Computed properties for object types. + * This is a reactive property that is recalculated when type, amf, or renderReadOnly changes. + */ + _computedProperties: any[] | undefined; + /** + * Resolved type for examples with all link-target references resolved + */ + _resolvedExampleType: Object | undefined; + /** + * Whether to show the examples section + */ + _showExamples: boolean | undefined; + /** + * Effective media type for examples + */ + _exampleMediaType: string | undefined; /** * Should be set if described properties has a parent type. * This is used when recursively iterating over properties. @@ -242,6 +259,15 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { */ _computeProperties(item: any): any[]|undefined; + /** + * Deeply resolves link-target references in a type and its nested properties. + * This is essential for rendering complete examples with nested objects. + * + * @param type The type to resolve + * @returns The type with all link-target references resolved + */ + _deepResolveType(type: any): any|undefined; + /** * Computes list values for `andTypes` property. * @param items List of OAS' "and" properties diff --git a/src/ApiTypeDocument.js b/src/ApiTypeDocument.js index 869dea8..66cda01 100644 --- a/src/ApiTypeDocument.js +++ b/src/ApiTypeDocument.js @@ -68,6 +68,22 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { selectedMediaType: { type: Number }, // The type after it has been resolved. _resolvedType: { type: Object }, + /** + * Computed properties from the resolved type + */ + _computedProperties: { type: Array }, + /** + * Resolved type for examples with all link-target references resolved + */ + _resolvedExampleType: { type: Object }, + /** + * Whether to show the examples section + */ + _showExamples: { type: Boolean }, + /** + * Effective media type for examples + */ + _exampleMediaType: { type: String }, /** * Should be set if described properties has a parent type. * This is used when recursively iterating over properties. @@ -325,6 +341,10 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { */ this.selectedAnyOf = undefined; this.renderReadOnly = false; + this.noMainExample = false; + this._hasExamples = false; + this._renderMainExample = false; + this._cachedDeepResolvedType = undefined; this._isPropertyReadOnly = this._isPropertyReadOnly.bind(this); this.noMediaSelector = false; @@ -345,6 +365,37 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { return isScalar ? false : !!(!noMainExample && hasExamples); } + /** + * Called when properties change + * @param {Map} changedProperties Changed properties + */ + updated(changedProperties) { + super.updated(changedProperties); + + // If amf changed and we have a type, recalculate properties synchronously + if (changedProperties.has('amf') && this._resolvedType && this.amf) { + // Cancel any pending debounced calls and recalculate + this.__typeChangeDebouncer = false; + this._typeChanged(this._resolvedType); + // _typeChanged will update _computedProperties, _isGrpcApi, and _deepResolvedType + } + + // If renderReadOnly changed and we have an object, recalculate properties + // This is needed because _filterReadOnlyProperties depends on this.renderReadOnly + if (changedProperties.has('renderReadOnly') && this._resolvedType && this.isObject) { + this._computedProperties = this._computeProperties(this._resolvedType); + } + + // If noMainExample changed, recalculate whether to render examples + if (changedProperties.has('noMainExample') && this._resolvedType) { + this._showExamples = !this.noMainExample && ( + this.renderMediaSelector || + this.isObject || + this._renderMainExample + ); + } + } + /** * Called when resolved type or amf changed. * Creates a debouncer to compute UI values so it's independent of @@ -455,6 +506,32 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { this.isAnd = isAnd; this.isOneOf = isOneOf; this.isAnyOf = isAnyOf; + + // Compute properties for objects - this needs to be reactive + if (isObject) { + this._computedProperties = this._computeProperties(type); + } else { + this._computedProperties = undefined; + } + + // Always deep resolve for examples (resolves link-target references for gRPC and similar) + // This is cheap if there are no link-targets + if (type) { + this._resolvedExampleType = this._deepResolveType(type); + } else { + this._resolvedExampleType = type; + } + + // Determine if we should show the examples section + // Priority: noMainExample (hide) > renderMediaSelector (show) > isObject (show) > _renderMainExample + this._showExamples = !this.noMainExample && ( + this.renderMediaSelector || // Need to show the section for the media type selector + isObject || // Objects can generate examples automatically + this._renderMainExample // Has explicit examples + ); + + // Effective media type - use 'application/json' as default for objects without mediaType + this._exampleMediaType = this.mediaType || (isObject ? 'application/json' : undefined); } /** @@ -539,6 +616,91 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { return this._resolve(item); } + + /** + * Deeply resolves link-target references in a type for example generation. + * This ensures that nested objects show their full structure in examples. + * This is needed for APIs like gRPC where nested types use link-target references. + * + * @param {Object} type The type to resolve + * @return {Object} The deeply resolved type + */ + _deepResolveType(type) { + if (!type || !this.amf) { + return type; + } + + const resolved = this._resolve(type); + if (!resolved) { + return type; + } + + // Get properties + const propertyKey = this._getAmfKey(this.ns.w3.shacl.property); + const properties = this._ensureArray(resolved[propertyKey]); + + if (!properties || !properties.length) { + return resolved; + } + + // Create a new type object with deeply resolved properties + const deepResolved = { ...resolved }; + const linkTargetKey = this._getAmfKey(this.ns.aml.vocabularies.document.linkTarget); + const rangeKey = this._getAmfKey(this.ns.raml.vocabularies.shapes.range); + + // Resolve each property's range + const resolvedProperties = properties.map(prop => { + const resolvedProp = this._resolve(prop); + if (!resolvedProp) { + return prop; + } + + const range = this._ensureArray(resolvedProp[rangeKey])[0]; + if (!range) { + return resolvedProp; + } + + // If the range has a link-target, resolve it + if (range[linkTargetKey]) { + const linkTargetId = this._ensureArray(range[linkTargetKey])[0]; + if (linkTargetId && linkTargetId['@id']) { + const targetId = linkTargetId['@id']; + + // Find the target + const declares = this._computeDeclares(this.amf); + let target = declares ? this._findById(declares, targetId) : undefined; + + if (!target) { + const references = this._computeReferences(this.amf); + if (references && references.length) { + for (let i = 0; i < references.length && !target; i++) { + const refDeclares = this._computeDeclares(references[i]); + if (refDeclares) { + target = this._findById(refDeclares, targetId); + } + } + } + } + + // If target found, replace the range with the resolved target + if (target) { + const resolvedTarget = this._resolve(target); + if (resolvedTarget) { + const newProp = { ...resolvedProp }; + newProp[rangeKey] = [resolvedTarget]; + return newProp; + } + } + } + } + + return resolvedProp; + }); + + deepResolved[propertyKey] = resolvedProperties; + return deepResolved; + } + /** * Helper function for the view. Extracts `http://www.w3.org/ns/shacl#property` * from the shape model @@ -554,16 +716,65 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { return item; } + // For objects with link-target, we need to find the actual target with properties + const linkTargetKey = this._getAmfKey(this.ns.aml.vocabularies.document.linkTarget); + let resolvedItem = item; + + if (item[linkTargetKey] && this.amf) { + const linkTargetId = this._ensureArray(item[linkTargetKey])[0]; + if (linkTargetId && linkTargetId['@id']) { + const targetId = linkTargetId['@id']; + // Try to find the target in declares + const declares = this._computeDeclares(this.amf); + let target = declares ? this._findById(declares, targetId) : undefined; + + // If not found in declares, search in references + if (!target) { + const references = this._computeReferences(this.amf); + if (references && references.length) { + for (let i = 0; i < references.length && !target; i++) { + const refDeclares = this._computeDeclares(references[i]); + if (refDeclares) { + target = this._findById(refDeclares, targetId); + } + } + } + } + + // If we found the target and it has properties, use it + // Don't use the target directly to avoid caching issues + const propertyKey = this._getAmfKey(this.ns.w3.shacl.property); + if (target && target[propertyKey]) { + // Use the target's properties but keep the original item structure + // This prevents issues with cached __apicResolved flags + resolvedItem = this._resolve(target); + // If resolve returned the same object or failed, fallback to standard resolve + if (!resolvedItem || !resolvedItem[propertyKey]) { + resolvedItem = this._resolve(item); + } + } + } + } + + // Fallback to standard resolve if no link-target or target not found + if (resolvedItem === item) { + resolvedItem = this._resolve(item); + } + + if (!resolvedItem) { + return undefined; + } + const propertyKey = this._getAmfKey(this.ns.w3.shacl.property); - const itemProperties = this._ensureArray(item[propertyKey]||[]) + const itemProperties = this._ensureArray(resolvedItem[propertyKey]||[]) const additionalPropertiesKey = this._getAmfKey(this.ns.w3.shacl.additionalPropertiesSchema); // If the item doesn't have additional properties, filter the read-only properties and return - if (!item[additionalPropertiesKey]) { + if (!resolvedItem[additionalPropertiesKey]) { return this._filterReadOnlyProperties(itemProperties) } - const additionalPropertiesSchema = this._ensureArray(item[additionalPropertiesKey]) + const additionalPropertiesSchema = this._ensureArray(resolvedItem[additionalPropertiesKey]) // If the item does have additional properties, ensure they are in an array const additionalProperties = this._ensureArray(additionalPropertiesSchema[0][propertyKey] || additionalPropertiesSchema[0]) @@ -681,7 +892,7 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { * @return {TemplateResult[]|string} Templates for object properties */ _objectTemplate() { - const items = this._computeProperties(this._resolvedType); + const items = this._computedProperties; if (!items || !items.length) { return ''; } @@ -917,8 +1128,16 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { parts += 'code-content-action-button-active, code-wrapper, example-code-wrapper, markdown-html'; const mediaTypes = (this.mediaTypes || []); + // Use cached values if available, otherwise fallback to computed values + const shouldRenderExamples = this._showExamples !== undefined + ? this._showExamples + : this._renderMainExample; + const exampleMediaType = this._exampleMediaType !== undefined + ? this._exampleMediaType + : (this.mediaType || (this.isObject ? 'application/json' : undefined)); + return html` -
+ ${shouldRenderExamples ? html`
${this.shouldRenderMediaSelector ? html`
Media type: @@ -943,18 +1162,18 @@ export class ApiTypeDocument extends PropertyDocumentMixin(LitElement) { -
+
` : ''} ${this.isObject ? this._objectTemplate() : ''} ${this.isArray ? this._arrayTemplate() : ''} diff --git a/test/api-type-document.test.js b/test/api-type-document.test.js index b5282bf..d278b7c 100644 --- a/test/api-type-document.test.js +++ b/test/api-type-document.test.js @@ -1325,4 +1325,255 @@ describe('', () => { await assert.isAccessible(element); }); }); + + describe('_deepResolveType()', () => { + let element = /** @type ApiTypeDocument */ (null); + + beforeEach(async () => { + element = await basicFixture(); + }); + + it('returns undefined when no type provided', () => { + const result = element._deepResolveType(undefined); + assert.isUndefined(result); + }); + + it('returns type without properties unchanged', async () => { + const data = await AmfLoader.loadType('ScalarType', false); + element.amf = data[0]; + const type = element._resolve(data[1]); + const result = element._deepResolveType(type); + assert.typeOf(result, 'object'); + }); + + it('resolves properties with link-target references', async () => { + const data = await AmfLoader.load(false, 'grpc-test'); + element.amf = data; + const webApi = element._computeWebApi(data); + const opKey = element._getAmfKey( + element.ns.aml.vocabularies.apiContract.supportedOperation + ); + const operations = element._ensureArray(webApi[opKey]); + if (!operations || operations.length === 0) { + // Skip test if gRPC data is not available + return; + } + const operation = operations.find(op => { + const name = element._getValue(op, element.ns.aml.vocabularies.core.name); + return name === 'SayHello1'; + }); + if (!operation) { + // Skip if operation not found + return; + } + const expects = element._computeExpects(operation); + const payload = element._computePayload(expects)[0]; + const key = element._getAmfKey(element.ns.aml.vocabularies.shapes.schema); + let schema = payload && payload[key]; + schema = schema instanceof Array ? schema[0] : schema; + const resolved = element._resolve(schema); + + const result = element._deepResolveType(resolved); + assert.typeOf(result, 'object'); + const propsKey = element._getAmfKey(element.ns.w3.shacl.property); + assert.isDefined(result[propsKey], 'Should have properties'); + }); + + it('handles nested link-target references', async () => { + const data = await AmfLoader.load(false, 'grpc-test'); + element.amf = data; + const webApi = element._computeWebApi(data); + const opKey = element._getAmfKey( + element.ns.aml.vocabularies.apiContract.supportedOperation + ); + const operations = element._ensureArray(webApi[opKey]); + if (!operations || operations.length === 0) { + // Skip test if gRPC data is not available + return; + } + const operation = operations.find(op => { + const name = element._getValue(op, element.ns.aml.vocabularies.core.name); + return name === 'SayHello1'; + }); + if (!operation) { + // Skip if operation not found + return; + } + const expects = element._computeExpects(operation); + const payload = element._computePayload(expects)[0]; + const key = element._getAmfKey(element.ns.aml.vocabularies.shapes.schema); + let schema = payload && payload[key]; + schema = schema instanceof Array ? schema[0] : schema; + const resolved = element._resolve(schema); + + const result = element._deepResolveType(resolved); + const propsKey = element._getAmfKey(element.ns.w3.shacl.property); + const properties = result[propsKey]; + + if (properties && properties.length > 0) { + // Check that nested properties were resolved + properties.forEach(prop => { + const rangeKey = element._getAmfKey(element.ns.aml.vocabularies.shapes.range); + const range = prop[rangeKey]; + if (range) { + const rangeItem = Array.isArray(range) ? range[0] : range; + assert.isDefined(rangeItem, 'Range should be defined'); + } + }); + } + }); + }); + + describe('Reactive computed properties', () => { + let element = /** @type ApiTypeDocument */ (null); + + beforeEach(async () => { + element = await basicFixture(); + }); + + it('computes _computedProperties when isObject is true', async () => { + const data = await AmfLoader.loadType('Notification', false); + element.amf = data[0]; + element.type = data[1]; + await aTimeout(0); + + assert.isTrue(element.isObject); + assert.isDefined(element._computedProperties); + assert.isArray(element._computedProperties); + }); + + it('sets _computedProperties to undefined when not an object', async () => { + const data = await AmfLoader.loadType('ScalarType', false); + element.amf = data[0]; + element.type = data[1]; + await aTimeout(0); + + assert.isTrue(element.isScalar); + assert.isUndefined(element._computedProperties); + }); + + it('updates _computedProperties when type changes', async () => { + const data1 = await AmfLoader.loadType('Notification', false); + element.amf = data1[0]; + element.type = data1[1]; + await aTimeout(0); + + const props1 = element._computedProperties; + assert.isDefined(props1); + const length1 = props1.length; + + const data2 = await AmfLoader.loadType('Image', false); + element.type = data2[1]; + await nextFrame(); + await aTimeout(0); + + const props2 = element._computedProperties; + assert.isDefined(props2); + // Different types may have different number of properties + assert.typeOf(props2, 'array'); + }); + + it('updates _computedProperties when renderReadOnly changes', async () => { + const data = await AmfLoader.loadType('Article', false, 'read-only-properties'); + element.amf = data[0]; + element.type = data[1]; + element.renderReadOnly = false; + await nextFrame(); + await aTimeout(0); + + const props1 = element._computedProperties; + assert.isDefined(props1); + const length1 = props1.length; + + element.renderReadOnly = true; + await nextFrame(); + await aTimeout(0); + + const props2 = element._computedProperties; + assert.isDefined(props2); + assert.isAbove(props2.length, length1, 'Should have more properties when renderReadOnly is true'); + }); + + it('updates _computedProperties when amf changes', async () => { + const data1 = await AmfLoader.loadType('Notification', false); + element.amf = data1[0]; + element.type = data1[1]; + await aTimeout(0); + + assert.isDefined(element._computedProperties); + + // Reload the same model (simulating amf change) + const data2 = await AmfLoader.loadType('Notification', false); + element.amf = data2[0]; + await nextFrame(); + await aTimeout(0); + + assert.isDefined(element._computedProperties, 'Should recompute properties after amf change'); + }); + }); + + describe('Example rendering with deep resolution', () => { + let element = /** @type ApiTypeDocument */ (null); + + beforeEach(async () => { + element = await basicFixture(); + }); + + it('renders examples section for objects', async () => { + const data = await AmfLoader.loadType('Notification', false); + element.amf = data[0]; + element.type = data[1]; + await aTimeout(0); + + const examplesSection = element.shadowRoot.querySelector('.examples'); + assert.exists(examplesSection); + }); + + it('passes resolved type to api-resource-example-document', async () => { + const data = await AmfLoader.loadType('Notification', false); + element.amf = data[0]; + element.type = data[1]; + await aTimeout(0); + + const exampleDoc = element.shadowRoot.querySelector('api-resource-example-document'); + assert.exists(exampleDoc); + assert.isDefined(exampleDoc.examples); + }); + + it('sets mediaType when provided', async () => { + const data = await AmfLoader.loadType('Notification', false); + element.amf = data[0]; + element.type = data[1]; + element.mediaType = 'application/json'; + await aTimeout(0); + + const exampleDoc = element.shadowRoot.querySelector('api-resource-example-document'); + assert.exists(exampleDoc); + assert.equal(exampleDoc.mediaType, 'application/json'); + }); + + it('uses default mediaType when not provided for objects', async () => { + const data = await AmfLoader.loadType('Notification', false); + element.amf = data[0]; + element.type = data[1]; + // Don't set mediaType + await aTimeout(0); + + const exampleDoc = element.shadowRoot.querySelector('api-resource-example-document'); + assert.exists(exampleDoc); + assert.equal(exampleDoc.mediaType, 'application/json'); + }); + + it('does not render examples when noMainExample is true', async () => { + const data = await AmfLoader.loadType('Notification', false); + element.amf = data[0]; + element.noMainExample = true; + element.type = data[1]; + await element.updateComplete; + await nextFrame(); + + const examplesSection = element.shadowRoot.querySelector('.examples'); + assert.notExists(examplesSection); + }); + }); }); diff --git a/test/grpc.test.js b/test/grpc.test.js new file mode 100644 index 0000000..efde6a5 --- /dev/null +++ b/test/grpc.test.js @@ -0,0 +1,222 @@ +import { fixture, assert, html, aTimeout, nextFrame } from '@open-wc/testing'; +import { AmfLoader } from './amf-loader.js'; +import '../api-type-document.js'; + +/** @typedef {import('..').ApiTypeDocument} ApiTypeDocument */ + +describe(' - gRPC', () => { + /** + * @param {*} amf + * @param {*} type + * @returns {Promise} + */ + async function basicFixture(amf, type) { + return fixture(html``); + } + + function getGrpcPayloadType(element, model, operationName) { + const webApi = element._computeWebApi(model); + + // In gRPC, operations are inside endpoints + const endpointKey = element._getAmfKey(element.ns.aml.vocabularies.apiContract.endpoint); + const endpoints = element._ensureArray(webApi[endpointKey]); + if (!endpoints || endpoints.length === 0) { + return undefined; + } + + const opKey = element._getAmfKey(element.ns.aml.vocabularies.apiContract.supportedOperation); + let operation; + + // Search through all endpoints for the operation + for (let i = 0; i < endpoints.length; i++) { + const endpoint = endpoints[i]; + const operations = element._ensureArray(endpoint[opKey]); + if (!operations) continue; + + for (let j = 0; j < operations.length; j++) { + const op = operations[j]; + const name = element._getValue(op, element.ns.aml.vocabularies.core.name); + if (name === operationName) { + operation = op; + break; + } + } + if (operation) break; + } + + if (!operation) { + return undefined; + } + + const expects = element._computeExpects(operation); + const payload = element._computePayload(expects); + if (!payload || payload.length === 0) { + return undefined; + } + + const key = element._getAmfKey(element.ns.aml.vocabularies.shapes.schema); + let schema = payload[0] && payload[0][key]; + if (!schema) { + return undefined; + } + schema = schema instanceof Array ? schema[0] : schema; + return schema; + } + + describe('Regular model', () => { + const compact = false; + let element; + let amf; + + before(async () => { + amf = await AmfLoader.load(compact, 'grpc-test'); + }); + + describe('link-target resolution', () => { + beforeEach(async () => { + // Create a temporary element to use its helper methods + const tempElement = await basicFixture(amf, undefined); + const type = getGrpcPayloadType(tempElement, amf, 'SayHello1'); + element = await basicFixture(amf, type); + await aTimeout(0); + }); + + it('computes properties for object with link-target', () => { + assert.isTrue(element.isObject, 'Should be an object'); + assert.isDefined(element._computedProperties, 'Should have computed properties'); + assert.isArray(element._computedProperties, 'Computed properties should be an array'); + }); + + it('resolves nested link-target references', () => { + const properties = element._computedProperties; + assert.isAbove(properties.length, 0, 'Should have at least one property'); + + // Verify that properties are objects with expected structure + properties.forEach(prop => { + assert.typeOf(prop, 'object', 'Each property should be an object'); + assert.isDefined(prop['@type'], 'Property should have @type'); + }); + }); + + it('renders property-shape-document for each property', async () => { + await nextFrame(); + const propertyDocs = element.shadowRoot.querySelectorAll('property-shape-document.object-document'); + assert.isAbove(propertyDocs.length, 0, 'Should render at least one property document'); + }); + }); + + describe('_deepResolveType()', () => { + beforeEach(async () => { + const tempElement = await basicFixture(amf, undefined); + const type = getGrpcPayloadType(tempElement, amf, 'SayHello1'); + element = await basicFixture(amf, type); + await aTimeout(0); + }); + + it('deeply resolves link-target references in properties', () => { + const resolved = element._deepResolveType(element._resolvedType); + assert.isDefined(resolved, 'Should return a resolved type'); + + // Get properties + const propsKey = element._getAmfKey(element.ns.w3.shacl.property); + const properties = resolved[propsKey]; + + if (properties && properties.length > 0) { + properties.forEach(prop => { + const rangeKey = element._getAmfKey(element.ns.aml.vocabularies.shapes.range); + const range = prop[rangeKey]; + if (range && range.length > 0) { + const rangeItem = Array.isArray(range) ? range[0] : range; + // If it had a link-target, it should now be resolved + const linkTarget = element._getLinkTarget(rangeItem); + // Either it's not a link, or if it is a link, the target should be accessible + if (!linkTarget) { + assert.isDefined(rangeItem['@type'], 'Range should have @type'); + } + } + }); + } + }); + + it('returns type with resolved nested objects', () => { + const resolved = element._deepResolveType(element._resolvedType); + const propsKey = element._getAmfKey(element.ns.w3.shacl.property); + const properties = resolved[propsKey]; + + assert.isDefined(properties, 'Resolved type should have properties'); + assert.isArray(properties, 'Properties should be an array'); + }); + }); + + describe('example rendering', () => { + beforeEach(async () => { + const tempElement = await basicFixture(amf, undefined); + const type = getGrpcPayloadType(tempElement, amf, 'SayHello1'); + element = await basicFixture(amf, type); + await aTimeout(0); + }); + + it('renders examples section for object types', () => { + const examplesSection = element.shadowRoot.querySelector('.examples'); + assert.exists(examplesSection, 'Examples section should be rendered'); + }); + + it('passes deeply resolved type to api-resource-example-document', () => { + const exampleDoc = element.shadowRoot.querySelector('api-resource-example-document'); + assert.exists(exampleDoc, 'Example document should exist'); + assert.isDefined(exampleDoc.examples, 'Examples should be passed'); + }); + + it('sets default mediaType for gRPC', () => { + const exampleDoc = element.shadowRoot.querySelector('api-resource-example-document'); + assert.exists(exampleDoc, 'Example document should exist'); + // mediaType should be set (either from element or default to application/json) + assert.isDefined(exampleDoc.mediaType, 'MediaType should be defined'); + }); + }); + + describe('reactive property updates', () => { + it('updates _computedProperties when type changes', async () => { + const tempElement = await basicFixture(amf, undefined); + const type1 = getGrpcPayloadType(tempElement, amf, 'SayHello1'); + element = await basicFixture(amf, type1); + await aTimeout(0); + + const props1 = element._computedProperties; + assert.isDefined(props1, 'Should have initial computed properties'); + + // Change to different operation + const type2 = getGrpcPayloadType(tempElement, amf, 'SayHello2'); + element.type = type2; + await nextFrame(); + await aTimeout(0); + + const props2 = element._computedProperties; + assert.isDefined(props2, 'Should have updated computed properties'); + }); + + it('updates _computedProperties when amf changes', async () => { + const tempElement = await basicFixture(amf, undefined); + const type = getGrpcPayloadType(tempElement, amf, 'SayHello1'); + element = await basicFixture(amf, type); + await aTimeout(0); + + const props1 = element._computedProperties; + assert.isDefined(props1, 'Should have initial computed properties'); + + // Update amf reference (simulate amf reload) + const newAmf = await AmfLoader.load(compact, 'grpc-test'); + element.amf = newAmf; + await nextFrame(); + await aTimeout(0); + + const props2 = element._computedProperties; + assert.isDefined(props2, 'Should have recomputed properties after amf change'); + }); + }); + }); +}); +