diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts b/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts index 58c26becff..cc45299b1e 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts @@ -49,14 +49,25 @@ import Amqp1ChannelBindingElement from '../elements/bindings/amqp1/Amqp1ChannelB import Amqp1MessageBindingElement from '../elements/bindings/amqp1/Amqp1MessageBinding'; import Amqp1OperationBindingElement from '../elements/bindings/amqp1/Amqp1OperationBinding'; import Amqp1ServerBindingElement from '../elements/bindings/amqp1/Amqp1ServerBinding'; +// Anypoint MQ +import AnypointmqChannelBindingElement from '../elements/bindings/anypointmq/AnypointmqChannelBinding'; +import AnypointmqMessageBindingElement from '../elements/bindings/anypointmq/AnypointmqMessageBinding'; +import AnypointmqOperationBindingElement from '../elements/bindings/anypointmq/AnypointmqOperationBinding'; +import AnypointmqServerBindingElement from '../elements/bindings/anypointmq/AnypointmqServerBinding'; // HTTP import HttpChannelBindingElement from '../elements/bindings/http/HttpChannelBinding'; import HttpMessageBindingElement from '../elements/bindings/http/HttpMessageBinding'; import HttpOperationBindingElement from '../elements/bindings/http/HttpOperationBinding'; import HttpServerBindingElement from '../elements/bindings/http/HttpServerBinding'; +// Google Cloud Pub/Sub +import GooglePubSubChannelBindingElement from '../elements/bindings/googlepubsub/GooglePubSubChannelBinding'; +import GooglePubSubMessageBindingElement from '../elements/bindings/googlepubsub/GooglePubSubMessageBinding'; +import GooglePubSubOperationBindingElement from '../elements/bindings/googlepubsub/GooglePubSubOperationBinding'; +import GooglePubSubServerBindingElement from '../elements/bindings/googlepubsub/GooglePubSubServerBinding'; // IBM MQ import IbmmqChannelBindingElement from '../elements/bindings/ibmmq/IbmmqChannelBinding'; import IbmmqMessageBindingElement from '../elements/bindings/ibmmq/IbmmqMessageBinding'; +import IbmmqOperationBindingElement from '../elements/bindings/ibmmq/IbmmqOperationBinding'; import IbmmqServerBindingElement from '../elements/bindings/ibmmq/IbmmqServerBinding'; // JMS import JmsChannelBindingElement from '../elements/bindings/jms/JmsChannelBinding'; @@ -68,11 +79,6 @@ import KafkaChannelBindingElement from '../elements/bindings/kafka/KafkaChannelB import KafkaMessageBindingElement from '../elements/bindings/kafka/KafkaMessageBinding'; import KafkaOperationBindingElement from '../elements/bindings/kafka/KafkaOperationBinding'; import KafkaServerBindingElement from '../elements/bindings/kafka/KafkaServerBinding'; -// Anypoint MQ -import AnypointmqChannelBindingElement from '../elements/bindings/anypointmq/AnypointmqChannelBinding'; -import AnypointmqMessageBindingElement from '../elements/bindings/anypointmq/AnypointmqMessageBinding'; -import AnypointmqOperationBindingElement from '../elements/bindings/anypointmq/AnypointmqOperationBinding'; -import AnypointmqServerBindingElement from '../elements/bindings/anypointmq/AnypointmqServerBinding'; // Mercure import MercureChannelBindingElement from '../elements/bindings/mercure/MercureChannelBinding'; import MercureMessageBindingElement from '../elements/bindings/mercure/MercureMessageBinding'; @@ -450,6 +456,43 @@ HttpServerBindingElement.refract = createRefractor([ 'ServerBinding', '$visitor', ]); +// Google Cloud Pub/Sub +GooglePubSubChannelBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'googlepubsub', + 'ChannelBinding', + '$visitor', +]); +GooglePubSubMessageBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'googlepubsub', + 'MessageBinding', + '$visitor', +]); +GooglePubSubOperationBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'googlepubsub', + 'OperationBinding', + '$visitor', +]); +GooglePubSubServerBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'googlepubsub', + 'ServerBinding', + '$visitor', +]); // IBM MQ IbmmqChannelBindingElement.refract = createRefractor([ 'visitors', @@ -469,6 +512,15 @@ IbmmqMessageBindingElement.refract = createRefractor([ 'MessageBinding', '$visitor', ]); +IbmmqOperationBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'ibmmq', + 'OperationBinding', + '$visitor', +]); IbmmqServerBindingElement.refract = createRefractor([ 'visitors', 'document', diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts b/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts index c5a01c6ac9..1d80b7e76e 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts @@ -154,61 +154,37 @@ import OperationTraitBindingsVisitor from './visitors/async-api-2/operation-trai */ // AMQP 0-9-1 import AmqpChannelBindingVisitor from './visitors/async-api-2/bindings/amqp/channel-binding'; -import AmqpChannelBindingIsVisitor from './visitors/async-api-2/bindings/amqp/channel-binding/IsVisitor'; -import AmqpChannelBindingExchangeVisitor from './visitors/async-api-2/bindings/amqp/channel-binding/ExchangeVisitor'; -import AmqpChannelBindingQueueVisitor from './visitors/async-api-2/bindings/amqp/channel-binding/QueueVisitor'; -import AmqpChannelBindingBindingVersionVisitor from './visitors/async-api-2/bindings/amqp/channel-binding/BindingVersionVisitor'; import AmqpMessageBindingVisitor from './visitors/async-api-2/bindings/amqp/message-binding'; -import AmqpMessageBindingContentEncodingVisitor from './visitors/async-api-2/bindings/amqp/message-binding/ContentEncodingVisitor'; -import AmqpMessageBindingMessageTypeVisitor from './visitors/async-api-2/bindings/amqp/message-binding/MessageTypeVisitor'; -import AmqpMessageBindingBindingVersionVisitor from './visitors/async-api-2/bindings/amqp/message-binding/BindingVersionVisitor'; import AmqpOperationBindingVisitor from './visitors/async-api-2/bindings/amqp/operation-binding'; -import AmqpOperationBindingExpirationVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/ExpirationVisitor'; -import AmqpOperationBindingUserIdVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/UserIdVisitor'; -import AmqpOperationBindingCcVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/CcVisitor'; -import AmqpOperationBindingPriorityVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/PriorityVisitor'; -import AmqpOperationBindingDeliveryModeVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/DeliveryModeVisitor'; -import AmqpOperationBindingMandatoryVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/MandatoryVisitor'; -import AmqpOperationBindingBccVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/BccVisitor'; -import AmqpOperationBindingReplyToVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/ReplyToVisitor'; -import AmqpOperationBindingTimestampVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/TimestampVisitor'; -import AmqpOperationBindingAckVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/AckVisitor'; -import AmqpOperationBindingBindingVersionVisitor from './visitors/async-api-2/bindings/amqp/operation-binding/BindingVersionVisitor'; import AmqpServerBindingVisitor from './visitors/async-api-2/bindings/amqp/server-binding'; // AMQP 1.0 import Amqp1ChannelBindingVisitor from './visitors/async-api-2/bindings/amqp1/channel-binding'; import Amqp1MessageBindingVisitor from './visitors/async-api-2/bindings/amqp1/message-binding'; import Amqp1OperationBindingVisitor from './visitors/async-api-2/bindings/amqp1/operation-binding'; import Amqp1ServerBindingVisitor from './visitors/async-api-2/bindings/amqp1/server-binding'; +// Anypoint MQ +import AnypointmqChannelBindingVisitor from './visitors/async-api-2/bindings/anypointmq/channel-binding'; +import AnypointmqMessageBindingVisitor from './visitors/async-api-2/bindings/anypointmq/message-binding'; +import AnypointmqMessageBindingHeadersVisitor from './visitors/async-api-2/bindings/anypointmq/message-binding/HeadersVisitor'; +import AnypointmqOperationBindingVisitor from './visitors/async-api-2/bindings/anypointmq/operation-binding'; +import AnypointmqServerBindingVisitor from './visitors/async-api-2/bindings/anypointmq/server-binding'; // HTTP import HttpChannelBindingVisitor from './visitors/async-api-2/bindings/http/channel-binding'; import HttpMessageBindingVisitor from './visitors/async-api-2/bindings/http/message-binding'; -import HttpMessageBindingBindingVersionVisitor from './visitors/async-api-2/bindings/http/message-binding/BindingVersionVisitor'; +import HttpMessageBindingHeadersVisitor from './visitors/async-api-2/bindings/http/message-binding/HeadersVisitor'; import HttpOperationBindingVisitor from './visitors/async-api-2/bindings/http/operation-binding'; -import HttpOperationBindingTypeVisitor from './visitors/async-api-2/bindings/http/operation-binding/TypeVisitor'; -import HttpOperationBindingMethodVisitor from './visitors/async-api-2/bindings/http/operation-binding/MethodVisitor'; -import HttpOperationBindingBindingVersionVisitor from './visitors/async-api-2/bindings/http/operation-binding/BindingVersionVisitor'; +import HttpOperationBindingQueryVisitor from './visitors/async-api-2/bindings/http/operation-binding/QueryVisitor'; import HttpServerBindingVisitor from './visitors/async-api-2/bindings/http/server-binding'; +// Google Cloud Pub/Sub +import GooglePubSubChannelBindingVisitor from './visitors/async-api-2/bindings/googlepubsub/channel-binding'; +import GooglePubSubMessageBindingVisitor from './visitors/async-api-2/bindings/googlepubsub/message-binding'; +import GooglePubSubOperationBindingVisitor from './visitors/async-api-2/bindings/googlepubsub/operation-binding'; +import GooglePubSubServerBindingVisitor from './visitors/async-api-2/bindings/googlepubsub/server-binding'; // IBM MQ import IbmmqChannelBindingVisitor from './visitors/async-api-2/bindings/ibmmq/channel-binding'; -import IbmmqChannelBindingBindingVersionVisitor from './visitors/async-api-2/bindings/ibmmq/channel-binding/BindingVersionVisitor'; -import IbmmqChannelBindingDestinationTypeVisitor from './visitors/async-api-2/bindings/ibmmq/channel-binding/DestinationTypeVisitor'; -import IbmmqChannelBindingMaxMsgLengthVisitor from './visitors/async-api-2/bindings/ibmmq/channel-binding/MaxMsgLengthVisitor'; -import IbmmqChannelBindingQueueVisitor from './visitors/async-api-2/bindings/ibmmq/channel-binding/QueueVisitor'; -import IbmmqChannelBindingTopicVisitor from './visitors/async-api-2/bindings/ibmmq/channel-binding/TopicVisitor'; import IbmmqMessageBindingVisitor from './visitors/async-api-2/bindings/ibmmq/message-binding'; -import IbmmqMessageBindingBindingVersionVisitor from './visitors/async-api-2/bindings/ibmmq/message-binding/BindingVersionVisitor'; -import IbmmqMessageBindingDescriptionVisitor from './visitors/async-api-2/bindings/ibmmq/message-binding/DescriptionVisitor'; -import IbmmqMessageBindingExpiryVisitor from './visitors/async-api-2/bindings/ibmmq/message-binding/ExpiryVisitor'; -import IbmmqMessageBindingHeadersVisitor from './visitors/async-api-2/bindings/ibmmq/message-binding/HeadersVisitor'; -import IbmmqMessageBindingTypeVisitor from './visitors/async-api-2/bindings/ibmmq/message-binding/TypeVisitor'; +import IbmmqOperationBindingVisitor from './visitors/async-api-2/bindings/ibmmq/operation-binding'; import IbmmqServerBindingVisitor from './visitors/async-api-2/bindings/ibmmq/server-binding'; -import IbmmqServerBindingBindingVersionVisitor from './visitors/async-api-2/bindings/ibmmq/server-binding/BindingVersionVisitor'; -import IbmmqServerBindingCcdtQueueManagerNameVisitor from './visitors/async-api-2/bindings/ibmmq/server-binding/CcdtQueueManagerNameVisitor'; -import IbmmqServerBindingCipherSpecVisitor from './visitors/async-api-2/bindings/ibmmq/server-binding/CipherSpecVisitor'; -import IbmmqServerBindingGroupIdVisitor from './visitors/async-api-2/bindings/ibmmq/server-binding/GroupIdVisitor'; -import IbmmqServerBindingHeartBeatIntervalVisitor from './visitors/async-api-2/bindings/ibmmq/server-binding/HeartBeatIntervalVisitor'; -import IbmmqServerBindingMultiEndpointServerVisitor from './visitors/async-api-2/bindings/ibmmq/server-binding/MultiEndpointServerVisitor'; // JMS import JmsChannelBindingVisitor from './visitors/async-api-2/bindings/jms/channel-binding'; import JmsMessageBindingVisitor from './visitors/async-api-2/bindings/jms/message-binding'; @@ -217,19 +193,11 @@ import JmsServerBindingVisitor from './visitors/async-api-2/bindings/jms/server- // Kafka import KafkaChannelBindingVisitor from './visitors/async-api-2/bindings/kafka/channel-binding'; import KafkaMessageBindingVisitor from './visitors/async-api-2/bindings/kafka/message-binding'; -import KafkaMessageBindingBindingVersionVisitor from './visitors/async-api-2/bindings/kafka/message-binding/BindingVersionVisitor'; +import KafkaMessageBindingKeyVisitor from './visitors/async-api-2/bindings/kafka/message-binding/KeyVisitor'; import KafkaOperationBindingVisitor from './visitors/async-api-2/bindings/kafka/operation-binding'; -import KafkaOperationBindingBindingVersionVisitor from './visitors/async-api-2/bindings/kafka/operation-binding/BindingVersionVisitor'; +import KafkaOperationBindingGroupIdVisitor from './visitors/async-api-2/bindings/kafka/operation-binding/GroupIdVisitor'; +import KafkaOperationBindingClientIdVisitor from './visitors/async-api-2/bindings/kafka/operation-binding/ClientIdVisitor'; import KafkaServerBindingVisitor from './visitors/async-api-2/bindings/kafka/server-binding'; -// Anypoint MQ -import AnypointmqChannelBindingVisitor from './visitors/async-api-2/bindings/anypointmq/channel-binding'; -import AnypointmqChannelBindingDestinationVisitor from './visitors/async-api-2/bindings/anypointmq/channel-binding/DestinationVisitor'; -import AnypointmqChannelBindingDestinationTypeVisitor from './visitors/async-api-2/bindings/anypointmq/channel-binding/DestinationTypeVisitor'; -import AnypointmqChannelBindingBindingVersionVisitor from './visitors/async-api-2/bindings/anypointmq/channel-binding/BindingVersionVisitor'; -import AnypointmqMessageBindingVisitor from './visitors/async-api-2/bindings/anypointmq/message-binding'; -import AnypointmqMessageBindingBindingVersionVisitor from './visitors/async-api-2/bindings/anypointmq/message-binding/BindingVersionVisitor'; -import AnypointmqOperationBindingVisitor from './visitors/async-api-2/bindings/anypointmq/operation-binding'; -import AnypointmqServerBindingVisitor from './visitors/async-api-2/bindings/anypointmq/server-binding'; // Mercure import MercureChannelBindingVisitor from './visitors/async-api-2/bindings/mercure/channel-binding'; import MercureMessageBindingVisitor from './visitors/async-api-2/bindings/mercure/message-binding'; @@ -238,17 +206,8 @@ import MercureServerBindingVisitor from './visitors/async-api-2/bindings/mercure // MQTT import MqttChannelBindingVisitor from './visitors/async-api-2/bindings/mqtt/channel-binding'; import MqttMessageBindingVisitor from './visitors/async-api-2/bindings/mqtt/message-binding'; -import MqttMessageBindingBindingVersionVisitor from './visitors/async-api-2/bindings/mqtt/message-binding/BindingVersionVisitor'; import MqttOperationBindingVisitor from './visitors/async-api-2/bindings/mqtt/operation-binding'; -import MqttOperationBindingQosVisitor from './visitors/async-api-2/bindings/mqtt/operation-binding/QosVisitor'; -import MqttOperationBindingRetainVisitor from './visitors/async-api-2/bindings/mqtt/operation-binding/RetainVisitor'; -import MqttOperationBindingBindingVersionVisitor from './visitors/async-api-2/bindings/mqtt/operation-binding/BindingVersionVisitor'; import MqttServerBindingVisitor from './visitors/async-api-2/bindings/mqtt/server-binding'; -import MqttServerBindingClientIdVisitor from './visitors/async-api-2/bindings/mqtt/server-binding/ClientIdVisitor'; -import MqttServerBindingCleanSessionVisitor from './visitors/async-api-2/bindings/mqtt/server-binding/CleanSessionVisitor'; -import MqttServerBindingLastWillVisitor from './visitors/async-api-2/bindings/mqtt/server-binding/LastWillVisitor'; -import MqttServerBindingKeepAliveVisitor from './visitors/async-api-2/bindings/mqtt/server-binding/KeepAliveVisitor'; -import MqttServerBindingBindingVersionVisitor from './visitors/async-api-2/bindings/mqtt/server-binding/BindingVersionVisitor'; // MQTT 5 import Mqtt5ChannelBindingVisitor from './visitors/async-api-2/bindings/mqtt5/channel-binding'; import Mqtt5MessageBindingVisitor from './visitors/async-api-2/bindings/mqtt5/message-binding'; @@ -286,8 +245,8 @@ import StompOperationBindingVisitor from './visitors/async-api-2/bindings/stomp/ import StompServerBindingVisitor from './visitors/async-api-2/bindings/stomp/server-binding'; // WebSocket import WebSocketChannelBindingVisitor from './visitors/async-api-2/bindings/ws/channel-binding'; -import WebSocketChannelBindingMethodVisitor from './visitors/async-api-2/bindings/ws/channel-binding/MethodVisitor'; -import WebSocketChannelBindingBindingVersionVisitor from './visitors/async-api-2/bindings/ws/channel-binding/BindingVersionVisitor'; +import WebSocketChannelBindingHeadersVisitor from './visitors/async-api-2/bindings/ws/channel-binding/HeadersVisitor'; +import WebSocketChannelBindingQueryVisitor from './visitors/async-api-2/bindings/ws/channel-binding/QueryVisitor'; import WebSocketMessageBindingVisitor from './visitors/async-api-2/bindings/ws/message-binding'; import WebSocketOperationBindingVisitor from './visitors/async-api-2/bindings/ws/operation-binding'; import WebSocketServerBindingVisitor from './visitors/async-api-2/bindings/ws/server-binding'; @@ -689,6 +648,9 @@ const specification = { ibmmq: { $ref: '#/visitors/document/objects/bindings/ibmmq/ServerBinding', }, + googlepubsub: { + $ref: '#/visitors/document/objects/bindings/googlepubsub/ServerBinding', + }, }, }, Parameters: { @@ -756,6 +718,9 @@ const specification = { ibmmq: { $ref: '#/visitors/document/objects/bindings/ibmmq/ChannelBinding', }, + googlepubsub: { + $ref: '#/visitors/document/objects/bindings/googlepubsub/ChannelBinding', + }, }, }, OperationBindings: { @@ -809,6 +774,12 @@ const specification = { mercure: { $ref: '#/visitors/document/objects/bindings/mercure/OperationBinding', }, + googlepubsub: { + $ref: '#/visitors/document/objects/bindings/googlepubsub/OperationBinding', + }, + ibmmq: { + $ref: '#/visitors/document/objects/bindings/ibmmq/OperationBinding', + }, }, }, MessageBindings: { @@ -865,6 +836,9 @@ const specification = { ibmmq: { $ref: '#/visitors/document/objects/bindings/ibmmq/MessageBinding', }, + googlepubsub: { + $ref: '#/visitors/document/objects/bindings/googlepubsub/MessageBinding', + }, }, }, CorrelationID: { @@ -885,21 +859,25 @@ const specification = { OperationBinding: { $visitor: HttpOperationBindingVisitor, fixedFields: { - type: HttpOperationBindingTypeVisitor, - method: HttpOperationBindingMethodVisitor, - query: { - $ref: '#/visitors/document/objects/Schema', + type: { + $ref: '#/visitors/value', + }, + method: { + $ref: '#/visitors/value', + }, + query: HttpOperationBindingQueryVisitor, + bindingVersion: { + $ref: '#/visitors/value', }, - bindingVersion: HttpOperationBindingBindingVersionVisitor, }, }, MessageBinding: { $visitor: HttpMessageBindingVisitor, fixedFields: { - headers: { - $ref: '#/visitors/document/objects/Schema', + headers: HttpMessageBindingHeadersVisitor, + bindingVersion: { + $ref: '#/visitors/value', }, - bindingVersion: HttpMessageBindingBindingVersionVisitor, }, }, }, @@ -910,14 +888,14 @@ const specification = { ChannelBinding: { $visitor: WebSocketChannelBindingVisitor, fixedFields: { - method: WebSocketChannelBindingMethodVisitor, - query: { - $ref: '#/visitors/document/objects/Schema', + method: { + $ref: '#/visitors/value', }, - headers: { - $ref: '#/visitors/document/objects/Schema', + query: WebSocketChannelBindingQueryVisitor, + headers: WebSocketChannelBindingHeadersVisitor, + bindingVersion: { + $ref: '#/visitors/value', }, - bindingVersion: WebSocketChannelBindingBindingVersionVisitor, }, }, OperationBinding: { @@ -930,29 +908,61 @@ const specification = { kafka: { ServerBinding: { $visitor: KafkaServerBindingVisitor, + fixedFields: { + schemaRegistryUrl: { + $ref: '#/visitors/value', + }, + schemaRegistryVendor: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, + }, }, ChannelBinding: { $visitor: KafkaChannelBindingVisitor, + fixedFields: { + topic: { + $ref: '#/visitors/value', + }, + partitions: { + $ref: '#/visitors/value', + }, + replicas: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, + }, }, OperationBinding: { $visitor: KafkaOperationBindingVisitor, fixedFields: { - groupId: { - $ref: '#/visitors/document/objects/Schema', - }, - clientId: { - $ref: '#/visitors/document/objects/Schema', + groupId: KafkaOperationBindingGroupIdVisitor, + clientId: KafkaOperationBindingClientIdVisitor, + bindingVersion: { + $ref: '#/visitors/value', }, - bindingVersion: KafkaOperationBindingBindingVersionVisitor, }, }, MessageBinding: { $visitor: KafkaMessageBindingVisitor, fixedFields: { - key: { - $ref: '#/visitors/document/objects/Schema', + key: KafkaMessageBindingKeyVisitor, + schemaIdLocation: { + $ref: '#/visitors/value', + }, + schemaIdPayloadEncoding: { + $ref: '#/visitors/value', + }, + schemaLookupStrategy: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', }, - bindingVersion: KafkaMessageBindingBindingVersionVisitor, }, }, }, @@ -963,9 +973,15 @@ const specification = { ChannelBinding: { $visitor: AnypointmqChannelBindingVisitor, fixedFields: { - destination: AnypointmqChannelBindingDestinationVisitor, - destinationType: AnypointmqChannelBindingDestinationTypeVisitor, - bindingVersion: AnypointmqChannelBindingBindingVersionVisitor, + destination: { + $ref: '#/visitors/value', + }, + destinationType: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, OperationBinding: { @@ -974,10 +990,10 @@ const specification = { MessageBinding: { $visitor: AnypointmqMessageBindingVisitor, fixedFields: { - headers: { - $ref: '#/visitors/document/objects/Schema', + headers: AnypointmqMessageBindingHeadersVisitor, + bindingVersion: { + $ref: '#/visitors/value', }, - bindingVersion: AnypointmqMessageBindingBindingVersionVisitor, }, }, }, @@ -988,34 +1004,70 @@ const specification = { ChannelBinding: { $visitor: AmqpChannelBindingVisitor, fixedFields: { - is: AmqpChannelBindingIsVisitor, - exchange: AmqpChannelBindingExchangeVisitor, - queue: AmqpChannelBindingQueueVisitor, - bindingVersion: AmqpChannelBindingBindingVersionVisitor, + is: { + $ref: '#/visitors/value', + }, + exchange: { + $ref: '#/visitors/value', + }, + queue: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, OperationBinding: { $visitor: AmqpOperationBindingVisitor, fixedFields: { - expiration: AmqpOperationBindingExpirationVisitor, - userId: AmqpOperationBindingUserIdVisitor, - cc: AmqpOperationBindingCcVisitor, - priority: AmqpOperationBindingPriorityVisitor, - deliveryMode: AmqpOperationBindingDeliveryModeVisitor, - mandatory: AmqpOperationBindingMandatoryVisitor, - bcc: AmqpOperationBindingBccVisitor, - replyTo: AmqpOperationBindingReplyToVisitor, - timestamp: AmqpOperationBindingTimestampVisitor, - ack: AmqpOperationBindingAckVisitor, - bindingVersion: AmqpOperationBindingBindingVersionVisitor, + expiration: { + $ref: '#/visitors/value', + }, + userId: { + $ref: '#/visitors/value', + }, + cc: { + $ref: '#/visitors/value', + }, + priority: { + $ref: '#/visitors/value', + }, + deliveryMode: { + $ref: '#/visitors/value', + }, + mandatory: { + $ref: '#/visitors/value', + }, + bcc: { + $ref: '#/visitors/value', + }, + replyTo: { + $ref: '#/visitors/value', + }, + timestamp: { + $ref: '#/visitors/value', + }, + ack: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, MessageBinding: { $visitor: AmqpMessageBindingVisitor, fixedFields: { - contentEncoding: AmqpMessageBindingContentEncodingVisitor, - messageType: AmqpMessageBindingMessageTypeVisitor, - bindingVersion: AmqpMessageBindingBindingVersionVisitor, + contentEncoding: { + $ref: '#/visitors/value', + }, + messageType: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, }, @@ -1037,11 +1089,21 @@ const specification = { ServerBinding: { $visitor: MqttServerBindingVisitor, fixedFields: { - clientId: MqttServerBindingClientIdVisitor, - cleanSession: MqttServerBindingCleanSessionVisitor, - lastWill: MqttServerBindingLastWillVisitor, - keepAlive: MqttServerBindingKeepAliveVisitor, - bindingVersion: MqttServerBindingBindingVersionVisitor, + clientId: { + $ref: '#/visitors/value', + }, + cleanSession: { + $ref: '#/visitors/value', + }, + lastWill: { + $ref: '#/visitors/value', + }, + keepAlive: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, ChannelBinding: { @@ -1050,15 +1112,23 @@ const specification = { OperationBinding: { $visitor: MqttOperationBindingVisitor, fixedFields: { - qos: MqttOperationBindingQosVisitor, - retain: MqttOperationBindingRetainVisitor, - bindingVersion: MqttOperationBindingBindingVersionVisitor, + qos: { + $ref: '#/visitors/value', + }, + retain: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, MessageBinding: { $visitor: MqttMessageBindingVisitor, fixedFields: { - bindingVersion: MqttMessageBindingBindingVersionVisitor, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, }, @@ -1085,6 +1155,14 @@ const specification = { }, OperationBinding: { $visitor: NatsOperationBindingVisitor, + fixedFields: { + queue: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, + }, }, MessageBinding: { $visitor: NatsMessageBindingVisitor, @@ -1121,12 +1199,28 @@ const specification = { solace: { ServerBinding: { $visitor: SolaceServerBindingVisitor, + fixedFields: { + bindingVersion: { + $ref: '#/visitors/value', + }, + msgVpn: { + $ref: '#/visitors/value', + }, + }, }, ChannelBinding: { $visitor: SolaceChannelBindingVisitor, }, OperationBinding: { $visitor: SolaceOperationBindingVisitor, + fixedFields: { + bindingVersion: { + $ref: '#/visitors/value', + }, + destinations: { + $ref: '#/visitors/value', + }, + }, }, MessageBinding: { $visitor: SolaceMessageBindingVisitor, @@ -1188,38 +1282,121 @@ const specification = { $visitor: MercureMessageBindingVisitor, }, }, + googlepubsub: { + ServerBinding: { + $visitor: GooglePubSubServerBindingVisitor, + }, + ChannelBinding: { + $visitor: GooglePubSubChannelBindingVisitor, + fixedFields: { + bindingVersion: { + $ref: '#/visitors/value', + }, + labels: { + $ref: '#/visitors/value', + }, + messageRetentionDuration: { + $ref: '#/visitors/value', + }, + messageStoragePolicy: { + $ref: '#/visitors/value', + }, + schemaSettings: { + $ref: '#/visitors/value', + }, + topic: { + $ref: '#/visitors/value', + }, + }, + }, + OperationBinding: { + $visitor: GooglePubSubOperationBindingVisitor, + }, + MessageBinding: { + $visitor: GooglePubSubMessageBindingVisitor, + fixedFields: { + bindingVersion: { + $ref: '#/visitors/value', + }, + attributes: { + $ref: '#/visitors/value', + }, + orderingKey: { + $ref: '#/visitors/value', + }, + schema: { + $ref: '#/visitors/value', + }, + }, + }, + }, ibmmq: { ServerBinding: { $visitor: IbmmqServerBindingVisitor, fixedFields: { - groupId: IbmmqServerBindingGroupIdVisitor, - ccdtQueueManagerName: IbmmqServerBindingCcdtQueueManagerNameVisitor, - cipherSpec: IbmmqServerBindingCipherSpecVisitor, - multiEndpointServer: IbmmqServerBindingMultiEndpointServerVisitor, - heartBeatInterval: IbmmqServerBindingHeartBeatIntervalVisitor, - bindingVersion: IbmmqServerBindingBindingVersionVisitor, + groupId: { + $ref: '#/visitors/value', + }, + ccdtQueueManagerName: { + $ref: '#/visitors/value', + }, + cipherSpec: { + $ref: '#/visitors/value', + }, + multiEndpointServer: { + $ref: '#/visitors/value', + }, + heartBeatInterval: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, ChannelBinding: { $visitor: IbmmqChannelBindingVisitor, fixedFields: { - destinationType: IbmmqChannelBindingDestinationTypeVisitor, - queue: IbmmqChannelBindingQueueVisitor, - topic: IbmmqChannelBindingTopicVisitor, - maxMsgLength: IbmmqChannelBindingMaxMsgLengthVisitor, - bindingVersion: IbmmqChannelBindingBindingVersionVisitor, + destinationType: { + $ref: '#/visitors/value', + }, + queue: { + $ref: '#/visitors/value', + }, + topic: { + $ref: '#/visitors/value', + }, + maxMsgLength: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, MessageBinding: { $visitor: IbmmqMessageBindingVisitor, fixedFields: { - type: IbmmqMessageBindingTypeVisitor, - headers: IbmmqMessageBindingHeadersVisitor, - description: IbmmqMessageBindingDescriptionVisitor, - expiry: IbmmqMessageBindingExpiryVisitor, - bindingVersion: IbmmqMessageBindingBindingVersionVisitor, + type: { + $ref: '#/visitors/value', + }, + headers: { + $ref: '#/visitors/value', + }, + description: { + $ref: '#/visitors/value', + }, + expiry: { + $ref: '#/visitors/value', + }, + bindingVersion: { + $ref: '#/visitors/value', + }, }, }, + OperationBinding: { + $visitor: IbmmqOperationBindingVisitor, + }, }, }, }, diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/ExchangeVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/ExchangeVisitor.ts deleted file mode 100644 index 5a7a866d82..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/ExchangeVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const ExchangeVisitor = FallbackVisitor; - -export default ExchangeVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/IsVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/IsVisitor.ts deleted file mode 100644 index 589813c4ed..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/IsVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const IsVisitor = FallbackVisitor; - -export default IsVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/QueueVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/QueueVisitor.ts deleted file mode 100644 index 952501f2f3..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/channel-binding/QueueVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const QueueVisitor = FallbackVisitor; - -export default QueueVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/ContentEncodingVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/ContentEncodingVisitor.ts deleted file mode 100644 index 46a29d5c05..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/ContentEncodingVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const ContentEncodingVisitor = FallbackVisitor; - -export default ContentEncodingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/MessageTypeVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/MessageTypeVisitor.ts deleted file mode 100644 index 13eeaa8c31..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/amqp/message-binding/MessageTypeVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const MessageTypeVisitor = FallbackVisitor; - -export default MessageTypeVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/DestinationTypeVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/DestinationTypeVisitor.ts deleted file mode 100644 index 4d2667fa3d..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/DestinationTypeVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const DestinationTypeVisitor = FallbackVisitor; - -export default DestinationTypeVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/DestinationVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/DestinationVisitor.ts deleted file mode 100644 index db9cf9cbe5..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/channel-binding/DestinationVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const DestinationVisitor = FallbackVisitor; - -export default DestinationVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/message-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/message-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/message-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/message-binding/HeadersVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/message-binding/HeadersVisitor.ts new file mode 100644 index 0000000000..6a987d7831 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/anypointmq/message-binding/HeadersVisitor.ts @@ -0,0 +1,31 @@ +import stampit from 'stampit'; +import { T as stubTrue } from 'ramda'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +import AlternatingVisitor from '../../../../generics/AlternatingVisitor'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../../../predicates'; +import { isReferenceElement } from '../../../../../../predicates'; + +const HeadersVisitor = stampit(AlternatingVisitor, FallbackVisitor, { + props: { + alternator: [ + { predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] }, + { predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] }, + ], + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement); + + if (isReferenceElement(this.element)) { + this.element.setMetaProperty('referenced-element', 'schema'); + } + + return result; + }, + }, +}); + +export default HeadersVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/channel-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/channel-binding/index.ts new file mode 100644 index 0000000000..8027fe1a81 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/channel-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import GooglePubSubChannelBindingElement from '../../../../../../elements/bindings/googlepubsub/GooglePubSubChannelBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const GooglePubSubChannelBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'googlepubsub', 'ChannelBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new GooglePubSubChannelBindingElement(); + }, +}); + +export default GooglePubSubChannelBindingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/message-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/message-binding/index.ts new file mode 100644 index 0000000000..2c5c09cf08 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/message-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import GooglePubSubMessageBindingElement from '../../../../../../elements/bindings/googlepubsub/GooglePubSubMessageBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const GooglePubSubMessageBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'googlepubusb', 'MessageBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new GooglePubSubMessageBindingElement(); + }, +}); + +export default GooglePubSubMessageBindingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/operation-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/operation-binding/index.ts new file mode 100644 index 0000000000..56bdbcc2ac --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/operation-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import GooglePubSubOperationBindingElement from '../../../../../../elements/bindings/googlepubsub/GooglePubSubOperationBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const GooglePubSubOperationBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'googlepubsub', 'OperationBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new GooglePubSubOperationBindingElement(); + }, +}); + +export default GooglePubSubOperationBindingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/server-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/server-binding/index.ts new file mode 100644 index 0000000000..549b821e9a --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/googlepubsub/server-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import GooglePubSubServerBindingElement from '../../../../../../elements/bindings/googlepubsub/GooglePubSubServerBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const GooglePubSubServerBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'googlepubsub', 'ServerBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new GooglePubSubServerBindingElement(); + }, +}); + +export default GooglePubSubServerBindingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/message-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/message-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/message-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/message-binding/HeadersVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/message-binding/HeadersVisitor.ts new file mode 100644 index 0000000000..6a987d7831 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/message-binding/HeadersVisitor.ts @@ -0,0 +1,31 @@ +import stampit from 'stampit'; +import { T as stubTrue } from 'ramda'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +import AlternatingVisitor from '../../../../generics/AlternatingVisitor'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../../../predicates'; +import { isReferenceElement } from '../../../../../../predicates'; + +const HeadersVisitor = stampit(AlternatingVisitor, FallbackVisitor, { + props: { + alternator: [ + { predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] }, + { predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] }, + ], + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement); + + if (isReferenceElement(this.element)) { + this.element.setMetaProperty('referenced-element', 'schema'); + } + + return result; + }, + }, +}); + +export default HeadersVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/MethodVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/MethodVisitor.ts deleted file mode 100644 index 529fafe396..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/MethodVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const MethodVisitor = FallbackVisitor; - -export default MethodVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/QueryVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/QueryVisitor.ts new file mode 100644 index 0000000000..322edae53f --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/QueryVisitor.ts @@ -0,0 +1,31 @@ +import stampit from 'stampit'; +import { T as stubTrue } from 'ramda'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +import AlternatingVisitor from '../../../../generics/AlternatingVisitor'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../../../predicates'; +import { isReferenceElement } from '../../../../../../predicates'; + +const QueryVisitor = stampit(AlternatingVisitor, FallbackVisitor, { + props: { + alternator: [ + { predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] }, + { predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] }, + ], + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement); + + if (isReferenceElement(this.element)) { + this.element.setMetaProperty('referenced-element', 'schema'); + } + + return result; + }, + }, +}); + +export default QueryVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/TypeVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/TypeVisitor.ts deleted file mode 100644 index f40ae07f2e..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/http/operation-binding/TypeVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const TypeVisitor = FallbackVisitor; - -export default TypeVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/DestinationTypeVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/DestinationTypeVisitor.ts deleted file mode 100644 index 4d2667fa3d..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/DestinationTypeVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const DestinationTypeVisitor = FallbackVisitor; - -export default DestinationTypeVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/MaxMsgLengthVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/MaxMsgLengthVisitor.ts deleted file mode 100644 index 6e2326742e..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/MaxMsgLengthVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const MaxMsgLengthVisitor = FallbackVisitor; - -export default MaxMsgLengthVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/QueueVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/QueueVisitor.ts deleted file mode 100644 index 952501f2f3..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/QueueVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const QueueVisitor = FallbackVisitor; - -export default QueueVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/TopicVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/TopicVisitor.ts deleted file mode 100644 index f4502e39fc..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/channel-binding/TopicVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const TopicVisitor = FallbackVisitor; - -export default TopicVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/DescriptionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/DescriptionVisitor.ts deleted file mode 100644 index 183eab696f..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/DescriptionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const DescriptionVisitor = FallbackVisitor; - -export default DescriptionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/ExpiryVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/ExpiryVisitor.ts deleted file mode 100644 index 391bb78b53..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/ExpiryVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const ExpiryVisitor = FallbackVisitor; - -export default ExpiryVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/HeadersVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/HeadersVisitor.ts deleted file mode 100644 index b4501dd832..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/HeadersVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const HeadersVisitor = FallbackVisitor; - -export default HeadersVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/TypeVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/TypeVisitor.ts deleted file mode 100644 index f40ae07f2e..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/message-binding/TypeVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const TypeVisitor = FallbackVisitor; - -export default TypeVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/operation-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/operation-binding/index.ts new file mode 100644 index 0000000000..6a651130dc --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/operation-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import IbmmqOperationBindingElement from '../../../../../../elements/bindings/ibmmq/IbmmqOperationBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const IbmmqOperationBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'ibmmq', 'OperationBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new IbmmqOperationBindingElement(); + }, +}); + +export default IbmmqOperationBindingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/CcdtQueueManagerNameVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/CcdtQueueManagerNameVisitor.ts deleted file mode 100644 index b082587903..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/CcdtQueueManagerNameVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const CcdtQueueManagerNameVisitor = FallbackVisitor; - -export default CcdtQueueManagerNameVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/CipherSpecVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/CipherSpecVisitor.ts deleted file mode 100644 index bfaf135359..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/CipherSpecVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const CipherSpecVisitor = FallbackVisitor; - -export default CipherSpecVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/GroupIdVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/GroupIdVisitor.ts deleted file mode 100644 index 69fee07743..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/GroupIdVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const GroupIdVisitor = FallbackVisitor; - -export default GroupIdVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/HeartBeatIntervalVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/HeartBeatIntervalVisitor.ts deleted file mode 100644 index 7b03933c7a..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/HeartBeatIntervalVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const HeartBeatIntervalVisitor = FallbackVisitor; - -export default HeartBeatIntervalVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/MultiEndpointServerVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/MultiEndpointServerVisitor.ts deleted file mode 100644 index 8eb5773d95..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ibmmq/server-binding/MultiEndpointServerVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const MultiEndpointServerVisitor = FallbackVisitor; - -export default MultiEndpointServerVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/message-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/message-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/message-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/message-binding/KeyVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/message-binding/KeyVisitor.ts new file mode 100644 index 0000000000..e72b0a4c43 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/message-binding/KeyVisitor.ts @@ -0,0 +1,31 @@ +import stampit from 'stampit'; +import { T as stubTrue } from 'ramda'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +import AlternatingVisitor from '../../../../generics/AlternatingVisitor'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../../../predicates'; +import { isReferenceElement } from '../../../../../../predicates'; + +const KeyVisitor = stampit(AlternatingVisitor, FallbackVisitor, { + props: { + alternator: [ + { predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] }, + { predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] }, + ], + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement); + + if (isReferenceElement(this.element)) { + this.element.setMetaProperty('referenced-element', 'schema'); + } + + return result; + }, + }, +}); + +export default KeyVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/ClientIdVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/ClientIdVisitor.ts new file mode 100644 index 0000000000..ac8fa42f6c --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/ClientIdVisitor.ts @@ -0,0 +1,31 @@ +import stampit from 'stampit'; +import { T as stubTrue } from 'ramda'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +import AlternatingVisitor from '../../../../generics/AlternatingVisitor'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../../../predicates'; +import { isReferenceElement } from '../../../../../../predicates'; + +const ClientIdVisitor = stampit(AlternatingVisitor, FallbackVisitor, { + props: { + alternator: [ + { predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] }, + { predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] }, + ], + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement); + + if (isReferenceElement(this.element)) { + this.element.setMetaProperty('referenced-element', 'schema'); + } + + return result; + }, + }, +}); + +export default ClientIdVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/GroupIdVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/GroupIdVisitor.ts new file mode 100644 index 0000000000..18b9f1a3fc --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/kafka/operation-binding/GroupIdVisitor.ts @@ -0,0 +1,31 @@ +import stampit from 'stampit'; +import { T as stubTrue } from 'ramda'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +import AlternatingVisitor from '../../../../generics/AlternatingVisitor'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../../../predicates'; +import { isReferenceElement } from '../../../../../../predicates'; + +const GroupIdVisitor = stampit(AlternatingVisitor, FallbackVisitor, { + props: { + alternator: [ + { predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] }, + { predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] }, + ], + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement); + + if (isReferenceElement(this.element)) { + this.element.setMetaProperty('referenced-element', 'schema'); + } + + return result; + }, + }, +}); + +export default GroupIdVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/message-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/message-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/message-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/CleanSessionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/CleanSessionVisitor.ts deleted file mode 100644 index 17a7fbf51d..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/CleanSessionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const CleanSessionVisitor = FallbackVisitor; - -export default CleanSessionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/ClientIdVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/ClientIdVisitor.ts deleted file mode 100644 index 35f698437d..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/ClientIdVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const ClientIdVisitor = FallbackVisitor; - -export default ClientIdVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/KeepAliveVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/KeepAliveVisitor.ts deleted file mode 100644 index 752a5092f4..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/KeepAliveVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const KeepAliveVisitor = FallbackVisitor; - -export default KeepAliveVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/LastWillVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/LastWillVisitor.ts deleted file mode 100644 index 9b767729ef..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/mqtt/server-binding/LastWillVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const LastWillVisitor = FallbackVisitor; - -export default LastWillVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/MsgVpnVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/MsgVpnVisitor.ts deleted file mode 100644 index b7683a450d..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/MsgVpnVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const MsgVpnVisitor = FallbackVisitor; - -export default MsgVpnVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/BindingVersionVisitor.ts deleted file mode 100644 index 5f892877c6..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/BindingVersionVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const BindingVersionVisitor = FallbackVisitor; - -export default BindingVersionVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/HeadersVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/HeadersVisitor.ts new file mode 100644 index 0000000000..6a987d7831 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/HeadersVisitor.ts @@ -0,0 +1,31 @@ +import stampit from 'stampit'; +import { T as stubTrue } from 'ramda'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +import AlternatingVisitor from '../../../../generics/AlternatingVisitor'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../../../predicates'; +import { isReferenceElement } from '../../../../../../predicates'; + +const HeadersVisitor = stampit(AlternatingVisitor, FallbackVisitor, { + props: { + alternator: [ + { predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] }, + { predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] }, + ], + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement); + + if (isReferenceElement(this.element)) { + this.element.setMetaProperty('referenced-element', 'schema'); + } + + return result; + }, + }, +}); + +export default HeadersVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/MethodVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/MethodVisitor.ts deleted file mode 100644 index 529fafe396..0000000000 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/MethodVisitor.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FallbackVisitor from '../../../../FallbackVisitor'; - -const MethodVisitor = FallbackVisitor; - -export default MethodVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/QueryVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/QueryVisitor.ts new file mode 100644 index 0000000000..322edae53f --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/ws/channel-binding/QueryVisitor.ts @@ -0,0 +1,31 @@ +import stampit from 'stampit'; +import { T as stubTrue } from 'ramda'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +import AlternatingVisitor from '../../../../generics/AlternatingVisitor'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../../../predicates'; +import { isReferenceElement } from '../../../../../../predicates'; + +const QueryVisitor = stampit(AlternatingVisitor, FallbackVisitor, { + props: { + alternator: [ + { predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] }, + { predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] }, + ], + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement); + + if (isReferenceElement(this.element)) { + this.element.setMetaProperty('referenced-element', 'schema'); + } + + return result; + }, + }, +}); + +export default QueryVisitor; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/__snapshots__/index.ts.snap index 58d04f332b..89f76f7fda 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/__snapshots__/index.ts.snap @@ -27080,6 +27080,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.3.0 shape should re "content": [ { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -28404,6 +28415,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.3.0 shape should re "content": [ { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -28417,6 +28439,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.3.0 shape should re }, { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -31057,6 +31090,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.3.0 shape should re "content": [ { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -31070,6 +31114,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.3.0 shape should re }, { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -36269,6 +36324,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.4.0 shape should re "content": [ { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -37741,6 +37807,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.4.0 shape should re "content": [ { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -37754,6 +37831,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.4.0 shape should re }, { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -40442,6 +40530,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.4.0 shape should re "content": [ { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", @@ -40455,6 +40554,17 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.4.0 shape should re }, { "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, "content": { "key": { "element": "string", diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/ChannelBindings/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/ChannelBindings/__snapshots__/index.ts.snap index 66ba26f5fd..6abe3072b4 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/ChannelBindings/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/ChannelBindings/__snapshots__/index.ts.snap @@ -52,5 +52,8 @@ exports[`refractor elements ChannelBindingsElement should refract to semantic Ap (MercureChannelBindingElement)) (MemberElement (StringElement) - (IbmmqChannelBindingElement))) + (IbmmqChannelBindingElement)) + (MemberElement + (StringElement) + (GooglepubsubChannelBindingElement))) `; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/ChannelBindings/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/ChannelBindings/index.ts index 44f915c1b0..10d83fed9d 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/ChannelBindings/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/ChannelBindings/index.ts @@ -25,6 +25,7 @@ describe('refractor', function () { redis: {}, mercure: {}, ibmmq: {}, + googlepubsub: {}, }); expect(sexprs(channelBindingsElement)).toMatchSnapshot(); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/MessageBindings/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/MessageBindings/__snapshots__/index.ts.snap index 33cb865146..f5096609b0 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/MessageBindings/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/MessageBindings/__snapshots__/index.ts.snap @@ -52,5 +52,8 @@ exports[`refractor elements MessageBindingsElement should refract to semantic Ap (MercureMessageBindingElement)) (MemberElement (StringElement) - (IbmmqMessageBindingElement))) + (IbmmqMessageBindingElement)) + (MemberElement + (StringElement) + (GooglepubsubMessageBindingElement))) `; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/MessageBindings/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/MessageBindings/index.ts index 280cb5b6ab..973b9eddb1 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/MessageBindings/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/MessageBindings/index.ts @@ -25,6 +25,7 @@ describe('refractor', function () { redis: {}, mercure: {}, ibmmq: {}, + googlepubsub: {}, }); expect(sexprs(messageBindingsElement)).toMatchSnapshot(); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/OperationBindings/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/OperationBindings/__snapshots__/index.ts.snap index b7a2a5176f..131bb169fe 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/OperationBindings/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/OperationBindings/__snapshots__/index.ts.snap @@ -49,5 +49,11 @@ exports[`refractor elements OperationBindingsElement should refract to semantic (RedisOperationBindingElement)) (MemberElement (StringElement) - (MercureOperationBindingElement))) + (MercureOperationBindingElement)) + (MemberElement + (StringElement) + (GooglepubsubOperationBindingElement)) + (MemberElement + (StringElement) + (IbmmqOperationBindingElement))) `; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/OperationBindings/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/OperationBindings/index.ts index e6e4defb1f..d7765835e2 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/OperationBindings/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/OperationBindings/index.ts @@ -24,6 +24,8 @@ describe('refractor', function () { stomp: {}, redis: {}, mercure: {}, + googlepubsub: {}, + ibmmq: {}, }); expect(sexprs(operationBindingsElement)).toMatchSnapshot(); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/ServerBindings/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/ServerBindings/__snapshots__/index.ts.snap index 3dba9169f2..30759d75f6 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/ServerBindings/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/ServerBindings/__snapshots__/index.ts.snap @@ -52,5 +52,8 @@ exports[`refractor elements ServerBindingsElement should refract to semantic Api (MercureServerBindingElement)) (MemberElement (StringElement) - (IbmmqServerBindingElement))) + (IbmmqServerBindingElement)) + (MemberElement + (StringElement) + (GooglepubsubServerBindingElement))) `; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/ServerBindings/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/ServerBindings/index.ts index 4ba05798b6..d1c69bd3d8 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/ServerBindings/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/ServerBindings/index.ts @@ -25,6 +25,7 @@ describe('refractor', function () { redis: {}, mercure: {}, ibmmq: {}, + googlepubsub: {}, }); expect(sexprs(serverBindingsElement)).toMatchSnapshot(); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/anypointmq/AnypointmqMessageBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/anypointmq/AnypointmqMessageBinding/__snapshots__/index.ts.snap index 7ab279d147..c830f1579e 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/anypointmq/AnypointmqMessageBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/anypointmq/AnypointmqMessageBinding/__snapshots__/index.ts.snap @@ -1,5 +1,18 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`refractor elements AnypointmqMessageBindingElement given headers field of type ReferenceElement should refract to semantic ApiDOM tree 1`] = ` +(AnypointmqMessageBindingElement + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (StringElement))) +`; + exports[`refractor elements AnypointmqMessageBindingElement should refract to semantic ApiDOM tree 1`] = ` (AnypointmqMessageBindingElement (MemberElement diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/anypointmq/AnypointmqMessageBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/anypointmq/AnypointmqMessageBinding/index.ts index 1aa0db3131..35e51bef02 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/anypointmq/AnypointmqMessageBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/anypointmq/AnypointmqMessageBinding/index.ts @@ -14,6 +14,19 @@ describe('refractor', function () { expect(sexprs(anypointmqMessageBindingElement)).toMatchSnapshot(); }); + + context('given headers field of type ReferenceElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const anypointmqMessageBindingElement = AnypointmqMessageBindingElement.refract({ + headers: { + $ref: '#/pointer', + }, + bindingVersion: '0.1.0', + }); + + expect(sexprs(anypointmqMessageBindingElement)).toMatchSnapshot(); + }); + }); }); }); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubChannelBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubChannelBinding/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..4eb7337de8 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubChannelBinding/__snapshots__/index.ts.snap @@ -0,0 +1,33 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements GooglePubSubChannelBindingElement should refract to semantic ApiDOM tree 1`] = ` +(GooglepubsubChannelBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (ObjectElement)) + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (ObjectElement + (MemberElement + (StringElement) + (ArrayElement + (StringElement))))) + (MemberElement + (StringElement) + (ObjectElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (StringElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubChannelBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubChannelBinding/index.ts new file mode 100644 index 0000000000..8c61b0cb77 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubChannelBinding/index.ts @@ -0,0 +1,28 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { GooglePubSubChannelBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('GooglePubSubChannelBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const googlepubsubChannelBindingElement = GooglePubSubChannelBindingElement.refract({ + bindingVersion: '0.1.0', + labels: {}, + messageRetentionDuration: '86400s', + messageStoragePolicy: { + allowedPersistenceRegions: ['us-central1'], + }, + schemaSettings: { + encoding: 'binary', + name: 'projects/your-project/schemas/message-proto', + }, + topic: 'projects/your-project/topics/topic-avro-schema', + }); + + expect(sexprs(googlepubsubChannelBindingElement)).toMatchSnapshot(); + }); + }); + }); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubMessageBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubMessageBinding/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..39df8f2d6d --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubMessageBinding/__snapshots__/index.ts.snap @@ -0,0 +1,23 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements GooglePubSubChannelBindingElement should refract to semantic ApiDOM tree 1`] = ` +(GooglepubsubMessageBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (ObjectElement)) + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (ObjectElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement))))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubMessageBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubMessageBinding/index.ts new file mode 100644 index 0000000000..46bddf27ab --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubMessageBinding/index.ts @@ -0,0 +1,24 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { GooglePubSubMessageBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('GooglePubSubChannelBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const googlepubsubMessageBindingElement = GooglePubSubMessageBindingElement.refract({ + bindingVersion: '0.1.0', + attributes: {}, + orderingKey: '', + schema: { + name: 'projects/your-project/schemas/message-avro', + type: 'avro', + }, + }); + + expect(sexprs(googlepubsubMessageBindingElement)).toMatchSnapshot(); + }); + }); + }); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubOperationBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubOperationBinding/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..adcfbf28ee --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubOperationBinding/__snapshots__/index.ts.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements GooglePubSubOperationBindingElement should refract to semantic ApiDOM tree 1`] = `(GooglepubsubOperationBindingElement)`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubOperationBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubOperationBinding/index.ts new file mode 100644 index 0000000000..3fea742d48 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubOperationBinding/index.ts @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { GooglePubSubOperationBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('GooglePubSubOperationBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const googlepubsubOperationBindingElement = GooglePubSubOperationBindingElement.refract({}); + + expect(sexprs(googlepubsubOperationBindingElement)).toMatchSnapshot(); + }); + }); + }); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubServerBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubServerBinding/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..3d42d662b8 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubServerBinding/__snapshots__/index.ts.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements GooglePubSubServerBindingElement should refract to semantic ApiDOM tree 1`] = `(GooglepubsubServerBindingElement)`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubServerBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubServerBinding/index.ts new file mode 100644 index 0000000000..2f56e2b340 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/googlepubsub/googlepubsubServerBinding/index.ts @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { GooglePubSubServerBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('GooglePubSubServerBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const googlepubsubServerBindingElement = GooglePubSubServerBindingElement.refract({}); + + expect(sexprs(googlepubsubServerBindingElement)).toMatchSnapshot(); + }); + }); + }); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpMessageBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpMessageBinding/__snapshots__/index.ts.snap index 4f784f7920..e5229e353f 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpMessageBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpMessageBinding/__snapshots__/index.ts.snap @@ -1,5 +1,18 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`refractor elements HttpMessageBindingElement given query field of type ReferenceElement should refract to semantic ApiDOM tree 1`] = ` +(HttpMessageBindingElement + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (StringElement))) +`; + exports[`refractor elements HttpMessageBindingElement should refract to semantic ApiDOM tree 1`] = ` (HttpMessageBindingElement (MemberElement diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpMessageBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpMessageBinding/index.ts index d59fe454c6..512ed59ef0 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpMessageBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpMessageBinding/index.ts @@ -14,6 +14,19 @@ describe('refractor', function () { expect(sexprs(httpMessageBindingElement)).toMatchSnapshot(); }); + + context('given query field of type ReferenceElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const httpMessageBindingElement = HttpMessageBindingElement.refract({ + headers: { + $ref: '#/pointer', + }, + bindingVersion: '0.1.0', + }); + + expect(sexprs(httpMessageBindingElement)).toMatchSnapshot(); + }); + }); }); }); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpOperationBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpOperationBinding/__snapshots__/index.ts.snap index e8c37e91f5..98e42b41ac 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpOperationBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpOperationBinding/__snapshots__/index.ts.snap @@ -1,5 +1,24 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`refractor elements HttpOperationBindingElement given query field of type ReferenceElement should refract to semantic ApiDOM tree 1`] = ` +(HttpOperationBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (StringElement))) +`; + exports[`refractor elements HttpOperationBindingElement should refract to semantic ApiDOM tree 1`] = ` (HttpOperationBindingElement (MemberElement diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpOperationBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpOperationBinding/index.ts index e339aee13d..d91ae847ca 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpOperationBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/http/HttpOperationBinding/index.ts @@ -16,6 +16,21 @@ describe('refractor', function () { expect(sexprs(httpOperationBindingElement)).toMatchSnapshot(); }); + + context('given query field of type ReferenceElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const httpOperationBindingElement = HttpOperationBindingElement.refract({ + type: 'request', + method: 'GET', + query: { + $ref: '#/pointer', + }, + bindingVersion: '0.1.0', + }); + + expect(sexprs(httpOperationBindingElement)).toMatchSnapshot(); + }); + }); }); }); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/IbmmqMessageBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/IbmmqMessageBinding/__snapshots__/index.ts.snap index 4a22c22a88..4d4be1e0c2 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/IbmmqMessageBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/IbmmqMessageBinding/__snapshots__/index.ts.snap @@ -11,9 +11,6 @@ exports[`refractor elements IbmmqMessageBindingElement should refract to semanti (MemberElement (StringElement) (StringElement)) - (MemberElement - (StringElement) - (StringElement)) (MemberElement (StringElement) (NumberElement)) diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/IbmmqMessageBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/IbmmqMessageBinding/index.ts index 034fe15f6f..939f13181a 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/IbmmqMessageBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/IbmmqMessageBinding/index.ts @@ -10,7 +10,6 @@ describe('refractor', function () { const ibmmqMessageBindingElement = IbmmqMessageBindingElement.refract({ type: 'jms', headers: 'MQFMT_CICS,MQFMT_ADMIN', - cipherSpec: 'ANY_TLS12_OR_HIGHER', description: 'JMS stream message', expiry: 1, bindingVersion: '0.1.0', diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/ibmmqOperationBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/ibmmqOperationBinding/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..74978374cc --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/ibmmqOperationBinding/__snapshots__/index.ts.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements IbmmqOperationBindingElement should refract to semantic ApiDOM tree 1`] = `(IbmmqOperationBindingElement)`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/ibmmqOperationBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/ibmmqOperationBinding/index.ts new file mode 100644 index 0000000000..abf722e475 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ibmmq/ibmmqOperationBinding/index.ts @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { IbmmqOperationBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('IbmmqOperationBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const ibmmqOperationBindingElement = IbmmqOperationBindingElement.refract({}); + + expect(sexprs(ibmmqOperationBindingElement)).toMatchSnapshot(); + }); + }); + }); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaChannelBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaChannelBinding/__snapshots__/index.ts.snap index e0fc7a77e7..70cdeedf1e 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaChannelBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaChannelBinding/__snapshots__/index.ts.snap @@ -1,3 +1,17 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`refractor elements KafkaChannelBindingElement should refract to semantic ApiDOM tree 1`] = `(KafkaChannelBindingElement)`; +exports[`refractor elements KafkaChannelBindingElement should refract to semantic ApiDOM tree 1`] = ` +(KafkaChannelBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (NumberElement)) + (MemberElement + (StringElement) + (NumberElement)) + (MemberElement + (StringElement) + (StringElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaChannelBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaChannelBinding/index.ts index a94abe263c..8ddde8c0b8 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaChannelBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaChannelBinding/index.ts @@ -7,7 +7,12 @@ describe('refractor', function () { context('elements', function () { context('KafkaChannelBindingElement', function () { specify('should refract to semantic ApiDOM tree', function () { - const kafkaChannelBindingElement = KafkaChannelBindingElement.refract({}); + const kafkaChannelBindingElement = KafkaChannelBindingElement.refract({ + topic: 'my-specific-topic-name', + partitions: 20, + replicas: 3, + bindingVersion: '0.3.0', + }); expect(sexprs(kafkaChannelBindingElement)).toMatchSnapshot(); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaMessageBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaMessageBinding/__snapshots__/index.ts.snap index c27d4ad5c8..7893b32ef4 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaMessageBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaMessageBinding/__snapshots__/index.ts.snap @@ -1,10 +1,35 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`refractor elements KafkaMessageBindingElement given query field of type ReferenceElement should refract to semantic ApiDOM tree 1`] = ` +(KafkaMessageBindingElement + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement))) +`; + exports[`refractor elements KafkaMessageBindingElement should refract to semantic ApiDOM tree 1`] = ` (KafkaMessageBindingElement (MemberElement (StringElement) (SchemaElement)) + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement)) (MemberElement (StringElement) (StringElement))) diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaMessageBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaMessageBinding/index.ts index 9b9a2ac010..8e9343cc51 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaMessageBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaMessageBinding/index.ts @@ -9,11 +9,28 @@ describe('refractor', function () { specify('should refract to semantic ApiDOM tree', function () { const kafkaMessageBindingElement = KafkaMessageBindingElement.refract({ key: {}, - bindingVersion: '0.1.0', + schemaIdLocation: 'payload', + schemaIdPayloadEncoding: '4', + bindingVersion: '0.3.0', }); expect(sexprs(kafkaMessageBindingElement)).toMatchSnapshot(); }); + + context('given query field of type ReferenceElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const kafkaMessageBindingElement = KafkaMessageBindingElement.refract({ + key: { + $ref: '#/pointer', + }, + schemaIdLocation: 'payload', + schemaIdPayloadEncoding: '4', + bindingVersion: '0.3.0', + }); + + expect(sexprs(kafkaMessageBindingElement)).toMatchSnapshot(); + }); + }); }); }); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaOperationBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaOperationBinding/__snapshots__/index.ts.snap index a96f604ec7..7ab91d2209 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaOperationBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaOperationBinding/__snapshots__/index.ts.snap @@ -1,5 +1,24 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`refractor elements KafkaOperationBindingElement given query field of type ReferenceElement should refract to semantic ApiDOM tree 1`] = ` +(KafkaOperationBindingElement + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (StringElement))) +`; + exports[`refractor elements KafkaOperationBindingElement should refract to semantic ApiDOM tree 1`] = ` (KafkaOperationBindingElement (MemberElement diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaOperationBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaOperationBinding/index.ts index a3fde26554..d2c5f75668 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaOperationBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaOperationBinding/index.ts @@ -15,6 +15,22 @@ describe('refractor', function () { expect(sexprs(kafkaOperationBindingElement)).toMatchSnapshot(); }); + + context('given query field of type ReferenceElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const kafkaOperationBindingElement = KafkaOperationBindingElement.refract({ + groupId: { + $ref: '#/pointer', + }, + clientId: { + $ref: '#/pointer', + }, + bindingVersion: '0.1.0', + }); + + expect(sexprs(kafkaOperationBindingElement)).toMatchSnapshot(); + }); + }); }); }); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaServerBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaServerBinding/__snapshots__/index.ts.snap index 72b18f331e..ccf91d1efe 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaServerBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaServerBinding/__snapshots__/index.ts.snap @@ -1,3 +1,14 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`refractor elements KafkaServerBindingElement should refract to semantic ApiDOM tree 1`] = `(KafkaServerBindingElement)`; +exports[`refractor elements KafkaServerBindingElement should refract to semantic ApiDOM tree 1`] = ` +(KafkaServerBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaServerBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaServerBinding/index.ts index c451104a18..b3a4e8e7cb 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaServerBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/kafka/KafkaServerBinding/index.ts @@ -7,7 +7,11 @@ describe('refractor', function () { context('elements', function () { context('KafkaServerBindingElement', function () { specify('should refract to semantic ApiDOM tree', function () { - const kafkaServerBindingElement = KafkaServerBindingElement.refract({}); + const kafkaServerBindingElement = KafkaServerBindingElement.refract({ + schemaRegistryUrl: 'https://my-schema-registry.com', + schemaRegistryVendor: 'confluent', + bindingVersion: '0.3.0', + }); expect(sexprs(kafkaServerBindingElement)).toMatchSnapshot(); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/nats/NatsOperationBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/nats/NatsOperationBinding/__snapshots__/index.ts.snap index cdc747846c..e2d4ca344c 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/nats/NatsOperationBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/nats/NatsOperationBinding/__snapshots__/index.ts.snap @@ -1,3 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`refractor elements NatsOperationBindingElement should refract to semantic ApiDOM tree 1`] = `(NatsOperationBindingElement)`; +exports[`refractor elements NatsOperationBindingElement should refract to semantic ApiDOM tree 1`] = ` +(NatsOperationBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/nats/NatsOperationBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/nats/NatsOperationBinding/index.ts index f742a8eb33..c58d7f4a8c 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/nats/NatsOperationBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/nats/NatsOperationBinding/index.ts @@ -7,7 +7,10 @@ describe('refractor', function () { context('elements', function () { context('NatsOperationBindingElement', function () { specify('should refract to semantic ApiDOM tree', function () { - const natsOperationBindingElement = NatsOperationBindingElement.refract({}); + const natsOperationBindingElement = NatsOperationBindingElement.refract({ + queue: 'test', + bindingVersion: '0.1.0', + }); expect(sexprs(natsOperationBindingElement)).toMatchSnapshot(); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/__snapshots__/index.ts.snap index 2ac41f01e7..ee3ad06807 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/__snapshots__/index.ts.snap @@ -1,3 +1,12 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`refractor elements SolaceOperationBindingElement should refract to semantic ApiDOM tree 1`] = `(SolaceOperationBindingElement)`; +exports[`refractor elements SolaceOperationBindingElement should refract to semantic ApiDOM tree 1`] = ` +(SolaceOperationBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (ArrayElement + (ObjectElement)))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/index.ts index 5980b0ff90..ee403a3cfe 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/index.ts @@ -7,7 +7,10 @@ describe('refractor', function () { context('elements', function () { context('SolaceOperationBindingElement', function () { specify('should refract to semantic ApiDOM tree', function () { - const solaceOperationBindingElement = SolaceOperationBindingElement.refract({}); + const solaceOperationBindingElement = SolaceOperationBindingElement.refract({ + bindingVersion: '0.2.0', + destinations: [{}], + }); expect(sexprs(solaceOperationBindingElement)).toMatchSnapshot(); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/__snapshots__/index.ts.snap index 5638979d19..8f49a62a2c 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/__snapshots__/index.ts.snap @@ -1,3 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`refractor elements SolaceServerBindingElement should refract to semantic ApiDOM tree 1`] = `(SolaceServerBindingElement)`; +exports[`refractor elements SolaceServerBindingElement should refract to semantic ApiDOM tree 1`] = ` +(SolaceServerBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (StringElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/index.ts index dbf7ea8bf9..b322732a1a 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/index.ts @@ -7,7 +7,10 @@ describe('refractor', function () { context('elements', function () { context('SolaceServerBindingElement', function () { specify('should refract to semantic ApiDOM tree', function () { - const solaceServerBindingElement = SolaceServerBindingElement.refract({}); + const solaceServerBindingElement = SolaceServerBindingElement.refract({ + bindingVersion: '0.2.0', + msgVpn: 'network1', + }); expect(sexprs(solaceServerBindingElement)).toMatchSnapshot(); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ws/WebSocketChannelBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ws/WebSocketChannelBinding/__snapshots__/index.ts.snap index a075da385e..92a0d902c3 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ws/WebSocketChannelBinding/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ws/WebSocketChannelBinding/__snapshots__/index.ts.snap @@ -1,5 +1,27 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`refractor elements WebSocketChannelBindingElement given query and header fields of type ReferenceElement should refract to semantic ApiDOM tree 1`] = ` +(WebSocketChannelBindingElement + (MemberElement + (StringElement) + (StringElement)) + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))) + (MemberElement + (StringElement) + (StringElement))) +`; + exports[`refractor elements WebSocketChannelBindingElement should refract to semantic ApiDOM tree 1`] = ` (WebSocketChannelBindingElement (MemberElement diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ws/WebSocketChannelBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ws/WebSocketChannelBinding/index.ts index ced7a31d87..dbc9b2b6e0 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ws/WebSocketChannelBinding/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/ws/WebSocketChannelBinding/index.ts @@ -16,6 +16,23 @@ describe('refractor', function () { expect(sexprs(webSocketChannelBindingElement)).toMatchSnapshot(); }); + + context('given query and header fields of type ReferenceElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const webSocketChannelBindingElement = WebSocketChannelBindingElement.refract({ + method: 'web-socket-channel-method', + query: { + $ref: '#/pointer', + }, + headers: { + $ref: '#/pointer', + }, + bindingVersion: '0.1.0', + }); + + expect(sexprs(webSocketChannelBindingElement)).toMatchSnapshot(); + }); + }); }); }); });