From a350b3c8a713ba215ae14dde8ebd695b33c8ee7e Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Fri, 4 Feb 2022 15:43:30 +0100 Subject: [PATCH 1/6] feat(AsyncAPI2.3): add support for new Components Object fields Refs #1130 --- .../src/elements/nces/ComponentsChannels.ts | 13 +++++++ .../src/elements/nces/ComponentsServers.ts | 13 +++++++ .../src/refractor/specification.ts | 4 ++ .../async-api-2/components/ChannelsVisitor.ts | 17 +++++++++ .../async-api-2/components/ServersVisitor.ts | 37 +++++++++++++++++++ .../visitors/async-api-2/servers/index.ts | 25 ++++++++++++- .../Components/__snapshots__/index.ts.snap | 18 +++++++++ .../refractor/elements/Components/index.ts | 9 +++++ .../Servers/__snapshots__/index.ts.snap | 5 ++- .../test/refractor/elements/Servers/index.ts | 4 +- 10 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 packages/apidom-ns-asyncapi-2/src/elements/nces/ComponentsChannels.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/elements/nces/ComponentsServers.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/components/ChannelsVisitor.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/components/ServersVisitor.ts diff --git a/packages/apidom-ns-asyncapi-2/src/elements/nces/ComponentsChannels.ts b/packages/apidom-ns-asyncapi-2/src/elements/nces/ComponentsChannels.ts new file mode 100644 index 0000000000..a222336892 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/elements/nces/ComponentsChannels.ts @@ -0,0 +1,13 @@ +import { Attributes, Meta } from 'minim'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +class ComponentsChannels extends ObjectElement { + static primaryClass = 'components-channels'; + + constructor(content?: Record, meta?: Meta, attributes?: Attributes) { + super(content, meta, attributes); + this.classes.push(ComponentsChannels.primaryClass); + } +} + +export default ComponentsChannels; diff --git a/packages/apidom-ns-asyncapi-2/src/elements/nces/ComponentsServers.ts b/packages/apidom-ns-asyncapi-2/src/elements/nces/ComponentsServers.ts new file mode 100644 index 0000000000..296fb9c24c --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/elements/nces/ComponentsServers.ts @@ -0,0 +1,13 @@ +import { Attributes, Meta } from 'minim'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +class ComponentsServers extends ObjectElement { + static primaryClass = 'components-servers'; + + constructor(content?: Record, meta?: Meta, attributes?: Attributes) { + super(content, meta, attributes); + this.classes.push(ComponentsServers.primaryClass); + } +} + +export default ComponentsServers; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts b/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts index 75b1ee463d..049b458f39 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts @@ -104,6 +104,8 @@ import ExternalDocumentationDescriptionVisitor from './visitors/async-api-2/exte import ExternalDocumentationUrlVisitor from './visitors/async-api-2/external-documentation/UrlVisitor'; import ComponentsVisitor from './visitors/async-api-2/components'; import ComponentsSchemasVisitor from './visitors/async-api-2/components/SchemasVisitor'; +import ComponentsServersVisitor from './visitors/async-api-2/components/ServersVisitor'; +import ComponentsChannelsVisitor from './visitors/async-api-2/components/ChannelsVisitor'; import ComponentsMessagesVisitor from './visitors/async-api-2/components/MessagesVisitor'; import ComponentsSecuritySchemesVisitor from './visitors/async-api-2/components/SecuritySchemesVisitor'; import ComponentsParametersVisitor from './visitors/async-api-2/components/ParametersVisitor'; @@ -547,6 +549,8 @@ const specification = { $visitor: ComponentsVisitor, fixedFields: { schemas: ComponentsSchemasVisitor, + servers: ComponentsServersVisitor, + channels: ComponentsChannelsVisitor, messages: ComponentsMessagesVisitor, securitySchemes: ComponentsSecuritySchemesVisitor, parameters: ComponentsParametersVisitor, diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/components/ChannelsVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/components/ChannelsVisitor.ts new file mode 100644 index 0000000000..df23024dbe --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/components/ChannelsVisitor.ts @@ -0,0 +1,17 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import ComponentsChannelsElement from '../../../../elements/nces/ComponentsChannels'; +import MapVisitor from '../../generics/MapVisitor'; +import FallbackVisitor from '../../FallbackVisitor'; + +const ChannelsVisitor = stampit(MapVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'ChannelItem']), + }, + init() { + this.element = new ComponentsChannelsElement(); + }, +}); + +export default ChannelsVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/components/ServersVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/components/ServersVisitor.ts new file mode 100644 index 0000000000..9081e3d922 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/components/ServersVisitor.ts @@ -0,0 +1,37 @@ +import stampit from 'stampit'; +import { ObjectElement, Element } from '@swagger-api/apidom-core'; + +import ReferenceElement from '../../../../elements/Reference'; +import ComponentsServersElement from '../../../../elements/nces/ComponentsServers'; +import MapVisitor from '../../generics/MapVisitor'; +import FallbackVisitor from '../../FallbackVisitor'; +import { isReferenceLikeElement } from '../../../predicates'; +import { isReferenceElement } from '../../../../predicates'; + +const ServersVisitor = stampit(MapVisitor, FallbackVisitor, { + props: { + specPath: (element: Element) => { + // eslint-disable-next-line no-nested-ternary + return isReferenceLikeElement(element) + ? ['document', 'objects', 'Reference'] + : ['document', 'objects', 'Server']; + }, + }, + init() { + this.element = new ComponentsServersElement(); + }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = MapVisitor.compose.methods.ObjectElement.call(this, objectElement); + + this.element.filter(isReferenceElement).forEach((referenceElement: ReferenceElement) => { + referenceElement.setMetaProperty('referenced-element', 'server'); + }); + + return result; + }, + }, +}); + +export default ServersVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/servers/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/servers/index.ts index 0bab3d6279..42c5679d94 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/servers/index.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/servers/index.ts @@ -1,20 +1,41 @@ import stampit from 'stampit'; -import { always, test } from 'ramda'; +import { test } from 'ramda'; +import { Element, ObjectElement } from '@swagger-api/apidom-core'; import PatternedFieldsVisitor from '../../generics/PatternedFieldsVisitor'; import FallbackVisitor from '../../FallbackVisitor'; import ServersElement from '../../../../elements/Servers'; +import ReferenceElement from '../../../../elements/Reference'; +import { isReferenceLikeElement } from '../../../predicates'; +import { isReferenceElement } from '../../../../predicates'; const ServersVisitor = stampit(PatternedFieldsVisitor, FallbackVisitor, { props: { fieldPatternPredicate: test(/^[A-Za-z0-9_-]+$/), - specPath: always(['document', 'objects', 'Server']), + specPath: (element: Element) => { + // eslint-disable-next-line no-nested-ternary + return isReferenceLikeElement(element) + ? ['document', 'objects', 'Reference'] + : ['document', 'objects', 'Server']; + }, canSupportSpecificationExtensions: false, }, init() { this.element = new ServersElement(); this.element.classes.push('servers'); }, + methods: { + ObjectElement(objectElement: ObjectElement) { + // @ts-ignore + const result = PatternedFieldsVisitor.compose.methods.ObjectElement.call(this, objectElement); + + this.element.filter(isReferenceElement).forEach((referenceElement: ReferenceElement) => { + referenceElement.setMetaProperty('referenced-element', 'server'); + }); + + return result; + }, + }, }); export default ServersVisitor; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/Components/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/Components/__snapshots__/index.ts.snap index 741bdcca12..327fa4b49b 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/Components/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/Components/__snapshots__/index.ts.snap @@ -14,6 +14,24 @@ exports[`refractor elements ComponentsElement should refract to semantic ApiDOM (MemberElement (StringElement) (StringElement)))))) + (MemberElement + (StringElement) + (ObjectElement + (MemberElement + (StringElement) + (ServerElement)) + (MemberElement + (StringElement) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement)))))) + (MemberElement + (StringElement) + (ObjectElement + (MemberElement + (StringElement) + (ChannelItemElement)))) (MemberElement (StringElement) (ObjectElement diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/Components/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/Components/index.ts index 2f6cf9632a..7cd4693743 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/Components/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/Components/index.ts @@ -14,6 +14,15 @@ describe('refractor', function () { $ref: '#/path/to/UserSchema', }, }, + servers: { + development: {}, + production: { + $ref: '#/path/to/production/server', + }, + }, + channels: { + channel1: {}, + }, messages: { Message: {}, MessageRef: { diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/Servers/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/Servers/__snapshots__/index.ts.snap index c892fd7ff3..987f8b6556 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/Servers/__snapshots__/index.ts.snap +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/Servers/__snapshots__/index.ts.snap @@ -10,5 +10,8 @@ exports[`refractor elements ServersElement should refract to semantic ApiDOM tre (ServerElement)) (MemberElement (StringElement) - (ServerElement))) + (ReferenceElement + (MemberElement + (StringElement) + (StringElement))))) `; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/Servers/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/Servers/index.ts index 5bd5734d80..b4caf0fe0d 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/Servers/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/Servers/index.ts @@ -10,7 +10,9 @@ describe('refractor', function () { const serversElement = ServersElement.refract({ dev: {}, staging: {}, - production: {}, + production: { + $ref: '#/path/to/production/server', + }, }); expect(sexprs(serversElement)).toMatchSnapshot(); From 0eae3192e95a1ea9d6fd2facccf56c6c595b620e Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Mon, 7 Feb 2022 14:25:39 +0100 Subject: [PATCH 2/6] feat(asyncapi): add support for new solace bindings Refs #1130 --- packages/apidom-ns-asyncapi-2/README.md | 7 ++++ .../src/elements/ChannelBindings.ts | 9 ++++ .../src/elements/MessageBindings.ts | 9 ++++ .../src/elements/OperationBindings.ts | 9 ++++ .../src/elements/ServerBindings.ts | 9 ++++ .../bindings/solace/SolaceChannelBinding.ts | 12 ++++++ .../bindings/solace/SolaceMessageBinding.ts | 12 ++++++ .../bindings/solace/SolaceOperationBinding.ts | 28 +++++++++++++ .../bindings/solace/SolaceServerBinding.ts | 28 +++++++++++++ packages/apidom-ns-asyncapi-2/src/index.ts | 7 +++- .../apidom-ns-asyncapi-2/src/namespace.ts | 12 +++++- .../src/refractor/registration.ts | 42 +++++++++++++++++++ .../src/refractor/specification.ts | 33 ++++++++++++++- .../bindings/solace/channel-binding/index.ts | 18 ++++++++ .../bindings/solace/message-binding/index.ts | 18 ++++++++ .../BindingVersionVisitor.ts | 5 +++ .../DestinationsVersionVisitor.ts | 5 +++ .../solace/operation-binding/index.ts | 18 ++++++++ .../server-binding/BindingVersionVisitor.ts | 5 +++ .../solace/server-binding/MsgVpnVisitor.ts | 5 +++ .../bindings/solace/server-binding/index.ts | 18 ++++++++ .../src/traversal/visitor.ts | 5 +++ .../__snapshots__/index.ts.snap | 3 ++ .../elements/ChannelBindings/index.ts | 1 + .../__snapshots__/index.ts.snap | 3 ++ .../elements/MessageBindings/index.ts | 1 + .../__snapshots__/index.ts.snap | 3 ++ .../elements/OperationBindings/index.ts | 1 + .../__snapshots__/index.ts.snap | 3 ++ .../elements/ServerBindings/index.ts | 1 + .../__snapshots__/index.ts.snap | 3 ++ .../solace/SolaceChannelBinding/index.ts | 16 +++++++ .../__snapshots__/index.ts.snap | 3 ++ .../solace/SolaceMessageBinding/index.ts | 16 +++++++ .../__snapshots__/index.ts.snap | 3 ++ .../solace/SolaceOperationBinding/index.ts | 16 +++++++ .../__snapshots__/index.ts.snap | 3 ++ .../solace/SolaceServerBinding/index.ts | 16 +++++++ 38 files changed, 403 insertions(+), 3 deletions(-) create mode 100644 packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceChannelBinding.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceMessageBinding.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceOperationBinding.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceServerBinding.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/channel-binding/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/message-binding/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/BindingVersionVisitor.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/DestinationsVersionVisitor.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/BindingVersionVisitor.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/MsgVpnVisitor.ts create mode 100644 packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceChannelBinding/__snapshots__/index.ts.snap create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceChannelBinding/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceMessageBinding/__snapshots__/index.ts.snap create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceMessageBinding/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/__snapshots__/index.ts.snap create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/__snapshots__/index.ts.snap create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/index.ts diff --git a/packages/apidom-ns-asyncapi-2/README.md b/packages/apidom-ns-asyncapi-2/README.md index 6d2294d06a..9b536e765a 100644 --- a/packages/apidom-ns-asyncapi-2/README.md +++ b/packages/apidom-ns-asyncapi-2/README.md @@ -310,6 +310,13 @@ Only fully implemented specification objects should be checked here. - [x] [Operation Binding Object](https://github.com/asyncapi/bindings/blob/main/sns/README.md#operation-binding-object) - [x] [Message Binding Object](https://github.com/asyncapi/bindings/blob/main/sns/README.md#message-binding-object) +#### Solace + +- [x] [Server Binding Object](https://github.com/asyncapi/bindings/blob/main/solace/README.md#server-binding-object) +- [x] [Channel Binding Object](https://github.com/asyncapi/bindings/blob/main/solace/README.md#channel-binding-object) +- [x] [Operation Binding Object](https://github.com/asyncapi/bindings/blob/main/solace/README.md#operation-binding-object) +- [x] [Message Binding Object](https://github.com/asyncapi/bindings/blob/main/solace/README.md#message-binding-object) + #### SQS - [x] [Server Binding Object](https://github.com/asyncapi/bindings/blob/main/sqs/README.md#server-binding-object) diff --git a/packages/apidom-ns-asyncapi-2/src/elements/ChannelBindings.ts b/packages/apidom-ns-asyncapi-2/src/elements/ChannelBindings.ts index c7e2ccbfe7..0dee9c0575 100644 --- a/packages/apidom-ns-asyncapi-2/src/elements/ChannelBindings.ts +++ b/packages/apidom-ns-asyncapi-2/src/elements/ChannelBindings.ts @@ -12,6 +12,7 @@ import Mqtt5ChannelBindingElement from './bindings/mqtt5/Mqtt5ChannelBinding'; import NatsChannelBindingElement from './bindings/nats/NatsChannelBinding'; import JmsChannelBindingElement from './bindings/jms/JmsChannelBinding'; import SnsChannelBindingElement from './bindings/sns/SnsChannelBinding'; +import SolaceChannelBindingElement from './bindings/solace/SolaceChannelBinding'; import SqsChannelBindingElement from './bindings/sqs/SqsChannelBinding'; import StompChannelBindingElement from './bindings/stomp/StompChannelBinding'; import RedisChannelBindingElement from './bindings/redis/RedisChannelBinding'; @@ -112,6 +113,14 @@ class ChannelBindings extends ObjectElement { this.set('sns', sns); } + get solace(): SolaceChannelBindingElement | undefined { + return this.get('solace'); + } + + set solace(solace: SolaceChannelBindingElement | undefined) { + this.set('solace', solace); + } + get sqs(): SqsChannelBindingElement | undefined { return this.get('sqs'); } diff --git a/packages/apidom-ns-asyncapi-2/src/elements/MessageBindings.ts b/packages/apidom-ns-asyncapi-2/src/elements/MessageBindings.ts index c0d36f0459..4eba3cbe5e 100644 --- a/packages/apidom-ns-asyncapi-2/src/elements/MessageBindings.ts +++ b/packages/apidom-ns-asyncapi-2/src/elements/MessageBindings.ts @@ -12,6 +12,7 @@ import Mqtt5MessageBindingElement from './bindings/mqtt5/Mqtt5MessageBinding'; import NatsMessageBindingElement from './bindings/nats/NatsMessageBinding'; import JmsMessageBindingElement from './bindings/jms/JmsMessageBinding'; import SnsMessageBindingElement from './bindings/sns/SnsMessageBinding'; +import SolaceMessageBindingElement from './bindings/solace/SolaceMessageBinding'; import SqsMessageBindingElement from './bindings/sqs/SqsMessageBinding'; import StompMessageBindingElement from './bindings/stomp/StompMessageBinding'; import RedisMessageBindingElement from './bindings/redis/RedisMessageBinding'; @@ -112,6 +113,14 @@ class MessageBindings extends ObjectElement { this.set('sns', sns); } + get solace(): SolaceMessageBindingElement | undefined { + return this.get('solace'); + } + + set solace(solace: SolaceMessageBindingElement | undefined) { + this.set('solace', solace); + } + get sqs(): SqsMessageBindingElement | undefined { return this.get('sqs'); } diff --git a/packages/apidom-ns-asyncapi-2/src/elements/OperationBindings.ts b/packages/apidom-ns-asyncapi-2/src/elements/OperationBindings.ts index 93b4a7d144..5a02059fd1 100644 --- a/packages/apidom-ns-asyncapi-2/src/elements/OperationBindings.ts +++ b/packages/apidom-ns-asyncapi-2/src/elements/OperationBindings.ts @@ -12,6 +12,7 @@ import Mqtt5OperationBindingElement from './bindings/mqtt5/Mqtt5OperationBinding import NatsOperationBindingElement from './bindings/nats/NatsOperationBinding'; import JmsOperationBindingElement from './bindings/jms/JmsOperationBinding'; import SnsOperationBindingElement from './bindings/sns/SnsOperationBinding'; +import SolaceOperationBindingElement from './bindings/solace/SolaceOperationBinding'; import SqsOperationBindingElement from './bindings/sqs/SqsOperationBinding'; import StompOperationBindingElement from './bindings/stomp/StompOperationBinding'; import RedisOperationBindingElement from './bindings/redis/RedisOperationBinding'; @@ -111,6 +112,14 @@ class OperationBindings extends ObjectElement { this.set('sns', sns); } + get solace(): SolaceOperationBindingElement | undefined { + return this.get('solace'); + } + + set solace(solace: SolaceOperationBindingElement | undefined) { + this.set('solace', solace); + } + get sqs(): SqsOperationBindingElement | undefined { return this.get('sqs'); } diff --git a/packages/apidom-ns-asyncapi-2/src/elements/ServerBindings.ts b/packages/apidom-ns-asyncapi-2/src/elements/ServerBindings.ts index 28d009035d..7e1ec7d7f1 100644 --- a/packages/apidom-ns-asyncapi-2/src/elements/ServerBindings.ts +++ b/packages/apidom-ns-asyncapi-2/src/elements/ServerBindings.ts @@ -12,6 +12,7 @@ import Mqtt5ServerBindingElement from './bindings/mqtt5/Mqtt5ServerBinding'; import NatsServerBindingElement from './bindings/nats/NatsServerBinding'; import JmsServerBindingElement from './bindings/jms/JmsServerBinding'; import SnsServerBindingElement from './bindings/sns/SnsServerBinding'; +import SolaceServerBindingElement from './bindings/solace/SolaceServerBinding'; import SqsServerBindingElement from './bindings/sqs/SqsServerBinding'; import StompServerBindingElement from './bindings/stomp/StompServerBinding'; import RedisServerBindingElement from './bindings/redis/RedisServerBinding'; @@ -112,6 +113,14 @@ class ServerBindings extends ObjectElement { this.set('sns', sns); } + get solace(): SolaceServerBindingElement | undefined { + return this.get('solace'); + } + + set solace(solace: SolaceServerBindingElement | undefined) { + this.set('solace', solace); + } + get sqs(): SqsServerBindingElement | undefined { return this.get('sqs'); } diff --git a/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceChannelBinding.ts b/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceChannelBinding.ts new file mode 100644 index 0000000000..624b8d9514 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceChannelBinding.ts @@ -0,0 +1,12 @@ +import { Attributes, Meta } from 'minim'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +class SolaceChannelBinding extends ObjectElement { + constructor(content?: Record, meta?: Meta, attributes?: Attributes) { + super(content, meta, attributes); + this.element = 'solaceChannelBinding'; + this.classes.push('channel-binding'); + } +} + +export default SolaceChannelBinding; diff --git a/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceMessageBinding.ts b/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceMessageBinding.ts new file mode 100644 index 0000000000..700bd452e5 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceMessageBinding.ts @@ -0,0 +1,12 @@ +import { Attributes, Meta } from 'minim'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +class SolaceMessageBinding extends ObjectElement { + constructor(content?: Record, meta?: Meta, attributes?: Attributes) { + super(content, meta, attributes); + this.element = 'solaceMessageBinding'; + this.classes.push('message-binding'); + } +} + +export default SolaceMessageBinding; diff --git a/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceOperationBinding.ts b/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceOperationBinding.ts new file mode 100644 index 0000000000..78b5054f57 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceOperationBinding.ts @@ -0,0 +1,28 @@ +import { Attributes, Meta, StringElement } from 'minim'; +import { ObjectElement, ArrayElement } from '@swagger-api/apidom-core'; + +class SolaceOperationBinding extends ObjectElement { + constructor(content?: Record, meta?: Meta, attributes?: Attributes) { + super(content, meta, attributes); + this.element = 'solaceOperationBinding'; + this.classes.push('operation-binding'); + } + + get bindingVersion(): StringElement { + return this.get('bindingVersion'); + } + + set bindingVersion(bindingVersion: StringElement) { + this.set('bindingVersion', bindingVersion); + } + + get destinations(): ArrayElement { + return this.get('destinations'); + } + + set destinations(destinations: ArrayElement) { + this.set('destinations', destinations); + } +} + +export default SolaceOperationBinding; diff --git a/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceServerBinding.ts b/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceServerBinding.ts new file mode 100644 index 0000000000..bd3ef4629e --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/elements/bindings/solace/SolaceServerBinding.ts @@ -0,0 +1,28 @@ +import { Attributes, Meta, StringElement } from 'minim'; +import { ObjectElement } from '@swagger-api/apidom-core'; + +class SolaceServerBinding extends ObjectElement { + constructor(content?: Record, meta?: Meta, attributes?: Attributes) { + super(content, meta, attributes); + this.element = 'solaceServerBinding'; + this.classes.push('server-binding'); + } + + get bindingVersion(): StringElement { + return this.get('bindingVersion'); + } + + set bindingVersion(bindingVersion: StringElement) { + this.set('bindingVersion', bindingVersion); + } + + get msgVpn(): StringElement { + return this.get('msgVpn'); + } + + set msgVpn(msgVpn: StringElement) { + this.set('msgVpn', msgVpn); + } +} + +export default SolaceServerBinding; diff --git a/packages/apidom-ns-asyncapi-2/src/index.ts b/packages/apidom-ns-asyncapi-2/src/index.ts index 23f38277d5..6c06d359b7 100644 --- a/packages/apidom-ns-asyncapi-2/src/index.ts +++ b/packages/apidom-ns-asyncapi-2/src/index.ts @@ -59,7 +59,7 @@ export { export { keyMap, getNodeType } from './traversal/visitor'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 specification elements. + * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 | 2.3.0 specification elements. */ export { default as AsyncApi2Element } from './elements/AsyncApi2'; export { default as AsyncApiVersionElement } from './elements/AsyncApiVersion'; @@ -163,6 +163,11 @@ export { default as SnsChannelBindingElement } from './elements/bindings/sns/Sns export { default as SnsMessageBindingElement } from './elements/bindings/sns/SnsMessageBinding'; export { default as SnsOperationBindingElement } from './elements/bindings/sns/SnsOperationBinding'; export { default as SnsServerBindingElement } from './elements/bindings/sns/SnsServerBinding'; +// Solace +export { default as SolaceChannelBindingElement } from './elements/bindings/solace/SolaceChannelBinding'; +export { default as SolaceMessageBindingElement } from './elements/bindings/solace/SolaceMessageBinding'; +export { default as SolaceOperationBindingElement } from './elements/bindings/solace/SolaceOperationBinding'; +export { default as SolaceServerBindingElement } from './elements/bindings/solace/SolaceServerBinding'; // SQS export { default as SqsChannelBindingElement } from './elements/bindings/sqs/SqsChannelBinding'; export { default as SqsMessageBindingElement } from './elements/bindings/sqs/SqsMessageBinding'; diff --git a/packages/apidom-ns-asyncapi-2/src/namespace.ts b/packages/apidom-ns-asyncapi-2/src/namespace.ts index 0ff360e9ab..c0942bdba6 100644 --- a/packages/apidom-ns-asyncapi-2/src/namespace.ts +++ b/packages/apidom-ns-asyncapi-2/src/namespace.ts @@ -1,7 +1,7 @@ import { NamespacePluginOptions } from 'minim'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 specification elements. + * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 | 2.3.0 specification elements. */ import AsyncApi2Element from './elements/AsyncApi2'; import AsyncApiVersionElement from './elements/AsyncApiVersion'; @@ -104,6 +104,11 @@ import SnsChannelBindingElement from './elements/bindings/sns/SnsChannelBinding' import SnsMessageBindingElement from './elements/bindings/sns/SnsMessageBinding'; import SnsOperationBindingElement from './elements/bindings/sns/SnsOperationBinding'; import SnsServerBindingElement from './elements/bindings/sns/SnsServerBinding'; +// Solace +import SolaceChannelBindingElement from './elements/bindings/solace/SolaceChannelBinding'; +import SolaceMessageBindingElement from './elements/bindings/solace/SolaceMessageBinding'; +import SolaceOperationBindingElement from './elements/bindings/solace/SolaceOperationBinding'; +import SolaceServerBindingElement from './elements/bindings/solace/SolaceServerBinding'; // SQS import SqsChannelBindingElement from './elements/bindings/sqs/SqsChannelBinding'; import SqsMessageBindingElement from './elements/bindings/sqs/SqsMessageBinding'; @@ -229,6 +234,11 @@ const asyncApi2 = { base.register('snsMessageBinding', SnsMessageBindingElement); base.register('snsOperationBinding', SnsOperationBindingElement); base.register('snsServerBinding', SnsServerBindingElement); + // Solace + base.register('solaceChannelBinding', SolaceChannelBindingElement); + base.register('solaceMessageBinding', SolaceMessageBindingElement); + base.register('solaceOperationBinding', SolaceOperationBindingElement); + base.register('solaceServerBinding', SolaceServerBindingElement); // SQS base.register('sqsChannelBinding', SqsChannelBindingElement); base.register('sqsMessageBinding', SqsMessageBindingElement); diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts b/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts index 901e94bca2..ba8b1747a0 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts @@ -103,6 +103,11 @@ import SnsChannelBindingElement from '../elements/bindings/sns/SnsChannelBinding import SnsMessageBindingElement from '../elements/bindings/sns/SnsMessageBinding'; import SnsOperationBindingElement from '../elements/bindings/sns/SnsOperationBinding'; import SnsServerBindingElement from '../elements/bindings/sns/SnsServerBinding'; +// Solace +import SolaceChannelBindingElement from '../elements/bindings/solace/SolaceChannelBinding'; +import SolaceMessageBindingElement from '../elements/bindings/solace/SolaceMessageBinding'; +import SolaceOperationBindingElement from '../elements/bindings/solace/SolaceOperationBinding'; +import SolaceServerBindingElement from '../elements/bindings/solace/SolaceServerBinding'; // SQS import SqsChannelBindingElement from '../elements/bindings/sqs/SqsChannelBinding'; import SqsMessageBindingElement from '../elements/bindings/sqs/SqsMessageBinding'; @@ -806,6 +811,43 @@ SnsServerBindingElement.refract = createRefractor([ 'ServerBinding', '$visitor', ]); +// Solace +SolaceChannelBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'solace', + 'ChannelBinding', + '$visitor', +]); +SolaceMessageBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'solace', + 'MessageBinding', + '$visitor', +]); +SolaceOperationBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'solace', + 'OperationBinding', + '$visitor', +]); +SolaceServerBindingElement.refract = createRefractor([ + 'visitors', + 'document', + 'objects', + 'bindings', + 'solace', + 'ServerBinding', + '$visitor', +]); // SQS SqsChannelBindingElement.refract = createRefractor([ 'visitors', diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts b/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts index 049b458f39..13d598d5aa 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts @@ -1,7 +1,7 @@ import FallbackVisitor from './visitors/FallbackVisitor'; import SpecificationExtensionVisitor from './visitors/SpecificationExtensionVisitor'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 specification elements. + * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 | 2.3.0 specification elements. */ import AsyncApi2Visitor from './visitors/async-api-2'; import AsyncApiVersionVisitor from './visitors/async-api-2/AsyncApiVersionVisitor'; @@ -290,6 +290,11 @@ import SnsChannelBindingVisitor from './visitors/async-api-2/bindings/sns/channe import SnsMessageBindingVisitor from './visitors/async-api-2/bindings/sns/message-binding'; import SnsOperationBindingVisitor from './visitors/async-api-2/bindings/sns/operation-binding'; import SnsServerBindingVisitor from './visitors/async-api-2/bindings/sns/server-binding'; +// Solace +import SolaceChannelBindingVisitor from './visitors/async-api-2/bindings/solace/channel-binding'; +import SolaceMessageBindingVisitor from './visitors/async-api-2/bindings/solace/message-binding'; +import SolaceOperationBindingVisitor from './visitors/async-api-2/bindings/solace/operation-binding'; +import SolaceServerBindingVisitor from './visitors/async-api-2/bindings/solace/server-binding'; // SQS import SqsChannelBindingVisitor from './visitors/async-api-2/bindings/sqs/channel-binding'; import SqsMessageBindingVisitor from './visitors/async-api-2/bindings/sqs/message-binding'; @@ -717,6 +722,9 @@ const specification = { sns: { $ref: '#/visitors/document/objects/bindings/sns/ServerBinding', }, + solace: { + $ref: '#/visitors/document/objects/bindings/solace/ServerBinding', + }, sqs: { $ref: '#/visitors/document/objects/bindings/sqs/ServerBinding', }, @@ -781,6 +789,9 @@ const specification = { sns: { $ref: '#/visitors/document/objects/bindings/sns/ChannelBinding', }, + solace: { + $ref: '#/visitors/document/objects/bindings/solace/ChannelBinding', + }, sqs: { $ref: '#/visitors/document/objects/bindings/sqs/ChannelBinding', }, @@ -834,6 +845,9 @@ const specification = { sns: { $ref: '#/visitors/document/objects/bindings/sns/OperationBinding', }, + solace: { + $ref: '#/visitors/document/objects/bindings/solace/OperationBinding', + }, sqs: { $ref: '#/visitors/document/objects/bindings/sqs/OperationBinding', }, @@ -884,6 +898,9 @@ const specification = { sns: { $ref: '#/visitors/document/objects/bindings/sns/MessageBinding', }, + solace: { + $ref: '#/visitors/document/objects/bindings/solace/MessageBinding', + }, sqs: { $ref: '#/visitors/document/objects/bindings/sqs/MessageBinding', }, @@ -1152,6 +1169,20 @@ const specification = { $visitor: SnsMessageBindingVisitor, }, }, + solace: { + ServerBinding: { + $visitor: SolaceServerBindingVisitor, + }, + ChannelBinding: { + $visitor: SolaceChannelBindingVisitor, + }, + OperationBinding: { + $visitor: SolaceOperationBindingVisitor, + }, + MessageBinding: { + $visitor: SolaceMessageBindingVisitor, + }, + }, sqs: { ServerBinding: { $visitor: SqsServerBindingVisitor, diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/channel-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/channel-binding/index.ts new file mode 100644 index 0000000000..0bad28159c --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/channel-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import SolaceChannelBindingElement from '../../../../../../elements/bindings/solace/SolaceChannelBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const SolaceChannelBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'solace', 'ChannelBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new SolaceChannelBindingElement(); + }, +}); + +export default SolaceChannelBindingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/message-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/message-binding/index.ts new file mode 100644 index 0000000000..ba9a4d871e --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/message-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import SolaceMessageBindingElement from '../../../../../../elements/bindings/solace/SolaceMessageBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const SolaceMessageBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'solace', 'MessageBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new SolaceMessageBindingElement(); + }, +}); + +export default SolaceMessageBindingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/BindingVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/BindingVersionVisitor.ts new file mode 100644 index 0000000000..5f892877c6 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/BindingVersionVisitor.ts @@ -0,0 +1,5 @@ +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/operation-binding/DestinationsVersionVisitor.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/DestinationsVersionVisitor.ts new file mode 100644 index 0000000000..2eed85a1bf --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/DestinationsVersionVisitor.ts @@ -0,0 +1,5 @@ +import FallbackVisitor from '../../../../FallbackVisitor'; + +const DestinationsVisitor = FallbackVisitor; + +export default DestinationsVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/index.ts new file mode 100644 index 0000000000..1b0835d615 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/operation-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import SolaceOperationBindingElement from '../../../../../../elements/bindings/solace/SolaceOperationBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const SolaceOperationBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'solace', 'OperationBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new SolaceOperationBindingElement(); + }, +}); + +export default SolaceOperationBindingVisitor; 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 new file mode 100644 index 0000000000..5f892877c6 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/BindingVersionVisitor.ts @@ -0,0 +1,5 @@ +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 new file mode 100644 index 0000000000..b7683a450d --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/MsgVpnVisitor.ts @@ -0,0 +1,5 @@ +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/solace/server-binding/index.ts b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/index.ts new file mode 100644 index 0000000000..ba5408904a --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/bindings/solace/server-binding/index.ts @@ -0,0 +1,18 @@ +import stampit from 'stampit'; +import { always } from 'ramda'; + +import SolaceServerBindingElement from '../../../../../../elements/bindings/solace/SolaceServerBinding'; +import FallbackVisitor from '../../../../FallbackVisitor'; +import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor'; + +const SolaceServerBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, { + props: { + specPath: always(['document', 'objects', 'bindings', 'solace', 'ServerBinding']), + canSupportSpecificationExtensions: false, + }, + init() { + this.element = new SolaceServerBindingElement(); + }, +}); + +export default SolaceServerBindingVisitor; diff --git a/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts b/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts index e844de19e3..83c1da9fc1 100644 --- a/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts +++ b/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts @@ -111,6 +111,11 @@ export const keyMap = { SnsMessageBindingElement: ['content'], SnsOperationBindingElement: ['content'], SnsServerBindingElement: ['content'], + // Solace + SolaceChannelBindingElement: ['content'], + SolaceMessageBindingElement: ['content'], + SolaceOperationBindingElement: ['content'], + SolaceServerBindingElement: ['content'], // SQS SqsChannelBindingElement: ['content'], SqsMessageBindingElement: ['content'], 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 130053abdf..66ba26f5fd 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 @@ -35,6 +35,9 @@ exports[`refractor elements ChannelBindingsElement should refract to semantic Ap (MemberElement (StringElement) (SnsChannelBindingElement)) + (MemberElement + (StringElement) + (SolaceChannelBindingElement)) (MemberElement (StringElement) (SqsChannelBindingElement)) 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 7a760de072..44f915c1b0 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 @@ -19,6 +19,7 @@ describe('refractor', function () { nats: {}, jms: {}, sns: {}, + solace: {}, sqs: {}, stomp: {}, redis: {}, 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 75862d4589..33cb865146 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 @@ -35,6 +35,9 @@ exports[`refractor elements MessageBindingsElement should refract to semantic Ap (MemberElement (StringElement) (SnsMessageBindingElement)) + (MemberElement + (StringElement) + (SolaceMessageBindingElement)) (MemberElement (StringElement) (SqsMessageBindingElement)) 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 f5370bcb94..280cb5b6ab 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 @@ -19,6 +19,7 @@ describe('refractor', function () { nats: {}, jms: {}, sns: {}, + solace: {}, sqs: {}, stomp: {}, redis: {}, 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 8ca9626be4..b7a2a5176f 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 @@ -35,6 +35,9 @@ exports[`refractor elements OperationBindingsElement should refract to semantic (MemberElement (StringElement) (SnsOperationBindingElement)) + (MemberElement + (StringElement) + (SolaceOperationBindingElement)) (MemberElement (StringElement) (SqsOperationBindingElement)) 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 f9491b3dd2..e6e4defb1f 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 @@ -19,6 +19,7 @@ describe('refractor', function () { nats: {}, jms: {}, sns: {}, + solace: {}, sqs: {}, stomp: {}, redis: {}, 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 9430d32ebf..3dba9169f2 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 @@ -35,6 +35,9 @@ exports[`refractor elements ServerBindingsElement should refract to semantic Api (MemberElement (StringElement) (SnsServerBindingElement)) + (MemberElement + (StringElement) + (SolaceServerBindingElement)) (MemberElement (StringElement) (SqsServerBindingElement)) 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 05be5a91a8..4ba05798b6 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 @@ -19,6 +19,7 @@ describe('refractor', function () { nats: {}, jms: {}, sns: {}, + solace: {}, sqs: {}, stomp: {}, redis: {}, diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceChannelBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceChannelBinding/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..830097cd57 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceChannelBinding/__snapshots__/index.ts.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements SolaceChannelBindingElement should refract to semantic ApiDOM tree 1`] = `(SolaceChannelBindingElement)`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceChannelBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceChannelBinding/index.ts new file mode 100644 index 0000000000..07820f5e2c --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceChannelBinding/index.ts @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { SolaceChannelBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('SolaceChannelBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const solaceChannelBindingElement = SolaceChannelBindingElement.refract({}); + + expect(sexprs(solaceChannelBindingElement)).toMatchSnapshot(); + }); + }); + }); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceMessageBinding/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceMessageBinding/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..28e6e11bbb --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceMessageBinding/__snapshots__/index.ts.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements SolaceMessageBindingElement should refract to semantic ApiDOM tree 1`] = `(SolaceMessageBindingElement)`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceMessageBinding/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceMessageBinding/index.ts new file mode 100644 index 0000000000..2e3788e963 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceMessageBinding/index.ts @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { SolaceMessageBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('SolaceMessageBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const solaceMessageBindingElement = SolaceMessageBindingElement.refract({}); + + expect(sexprs(solaceMessageBindingElement)).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 new file mode 100644 index 0000000000..2ac41f01e7 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/__snapshots__/index.ts.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements SolaceOperationBindingElement should refract to semantic ApiDOM tree 1`] = `(SolaceOperationBindingElement)`; 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 new file mode 100644 index 0000000000..5980b0ff90 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceOperationBinding/index.ts @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { SolaceOperationBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('SolaceOperationBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const solaceOperationBindingElement = SolaceOperationBindingElement.refract({}); + + 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 new file mode 100644 index 0000000000..5638979d19 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/__snapshots__/index.ts.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`refractor elements SolaceServerBindingElement should refract to semantic ApiDOM tree 1`] = `(SolaceServerBindingElement)`; 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 new file mode 100644 index 0000000000..dbf7ea8bf9 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/bindings/solace/SolaceServerBinding/index.ts @@ -0,0 +1,16 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; + +import { SolaceServerBindingElement } from '../../../../../../src'; + +describe('refractor', function () { + context('elements', function () { + context('SolaceServerBindingElement', function () { + specify('should refract to semantic ApiDOM tree', function () { + const solaceServerBindingElement = SolaceServerBindingElement.refract({}); + + expect(sexprs(solaceServerBindingElement)).toMatchSnapshot(); + }); + }); + }); +}); From 7ad3e92c77cad78b2d9fbcc7870a42859d964f1c Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Mon, 7 Feb 2022 14:48:54 +0100 Subject: [PATCH 3/6] feat(asyncapi): add v2.3.0 support in replace-empty-element plugin Refs #1130 --- .../plugins/replace-empty-element.ts | 19 ++++++- .../__snapshots__/index.ts.snap | 56 +++++++++++++++++++ .../elements/ChannelBindings/index.ts | 34 +++++++++++ .../__snapshots__/index.ts.snap | 56 +++++++++++++++++++ .../elements/MessageBindings/index.ts | 34 +++++++++++ .../__snapshots__/index.ts.snap | 53 ++++++++++++++++++ .../elements/OperationBindings/index.ts | 36 ++++++++++++ .../__snapshots__/index.ts.snap | 56 +++++++++++++++++++ .../elements/ServerBindings/index.ts | 34 +++++++++++ 9 files changed, 377 insertions(+), 1 deletion(-) create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ChannelBindings/__snapshots__/index.ts.snap create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ChannelBindings/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/MessageBindings/__snapshots__/index.ts.snap create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/MessageBindings/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/OperationBindings/__snapshots__/index.ts.snap create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/OperationBindings/index.ts create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ServerBindings/__snapshots__/index.ts.snap create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ServerBindings/index.ts diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/plugins/replace-empty-element.ts b/packages/apidom-ns-asyncapi-2/src/refractor/plugins/replace-empty-element.ts index 04ac6cd698..b687f718e0 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/plugins/replace-empty-element.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/plugins/replace-empty-element.ts @@ -11,7 +11,7 @@ import { import mediaTypes from '../../media-types'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 specification elements. + * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 | 2.3.0 specification elements. */ import AsyncApiVersionElement from '../../elements/AsyncApiVersion'; import IdentifierElement from '../../elements/Identifier'; @@ -111,6 +111,11 @@ import SnsChannelBindingElement from '../../elements/bindings/sns/SnsChannelBind import SnsMessageBindingElement from '../../elements/bindings/sns/SnsMessageBinding'; import SnsOperationBindingElement from '../../elements/bindings/sns/SnsOperationBinding'; import SnsServerBindingElement from '../../elements/bindings/sns/SnsServerBinding'; +// Solace +import SolaceChannelBindingElement from '../../elements/bindings/solace/SolaceChannelBinding'; +import SolaceMessageBindingElement from '../../elements/bindings/solace/SolaceMessageBinding'; +import SolaceOperationBindingElement from '../../elements/bindings/solace/SolaceOperationBinding'; +import SolaceServerBindingElement from '../../elements/bindings/solace/SolaceServerBinding'; // SQS import SqsChannelBindingElement from '../../elements/bindings/sqs/SqsChannelBinding'; import SqsMessageBindingElement from '../../elements/bindings/sqs/SqsMessageBinding'; @@ -471,6 +476,9 @@ const schema = { sns(...args: any[]) { return new SnsOperationBindingElement(...args); }, + solace(...args: any[]) { + return new SolaceOperationBindingElement(...args); + }, sqs(...args: any[]) { return new SqsOperationBindingElement(...args); }, @@ -518,6 +526,9 @@ const schema = { sns(...args: any[]) { return new SnsMessageBindingElement(...args); }, + solace(...args: any[]) { + return new SolaceMessageBindingElement(...args); + }, sqs(...args: any[]) { return new SqsMessageBindingElement(...args); }, @@ -568,6 +579,9 @@ const schema = { sns(...args: any[]) { return new SnsServerBindingElement(...args); }, + solace(...args: any[]) { + return new SolaceServerBindingElement(...args); + }, sqs(...args: any[]) { return new SqsServerBindingElement(...args); }, @@ -618,6 +632,9 @@ const schema = { sns(...args: any[]) { return new SnsChannelBindingElement(...args); }, + solace(...args: any[]) { + return new SolaceChannelBindingElement(...args); + }, sqs(...args: any[]) { return new SqsChannelBindingElement(...args); }, diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ChannelBindings/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ChannelBindings/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..fc725118b6 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ChannelBindings/__snapshots__/index.ts.snap @@ -0,0 +1,56 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should refract to semantic ApiDOM tree 1`] = ` +(ChannelBindingsElement + (MemberElement + (StringElement) + (HttpChannelBindingElement)) + (MemberElement + (StringElement) + (WebSocketChannelBindingElement)) + (MemberElement + (StringElement) + (KafkaChannelBindingElement)) + (MemberElement + (StringElement) + (AnypointmqChannelBindingElement)) + (MemberElement + (StringElement) + (AmqpChannelBindingElement)) + (MemberElement + (StringElement) + (Amqp1ChannelBindingElement)) + (MemberElement + (StringElement) + (MqttChannelBindingElement)) + (MemberElement + (StringElement) + (Mqtt5ChannelBindingElement)) + (MemberElement + (StringElement) + (NatsChannelBindingElement)) + (MemberElement + (StringElement) + (JmsChannelBindingElement)) + (MemberElement + (StringElement) + (SnsChannelBindingElement)) + (MemberElement + (StringElement) + (SolaceChannelBindingElement)) + (MemberElement + (StringElement) + (SqsChannelBindingElement)) + (MemberElement + (StringElement) + (StompChannelBindingElement)) + (MemberElement + (StringElement) + (RedisChannelBindingElement)) + (MemberElement + (StringElement) + (MercureChannelBindingElement)) + (MemberElement + (StringElement) + (IbmmqChannelBindingElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ChannelBindings/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ChannelBindings/index.ts new file mode 100644 index 0000000000..8d9880c9c2 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ChannelBindings/index.ts @@ -0,0 +1,34 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; +import { parse } from '@swagger-api/apidom-parser-adapter-yaml-1-2'; +import dedent from 'dedent'; + +import { ChannelBindingsElement, refractorPluginReplaceEmptyElement } from '../../../../../../src'; + +it('should refract to semantic ApiDOM tree', async function () { + const yamlDefinition = dedent` + http: + ws: + kafka: + anypointmq: + amqp: + amqp1: + mqtt: + mqtt5: + nats: + jms: + sns: + solace: + sqs: + stomp: + redis: + mercure: + ibmmq: + `; + const apiDOM = await parse(yamlDefinition); + const channelBindingsElement = ChannelBindingsElement.refract(apiDOM.result, { + plugins: [refractorPluginReplaceEmptyElement()], + }); + + expect(sexprs(channelBindingsElement)).toMatchSnapshot(); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/MessageBindings/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/MessageBindings/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..383f8a885c --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/MessageBindings/__snapshots__/index.ts.snap @@ -0,0 +1,56 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should refract to semantic ApiDOM tree 1`] = ` +(MessageBindingsElement + (MemberElement + (StringElement) + (HttpMessageBindingElement)) + (MemberElement + (StringElement) + (WebSocketMessageBindingElement)) + (MemberElement + (StringElement) + (KafkaMessageBindingElement)) + (MemberElement + (StringElement) + (AnypointmqMessageBindingElement)) + (MemberElement + (StringElement) + (AmqpMessageBindingElement)) + (MemberElement + (StringElement) + (Amqp1MessageBindingElement)) + (MemberElement + (StringElement) + (MqttMessageBindingElement)) + (MemberElement + (StringElement) + (Mqtt5MessageBindingElement)) + (MemberElement + (StringElement) + (NatsMessageBindingElement)) + (MemberElement + (StringElement) + (JmsMessageBindingElement)) + (MemberElement + (StringElement) + (SnsMessageBindingElement)) + (MemberElement + (StringElement) + (SolaceMessageBindingElement)) + (MemberElement + (StringElement) + (SqsMessageBindingElement)) + (MemberElement + (StringElement) + (StompMessageBindingElement)) + (MemberElement + (StringElement) + (RedisMessageBindingElement)) + (MemberElement + (StringElement) + (MercureMessageBindingElement)) + (MemberElement + (StringElement) + (IbmmqMessageBindingElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/MessageBindings/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/MessageBindings/index.ts new file mode 100644 index 0000000000..9df8699b91 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/MessageBindings/index.ts @@ -0,0 +1,34 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; +import { parse } from '@swagger-api/apidom-parser-adapter-yaml-1-2'; +import dedent from 'dedent'; + +import { MessageBindingsElement, refractorPluginReplaceEmptyElement } from '../../../../../../src'; + +it('should refract to semantic ApiDOM tree', async function () { + const yamlDefinition = dedent` + http: + ws: + kafka: + anypointmq: + amqp: + amqp1: + mqtt: + mqtt5: + nats: + jms: + sns: + solace: + sqs: + stomp: + redis: + mercure: + ibmmq: + `; + const apiDOM = await parse(yamlDefinition); + const messageBindingsElement = MessageBindingsElement.refract(apiDOM.result, { + plugins: [refractorPluginReplaceEmptyElement()], + }); + + expect(sexprs(messageBindingsElement)).toMatchSnapshot(); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/OperationBindings/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/OperationBindings/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..8c67fba568 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/OperationBindings/__snapshots__/index.ts.snap @@ -0,0 +1,53 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should refract to semantic ApiDOM tree 1`] = ` +(OperationBindingsElement + (MemberElement + (StringElement) + (HttpOperationBindingElement)) + (MemberElement + (StringElement) + (WebSocketOperationBindingElement)) + (MemberElement + (StringElement) + (KafkaOperationBindingElement)) + (MemberElement + (StringElement) + (AnypointmqOperationBindingElement)) + (MemberElement + (StringElement) + (AmqpOperationBindingElement)) + (MemberElement + (StringElement) + (Amqp1OperationBindingElement)) + (MemberElement + (StringElement) + (MqttOperationBindingElement)) + (MemberElement + (StringElement) + (Mqtt5OperationBindingElement)) + (MemberElement + (StringElement) + (NatsOperationBindingElement)) + (MemberElement + (StringElement) + (JmsOperationBindingElement)) + (MemberElement + (StringElement) + (SnsOperationBindingElement)) + (MemberElement + (StringElement) + (SolaceOperationBindingElement)) + (MemberElement + (StringElement) + (SqsOperationBindingElement)) + (MemberElement + (StringElement) + (StompOperationBindingElement)) + (MemberElement + (StringElement) + (RedisOperationBindingElement)) + (MemberElement + (StringElement) + (MercureOperationBindingElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/OperationBindings/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/OperationBindings/index.ts new file mode 100644 index 0000000000..d0f29efae1 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/OperationBindings/index.ts @@ -0,0 +1,36 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; +import { parse } from '@swagger-api/apidom-parser-adapter-yaml-1-2'; +import dedent from 'dedent'; + +import { + OperationBindingsElement, + refractorPluginReplaceEmptyElement, +} from '../../../../../../src'; + +it('should refract to semantic ApiDOM tree', async function () { + const yamlDefinition = dedent` + http: + ws: + kafka: + anypointmq: + amqp: + amqp1: + mqtt: + mqtt5: + nats: + jms: + sns: + solace: + sqs: + stomp: + redis: + mercure: + `; + const apiDOM = await parse(yamlDefinition); + const operationBindingsElement = OperationBindingsElement.refract(apiDOM.result, { + plugins: [refractorPluginReplaceEmptyElement()], + }); + + expect(sexprs(operationBindingsElement)).toMatchSnapshot(); +}); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ServerBindings/__snapshots__/index.ts.snap b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ServerBindings/__snapshots__/index.ts.snap new file mode 100644 index 0000000000..1f3d85bb70 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ServerBindings/__snapshots__/index.ts.snap @@ -0,0 +1,56 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should refract to semantic ApiDOM tree 1`] = ` +(ServerBindingsElement + (MemberElement + (StringElement) + (HttpServerBindingElement)) + (MemberElement + (StringElement) + (WebSocketServerBindingElement)) + (MemberElement + (StringElement) + (KafkaServerBindingElement)) + (MemberElement + (StringElement) + (AnypointmqServerBindingElement)) + (MemberElement + (StringElement) + (AmqpServerBindingElement)) + (MemberElement + (StringElement) + (Amqp1ServerBindingElement)) + (MemberElement + (StringElement) + (MqttServerBindingElement)) + (MemberElement + (StringElement) + (Mqtt5ServerBindingElement)) + (MemberElement + (StringElement) + (NatsServerBindingElement)) + (MemberElement + (StringElement) + (JmsServerBindingElement)) + (MemberElement + (StringElement) + (SnsServerBindingElement)) + (MemberElement + (StringElement) + (SolaceServerBindingElement)) + (MemberElement + (StringElement) + (SqsServerBindingElement)) + (MemberElement + (StringElement) + (StompServerBindingElement)) + (MemberElement + (StringElement) + (RedisServerBindingElement)) + (MemberElement + (StringElement) + (MercureServerBindingElement)) + (MemberElement + (StringElement) + (IbmmqServerBindingElement))) +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ServerBindings/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ServerBindings/index.ts new file mode 100644 index 0000000000..ca8717f17e --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/elements/ServerBindings/index.ts @@ -0,0 +1,34 @@ +import { expect } from 'chai'; +import { sexprs } from '@swagger-api/apidom-core'; +import { parse } from '@swagger-api/apidom-parser-adapter-yaml-1-2'; +import dedent from 'dedent'; + +import { ServerBindingsElement, refractorPluginReplaceEmptyElement } from '../../../../../../src'; + +it('should refract to semantic ApiDOM tree', async function () { + const yamlDefinition = dedent` + http: + ws: + kafka: + anypointmq: + amqp: + amqp1: + mqtt: + mqtt5: + nats: + jms: + sns: + solace: + sqs: + stomp: + redis: + mercure: + ibmmq: + `; + const apiDOM = await parse(yamlDefinition); + const serverBindingsElement = ServerBindingsElement.refract(apiDOM.result, { + plugins: [refractorPluginReplaceEmptyElement()], + }); + + expect(sexprs(serverBindingsElement)).toMatchSnapshot(); +}); From c32dfa3ef2bd2c8980930ca51d4d8c3b88d7806e Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Mon, 7 Feb 2022 14:54:14 +0100 Subject: [PATCH 4/6] docs: change default branch to master in all links Before the default branch used to be main. Refs #1130 --- packages/apidom-ns-asyncapi-2/README.md | 68 ++++++++++++------------- packages/apidom-reference/README.md | 4 +- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/packages/apidom-ns-asyncapi-2/README.md b/packages/apidom-ns-asyncapi-2/README.md index 9b536e765a..7a5e5723a3 100644 --- a/packages/apidom-ns-asyncapi-2/README.md +++ b/packages/apidom-ns-asyncapi-2/README.md @@ -196,40 +196,40 @@ Only fully implemented specification objects should be checked here. ### Specification Objects -- [x] [AsyncAPI Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#A2SObject) -- [x] [AsyncAPI Version String](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#A2SVersionString) -- [x] [Identifier](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#A2SIdString) -- [x] [Info Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#A2SIdString) -- [x] [Contact Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#contactObject) -- [x] [License Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#license-object) -- [x] [Servers Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#serversObject) -- [x] [Server Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#serverObject) -- [x] [Server Variable Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#serverVariableObject) -- [x] [Default Content Type](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#defaultContentTypeString) -- [x] [Channels Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#channelsObject) -- [x] [Channel Item Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#channelItemObject) -- [x] [Operation Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#operationObject) -- [x] [Operation Trait Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#operationTraitObject) -- [x] [Message Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#messageObject) -- [x] [Message Trait Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#messageTraitObject) -- [x] [Tags Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#tagsObject) -- [x] [Tag Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#tag-object) -- [x] [External Documentation Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#externalDocumentationObject) -- [x] [Components Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#componentsObject) -- [x] [Reference Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#referenceObject) -- [x] [Schema Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#schemaObject) -- [x] [Security Scheme Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#securitySchemeObject) -- [x] [Security Requirement Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#security-requirement-object) -- [x] [OAuth Flows Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#oauth-flows-object) -- [x] [OAuth Flow Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#oauth-flow-object) -- [x] [Server Bindings Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#serverBindingsObject) -- [x] [Parameters Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#parametersObject) -- [x] [Parameter Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#parameterObject) -- [x] [Channel Bindings Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#channel-bindings-object) -- [x] [Operation Bindings Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#operation-bindings-object) -- [x] [Message Bindings Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#messageBindingsObject) -- [x] [Correlation ID Object](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#correlationIdObject) -- [x] [Specification Extension](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md#specificationExtensions) +- [x] [AsyncAPI Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SObject) +- [x] [AsyncAPI Version String](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SVersionString) +- [x] [Identifier](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SIdString) +- [x] [Info Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SIdString) +- [x] [Contact Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#contactObject) +- [x] [License Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#license-object) +- [x] [Servers Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serversObject) +- [x] [Server Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverObject) +- [x] [Server Variable Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverVariableObject) +- [x] [Default Content Type](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#defaultContentTypeString) +- [x] [Channels Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channelsObject) +- [x] [Channel Item Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channelItemObject) +- [x] [Operation Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operationObject) +- [x] [Operation Trait Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operationTraitObject) +- [x] [Message Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageObject) +- [x] [Message Trait Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageTraitObject) +- [x] [Tags Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#tagsObject) +- [x] [Tag Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#tag-object) +- [x] [External Documentation Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#externalDocumentationObject) +- [x] [Components Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#componentsObject) +- [x] [Reference Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#referenceObject) +- [x] [Schema Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#schemaObject) +- [x] [Security Scheme Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#securitySchemeObject) +- [x] [Security Requirement Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#security-requirement-object) +- [x] [OAuth Flows Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#oauth-flows-object) +- [x] [OAuth Flow Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#oauth-flow-object) +- [x] [Server Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverBindingsObject) +- [x] [Parameters Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#parametersObject) +- [x] [Parameter Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#parameterObject) +- [x] [Channel Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channel-bindings-object) +- [x] [Operation Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operation-bindings-object) +- [x] [Message Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageBindingsObject) +- [x] [Correlation ID Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#correlationIdObject) +- [x] [Specification Extension](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#specificationExtensions) ### Binding Objects diff --git a/packages/apidom-reference/README.md b/packages/apidom-reference/README.md index ec7022651e..d04ef8d973 100644 --- a/packages/apidom-reference/README.md +++ b/packages/apidom-reference/README.md @@ -706,7 +706,7 @@ every strategy differs significantly. Resolve component comes with two (2) defau ##### [asyncapi-2](https://github.com/swagger-api/apidom/tree/main/packages/apidom-reference/src/resolve/strategies/asyncapi-2) -External resolution strategy for understanding and resolving external dependencies of [AsyncApi 2.x.y](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md) definitions. +External resolution strategy for understanding and resolving external dependencies of [AsyncApi 2.x.y](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md) definitions. Supported media types: @@ -975,7 +975,7 @@ every strategy differs significantly. `Dereference component` comes with two (2) ##### [asyncapi-2](https://github.com/swagger-api/apidom/tree/main/packages/apidom-reference/src/dereference/strategies/asyncapi-2) -Dereference strategy for dereferencing [AsyncApi 2.x.y](https://github.com/asyncapi/spec/blob/main/spec/asyncapi.md) definitions. +Dereference strategy for dereferencing [AsyncApi 2.x.y](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md) definitions. Supported media types: From 9c09a7448bd15f26f222cb88f853d37c571268d2 Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Mon, 7 Feb 2022 15:03:44 +0100 Subject: [PATCH 5/6] test(asyncapi): add test for AsyncAPI 2.3.0 definition Refs #1130 --- .../refractor/__snapshots__/index.ts.snap | 9013 +++++++++++++++++ .../refractor/fixtures/asyncapi-2-3-0.json | 451 + .../test/refractor/index.ts | 13 + 3 files changed, 9477 insertions(+) create mode 100644 packages/apidom-ns-asyncapi-2/test/refractor/fixtures/asyncapi-2-3-0.json 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 44173e3830..4d3d809209 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 @@ -25583,3 +25583,9016 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.2.0 shape should re ] } `; + +exports[`refractor given generic ApiDOM object in AsyncApi 2.3.0 shape should refract to AsyncApi2Element 1`] = ` +{ + "element": "asyncApi2", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "api" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "asyncapi" + }, + "value": { + "element": "asyncApiVersion", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "spec-version" + }, + { + "element": "string", + "content": "version" + } + ] + } + }, + "content": "2.3.0" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "id" + }, + "value": { + "element": "identifier", + "content": "urn:com:smartylighting:streetlights:server" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "info" + }, + "value": { + "element": "info", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "info" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "title" + }, + "value": { + "element": "string", + "content": "AsyncAPI Sample App" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "version" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "api-version" + }, + { + "element": "string", + "content": "version" + } + ] + } + }, + "content": "1.0.1" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "This is a sample server." + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "termsOfService" + }, + "value": { + "element": "string", + "content": "http://asyncapi.org/terms/" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "contact" + }, + "value": { + "element": "contact", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "API Support" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "http://www.asyncapi.org/support" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "email" + }, + "value": { + "element": "string", + "content": "support@asyncapi.org" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "license" + }, + "value": { + "element": "license", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "Apache 2.0" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "servers" + }, + "value": { + "element": "servers", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "servers" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "production" + }, + "value": { + "element": "server", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-url" + } + ] + } + }, + "content": "{username}.gigantic-server.com" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "protocol" + }, + "value": { + "element": "string", + "content": "kafka" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "protocolVersion" + }, + "value": { + "element": "string", + "content": "1.0.0" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "Production server" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "variables" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-variables" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "username" + }, + "value": { + "element": "serverVariable", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "enum" + }, + "value": { + "element": "array", + "content": [ + { + "element": "string", + "content": "demo" + }, + { + "element": "string", + "content": "demo1" + }, + { + "element": "string", + "content": "demo2" + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "default" + }, + "value": { + "element": "string", + "content": "demo" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "This value is assigned by the service provider, in this example \`gigantic-server.com\`" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "examples" + }, + "value": { + "element": "array", + "content": [ + { + "element": "string", + "content": "demo" + }, + { + "element": "string", + "content": "demo1" + }, + { + "element": "string", + "content": "demo2" + } + ] + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "security" + }, + "value": { + "element": "array", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-security" + } + ] + } + }, + "content": [ + { + "element": "securityRequirement", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "petstore_auth" + }, + "value": { + "element": "array", + "content": [ + { + "element": "string", + "content": "write:pets" + }, + { + "element": "string", + "content": "read:pets" + } + ] + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "serverBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaServerBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqServerBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceServerBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "ibmmq" + }, + "value": { + "element": "ibmmqServerBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "groupId" + }, + "value": { + "element": "string", + "content": "PRODCLSTR1" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + } + ] + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "development" + }, + "value": { + "element": "server", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-url" + } + ] + } + }, + "content": "gigantic-server.com" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "protocol" + }, + "value": { + "element": "string", + "content": "kafka" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "serverBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/serverBindings/ServerBinding1" + } + } + } + ] + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "defaultContentType" + }, + "value": { + "element": "defaultContentType", + "content": "application/json" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "channels" + }, + "value": { + "element": "channels", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "user/signedup" + }, + "value": { + "element": "channelItem", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "This channel is used to exchange messages about users signing up" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "servers" + }, + "value": { + "element": "array", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "channel-item-server-names-list" + } + ] + } + }, + "content": [ + { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-name" + } + ] + } + }, + "content": "production" + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "subscribe" + }, + "value": { + "element": "operation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "operationId" + }, + "value": { + "element": "string", + "content": "operation1" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "summary" + }, + "value": { + "element": "string", + "content": "A user signed up." + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "A user signed up description." + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "tags" + }, + "value": { + "element": "tags", + "content": [ + { + "element": "tag", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "tag1" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag1" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag 1 external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/tag1" + } + } + } + ] + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of operation1 external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/operation1-external-docs" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "traits" + }, + "value": { + "element": "array", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-traits" + } + ] + } + }, + "content": [ + { + "element": "operationTrait", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "operationId" + }, + "value": { + "element": "string", + "content": "operation1" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "summary" + }, + "value": { + "element": "string", + "content": "A user signed up." + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "A user signed up description." + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "tags" + }, + "value": { + "element": "tags", + "content": [ + { + "element": "tag", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "tag2" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag2" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag 2 external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/tag2" + } + } + } + ] + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of operation1 trait external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/operation1-trait-external-docs" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "operationBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "clientId" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "groupId" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + }, + { + "element": "member", + "content": { + "key": { + "element": "string", + "content": "destinations" + }, + "value": { + "element": "array", + "content": [ + { + "element": "object", + "content": [ + { + "element": "member", + "content": { + "key": { + "element": "string", + "content": "destinationType" + }, + "value": { + "element": "string", + "content": "queue" + } + } + }, + { + "element": "member", + "content": { + "key": { + "element": "string", + "content": "deliveryMode" + }, + "value": { + "element": "string", + "content": "persistent" + } + } + } + ] + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + } + } + } + } + ] + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "message" + }, + "value": { + "element": "message", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "headers" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "object" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "payload" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "object" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "properties" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-properties" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "user" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "schema" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/schemas/user" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "signup" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "schema" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/schemas/signup" + } + } + } + ] + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "correlationId" + }, + "value": { + "element": "correlationID", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "correlation id description" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "location" + }, + "value": { + "element": "string", + "content": "http://asyncapi.com/" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "schemaFormat" + }, + "value": { + "element": "string", + "content": "application/vnd.aai.asyncapi;version=2.2.0" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "contentType" + }, + "value": { + "element": "string", + "content": "application/json" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "name of the message" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "title" + }, + "value": { + "element": "string", + "content": "title of the message" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "summary" + }, + "value": { + "element": "string", + "content": "summary of the message" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "A longer description of the message" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "tags" + }, + "value": { + "element": "tags", + "content": [ + { + "element": "tag", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "tag3" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag3" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag 3 external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/tag3" + } + } + } + ] + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of message 1 external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/message-1-external-docs" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "messageBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "key" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "headers" + }, + "value": { + "element": "schema" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "latest" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "ibmmq" + }, + "value": { + "element": "ibmmqMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "content": "jms" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "examples" + }, + "value": { + "element": "array", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-examples" + } + ] + } + }, + "content": [ + { + "element": "messageExample", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "headers" + }, + "value": { + "element": "object" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "payload" + }, + "value": { + "element": "object" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "example name" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "summary" + }, + "value": { + "element": "string", + "content": "example summary" + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "traits" + }, + "value": { + "element": "array", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-traits" + } + ] + } + }, + "content": [ + { + "element": "messageTrait", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "headers" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "object" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "correlationId" + }, + "value": { + "element": "correlationID", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "correlation id description" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "location" + }, + "value": { + "element": "string", + "content": "http://asyncapi.com/" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "schemaFormat" + }, + "value": { + "element": "string", + "content": "application/vnd.aai.asyncapi;version=2.2.0" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "contentType" + }, + "value": { + "element": "string", + "content": "application/json" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "name of the message trait" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "title" + }, + "value": { + "element": "string", + "content": "title of the message trait" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "summary" + }, + "value": { + "element": "string", + "content": "summary of the message trait" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "A longer description of the message trait" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "tags" + }, + "value": { + "element": "tags", + "content": [ + { + "element": "tag", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "tag4" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag4" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag 4 external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/tag4" + } + } + } + ] + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of message 1 trait external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/message-1-trait-external-docs" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "messageBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "key" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "headers" + }, + "value": { + "element": "schema" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "latest" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "examples" + }, + "value": { + "element": "array", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-trait-examples" + } + ] + } + }, + "content": [ + { + "element": "messageExample", + "content": [ + { + "element": "member", + "content": { + "key": { + "element": "string", + "content": "a" + }, + "value": { + "element": "string", + "content": "b" + } + } + } + ] + } + ] + } + } + } + ] + }, + { + "element": "messageTrait", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "messageBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/messageBindings/MessageBinding1" + } + } + } + ] + } + } + } + ] + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "operationBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "clientId" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "groupId" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + }, + { + "element": "member", + "content": { + "key": { + "element": "string", + "content": "destinations" + }, + "value": { + "element": "array" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + } + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "publish" + }, + "value": { + "element": "operation" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "parameters" + }, + "value": { + "element": "parameters", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "userId" + }, + "value": { + "element": "parameter", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "parameter description" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "schema" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "location" + }, + "value": { + "element": "string", + "content": "http://example.com" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "userIdRef" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "parameter" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/parameters/userId" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "channelBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaChannelBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "channel-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqChannelBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "channel-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "destinationType" + }, + "value": { + "element": "string", + "content": "queue" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceChannelBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "channel-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "ibmmq" + }, + "value": { + "element": "ibmmqChannelBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "channel-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "destinationType" + }, + "value": { + "element": "string", + "content": "topic" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindingVersion" + }, + "value": { + "element": "string", + "content": "0.1.0" + } + } + } + ] + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "user/loggedout" + }, + "value": { + "element": "channelItem", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "channelItem" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "https://outside.com/#/path/to/channelItem" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "This channel is used to exchange messages about users logging out" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "subscribe" + }, + "value": { + "element": "operation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "message" + }, + "value": { + "element": "message", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "messageBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/messageBindings/MessageBinding1" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "traits" + }, + "value": { + "element": "array", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-traits" + } + ] + } + }, + "content": [ + { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "messageTrait" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/messageTraits/MessageTrait1" + } + } + } + ] + } + ] + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "publish" + }, + "value": { + "element": "operation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "operationId" + }, + "value": { + "element": "string", + "content": "operation2" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "summary" + }, + "value": { + "element": "string", + "content": "A user signed up." + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "A user signed up description." + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "tags" + }, + "value": { + "element": "tags", + "content": [ + { + "element": "tag", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "tag5" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag5" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of tag 5 external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/tag5" + } + } + } + ] + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of operation2 external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/operation2-external-docs" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "traits" + }, + "value": { + "element": "array", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-traits" + } + ] + } + }, + "content": [ + { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "operationTrait" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/operationTraits/OperationTrait1" + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "message" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "message" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/messages/Message1" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "operationBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/operationBindings/OperationBinding1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "parameters" + }, + "value": { + "element": "parameters", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "userId" + }, + "value": { + "element": "parameter", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "parameter description" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "schema" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "location" + }, + "value": { + "element": "string", + "content": "http://example.com" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "userIdRef" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "parameter" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/parameters/userId" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "bindings" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "channelBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/channelBindings/ChannelBinding1" + } + } + } + ] + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "components" + }, + "value": { + "element": "components", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "schemas" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-schemas" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "Schema1" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "object" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "Schema2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "schema" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/schemas/Schema1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "messages" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-messages" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "Message1" + }, + "value": { + "element": "message" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "Message2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "message" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/messages/Message1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "securitySchemes" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-security-schemes" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "SecurityScheme1" + }, + "value": { + "element": "securityScheme" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "SecurityScheme2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "securityScheme" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/securitySchemes/SecurityScheme1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "parameters" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-parameters" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "Parameter1" + }, + "value": { + "element": "parameter", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "parameter description" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "schema" + }, + "value": { + "element": "schema", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "type" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-schema-type" + } + ] + } + }, + "content": "integer" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "location" + }, + "value": { + "element": "string", + "content": "http://example.com" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "Parameter2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "parameter" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/parameters/Parameter1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "correlationIds" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-correlation-ids" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "CorrelationID1" + }, + "value": { + "element": "correlationID" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "CorrelationID2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "correlationID" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/correlationIds/CorrelationID1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "operationTraits" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-operation-traits" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "OperationTrait1" + }, + "value": { + "element": "operationTrait" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "OperationTrait2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "operationTrait" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/operationTraits/OperationTrait1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "messageTraits" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-message-traits" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "MessageTrait1" + }, + "value": { + "element": "messageTrait" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "MessageTrait2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "messageTrait" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/messageTraits/MessageTrait1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "serverBindings" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-server-bindings" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "ServerBinding1" + }, + "value": { + "element": "serverBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaServerBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqServerBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceServerBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "server-binding" + } + ] + } + } + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "ServerBinding2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "serverBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/serverBindings/ServerBinding1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "channelBindings" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-channel-bindings" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "ChannelBinding1" + }, + "value": { + "element": "channelBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaChannelBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "channel-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceChannelBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "channel-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqChannelBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "channel-binding" + } + ] + } + } + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "ChannelBinding2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "channelBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/channelBindings/ChannelBinding1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "operationBindings" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-operation-bindings" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "OperationBinding1" + }, + "value": { + "element": "operationBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqOperationBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "operation-binding" + } + ] + } + } + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "OperationBinding2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "operationBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/operationBindings/OperationBinding1" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "messageBindings" + }, + "value": { + "element": "object", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "components-message-bindings" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "MessageBinding1" + }, + "value": { + "element": "messageBindings", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "kafka" + }, + "value": { + "element": "kafkaMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + } + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "anypointmq" + }, + "value": { + "element": "anypointmqMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "headers" + }, + "value": { + "element": "schema" + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "solace" + }, + "value": { + "element": "solaceMessageBinding", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "message-binding" + } + ] + } + } + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "patterned-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "MessageBinding2" + }, + "value": { + "element": "reference", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "json-reference" + }, + { + "element": "string", + "content": "asyncapi-reference" + }, + { + "element": "string", + "content": "reference-element" + } + ] + }, + "referenced-element": { + "element": "string", + "content": "messageBindings" + } + }, + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "$ref" + }, + "value": { + "element": "string", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "reference-value" + } + ] + } + }, + "content": "#/components/messageBindings/MessageBinding1" + } + } + } + ] + } + } + } + ] + } + } + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "tags" + }, + "value": { + "element": "tags", + "content": [ + { + "element": "tag", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "name" + }, + "value": { + "element": "string", + "content": "topLevelTag" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "topLevelTag description" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of topLevelTag external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/topLevelTag" + } + } + } + ] + } + } + } + ] + } + ] + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "externalDocs" + }, + "value": { + "element": "externalDocumentation", + "content": [ + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "description" + }, + "value": { + "element": "string", + "content": "description of this document external docs" + } + } + }, + { + "element": "member", + "meta": { + "classes": { + "element": "array", + "content": [ + { + "element": "string", + "content": "fixed-field" + } + ] + } + }, + "content": { + "key": { + "element": "string", + "content": "url" + }, + "value": { + "element": "string", + "content": "https://example.com/document" + } + } + } + ] + } + } + } + ] +} +`; diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/fixtures/asyncapi-2-3-0.json b/packages/apidom-ns-asyncapi-2/test/refractor/fixtures/asyncapi-2-3-0.json new file mode 100644 index 0000000000..0e8c0bd181 --- /dev/null +++ b/packages/apidom-ns-asyncapi-2/test/refractor/fixtures/asyncapi-2-3-0.json @@ -0,0 +1,451 @@ +{ + "asyncapi": "2.3.0", + "id": "urn:com:smartylighting:streetlights:server", + "info": { + "title": "AsyncAPI Sample App", + "version": "1.0.1", + "description": "This is a sample server.", + "termsOfService": "http://asyncapi.org/terms/", + "contact": { + "name": "API Support", + "url": "http://www.asyncapi.org/support", + "email": "support@asyncapi.org" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "servers": { + "production": { + "url": "{username}.gigantic-server.com", + "protocol": "kafka", + "protocolVersion": "1.0.0", + "description": "Production server", + "variables": { + "username": { + "enum": ["demo", "demo1", "demo2"], + "default": "demo", + "description": "This value is assigned by the service provider, in this example `gigantic-server.com`", + "examples": ["demo", "demo1", "demo2"] + } + }, + "security": [ + { + "petstore_auth": [ + "write:pets", + "read:pets" + ] + } + ], + "bindings": { + "kafka": {}, + "anypointmq": {}, + "solace": { + "bindingVersion": "0.1.0" + }, + "ibmmq": { + "groupId": "PRODCLSTR1", + "bindingVersion": "0.1.0" + } + } + }, + "development": { + "url": "gigantic-server.com", + "protocol": "kafka", + "bindings": { + "$ref": "#/components/serverBindings/ServerBinding1" + } + } + }, + "defaultContentType": "application/json", + "channels": { + "user/signedup": { + "description": "This channel is used to exchange messages about users signing up", + "servers": ["production"], + "subscribe": { + "operationId": "operation1", + "summary": "A user signed up.", + "description": "A user signed up description.", + "tags": [ + { + "name": "tag1", + "description": "description of tag1", + "externalDocs": { + "description": "description of tag 1 external docs", + "url": "https://example.com/tag1" + } + } + ], + "externalDocs": { + "description": "description of operation1 external docs", + "url": "https://example.com/operation1-external-docs" + }, + "traits": [ + { + "operationId": "operation1", + "summary": "A user signed up.", + "description": "A user signed up description.", + "tags": [ + { + "name": "tag2", + "description": "description of tag2", + "externalDocs": { + "description": "description of tag 2 external docs", + "url": "https://example.com/tag2" + } + } + ], + "externalDocs": { + "description": "description of operation1 trait external docs", + "url": "https://example.com/operation1-trait-external-docs" + }, + "bindings": { + "kafka": { + "clientId": { + "type": "integer" + }, + "groupId": { + "type": "integer" + }, + "bindingVersion": "0.1.0" + }, + "solace": { + "bindingVersion": "0.1.0", + "destinations": [ + { + "destinationType": "queue", + "deliveryMode": "persistent" + } + ] + }, + "anypointmq": {} + } + } + ], + "message": { + "headers": { + "type": "object" + }, + "payload": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/user" + }, + "signup": { + "$ref": "#/components/schemas/signup" + } + } + }, + "correlationId": { + "description": "correlation id description", + "location": "http://asyncapi.com/" + }, + "schemaFormat": "application/vnd.aai.asyncapi;version=2.2.0", + "contentType": "application/json", + "name": "name of the message", + "title": "title of the message", + "summary": "summary of the message", + "description": "A longer description of the message", + "tags": [ + { + "name": "tag3", + "description": "description of tag3", + "externalDocs": { + "description": "description of tag 3 external docs", + "url": "https://example.com/tag3" + } + } + ], + "externalDocs": { + "description": "description of message 1 external docs", + "url": "https://example.com/message-1-external-docs" + }, + "bindings": { + "kafka": { + "key": { + "type": "integer" + }, + "bindingVersion": "0.1.0" + }, + "anypointmq": { + "headers": {}, + "bindingVersion": "latest" + }, + "solace": {}, + "ibmmq": { + "type": "jms", + "bindingVersion": "0.1.0" + } + }, + "examples": [ + { + "headers": {}, + "payload": {}, + "name": "example name", + "summary": "example summary" + } + ], + "traits": [ + { + "headers": { + "type": "object" + }, + "correlationId": { + "description": "correlation id description", + "location": "http://asyncapi.com/" + }, + "schemaFormat": "application/vnd.aai.asyncapi;version=2.2.0", + "contentType": "application/json", + "name": "name of the message trait", + "title": "title of the message trait", + "summary": "summary of the message trait", + "description": "A longer description of the message trait", + "tags": [ + { + "name": "tag4", + "description": "description of tag4", + "externalDocs": { + "description": "description of tag 4 external docs", + "url": "https://example.com/tag4" + } + } + ], + "externalDocs": { + "description": "description of message 1 trait external docs", + "url": "https://example.com/message-1-trait-external-docs" + }, + "bindings": { + "kafka": { + "key": { + "type": "integer" + }, + "bindingVersion": "0.1.0" + }, + "solace": {}, + "anypointmq": { + "headers": {}, + "bindingVersion": "latest" + } + }, + "examples": [ + { + "a": "b" + } + ] + }, + { + "bindings": { + "$ref": "#/components/messageBindings/MessageBinding1" + } + } + ] + }, + "bindings": { + "kafka": { + "clientId": { + "type": "integer" + }, + "groupId": { + "type": "integer" + }, + "bindingVersion": "0.1.0" + }, + "solace": { + "bindingVersion": "0.1.0", + "destinations": [] + }, + "anypointmq": {} + } + }, + "publish": {}, + "parameters": { + "userId": { + "description": "parameter description", + "schema": { + "type": "integer" + }, + "location": "http://example.com" + }, + "userIdRef": { + "$ref": "#/components/parameters/userId" + } + }, + "bindings": { + "kafka": {}, + "anypointmq": { + "destinationType": "queue" + }, + "solace": {}, + "ibmmq": { + "destinationType": "topic", + "bindingVersion": "0.1.0" + } + } + }, + "user/loggedout": { + "$ref": "https://outside.com/#/path/to/channelItem", + "description": "This channel is used to exchange messages about users logging out", + "subscribe": { + "message": { + "bindings": { + "$ref": "#/components/messageBindings/MessageBinding1" + }, + "traits": [ + { "$ref": "#/components/messageTraits/MessageTrait1" } + ] + } + }, + "publish": { + "operationId": "operation2", + "summary": "A user signed up.", + "description": "A user signed up description.", + "tags": [ + { + "name": "tag5", + "description": "description of tag5", + "externalDocs": { + "description": "description of tag 5 external docs", + "url": "https://example.com/tag5" + } + } + ], + "externalDocs": { + "description": "description of operation2 external docs", + "url": "https://example.com/operation2-external-docs" + }, + "traits": [ + {"$ref": "#/components/operationTraits/OperationTrait1"} + ], + "message": { "$ref": "#/components/messages/Message1" }, + "bindings": { + "$ref": "#/components/operationBindings/OperationBinding1" + } + }, + "parameters": { + "userId": { + "description": "parameter description", + "schema": { + "type": "integer" + }, + "location": "http://example.com" + }, + "userIdRef": { + "$ref": "#/components/parameters/userId" + } + }, + "bindings": { + "$ref": "#/components/channelBindings/ChannelBinding1" + } + } + }, + "components": { + "schemas": { + "Schema1": { + "type": "object" + }, + "Schema2": { + "$ref": "#/components/schemas/Schema1" + } + }, + "messages": { + "Message1": {}, + "Message2": { + "$ref": "#/components/messages/Message1" + } + }, + "securitySchemes": { + "SecurityScheme1": {}, + "SecurityScheme2": { + "$ref": "#/components/securitySchemes/SecurityScheme1" + } + }, + "parameters": { + "Parameter1": { + "description": "parameter description", + "schema": { + "type": "integer" + }, + "location": "http://example.com" + }, + "Parameter2": { + "$ref": "#/components/parameters/Parameter1" + } + }, + "correlationIds": { + "CorrelationID1": {}, + "CorrelationID2": { + "$ref": "#/components/correlationIds/CorrelationID1" + } + }, + "operationTraits": { + "OperationTrait1": {}, + "OperationTrait2": { + "$ref": "#/components/operationTraits/OperationTrait1" + } + }, + "messageTraits": { + "MessageTrait1": {}, + "MessageTrait2": { + "$ref": "#/components/messageTraits/MessageTrait1" + } + }, + "serverBindings": { + "ServerBinding1": { + "kafka": {}, + "anypointmq": {}, + "solace": {} + }, + "ServerBinding2": { + "$ref": "#/components/serverBindings/ServerBinding1" + } + }, + "channelBindings": { + "ChannelBinding1": { + "kafka": {}, + "solace": {}, + "anypointmq": {} + }, + "ChannelBinding2": { + "$ref": "#/components/channelBindings/ChannelBinding1" + } + }, + "operationBindings": { + "OperationBinding1": { + "kafka": {}, + "solace": {}, + "anypointmq": {} + }, + "OperationBinding2": { + "$ref": "#/components/operationBindings/OperationBinding1" + } + }, + "messageBindings": { + "MessageBinding1": { + "kafka": {}, + "anypointmq": { + "headers": {} + }, + "solace": {} + }, + "MessageBinding2": { + "$ref": "#/components/messageBindings/MessageBinding1" + } + } + }, + "tags": [ + { + "name": "topLevelTag", + "description": "topLevelTag description", + "externalDocs": { + "description": "description of topLevelTag external docs", + "url": "https://example.com/topLevelTag" + } + } + ], + "externalDocs": { + "description": "description of this document external docs", + "url": "https://example.com/document" + } +} diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/index.ts index 32bea55e30..163536d00b 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/index.ts @@ -47,6 +47,19 @@ describe('refractor', function () { }); }); + context('given generic ApiDOM object in AsyncApi 2.3.0 shape', function () { + specify('should refract to AsyncApi2Element', function () { + const asyncApiString = fs + .readFileSync(path.join(__dirname, 'fixtures', 'asyncapi-2-3-0.json')) + .toString(); + const asyncApiPojo = JSON.parse(asyncApiString); + const genericObjectElement = new ObjectElement(asyncApiPojo); + const asyncApiElement = AsyncApi2Element.refract(genericObjectElement); + + expect(asyncApiElement).toMatchSnapshot(); + }); + }); + context('supports plugins', function () { let plugin1Spec: any; let plugin2Spec: any; From af8e76d025e4b04e069b8d302c919a63e56dc540 Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Mon, 7 Feb 2022 16:02:26 +0100 Subject: [PATCH 6/6] refactor(asyncapi): change spec versions to 2.3.0 Refs #1130 --- packages/apidom-ns-asyncapi-2/README.md | 12 ++++--- packages/apidom-ns-asyncapi-2/src/index.ts | 2 +- .../apidom-ns-asyncapi-2/src/media-types.ts | 3 ++ .../apidom-ns-asyncapi-2/src/namespace.ts | 4 +-- .../plugins/replace-empty-element.ts | 4 +-- .../src/refractor/registration.ts | 4 +-- .../src/refractor/specification.ts | 4 +-- .../src/traversal/visitor.ts | 2 +- .../test/perf/visitor-shortcut.js | 2 +- .../refractor/__snapshots__/index.ts.snap | 4 +-- .../elements/AsyncApiVersion/index.ts | 2 +- .../refractor/fixtures/asyncapi-2-3-0.json | 4 +-- .../test/refractor/index.ts | 34 +++++++++---------- .../plugins/replace-empty-element/mappings.ts | 22 ++++++------ .../replace-empty-element/sequences.ts | 10 +++--- .../README.md | 17 ++++++---- .../test/fixtures/sample-api.json | 2 +- .../test/perf/fixtures/asyncapi.json | 2 +- .../README.md | 16 +++++---- .../test/adapter.ts | 2 +- .../test/fixtures/sample-api.yaml | 2 +- packages/apidom-reference/README.md | 30 ++++++++++++---- .../additional-fields/dereferenced.json | 2 +- .../fixtures/additional-fields/root.json | 2 +- .../direct-external-circular/root.json | 2 +- .../direct-internal-circular/root.json | 2 +- .../external-indirections/dereferenced.json | 2 +- .../fixtures/external-indirections/root.json | 2 +- .../fixtures/external-only/dereferenced.json | 2 +- .../fixtures/external-only/root.json | 2 +- .../ignore-external/dereferenced.json | 2 +- .../fixtures/ignore-external/root.json | 2 +- .../indirect-external-circular/root.json | 2 +- .../indirect-internal-circular/root.json | 2 +- .../internal-external/dereferenced.json | 2 +- .../fixtures/internal-external/root.json | 2 +- .../internal-indirections/dereferenced.json | 2 +- .../fixtures/internal-indirections/root.json | 2 +- .../fixtures/internal-only/dereferenced.json | 2 +- .../fixtures/internal-only/root.json | 2 +- .../fixtures/invalid-pointer/root.json | 2 +- .../fixtures/max-depth/root.json | 2 +- .../unresolvable-channel-item/root.json | 2 +- .../operation-object/dereferenced.json | 2 +- .../fixtures/operation-object/root.json | 2 +- .../dereferenced.json | 2 +- .../additional-ignored-props/root.json | 2 +- .../fixtures/cycle-internal/root.json | 2 +- .../direct-external-circular/root.json | 2 +- .../direct-internal-circular/root.json | 2 +- .../dereferenced.json | 2 +- .../external-circular-dependency/ex.json | 2 +- .../external-circular-dependency/root.json | 2 +- .../external-indirections/dereferenced.json | 2 +- .../fixtures/external-indirections/root.json | 2 +- .../fixtures/external-only/dereferenced.json | 2 +- .../fixtures/external-only/root.json | 2 +- .../ignore-arbitrary-$refs/dereferenced.json | 2 +- .../fixtures/ignore-arbitrary-$refs/root.json | 2 +- .../ignore-external/dereferenced.json | 2 +- .../fixtures/ignore-external/root.json | 2 +- .../indirect-external-circular/root.json | 2 +- .../indirect-internal-circular/root.json | 2 +- .../internal-external/dereferenced.json | 2 +- .../fixtures/internal-external/root.json | 2 +- .../fixtures/internal-only/dereferenced.json | 2 +- .../fixtures/internal-only/root.json | 2 +- .../fixtures/invalid-pointer/root.json | 2 +- .../fixtures/max-depth/root.json | 2 +- .../dereferenced.json | 2 +- .../referencing-schema-object/root.json | 2 +- .../refset-as-option/dereferenced.json | 2 +- .../fixtures/refset-as-option/root.json | 2 +- .../fixtures/unresolvable-reference/root.json | 2 +- .../fixtures/sample-api.json | 2 +- .../index.ts | 6 ++-- .../fixtures/sample-api.yaml | 2 +- .../index.ts | 6 ++-- .../index.ts | 2 +- .../index.ts | 4 +-- .../direct-external-circular/root.json | 2 +- .../fixtures/external-indirections/root.json | 2 +- .../fixtures/external-only/root.json | 2 +- .../fixtures/ignore-external/root.json | 2 +- .../indirect-external-circular/root.json | 2 +- .../fixtures/internal-external/root.json | 2 +- .../fixtures/internal-only/root.json | 2 +- .../fixtures/invalid-pointer/root.json | 2 +- .../fixtures/max-depth/root.json | 2 +- .../unresolvable-channel-item/root.json | 2 +- .../direct-external-circular/root.json | 2 +- .../direct-internal-circular/root.json | 2 +- .../external-circular-dependency/ex.json | 2 +- .../external-circular-dependency/root.json | 2 +- .../external-indirections/dereferenced.json | 2 +- .../fixtures/external-indirections/root.json | 2 +- .../fixtures/external-only/dereferenced.json | 2 +- .../fixtures/external-only/root.json | 2 +- .../ignore-arbitrary-$refs/dereferenced.json | 2 +- .../fixtures/ignore-arbitrary-$refs/root.json | 2 +- .../ignore-external/dereferenced.json | 2 +- .../fixtures/ignore-external/root.json | 2 +- .../indirect-external-circular/root.json | 2 +- .../indirect-internal-circular/root.json | 2 +- .../internal-external/dereferenced.json | 2 +- .../fixtures/internal-external/root.json | 2 +- .../fixtures/internal-only/dereferenced.json | 2 +- .../fixtures/internal-only/root.json | 2 +- .../fixtures/invalid-pointer/root.json | 2 +- .../fixtures/max-depth/root.json | 2 +- .../fixtures/unresolvable-reference/root.json | 2 +- 111 files changed, 202 insertions(+), 170 deletions(-) diff --git a/packages/apidom-ns-asyncapi-2/README.md b/packages/apidom-ns-asyncapi-2/README.md index 7a5e5723a3..46328763fb 100644 --- a/packages/apidom-ns-asyncapi-2/README.md +++ b/packages/apidom-ns-asyncapi-2/README.md @@ -2,9 +2,11 @@ `@swagger-api/apidom-ns-asyncapi-2` contains ApiDOM namespace supports following AsyncAPI specification versions: -- [AsyncAPI 2.0.0 specification](https://github.com/asyncapi/spec/blob/2.0.0/versions/2.0.0/asyncapi.md) -- [AsyncAPI 2.1.0 specification](https://github.com/asyncapi/spec/blob/v2.1.0/spec/asyncapi.md) +- [AsyncAPI 2.3.0 specification](https://github.com/asyncapi/spec/blob/v2.3.0/spec/asyncapi.md) - [AsyncAPI 2.2.0 specification](https://github.com/asyncapi/spec/blob/v2.2.0/spec/asyncapi.md) +- [AsyncAPI 2.1.0 specification](https://github.com/asyncapi/spec/blob/v2.1.0/spec/asyncapi.md) +- [AsyncAPI 2.0.0 specification](https://github.com/asyncapi/spec/blob/2.0.0/versions/2.0.0/asyncapi.md) + ## Installation @@ -138,7 +140,7 @@ const plugin = ({ predicates, namespace }) => ({ }, visitor: { InfoElement(infoElement) { - infoElement.version = '2.2.0'; + infoElement.version = '2.3.0'; }, }, post() { @@ -146,7 +148,7 @@ const plugin = ({ predicates, namespace }) => ({ }, }); -InfoElement.refract(objectElement, { plugins: [plugin] }); // => InfoElement({ title = 'my title', description = 'my description', version = '2.2.0' }) +InfoElement.refract(objectElement, { plugins: [plugin] }); // => InfoElement({ title = 'my title', description = 'my description', version = '2.3.0' }) ``` You can define as many plugins as needed to enhance the resulting namespaced ApiDOM structure. @@ -163,7 +165,7 @@ import { parse } from '@swagger-api/apidom-parser-adapter-yaml-1-2'; import { refractorPluginReplaceEmptyElement, AsyncApi2Element } from '@swagger-api/apidom-ns-asyncapi-2'; const yamlDefinition = ` -asyncapi: 2.2.0 +asyncapi: 2.3.0 info: `; const apiDOM = await parse(yamlDefinition); diff --git a/packages/apidom-ns-asyncapi-2/src/index.ts b/packages/apidom-ns-asyncapi-2/src/index.ts index 6c06d359b7..96210bf4df 100644 --- a/packages/apidom-ns-asyncapi-2/src/index.ts +++ b/packages/apidom-ns-asyncapi-2/src/index.ts @@ -59,7 +59,7 @@ export { export { keyMap, getNodeType } from './traversal/visitor'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 | 2.3.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 | 2.0.0 specification elements. */ export { default as AsyncApi2Element } from './elements/AsyncApi2'; export { default as AsyncApiVersionElement } from './elements/AsyncApiVersion'; diff --git a/packages/apidom-ns-asyncapi-2/src/media-types.ts b/packages/apidom-ns-asyncapi-2/src/media-types.ts index e860739acf..1ae690414f 100644 --- a/packages/apidom-ns-asyncapi-2/src/media-types.ts +++ b/packages/apidom-ns-asyncapi-2/src/media-types.ts @@ -28,6 +28,9 @@ const mediaTypes = new AsyncAPIMediaTypes( 'application/vnd.aai.asyncapi;version=2.2.0', 'application/vnd.aai.asyncapi+json;version=2.2.0', 'application/vnd.aai.asyncapi+yaml;version=2.2.0', + 'application/vnd.aai.asyncapi;version=2.3.0', + 'application/vnd.aai.asyncapi+json;version=2.3.0', + 'application/vnd.aai.asyncapi+yaml;version=2.3.0', ); export default mediaTypes; diff --git a/packages/apidom-ns-asyncapi-2/src/namespace.ts b/packages/apidom-ns-asyncapi-2/src/namespace.ts index c0942bdba6..623781d232 100644 --- a/packages/apidom-ns-asyncapi-2/src/namespace.ts +++ b/packages/apidom-ns-asyncapi-2/src/namespace.ts @@ -1,7 +1,7 @@ import { NamespacePluginOptions } from 'minim'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 | 2.3.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 | 2.0.0 specification elements. */ import AsyncApi2Element from './elements/AsyncApi2'; import AsyncApiVersionElement from './elements/AsyncApiVersion'; @@ -130,7 +130,7 @@ const asyncApi2 = { const { base } = options; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 | 2.0.0 specification elements. */ base.register('asyncApi2', AsyncApi2Element); base.register('asyncApiVersion', AsyncApiVersionElement); diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/plugins/replace-empty-element.ts b/packages/apidom-ns-asyncapi-2/src/refractor/plugins/replace-empty-element.ts index b687f718e0..8a9a0ed805 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/plugins/replace-empty-element.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/plugins/replace-empty-element.ts @@ -11,7 +11,7 @@ import { import mediaTypes from '../../media-types'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 | 2.3.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 | 2.0.0 specification elements. */ import AsyncApiVersionElement from '../../elements/AsyncApiVersion'; import IdentifierElement from '../../elements/Identifier'; @@ -164,7 +164,7 @@ import { getNodeType } from '../../traversal/visitor'; * @example * * ```yaml - * asyncapi: 2.2.0 + * asyncapi: 2.3.0 * info: * ``` * Refracting result without this plugin: diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts b/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts index ba8b1747a0..ef44270db3 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/registration.ts @@ -1,6 +1,6 @@ import { createRefractor } from './index'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 | 2.0.0 specification elements. */ import AsyncApi2Element from '../elements/AsyncApi2'; import AsyncApiVersionElement from '../elements/AsyncApiVersion'; @@ -125,7 +125,7 @@ import WebSocketOperationBindingElement from '../elements/bindings/ws/WebSocketO import WebSocketServerBindingElement from '../elements/bindings/ws/WebSocketServerBinding'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 | 2.0.0 specification elements. */ AsyncApi2Element.refract = createRefractor([ 'visitors', diff --git a/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts b/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts index 13d598d5aa..aa9300148d 100644 --- a/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts +++ b/packages/apidom-ns-asyncapi-2/src/refractor/specification.ts @@ -1,7 +1,7 @@ import FallbackVisitor from './visitors/FallbackVisitor'; import SpecificationExtensionVisitor from './visitors/SpecificationExtensionVisitor'; /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 | 2.3.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 | 2.0.0 specification elements. */ import AsyncApi2Visitor from './visitors/async-api-2'; import AsyncApiVersionVisitor from './visitors/async-api-2/AsyncApiVersionVisitor'; @@ -327,7 +327,7 @@ const specification = { document: { objects: { /** - * AsyncApi 2.0.0 | 2.1.0 | 2.2.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 | 2.0.0 specification elements. */ AsyncApi: { $visitor: AsyncApi2Visitor, diff --git a/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts b/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts index 83c1da9fc1..b1626d33a2 100644 --- a/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts +++ b/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts @@ -10,7 +10,7 @@ export const getNodeType = (element: T): string | undefined = export const keyMap = { /** - * AsyncApi 2.0.0 | 2.1.0 specification elements. + * AsyncApi 2.3.0 | 2.2.0 | 2.1.0 specification elements. */ AsyncApi2Element: ['content'], AsyncApiVersionElement: [], diff --git a/packages/apidom-ns-asyncapi-2/test/perf/visitor-shortcut.js b/packages/apidom-ns-asyncapi-2/test/perf/visitor-shortcut.js index 7ceca199ee..53688a153a 100644 --- a/packages/apidom-ns-asyncapi-2/test/perf/visitor-shortcut.js +++ b/packages/apidom-ns-asyncapi-2/test/perf/visitor-shortcut.js @@ -6,7 +6,7 @@ const { ObjectElement } = require('@swagger-api/apidom-core'); const { AsyncApi2Element } = require('../../src'); const genericObjectElement = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', info: { title: 'Webhook Example', version: '1.0.0', 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 4d3d809209..6e6b0a0ede 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 @@ -28361,7 +28361,7 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.3.0 shape should re }, "value": { "element": "string", - "content": "application/vnd.aai.asyncapi;version=2.2.0" + "content": "application/vnd.aai.asyncapi;version=2.3.0" } } }, @@ -29378,7 +29378,7 @@ exports[`refractor given generic ApiDOM object in AsyncApi 2.3.0 shape should re }, "value": { "element": "string", - "content": "application/vnd.aai.asyncapi;version=2.2.0" + "content": "application/vnd.aai.asyncapi;version=2.3.0" } } }, diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/elements/AsyncApiVersion/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/elements/AsyncApiVersion/index.ts index 74d0d7740a..a93fbea2b3 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/elements/AsyncApiVersion/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/elements/AsyncApiVersion/index.ts @@ -7,7 +7,7 @@ describe('refractor', function () { context('elements', function () { context('AsyncApiVersionElement', function () { specify('should refract to semantic ApiDOM tree', function () { - const asyncApiVersion = AsyncApiVersionElement.refract('2.2.0'); + const asyncApiVersion = AsyncApiVersionElement.refract('2.3.0'); expect(sexprs(asyncApiVersion)).toMatchSnapshot(); }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/fixtures/asyncapi-2-3-0.json b/packages/apidom-ns-asyncapi-2/test/refractor/fixtures/asyncapi-2-3-0.json index 0e8c0bd181..12a02dc9ef 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/fixtures/asyncapi-2-3-0.json +++ b/packages/apidom-ns-asyncapi-2/test/refractor/fixtures/asyncapi-2-3-0.json @@ -142,7 +142,7 @@ "description": "correlation id description", "location": "http://asyncapi.com/" }, - "schemaFormat": "application/vnd.aai.asyncapi;version=2.2.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.3.0", "contentType": "application/json", "name": "name of the message", "title": "title of the message", @@ -196,7 +196,7 @@ "description": "correlation id description", "location": "http://asyncapi.com/" }, - "schemaFormat": "application/vnd.aai.asyncapi;version=2.2.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.3.0", "contentType": "application/json", "name": "name of the message trait", "title": "title of the message trait", diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/index.ts b/packages/apidom-ns-asyncapi-2/test/refractor/index.ts index 163536d00b..8dc4c3ce1a 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/index.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/index.ts @@ -104,7 +104,7 @@ describe('refractor', function () { context('plugin', function () { specify('should be called with toolbox object', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1], @@ -115,7 +115,7 @@ describe('refractor', function () { specify('should have predicates in toolbox object', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1], @@ -126,7 +126,7 @@ describe('refractor', function () { specify('should have namespace in toolbox object', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1], @@ -139,7 +139,7 @@ describe('refractor', function () { context('pre hook', function () { specify('should call it once', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1], @@ -150,7 +150,7 @@ describe('refractor', function () { specify('should call it before other plugin pre hook', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], @@ -161,7 +161,7 @@ describe('refractor', function () { specify('should call it before visiting', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], @@ -175,7 +175,7 @@ describe('refractor', function () { context('post hook', function () { specify('should call it once', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1], @@ -186,7 +186,7 @@ describe('refractor', function () { specify('should call it before other plugin post hook', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], @@ -197,7 +197,7 @@ describe('refractor', function () { specify('should call it after visiting', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], @@ -211,7 +211,7 @@ describe('refractor', function () { context('visitor', function () { specify('should be called once', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], @@ -223,7 +223,7 @@ describe('refractor', function () { specify('should be called in proper order', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], @@ -239,7 +239,7 @@ describe('refractor', function () { context('first plugin', function () { specify('should receive arguments', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1], @@ -250,7 +250,7 @@ describe('refractor', function () { specify('should receive node as first argument', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1], @@ -263,7 +263,7 @@ describe('refractor', function () { specify('should augment asyncapi version', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); const asyncApiElement = AsyncApi2Element.refract(genericObject, { plugins: [plugin1], @@ -276,7 +276,7 @@ describe('refractor', function () { context('second plugin', function () { specify('should receive arguments', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], @@ -287,7 +287,7 @@ describe('refractor', function () { specify('should receive node as first argument', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], @@ -300,7 +300,7 @@ describe('refractor', function () { specify('should append metadata to asyncapi version', function () { const genericObject = new ObjectElement({ - asyncapi: '2.2.0', + asyncapi: '2.3.0', }); const asyncApiElement = AsyncApi2Element.refract(genericObject, { plugins: [plugin1, plugin2], diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/mappings.ts b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/mappings.ts index 06a36f2c3e..a9faca3482 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/mappings.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/mappings.ts @@ -8,7 +8,7 @@ import { refractorPluginReplaceEmptyElement, AsyncApi2Element } from '../../../. describe('given empty value instead of InfoElement', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 info: `; const apiDOM = await parse(yamlDefinition); @@ -23,7 +23,7 @@ describe('given empty value instead of InfoElement', function () { describe('given empty value instead of ContactElement', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 info: contact: `; @@ -39,7 +39,7 @@ describe('given empty value instead of ContactElement', function () { describe('given empty value instead of Message.payload with unspecified schema format', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 components: messages: userSignUp: @@ -57,11 +57,11 @@ describe('given empty value instead of Message.payload with unspecified schema f describe('given empty value instead of Message.payload with supported schema format', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 components: messages: userSignUp: - schemaFormat: application/vnd.aai.asyncapi;version=2.2.0 + schemaFormat: application/vnd.aai.asyncapi;version=2.3.0 payload: `; const apiDOM = await parse(yamlDefinition); @@ -76,7 +76,7 @@ describe('given empty value instead of Message.payload with supported schema for describe('given empty value instead of Message.payload with unsupported schema format', function () { it('should replace empty value with generic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 components: messages: userSignUp: @@ -95,7 +95,7 @@ describe('given empty value instead of Message.payload with unsupported schema f describe('given empty value instead for AsyncAPI.components.schemas', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 components: schemas: `; @@ -116,7 +116,7 @@ describe('given empty value instead for AsyncAPI.components.schemas', function ( describe('given empty value instead for AsyncAPI.components.schemas.*', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 components: schemas: Schema1: @@ -133,7 +133,7 @@ describe('given empty value instead for AsyncAPI.components.schemas.*', function describe('given empty value instead for Schema.properties.*', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 components: schemas: User: @@ -152,7 +152,7 @@ describe('given empty value instead for Schema.properties.*', function () { describe('given AsyncAPI definition with no empty values', function () { it('should do nothing', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 id: urn:com:smartylighting:streetlights:server `; const apiDOM = await parse(yamlDefinition); @@ -167,7 +167,7 @@ describe('given AsyncAPI definition with no empty values', function () { describe('given AsyncAPI definition with empty values', function () { it('should generate proper source maps', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 info: `; const apiDOM = await parse(yamlDefinition, { sourceMap: true }); diff --git a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/sequences.ts b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/sequences.ts index d73fdaad26..d25d9896cd 100644 --- a/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/sequences.ts +++ b/packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/sequences.ts @@ -8,7 +8,7 @@ import { refractorPluginReplaceEmptyElement, AsyncApi2Element } from '../../../. describe('given empty value instead of SecurityRequirementElement', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.1.0 + asyncapi: 2.3.0 servers: server1: security: @@ -26,7 +26,7 @@ describe('given empty value instead of SecurityRequirementElement', function () describe('given empty value instead of OperationTraitElement', function () { it('should replace empty value with semantic element', async function () { const yamlDefinition = dedent` - asyncapi: 2.1.0 + asyncapi: 2.3.0 channels: "user/subscribe": subscribe: @@ -45,7 +45,7 @@ describe('given empty value instead of OperationTraitElement', function () { describe('given multiple empty value instead of MessageElement', function () { it('should replace empty values with semantic elements', async function () { const yamlDefinition = dedent` - asyncapi: 2.1.0 + asyncapi: 2.3.0 channels: "user/subscribe": subscribe: @@ -66,7 +66,7 @@ describe('given multiple empty value instead of MessageElement', function () { describe('given multiple empty value instead of TagElement', function () { it('should replace empty values with semantic elements', async function () { const yamlDefinition = dedent` - asyncapi: 2.1.0 + asyncapi: 2.3.0 channels: "user/subscribe": subscribe: @@ -88,7 +88,7 @@ describe('given multiple empty value instead of TagElement', function () { describe('given empty values instead of SchemaElement for allOf keyword', function () { it('should replace empty values with semantic elements', async function () { const yamlDefinition = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 components: schemas: Schema1: diff --git a/packages/apidom-parser-adapter-asyncapi-json-2/README.md b/packages/apidom-parser-adapter-asyncapi-json-2/README.md index 4d34748e28..7d0f8a8ff1 100644 --- a/packages/apidom-parser-adapter-asyncapi-json-2/README.md +++ b/packages/apidom-parser-adapter-asyncapi-json-2/README.md @@ -2,9 +2,11 @@ `@swagger-api/apidom-parser-adapter-asyncapi-json-2` is a parser adapter for following AsyncAPI specification versions defined in [JSON format](https://www.json.org/json-en.html): -- [AsyncAPI 2.0.0 specification](https://github.com/asyncapi/spec/blob/2.0.0/versions/2.0.0/asyncapi.md) -- [AsyncAPI 2.1.0 specification](https://github.com/asyncapi/spec/blob/v2.1.0/spec/asyncapi.md) +- [AsyncAPI 2.3.0 specification](https://github.com/asyncapi/spec/blob/v2.3.0/spec/asyncapi.md) - [AsyncAPI 2.2.0 specification](https://github.com/asyncapi/spec/blob/v2.2.0/spec/asyncapi.md) +- [AsyncAPI 2.1.0 specification](https://github.com/asyncapi/spec/blob/v2.1.0/spec/asyncapi.md) +- [AsyncAPI 2.0.0 specification](https://github.com/asyncapi/spec/blob/2.0.0/versions/2.0.0/asyncapi.md) + Under the hood this adapter uses [@swagger-api/apidom-parser-adapter-json](https://github.com/swagger-api/apidom/tree/main/packages/apidom-parser-adapter-json) to parse a source string into generic ApiDOM in [base ApiDOM namespace](https://github.com/swagger-api/apidom/tree/main/packages/apidom#base-namespace) @@ -38,11 +40,13 @@ Defines list of media types that this parser adapter recognizes. ```js [ 'application/vnd.aai.asyncapi;version=2.0.0', - 'application/vnd.aai.asyncapi+json;version=2.0.0', 'application/vnd.aai.asyncapi;version=2.1.0', - 'application/vnd.aai.asyncapi+json;version=2.1.0', 'application/vnd.aai.asyncapi;version=2.2.0', + 'application/vnd.aai.asyncapi;version=2.3.0', + 'application/vnd.aai.asyncapi+json;version=2.0.0', + 'application/vnd.aai.asyncapi+json;version=2.1.0', 'application/vnd.aai.asyncapi+json;version=2.2.0', + 'application/vnd.aai.asyncapi+json;version=2.3.0', ] ``` @@ -82,10 +86,11 @@ import { parse, detect } from '@swagger-api/apidom-parser-adapter-asyncapi-json- await detect('{"asyncapi": "2.0.0"}'); // => true await detect('{"asyncapi": "2.1.0"}'); // => true await detect('{"asyncapi": "2.2.0"}'); // => true +await detect('{"asyncapi": "2.3.0"}'); // => true await detect('test'); // => false // parsing -const parseResult = await parse('{"asyncapi": "2.2.0"}', { sourceMap: true }); +const parseResult = await parse('{"asyncapi": "2.3.0"}', { sourceMap: true }); ``` ### Indirect usage @@ -100,5 +105,5 @@ const parser = ApiDOMParser(); parser.use(asyncApiJsonAdapter); -const parseResult = await parser.parse('{"asyncapi": "2.2.0"}', { mediaType: asyncApiJsonAdapter.mediaTypes[2] }); +const parseResult = await parser.parse('{"asyncapi": "2.3.0"}', { mediaType: asyncApiJsonAdapter.mediaTypes[2] }); ``` diff --git a/packages/apidom-parser-adapter-asyncapi-json-2/test/fixtures/sample-api.json b/packages/apidom-parser-adapter-asyncapi-json-2/test/fixtures/sample-api.json index 1a1e71ca7e..91cde8baa6 100644 --- a/packages/apidom-parser-adapter-asyncapi-json-2/test/fixtures/sample-api.json +++ b/packages/apidom-parser-adapter-asyncapi-json-2/test/fixtures/sample-api.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "id": "urn:com:smartylighting:streetlights:server", "info": { "title": "AsyncAPI Sample App", diff --git a/packages/apidom-parser-adapter-asyncapi-json-2/test/perf/fixtures/asyncapi.json b/packages/apidom-parser-adapter-asyncapi-json-2/test/perf/fixtures/asyncapi.json index 470d5b9cca..955b678440 100644 --- a/packages/apidom-parser-adapter-asyncapi-json-2/test/perf/fixtures/asyncapi.json +++ b/packages/apidom-parser-adapter-asyncapi-json-2/test/perf/fixtures/asyncapi.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "id": "urn:com:gitter:streaming:api", "info": { "title": "Gitter Streaming API", diff --git a/packages/apidom-parser-adapter-asyncapi-yaml-2/README.md b/packages/apidom-parser-adapter-asyncapi-yaml-2/README.md index bbc038126b..9c55483853 100644 --- a/packages/apidom-parser-adapter-asyncapi-yaml-2/README.md +++ b/packages/apidom-parser-adapter-asyncapi-yaml-2/README.md @@ -2,9 +2,10 @@ `@swagger-api/apidom-parser-adapter-asyncapi-yaml-2` is a parser adapter for following AsyncAPI specification versions defined in [YAML format](https://yaml.org/spec/1.2/spec.html): -- [AsyncAPI 2.0.0 specification](https://github.com/asyncapi/spec/blob/2.0.0/versions/2.0.0/asyncapi.md) -- [AsyncAPI 2.1.0 specification](https://github.com/asyncapi/spec/blob/v2.1.0/spec/asyncapi.md) +- [AsyncAPI 2.3.0 specification](https://github.com/asyncapi/spec/blob/v2.3.0/spec/asyncapi.md) - [AsyncAPI 2.2.0 specification](https://github.com/asyncapi/spec/blob/v2.2.0/spec/asyncapi.md) +- [AsyncAPI 2.1.0 specification](https://github.com/asyncapi/spec/blob/v2.1.0/spec/asyncapi.md) +- [AsyncAPI 2.0.0 specification](https://github.com/asyncapi/spec/blob/2.0.0/versions/2.0.0/asyncapi.md) Under the hood this adapter uses [@swagger-api/apidom-parser-adapter-yaml-1-2](https://github.com/swagger-api/apidom/tree/main/packages/apidom-parser-adapter-yaml-1-2) to parse a source string into generic ApiDOM in [base ApiDOM namespace](https://github.com/swagger-api/apidom/tree/main/packages/apidom#base-namespace) @@ -38,11 +39,13 @@ Defines list of media types that this parser adapter recognizes. ```js [ 'application/vnd.aai.asyncapi;version=2.0.0', - 'application/vnd.aai.asyncapi+yaml;version=2.0.0', 'application/vnd.aai.asyncapi;version=2.1.0', - 'application/vnd.aai.asyncapi+yaml;version=2.1.0', 'application/vnd.aai.asyncapi;version=2.2.0', + 'application/vnd.aai.asyncapi;version=2.3.0', + 'application/vnd.aai.asyncapi+yaml;version=2.0.0', + 'application/vnd.aai.asyncapi+yaml;version=2.1.0', 'application/vnd.aai.asyncapi+yaml;version=2.2.0', + 'application/vnd.aai.asyncapi+yaml;version=2.3.0', ] ``` @@ -82,10 +85,11 @@ import { parse, detect } from '@swagger-api/apidom-parser-adapter-asyncapi-yaml- await detect('asyncapi: 2.0.0'); // => true await detect('asyncapi: 2.1.0'); // => true await detect('asyncapi: 2.2.0'); // => true +await detect('asyncapi: 2.3.0'); // => true await detect('test'); // => false // parsing -const parseResult = await parse('asyncapi: 2.2.0', { sourceMap: true }); +const parseResult = await parse('asyncapi: 2.3.0', { sourceMap: true }); ``` ### Indirect usage @@ -100,5 +104,5 @@ const parser = ApiDOMParser(); parser.use(asyncApiYamlAdapter); -const parseResult = await parser.parse('asyncapi: 2.2.0', { mediaType: asyncApiYamlAdapter.mediaTypes[2] }); +const parseResult = await parser.parse('asyncapi: 2.3.0', { mediaType: asyncApiYamlAdapter.mediaTypes[2] }); ``` diff --git a/packages/apidom-parser-adapter-asyncapi-yaml-2/test/adapter.ts b/packages/apidom-parser-adapter-asyncapi-yaml-2/test/adapter.ts index 7b07389044..d2a9a41143 100644 --- a/packages/apidom-parser-adapter-asyncapi-yaml-2/test/adapter.ts +++ b/packages/apidom-parser-adapter-asyncapi-yaml-2/test/adapter.ts @@ -49,7 +49,7 @@ describe('adapter', function () { context('given YAML with empty node', function () { specify('should generate source maps', async function () { const yamlSource = dedent` - asyncapi: 2.2.0 + asyncapi: 2.3.0 info: `; diff --git a/packages/apidom-parser-adapter-asyncapi-yaml-2/test/fixtures/sample-api.yaml b/packages/apidom-parser-adapter-asyncapi-yaml-2/test/fixtures/sample-api.yaml index 4dfcb986c4..1ac014a76f 100644 --- a/packages/apidom-parser-adapter-asyncapi-yaml-2/test/fixtures/sample-api.yaml +++ b/packages/apidom-parser-adapter-asyncapi-yaml-2/test/fixtures/sample-api.yaml @@ -1,5 +1,5 @@ --- -asyncapi: 2.2.0 +asyncapi: 2.3.0 id: urn:com:smartylighting:streetlights:server info: title: AsyncAPI Sample App diff --git a/packages/apidom-reference/README.md b/packages/apidom-reference/README.md index d04ef8d973..6cf52f8555 100644 --- a/packages/apidom-reference/README.md +++ b/packages/apidom-reference/README.md @@ -111,11 +111,13 @@ Supported media types are: ```js [ 'application/vnd.aai.asyncapi;version=2.0.0', - 'application/vnd.aai.asyncapi+json;version=2.0.0', - 'application/vnd.aai.asyncapi;version=2.2.0', - 'application/vnd.aai.asyncapi+json;version=2.2.0', + 'application/vnd.aai.asyncapi;version=2.1.0', 'application/vnd.aai.asyncapi;version=2.2.0', + 'application/vnd.aai.asyncapi;version=2.3.0', + 'application/vnd.aai.asyncapi+json;version=2.0.0', + 'application/vnd.aai.asyncapi+json;version=2.1.0', 'application/vnd.aai.asyncapi+json;version=2.2.0', + 'application/vnd.aai.asyncapi+json;version=2.3.0', ] ``` @@ -130,9 +132,13 @@ Supported media types are: ```js [ 'application/vnd.aai.asyncapi;version=2.0.0', - 'application/vnd.aai.asyncapi+yaml;version=2.0.0', + 'application/vnd.aai.asyncapi;version=2.1.0', 'application/vnd.aai.asyncapi;version=2.2.0', + 'application/vnd.aai.asyncapi;version=2.3.0', + 'application/vnd.aai.asyncapi+yaml;version=2.0.0', + 'application/vnd.aai.asyncapi+yaml;version=2.1.0', 'application/vnd.aai.asyncapi+yaml;version=2.2.0', + 'application/vnd.aai.asyncapi+yaml;version=2.3.0', ] ``` @@ -715,9 +721,15 @@ Supported media types: 'application/vnd.aai.asyncapi;version=2.0.0', 'application/vnd.aai.asyncapi+json;version=2.0.0', 'application/vnd.aai.asyncapi+yaml;version=2.0.0', + 'application/vnd.aai.asyncapi;version=2.1.0', + 'application/vnd.aai.asyncapi+json;version=2.1.0', + 'application/vnd.aai.asyncapi+yaml;version=2.1.0', 'application/vnd.aai.asyncapi;version=2.2.0', 'application/vnd.aai.asyncapi+json;version=2.2.0', - 'application/vnd.aai.asyncapi+yaml;version=2.2.0' + 'application/vnd.aai.asyncapi+yaml;version=2.2.0', + 'application/vnd.aai.asyncapi;version=2.3.0', + 'application/vnd.aai.asyncapi+json;version=2.3.0', + 'application/vnd.aai.asyncapi+yaml;version=2.3.0', ] ``` @@ -984,9 +996,15 @@ Supported media types: 'application/vnd.aai.asyncapi;version=2.0.0', 'application/vnd.aai.asyncapi+json;version=2.0.0', 'application/vnd.aai.asyncapi+yaml;version=2.0.0', + 'application/vnd.aai.asyncapi;version=2.1.0', + 'application/vnd.aai.asyncapi+json;version=2.1.0', + 'application/vnd.aai.asyncapi+yaml;version=2.1.0', 'application/vnd.aai.asyncapi;version=2.2.0', 'application/vnd.aai.asyncapi+json;version=2.2.0', - 'application/vnd.aai.asyncapi+yaml;version=2.2.0' + 'application/vnd.aai.asyncapi+yaml;version=2.2.0', + 'application/vnd.aai.asyncapi;version=2.3.0', + 'application/vnd.aai.asyncapi+json;version=2.3.0', + 'application/vnd.aai.asyncapi+yaml;version=2.3.0', ] ``` diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/additional-fields/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/additional-fields/dereferenced.json index 5da7c22c66..ede7838951 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/additional-fields/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/additional-fields/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "description": "channel item 1 description" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/additional-fields/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/additional-fields/root.json index c0b79bfc9a..faa3f2fda7 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/additional-fields/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/additional-fields/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "#/channels/channelItem2", diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-external-circular/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-external-circular/root.json index b466961c0b..262b756719 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-external-circular/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-external-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-internal-circular/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-internal-circular/root.json index aad5a2af65..f303883b74 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-internal-circular/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-internal-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "#/channels/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/dereferenced.json index 8b7e8d6b3b..feb5540ef9 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "description": "channel item 3 description" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/root.json index 301aadb957..739ed26c6a 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex1.json#/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/dereferenced.json index c2586ee066..0e1599cd8f 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "description": "channel item description" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/root.json index b466961c0b..262b756719 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/dereferenced.json index 12cf896316..c3ee964588 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/root.json index b466961c0b..262b756719 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-external-circular/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-external-circular/root.json index 301aadb957..739ed26c6a 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-external-circular/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-external-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex1.json#/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-internal-circular/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-internal-circular/root.json index 3d33b52eed..31335314c7 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-internal-circular/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-internal-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "#/channels/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/dereferenced.json index e1cbdf8d0a..920345f238 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "description": "channel item 2 description" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/root.json index 6d22e1748a..31377a6648 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-indirections/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-indirections/dereferenced.json index 69075a6646..23b1ab467e 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-indirections/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-indirections/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "description": "channel item 3 description" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-indirections/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-indirections/root.json index 368a4ce8d1..8049fc35b9 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-indirections/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-indirections/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "#/channels/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/dereferenced.json index f70413a84a..e70d99b088 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "description": "channel item 2 description" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/root.json index 91062790c3..7ccd9f3aca 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "#/channels/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/invalid-pointer/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/invalid-pointer/root.json index d6d2beecb0..91282f5432 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/invalid-pointer/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/invalid-pointer/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "invalid-pointer" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/max-depth/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/max-depth/root.json index 301aadb957..739ed26c6a 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/max-depth/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/max-depth/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex1.json#/channelItem2" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/unresolvable-channel-item/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/unresolvable-channel-item/root.json index 90470d82c1..de816ea96e 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/unresolvable-channel-item/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/channel-item-object/fixtures/unresolvable-channel-item/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "#/channels/invalid-pointer" diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/fixtures/operation-object/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/fixtures/operation-object/dereferenced.json index 9186e8b9a2..3fdccc7b27 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/fixtures/operation-object/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/fixtures/operation-object/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "user/signedup": { "subscribe": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/fixtures/operation-object/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/fixtures/operation-object/root.json index cd8793552c..2516de3ad8 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/fixtures/operation-object/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/fixtures/operation-object/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "user/signedup": { "subscribe": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/additional-ignored-props/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/additional-ignored-props/dereferenced.json index b92dd32af3..b33d065724 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/additional-ignored-props/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/additional-ignored-props/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/additional-ignored-props/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/additional-ignored-props/root.json index 12d194dcab..e3bef30abb 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/additional-ignored-props/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/additional-ignored-props/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/cycle-internal/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/cycle-internal/root.json index 8849b5e246..d0eee536b6 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/cycle-internal/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/cycle-internal/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "schemas": { "User": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/direct-external-circular/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/direct-external-circular/root.json index a5dbc58c8c..e78b793581 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/direct-external-circular/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/direct-external-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/direct-internal-circular/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/direct-internal-circular/root.json index 8f5fbb20a3..298133cfe6 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/direct-internal-circular/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/direct-internal-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/dereferenced.json index 49b45d7057..a34e6950d1 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "param1": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/ex.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/ex.json index 00384d73d9..f6cc77ea56 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/ex.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/ex.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "param1": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/root.json index a362b401e6..1836f42c4e 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "param1": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/dereferenced.json index 1b88b43632..066842d640 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/root.json index daf527e9ce..6eb924ae35 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-only/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-only/dereferenced.json index 1b88b43632..066842d640 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-only/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-only/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-only/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-only/root.json index a5dbc58c8c..e78b793581 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-only/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/external-only/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/dereferenced.json index 0d918bb39d..177e52391b 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/root.json index 7463119983..c5729cc6b5 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/dereferenced.json index 49e40dbc74..aaaab0dd6e 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/root.json index 9f3fd5a5b2..57c88b957d 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/indirect-external-circular/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/indirect-external-circular/root.json index 834046561d..bf3c3fffd8 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/indirect-external-circular/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/indirect-external-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/indirect-internal-circular/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/indirect-internal-circular/root.json index aaaff93cc4..98668e094b 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/indirect-internal-circular/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/indirect-internal-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/dereferenced.json index b92dd32af3..b33d065724 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/root.json index 9f3fd5a5b2..57c88b957d 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/dereferenced.json index f9e4143a67..f87c5c3a00 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/root.json index 6a47e644f7..50db7e4b22 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/invalid-pointer/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/invalid-pointer/root.json index 9544514442..152992348a 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/invalid-pointer/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/invalid-pointer/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/max-depth/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/max-depth/root.json index daf527e9ce..6eb924ae35 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/max-depth/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/max-depth/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/referencing-schema-object/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/referencing-schema-object/dereferenced.json index 4c779fe82f..5d94653384 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/referencing-schema-object/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/referencing-schema-object/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "messages": { "UserSignedUp": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/referencing-schema-object/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/referencing-schema-object/root.json index db42b04535..cfe11f9199 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/referencing-schema-object/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/referencing-schema-object/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "messages": { "UserSignedUp": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/refset-as-option/dereferenced.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/refset-as-option/dereferenced.json index 58e1051c0d..a37cf9287e 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/refset-as-option/dereferenced.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/refset-as-option/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/refset-as-option/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/refset-as-option/root.json index daf527e9ce..6eb924ae35 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/refset-as-option/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/refset-as-option/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/unresolvable-reference/root.json b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/unresolvable-reference/root.json index a5dbc58c8c..e78b793581 100644 --- a/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/unresolvable-reference/root.json +++ b/packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/reference-object/fixtures/unresolvable-reference/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-json-2-0/fixtures/sample-api.json b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-json-2-0/fixtures/sample-api.json index 1a1e71ca7e..91cde8baa6 100644 --- a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-json-2-0/fixtures/sample-api.json +++ b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-json-2-0/fixtures/sample-api.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "id": "urn:com:smartylighting:streetlights:server", "info": { "title": "AsyncAPI Sample App", diff --git a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-json-2-0/index.ts b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-json-2-0/index.ts index 47eca42ce9..e1226d3f98 100644 --- a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-json-2-0/index.ts +++ b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-json-2-0/index.ts @@ -68,7 +68,7 @@ describe('parsers', function () { }); context('parse', function () { - context('given AsyncApi 2.2.0 JSON data', function () { + context('given AsyncApi 2.3.0 JSON data', function () { specify('should return parse result', async function () { const url = path.join(__dirname, 'fixtures', 'sample-api.json'); const data = fs.readFileSync(url).toString(); @@ -84,7 +84,7 @@ describe('parsers', function () { }); }); - context('given AsyncApi 2.2.0 JSON data as buffer', function () { + context('given AsyncApi 2.3.0 JSON data as buffer', function () { specify('should return parse result', async function () { const url = path.join(__dirname, 'fixtures', 'sample-api.json'); const data = fs.readFileSync(url); @@ -100,7 +100,7 @@ describe('parsers', function () { }); }); - context('given data that is not an AsyncApi 2.2.0 JSON data', function () { + context('given data that is not an AsyncApi 2.3.0 JSON data', function () { specify('should throw ParserError', async function () { try { const file = File({ diff --git a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-yaml-2-0/fixtures/sample-api.yaml b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-yaml-2-0/fixtures/sample-api.yaml index 4dfcb986c4..1ac014a76f 100644 --- a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-yaml-2-0/fixtures/sample-api.yaml +++ b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-yaml-2-0/fixtures/sample-api.yaml @@ -1,5 +1,5 @@ --- -asyncapi: 2.2.0 +asyncapi: 2.3.0 id: urn:com:smartylighting:streetlights:server info: title: AsyncAPI Sample App diff --git a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-yaml-2-0/index.ts b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-yaml-2-0/index.ts index b6d2590c04..db34add5c0 100644 --- a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-yaml-2-0/index.ts +++ b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-asyncapi-yaml-2-0/index.ts @@ -99,7 +99,7 @@ describe('parsers', function () { }); context('parse', function () { - context('given AsyncApi 2.2.0 YAML data', function () { + context('given AsyncApi 2.3.0 YAML data', function () { specify('should return parse result', async function () { const url = path.join(__dirname, 'fixtures', 'sample-api.yaml'); const data = fs.readFileSync(url).toString(); @@ -111,7 +111,7 @@ describe('parsers', function () { }); }); - context('given AsyncApi 2.2.0 YAML data as buffer', function () { + context('given AsyncApi 2.3.0 YAML data as buffer', function () { specify('should return parse result', async function () { const url = path.join(__dirname, 'fixtures', 'sample-api.yaml'); const data = fs.readFileSync(url); @@ -123,7 +123,7 @@ describe('parsers', function () { }); }); - context('given data that is not an AsyncApi 2.2.0 YAML data', function () { + context('given data that is not an AsyncApi 2.3.0 YAML data', function () { specify('should throw ParserError', async function () { try { const file = File({ diff --git a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-openapi-json-3-1/index.ts b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-openapi-json-3-1/index.ts index 96a18c8b1b..5331a7f8f7 100644 --- a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-openapi-json-3-1/index.ts +++ b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-openapi-json-3-1/index.ts @@ -33,7 +33,7 @@ describe('parsers', function () { specify('should return false', function () { const file = File({ uri: '/path/to/openapi.json', - mediaType: 'application/vnd.aai.asyncapi+json;version=2.2.0', + mediaType: 'application/vnd.aai.asyncapi+json;version=2.3.0', }); const parser = OpenApiJson3_1Parser(); diff --git a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-openapi-yaml-3-1/index.ts b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-openapi-yaml-3-1/index.ts index 2d2546b4d8..362dbf6672 100644 --- a/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-openapi-yaml-3-1/index.ts +++ b/packages/apidom-reference/test/parse/parsers/apidom-reference-parser-openapi-yaml-3-1/index.ts @@ -33,7 +33,7 @@ describe('parsers', function () { specify('should return false', function () { const file = File({ uri: '/path/to/openapi.yaml', - mediaType: 'application/vnd.aai.asyncapi;version=2.2.0', + mediaType: 'application/vnd.aai.asyncapi;version=2.3.0', }); const parser = OpenApiYaml3_1Parser(); @@ -64,7 +64,7 @@ describe('parsers', function () { specify('should return false', function () { const file = File({ uri: '/path/to/openapi.yaml', - mediaType: 'application/vnd.aai.asyncapi;version=2.2.0', + mediaType: 'application/vnd.aai.asyncapi;version=2.3.0', }); const parser = OpenApiYaml3_1Parser(); diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-external-circular/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-external-circular/root.json index b466961c0b..262b756719 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-external-circular/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/direct-external-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/root.json index 301aadb957..739ed26c6a 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/external-indirections/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex1.json#/channelItem2" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/root.json index b466961c0b..262b756719 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/external-only/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/root.json index b466961c0b..262b756719 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/ignore-external/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-external-circular/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-external-circular/root.json index 301aadb957..739ed26c6a 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-external-circular/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/indirect-external-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex1.json#/channelItem2" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/root.json index 6d22e1748a..31377a6648 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-external/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex.json#/channelItem2" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/root.json index 91062790c3..7ccd9f3aca 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/internal-only/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "#/channels/channelItem2" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/invalid-pointer/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/invalid-pointer/root.json index d6d2beecb0..91282f5432 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/invalid-pointer/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/invalid-pointer/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "invalid-pointer" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/max-depth/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/max-depth/root.json index 301aadb957..739ed26c6a 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/max-depth/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/max-depth/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "./ex1.json#/channelItem2" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/unresolvable-channel-item/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/unresolvable-channel-item/root.json index 90470d82c1..de816ea96e 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/unresolvable-channel-item/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/channel-item-object/fixtures/unresolvable-channel-item/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "channels": { "channelItem1": { "$ref": "#/channels/invalid-pointer" diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/direct-external-circular/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/direct-external-circular/root.json index a5dbc58c8c..e78b793581 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/direct-external-circular/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/direct-external-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/direct-internal-circular/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/direct-internal-circular/root.json index 8f5fbb20a3..298133cfe6 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/direct-internal-circular/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/direct-internal-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/ex.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/ex.json index 00384d73d9..f6cc77ea56 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/ex.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/ex.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "param1": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/root.json index a362b401e6..1836f42c4e 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-circular-dependency/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "param1": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/dereferenced.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/dereferenced.json index 1b88b43632..066842d640 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/dereferenced.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/root.json index daf527e9ce..6eb924ae35 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-indirections/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-only/dereferenced.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-only/dereferenced.json index 1b88b43632..066842d640 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-only/dereferenced.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-only/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-only/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-only/root.json index a5dbc58c8c..e78b793581 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-only/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/external-only/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/dereferenced.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/dereferenced.json index 0d918bb39d..177e52391b 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/dereferenced.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/root.json index 7463119983..c5729cc6b5 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-arbitrary-$refs/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/dereferenced.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/dereferenced.json index 49e40dbc74..aaaab0dd6e 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/dereferenced.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/root.json index 9f3fd5a5b2..57c88b957d 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/ignore-external/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/indirect-external-circular/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/indirect-external-circular/root.json index 834046561d..bf3c3fffd8 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/indirect-external-circular/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/indirect-external-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/indirect-internal-circular/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/indirect-internal-circular/root.json index aaaff93cc4..98668e094b 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/indirect-internal-circular/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/indirect-internal-circular/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/dereferenced.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/dereferenced.json index b92dd32af3..b33d065724 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/dereferenced.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/root.json index 9f3fd5a5b2..57c88b957d 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-external/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/dereferenced.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/dereferenced.json index f9e4143a67..f87c5c3a00 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/dereferenced.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/dereferenced.json @@ -1,6 +1,6 @@ [ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/root.json index 6a47e644f7..50db7e4b22 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/internal-only/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/invalid-pointer/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/invalid-pointer/root.json index 9544514442..152992348a 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/invalid-pointer/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/invalid-pointer/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "userId": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/max-depth/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/max-depth/root.json index daf527e9ce..6eb924ae35 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/max-depth/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/max-depth/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": { diff --git a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/unresolvable-reference/root.json b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/unresolvable-reference/root.json index a5dbc58c8c..e78b793581 100644 --- a/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/unresolvable-reference/root.json +++ b/packages/apidom-reference/test/resolve/strategies/asyncapi-2-0/reference-object/fixtures/unresolvable-reference/root.json @@ -1,5 +1,5 @@ { - "asyncapi": "2.2.0", + "asyncapi": "2.3.0", "components": { "parameters": { "externalRef": {