diff --git a/sonar-project.properties b/.sonarcloud.properties similarity index 79% rename from sonar-project.properties rename to .sonarcloud.properties index 08761b1..366aa6f 100644 --- a/sonar-project.properties +++ b/.sonarcloud.properties @@ -1,3 +1,2 @@ # Disable specific duplicate code since it would introduce more complexity to reduce it. sonar.cpd.exclusions=src/standard.ts -sonar.exclusions=src/standard.ts diff --git a/src/asyncapidiff.ts b/src/asyncapidiff.ts index 3ce6f4b..1f82c01 100644 --- a/src/asyncapidiff.ts +++ b/src/asyncapidiff.ts @@ -1,4 +1,5 @@ import { Output, DiffOutputItem } from './types'; +import { breaking, nonBreaking, unclassified } from './constants'; /** * Implements functions to deal with the diff. @@ -10,28 +11,28 @@ export default class AsyncAPIDiff { constructor(output: string) { // output is a stringified JSON - this.output= JSON.parse(output); + this.output = JSON.parse(output); } /** * @returns All the breaking changes */ breaking(): DiffOutputItem[] { - return this.output.changes.filter((diff) => diff.type === 'breaking'); + return this.output.changes.filter((diff) => diff.type === breaking); } /** * @returns All the non-breaking changes */ nonBreaking(): DiffOutputItem[] { - return this.output.changes.filter((diff) => diff.type === 'non-breaking'); + return this.output.changes.filter((diff) => diff.type === nonBreaking); } /** * @returns All the unclassified changes */ unclassified(): DiffOutputItem[] { - return this.output.changes.filter((diff) => diff.type === 'unclassified'); + return this.output.changes.filter((diff) => diff.type === unclassified); } /** diff --git a/src/classifier.ts b/src/classifier.ts index d2b9185..e52ad1e 100644 --- a/src/classifier.ts +++ b/src/classifier.ts @@ -2,6 +2,7 @@ // Disabling this since the property we are accessing will always have `/` as the prefix // Thus preventing the prototype chain attacks +import { unclassified } from './constants'; import { generateClassifierPath } from './helpers/ClassifierHelpers'; import { Classifier, OverrideStandard } from './types'; @@ -18,9 +19,9 @@ export default function classifier( const classifierPath = generateClassifierPath(standard, path); if (!classifierPath) { return { - add: 'unclassified', - remove: 'unclassified', - edit: 'unclassified', + add: unclassified, + remove: unclassified, + edit: unclassified, }; } return standard[classifierPath]; diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..dea4e57 --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,3 @@ +export const breaking = 'breaking'; +export const nonBreaking = 'non-breaking'; +export const unclassified = 'unclassified'; diff --git a/src/diff.ts b/src/generateDiff.ts similarity index 93% rename from src/diff.ts rename to src/generateDiff.ts index 0610b92..1d2f98e 100644 --- a/src/diff.ts +++ b/src/generateDiff.ts @@ -9,7 +9,7 @@ import { DiffOutput } from './types'; * @param {*} secondDocument The second document in JSON format * @returns {DiffOutput[]} An array containing all the diffs */ -export default function diff( +export default function generateDiff( firstDocument: any, secondDocument: any ): DiffOutput[] { diff --git a/src/index.ts b/src/index.ts index cb0ff5c..82aa676 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,2 @@ -export {}; +export * from './main'; +export * from './types'; diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..8654561 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,42 @@ +import { Config, OverrideStandard } from './types'; +import generateDiff from './generateDiff'; +import { standard } from './standard'; +import categorizeChanges from './categorizeChanges'; +import AsyncAPIDiff from './asyncapidiff'; +import { mergeStandard } from './mergeStandard'; + +/** + * Generates diff between two AsyncAPI documents + * @param firstDocument The parsed AsyncAPI document + * @param secondDocument The parsed AsyncAPI document + * @param {Object} config Configuration options + * @param {Object} [config.override] Object to override the standard + * @returns {AsyncAPIDiff} The diff data + * + * @example + * const output = diff(firstDocument, secondDocument, { + * override: { + * '/servers': { + * add: 'non-breaking', // when a property has been added in the AsyncAPI document + * remove: 'breaking', // when a property has been removed from the AsyncAPI document + * edit: 'unclassified' // when a property has been edited in the AsyncAPI document + * } + * } + * }) + */ +export function diff( + firstDocument: any, + secondDocument: any, + config: Config = {} +): AsyncAPIDiff { + if (config.override) { + if (typeof config.override !== 'object') { + throw new TypeError('Override data must be an object'); + } + mergeStandard(standard, config.override); + } + + const diffOutput = generateDiff(firstDocument, secondDocument); + const output = categorizeChanges(standard as OverrideStandard, diffOutput); + return new AsyncAPIDiff(JSON.stringify(output)); +} diff --git a/src/standard.ts b/src/standard.ts index 6dff142..e90cd71 100644 --- a/src/standard.ts +++ b/src/standard.ts @@ -1,6 +1,4 @@ -const breaking = 'breaking'; -const nonBreaking = 'non-breaking'; -const unclassified = 'unclassified'; +import { breaking, nonBreaking, unclassified } from './constants'; /** * The standard object @@ -126,6 +124,11 @@ export const standard = { remove: breaking, edit: breaking, }, + '/servers/*/variables/*/enum/*': { + add: nonBreaking, + remove: breaking, + edit: breaking, + }, '/servers/*/variables/*/default': { add: breaking, remove: breaking, @@ -141,11 +144,21 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/servers/*/variables/*/examples/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/servers/*/security': { add: breaking, remove: breaking, edit: breaking, }, + '/servers/*/security/*': { + add: breaking, + remove: breaking, + edit: breaking, + }, '/servers/*/bindings': { add: unclassified, remove: unclassified, @@ -196,6 +209,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/subscribe/tags/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/subscribe/externalDocs': { add: nonBreaking, remove: nonBreaking, @@ -211,6 +229,11 @@ export const standard = { remove: breaking, edit: breaking, }, + '/channels/*/subscribe/traits/*': { + add: nonBreaking, + remove: breaking, + edit: breaking, + }, '/channels/*/subscribe/traits/operationId': { add: nonBreaking, remove: breaking, @@ -231,6 +254,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/subscribe/traits/tags/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/subscribe/traits/externalDocs': { add: nonBreaking, remove: nonBreaking, @@ -296,6 +324,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/subscribe/message/tags/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/subscribe/message/externalDocs': { add: nonBreaking, remove: nonBreaking, @@ -311,11 +344,21 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/subscribe/message/examples/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/subscribe/message/traits': { add: nonBreaking, remove: breaking, edit: breaking, }, + '/channels/*/subscribe/message/traits/*': { + add: nonBreaking, + remove: breaking, + edit: breaking, + }, '/channels/*/subscribe/message/traits/headers': { add: unclassified, remove: unclassified, @@ -366,6 +409,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/subscribe/message/traits/tags/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/subscribe/message/traits/externalDocs': { add: nonBreaking, remove: nonBreaking, @@ -381,6 +429,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/subscribe/message/traits/examples/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/subscribe/message/description': { add: nonBreaking, remove: nonBreaking, @@ -416,6 +469,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/publish/tags/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/publish/externalDocs': { add: nonBreaking, remove: nonBreaking, @@ -431,6 +489,11 @@ export const standard = { remove: breaking, edit: breaking, }, + '/channels/*/publish/traits/*': { + add: nonBreaking, + remove: breaking, + edit: breaking, + }, '/channels/*/publish/traits/operationId': { add: nonBreaking, remove: breaking, @@ -451,6 +514,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/publish/traits/tags/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/publish/traits/externalDocs': { add: nonBreaking, remove: nonBreaking, @@ -516,6 +584,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/publish/message/tags/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/publish/message/externalDocs': { add: nonBreaking, remove: nonBreaking, @@ -531,11 +604,21 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/publish/message/examples/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/publish/message/traits': { add: nonBreaking, remove: breaking, edit: breaking, }, + '/channels/*/publish/message/traits/*': { + add: nonBreaking, + remove: breaking, + edit: breaking, + }, '/channels/*/publish/message/traits/headers': { add: unclassified, remove: unclassified, @@ -586,6 +669,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/publish/message/traits/tags/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/publish/message/traits/externalDocs': { add: nonBreaking, remove: nonBreaking, @@ -601,6 +689,11 @@ export const standard = { remove: nonBreaking, edit: nonBreaking, }, + '/channels/*/publish/message/traits/examples/*': { + add: nonBreaking, + remove: nonBreaking, + edit: nonBreaking, + }, '/channels/*/publish/message/description': { add: nonBreaking, remove: nonBreaking, diff --git a/src/types.ts b/src/types.ts index e0ba69b..3e0e619 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,10 +1,14 @@ import { ReplaceOperation, AddOperation } from 'fast-json-patch'; import { standard } from './standard'; +import { breaking, nonBreaking, unclassified } from './constants'; export type ActionType = 'add' | 'remove' | 'edit'; -export type ChangeType = 'breaking' | 'non-breaking' | 'unclassified'; +export type ChangeType = + | typeof breaking + | typeof nonBreaking + | typeof unclassified; export interface Classifier { add: ChangeType; @@ -38,6 +42,5 @@ export interface OverrideObject { export type OverrideStandard = StandardType & OverrideObject; export interface Config { - parse?: boolean; override?: OverrideObject; } diff --git a/test/fixtures/main.fixtures.ts b/test/fixtures/main.fixtures.ts new file mode 100644 index 0000000..4cad5b0 --- /dev/null +++ b/test/fixtures/main.fixtures.ts @@ -0,0 +1,314 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +export const breakingChanges = [ + { + action: 'remove', + path: '/channels/mychannel', + type: 'breaking', + before: { + publish: { + message: { + headers: { + properties: { + 'some-common-header': { + type: 'string', + 'x-parser-schema-id': '', + }, + }, + type: 'object', + 'x-parser-schema-id': '', + }, + schemaFormat: 'application/vnd.aai.asyncapi;version=2.0.0', + 'x-parser-message-name': 'channelMessage', + 'x-parser-message-parsed': true, + 'x-parser-original-traits': [ + { + headers: { + properties: { + 'some-common-header': { + type: 'string', + }, + }, + type: 'object', + }, + 'x-some-extension': 'some extension', + }, + ], + 'x-some-extension': 'some extension', + }, + }, + }, + }, + { + action: 'edit', + path: '/info/version', + type: 'breaking', + after: '1.1.0', + before: '1.0.0', + }, +]; + +export const nonBreakingChanges = [ + { + action: 'add', + path: '/channels/anotherChannel', + type: 'non-breaking', + after: { + publish: { + message: { + headers: { + properties: { + 'some-common-header': { + type: 'string', + 'x-parser-schema-id': '', + }, + }, + type: 'object', + 'x-parser-schema-id': '', + }, + schemaFormat: 'application/vnd.aai.asyncapi;version=2.0.0', + 'x-parser-message-name': 'channelMessage', + 'x-parser-message-parsed': true, + 'x-parser-original-traits': [ + { + headers: { + properties: { + 'some-common-header': { + type: 'string', + }, + }, + type: 'object', + }, + 'x-some-extension': 'some extension', + }, + ], + 'x-some-extension': 'some extension', + }, + }, + }, + }, +]; + +export const diffOutput = { + changes: [ + { + action: 'remove', + path: '/channels/mychannel', + type: 'breaking', + before: { + publish: { + message: { + headers: { + properties: { + 'some-common-header': { + type: 'string', + 'x-parser-schema-id': '', + }, + }, + type: 'object', + 'x-parser-schema-id': '', + }, + schemaFormat: 'application/vnd.aai.asyncapi;version=2.0.0', + 'x-parser-message-name': 'channelMessage', + 'x-parser-message-parsed': true, + 'x-parser-original-traits': [ + { + headers: { + properties: { + 'some-common-header': { + type: 'string', + }, + }, + type: 'object', + }, + 'x-some-extension': 'some extension', + }, + ], + 'x-some-extension': 'some extension', + }, + }, + }, + }, + { + action: 'add', + path: '/channels/anotherChannel', + type: 'non-breaking', + after: { + publish: { + message: { + headers: { + properties: { + 'some-common-header': { + type: 'string', + 'x-parser-schema-id': '', + }, + }, + type: 'object', + 'x-parser-schema-id': '', + }, + schemaFormat: 'application/vnd.aai.asyncapi;version=2.0.0', + 'x-parser-message-name': 'channelMessage', + 'x-parser-message-parsed': true, + 'x-parser-original-traits': [ + { + headers: { + properties: { + 'some-common-header': { + type: 'string', + }, + }, + type: 'object', + }, + 'x-some-extension': 'some extension', + }, + ], + 'x-some-extension': 'some extension', + }, + }, + }, + }, + { + action: 'edit', + path: '/info/version', + type: 'breaking', + after: '1.1.0', + before: '1.0.0', + }, + ], +}; + +export const overrides = { + '/channels/*': { + add: 'breaking', + remove: 'non-breaking', + edit: 'unclassified', + }, + '/info/version': { + add: 'breaking', + remove: 'non-breaking', + edit: 'unclassified', + }, +}; + +export const changesWithOverrides = { + changes: [ + { + action: 'remove', + path: '/channels/mychannel', + type: 'non-breaking', + before: { + publish: { + message: { + headers: { + properties: { + 'some-common-header': { + type: 'string', + 'x-parser-schema-id': '', + }, + }, + type: 'object', + 'x-parser-schema-id': '', + }, + schemaFormat: 'application/vnd.aai.asyncapi;version=2.0.0', + 'x-parser-message-name': 'channelMessage', + 'x-parser-message-parsed': true, + 'x-parser-original-traits': [ + { + headers: { + properties: { + 'some-common-header': { + type: 'string', + }, + }, + type: 'object', + }, + 'x-some-extension': 'some extension', + }, + ], + 'x-some-extension': 'some extension', + }, + }, + }, + }, + { + action: 'add', + path: '/channels/anotherChannel', + type: 'breaking', + after: { + publish: { + message: { + headers: { + properties: { + 'some-common-header': { + type: 'string', + 'x-parser-schema-id': '', + }, + }, + type: 'object', + 'x-parser-schema-id': '', + }, + schemaFormat: 'application/vnd.aai.asyncapi;version=2.0.0', + 'x-parser-message-name': 'channelMessage', + 'x-parser-message-parsed': true, + 'x-parser-original-traits': [ + { + headers: { + properties: { + 'some-common-header': { + type: 'string', + }, + }, + type: 'object', + }, + 'x-some-extension': 'some extension', + }, + ], + 'x-some-extension': 'some extension', + }, + }, + }, + }, + { + action: 'edit', + path: '/info/version', + type: 'unclassified', + after: '1.1.0', + before: '1.0.0', + }, + ], +}; + +export const specDocument1 = { + servers: { + google: { + variables: { + port: { + enum: [1, 2], + }, + }, + }, + }, +}; + +export const specDocument2 = { + servers: { + google: { + variables: { + port: { + enum: [1], + }, + }, + }, + }, +}; + +export const arrayChanges = { + changes: [ + { + path: '/servers/google/variables/port/enum/1', + type: 'breaking', + isArrayIndex: true, + action: 'remove', + before: 2, + }, + ], +}; diff --git a/test/fixtures/mergeStandard.fixture.ts b/test/fixtures/mergeStandard.fixture.ts index 766bfd4..1e0424c 100644 --- a/test/fixtures/mergeStandard.fixture.ts +++ b/test/fixtures/mergeStandard.fixture.ts @@ -15,10 +15,10 @@ export const exisitngKey = { }; export const standardAsString = - '{"/asyncapi":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/id":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/defaultContentType":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/version":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/termsOfService":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license/name":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info/license/url":{"add":"breaking","remove":"non-breaking","edit":"non-breaking"},"/info/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/url":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/email":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/url":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/protocol":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/protocolVersion":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/default":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/security":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/parameters/*/schema":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters/*/location":{"add":"breaking","remove":"breaking","edit":"breaking"},"/components":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"}}'; + '{"/asyncapi":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/id":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/defaultContentType":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/version":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/termsOfService":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license/name":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info/license/url":{"add":"breaking","remove":"non-breaking","edit":"non-breaking"},"/info/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/url":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/email":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/url":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/protocol":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/protocolVersion":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/default":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/security":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/security/*":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/parameters/*/schema":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters/*/location":{"add":"breaking","remove":"breaking","edit":"breaking"},"/components":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"}}'; export const mergedStandardAsString = - '{"/asyncapi":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/id":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/defaultContentType":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/version":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/termsOfService":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license/name":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info/license/url":{"add":"breaking","remove":"non-breaking","edit":"non-breaking"},"/info/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/url":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/email":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/url":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/protocol":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/protocolVersion":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/default":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/security":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/parameters/*/schema":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters/*/location":{"add":"breaking","remove":"breaking","edit":"breaking"},"/components":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/newKey":{"add":"breaking","remove":"unclassified","edit":"breaking"}}'; + '{"/asyncapi":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/id":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/defaultContentType":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/version":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/termsOfService":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license/name":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info/license/url":{"add":"breaking","remove":"non-breaking","edit":"non-breaking"},"/info/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/url":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/email":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/url":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/protocol":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/protocolVersion":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/default":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/security":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/security/*":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/parameters/*/schema":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters/*/location":{"add":"breaking","remove":"breaking","edit":"breaking"},"/components":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/newKey":{"add":"breaking","remove":"unclassified","edit":"breaking"}}'; export const exisitingKeyStandard = - '{"/asyncapi":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/id":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/defaultContentType":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/version":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/termsOfService":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license/name":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info/license/url":{"add":"breaking","remove":"non-breaking","edit":"non-breaking"},"/info/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/url":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/email":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/servers/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/url":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/protocol":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/protocolVersion":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/default":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/security":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/parameters/*/schema":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters/*/location":{"add":"breaking","remove":"breaking","edit":"breaking"},"/components":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/newKey":{"add":"breaking","remove":"unclassified","edit":"breaking"}}'; + '{"/asyncapi":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/id":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/defaultContentType":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/version":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/termsOfService":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/info/license/name":{"add":"breaking","remove":"breaking","edit":"breaking"},"/info/license/url":{"add":"breaking","remove":"non-breaking","edit":"non-breaking"},"/info/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/url":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/info/contact/email":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/servers/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/url":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/protocol":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/protocolVersion":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/enum/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/default":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/variables/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/variables/*/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/servers/*/security":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/security/*":{"add":"breaking","remove":"breaking","edit":"breaking"},"/servers/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/subscribe/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/subscribe/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/traits/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/subscribe/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/operationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/headers":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/correlationId":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/location":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/correlationId/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/schemaFormat":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/contentType":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/publish/message/traits/name":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/title":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/summary":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/tags/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/bindings":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/publish/message/traits/examples":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/traits/examples/*":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/publish/message/payload":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters":{"add":"breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*":{"add":"non-breaking","remove":"breaking","edit":"breaking"},"/channels/*/parameters/*/description":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/channels/*/parameters/*/schema":{"add":"unclassified","remove":"unclassified","edit":"unclassified"},"/channels/*/parameters/*/location":{"add":"breaking","remove":"breaking","edit":"breaking"},"/components":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/tags":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/externalDocs":{"add":"non-breaking","remove":"non-breaking","edit":"non-breaking"},"/newKey":{"add":"breaking","remove":"unclassified","edit":"breaking"}}'; diff --git a/test/diff.spec.ts b/test/generateDiff.spec.ts similarity index 71% rename from test/diff.spec.ts rename to test/generateDiff.spec.ts index c0eb059..bbc2f78 100644 --- a/test/diff.spec.ts +++ b/test/generateDiff.spec.ts @@ -2,7 +2,7 @@ import { parse } from '@asyncapi/parser'; import { readFileSync } from 'fs'; import { resolve } from 'path'; -import diff from '../src/diff'; +import generateDiff from '../src/generateDiff'; import { firstDocument, @@ -13,11 +13,13 @@ import { describe('Diff', () => { test('Check if diff is an empty array for same inputs', () => { - expect(diff(firstDocument, firstDocument)).toStrictEqual([]); + expect(generateDiff(firstDocument, firstDocument)).toStrictEqual([]); }); test('Check diff output with local inputs', () => { - expect(diff(firstDocument, secondDocument)).toStrictEqual(diffLocalOutput); + expect(generateDiff(firstDocument, secondDocument)).toStrictEqual( + diffLocalOutput + ); }); test('Check diff output through parser with no difference', async () => { @@ -26,7 +28,9 @@ describe('Diff', () => { 'utf-8' ); const firstDocument = await parse(specDocument); - expect(diff(firstDocument.json(), firstDocument.json())).toStrictEqual([]); + expect( + generateDiff(firstDocument.json(), firstDocument.json()) + ).toStrictEqual([]); }); test('Check diff output through parser with difference input', async () => { @@ -40,8 +44,8 @@ describe('Diff', () => { ); const firstDocument = await parse(firstSpecDocument); const secondDocument = await parse(secondSpecDocument); - expect(diff(firstDocument.json(), secondDocument.json())).toStrictEqual( - diffOutput - ); + expect( + generateDiff(firstDocument.json(), secondDocument.json()) + ).toStrictEqual(diffOutput); }); }); diff --git a/test/main.spec.ts b/test/main.spec.ts new file mode 100644 index 0000000..b7572c9 --- /dev/null +++ b/test/main.spec.ts @@ -0,0 +1,68 @@ +import { parse } from '@asyncapi/parser'; +import { readFileSync } from 'fs'; +import { resolve } from 'path'; + +import AsyncAPIDiff from '../src/asyncapidiff'; +import { diff } from '../src/main'; +import { OverrideObject } from '../src/types'; + +import { + diffOutput, + breakingChanges, + nonBreakingChanges, + overrides, + changesWithOverrides, + specDocument1, + specDocument2, + arrayChanges, +} from './fixtures/main.fixtures'; + +describe('main function', () => { + test('runs the diff function', async () => { + const firstSpecDocument = readFileSync( + resolve('./test/spec/asyncapi.yml'), + 'utf-8' + ); + const secondSpecDocument = readFileSync( + resolve('./test/spec/diffSpec.yml'), + 'utf-8' + ); + const firstDocument = await parse(firstSpecDocument); + const secondDocument = await parse(secondSpecDocument); + const output = diff(firstDocument.json(), secondDocument.json()); + expect(output).toBeInstanceOf(AsyncAPIDiff); + expect(output.getOutput()).toEqual(diffOutput); + expect(output.breaking()).toEqual(breakingChanges); + expect(output.nonBreaking()).toEqual(nonBreakingChanges); + }); + + test('runs the diff function with empty spec', () => { + const firstSpec = {}; + const secondSpec = {}; + expect(diff(firstSpec, secondSpec).getOutput()).toEqual({ + changes: [], + }); + }); + + test('runs the diff function with overrided changes', async () => { + const firstSpecDocument = readFileSync( + resolve('./test/spec/asyncapi.yml'), + 'utf-8' + ); + const secondSpecDocument = readFileSync( + resolve('./test/spec/diffSpec.yml'), + 'utf-8' + ); + const firstDocument = await parse(firstSpecDocument); + const secondDocument = await parse(secondSpecDocument); + const output = diff(firstDocument.json(), secondDocument.json(), { + override: overrides as OverrideObject, + }); + expect(output.getOutput()).toEqual(changesWithOverrides); + }); + + test('checks output with array changes', () => { + const output = diff(specDocument1, specDocument2); + expect(output.getOutput()).toEqual(arrayChanges); + }); +});