From ed357bc8739ee54f674f3ebefe21c77d3957088a Mon Sep 17 00:00:00 2001 From: "Philip Schlesinger @ Cryoport" Date: Tue, 24 Jan 2023 14:01:12 -0800 Subject: [PATCH 01/29] feat: support IntelliJ IDEA 2022.3; roll versions (#8) - Support IntelliJ IDEA 2022.3 - Roll dependency / toolchain versions - Update README to state that must `:runPluginVerifier` --- .idea/misc.xml | 3 +++ .idea/runConfigurations.xml | 10 ---------- .sdkmanrc | 3 +++ README.md | 15 ++++++++++----- build.gradle.kts | 30 ++++++++++++++++-------------- 5 files changed, 32 insertions(+), 29 deletions(-) delete mode 100644 .idea/runConfigurations.xml create mode 100644 .sdkmanrc diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d98256..b6acdbd 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,4 +7,7 @@ + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 797acea..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.sdkmanrc b/.sdkmanrc new file mode 100644 index 0000000..489632b --- /dev/null +++ b/.sdkmanrc @@ -0,0 +1,3 @@ +# Enable auto-env through the sdkman_auto_env config +# Add key=value pairs of SDKs to use below +java=17.0.5-tem diff --git a/README.md b/README.md index c4d2093..1050ed1 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,14 @@ cd jasyncapi-idea-plugin ``` 3. build plugin ```sh -➜ jasyncapi-idea-plugin git:(feature/idea-plugin) ✗ ./gradlew buildPlugin -... -BUILD SUCCESSFUL in 24s -11 actionable tasks: 11 executed +./gradlew :buildPlugin ``` -4. install plugin from disk - [JetBrains Instruction](https://www.jetbrains.com/help/idea/managing-plugins.html#install_plugin_from_disk) \ No newline at end of file +... should have no errors +4. verify plugin + +NOTE: This will take a while the first time as it will have to download every single version of IntelliJ IDEA listed in the `runPluginVerifier` section of the `build.gradle.kts` file. +```sh +./gradlew :runPluginVerifier +``` +... should have no errors +5. install plugin from disk - [JetBrains Instruction](https://www.jetbrains.com/help/idea/managing-plugins.html#install_plugin_from_disk) \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index d477a04..f9ffe20 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +1,11 @@ plugins { - id("org.jetbrains.intellij") version "1.9.0" + id("org.jetbrains.intellij") version "1.10.0" java - kotlin("jvm") version "1.6.20" + kotlin("jvm") version "1.7.21" } group "com.asyncapi.plugin.idea" -version = "1.7.1+idea2021" +version = "1.8.0+idea2022" repositories { mavenCentral() @@ -13,22 +13,23 @@ repositories { dependencies { implementation(kotlin("stdlib")) - testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7") - testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.0") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.0") - testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.9.0") + testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.1") + testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.1") + testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.9.1") } // See https://github.com/JetBrains/gradle-intellij-plugin/ intellij { - version.set("2022.2.3") + version.set("2022.3") plugins.set(listOf("yaml")) } tasks.getByName("patchPluginXml") { sinceBuild.set("211") - untilBuild.set("222.*") + untilBuild.set("223.*") changeNotes.set(""" -

Fix preview on Windows

+

Update to support IntelliJ IDEA 2022.3

+

Update dependency & build toolchain versions

""".trimIndent()) } @@ -54,17 +55,18 @@ tasks.getByName("runPluginVe "2022.2", "2022.2.1", "2022.2.2", - "2022.2.3" + "2022.2.3", + "2022.3" )) - verifierVersion.set("1.284") + verifierVersion.set("1.289") } tasks { compileKotlin { - kotlinOptions.jvmTarget = "11" + kotlinOptions.jvmTarget = "17" } compileTestKotlin { - kotlinOptions.jvmTarget = "11" + kotlinOptions.jvmTarget = "17" } test { useJUnitPlatform() From dfe8d343028b02201c156f559858f15c849d82f4 Mon Sep 17 00:00:00 2001 From: neXos Date: Wed, 25 Jan 2023 10:26:22 +0100 Subject: [PATCH 02/29] feat: update for Intellij 2022.3.1 (#11) - update Java to 17 - update Kotlin to 1.8.0 - update gradle plugin 'org.jetbrains.intellij' to 1.12.0 --- build.gradle.kts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index f9ffe20..9f42198 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,19 +1,17 @@ plugins { - id("org.jetbrains.intellij") version "1.10.0" + id("org.jetbrains.intellij") version "1.12.0" java - kotlin("jvm") version "1.7.21" + kotlin("jvm") version "1.8.0" } group "com.asyncapi.plugin.idea" -version = "1.8.0+idea2022" +version = "1.8.1+idea2022" repositories { mavenCentral() } dependencies { - implementation(kotlin("stdlib")) - testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.1") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.1") testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.9.1") @@ -21,11 +19,11 @@ dependencies { // See https://github.com/JetBrains/gradle-intellij-plugin/ intellij { - version.set("2022.3") + version.set("2022.3.1") plugins.set(listOf("yaml")) } tasks.getByName("patchPluginXml") { - sinceBuild.set("211") + sinceBuild.set("223") untilBuild.set("223.*") changeNotes.set("""

Update to support IntelliJ IDEA 2022.3

@@ -56,7 +54,9 @@ tasks.getByName("runPluginVe "2022.2.1", "2022.2.2", "2022.2.3", - "2022.3" + "2022.2.4", + "2022.3", + "2022.3.1" )) verifierVersion.set("1.289") } @@ -71,4 +71,10 @@ tasks { test { useJUnitPlatform() } -} \ No newline at end of file +} + +kotlin { + jvmToolchain { + this.languageVersion.set(JavaLanguageVersion.of(17)) + } +} From bceec1b5834f844cf3d184a47cb4bb38048d391b Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Wed, 25 Jan 2023 13:56:25 +0400 Subject: [PATCH 03/29] build: fix group typo --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 9f42198..c73174e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ plugins { kotlin("jvm") version "1.8.0" } -group "com.asyncapi.plugin.idea" +group = "com.asyncapi.plugin.idea" version = "1.8.1+idea2022" repositories { From aa72745fe7cee955a485865da01668862c707bfd Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Wed, 25 Jan 2023 14:28:22 +0400 Subject: [PATCH 04/29] build: update change notes --- build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index c73174e..3cc957b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,8 +26,7 @@ tasks.getByName("patchPluginXml sinceBuild.set("223") untilBuild.set("223.*") changeNotes.set(""" -

Update to support IntelliJ IDEA 2022.3

-

Update dependency & build toolchain versions

+

Update to support IntelliJ IDEA 2022.3, 2022.3.*

""".trimIndent()) } From 52b6e511467d8209ab69ff95edd9db197f4423ca Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Wed, 25 Jan 2023 14:30:15 +0400 Subject: [PATCH 05/29] build: actual IDEA versions in runPluginVerifier --- build.gradle.kts | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3cc957b..5cb8dd8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,28 +32,6 @@ tasks.getByName("patchPluginXml tasks.getByName("runPluginVerifier") { ideVersions.set(listOf( - "2021.1", - "2021.1.1", - "2021.1.2", - "2021.1.3", - "2021.2", - "2021.2.1", - "2021.2.2", - "2021.2.3", - "2021.3", - "2021.3.1", - "2021.3.2", - "2021.3.3", - "2022.1", - "2022.1.1", - "2022.1.2", - "2022.1.3", - "2022.1.4", - "2022.2", - "2022.2.1", - "2022.2.2", - "2022.2.3", - "2022.2.4", "2022.3", "2022.3.1" )) From b75baab6130ac4d235d3fbf6ec736944fee3abbd Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Wed, 25 Jan 2023 23:41:50 +0400 Subject: [PATCH 06/29] release: 2.0.0+jre17 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 5cb8dd8..61b5a64 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "com.asyncapi.plugin.idea" -version = "1.8.1+idea2022" +version = "2.0.0+jre17" repositories { mavenCentral() From 4395a6f3c0b456c0f3349643a664273b39f7bd36 Mon Sep 17 00:00:00 2001 From: neXos Date: Tue, 2 May 2023 00:46:06 +0200 Subject: [PATCH 07/29] feat: update for Intellij 2023.1 (#27) * use JDK 17 * use Kotlin 1.8.0 * Create .asyncapi-tool (#20) (cherry picked from commit 8332819037117f3d878a732711fe857a88cd5760) * Update Gradle wrapper to 8.1-rc-1 same as plugin "org.jetbrains.intellij" version "1.13.3" * Update Plugin Version, IDE versions and dependencies --------- Co-authored-by: Philip Schlesinger @ Cryoport --- .asyncapi-tool | 15 ++ .idea/kotlinc.xml | 6 + .idea/misc.xml | 4 +- build.gradle.kts | 23 +- gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59821 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 257 ++++++++++++++--------- 7 files changed, 189 insertions(+), 118 deletions(-) create mode 100644 .asyncapi-tool create mode 100644 .idea/kotlinc.xml diff --git a/.asyncapi-tool b/.asyncapi-tool new file mode 100644 index 0000000..b051e8b --- /dev/null +++ b/.asyncapi-tool @@ -0,0 +1,15 @@ +{ + "title": "jAsyncAPI - IDEA plugin", + "description": "Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.", + "links": { + "websiteUrl": "https://plugins.jetbrains.com/plugin/15673-asyncapi", + "docsUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin#usage", + "repoUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin" + }, + "filters": { + "language": "Kotlin", + "technology": ["JetBrains","IntelliJ IDEA"], + "categories": ["ide-extension"], + "hasCommercial": false + } +} \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..46c6ce0 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index b6acdbd..5180e99 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,10 +4,10 @@ - + - \ No newline at end of file + diff --git a/build.gradle.kts b/build.gradle.kts index 61b5a64..9e7894c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,39 +1,40 @@ plugins { - id("org.jetbrains.intellij") version "1.12.0" + id("org.jetbrains.intellij") version "1.13.3" java - kotlin("jvm") version "1.8.0" + kotlin("jvm") version "1.8.10" } group = "com.asyncapi.plugin.idea" -version = "2.0.0+jre17" +version = "2.0.1+jre17" repositories { mavenCentral() } dependencies { - testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.1") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.1") - testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.9.1") + testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.2") + testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.2") + testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.9.2") } // See https://github.com/JetBrains/gradle-intellij-plugin/ intellij { - version.set("2022.3.1") + version.set("2023.1") plugins.set(listOf("yaml")) } tasks.getByName("patchPluginXml") { - sinceBuild.set("223") - untilBuild.set("223.*") + sinceBuild.set("231") + untilBuild.set("231.*") changeNotes.set(""" -

Update to support IntelliJ IDEA 2022.3, 2022.3.*

+

Update to support IntelliJ IDEA 2023.1*

""".trimIndent()) } tasks.getByName("runPluginVerifier") { ideVersions.set(listOf( "2022.3", - "2022.3.1" + "2022.3.1", + "2023.1" )) verifierVersion.set("1.289") } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..41d9927a4d4fb3f96a785543079b8df6723c946b 100644 GIT binary patch delta 20926 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 i_W%EDg1>@4`_NK(#)z|gdCiK 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 92f06b5..8e3a20b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-rc-1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 4f906e0..1b6c787 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -106,80 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" From 2b748e8bb3b121045f56a7bbceed1f4377d78275 Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Tue, 9 May 2023 02:38:48 +0400 Subject: [PATCH 08/29] build: added new versions to check compatibility with IDE --- build.gradle.kts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 9e7894c..651294c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,7 +34,10 @@ tasks.getByName("runPluginVe ideVersions.set(listOf( "2022.3", "2022.3.1", - "2023.1" + "2022.3.2", + "2022.3.3", + "2023.1", + "2023.1.1", )) verifierVersion.set("1.289") } From b9d8c896e55b72b034ab5aaa48a3af17e0ce8951 Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Tue, 9 May 2023 02:40:47 +0400 Subject: [PATCH 09/29] build: intellij-plugin-verifier 1.289 -> 1.297 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 651294c..f1b227f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -39,7 +39,7 @@ tasks.getByName("runPluginVe "2023.1", "2023.1.1", )) - verifierVersion.set("1.289") + verifierVersion.set("1.297") } tasks { From c45b80b09ab5969686842b9406328d2bb2e6dfab Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Tue, 9 May 2023 03:43:51 +0400 Subject: [PATCH 10/29] feat(jackson): added jackson as dependency In 2023.1 YAMLFactory was removed --- build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index f1b227f..284116b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,6 +12,10 @@ repositories { } dependencies { + implementation("com.fasterxml.jackson.core:jackson-core:2.15.0") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.0") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.0") + testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.2") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.2") testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.9.2") From f400904a8714ae9fe3eb4e2ed9a497b33d6c986a Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Tue, 9 May 2023 03:45:44 +0400 Subject: [PATCH 11/29] fix(PR): revert sinceBuild to 223 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 284116b..938b24d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,7 +27,7 @@ intellij { plugins.set(listOf("yaml")) } tasks.getByName("patchPluginXml") { - sinceBuild.set("231") + sinceBuild.set("223") untilBuild.set("231.*") changeNotes.set("""

Update to support IntelliJ IDEA 2023.1*

From f75988e4754fac3fdebc7fd5749400d8709a8387 Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Tue, 9 May 2023 04:51:42 +0400 Subject: [PATCH 12/29] build: gradle 8.1.1 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8e3a20b..fae0804 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-rc-1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 2fd39aa9d03bddf22872d4b48ea9b10aa4e4ca04 Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Tue, 9 May 2023 04:52:13 +0400 Subject: [PATCH 13/29] release: 2.1.0+jre17 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 938b24d..cbf91dd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "com.asyncapi.plugin.idea" -version = "2.0.1+jre17" +version = "2.1.0+jre17" repositories { mavenCentral() From 5686f00c331a5fdaddc703cc5c6c9716f751dc81 Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Wed, 2 Aug 2023 00:50:22 +0400 Subject: [PATCH 14/29] feat: IDEA 2023.2 --- build.gradle.kts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index cbf91dd..67989ea 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,14 +23,14 @@ dependencies { // See https://github.com/JetBrains/gradle-intellij-plugin/ intellij { - version.set("2023.1") + version.set("2023.2") plugins.set(listOf("yaml")) } tasks.getByName("patchPluginXml") { sinceBuild.set("223") - untilBuild.set("231.*") + untilBuild.set("232.*") changeNotes.set(""" -

Update to support IntelliJ IDEA 2023.1*

+

Update to support IntelliJ IDEA 2023.2*

""".trimIndent()) } @@ -42,6 +42,11 @@ tasks.getByName("runPluginVe "2022.3.3", "2023.1", "2023.1.1", + "2023.1.2", + "2023.1.3", + "2023.1.4", + "2023.1.5", + "2023.2", )) verifierVersion.set("1.297") } From 6e5efb51092dce248397edf41a1de6d03f459d47 Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Wed, 2 Aug 2023 02:49:53 +0400 Subject: [PATCH 15/29] build: gradle-intellij-plugin 1.13.3 -> 1.15.0 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 67989ea..0ce7261 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("org.jetbrains.intellij") version "1.13.3" + id("org.jetbrains.intellij") version "1.15.0" java kotlin("jvm") version "1.8.10" } From bf4d2b7227adfa7ad8dae8c3af7b32597e655c3e Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Wed, 2 Aug 2023 02:52:48 +0400 Subject: [PATCH 16/29] build: intellij-plugin-verifier 1.297 -> 1.301 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0ce7261..dceceb1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -48,7 +48,7 @@ tasks.getByName("runPluginVe "2023.1.5", "2023.2", )) - verifierVersion.set("1.297") + verifierVersion.set("1.301") } tasks { From c05aa32e69738ccf337b670e4db327ff48d8021b Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Wed, 2 Aug 2023 03:08:08 +0400 Subject: [PATCH 17/29] release: 2.2.0 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index dceceb1..72c879e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "com.asyncapi.plugin.idea" -version = "2.1.0+jre17" +version = "2.2.0+jre17" repositories { mavenCentral() From 03717f0498d574fdc593729f1af237b3dfcfebaf Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Thu, 3 Aug 2023 23:51:45 +0400 Subject: [PATCH 18/29] feat: new icons - plugin icon - create specification - file type - completion variants --- src/main/resources/META-INF/pluginIcon.svg | 64 +++++++++++++++-- .../resources/META-INF/pluginIcon_dark.svg | 64 +++++++++++++++-- src/main/resources/icons/asyncapi.png | Bin 608 -> 0 bytes src/main/resources/icons/asyncapi.svg | 67 +++++++++++++++--- 4 files changed, 174 insertions(+), 21 deletions(-) delete mode 100644 src/main/resources/icons/asyncapi.png diff --git a/src/main/resources/META-INF/pluginIcon.svg b/src/main/resources/META-INF/pluginIcon.svg index 7fabbd7..6624f15 100644 --- a/src/main/resources/META-INF/pluginIcon.svg +++ b/src/main/resources/META-INF/pluginIcon.svg @@ -1,6 +1,58 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/META-INF/pluginIcon_dark.svg b/src/main/resources/META-INF/pluginIcon_dark.svg index 7fabbd7..6624f15 100644 --- a/src/main/resources/META-INF/pluginIcon_dark.svg +++ b/src/main/resources/META-INF/pluginIcon_dark.svg @@ -1,6 +1,58 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/icons/asyncapi.png b/src/main/resources/icons/asyncapi.png deleted file mode 100644 index 71e5362a181025da9bc3a5743f1bf32f94e80a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)g9ua@NNkPj-Y(SZnctOH8>Aj~pSGquR(SwVS9GEWF4Gj+#qU}i;FWL*neLbhKH z+b{r#?hfA7I&_Vyui~O;9+Mc~4D zHIpkLx$Le=;gcEq`9ij1M%%&!=;&1UFT${n{5%eQQD|QQGwp(C6~^lz?`zG;hwVmL zGO3&1@lABc0xEs1G;WDKs+Pcb<7dNgmp0XYY!W;QOP9Q}q{FtlgZaeo - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From a3dac6a33f88e40004c371f57cad010a309fa72c Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Fri, 4 Aug 2023 00:26:57 +0400 Subject: [PATCH 19/29] feat: new action names - action id: asyncapi.createSchema -> asyncapi.createSpecification - rename CreateAsyncAPISchema -> CreateAsyncAPISpecification - replace AsyncAPI Schema -> AsyncAPI Specification - replace Create a AsyncAPI schema -> Create AsyncAPI specification - replace AsyncAPI schema (yaml) -> AsyncAPI 2 (.yaml) - replace AsyncAPI schema (json) -> AsyncAPI 3 (.json) --- ...syncAPISchema.kt => CreateAsyncAPISpecification.kt} | 10 +++++----- src/main/resources/META-INF/plugin.xml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) rename src/main/kotlin/com/asyncapi/plugin/idea/actions/{CreateAsyncAPISchema.kt => CreateAsyncAPISpecification.kt} (68%) diff --git a/src/main/kotlin/com/asyncapi/plugin/idea/actions/CreateAsyncAPISchema.kt b/src/main/kotlin/com/asyncapi/plugin/idea/actions/CreateAsyncAPISpecification.kt similarity index 68% rename from src/main/kotlin/com/asyncapi/plugin/idea/actions/CreateAsyncAPISchema.kt rename to src/main/kotlin/com/asyncapi/plugin/idea/actions/CreateAsyncAPISpecification.kt index 19e7e99..ac61c1a 100644 --- a/src/main/kotlin/com/asyncapi/plugin/idea/actions/CreateAsyncAPISchema.kt +++ b/src/main/kotlin/com/asyncapi/plugin/idea/actions/CreateAsyncAPISpecification.kt @@ -10,17 +10,17 @@ import com.intellij.psi.PsiDirectory /** * @author Pavel Bodiachevskii */ -class CreateAsyncAPISchema: CreateFileFromTemplateAction( - "AsyncAPI schema", - "Create a AsyncAPI schema from the specified template", +class CreateAsyncAPISpecification: CreateFileFromTemplateAction( + "AsyncAPI Specification", + "Create AsyncAPI specification from the specified template", Icons.ASYNCAPI_ICON ), DumbAware { override fun buildDialog(project: Project, directory: PsiDirectory, builder: CreateFileFromTemplateDialog.Builder) { builder .setTitle("New API Specification") - .addKind("AsyncAPI schema (yaml)", Icons.ASYNCAPI_ICON, "AsyncAPI schema (yaml).yaml") - .addKind("AsyncAPI schema (json)", Icons.ASYNCAPI_ICON, "AsyncAPI schema (json).json") + .addKind("AsyncAPI 2 (.yaml)", Icons.ASYNCAPI_ICON, "AsyncAPI schema (yaml).yaml") + .addKind("AsyncAPI 2 (.json)", Icons.ASYNCAPI_ICON, "AsyncAPI schema (json).json") } override fun getActionName(directory: PsiDirectory?, newName: String, templateName: String?): String { diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index fa1bcce..738932e 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -61,7 +61,7 @@ - + From 1af89b4683f2c5d953fc7005b56b532d0b5daeb6 Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Fri, 1 Sep 2023 03:04:37 +0400 Subject: [PATCH 20/29] feat: AsyncAPI 2.6.0 --- .../idea/_core/AsyncAPISchemaHtmlRenderer.kt | 4 +- .../idea/_core/AsyncAPISchemaRecognizer.kt | 2 +- src/main/resources/schema/asyncapi-2.6.0.json | 3180 +++++++++++++++++ ...min.css => default(1.0.0-next.48).min.css} | 0 src/main/resources/ui/index(1.0.0-next.43).js | 45 - src/main/resources/ui/index(1.0.0-next.48).js | 51 + .../_core/AsyncAPIJsonSchemaProviderTest.kt | 33 + .../_core/AsyncAPISchemaRecognizerTest.kt | 26 + .../plugin/idea/_core/JsonFileXPathTest.kt | 4 + .../plugin/idea/_core/YamlFileXPathTest.kt | 4 + ...cAPISchemaCompletionContributorJsonTest.kt | 11 + ...cAPISchemaCompletionContributorYamlTest.kt | 17 + .../AsyncAPIJsonSchemaInspectionTest.kt | 13 + .../v2_6_0/JsonReferenceVariantsTest.kt | 165 + .../v2_6_0/YamlReferenceVariantsTest.kt | 165 + src/test/resources/asyncapi-2.6.0.json | 65 + src/test/resources/asyncapi-2.6.0.yaml | 41 + .../json/completion/2.6.0/\"c\".json" | 4 + .../testData/json/completion/2.6.0/c.json | 4 + ...-> messages -> UserSignedUp -> \"p\".json" | 66 + ...s -> messages -> UserSignedUp -> \"p.json" | 66 + ...ents -> messages -> UserSignedUp -> p.json | 66 + .../json/completion/2.6.0/info -> \"i\".json" | 6 + .../json/completion/2.6.0/info -> i.json | 6 + .../json/inspection/2.6.0/extra keys.json | 67 + .../inspection/2.6.0/without channels.json | 39 + .../json/reference/completion/2.6.0/$^^.json | 65 + .../json/reference/completion/2.6.0/123.json | 65 + .../json/reference/completion/2.6.0/_.json | 65 + .../json/reference/completion/2.6.0/co.json | 65 + .../json/reference/completion/2.6.0/comp.json | 65 + .../completion/2.6.0/components.json | 65 + .../completion/2.6.0/components_m.json | 65 + .../2.6.0/components_messages_u.json | 65 + .../json/reference/completion/2.6.0/i.json | 65 + .../json/reference/completion/2.6.0/in.json | 65 + .../json/reference/completion/2.6.0/inf.json | 65 + .../reference/completion/2.6.0/qwerty.json | 65 + .../json/reference/completion/2.6.0/ref.json | 3 + .../reference/completion/2.6.0/reference.json | 65 + .../yaml/completion/2.6.0/\"c\".yaml" | 3 + .../testData/yaml/completion/2.6.0/c.yaml | 3 + ...-> messages -> UserSignedUp -> \"p\".yaml" | 42 + ...s -> messages -> UserSignedUp -> \"p.yaml" | 42 + ...ents -> messages -> UserSignedUp -> p.yaml | 42 + .../yaml/completion/2.6.0/info -> \"i\".yaml" | 4 + .../yaml/completion/2.6.0/info -> i.yaml | 4 + .../yaml/reference/completion/2.6.0/$^^.yaml | 41 + .../yaml/reference/completion/2.6.0/123.yaml | 41 + .../yaml/reference/completion/2.6.0/_.yaml | 41 + .../yaml/reference/completion/2.6.0/co.yaml | 41 + .../yaml/reference/completion/2.6.0/comp.yaml | 41 + .../completion/2.6.0/components.yaml | 41 + .../completion/2.6.0/components_m.yaml | 41 + .../2.6.0/components_messages_u.yaml | 41 + .../yaml/reference/completion/2.6.0/i.yaml | 41 + .../yaml/reference/completion/2.6.0/in.yaml | 41 + .../yaml/reference/completion/2.6.0/inf.yaml | 41 + .../reference/completion/2.6.0/qwerty.yaml | 41 + .../yaml/reference/completion/2.6.0/ref.yaml | 2 + .../reference/completion/2.6.0/reference.yaml | 41 + 61 files changed, 5625 insertions(+), 48 deletions(-) create mode 100644 src/main/resources/schema/asyncapi-2.6.0.json rename src/main/resources/ui/{default(1.0.0-next.43).min.css => default(1.0.0-next.48).min.css} (100%) delete mode 100644 src/main/resources/ui/index(1.0.0-next.43).js create mode 100644 src/main/resources/ui/index(1.0.0-next.48).js create mode 100644 src/test/kotlin/com/asyncapi/plugin/idea/completion/v2_6_0/AsyncAPISchemaCompletionContributorJsonTest.kt create mode 100644 src/test/kotlin/com/asyncapi/plugin/idea/completion/v2_6_0/AsyncAPISchemaCompletionContributorYamlTest.kt create mode 100644 src/test/kotlin/com/asyncapi/plugin/idea/inspection/v2_6_0/AsyncAPIJsonSchemaInspectionTest.kt create mode 100644 src/test/kotlin/com/asyncapi/plugin/idea/psi/reference/v2_6_0/JsonReferenceVariantsTest.kt create mode 100644 src/test/kotlin/com/asyncapi/plugin/idea/psi/reference/v2_6_0/YamlReferenceVariantsTest.kt create mode 100644 src/test/resources/asyncapi-2.6.0.json create mode 100644 src/test/resources/asyncapi-2.6.0.yaml create mode 100644 "src/test/testData/json/completion/2.6.0/\"c\".json" create mode 100644 src/test/testData/json/completion/2.6.0/c.json create mode 100644 "src/test/testData/json/completion/2.6.0/components -> messages -> UserSignedUp -> \"p\".json" create mode 100644 "src/test/testData/json/completion/2.6.0/components -> messages -> UserSignedUp -> \"p.json" create mode 100644 src/test/testData/json/completion/2.6.0/components -> messages -> UserSignedUp -> p.json create mode 100644 "src/test/testData/json/completion/2.6.0/info -> \"i\".json" create mode 100644 src/test/testData/json/completion/2.6.0/info -> i.json create mode 100644 src/test/testData/json/inspection/2.6.0/extra keys.json create mode 100644 src/test/testData/json/inspection/2.6.0/without channels.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/$^^.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/123.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/_.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/co.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/comp.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/components.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/components_m.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/components_messages_u.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/i.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/in.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/inf.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/qwerty.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/ref.json create mode 100644 src/test/testData/json/reference/completion/2.6.0/reference.json create mode 100644 "src/test/testData/yaml/completion/2.6.0/\"c\".yaml" create mode 100644 src/test/testData/yaml/completion/2.6.0/c.yaml create mode 100644 "src/test/testData/yaml/completion/2.6.0/components -> messages -> UserSignedUp -> \"p\".yaml" create mode 100644 "src/test/testData/yaml/completion/2.6.0/components -> messages -> UserSignedUp -> \"p.yaml" create mode 100644 src/test/testData/yaml/completion/2.6.0/components -> messages -> UserSignedUp -> p.yaml create mode 100644 "src/test/testData/yaml/completion/2.6.0/info -> \"i\".yaml" create mode 100644 src/test/testData/yaml/completion/2.6.0/info -> i.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/$^^.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/123.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/_.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/co.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/comp.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/components.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/components_m.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/components_messages_u.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/i.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/in.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/inf.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/qwerty.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/ref.yaml create mode 100644 src/test/testData/yaml/reference/completion/2.6.0/reference.yaml diff --git a/src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISchemaHtmlRenderer.kt b/src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISchemaHtmlRenderer.kt index 93fbad8..3e34221 100644 --- a/src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISchemaHtmlRenderer.kt +++ b/src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISchemaHtmlRenderer.kt @@ -28,8 +28,8 @@ class AsyncAPISchemaHtmlRenderer { private val urlProvider = service() private val schemaTemplateUrl = "/ui/index.html" - private val schemaTemplateCssUrl = "default(1.0.0-next.43).min.css" - private val schemaTemplateJsUrl = "index(1.0.0-next.43).js" + private val schemaTemplateCssUrl = "default(1.0.0-next.48).min.css" + private val schemaTemplateJsUrl = "index(1.0.0-next.48).js" fun render(request: FullHttpRequest, schemaUrl: String?): String { schemaUrl ?: return "schema: not found." diff --git a/src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISchemaRecognizer.kt b/src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISchemaRecognizer.kt index 7a525d3..a54bfde 100644 --- a/src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISchemaRecognizer.kt +++ b/src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISchemaRecognizer.kt @@ -46,7 +46,7 @@ class AsyncAPISchemaRecognizer { fun isSupported(version: String?): Boolean { return when (version) { - "2.0.0", "2.1.0", "2.2.0", "2.3.0", "2.4.0", "2.5.0" -> true + "2.0.0", "2.1.0", "2.2.0", "2.3.0", "2.4.0", "2.5.0", "2.6.0" -> true else -> false } } diff --git a/src/main/resources/schema/asyncapi-2.6.0.json b/src/main/resources/schema/asyncapi-2.6.0.json new file mode 100644 index 0000000..de200c4 --- /dev/null +++ b/src/main/resources/schema/asyncapi-2.6.0.json @@ -0,0 +1,3180 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "title": "AsyncAPI 2.6.0 schema.", + "type": "object", + "required": [ + "asyncapi", + "info", + "channels" + ], + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "asyncapi": { + "type": "string", + "enum": [ + "2.6.0" + ], + "description": "The AsyncAPI specification version of this document." + }, + "id": { + "type": "string", + "description": "A unique id representing the application.", + "format": "uri" + }, + "info": { + "$ref": "#/definitions/info" + }, + "servers": { + "$ref": "#/definitions/servers" + }, + "defaultContentType": { + "type": "string" + }, + "channels": { + "$ref": "#/definitions/channels" + }, + "components": { + "$ref": "#/definitions/components" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/definitions/tag" + }, + "uniqueItems": true + }, + "externalDocs": { + "$ref": "#/definitions/externalDocs" + } + }, + "definitions": { + "specificationExtension": { + "description": "Any property starting with x- is valid.", + "additionalProperties": true, + "additionalItems": true + }, + "info": { + "type": "object", + "description": "The object provides metadata about the API. The metadata can be used by the clients if needed.", + "required": [ + "version", + "title" + ], + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "title": { + "type": "string", + "description": "A unique and precise title of the API." + }, + "version": { + "type": "string", + "description": "A semantic version number of the API." + }, + "description": { + "type": "string", + "description": "A longer description of the API. Should be different from the title. CommonMark is allowed." + }, + "termsOfService": { + "type": "string", + "description": "A URL to the Terms of Service for the API. MUST be in the format of a URL.", + "format": "uri" + }, + "contact": { + "$ref": "#/definitions/contact" + }, + "license": { + "$ref": "#/definitions/license" + } + }, + "examples": [ + { + "title": "AsyncAPI Sample App", + "description": "This is a sample server.", + "termsOfService": "https://asyncapi.org/terms/", + "contact": { + "name": "API Support", + "url": "https://www.example.com/support", + "email": "support@example.com" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + } + } + ] + }, + "contact": { + "type": "object", + "description": "Contact information for the exposed API.", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The identifying name of the contact person/organization." + }, + "url": { + "type": "string", + "description": "The URL pointing to the contact information.", + "format": "uri" + }, + "email": { + "type": "string", + "description": "The email address of the contact person/organization.", + "format": "email" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "examples": [ + { + "name": "API Support", + "url": "https://www.example.com/support", + "email": "support@example.com" + } + ] + }, + "license": { + "type": "object", + "required": [ + "name" + ], + "description": "License information for the exposed API.", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the license type. It's encouraged to use an OSI compatible license." + }, + "url": { + "type": "string", + "description": "The URL pointing to the license.", + "format": "uri" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "examples": [ + { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + } + ] + }, + "servers": { + "description": "The Servers Object is a map of Server Objects.", + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/server" + } + ] + }, + "examples": [ + { + "development": { + "url": "development.gigantic-server.com", + "description": "Development server", + "protocol": "amqp", + "protocolVersion": "0.9.1", + "tags": [ + { + "name": "env:development", + "description": "This environment is meant for developers to run their own tests" + } + ] + }, + "staging": { + "url": "staging.gigantic-server.com", + "description": "Staging server", + "protocol": "amqp", + "protocolVersion": "0.9.1", + "tags": [ + { + "name": "env:staging", + "description": "This environment is a replica of the production environment" + } + ] + }, + "production": { + "url": "api.gigantic-server.com", + "description": "Production server", + "protocol": "amqp", + "protocolVersion": "0.9.1", + "tags": [ + { + "name": "env:production", + "description": "This environment is the live environment available for final users" + } + ] + } + } + ] + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "properties": { + "$ref": { + "$ref": "#/definitions/ReferenceObject" + } + } + }, + "ReferenceObject": { + "type": "string", + "description": "A simple object to allow referencing other components in the specification, internally and externally.", + "format": "uri-reference", + "examples": [ + { + "$ref": "#/components/schemas/Pet" + } + ] + }, + "server": { + "type": "object", + "description": "An object representing a message broker, a server or any other kind of computer program capable of sending and/or receiving data", + "required": [ + "url", + "protocol" + ], + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "url": { + "type": "string", + "description": "A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the AsyncAPI document is being served." + }, + "description": { + "type": "string", + "description": "An optional string describing the host designated by the URL. CommonMark syntax MAY be used for rich text representation." + }, + "protocol": { + "type": "string", + "description": "The protocol this URL supports for connection. Supported protocol include, but are not limited to: amqp, amqps, http, https, ibmmq, jms, kafka, kafka-secure, anypointmq, mqtt, secure-mqtt, solace, stomp, stomps, ws, wss, mercure, googlepubsub." + }, + "protocolVersion": { + "type": "string", + "description": "The version of the protocol used for connection. For instance: AMQP 0.9.1, HTTP 2.0, Kafka 1.0.0, etc." + }, + "variables": { + "description": "A map between a variable name and its value. The value is used for substitution in the server's URL template.", + "$ref": "#/definitions/serverVariables" + }, + "security": { + "type": "array", + "description": "A declaration of which security mechanisms can be used with this server. The list of values includes alternative security requirement objects that can be used. ", + "items": { + "$ref": "#/definitions/SecurityRequirement" + } + }, + "bindings": { + "description": "A map where the keys describe the name of the protocol and the values describe protocol-specific definitions for the server.", + "$ref": "#/definitions/bindingsObject" + }, + "tags": { + "type": "array", + "description": "A list of tags for logical grouping and categorization of servers.", + "items": { + "$ref": "#/definitions/tag" + }, + "uniqueItems": true + } + }, + "examples": [ + { + "url": "development.gigantic-server.com", + "description": "Development server", + "protocol": "kafka", + "protocolVersion": "1.0.0" + } + ] + }, + "serverVariables": { + "type": "object", + "description": "A map between a variable name and its value. The value is used for substitution in the server's URL template.", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/serverVariable" + } + ] + } + }, + "serverVariable": { + "type": "object", + "description": "An object representing a Server Variable for server URL template substitution.", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "enum": { + "type": "array", + "description": "An enumeration of string values to be used if the substitution options are from a limited set.", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "default": { + "type": "string", + "description": "The default value to use for substitution, and to send, if an alternate value is not supplied." + }, + "description": { + "type": "string", + "description": "An optional description for the server variable. " + }, + "examples": { + "type": "array", + "description": "An array of examples of the server variable.", + "items": { + "type": "string" + } + } + } + }, + "SecurityRequirement": { + "type": "object", + "description": "Lists of the required security schemes that can be used to execute an operation", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "examples": [ + { + "petstore_auth": [ + "write:pets", + "read:pets" + ] + } + ] + }, + "bindingsObject": { + "type": "object", + "description": "Map describing protocol-specific definitions for a server.", + "additionalProperties": true, + "properties": { + "http": {}, + "ws": {}, + "amqp": {}, + "amqp1": {}, + "mqtt": {}, + "mqtt5": {}, + "kafka": {}, + "anypointmq": {}, + "nats": {}, + "jms": {}, + "sns": {}, + "sqs": {}, + "stomp": {}, + "redis": {}, + "ibmmq": {}, + "solace": {}, + "googlepubsub": {}, + "pulsar": {} + } + }, + "tag": { + "type": "object", + "description": "Allows adding meta data to a single tag.", + "additionalProperties": false, + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the tag." + }, + "description": { + "type": "string", + "description": "A short description for the tag." + }, + "externalDocs": { + "description": "Additional external documentation for this tag.", + "$ref": "#/definitions/externalDocs" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "examples": [ + { + "name": "user", + "description": "User-related messages" + } + ] + }, + "externalDocs": { + "type": "object", + "additionalProperties": false, + "description": "Allows referencing an external resource for extended documentation.", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string", + "description": "A short description of the target documentation." + }, + "url": { + "type": "string", + "format": "uri", + "description": "The URL for the target documentation. This MUST be in the form of an absolute URL." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "examples": [ + { + "description": "Find more info here", + "url": "https://example.com" + } + ] + }, + "channels": { + "type": "object", + "description": "Holds the relative paths to the individual channel and their operations. Channel paths are relative to servers.", + "propertyNames": { + "type": "string", + "format": "uri-template", + "minLength": 1 + }, + "additionalProperties": { + "$ref": "#/definitions/channelItem" + }, + "examples": [ + { + "user/signedup": { + "subscribe": { + "message": { + "$ref": "#/components/messages/userSignedUp" + } + } + } + } + ] + }, + "channelItem": { + "type": "object", + "description": "Describes the operations available on a single channel.", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "$ref": { + "$ref": "#/definitions/ReferenceObject" + }, + "parameters": { + "$ref": "#/definitions/parameters" + }, + "description": { + "type": "string", + "description": "A description of the channel." + }, + "servers": { + "type": "array", + "description": "The names of the servers on which this channel is available. If absent or empty then this channel must be available on all servers.", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "publish": { + "$ref": "#/definitions/operation" + }, + "subscribe": { + "$ref": "#/definitions/operation" + }, + "deprecated": { + "type": "boolean", + "default": false + }, + "bindings": { + "$ref": "#/definitions/bindingsObject" + } + }, + "examples": [ + { + "description": "This channel is used to exchange messages about users signing up", + "subscribe": { + "summary": "A user signed up.", + "message": { + "description": "A longer description of the message", + "payload": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/user" + }, + "signup": { + "$ref": "#/components/schemas/signup" + } + } + } + } + }, + "bindings": { + "amqp": { + "is": "queue", + "queue": { + "exclusive": true + } + } + } + }, + { + "subscribe": { + "message": { + "oneOf": [ + { + "$ref": "#/components/messages/signup" + }, + { + "$ref": "#/components/messages/login" + } + ] + } + } + }, + { + "description": "This application publishes WebUICommand messages to an AMQP queue on RabbitMQ brokers in the Staging and Production environments.", + "servers": [ + "rabbitmqBrokerInProd", + "rabbitmqBrokerInStaging" + ], + "subscribe": { + "message": { + "$ref": "#/components/messages/WebUICommand" + } + }, + "bindings": { + "amqp": { + "is": "queue" + } + } + } + ] + }, + "parameters": { + "type": "object", + "description": "JSON objects describing reusable channel parameters.", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/parameter" + } + ] + }, + "examples": [ + { + "user/{userId}/signup": { + "parameters": { + "userId": { + "description": "Id of the user.", + "schema": { + "type": "string" + } + } + }, + "subscribe": { + "message": { + "$ref": "#/components/messages/userSignedUp" + } + } + } + } + ] + }, + "parameter": { + "description": "Describes a parameter included in a channel name.", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "description": { + "type": "string", + "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." + }, + "schema": { + "$ref": "#/definitions/schema" + }, + "location": { + "type": "string", + "description": "A runtime expression that specifies the location of the parameter value", + "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" + } + }, + "examples": [ + { + "user/{userId}/signup": { + "parameters": { + "userId": { + "description": "Id of the user.", + "schema": { + "type": "string" + }, + "location": "$message.payload#/user/id" + } + }, + "subscribe": { + "message": { + "$ref": "#/components/messages/userSignedUp" + } + } + } + } + ] + }, + "schema": { + "description": "The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays.", + "allOf": [ + { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + { + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/schema" + }, + { + "type": "boolean" + } + ], + "default": {} + }, + "items": { + "anyOf": [ + { + "$ref": "#/definitions/schema" + }, + { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/schema" + } + } + ], + "default": {} + }, + "allOf": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/schema" + } + }, + "oneOf": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/schema" + } + }, + "anyOf": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/schema" + } + }, + "not": { + "$ref": "#/definitions/schema" + }, + "properties": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/schema" + }, + "default": {} + }, + "patternProperties": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/schema" + }, + "default": {} + }, + "propertyNames": { + "$ref": "#/definitions/schema" + }, + "contains": { + "$ref": "#/definitions/schema" + }, + "discriminator": { + "type": "string", + "description": "Adds support for polymorphism. The discriminator is the schema property name that is used to differentiate between other schema that inherit this schema. " + }, + "externalDocs": { + "description": "Additional external documentation for this schema.", + "$ref": "#/definitions/externalDocs" + }, + "deprecated": { + "type": "boolean", + "default": false, + "description": "Specifies that a schema is deprecated and SHOULD be transitioned out of usage" + } + } + } + ], + "examples": [ + { + "type": "string", + "format": "email" + }, + { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "address": { + "$ref": "#/components/schemas/Address" + }, + "age": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + } + ] + }, + "json-schema-draft-07-schema": { + "title": "Core schema meta-schema", + "definitions": { + "schemaArray": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/json-schema-draft-07-schema" + } + }, + "nonNegativeInteger": { + "type": "integer", + "minimum": 0 + }, + "nonNegativeIntegerDefault0": { + "allOf": [ + { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/nonNegativeInteger" + }, + { + "default": 0 + } + ] + }, + "simpleTypes": { + "enum": [ + "array", + "boolean", + "integer", + "null", + "number", + "object", + "string" + ] + }, + "stringArray": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "default": [] + } + }, + "type": [ + "object", + "boolean" + ], + "properties": { + "$id": { + "type": "string", + "format": "uri-reference" + }, + "$schema": { + "type": "string", + "format": "uri" + }, + "$ref": { + "type": "string", + "format": "uri-reference" + }, + "$comment": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "default": true, + "readOnly": { + "type": "boolean", + "default": false + }, + "writeOnly": { + "type": "boolean", + "default": false + }, + "examples": { + "type": "array", + "items": true + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "maximum": { + "type": "number" + }, + "exclusiveMaximum": { + "type": "number" + }, + "minimum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "number" + }, + "maxLength": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/nonNegativeInteger" + }, + "minLength": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/nonNegativeIntegerDefault0" + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "additionalItems": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "items": { + "anyOf": [ + { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/schemaArray" + } + ], + "default": true + }, + "maxItems": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/nonNegativeInteger" + }, + "minItems": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/nonNegativeIntegerDefault0" + }, + "uniqueItems": { + "type": "boolean", + "default": false + }, + "contains": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "maxProperties": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/nonNegativeInteger" + }, + "minProperties": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/nonNegativeIntegerDefault0" + }, + "required": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/stringArray" + }, + "additionalProperties": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "definitions": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "default": {} + }, + "properties": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "default": {} + }, + "patternProperties": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "propertyNames": { + "format": "regex" + }, + "default": {} + }, + "dependencies": { + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/stringArray" + } + ] + } + }, + "propertyNames": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "const": true, + "enum": { + "type": "array", + "items": true, + "minItems": 1, + "uniqueItems": true + }, + "type": { + "anyOf": [ + { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/simpleTypes" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/simpleTypes" + }, + "minItems": 1, + "uniqueItems": true + } + ] + }, + "format": { + "type": "string" + }, + "contentMediaType": { + "type": "string" + }, + "contentEncoding": { + "type": "string" + }, + "if": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "then": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "else": { + "$ref": "#/definitions/json-schema-draft-07-schema" + }, + "allOf": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/schemaArray" + }, + "anyOf": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/schemaArray" + }, + "oneOf": { + "$ref": "#/definitions/json-schema-draft-07-schema/definitions/schemaArray" + }, + "not": { + "$ref": "#/definitions/json-schema-draft-07-schema" + } + }, + "default": true + }, + "operation": { + "type": "object", + "description": "Describes a publish or a subscribe operation. This provides a place to document how and why messages are sent and received.", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "traits": { + "type": "array", + "description": "A list of traits to apply to the operation object.", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/operationTrait" + } + ] + } + }, + "summary": { + "type": "string", + "description": "A short summary of what the operation is about." + }, + "description": { + "type": "string", + "description": "A verbose explanation of the operation." + }, + "security": { + "type": "array", + "description": "A declaration of which security mechanisms are associated with this operation.", + "items": { + "$ref": "#/definitions/SecurityRequirement" + } + }, + "tags": { + "type": "array", + "description": "A list of tags for logical grouping and categorization of operations.", + "items": { + "$ref": "#/definitions/tag" + }, + "uniqueItems": true + }, + "externalDocs": { + "$ref": "#/definitions/externalDocs" + }, + "operationId": { + "type": "string" + }, + "bindings": { + "$ref": "#/definitions/bindingsObject" + }, + "message": { + "$ref": "#/definitions/message" + } + }, + "examples": [ + { + "user/signedup": { + "subscribe": { + "message": { + "$ref": "#/components/messages/userSignedUp" + } + } + } + } + ] + }, + "operationTrait": { + "type": "object", + "description": "Describes a trait that MAY be applied to an Operation Object.", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "summary": { + "type": "string", + "description": "A short summary of what the operation is about." + }, + "description": { + "type": "string", + "description": "A verbose explanation of the operation." + }, + "tags": { + "type": "array", + "description": "A list of tags for logical grouping and categorization of operations.", + "items": { + "$ref": "#/definitions/tag" + }, + "uniqueItems": true + }, + "externalDocs": { + "$ref": "#/definitions/externalDocs" + }, + "operationId": { + "type": "string", + "description": "Unique string used to identify the operation. The id MUST be unique among all operations described in the API." + }, + "security": { + "type": "array", + "description": "A declaration of which security mechanisms are associated with this operation. ", + "items": { + "$ref": "#/definitions/SecurityRequirement" + } + }, + "bindings": { + "$ref": "#/definitions/bindingsObject" + } + }, + "examples": [ + { + "bindings": { + "amqp": { + "ack": false + } + } + } + ] + }, + "message": { + "description": "Describes a message received on a given channel and operation.", + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "oneOf": [ + { + "type": "object", + "required": [ + "oneOf" + ], + "additionalProperties": false, + "properties": { + "oneOf": { + "type": "array", + "items": { + "$ref": "#/definitions/message" + } + } + } + }, + { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "schemaFormat": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "headers": { + "allOf": [ + { + "$ref": "#/definitions/schema" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "messageId": { + "type": "string" + }, + "payload": {}, + "correlationId": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/correlationId" + } + ] + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/definitions/tag" + }, + "uniqueItems": true + }, + "summary": { + "type": "string", + "description": "A brief summary of the message." + }, + "name": { + "type": "string", + "description": "Name of the message." + }, + "title": { + "type": "string", + "description": "A human-friendly title for the message." + }, + "description": { + "type": "string", + "description": "A longer description of the message. CommonMark is allowed." + }, + "externalDocs": { + "$ref": "#/definitions/externalDocs" + }, + "deprecated": { + "type": "boolean", + "default": false + }, + "examples": { + "type": "array", + "description": "List of examples.", + "items": { + "type": "object", + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "name": { + "type": "string", + "description": "Machine readable name of the message example." + }, + "summary": { + "type": "string", + "description": "A brief summary of the message example." + }, + "headers": { + "type": "object", + "description": "Schema definition of the application headers." + }, + "payload": { + "description": "Definition of the message payload. It can be of any type" + } + } + } + }, + "bindings": { + "$ref": "#/definitions/bindingsObject" + }, + "traits": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/messageTrait" + } + ] + } + } + }, + "allOf": [ + { + "if": { + "not": { + "required": [ + "schemaFormat" + ] + } + }, + "then": { + "properties": { + "payload": { + "$ref": "#/definitions/schema" + } + } + } + }, + { + "if": { + "required": [ + "schemaFormat" + ], + "properties": { + "schemaFormat": { + "enum": [ + "application/vnd.aai.asyncapi;version=2.0.0", + "application/vnd.aai.asyncapi+json;version=2.0.0", + "application/vnd.aai.asyncapi+yaml;version=2.0.0", + "application/vnd.aai.asyncapi;version=2.1.0", + "application/vnd.aai.asyncapi+json;version=2.1.0", + "application/vnd.aai.asyncapi+yaml;version=2.1.0", + "application/vnd.aai.asyncapi;version=2.2.0", + "application/vnd.aai.asyncapi+json;version=2.2.0", + "application/vnd.aai.asyncapi+yaml;version=2.2.0", + "application/vnd.aai.asyncapi;version=2.3.0", + "application/vnd.aai.asyncapi+json;version=2.3.0", + "application/vnd.aai.asyncapi+yaml;version=2.3.0", + "application/vnd.aai.asyncapi;version=2.4.0", + "application/vnd.aai.asyncapi+json;version=2.4.0", + "application/vnd.aai.asyncapi+yaml;version=2.4.0", + "application/vnd.aai.asyncapi;version=2.5.0", + "application/vnd.aai.asyncapi+json;version=2.5.0", + "application/vnd.aai.asyncapi+yaml;version=2.5.0", + "application/vnd.aai.asyncapi;version=2.6.0", + "application/vnd.aai.asyncapi+json;version=2.6.0", + "application/vnd.aai.asyncapi+yaml;version=2.6.0" + ] + } + } + }, + "then": { + "properties": { + "payload": { + "$ref": "#/definitions/schema" + } + } + } + }, + { + "if": { + "required": [ + "schemaFormat" + ], + "properties": { + "schemaFormat": { + "enum": [ + "application/schema+json;version=draft-07", + "application/schema+yaml;version=draft-07" + ] + } + } + }, + "then": { + "properties": { + "payload": { + "$ref": "#/definitions/json-schema-draft-07-schema" + } + } + } + }, + { + "if": { + "required": [ + "schemaFormat" + ], + "properties": { + "schemaFormat": { + "enum": [ + "application/vnd.oai.openapi;version=3.0.0", + "application/vnd.oai.openapi+json;version=3.0.0", + "application/vnd.oai.openapi+yaml;version=3.0.0" + ] + } + } + }, + "then": { + "properties": { + "payload": { + "$ref": "#/definitions/openapiSchema_3_0" + } + } + } + }, + { + "if": { + "required": [ + "schemaFormat" + ], + "properties": { + "schemaFormat": { + "enum": [ + "application/vnd.apache.avro;version=1.9.0", + "application/vnd.apache.avro+json;version=1.9.0", + "application/vnd.apache.avro+yaml;version=1.9.0" + ] + } + } + }, + "then": { + "properties": { + "payload": { + "$ref": "#/definitions/avroSchema_v1" + } + } + } + } + ] + } + ] + } + ], + "examples": [ + { + "messageId": "userSignup", + "name": "UserSignup", + "title": "User signup", + "summary": "Action to sign a user up.", + "description": "A longer description", + "contentType": "application/json", + "tags": [ + { + "name": "user" + }, + { + "name": "signup" + }, + { + "name": "register" + } + ], + "headers": { + "type": "object", + "properties": { + "correlationId": { + "description": "Correlation ID set by application", + "type": "string" + }, + "applicationInstanceId": { + "description": "Unique identifier for a given instance of the publishing application", + "type": "string" + } + } + }, + "payload": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/userCreate" + }, + "signup": { + "$ref": "#/components/schemas/signup" + } + } + }, + "correlationId": { + "description": "Default Correlation ID", + "location": "$message.header#/correlationId" + }, + "traits": [ + { + "$ref": "#/components/messageTraits/commonHeaders" + } + ], + "examples": [ + { + "name": "SimpleSignup", + "summary": "A simple UserSignup example message", + "headers": { + "correlationId": "my-correlation-id", + "applicationInstanceId": "myInstanceId" + }, + "payload": { + "user": { + "someUserKey": "someUserValue" + }, + "signup": { + "someSignupKey": "someSignupValue" + } + } + } + ] + }, + { + "messageId": "userSignup", + "name": "UserSignup", + "title": "User signup", + "summary": "Action to sign a user up.", + "description": "A longer description", + "tags": [ + { + "name": "user" + }, + { + "name": "signup" + }, + { + "name": "register" + } + ], + "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "payload": { + "$ref": "path/to/user-create.avsc#/UserCreate" + } + } + ] + }, + "correlationId": { + "type": "object", + "description": "An object that specifies an identifier at design time that can used for message tracing and correlation.", + "required": [ + "location" + ], + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "description": { + "type": "string", + "description": "A optional description of the correlation ID. GitHub Flavored Markdown is allowed." + }, + "location": { + "type": "string", + "description": "A runtime expression that specifies the location of the correlation ID", + "pattern": "^\\$message\\.(header|payload)#(\\/(([^\\/~])|(~[01]))*)*" + } + }, + "examples": [ + { + "description": "Default Correlation ID", + "location": "$message.header#/correlationId" + } + ] + }, + "messageTrait": { + "type": "object", + "description": "Describes a trait that MAY be applied to a Message Object.", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "schemaFormat": { + "type": "string", + "description": "A string containing the name of the schema format/language used to define the message payload." + }, + "contentType": { + "type": "string", + "description": "The content type to use when encoding/decoding a message's payload." + }, + "headers": { + "description": "Schema definition of the application headers.", + "allOf": [ + { + "$ref": "#/definitions/schema" + }, + { + "properties": { + "type": { + "const": "object" + } + } + } + ] + }, + "messageId": { + "type": "string", + "description": "Unique string used to identify the message. The id MUST be unique among all messages described in the API." + }, + "correlationId": { + "description": "Definition of the correlation ID used for message tracing or matching.", + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/correlationId" + } + ] + }, + "tags": { + "type": "array", + "description": "A list of tags for logical grouping and categorization of messages.", + "items": { + "$ref": "#/definitions/tag" + }, + "uniqueItems": true + }, + "summary": { + "type": "string", + "description": "A brief summary of the message." + }, + "name": { + "type": "string", + "description": "Name of the message." + }, + "title": { + "type": "string", + "description": "A human-friendly title for the message." + }, + "description": { + "type": "string", + "description": "A longer description of the message. CommonMark is allowed." + }, + "externalDocs": { + "$ref": "#/definitions/externalDocs" + }, + "deprecated": { + "type": "boolean", + "default": false + }, + "examples": { + "type": "array", + "description": "List of examples.", + "items": { + "type": "object", + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "payload" + ] + }, + { + "required": [ + "headers" + ] + } + ], + "properties": { + "name": { + "type": "string", + "description": "Machine readable name of the message example." + }, + "summary": { + "type": "string", + "description": "A brief summary of the message example." + }, + "headers": { + "type": "object", + "description": "Schema definition of the application headers." + }, + "payload": { + "description": "Definition of the message payload. It can be of any type" + } + } + } + }, + "bindings": { + "$ref": "#/definitions/bindingsObject" + } + }, + "examples": [ + { + "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "contentType": "application/json" + } + ] + }, + "openapiSchema_3_0": { + "type": "object", + "definitions": { + "ExternalDocumentation": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri-reference" + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + }, + "Discriminator": { + "type": "object", + "required": [ + "propertyName" + ], + "properties": { + "propertyName": { + "type": "string" + }, + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "Reference": { + "type": "object", + "required": [ + "$ref" + ], + "patternProperties": { + "^\\$ref$": { + "type": "string", + "format": "uri-reference" + } + } + }, + "XML": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "attribute": { + "type": "boolean", + "default": false + }, + "wrapped": { + "type": "boolean", + "default": false + } + }, + "patternProperties": { + "^x-": {} + }, + "additionalProperties": false + } + }, + "properties": { + "title": { + "type": "string" + }, + "multipleOf": { + "type": "number", + "exclusiveMinimum": 0 + }, + "maximum": { + "type": "number" + }, + "exclusiveMaximum": { + "type": "boolean", + "default": false + }, + "minimum": { + "type": "number" + }, + "exclusiveMinimum": { + "type": "boolean", + "default": false + }, + "maxLength": { + "type": "integer", + "minimum": 0 + }, + "minLength": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "pattern": { + "type": "string", + "format": "regex" + }, + "maxItems": { + "type": "integer", + "minimum": 0 + }, + "minItems": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "uniqueItems": { + "type": "boolean", + "default": false + }, + "maxProperties": { + "type": "integer", + "minimum": 0 + }, + "minProperties": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "required": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + }, + "enum": { + "type": "array", + "items": true, + "minItems": 1, + "uniqueItems": false + }, + "type": { + "type": "string", + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string" + ] + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/openapiSchema_3_0" + }, + { + "$ref": "#/definitions/openapiSchema_3_0/definitions/Reference" + } + ] + }, + "allOf": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/openapiSchema_3_0" + }, + { + "$ref": "#/definitions/openapiSchema_3_0/definitions/Reference" + } + ] + } + }, + "oneOf": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/openapiSchema_3_0" + }, + { + "$ref": "#/definitions/openapiSchema_3_0/definitions/Reference" + } + ] + } + }, + "anyOf": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/openapiSchema_3_0" + }, + { + "$ref": "#/definitions/openapiSchema_3_0/definitions/Reference" + } + ] + } + }, + "items": { + "oneOf": [ + { + "$ref": "#/definitions/openapiSchema_3_0" + }, + { + "$ref": "#/definitions/openapiSchema_3_0/definitions/Reference" + } + ] + }, + "properties": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/openapiSchema_3_0" + }, + { + "$ref": "#/definitions/openapiSchema_3_0/definitions/Reference" + } + ] + } + }, + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/definitions/openapiSchema_3_0" + }, + { + "$ref": "#/definitions/openapiSchema_3_0/definitions/Reference" + }, + { + "type": "boolean" + } + ], + "default": true + }, + "description": { + "type": "string" + }, + "format": { + "type": "string" + }, + "default": true, + "nullable": { + "type": "boolean", + "default": false + }, + "discriminator": { + "$ref": "#/definitions/openapiSchema_3_0/definitions/Discriminator" + }, + "readOnly": { + "type": "boolean", + "default": false + }, + "writeOnly": { + "type": "boolean", + "default": false + }, + "example": true, + "externalDocs": { + "$ref": "#/definitions/openapiSchema_3_0/definitions/ExternalDocumentation" + }, + "deprecated": { + "type": "boolean", + "default": false + }, + "xml": { + "$ref": "#/definitions/openapiSchema_3_0/definitions/XML" + } + }, + "patternProperties": { + "^x-": true + }, + "additionalProperties": false + }, + "avroSchema_v1": { + "definitions": { + "avroSchema": { + "title": "Avro Schema", + "description": "Root Schema", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema_v1/definitions/types" + } + ] + }, + "types": { + "title": "Avro Types", + "description": "Allowed Avro types", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema_v1/definitions/primitiveType" + }, + { + "$ref": "#/definitions/avroSchema_v1/definitions/primitiveTypeWithMetadata" + }, + { + "$ref": "#/definitions/avroSchema_v1/definitions/customTypeReference" + }, + { + "$ref": "#/definitions/avroSchema_v1/definitions/avroRecord" + }, + { + "$ref": "#/definitions/avroSchema_v1/definitions/avroEnum" + }, + { + "$ref": "#/definitions/avroSchema_v1/definitions/avroArray" + }, + { + "$ref": "#/definitions/avroSchema_v1/definitions/avroMap" + }, + { + "$ref": "#/definitions/avroSchema_v1/definitions/avroFixed" + }, + { + "$ref": "#/definitions/avroSchema_v1/definitions/avroUnion" + } + ] + }, + "primitiveType": { + "title": "Primitive Type", + "description": "Basic type primitives.", + "type": "string", + "enum": [ + "null", + "boolean", + "int", + "long", + "float", + "double", + "bytes", + "string" + ] + }, + "primitiveTypeWithMetadata": { + "title": "Primitive Type With Metadata", + "description": "A primitive type with metadata attached.", + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/avroSchema_v1/definitions/primitiveType" + } + }, + "required": [ + "type" + ] + }, + "customTypeReference": { + "title": "Custom Type", + "description": "Reference to a ComplexType", + "not": { + "$ref": "#/definitions/avroSchema_v1/definitions/primitiveType" + }, + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + }, + "avroUnion": { + "title": "Union", + "description": "A Union of types", + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/avroSchema" + }, + "minItems": 1 + }, + "avroField": { + "title": "Field", + "description": "A field within a Record", + "type": "object", + "properties": { + "name": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + }, + "type": { + "$ref": "#/definitions/avroSchema_v1/definitions/types" + }, + "doc": { + "type": "string" + }, + "default": true, + "order": { + "enum": [ + "ascending", + "descending", + "ignore" + ] + }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + } + } + }, + "required": [ + "name", + "type" + ] + }, + "avroRecord": { + "title": "Record", + "description": "A Record", + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "record" + }, + "name": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/avroSchema_v1/definitions/namespace" + }, + "doc": { + "type": "string" + }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + } + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/avroField" + } + } + }, + "required": [ + "type", + "name", + "fields" + ] + }, + "avroEnum": { + "title": "Enum", + "description": "An enumeration", + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "enum" + }, + "name": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/avroSchema_v1/definitions/namespace" + }, + "doc": { + "type": "string" + }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + } + }, + "symbols": { + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + } + } + }, + "required": [ + "type", + "name", + "symbols" + ] + }, + "avroArray": { + "title": "Array", + "description": "An array", + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "name": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/avroSchema_v1/definitions/namespace" + }, + "doc": { + "type": "string" + }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + } + }, + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/types" + } + }, + "required": [ + "type", + "items" + ] + }, + "avroMap": { + "title": "Map", + "description": "A map of values", + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "map" + }, + "name": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/avroSchema_v1/definitions/namespace" + }, + "doc": { + "type": "string" + }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + } + }, + "values": { + "$ref": "#/definitions/avroSchema_v1/definitions/types" + } + }, + "required": [ + "type", + "values" + ] + }, + "avroFixed": { + "title": "Fixed", + "description": "A fixed sized array of bytes", + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "fixed" + }, + "name": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + }, + "namespace": { + "$ref": "#/definitions/avroSchema_v1/definitions/namespace" + }, + "doc": { + "type": "string" + }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/avroSchema_v1/definitions/name" + } + }, + "size": { + "type": "number" + } + }, + "required": [ + "type", + "name", + "size" + ] + }, + "name": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" + }, + "namespace": { + "type": "string", + "pattern": "^([A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)*$" + } + }, + "description": "Json-Schema definition for Avro AVSC files.", + "oneOf": [ + { + "$ref": "#/definitions/avroSchema_v1/definitions/avroSchema" + } + ], + "title": "Avro Schema Definition" + }, + "components": { + "type": "object", + "description": "Holds a set of reusable objects for different aspects of the AsyncAPI specification. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "properties": { + "schemas": { + "$ref": "#/definitions/schemas" + }, + "servers": { + "$ref": "#/definitions/servers" + }, + "channels": { + "$ref": "#/definitions/channels" + }, + "serverVariables": { + "$ref": "#/definitions/serverVariables" + }, + "messages": { + "$ref": "#/definitions/messages" + }, + "securitySchemes": { + "type": "object", + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/SecurityScheme" + } + ] + } + } + }, + "parameters": { + "$ref": "#/definitions/parameters" + }, + "correlationIds": { + "type": "object", + "patternProperties": { + "^[\\w\\d\\.\\-_]+$": { + "oneOf": [ + { + "$ref": "#/definitions/Reference" + }, + { + "$ref": "#/definitions/correlationId" + } + ] + } + } + }, + "operationTraits": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/operationTrait" + } + }, + "messageTraits": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/messageTrait" + } + }, + "serverBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/bindingsObject" + } + }, + "channelBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/bindingsObject" + } + }, + "operationBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/bindingsObject" + } + }, + "messageBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/bindingsObject" + } + } + }, + "examples": [ + { + "components": { + "schemas": { + "Category": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + } + } + }, + "Tag": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + } + } + } + }, + "servers": { + "development": { + "url": "{stage}.gigantic-server.com:{port}", + "description": "Development server", + "protocol": "amqp", + "protocolVersion": "0.9.1", + "variables": { + "stage": { + "$ref": "#/components/serverVariables/stage" + }, + "port": { + "$ref": "#/components/serverVariables/port" + } + } + } + }, + "serverVariables": { + "stage": { + "default": "demo", + "description": "This value is assigned by the service provider, in this example `gigantic-server.com`" + }, + "port": { + "enum": [ + "8883", + "8884" + ], + "default": "8883" + } + }, + "channels": { + "user/signedup": { + "subscribe": { + "message": { + "$ref": "#/components/messages/userSignUp" + } + } + } + }, + "messages": { + "userSignUp": { + "summary": "Action to sign a user up.", + "description": "Multiline description of what this action does.\nHere you have another line.\n", + "tags": [ + { + "name": "user" + }, + { + "name": "signup" + } + ], + "headers": { + "type": "object", + "properties": { + "applicationInstanceId": { + "description": "Unique identifier for a given instance of the publishing application", + "type": "string" + } + } + }, + "payload": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/userCreate" + }, + "signup": { + "$ref": "#/components/schemas/signup" + } + } + } + } + }, + "parameters": { + "userId": { + "description": "Id of the user.", + "schema": { + "type": "string" + } + } + }, + "correlationIds": { + "default": { + "description": "Default Correlation ID", + "location": "$message.header#/correlationId" + } + }, + "messageTraits": { + "commonHeaders": { + "headers": { + "type": "object", + "properties": { + "my-app-header": { + "type": "integer", + "minimum": 0, + "maximum": 100 + } + } + } + } + } + } + } + ] + }, + "schemas": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/schema" + }, + "description": "JSON objects describing schemas the API uses." + }, + "messages": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/message" + }, + "description": "JSON objects describing the messages being consumed and produced by the API." + }, + "SecurityScheme": { + "description": "Defines a security scheme that can be used by the operations.", + "oneOf": [ + { + "$ref": "#/definitions/userPassword" + }, + { + "$ref": "#/definitions/apiKey" + }, + { + "$ref": "#/definitions/X509" + }, + { + "$ref": "#/definitions/symmetricEncryption" + }, + { + "$ref": "#/definitions/asymmetricEncryption" + }, + { + "$ref": "#/definitions/HTTPSecurityScheme" + }, + { + "$ref": "#/definitions/oauth2Flows" + }, + { + "$ref": "#/definitions/openIdConnect" + }, + { + "$ref": "#/definitions/SaslSecurityScheme" + } + ], + "examples": [ + { + "type": "userPassword" + } + ] + }, + "userPassword": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the security scheme. ", + "enum": [ + "userPassword" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "userPassword" + } + ] + }, + "apiKey": { + "type": "object", + "required": [ + "type", + "in" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the security scheme.", + "enum": [ + "apiKey" + ] + }, + "in": { + "type": "string", + "description": "The location of the API key. ", + "enum": [ + "user", + "password" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "apiKey", + "in": "user" + } + ] + }, + "X509": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "X509" + ], + "description": "The type of the security scheme." + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "X509" + } + ] + }, + "symmetricEncryption": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the security scheme.", + "enum": [ + "symmetricEncryption" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "symmetricEncryption" + } + ] + }, + "asymmetricEncryption": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the security scheme.", + "enum": [ + "asymmetricEncryption" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false + }, + "HTTPSecurityScheme": { + "oneOf": [ + { + "$ref": "#/definitions/NonBearerHTTPSecurityScheme" + }, + { + "$ref": "#/definitions/BearerHTTPSecurityScheme" + }, + { + "$ref": "#/definitions/APIKeyHTTPSecurityScheme" + } + ] + }, + "NonBearerHTTPSecurityScheme": { + "not": { + "type": "object", + "properties": { + "scheme": { + "type": "string", + "description": "A short description for security scheme.", + "enum": [ + "bearer" + ] + } + } + }, + "type": "object", + "required": [ + "scheme", + "type" + ], + "properties": { + "scheme": { + "type": "string", + "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235." + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + }, + "type": { + "type": "string", + "description": "The type of the security scheme. ", + "enum": [ + "http" + ] + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false + }, + "BearerHTTPSecurityScheme": { + "type": "object", + "required": [ + "type", + "scheme" + ], + "properties": { + "scheme": { + "type": "string", + "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.", + "enum": [ + "bearer" + ] + }, + "bearerFormat": { + "type": "string", + "description": "A hint to the client to identify how the bearer token is formatted." + }, + "type": { + "type": "string", + "description": "The type of the security scheme. ", + "enum": [ + "http" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false + }, + "APIKeyHTTPSecurityScheme": { + "type": "object", + "required": [ + "type", + "name", + "in" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the security scheme. ", + "enum": [ + "httpApiKey" + ] + }, + "name": { + "type": "string", + "description": "The name of the header, query or cookie parameter to be used." + }, + "in": { + "type": "string", + "description": "The location of the API key. ", + "enum": [ + "header", + "query", + "cookie" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "httpApiKey", + "name": "api_key", + "in": "header" + } + ] + }, + "oauth2Flows": { + "type": "object", + "description": "Allows configuration of the supported OAuth Flows.", + "required": [ + "type", + "flows" + ], + "properties": { + "type": { + "type": "string", + "description": "A short description for security scheme.", + "enum": [ + "oauth2" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + }, + "flows": { + "type": "object", + "properties": { + "implicit": { + "description": "Configuration for the OAuth Implicit flow.", + "allOf": [ + { + "$ref": "#/definitions/oauth2Flow" + }, + { + "required": [ + "authorizationUrl", + "scopes" + ] + }, + { + "not": { + "required": [ + "tokenUrl" + ] + } + } + ] + }, + "password": { + "description": "Configuration for the OAuth Resource Owner Protected Credentials flow.", + "allOf": [ + { + "$ref": "#/definitions/oauth2Flow" + }, + { + "required": [ + "tokenUrl", + "scopes" + ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } + } + ] + }, + "clientCredentials": { + "description": "Configuration for the OAuth Client Credentials flow.", + "allOf": [ + { + "$ref": "#/definitions/oauth2Flow" + }, + { + "required": [ + "tokenUrl", + "scopes" + ] + }, + { + "not": { + "required": [ + "authorizationUrl" + ] + } + } + ] + }, + "authorizationCode": { + "description": "Configuration for the OAuth Authorization Code flow.", + "allOf": [ + { + "$ref": "#/definitions/oauth2Flow" + }, + { + "required": [ + "authorizationUrl", + "tokenUrl", + "scopes" + ] + } + ] + } + }, + "additionalProperties": false + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + } + }, + "oauth2Flow": { + "type": "object", + "description": "Configuration details for a supported OAuth Flow", + "properties": { + "authorizationUrl": { + "type": "string", + "format": "uri", + "description": "The authorization URL to be used for this flow. This MUST be in the form of an absolute URL." + }, + "tokenUrl": { + "type": "string", + "format": "uri", + "description": "The token URL to be used for this flow. This MUST be in the form of an absolute URL." + }, + "refreshUrl": { + "type": "string", + "format": "uri", + "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL." + }, + "scopes": { + "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it.", + "$ref": "#/definitions/oauth2Scopes" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "oauth2", + "flows": { + "implicit": { + "authorizationUrl": "https://example.com/api/oauth/dialog", + "scopes": { + "write:pets": "modify pets in your account", + "read:pets": "read your pets" + } + }, + "authorizationCode": { + "authorizationUrl": "https://example.com/api/oauth/dialog", + "tokenUrl": "https://example.com/api/oauth/token", + "scopes": { + "write:pets": "modify pets in your account", + "read:pets": "read your pets" + } + } + } + } + ] + }, + "oauth2Scopes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "openIdConnect": { + "type": "object", + "required": [ + "type", + "openIdConnectUrl" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "openIdConnect" + ] + }, + "description": { + "type": "string" + }, + "openIdConnectUrl": { + "type": "string", + "format": "uri" + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false + }, + "SaslSecurityScheme": { + "oneOf": [ + { + "$ref": "#/definitions/SaslPlainSecurityScheme" + }, + { + "$ref": "#/definitions/SaslScramSecurityScheme" + }, + { + "$ref": "#/definitions/SaslGssapiSecurityScheme" + } + ] + }, + "SaslPlainSecurityScheme": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the security scheme. Valid values", + "enum": [ + "plain" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "scramSha512" + } + ] + }, + "SaslScramSecurityScheme": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the security scheme.", + "enum": [ + "scramSha256", + "scramSha512" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "scramSha512" + } + ] + }, + "SaslGssapiSecurityScheme": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the security scheme.", + "enum": [ + "gssapi" + ] + }, + "description": { + "type": "string", + "description": "A short description for security scheme." + } + }, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "#/definitions/specificationExtension" + } + }, + "additionalProperties": false, + "examples": [ + { + "type": "scramSha512" + } + ] + } + }, + "description": "!!Auto generated!! \n Do not manually edit. " +} \ No newline at end of file diff --git a/src/main/resources/ui/default(1.0.0-next.43).min.css b/src/main/resources/ui/default(1.0.0-next.48).min.css similarity index 100% rename from src/main/resources/ui/default(1.0.0-next.43).min.css rename to src/main/resources/ui/default(1.0.0-next.48).min.css diff --git a/src/main/resources/ui/index(1.0.0-next.43).js b/src/main/resources/ui/index(1.0.0-next.43).js deleted file mode 100644 index 2097d0d..0000000 --- a/src/main/resources/ui/index(1.0.0-next.43).js +++ /dev/null @@ -1,45 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("AsyncApiStandalone",[],t):"object"==typeof exports?exports.AsyncApiStandalone=t():e.AsyncApiStandalone=t()}("undefined"!=typeof self?self:this,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=276)}([function(e,t,n){"use strict";e.exports=n(70)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"l",(function(){return r})),n.d(t,"j",(function(){return s})),n.d(t,"k",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"f",(function(){return c})),n.d(t,"i",(function(){return u})),n.d(t,"h",(function(){return p})),n.d(t,"e",(function(){return l})),n.d(t,"d",(function(){return f})),n.d(t,"g",(function(){return d})),n.d(t,"b",(function(){return h}));var i="https://www.iana.org/assignments/media-types",r="https://github.com/asyncapi/parser-js/validation-errors",s="Terms of service",o="Support",a="External Docs",c="PUB",u="SUB",p="Servers",l="Operations",f="Messages",d="Schemas",h="Error"},function(e,t){const n=e.exports,i=(e,t,n,i)=>{if("string"!=typeof t||!e)return null;const r=e[String(t)];return void 0===r?null:n?new n(r,i):r};n.createMapOfType=(e,t,n)=>{const i={};return e?(Object.entries(e).forEach(([e,r])=>{i[String(e)]=new t(r,n)}),i):i},n.getMapValueOfType=(e,t,n,r)=>i(e,t,n,r),n.getMapValueByKey=(e,t)=>i(e,t),n.mix=(e,...t)=>{let n=!1;if(t.some((function(t){return e===t||(n=Object.keys(t).some(t=>e.prototype.hasOwnProperty(t)),n)})))throw n?new Error(`invalid mix function: model ${e.name} has at least one method that it is trying to replace by mixin`):new Error(`invalid mix function: cannot use the model ${e.name} as a mixin`);return t.forEach(t=>Object.assign(e.prototype,t)),e}},function(e,t,n){const i=n(24);e.exports=class{constructor(e){if(null==e)throw new i(`Invalid JSON to instantiate the ${this.constructor.name} object.`);this._json=e}json(e){return void 0===e?this._json:this._json?this._json[String(e)]:void 0}}},function(e,t){const n={hasExtensions(){return!!this.extensionKeys().length},extensions(){const e={};return Object.entries(this._json).forEach(([t,n])=>{/^x-[\w\d\.\-\_]+$/.test(t)&&(e[String(t)]=n)}),e},extensionKeys(){return Object.keys(this.extensions())},extKeys(){return this.extensionKeys()},hasExtension(e){return!!e.startsWith("x-")&&!!this._json[String(e)]},extension(e){return e.startsWith("x-")?this._json[String(e)]:null},hasExt(e){return this.hasExtension(e)},ext(e){return this.extension(e)}};e.exports=n},,function(e,t,n){const{getMapValueByKey:i}=n(2),r={hasDescription(){return!!this._json.description},description(){return i(this._json,"description")}};e.exports=r},function(e,t,n){"use strict";function i(e){return void 0!==e.url}var r;n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return r})),function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(r||(r={}))},,,function(e,t,n){const{createMapOfType:i,getMapValueOfType:r,mix:s}=n(2),o=n(3),{xParserCircle:a,xParserCircleProps:c}=n(25),u=n(6),p=n(17),l=n(4);class f extends o{constructor(e,t){super(e),this.options=t||{}}uid(){return this.$id()||this.ext("x-parser-schema-id")}$id(){return this._json.$id}multipleOf(){return this._json.multipleOf}maximum(){return this._json.maximum}exclusiveMaximum(){return this._json.exclusiveMaximum}minimum(){return this._json.minimum}exclusiveMinimum(){return this._json.exclusiveMinimum}maxLength(){return this._json.maxLength}minLength(){return this._json.minLength}pattern(){return this._json.pattern}maxItems(){return this._json.maxItems}minItems(){return this._json.minItems}uniqueItems(){return!!this._json.uniqueItems}maxProperties(){return this._json.maxProperties}minProperties(){return this._json.minProperties}required(){return this._json.required}enum(){return this._json.enum}type(){return this._json.type}allOf(){return this._json.allOf?this._json.allOf.map(e=>new f(e,{parent:this})):null}oneOf(){return this._json.oneOf?this._json.oneOf.map(e=>new f(e,{parent:this})):null}anyOf(){return this._json.anyOf?this._json.anyOf.map(e=>new f(e,{parent:this})):null}not(){return this._json.not?new f(this._json.not,{parent:this}):null}items(){return this._json.items?Array.isArray(this._json.items)?this._json.items.map(e=>new f(e,{parent:this})):new f(this._json.items,{parent:this}):null}properties(){return i(this._json.properties,f,{parent:this})}property(e){return r(this._json.properties,e,f,{parent:this})}additionalProperties(){const e=this._json.additionalProperties;if(null!=e)return"boolean"==typeof e?e:new f(e,{parent:this})}additionalItems(){const e=this._json.additionalItems;if(null!=e)return new f(e,{parent:this})}patternProperties(){return i(this._json.patternProperties,f,{parent:this})}const(){return this._json.const}contains(){return this._json.contains?new f(this._json.contains,{parent:this}):null}dependencies(){if(!this._json.dependencies)return null;const e={};return Object.entries(this._json.dependencies).forEach(([t,n])=>{e[String(t)]=Array.isArray(n)?n:new f(n,{parent:this})}),e}propertyNames(){return this._json.propertyNames?new f(this._json.propertyNames,{parent:this}):null}if(){return this._json.if?new f(this._json.if,{parent:this}):null}then(){return this._json.then?new f(this._json.then,{parent:this}):null}else(){return this._json.else?new f(this._json.else,{parent:this}):null}format(){return this._json.format}contentEncoding(){return this._json.contentEncoding}contentMediaType(){return this._json.contentMediaType}definitions(){return i(this._json.definitions,f,{parent:this})}title(){return this._json.title}default(){return this._json.default}deprecated(){return this._json.deprecated}discriminator(){return this._json.discriminator}readOnly(){return!!this._json.readOnly}writeOnly(){return!!this._json.writeOnly}examples(){return this._json.examples}isBooleanSchema(){return"boolean"==typeof this._json}isCircular(){if(this.ext(a))return!0;let e=this.options.parent;for(;e;){if(e._json===this._json)return!0;e=e.options&&e.options.parent}return!1}circularSchema(){let e=this.options.parent;for(;e;){if(e._json===this._json)return e;e=e.options&&e.options.parent}}hasCircularProps(){return Array.isArray(this.ext(c))?this.ext(c).length>0:Object.entries(this.properties()||{}).map(([e,t])=>{if(t.isCircular())return e}).filter(Boolean).length>0}circularProps(){return Array.isArray(this.ext(c))?this.ext(c):Object.entries(this.properties()||{}).map(([e,t])=>{if(t.isCircular())return e}).filter(Boolean)}}e.exports=s(f,u,p,l)},function(e,t,n){"use strict";(function(e){ - /*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - var i=n(81),r=n(82),s=n(63);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function h(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return L(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(i)return L(e).length;t=(""+t).toLowerCase(),i=!0}}function m(e,t,n){var i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return k(this,t,n);case"utf8":case"utf-8":return A(this,t,n);case"ascii":return P(this,t,n);case"latin1":case"binary":return $(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function y(e,t,n){var i=e[t];e[t]=e[n],e[n]=i}function g(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=c.from(t,i)),c.isBuffer(t))return 0===t.length?-1:v(e,t,n,i,r);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):v(e,[t],n,i,r);throw new TypeError("val must be string, number or Buffer")}function v(e,t,n,i,r){var s,o=1,a=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,n/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(r){var p=-1;for(s=n;sa&&(n=a-c),s=n;s>=0;s--){for(var l=!0,f=0;fr&&(i=r):i=r;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");i>s/2&&(i=s/2);for(var o=0;o>8,r=n%256,s.push(r),s.push(i);return s}(t,e.length-n),e,n,i)}function S(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function A(e,t,n){n=Math.min(e.length,n);for(var i=[],r=t;r239?4:u>223?3:u>191?2:1;if(r+l<=n)switch(l){case 1:u<128&&(p=u);break;case 2:128==(192&(s=e[r+1]))&&(c=(31&u)<<6|63&s)>127&&(p=c);break;case 3:s=e[r+1],o=e[r+2],128==(192&s)&&128==(192&o)&&(c=(15&u)<<12|(63&s)<<6|63&o)>2047&&(c<55296||c>57343)&&(p=c);break;case 4:s=e[r+1],o=e[r+2],a=e[r+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(c=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(p=c)}null===p?(p=65533,l=1):p>65535&&(p-=65536,i.push(p>>>10&1023|55296),p=56320|1023&p),i.push(p),r+=l}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",i=0;for(;i0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,i,r){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),t<0||n>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=n)return 0;if(i>=r)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(r>>>=0)-(i>>>=0),o=(n>>>=0)-(t>>>=0),a=Math.min(s,o),u=this.slice(i,r),p=e.slice(t,n),l=0;lr)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var s=!1;;)switch(i){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return x(this,e,t,n);case"ascii":return j(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function P(e,t,n){var i="";n=Math.min(e.length,n);for(var r=t;ri)&&(n=i);for(var r="",s=t;sn)throw new RangeError("Trying to access beyond buffer length")}function O(e,t,n,i,r,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function I(e,t,n,i){t<0&&(t=65535+t+1);for(var r=0,s=Math.min(e.length-n,2);r>>8*(i?r:1-r)}function F(e,t,n,i){t<0&&(t=4294967295+t+1);for(var r=0,s=Math.min(e.length-n,4);r>>8*(i?r:3-r)&255}function _(e,t,n,i,r,s){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function N(e,t,n,i,s){return s||_(e,0,n,4),r.write(e,t,n,i,23,4),n+4}function R(e,t,n,i,s){return s||_(e,0,n,8),r.write(e,t,n,i,52,8),n+8}c.prototype.slice=function(e,t){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t0&&(r*=256);)i+=this[e+--t]*r;return i},c.prototype.readUInt8=function(e,t){return t||T(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||T(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||T(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||T(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||T(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||T(e,t,this.length);for(var i=this[e],r=1,s=0;++s=(r*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||T(e,t,this.length);for(var i=t,r=1,s=this[e+--i];i>0&&(r*=256);)s+=this[e+--i]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return t||T(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||T(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||T(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||T(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||T(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||T(e,4,this.length),r.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||T(e,4,this.length),r.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||T(e,8,this.length),r.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||T(e,8,this.length),r.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,i){(e=+e,t|=0,n|=0,i)||O(this,e,t,n,Math.pow(2,8*n)-1,0);var r=1,s=0;for(this[t]=255&e;++s=0&&(s*=256);)this[t+r]=e/s&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):F(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):F(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*n-1);O(this,e,t,n,r-1,-r)}var s=0,o=1,a=0;for(this[t]=255&e;++s>0)-a&255;return t+n},c.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*n-1);O(this,e,t,n,r-1,-r)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):F(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):F(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return N(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return N(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return R(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return R(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,i){if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t=0;--r)e[r+t]=this[r+n];else if(s<1e3||!c.TYPED_ARRAY_SUPPORT)for(r=0;r>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===i){(t-=3)>-1&&s.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&s.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function q(e){return i.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(M,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function U(e,t,n,i){for(var r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}}).call(this,n(13))},function(e,t,n){"use strict";var i=n(52),r=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];e.exports=function(e,t){var n,o;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===r.indexOf(t))throw new i('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(n=t.styleAliases||null,o={},null!==n&&Object.keys(n).forEach((function(e){n[e].forEach((function(t){o[String(t)]=e}))})),o),-1===s.indexOf(this.kind))throw new i('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(54),r=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];var o=function(e,t){var n,o;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===r.indexOf(t))throw new i('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(n=t.styleAliases||null,o={},null!==n&&Object.keys(n).forEach((function(e){n[e].forEach((function(t){o[String(t)]=e}))})),o),-1===s.indexOf(this.kind))throw new i('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};t.Type=o},function(e,t){function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((function(t){var i=e[t];"object"!=typeof i||Object.isFrozen(i)||n(i)})),e}var i=n,r=n;i.default=r;class s{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function o(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t];return t.forEach((function(e){for(const t in e)n[t]=e[t]})),n}const c=e=>!!e.kind;class u{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=o(e)}openNode(e){if(!c(e))return;let t=e.kind;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){c(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}class p{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{p._collapse(e)}))}}class l extends p{constructor(e){super(),this.options=e}addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){return new u(this,this.options).value()}finalize(){return!0}}function f(e){return e?"string"==typeof e?e:e.source:null}const d=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;const h="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m={begin:"\\\\[\\s\\S]",relevance:0},y={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[m]},g={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[m]},v={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},b=function(e,t,n={}){const i=a({className:"comment",begin:e,end:t,contains:[]},n);return i.contains.push(v),i.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i},x=b("//","$"),j=b("/\\*","\\*/"),E=b("#","$"),w={className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},D={className:"number",begin:h,relevance:0},S={className:"number",begin:"\\b(0b[01]+)",relevance:0},A={className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},P={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[m,{begin:/\[/,end:/\]/,relevance:0,contains:[m]}]}]},$={className:"title",begin:"[a-zA-Z]\\w*",relevance:0},k={className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},C={begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0};var T=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:h,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){return e.map(e=>f(e)).join("")}(t,/.*\b/,e.binary,/\b.*/)),a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:m,APOS_STRING_MODE:y,QUOTE_STRING_MODE:g,PHRASAL_WORDS_MODE:v,COMMENT:b,C_LINE_COMMENT_MODE:x,C_BLOCK_COMMENT_MODE:j,HASH_COMMENT_MODE:E,NUMBER_MODE:w,C_NUMBER_MODE:D,BINARY_NUMBER_MODE:S,CSS_NUMBER_MODE:A,REGEXP_MODE:P,TITLE_MODE:$,UNDERSCORE_TITLE_MODE:k,METHOD_GUARD:C,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})}});function O(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function I(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=O,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function F(e,t){Array.isArray(e.illegal)&&(e.illegal=function(...e){return"("+e.map(e=>f(e)).join("|")+")"}(...e.illegal))}function _(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function N(e,t){void 0===e.relevance&&(e.relevance=1)}const R=["of","and","for","in","not","or","if","then","parent","list","value"];function M(e,t){return t?Number(t):function(e){return R.includes(e.toLowerCase())}(e)?0:1}function B(e,{plugins:t}){function n(t,n){return new RegExp(f(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=function(e){return new RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,t="|"){let n=0;return e.map(e=>{n+=1;const t=n;let i=f(e),r="";for(;i.length>0;){const e=d.exec(i);if(!e){r+=i;break}r+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+String(Number(e[1])+t):(r+=e[0],"("===e[0]&&n++)}return r}).map(e=>`(${e})`).join(t)}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex((e,t)=>t>0&&void 0!==e),i=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,i)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=a(e.classNameAliases||{}),function t(i,s){const o=i;if(i.isCompiled)return o;[_].forEach(e=>e(i,s)),e.compilerExtensions.forEach(e=>e(i,s)),i.__beforeBegin=null,[I,F,N].forEach(e=>e(i,s)),i.isCompiled=!0;let c=null;if("object"==typeof i.keywords&&(c=i.keywords.$pattern,delete i.keywords.$pattern),i.keywords&&(i.keywords=function e(t,n,i="keyword"){const r={};return"string"==typeof t?s(i,t.split(" ")):Array.isArray(t)?s(i,t):Object.keys(t).forEach((function(i){Object.assign(r,e(t[i],n,i))})),r;function s(e,t){n&&(t=t.map(e=>e.toLowerCase())),t.forEach((function(t){const n=t.split("|");r[n[0]]=[e,M(n[0],n[1])]}))}}(i.keywords,e.case_insensitive)),i.lexemes&&c)throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return c=c||i.lexemes||/\w+/,o.keywordPatternRe=n(c,!0),s&&(i.begin||(i.begin=/\B|\b/),o.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(o.endRe=n(i.end)),o.terminatorEnd=f(i.end)||"",i.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(i.end?"|":"")+s.terminatorEnd)),i.illegal&&(o.illegalRe=n(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((function(e){return function(e){e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return a(e,{variants:null},t)})));if(e.cachedVariants)return e.cachedVariants;if(function e(t){return!!t&&(t.endsWithParent||e(t.starts))}(e))return a(e,{starts:e.starts?a(e.starts):null});if(Object.isFrozen(e))return a(e);return e}("self"===e?i:e)}))),i.contains.forEach((function(e){t(e,o)})),i.starts&&t(i.starts,s),o.matcher=function(e){const t=new r;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(o),o}(e)}function L(e){const t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),this.unknownLanguage=!0,o(this.code);let t={};return this.autoDetect?(t=e.highlightAuto(this.code),this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals),this.detectedLanguage=this.language),t.value},autoDetect(){return!this.language||(e=this.autodetect,Boolean(e||""===e));var e},ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const q={"after:highlightElement":({el:e,result:t,text:n})=>{const i=z(e);if(!i.length)return;const r=document.createElement("div");r.innerHTML=t.value,t.value=function(e,t,n){let i=0,r="";const s=[];function a(){return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function u(e){r+=""}function p(e){("start"===e.event?c:u)(e.node)}for(;e.length||t.length;){let t=a();if(r+=o(n.substring(i,t[0].offset)),i=t[0].offset,t===e){s.reverse().forEach(u);do{p(t.splice(0,1)[0]),t=a()}while(t===e&&t.length&&t[0].offset===i);s.reverse().forEach(c)}else"start"===t[0].event?s.push(t[0].node):s.pop(),p(t.splice(0,1)[0])}return r+o(n.substr(i))}(i,z(r),n)}};function U(e){return e.nodeName.toLowerCase()}function z(e){const t=[];return function e(n,i){for(let r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?i+=r.nodeValue.length:1===r.nodeType&&(t.push({event:"start",offset:i,node:r}),i=e(r,i),U(r).match(/br|hr|img|input/)||t.push({event:"stop",offset:i,node:r}));return i}(e,0),t}const H={},V=e=>{console.error(e)},K=(e,...t)=>{console.log("WARN: "+e,...t)},J=(e,t)=>{H[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),H[`${e}/${t}`]=!0)},X=o,W=a,Y=Symbol("nomatch");var G=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const a=/(^(<[^>]+>|\t|)+|\n)/gm,c="Could not find the language '{}', did you forget to load/include a language module?",u={disableAutodetect:!0,name:"Plain text",contains:[]};let p={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:l};function f(e){return p.noHighlightRe.test(e)}function d(e,t,n,i){let r="",s="";"object"==typeof t?(r=e,n=t.ignoreIllegals,s=t.language,i=void 0):(J("10.7.0","highlight(lang, code, ...args) has been deprecated."),J("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),s=e,r=t);const o={code:r,language:s};A("before:highlight",o);const a=o.result?o.result:h(o.language,o.code,n,i);return a.code=o.code,A("after:highlight",a),a}function h(e,n,i,a){function u(e,t){const n=x.case_insensitive?t[0].toLowerCase():t[0];return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}function l(){null!=D.subLanguage?function(){if(""===P)return;let e=null;if("string"==typeof D.subLanguage){if(!t[D.subLanguage])return void A.addText(P);e=h(D.subLanguage,P,!0,S[D.subLanguage]),S[D.subLanguage]=e.top}else e=m(P,D.subLanguage.length?D.subLanguage:null);D.relevance>0&&($+=e.relevance),A.addSublanguage(e.emitter,e.language)}():function(){if(!D.keywords)return void A.addText(P);let e=0;D.keywordPatternRe.lastIndex=0;let t=D.keywordPatternRe.exec(P),n="";for(;t;){n+=P.substring(e,t.index);const i=u(D,t);if(i){const[e,r]=i;if(A.addText(n),n="",$+=r,e.startsWith("_"))n+=t[0];else{const n=x.classNameAliases[e]||e;A.addKeyword(t[0],n)}}else n+=t[0];e=D.keywordPatternRe.lastIndex,t=D.keywordPatternRe.exec(P)}n+=P.substr(e),A.addText(n)}(),P=""}function f(e){return e.className&&A.openNode(x.classNameAliases[e.className]||e.className),D=Object.create(e,{parent:{value:D}}),D}function d(e){return 0===D.matcher.regexIndex?(P+=e[0],1):(T=!0,0)}function y(e){const t=e[0],n=e.rule,i=new s(n),r=[n.__beforeBegin,n["on:begin"]];for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return d(t);return n&&n.endSameAsBegin&&(n.endRe=new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),n.skip?P+=t:(n.excludeBegin&&(P+=t),l(),n.returnBegin||n.excludeBegin||(P=t)),f(n),n.returnBegin?0:t.length}function g(e){const t=e[0],i=n.substr(e.index),r=function e(t,n,i){let r=function(e,t){const n=e&&e.exec(t);return n&&0===n.index}(t.endRe,i);if(r){if(t["on:end"]){const e=new s(t);t["on:end"](n,e),e.isMatchIgnored&&(r=!1)}if(r){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,n,i)}(D,e,i);if(!r)return Y;const o=D;o.skip?P+=t:(o.returnEnd||o.excludeEnd||(P+=t),l(),o.excludeEnd&&(P=t));do{D.className&&A.closeNode(),D.skip||D.subLanguage||($+=D.relevance),D=D.parent}while(D!==r.parent);return r.starts&&(r.endSameAsBegin&&(r.starts.endRe=r.endRe),f(r.starts)),o.returnEnd?0:t.length}let v={};function b(t,r){const s=r&&r[0];if(P+=t,null==s)return l(),0;if("begin"===v.type&&"end"===r.type&&v.index===r.index&&""===s){if(P+=n.slice(r.index,r.index+1),!o){const t=new Error("0 width match regex");throw t.languageName=e,t.badRule=v.rule,t}return 1}if(v=r,"begin"===r.type)return y(r);if("illegal"===r.type&&!i){const e=new Error('Illegal lexeme "'+s+'" for mode "'+(D.className||"")+'"');throw e.mode=D,e}if("end"===r.type){const e=g(r);if(e!==Y)return e}if("illegal"===r.type&&""===s)return 1;if(C>1e5&&C>3*r.index){throw new Error("potential infinite loop, way more iterations than matches")}return P+=s,s.length}const x=w(e);if(!x)throw V(c.replace("{}",e)),new Error('Unknown language: "'+e+'"');const j=B(x,{plugins:r});let E="",D=a||j;const S={},A=new p.__emitter(p);!function(){const e=[];for(let t=D;t!==x;t=t.parent)t.className&&e.unshift(t.className);e.forEach(e=>A.openNode(e))}();let P="",$=0,k=0,C=0,T=!1;try{for(D.matcher.considerAll();;){C++,T?T=!1:D.matcher.considerAll(),D.matcher.lastIndex=k;const e=D.matcher.exec(n);if(!e)break;const t=b(n.substring(k,e.index),e);k=e.index+t}return b(n.substr(k)),A.closeAllNodes(),A.finalize(),E=A.toHTML(),{relevance:Math.floor($),value:E,language:e,illegal:!1,emitter:A,top:D}}catch(t){if(t.message&&t.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:t.message,context:n.slice(k-100,k+100),mode:t.mode},sofar:E,relevance:0,value:X(n),emitter:A};if(o)return{illegal:!1,relevance:0,value:X(n),emitter:A,language:e,top:D,errorRaised:t};throw t}}function m(e,n){n=n||p.languages||Object.keys(t);const i=function(e){const t={relevance:0,emitter:new p.__emitter(p),value:X(e),illegal:!1,top:u};return t.emitter.addText(e),t}(e),r=n.filter(w).filter(S).map(t=>h(t,e,!1));r.unshift(i);const s=r.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(w(e.language).supersetOf===t.language)return 1;if(w(t.language).supersetOf===e.language)return-1}return 0}),[o,a]=s,c=o;return c.second_best=a,c}const y={"before:highlightElement":({el:e})=>{p.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"))},"after:highlightElement":({result:e})=>{p.useBR&&(e.value=e.value.replace(/\n/g,"
"))}},g=/^(<[^>]+>|\t)+/gm,v={"after:highlightElement":({result:e})=>{p.tabReplace&&(e.value=e.value.replace(g,e=>e.replace(/\t/g,p.tabReplace)))}};function b(e){let t=null;const i=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=p.languageDetectRe.exec(t);if(n){const t=w(n[1]);return t||(K(c.replace("{}",n[1])),K("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>f(e)||w(e))}(e);if(f(i))return;A("before:highlightElement",{el:e,language:i}),t=e;const r=t.textContent,s=i?d(r,{language:i,ignoreIllegals:!0}):m(r);A("after:highlightElement",{el:e,result:s,text:r}),e.innerHTML=s.value,function(e,t,i){const r=t?n[t]:i;e.classList.add("hljs"),r&&e.classList.add(r)}(e,i,s.language),e.result={language:s.language,re:s.relevance,relavance:s.relevance},s.second_best&&(e.second_best={language:s.second_best.language,re:s.second_best.relevance,relavance:s.second_best.relevance})}const x=()=>{if(x.called)return;x.called=!0,J("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead.");document.querySelectorAll("pre code").forEach(b)};let j=!1;function E(){if("loading"===document.readyState)return void(j=!0);document.querySelectorAll("pre code").forEach(b)}function w(e){return e=(e||"").toLowerCase(),t[e]||t[n[e]]}function D(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach(e=>{n[e.toLowerCase()]=t})}function S(e){const t=w(e);return t&&!t.disableAutodetect}function A(e,t){const n=e;r.forEach((function(e){e[n]&&e[n](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){j&&E()}),!1),Object.assign(e,{highlight:d,highlightAuto:m,highlightAll:E,fixMarkup:function(e){return J("10.2.0","fixMarkup will be removed entirely in v11.0"),J("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),t=e,p.tabReplace||p.useBR?t.replace(a,e=>"\n"===e?p.useBR?"
":e:p.tabReplace?e.replace(/\t/g,p.tabReplace):e):t;var t},highlightElement:b,highlightBlock:function(e){return J("10.7.0","highlightBlock will be removed entirely in v12.0"),J("10.7.0","Please use highlightElement now."),b(e)},configure:function(e){e.useBR&&(J("10.3.0","'useBR' will be removed entirely in v11.0"),J("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),p=W(p,e)},initHighlighting:x,initHighlightingOnLoad:function(){J("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."),j=!0},registerLanguage:function(n,i){let r=null;try{r=i(e)}catch(e){if(V("Language definition for '{}' could not be registered.".replace("{}",n)),!o)throw e;V(e),r=u}r.name||(r.name=n),t[n]=r,r.rawDefinition=i.bind(null,e),r.aliases&&D(r.aliases,{languageName:n})},unregisterLanguage:function(e){delete t[e];for(const t of Object.keys(n))n[t]===e&&delete n[t]},listLanguages:function(){return Object.keys(t)},getLanguage:w,registerAliases:D,requireLanguage:function(e){J("10.4.0","requireLanguage will be removed entirely in v11."),J("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");const t=w(e);if(t)return t;throw new Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:S,inherit:W,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}(e),r.push(e)},vuePlugin:L(e).VuePlugin}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString="10.7.3";for(const e in T)"object"==typeof T[e]&&i(T[e]);return Object.assign(e,T),e.addPlugin(y),e.addPlugin(q),e.addPlugin(v),e}({});e.exports=G},function(e,t){var n,i,r=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{i="function"==typeof clearTimeout?clearTimeout:o}catch(e){i=o}}();var c,u=[],p=!1,l=-1;function f(){p&&c&&(p=!1,c.length?u=c.concat(u):l=-1,u.length&&d())}function d(){if(!p){var e=a(f);p=!0;for(var t=u.length;t;){for(c=u,u=[];++l1)for(var n=1;n=0?a.stripQuery(e.substr(t).toLowerCase()):""},t.stripQuery=function(e){let t=e.indexOf("?");return t>=0&&(e=e.substr(0,t)),e},t.getHash=function(e){let t=e.indexOf("#");return t>=0?e.substr(t):"#"},t.stripHash=function(e){let t=e.indexOf("#");return t>=0&&(e=e.substr(0,t)),e},t.isHttp=function(e){let t=a.getProtocol(e);return"http"===t||"https"===t||void 0===t&&i.browser},t.isFileSystemPath=function(e){if(i.browser)return!1;let t=a.getProtocol(e);return void 0===t||"file"===t},t.fromFileSystemPath=function(e){r&&(e=e.replace(/\\/g,"/")),e=encodeURI(e);for(let t=0;tdecodeURIComponent(e).replace(c,"/").replace(u,"~"))}}).call(this,n(16))},function(e,t,n){"use strict";const{Ono:i}=n(26),{stripHash:r,toFileSystemPath:s}=n(18),o=t.JSONParserError=class extends Error{constructor(e,t){super(),this.code="EUNKNOWN",this.message=e,this.source=t,this.path=null,i.extend(this)}get footprint(){return`${this.path}+${this.source}+${this.code}+${this.message}`}};c(o);const a=t.JSONParserErrorGroup=class e extends Error{constructor(e){super(),this.files=e,this.message=`${this.errors.length} error${this.errors.length>1?"s":""} occurred while reading '${s(e.$refs._root$Ref.path)}'`,i.extend(this)}static getParserErrors(e){const t=[];for(const n of Object.values(e.$refs._$refs))n.errors&&t.push(...n.errors);return t}get errors(){return e.getParserErrors(this.files)}};c(a);c(t.ParserError=class extends o{constructor(e,t){super(`Error parsing ${t}: ${e}`,t),this.code="EPARSER"}});c(t.UnmatchedParserError=class extends o{constructor(e){super(`Could not find parser for "${e}"`,e),this.code="EUNMATCHEDPARSER"}});c(t.ResolverError=class extends o{constructor(e,t){super(e.message||`Error reading file "${t}"`,t),this.code="ERESOLVER","code"in e&&(this.ioErrorCode=String(e.code))}});c(t.UnmatchedResolverError=class extends o{constructor(e){super(`Could not find resolver for "${e}"`,e),this.code="EUNMATCHEDRESOLVER"}});c(t.MissingPointerError=class extends o{constructor(e,t){super(`Token "${e}" does not exist.`,r(t)),this.code="EMISSINGPOINTER"}});function c(e){Object.defineProperty(e.prototype,"name",{value:e.name,enumerable:!0})}c(t.InvalidPointerError=class extends o{constructor(e,t){super(`Invalid $ref pointer "${e}". Pointers must begin with "#/"`,r(t)),this.code="EINVALIDPOINTER"}}),t.isHandledError=function(e){return e instanceof o||e instanceof a},t.normalizeError=function(e){return null===e.path&&(e.path=[]),e}},function(e,t,n){"use strict";n.d(t,"a",(function(){return m}));const i=/\r?\n/,r=/\bono[ @]/;function s(e,t){let n=a(e.stack),i=t?t.stack:void 0;return n&&i?n+"\n\n"+i:n||i}function o(e,t,n){n?Object.defineProperty(t,"stack",{get:()=>s({stack:e.get.apply(t)},n),enumerable:!1,configurable:!0}):function(e,t){Object.defineProperty(e,"stack",{get:()=>a(t.get.apply(e)),enumerable:!1,configurable:!0})}(t,e)}function a(e){if(e){let t,n=e.split(i);for(let e=0;e0)return n.join("\n")}return e}const c=["function","symbol","undefined"],u=["constructor","prototype","__proto__"],p=Object.getPrototypeOf({});function l(){let e={},t=this;for(let n of f(t))if("string"==typeof n){let i=t[n],r=typeof i;c.includes(r)||(e[n]=i)}return e}function f(e,t=[]){let n=[];for(;e&&e!==p;)n=n.concat(Object.getOwnPropertyNames(e),Object.getOwnPropertySymbols(e)),e=Object.getPrototypeOf(e);let i=new Set(n);for(let e of t.concat(u))i.delete(e);return i}const d=["name","message","stack"];function h(e,t,n){let i=e;return function(e,t){let n=Object.getOwnPropertyDescriptor(e,"stack");!function(e){return Boolean(e&&e.configurable&&"function"==typeof e.get)}(n)?function(e){return Boolean(!e||e.writable||"function"==typeof e.set)}(n)&&(e.stack=s(e,t)):o(n,e,t)}(i,t),t&&"object"==typeof t&&function(e,t){let n=f(t,d),i=e,r=t;for(let e of n)if(void 0===i[e])try{i[e]=r[e]}catch(e){}}(i,t),i.toJSON=l,n&&"object"==typeof n&&Object.assign(i,n),i}const m=y;function y(e,t){function n(...n){let{originalError:i,props:r,message:s}=function(e,t){let n,i,r,s="";return"string"==typeof e[0]?r=e:"string"==typeof e[1]?(e[0]instanceof Error?n=e[0]:i=e[0],r=e.slice(1)):(n=e[0],i=e[1],r=e.slice(2)),r.length>0&&(s=t.format?t.format.apply(void 0,r):r.join(" ")),t.concatMessages&&n&&n.message&&(s+=(s?" \n":"")+n.message),{originalError:n,props:i,message:s}}(n,t);return h(new e(s),i,r)}return t=function(e){return{concatMessages:void 0===(e=e||{}).concatMessages||Boolean(e.concatMessages),format:void 0!==e.format&&("function"==typeof e.format&&e.format)}}(t),n[Symbol.species]=e,n}y.toJSON=function(e){return l.call(e)},y.extend=function(e,t,n){return n||t instanceof Error?h(e,t,n):t?h(e,void 0,t):h(e)}},function(e,t,n){const{getMapValueByKey:i}=n(2),r={hasBindings(){return!(!this._json.bindings||!Object.keys(this._json.bindings).length)},bindings(){return this.hasBindings()?this._json.bindings:{}},bindingProtocols(){return Object.keys(this.bindings())},hasBinding(e){return this.hasBindings()&&!!this._json.bindings[String(e)]},binding(e){return i(this._json.bindings,e)}};e.exports=r},function(e,t,n){const i=n(78),r={hasTags(){return!(!Array.isArray(this._json.tags)||!this._json.tags.length)},tags(){return this.hasTags()?this._json.tags.map(e=>new i(e)):[]},tagNames(){return this.hasTags()?this._json.tags.map(e=>e.name):[]},hasTag(e){return this.hasTags()&&this._json.tags.some(t=>t.name===e)},tag(e){const t=this.hasTags()&&this._json.tags.find(t=>t.name===e);return t?new i(t):null}};e.exports=r},function(e,t,n){const{createMapOfType:i,getMapValueOfType:r,mix:s}=n(2),o=n(3),a=n(74),c=n(38),u=n(40),p=n(85),l=n(17),f=n(22),d=n(4),{xParserSpecParsed:h,xParserSpecStringified:m,xParserCircle:y}=n(25),{assignNameToAnonymousMessages:g,assignNameToComponentMessages:v,assignUidToComponentSchemas:b,assignUidToParameterSchemas:x,assignIdToAnonymousSchemas:j,assignUidToComponentParameterSchemas:E}=n(88),{traverseAsyncApiDocument:w}=n(48);class D extends o{constructor(...e){super(...e),!0!==this.ext(h)&&(v(this),g(this),b(this),E(this),x(this),j(this),this.json()[String(h)]=!0)}version(){return this._json.asyncapi}info(){return new a(this._json.info)}id(){return this._json.id}hasServers(){return!!this._json.servers}servers(){return i(this._json.servers,c)}serverNames(){return this._json.servers?Object.keys(this._json.servers):[]}server(e){return r(this._json.servers,e,c)}hasDefaultContentType(){return!!this._json.defaultContentType}defaultContentType(){return this._json.defaultContentType||null}hasChannels(){return!!this._json.channels}channels(){return i(this._json.channels,u,this)}channelNames(){return this._json.channels?Object.keys(this._json.channels):[]}channel(e){return r(this._json.channels,e,u,this)}hasComponents(){return!!this._json.components}components(){return this._json.components?new p(this._json.components):null}hasMessages(){return!!this.allMessages().size}allMessages(){const e=new Map;return this.hasChannels()&&this.channelNames().forEach(t=>{const n=this.channel(t);n.hasPublish()&&n.publish().messages().forEach(t=>{e.set(t.uid(),t)}),n.hasSubscribe()&&n.subscribe().messages().forEach(t=>{e.set(t.uid(),t)})}),this.hasComponents()&&Object.values(this.components().messages()).forEach(t=>{e.set(t.uid(),t)}),e}allSchemas(){const e=new Map;return w(this,t=>{t.uid()&&e.set(t.uid(),t)}),e}hasCircular(){return!!this._json[String(y)]}traverseSchemas(e,t){w(this,e,t)}static stringify(e,t){const n={...e.json()};return n[String(m)]=!0,JSON.stringify(n,function(){const e=new Map,t=new Map;let n=null;return function(i,r){const s=e.get(this)+(Array.isArray(this)?`[${i}]`:"."+i),o=r===Object(r);o&&e.set(r,s);const a=t.get(r)||"";if(!a&&o){const e=s.replace(/undefined\.\.?/,"");t.set(r,e)}const c="["===a[0]?"$":"$.";let u=a?`$ref:${c}${a}`:r;return null===n?n=r:u===n&&(u="$ref:$"),u}}(),t)}static parse(e){let t=e;if("string"==typeof e?t=JSON.parse(e):"object"==typeof e&&(t={...t}),"object"!=typeof t||!t[String(h)])throw new Error("Cannot parse invalid AsyncAPI document");if(!t[String(m)])return new D(t);delete t[String(m)];return function e(t,n,i,r,s){let o=t,a="$ref:$";if(void 0!==n){o=t[String(n)];const e=n?"."+n:"";a=r.get(t)+(Array.isArray(t)?`[${n}]`:e)}r.set(o,a),s.set(a,o);const c=s.get(o);c&&(t[String(n)]=c);"$ref:$"!==o&&"$ref:$"!==c||(t[String(n)]=i);if(o===Object(o))for(const t in o)e(o,t,i,r,s)}(t,void 0,t,new Map,new Map),new D(t)}}e.exports=s(D,f,l,d)},function(e,t){const n=(e,t)=>(t.type=e.type.startsWith("https://github.com/asyncapi/parser-js/")?e.type:"https://github.com/asyncapi/parser-js/"+e.type,t.title=e.title,e.detail&&(t.detail=e.detail),e.validationErrors&&(t.validationErrors=e.validationErrors),e.parsedJSON&&(t.parsedJSON=e.parsedJSON),e.location&&(t.location=e.location),e.refs&&(t.refs=e.refs),t);class i extends Error{constructor(e){super(),n(e,this),this.message=e.title}toJS(){return n(this,{})}}e.exports=i},function(e,t){e.exports={xParserSpecParsed:"x-parser-spec-parsed",xParserSpecStringified:"x-parser-spec-stringified",xParserMessageName:"x-parser-message-name",xParserSchemaId:"x-parser-schema-id",xParserCircle:"x-parser-circular",xParserCircleProps:"x-parser-circular-props"}},function(e,t,n){"use strict";n.r(t),function(e){var i=n(96);n.d(t,"ono",(function(){return i.a}));var r=n(20);n.d(t,"Ono",(function(){return r.a}));n(107);t.default=i.a,"object"==typeof e.exports&&(e.exports=Object.assign(e.exports.default,e.exports))}.call(this,n(179)(e))},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"a",(function(){return c}));var i=n(0),r=n.n(i),s=n(29);function o(e){return"undefined"!=typeof document?document.querySelector(e):null}function a(e){return function(t,n,i){null!==(n=n||o("asyncapi"))&&Object(s.render)(r.a.createElement(e,t),n,i)}}function c(e){return function(t,n,i){null!==(n=n||o("asyncapi"))&&Object(s.hydrate)(r.a.createElement(e,t),n,i)}}},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(71)},function(e,t,n){const i=n(42),r=n(43),s=n(47),o=n(83);e.exports=class extends i{hasMultipleMessages(){return!!(this._json.message&&this._json.message.oneOf&&this._json.message.oneOf.length>1)||(this._json.message,!1)}traits(){const e=this._json["x-parser-original-traits"]||this._json.traits;return e?e.map(e=>new s(e)):[]}hasTraits(){return!!this._json["x-parser-original-traits"]||!!this._json.traits}messages(){return this._json.message?this._json.message.oneOf?this._json.message.oneOf.map(e=>new r(e)):[new r(this._json.message)]:[]}message(e){return this._json.message?this._json.message.oneOf&&1===this._json.message.oneOf.length?new r(this._json.message.oneOf[0]):this._json.message.oneOf?"number"!=typeof e||e>this._json.message.oneOf.length-1?null:new r(this._json.message.oneOf[+e]):new r(this._json.message):null}security(){return this._json.security?this._json.security.map(e=>new o(e)):null}}},function(e,t,n){"use strict";function i(e,t,n,i){var r=i?" !== ":" === ",s=i?" || ":" && ",o=i?"!":"",a=i?"":"!";switch(e){case"null":return t+r+"null";case"array":return o+"Array.isArray("+t+")";case"object":return"("+o+t+s+"typeof "+t+r+'"object"'+s+a+"Array.isArray("+t+"))";case"integer":return"(typeof "+t+r+'"number"'+s+a+"("+t+" % 1)"+s+t+r+t+(n?s+o+"isFinite("+t+")":"")+")";case"number":return"(typeof "+t+r+'"'+e+'"'+(n?s+o+"isFinite("+t+")":"")+")";default:return"typeof "+t+r+'"'+e+'"'}}e.exports={copy:function(e,t){for(var n in t=t||{},e)t[n]=e[n];return t},checkDataType:i,checkDataTypes:function(e,t,n){switch(e.length){case 1:return i(e[0],t,n,!0);default:var r="",o=s(e);for(var a in o.array&&o.object&&(r=o.null?"(":"(!"+t+" || ",r+="typeof "+t+' !== "object")',delete o.null,delete o.array,delete o.object),o.number&&delete o.integer,o)r+=(r?" && ":"")+i(a,t,n,!0);return r}},coerceToTypes:function(e,t){if(Array.isArray(t)){for(var n=[],i=0;i=t)throw new Error("Cannot access property/index "+i+" levels up, current level is "+t);return n[t-i]}if(i>t)throw new Error("Cannot access data "+i+" levels up, current level is "+t);if(s="data"+(t-i||""),!r)return s}for(var a=s,u=r.split("/"),p=0;p0&&r.a.createElement("li",{className:"mb-3 mt-9"},r.a.createElement("a",{className:"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900",href:"#messages",onClick:function(){return o(!1)}},"Messages"),r.a.createElement("ul",{className:"text-sm mt-2"},Object.entries(f).map((function(e){var t=e[0],n=e[1];return r.a.createElement("li",{key:t},r.a.createElement("a",{className:"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900",href:"#message-".concat(t),onClick:function(){return o(!1)}},r.a.createElement("div",{className:"break-all inline-block"},n.uid())))})))),y=d&&Object.keys(d).length>0&&r.a.createElement("li",{className:"mb-3 mt-9"},r.a.createElement("a",{className:"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900",href:"#schemas",onClick:function(){return o(!1)}},"Schemas"),r.a.createElement("ul",{className:"text-sm mt-2"},Object.keys(d).map((function(e){return r.a.createElement("li",{key:e},r.a.createElement("a",{className:"flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900",href:"#schema-".concat(e),onClick:function(){return o(!1)}},r.a.createElement("div",{className:"break-all inline-block"},e)))}))));return r.a.createElement(D.Provider,{value:{setShowSidebar:o}},r.a.createElement("div",{className:"burger-menu rounded-full h-16 w-16 bg-white fixed bottom-16 right-8 flex items-center justify-center z-30 cursor-pointer shadow-md bg-teal-500",onClick:function(){return o((function(e){return!e}))},"data-lol":s},r.a.createElement("svg",{viewBox:"0 0 100 70",width:"40",height:"30",className:"fill-current text-gray-200"},r.a.createElement("rect",{width:"100",height:"10"}),r.a.createElement("rect",{y:"30",width:"100",height:"10"}),r.a.createElement("rect",{y:"60",width:"100",height:"10"}))),r.a.createElement("div",{className:"".concat(s?"block fixed w-full":"hidden"," sidebar relative w-64 max-h-screen h-full bg-gray-200 shadow z-20")},r.a.createElement("div",{className:"".concat(s?"w-full":""," block fixed max-h-screen h-full font-sans px-4 pt-8 pb-16 overflow-y-auto bg-gray-200")},r.a.createElement("div",{className:"sidebar--content"},r.a.createElement("div",null,p?r.a.createElement("img",{src:p,alt:"".concat(u.title()," logo, ").concat(u.version()," version")}):r.a.createElement("h1",{className:"text-2xl font-light"},u.title()," ",u.version())),r.a.createElement("ul",{className:"text-sm mt-10 relative"},r.a.createElement("li",{className:"mb-3"},r.a.createElement("a",{className:"text-gray-700 no-underline hover:text-gray-900",href:"#introduction",onClick:function(){return o(!1)}},"Introduction")),c.hasServers()&&r.a.createElement("li",{className:"mb-3"},r.a.createElement("a",{className:"text-gray-700 no-underline hover:text-gray-900",href:"#servers",onClick:function(){return o(!1)}},"Servers")),c.hasChannels()&&r.a.createElement(r.a.Fragment,null,r.a.createElement("li",{className:"mb-3 mt-9"},r.a.createElement("a",{className:"text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900",href:"#operations",onClick:function(){return o(!1)}},"Operations"),r.a.createElement(h,null)),m,y))))))},A=function(){var e=j().channels(),t=[];return Object.entries(e).forEach((function(e){var n=e[0],i=e[1];i.hasPublish()&&t.push(r.a.createElement(C,{channelName:n,key:"pub-".concat(n)})),i.hasSubscribe()&&t.push(r.a.createElement(T,{channelName:n,key:"sub-".concat(n)}))})),r.a.createElement("ul",{className:"text-sm mt-2"},t)},P=function(){var e=j(),t=e.channels(),n=e.tags(),i=function(e){var n=[];return Object.entries(t).forEach((function(t){var i=t[0],o=t[1];o.hasPublish()&&s.a.containTags(o.publish(),e)&&n.push(r.a.createElement(C,{channelName:i,key:"pub-".concat(i)})),o.hasSubscribe()&&s.a.containTags(o.subscribe(),e)&&n.push(r.a.createElement(T,{channelName:i,key:"sub-".concat(i)}))})),n},o=[];return Object.entries(t).forEach((function(e){var t=e[0],i=e[1];!i.hasPublish()||i.publish().hasTags()&&s.a.containTags(i.publish(),n)||o.push(r.a.createElement(C,{channelName:t,key:"pub-".concat(t)})),!i.hasSubscribe()||i.subscribe().hasTags()&&s.a.containTags(i.subscribe(),n)||o.push(r.a.createElement(T,{channelName:t,key:"sub-".concat(t)}))})),r.a.createElement("div",null,r.a.createElement("ul",null,n&&n.map((function(e){return i(e).length>0&&r.a.createElement("li",{key:e.name()},r.a.createElement(k,{tagName:e.name()},i(e)))})),o.length>0&&r.a.createElement("li",null,r.a.createElement(k,{tagName:"Untagged"},o))))},$=function(){var e=j(),t=e.channels(),n=s.a.operationsTags(e),i=function(e){var n=[];return Object.entries(t).forEach((function(t){var i=t[0],o=t[1];o.hasPublish()&&s.a.containTags(o.publish(),e)&&n.push(r.a.createElement(C,{channelName:i,key:"pub-".concat(i)})),o.hasSubscribe()&&s.a.containTags(o.subscribe(),e)&&n.push(r.a.createElement(T,{channelName:i,key:"sub-".concat(i)}))})),n},o=[];return Object.entries(t).forEach((function(e){var t=e[0],i=e[1];!i.hasPublish()||i.publish().hasTags()&&s.a.containTags(i.publish(),n)||o.push(r.a.createElement(C,{channelName:t,key:"pub-".concat(t)})),!i.hasSubscribe()||i.subscribe().hasTags()&&s.a.containTags(i.subscribe(),n)||o.push(r.a.createElement(T,{channelName:t,key:"sub-".concat(t)}))})),r.a.createElement("div",null,r.a.createElement("ul",null,n&&n.map((function(e){return i(e).length>0&&r.a.createElement("li",{key:e.name()},r.a.createElement(k,{tagName:e.name()},i(e)))})),o.length>0&&r.a.createElement("li",null,r.a.createElement(k,{tagName:"Untagged"},o))))},k=function(e){var t=e.tagName,n=e.children,s=Object(i.useState)(!1),o=s[0],a=s[1];return r.a.createElement("div",null,r.a.createElement(b,{onClick:function(){return a((function(e){return!e}))},chevronProps:{className:o?"-rotate-180":"-rotate-90"}},r.a.createElement("span",{className:"text-sm inline-block mt-1 font-extralight"},t)),r.a.createElement("ul",{className:"".concat(o?"block":"hidden"," text-sm mt-2 font-light")},n))},C=function(e){var t=e.channelName,n=w(),s=Object(i.useContext)(D).setShowSidebar;return r.a.createElement("li",null,r.a.createElement("a",{className:"flex no-underline text-gray-700 mb-2 hover:text-gray-900",href:"#operation-publish-".concat(t),onClick:function(){return s(!1)}},r.a.createElement("span",{className:"bg-blue-600 font-bold h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs",title:"Publish"},n.publishLabel||o.f),r.a.createElement("span",{className:"break-all inline-block"},t)))},T=function(e){var t=e.channelName,n=w(),s=Object(i.useContext)(D).setShowSidebar;return r.a.createElement("li",null,r.a.createElement("a",{className:"flex no-underline text-gray-700 mb-2 hover:text-gray-900",href:"#operation-subscribe-".concat(t),onClick:function(){return s(!1)}},r.a.createElement("span",{className:"bg-green-600 font-bold h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs",title:"Subscribe"},n.subscribeLabel||o.i),r.a.createElement("span",{className:"break-all inline-block"},t)))},O=function(e){var t=e.href,n=e.title,i=e.className,s=e.children;return r.a.createElement("a",{href:t,title:n,className:i,target:"_blank",rel:"nofollow noopener noreferrer"},s)},I=n(56),F=n(57),_=n(15),N=n.n(_),R=n(58),M=n.n(R),B=n(59),L=n.n(B),q=n(60),U=n.n(q);N.a.registerLanguage("json",M.a),N.a.registerLanguage("yaml",L.a),N.a.registerLanguage("bash",U.a);var z={langPrefix:"hljs language-",highlight:function(e,t){if(!N.a.getLanguage(t))return e;try{return N.a.highlight(e,{language:t}).value}catch(t){return e}}};var H=function(e){var t,n=e.children;return n?"string"!=typeof n?r.a.createElement(r.a.Fragment,null,n):r.a.createElement("div",{className:"prose max-w-none text-sm",dangerouslySetInnerHTML:{__html:Object(I.sanitize)((t=n,Object(F.marked)(t,z)))}}):null},V=function(e){var t=e.tag,n="#".concat(t.name()),i=t.description()||"",s=t.externalDocs(),o=r.a.createElement("div",{title:i,className:"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1"},r.a.createElement("span",{className:s?"underline":""},n));return s?r.a.createElement(O,{href:s.url(),title:i},o):o},K=function(e){var t=e.tags;return t&&t.length?r.a.createElement("ul",{className:"flex flex-wrap leading-normal"},t.map((function(e){return r.a.createElement("li",{className:"inline-block mt-2 mr-2",key:e.name()},r.a.createElement(V,{tag:e}))}))):null},J=function(){var e=j(),t=e.info();if(!t)return null;var n=e.id(),i=e.externalDocs(),s=t.license(),a=t.termsOfService(),c=e.defaultContentType(),u=t.contact(),p=s||a||c||u||i;return r.a.createElement("div",{className:"panel-item"},r.a.createElement("div",{className:"panel-item--center px-8 text-left",id:"introduction"},r.a.createElement("div",{className:"text-4xl"},t.title()," ",t.version()),p&&r.a.createElement("ul",{className:"flex flex-wrap mt-2 leading-normal"},s&&r.a.createElement("li",{className:"inline-block mt-2 mr-2"},s.url()?r.a.createElement(O,{className:"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:s.url()},r.a.createElement("span",null,s.name())):r.a.createElement("span",{className:"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1"},s.name())),a&&r.a.createElement("li",{className:"inline-block mt-2 mr-2"},r.a.createElement(O,{className:"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:a},r.a.createElement("span",null,o.j))),c&&r.a.createElement("li",{className:"inline-block mt-2 mr-2"},r.a.createElement(O,{className:"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:"".concat(o.a,"/").concat(c)},r.a.createElement("span",null,c))),i&&r.a.createElement("li",{className:"inline-block mt-2 mr-2"},r.a.createElement(O,{className:"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:i.url()},r.a.createElement("span",null,o.c))),u&&r.a.createElement(r.a.Fragment,null,u.url()&&r.a.createElement("li",{className:"inline-block mt-2 mr-2"},r.a.createElement(O,{className:"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:u.url()},r.a.createElement("span",null,u.name()||o.k))),u.email()&&r.a.createElement("li",{className:"inline-block mt-2 mr-2"},r.a.createElement(O,{className:"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:"mailto:".concat(u.email())},r.a.createElement("span",null,u.email())))),n&&r.a.createElement("li",{className:"inline-block mt-2 mr-2"},r.a.createElement("span",{className:"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs uppercase rounded px-3 py-1"},"ID: ",n))),t.hasDescription()&&r.a.createElement("div",{className:"mt-4"},r.a.createElement(H,null,t.description())),e.hasTags()&&r.a.createElement("div",{className:"mt-4"},r.a.createElement(K,{tags:e.tags()}))),r.a.createElement("div",{className:"panel-item--right"}))},X=function(){function e(){}return e.securityType=function(e){switch(e){case"apiKey":return"API key";case"oauth2":return"OAuth2";case"openIdConnect":return"Open ID";case"http":return"HTTP";case"userPassword":return"User/Password";case"X509":return"X509:";case"symmetricEncryption":return"Symmetric Encription";case"asymmetricEncryption":return"Asymmetric Encription";case"httpApiKey":return"HTTP API key";case"scramSha256":return"ScramSha256";case"scramSha512":return"ScramSha512";case"gssapi":return"GSSAPI";default:return"API key"}},e.flowName=function(e){switch(e){case"implicit":return"Implicit";case"password":return"Password";case"clientCredentials":return"Client credentials";case"authorizationCode":return"Authorization Code";default:return"Implicit"}},e.getKafkaSecurity=function(e,t){var n,i;if(n="kafka"===e?t?"SASL_PLAINTEXT":"PLAINTEXT":t?"SASL_SSL":"SSL",t)switch(t.type()){case"plain":i="PLAIN";break;case"scramSha256":i="SCRAM-SHA-256";break;case"scramSha512":i="SCRAM-SHA-512";break;case"oauth2":i="OAUTHBEARER";break;case"gssapi":i="GSSAPI";break;case"X509":n="SSL"}return{securityProtocol:n,saslMechanism:i}},e}(),W=function(e){var t,n=e.security,i=void 0===n?[]:n,s=e.protocol,o=void 0===s?"":s,a=e.header,c=void 0===a?"Security":a,u=j(),p=u.hasComponents()&&u.components().securitySchemes();if(i&&i.length&&p&&Object.keys(p).length){var l=i.map((function(e){var t=e.json(),n=Object.keys(t)[0],i=p[String(n)],s=t[String(n)];return i?r.a.createElement(G,{protocol:o,securitySchema:i,requiredScopes:s,key:i.type()}):null})).filter(Boolean);t=r.a.createElement("ul",null,l.map((function(e,t){return r.a.createElement("li",{className:"mt-2",key:t},e)})))}else"kafka"!==o&&"kafka-secure"!==o||(t=r.a.createElement(G,{protocol:o,securitySchema:null}));return t?r.a.createElement("div",{className:"text-sm mt-4"},r.a.createElement("h5",{className:"text-gray-800"},c,":"),t):null};var Y,G=function(e){var t,n=e.securitySchema,i=e.protocol,s=function(e,t){void 0===t&&(t=[]);var n=[];return e&&(e.name()&&n.push(r.a.createElement("span",null,"Name: ",e.name())),e.in()&&n.push(r.a.createElement("span",null,"In: ",e.in())),e.scheme()&&n.push(r.a.createElement("span",null,"Scheme: ",e.scheme())),e.bearerFormat()&&n.push(r.a.createElement("span",null,"Bearer format: ",e.bearerFormat())),e.openIdConnectUrl()&&n.push(r.a.createElement(O,{href:e.openIdConnectUrl(),className:"underline"},"Connect URL")),t.length&&n.push(r.a.createElement("span",null,"Required scopes: ",t.join(", ")))),n}(n,e.requiredScopes);if(["kafka","kafka-secure"].includes(i)){var o=X.getKafkaSecurity(i,n),a=o.securityProtocol,c=o.saslMechanism;t=r.a.createElement("div",{className:"px-4 py-2 ml-2 mb-2 border border-gray-400 bg-gray-100 rounded"},a&&r.a.createElement("div",{className:"mt-1"},r.a.createElement("span",{className:"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase"},"security.protocol:"),r.a.createElement("span",{className:"inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1"},a)),c&&r.a.createElement("div",{className:"mt-1"},r.a.createElement("span",{className:"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase"},"sasl.mechanism:"),r.a.createElement("span",{className:"inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1"},c)))}var u=n&&n.flows(),p=u&&Object.entries(u).map((function(e){var t=e[0],n=e[1],i=n.authorizationUrl(),s=n.tokenUrl(),o=n.refreshUrl(),a=n.scopes();return r.a.createElement("div",{className:"px-4 py-2 ml-2 mb-2 border border-gray-400 bg-gray-100 rounded",key:t},r.a.createElement("div",null,r.a.createElement("span",{className:"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase"},"Flow:"),r.a.createElement("span",{className:"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase"},X.flowName(t))),i&&r.a.createElement("div",{className:"mt-1"},r.a.createElement("span",{className:"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase"},"Auth URL:"),r.a.createElement(O,{href:i,className:"underline"},i)),s&&r.a.createElement("div",{className:"mt-1"},r.a.createElement("span",{className:"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase"},"Token URL:"),r.a.createElement(O,{href:s,className:"underline"},s)),o&&r.a.createElement("div",{className:"mt-1"},r.a.createElement("span",{className:"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase"},"Refresh URL:"),r.a.createElement(O,{href:o,className:"underline"},o)),a&&r.a.createElement("div",{className:"mt-1"},r.a.createElement("span",{className:"text-xs font-bold text-gray-600 mt-1 mr-1 uppercase"},"Scopes:"),r.a.createElement("ul",{className:"inline-block"},a&&Object.entries(a).map((function(e){var t=e[0],n=e[1];return r.a.createElement("li",{className:"inline-block font-bold no-underline bg-indigo-400 text-white text-xs rounded py-0 px-1 ml-1",title:n,key:t},t)})))))}));return r.a.createElement("div",null,n&&s&&r.a.createElement("div",null,r.a.createElement("span",null,X.securityType(n.type()),s.length>0&&r.a.createElement("ul",{className:"inline-block ml-2"},s.map((function(e,t){return r.a.createElement("li",{className:"inline-block font-bold no-underline bg-blue-400 text-white text-xs uppercase rounded px-2 py-0 ml-1",key:t},e)}))))),n&&n.hasDescription()&&r.a.createElement("div",null,r.a.createElement(H,null,n.description())),p&&p.length>0&&r.a.createElement("ul",{className:"my-2"},r.a.createElement("li",null,p)),t&&r.a.createElement("div",null,t))},Q=n(10),Z=n.n(Q);!function(e){e.ANY="any",e.RESTRICTED_ANY="restricted any",e.NEVER="never",e.UNKNOWN="unknown"}(Y||(Y={}));var ee=["string","number","integer","boolean","array","object","null"],te=Object.keys({maxLength:"string",minLength:"string",pattern:"string",contentMediaType:"string",contentEncoding:"string",multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",contains:"array",additionalItems:"array",maxProperties:"object",minProperties:"object",required:"object",properties:"object",patternProperties:"object",propertyNames:"object",dependencies:"object",additionalProperties:"object"}),ne=function(){function e(){}return e.toSchemaType=function(e){var t=this;if(!e||"function"!=typeof e.json)return Y.UNKNOWN;if(e.isBooleanSchema())return!0===e.json()?Y.ANY:Y.NEVER;if(0===Object.keys(e.json()).length)return Y.ANY;var n=e.not();if(n&&this.inferType(n)===Y.ANY)return Y.NEVER;var i=this.inferType(e);if(Array.isArray(i))return i.map((function(n){return t.toType(n,e)})).join(" | ");i=this.toType(i,e);var r=this.toCombinedType(e);return i&&r?"".concat(i," ").concat(r):r||i},e.prettifyValue=function(e,t){void 0===t&&(t=!0);var n=typeof e;return"string"===n?t?'"'.concat(e,'"'):e:"number"===n||"bigint"===n||"boolean"===n?"".concat(e):Array.isArray(e)?"[".concat(e.toString(),"]"):JSON.stringify(e)},e.humanizeConstraints=function(e){var t=[],n=this.humanizeNumberRangeConstraint(e.minimum(),e.exclusiveMinimum(),e.maximum(),e.exclusiveMaximum());void 0!==n&&t.push(n);var i=this.humanizeMultipleOfConstraint(e.multipleOf());void 0!==i&&t.push(i);var r=this.humanizeRangeConstraint("characters",e.minLength(),e.maxLength());void 0!==r&&t.push(r);var s=e.uniqueItems(),o=this.humanizeRangeConstraint(s?"unique items":"items",e.minItems(),e.maxItems());void 0!==o&&t.push(o);var a=this.humanizeRangeConstraint("properties",e.minProperties(),e.maxProperties());return void 0!==a&&t.push(a),t},e.isExpandable=function(e){var t=this.inferType(e);if((t=Array.isArray(t)?t:[t]).includes("object")||t.includes("array"))return!0;if(e.oneOf()||e.anyOf()||e.allOf()||Object.keys(e.properties()).length||e.items()||e.not()||e.if()||e.then()||e.else())return!0;var n=this.getCustomExtensions(e);return!(!n||!Object.keys(n).length)},e.serverVariablesToSchema=function(e){var t;if(e&&Object.keys(e).length){var n=((t={type:"object",properties:Object.entries(e).reduce((function(e,t){var n=t[0],i=t[1];return e[n]=Object.assign({},i.json()||{}),e[n].type="string",e}),{}),required:Object.keys(e)})[this.extRenderType]=!1,t[this.extRenderAdditionalInfo]=!1,t);return new Z.a(n)}},e.parametersToSchema=function(e){var t,n=this;if(e&&Object.keys(e).length){var i=((t={type:"object",properties:Object.entries(e).reduce((function(e,t){var i=t[0],r=t[1],s=r.schema();return e[i]=Object.assign({},s?s.json():{}),e[i].description=r.description()||e[i].description,e[i][n.extParameterLocation]=r.location(),e}),{}),required:Object.keys(e)})[this.extRenderType]=!1,t[this.extRenderAdditionalInfo]=!1,t);return new Z.a(i)}},e.jsonToSchema=function(e){var t=this.jsonFieldToSchema(e);return new Z.a(t)},e.getCustomExtensions=function(e){if(e&&"function"==typeof e.extensions)return Object.entries(e.extensions()||{}).reduce((function(e,t){var n=t[0],i=t[1];return n.startsWith("x-parser-")||n.startsWith("x-schema-private-")||(e[n]=i),e}),{})},e.getDependentRequired=function(e,t){var n=[],i=t.dependencies();if(i){for(var r=0,s=Object.entries(i);r")}return e},e.toItemsType=function(e,t){var n=this,i=e.map((function(e){return n.toSchemaType(e)})).join(", "),r=t.additionalItems();if(void 0===r||r.json()){var s=void 0===r||!0===r.json()?Y.ANY:this.toSchemaType(r);return"tuple<".concat(i||Y.UNKNOWN,", ...optional<").concat(s,">>")}return"tuple<".concat(i||Y.UNKNOWN,">")},e.toCombinedType=function(e){return e.oneOf()?"oneOf":e.anyOf()?"anyOf":e.allOf()?"allOf":void 0},e.inferType=function(e){var t=e.type();if(void 0!==t)return Array.isArray(t)?(t.includes("integer")&&t.includes("number")&&(t=t.filter((function(e){return"integer"!==e}))),1===t.length?t[0]:t):t;var n=e.const();if(void 0!==n)return typeof n;var i=e.enum();if(Array.isArray(i)&&i.length){var r=Array.from(new Set(i.map((function(e){return typeof e}))));return 1===r.length?r[0]:r}var s=Object.keys(e.json()||{})||[];return!0===te.some((function(e){return s.includes(e)}))?Y.RESTRICTED_ANY:this.toCombinedType(e)?"":Y.ANY},e.humanizeNumberRangeConstraint=function(e,t,n,i){var r,s=void 0!==t,o=void 0!==e||s,a=void 0!==i,c=void 0!==n||a;return o&&c?(r=s?"( ":"[ ",r+=s?t:e,r+=" .. ",r+=a?i:n,r+=a?" )":" ]"):o?(r=s?"> ":">= ",r+=s?t:e):c&&(r=a?"< ":"<= ",r+=a?i:n),r},e.humanizeMultipleOfConstraint=function(e){if(void 0!==e){var t=e.toString(10);return/^0\.0*1$/.test(t)?"decimal places <= ".concat(t.split(".")[1].length):"multiple of ".concat(t)}},e.humanizeRangeConstraint=function(e,t,n){var i;return void 0!==t&&void 0!==n?i=t===n?"".concat(t," ").concat(e):"[ ".concat(t," .. ").concat(n," ] ").concat(e):void 0!==n?i="<= ".concat(n," ").concat(e):void 0!==t&&(i=1===t?"non-empty":">= ".concat(t," ").concat(e)),i},e.jsonFieldToSchema=function(e){var t,n,i,r,s=this;return null==e?((t={type:"string",const:""})[this.extRawValue]=!0,t):"object"!=typeof e?((n={type:"string",const:"function"==typeof e.toString?e.toString():e})[this.extRawValue]=!0,n):this.isJSONSchema(e)?e:Array.isArray(e)?((i={type:"array",items:e.map((function(e){return s.jsonFieldToSchema(e)}))})[this.extRenderType]=!1,i[this.extRenderAdditionalInfo]=!1,i):((r={type:"object",properties:Object.entries(e).reduce((function(e,t){var n=t[0],i=t[1];return e[n]=s.jsonFieldToSchema(i),e}),{})})[this.extRenderType]=!1,r[this.extRenderAdditionalInfo]=!1,r)},e.isJSONSchema=function(e){return!(!e||"object"!=typeof e||!(ee.includes(e.type)||Array.isArray(e.type)&&e.type.some((function(e){return!ee.includes(e)}))))},e.extRenderType="x-schema-private-render-type",e.extRenderAdditionalInfo="x-schema-private-render-additional-info",e.extRawValue="x-schema-private-raw-value",e.extParameterLocation="x-schema-private-parameter-location",e}(),ie=function(e){var t=e.name,n=void 0===t?"Extensions":t,i=e.item,s=ne.getCustomExtensions(i);if(!s||!Object.keys(s).length)return null;var o=ne.jsonToSchema(s);return o&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(se,{schemaName:n,schema:o,onlyTitle:!0}))},re=r.a.createContext({reverse:!1,deepExpanded:!1}),se=function(e){var t=e.schemaName,n=e.schema,s=e.required,o=void 0!==s&&s,a=e.isPatternProperty,c=void 0!==a&&a,u=e.isProperty,p=void 0!==u&&u,l=e.isCircular,f=void 0!==l&&l,d=e.dependentRequired,h=e.expanded,m=void 0!==h&&h,y=e.onlyTitle,g=void 0!==y&&y,v=Object(i.useContext)(re),x=v.reverse,j=v.deepExpanded,E=Object(i.useState)(m),w=E[0],D=E[1],S=Object(i.useState)(!1),A=S[0],P=S[1];if(Object(i.useEffect)((function(){P(j)}),[j,P]),Object(i.useEffect)((function(){D(A)}),[A,D]),!n||"string"==typeof t&&((null==t?void 0:t.startsWith("x-parser-"))||(null==t?void 0:t.startsWith("x-schema-private-"))))return null;var $=ne.getDependentSchemas(n),k=ne.humanizeConstraints(n),C=n.externalDocs(),T=!1!==n.ext(ne.extRenderType),I=!0===n.ext(ne.extRawValue),F=n.ext(ne.extParameterLocation),_=ne.isExpandable(n)||$,N=ne.toSchemaType(n);f=f||n.isCircular()||n.ext("x-parser-circular")||!1;var R=n.uid(),M=n.items();M&&!Array.isArray(M)?(f=f||M.isCircular()||M.ext("x-parser-circular")||!1)&&"function"==typeof M.circularSchema&&(N=ne.toSchemaType(M.circularSchema())):f&&"function"==typeof n.circularSchema&&(N=ne.toSchemaType(n.circularSchema()));var B=p?"italic":"",L="string"==typeof t?r.a.createElement("span",{className:"break-words text-sm ".concat(B)},t):t;return r.a.createElement(re.Provider,{value:{reverse:!x,deepExpanded:A}},r.a.createElement("div",null,r.a.createElement("div",{className:"flex py-2"},r.a.createElement("div",{className:"".concat(g?"":"min-w-1/4"," mr-2")},_&&!f?r.a.createElement(r.a.Fragment,null,r.a.createElement(b,{onClick:function(){return D((function(e){return!e}))},expanded:w},L),r.a.createElement("button",{type:"button",onClick:function(){return P((function(e){return!e}))},className:"ml-1 text-sm text-gray-500"},A?"Collapse all":"Expand all")):r.a.createElement("span",{className:"break-words text-sm ".concat(p?"italic":"")},t),c&&r.a.createElement("div",{className:"text-gray-500 text-xs italic"},"(pattern property)"),o&&r.a.createElement("div",{className:"text-red-600 text-xs"},"required"),d&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"text-gray-500 text-xs"},"required when defined:"),r.a.createElement("div",{className:"text-red-600 text-xs"},d.join(", "))),n.deprecated()&&r.a.createElement("div",{className:"text-red-600 text-xs"},"deprecated"),n.writeOnly()&&r.a.createElement("div",{className:"text-gray-500 text-xs"},"write-only"),n.readOnly()&&r.a.createElement("div",{className:"text-gray-500 text-xs"},"read-only")),I?r.a.createElement("div",null,r.a.createElement("div",{className:"text-sm"},ne.prettifyValue(n.const(),!1))):r.a.createElement("div",null,r.a.createElement("div",null,T&&r.a.createElement("div",{className:"capitalize text-sm text-teal-500 font-bold inline-block mr-2"},f?"".concat(N," [CIRCULAR]"):N),r.a.createElement("div",{className:"inline-block"},n.format()&&r.a.createElement("span",{className:"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs"},"format: ",n.format()),void 0!==n.pattern()&&r.a.createElement("span",{className:"bg-yellow-600 font-bold no-underline text-white rounded mr-2 p-1 text-xs"},"must match: ",n.pattern()),void 0!==n.contentMediaType()&&r.a.createElement("span",{className:"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs"},"media type: ",n.contentMediaType()),void 0!==n.contentEncoding()&&r.a.createElement("span",{className:"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs"},"encoding: ",n.contentEncoding()),!!k.length&&k.map((function(e){return r.a.createElement("span",{className:"bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs",key:e},e)})),R&&!R.startsWith("e.length?e.repeat(Math.trunc(t/e.length)+1).substring(0,t):e}function ge(...e){const t=e=>e&&"object"==typeof e;return e.reduce((e,n)=>(Object.keys(n).forEach(i=>{const r=e[i],s=n[i];t(r)&&t(s)?e[i]=ge(r,s):e[i]=s}),e),Array.isArray(e[e.length-1])?[]:{})}function ve(e){return{value:"object"===e?{}:"array"===e?[]:void 0}}function be(e,t){t&&e.pop()}const xe={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",additionalItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",properties:"object",patternProperties:"object",dependencies:"object"};function je(e){if(void 0!==e.type)return Array.isArray(e.type)?0===e.type.length?null:e.type[0]:e.type;const t=Object.keys(xe);for(var n=0;nt.maxSampleDepth)return be(Se,i),ve(je(e));if(e.$ref){if(!n)throw new Error("Your schema contains $ref. You must provide full specification in the third parameter.");let r=decodeURIComponent(e.$ref);r.startsWith("#")&&(r=r.substring(1));const s=we.a.get(n,r);let o;if(!0!==De[r])De[r]=!0,o=$e(s,t,n,i),De[r]=!1;else{o=ve(je(s))}return be(Se,i),o}if(void 0!==e.example)return be(Se,i),{value:e.example,readOnly:e.readOnly,writeOnly:e.writeOnly,type:e.type};if(void 0!==e.allOf)return be(Se,i),Pe(e)||function(e,t,n,i,r){let s=$e(e,n,i);const o=[];for(let e of t){const{type:t,readOnly:a,writeOnly:c,value:u}=$e({type:s.type,...e},n,i,r);s.type&&t&&t!==s.type&&(console.warn("allOf: schemas with different types can't be merged"),s.type=t),s.type=s.type||t,s.readOnly=s.readOnly||a,s.writeOnly=s.writeOnly||c,null!=u&&o.push(u)}if("object"===s.type)return s.value=ge(s.value||{},...o.filter(e=>"object"==typeof e)),s;{"array"===s.type&&(n.quiet||console.warn('OpenAPI Sampler: found allOf with "array" type. Result may be incorrect'));const e=o[o.length-1];return s.value=null!=e?e:s.value,s}}({...e,allOf:void 0},e.allOf,t,n,i);if(e.oneOf&&e.oneOf.length){e.anyOf&&(t.quiet||console.warn("oneOf and anyOf are not supported on the same level. Skipping anyOf")),be(Se,i);const r=Object.assign({readOnly:e.readOnly,writeOnly:e.writeOnly},e.oneOf[0]);return Pe(e)||$e(r,t,n,i)}if(e.anyOf&&e.anyOf.length)return be(Se,i),Pe(e)||$e(e.anyOf[0],t,n,i);if(e.if&&e.then)return be(Se,i),Pe(e)||$e(ge(e.if,e.then),t,n,i);let r=Ae(e),s=null;if(void 0===r){r=null,s=e.type,Array.isArray(s)&&e.type.length>0&&(s=e.type[0]),s||(s=je(e));let o=Ie[s];o&&(r=o(e,t,n,i))}return be(Se,i),{value:r,readOnly:e.readOnly,writeOnly:e.writeOnly,type:s}}function ke(e){let t=0;if("boolean"==typeof e.exclusiveMinimum||"boolean"==typeof e.exclusiveMaximum){if(e.maximum&&e.minimum)return t=e.exclusiveMinimum?Math.floor(e.minimum)+1:e.minimum,(e.exclusiveMaximum&&t>=e.maximum||!e.exclusiveMaximum&&t>e.maximum)&&(t=(e.maximum+e.minimum)/2),t;if(e.minimum)return e.exclusiveMinimum?Math.floor(e.minimum)+1:e.minimum;if(e.maximum)return e.exclusiveMaximum?e.maximum>0?0:Math.floor(e.maximum)-1:e.maximum>0?0:e.maximum}else{if(e.minimum)return e.minimum;e.exclusiveMinimum?(t=Math.floor(e.exclusiveMinimum)+1,t===e.exclusiveMaximum&&(t=(t+Math.floor(e.exclusiveMaximum)-1)/2)):e.exclusiveMaximum?t=Math.floor(e.exclusiveMaximum)-1:e.maximum&&(t=e.maximum)}return t}function Ce({min:e,max:t,omitTime:n,omitDate:i}){let r=function(e,t,n,i){var r=n?"":e.getUTCFullYear()+"-"+me(e.getUTCMonth()+1)+"-"+me(e.getUTCDate());return t||(r+="T"+me(e.getUTCHours())+":"+me(e.getUTCMinutes())+":"+me(e.getUTCSeconds())+(i?"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5):"")+"Z"),r}(new Date("2019-08-24T14:15:22.123Z"),n,i,!1);return r.lengtht&&console.warn(`Using maxLength = ${t} is incorrect with format "date-time"`),r}function Te(e,t){let n=ye("string",e);return t&&n.length>t&&(n=n.substring(0,t)),n}const Oe={email:function(){return"user@example.com"},"idn-email":function(){return"пошта@укр.нет"},password:function(e,t){let n="pa$$word";return e>n.length&&(n+="_",n+=ye("qwerty!@#$%^123456",e-n.length).substring(0,e-n.length)),n},"date-time":function(e,t){return Ce({min:e,max:t,omitTime:!1,omitDate:!1})},date:function(e,t){return Ce({min:e,max:t,omitTime:!0,omitDate:!1})},time:function(e,t){return Ce({min:e,max:t,omitTime:!1,omitDate:!0}).slice(1)},ipv4:function(){return"192.168.0.1"},ipv6:function(){return"2001:0db8:85a3:0000:0000:8a2e:0370:7334"},hostname:function(){return"example.com"},"idn-hostname":function(){return"приклад.укр"},iri:function(){return"http://example.com"},"iri-reference":function(){return"../словник"},uri:function(){return"http://example.com"},"uri-reference":function(){return"../dictionary"},"uri-template":function(){return"http://example.com/{endpoint}"},uuid:function(e,t,n){return a=function(e){var t=0;if(0==e.length)return t;for(var n=0;n>>5)|0;return i=r^((s|=0)<<17|s>>>15),r=s+(o|=0)|0,s=o+e|0,((o=i+e|0)>>>0)/4294967296},"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{var t=16*c()%16|0;return("x"==e?t:3&t|8).toString(16)});var i,r,s,o,a,c},default:Te,"json-pointer":function(){return"/json/pointer"},"relative-json-pointer":function(){return"1/relative/json/pointer"},regex:function(){return"/regex/"}};var Ie={};const Fe={skipReadOnly:!1,maxSampleDepth:15};function _e(e,t,n){let i=Object.assign({},Fe,t);return De={},Se=[],$e(e,i,n).value}function Ne(e,t){Ie[e]=t}Ne("array",(function(e,t={},n,i){const r=i&&i.depth||1;let s=Math.min(null!=e.maxItems?e.maxItems:1/0,e.minItems||1);const o=e.items||e.contains;Array.isArray(o)&&(s=Math.max(s,o.length));let a=[];if(!o)return a;for(let i=0;i(e[t]=!0,e),{});Object.keys(e.properties).forEach(o=>{if(t.skipNonRequired&&!i.hasOwnProperty(o))return;const a=$e(e.properties[o],t,n,{propertyName:o,depth:s+1});t.skipReadOnly&&a.readOnly||t.skipWriteOnly&&a.writeOnly||(r[o]=a.value)})}if(e&&"object"==typeof e.additionalProperties){const i=e.additionalProperties["x-additionalPropertiesName"]||"property";r[String(i)+"1"]=$e(e.additionalProperties,t,n,{depth:s+1}).value,r[String(i)+"2"]=$e(e.additionalProperties,t,n,{depth:s+1}).value}return r})),Ne("string",(function(e,t,n,i){let r=e.format||"default",s=Oe[r]||Te,o=i&&i.propertyName;return s(0|e.minLength,e.maxLength,o)}));var Re,Me=function(){function e(){}return e.generateExample=function(e,t){void 0===t&&(t={});try{return this.sanitizeExample(_e(e,t))||""}catch(e){return""}},e.sanitizeExample=function(e){var t=this;return"object"==typeof e&&e&&!Array.isArray(e)?Object.entries(e).reduce((function(e,n){var i=n[0],r=n[1];return i.startsWith("x-parser-")||i.startsWith("x-schema-private-")||(e[i]=t.sanitizeExample(r)),e}),{}):e},e.getPayloadExamples=function(e){var t=e.examples();if(Array.isArray(t)&&t.some((function(e){return e.payload}))){var n=t.flatMap((function(e){if(e.payload)return{name:e.name,summary:e.summary,example:e.payload}})).filter(Boolean);if(n.length>0)return n}var i=e.payload();if(i&&i.examples())return i.examples().map((function(e){return{example:e}}))},e.getHeadersExamples=function(e){var t=e.examples();if(Array.isArray(t)&&t.some((function(e){return e.headers}))){var n=t.flatMap((function(e){if(e.headers)return{name:e.name,summary:e.summary,example:e.headers}})).filter(Boolean);if(n.length>0)return n}var i=e.headers();if(i&&i.examples())return i.examples().map((function(e){return{example:e}}))},e}(),Be=function(e){var t=e.message;if(!t)return null;var n=t.payload(),i=t.headers();return r.a.createElement("div",{className:"bg-gray-800 px-8 py-4 mt-4 -mx-8 2xl:mx-0 2xl:px-4 2xl:rounded examples"},r.a.createElement("h4",{className:"text-white text-lg"},"Examples"),n&&r.a.createElement(Le,{type:"Payload",schema:n,examples:Me.getPayloadExamples(t)}),i&&r.a.createElement(Le,{type:"Headers",schema:i,examples:Me.getHeadersExamples(t)}))},Le=function(e){var t=e.type,n=void 0===t?"Payload":t,s=e.schema,o=e.examples,a=void 0===o?[]:o,c=Object(i.useState)(!1),u=c[0],p=c[1];return r.a.createElement("div",{className:"mt-4"},r.a.createElement("div",null,r.a.createElement(b,{onClick:function(){return p((function(e){return!e}))},expanded:u,chevronProps:{className:"fill-current text-gray-200"}},r.a.createElement("span",{className:"inline-block w-20 py-0.5 mr-1 text-gray-200 text-sm border text-center rounded focus:outline-none"},n))),r.a.createElement("div",{className:u?"block":"hidden"},a&&a.length>0?r.a.createElement("ul",null,a.map((function(e,t){return r.a.createElement("li",{className:"mt-4",key:t},r.a.createElement("h5",{className:"text-xs font-bold text-gray-500"},e.name?"#".concat(t+1," Example - ").concat(e.name):"#".concat(t+1," Example")),e.summary&&r.a.createElement("p",{className:"text-xs font-bold text-gray-500"},e.summary),r.a.createElement("div",{className:"mt-1"},r.a.createElement(he,{snippet:Me.sanitizeExample(e.example)})))}))):r.a.createElement("div",{className:"mt-4"},r.a.createElement(he,{snippet:Me.generateExample(s.json())}),r.a.createElement("h6",{className:"text-xs font-bold text-gray-600 italic mt-2"},"This example has been generated automatically."))))},qe=function(e){var t=e.message,n=e.messageName,i=e.index,s=e.showExamples,a=void 0!==s&&s,c=w();if(!t)return null;var u="function"==typeof t.id&&t.id(),p=t.title(),l=t.summary(),f=t.payload(),d=t.headers(),h=t.correlationId(),m=t.contentType(),y=t.externalDocs(),g=m||y;return r.a.createElement("div",{className:"panel-item"},r.a.createElement("div",{className:"panel-item--center px-8"},r.a.createElement("div",{className:"shadow rounded bg-gray-200 p-4 border"},r.a.createElement("div",null,void 0!==i&&r.a.createElement("span",{className:"text-gray-700 font-bold mr-2"},"#",i),p&&r.a.createElement("span",{className:"text-gray-700 mr-2"},p),r.a.createElement("span",{className:"border text-orange-600 rounded text-xs py-0 px-2"},t.uid())),l&&r.a.createElement("p",{className:"text-gray-600 text-sm"},l),g&&r.a.createElement("ul",{className:"leading-normal mt-2 mb-4 space-x-2 space-y-2"},m&&r.a.createElement("li",{className:"inline-block"},r.a.createElement(O,{className:"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:"".concat(o.a,"/").concat(m)},r.a.createElement("span",null,m))),y&&r.a.createElement("li",{className:"inline-block"},r.a.createElement(O,{className:"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:y.url()},r.a.createElement("span",null,o.c)))),u&&r.a.createElement("div",{className:"border bg-gray-100 rounded px-4 py-2 mt-2"},r.a.createElement("div",{className:"text-sm text-gray-700"},"Message ID",r.a.createElement("span",{className:"border text-orange-600 rounded text-xs ml-2 py-0 px-2"},u))),h&&r.a.createElement("div",{className:"border bg-gray-100 rounded px-4 py-2 mt-2"},r.a.createElement("div",{className:"text-sm text-gray-700"},"Correlation ID",r.a.createElement("span",{className:"border text-orange-600 rounded text-xs ml-2 py-0 px-2"},h.location())),h.hasDescription()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(H,null,h.description()))),t.hasDescription()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(H,null,t.description())),f&&r.a.createElement("div",{className:"mt-2",id:n?le.getIdentifier("message-".concat(n,"-payload"),c):void 0},r.a.createElement(se,{schemaName:"Payload",schema:f})),d&&r.a.createElement("div",{className:"mt-2",id:n?le.getIdentifier("message-".concat(n,"-headers"),c):void 0},r.a.createElement(se,{schemaName:"Headers",schema:d})),t.hasBindings()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(pe,{name:"Message specific information",bindings:t.bindings()})),r.a.createElement(ie,{item:t}),t.hasTags()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(K,{tags:t.tags()})))),a&&r.a.createElement("div",{className:"panel-item--right px-8"},r.a.createElement(Be,{message:t})))},Ue=n(7),ze=function(){return(ze=Object.assign||function(e){for(var t,n=1,i=arguments.length;n0?r.a.createElement("div",{className:"mt-2 text-sm"},r.a.createElement("p",null,"Available only on servers:"),r.a.createElement("ul",{className:"flex flex-wrap leading-normal"},c.map((function(e){return r.a.createElement("li",{className:"inline-block mt-2 mr-2",key:e},r.a.createElement("a",{href:"#".concat(le.getIdentifier("server-"+e,t)),className:"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer"},r.a.createElement("span",{className:"underline"},e)))})))):null,p&&r.a.createElement("div",{className:"mt-2",id:le.getIdentifier("operation-".concat(i,"-").concat(o,"-parameters"),t)},r.a.createElement(se,{schemaName:"Parameters",schema:p,expanded:!0})),u&&r.a.createElement("div",{className:"mt-2",id:le.getIdentifier("operation-".concat(i,"-").concat(o,"-security"),t)},r.a.createElement(W,{security:u,header:"Additional security requirements"})),a.hasBindings()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(pe,{name:"Channel specific information",bindings:a.bindings()})),r.a.createElement(ie,{name:"Channel Extensions",item:a}),s.hasBindings()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(pe,{name:"Operation specific information",bindings:s.bindings()})),r.a.createElement(ie,{name:"Operation Extensions",item:s}),s.hasTags()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(K,{tags:s.tags()}))),r.a.createElement("div",{className:"w-full mt-4",id:le.getIdentifier("operation-".concat(i,"-").concat(o,"-message"),t)},s.hasMultipleMessages()?r.a.createElement("div",{className:"mt-2"},r.a.createElement("p",{className:"px-8"},"Accepts ",r.a.createElement("strong",null,"one of")," the following messages:"),r.a.createElement("ul",null,s.messages().map((function(e,t){return r.a.createElement("li",{className:"mt-4",key:t},r.a.createElement(qe,{message:e,index:t,showExamples:!0}))})))):r.a.createElement("div",{className:"mt-2"},r.a.createElement("p",{className:"px-8"},"Accepts the following message:"),r.a.createElement("div",{className:"mt-2"},r.a.createElement(qe,{message:s.message(0),showExamples:!0})))))},Ve=function(e){var t=e.type,n=void 0===t?Ue.a.PUBLISH:t,i=e.operation,s=e.channelName,a=e.channel,c=w(),u=i.summary(),p=i.externalDocs(),l=i.id();return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"mb-4"},r.a.createElement("h3",null,r.a.createElement("span",{className:"font-mono border uppercase p-1 rounded mr-2 ".concat(n===Ue.a.PUBLISH?"border-blue-600 text-blue-500":"border-green-600 text-green-600"),title:n},n===Ue.a.PUBLISH?c.publishLabel||o.f:c.subscribeLabel||o.i)," ",r.a.createElement("span",{className:"font-mono text-base"},s))),a.hasDescription()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(H,null,a.description())),u&&r.a.createElement("p",{className:"text-gray-600 text-sm mt-2"},u),i.hasDescription()&&r.a.createElement("div",{className:"mt-2"},r.a.createElement(H,null,i.description())),p&&r.a.createElement("ul",{className:"leading-normal mt-2 mb-4 space-x-2 space-y-2"},p&&r.a.createElement("li",{className:"inline-block"},r.a.createElement(O,{className:"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1",href:p.url()},r.a.createElement("span",null,o.c)))),l&&r.a.createElement("div",{className:"border bg-gray-100 rounded px-4 py-2 mt-2"},r.a.createElement("div",{className:"text-sm text-gray-700"},"Operation ID",r.a.createElement("span",{className:"border text-orange-600 rounded text-xs ml-2 py-0 px-2"},l))))},Ke=function(){var e=j().channels(),t=w();if(!Object.keys(e).length)return null;var n=[];return Object.entries(e).forEach((function(e){var i=e[0],s=e[1];s.hasPublish()&&n.push(r.a.createElement("li",{className:"mb-12",key:"pub-".concat(i),id:le.getIdentifier("operation-".concat(Ue.a.PUBLISH,"-").concat(i),t)},r.a.createElement(He,{type:Ue.a.PUBLISH,operation:s.publish(),channelName:i,channel:s}))),s.hasSubscribe()&&n.push(r.a.createElement("li",{className:"mb-12",key:"sub-".concat(i),id:le.getIdentifier("operation-".concat(Ue.a.SUBSCRIBE,"-").concat(i),t)},r.a.createElement(He,{type:Ue.a.SUBSCRIBE,operation:s.subscribe(),channelName:i,channel:s})))})),r.a.createElement("section",{id:"".concat(le.getIdentifier("operations",t)),className:"mt-16"},r.a.createElement("h2",{className:"2xl:w-7/12 text-3xl font-light mb-4 px-8"},o.e),r.a.createElement("ul",null,n))},Je=function(){var e=j(),t=w(),n=e.hasComponents()&&e.components().messages();return n&&0!==Object.keys(n).length?r.a.createElement("section",{id:"".concat(le.getIdentifier("messages",t)),className:"mt-16"},r.a.createElement("h2",{className:"2xl:w-7/12 text-3xl font-light mb-4 px-8"},o.d),r.a.createElement("ul",null,Object.entries(n).map((function(e,n){var i=e[0],s=e[1];return r.a.createElement("li",{className:"mb-4",key:i,id:le.getIdentifier("message-".concat(i),t)},r.a.createElement(qe,{messageName:i,message:s,index:n+1,key:i}))})))):null},Xe=function(e){var t=e.schemaName,n=e.schema;return n?r.a.createElement("div",null,r.a.createElement("div",{className:"panel-item--center px-8"},r.a.createElement("div",{className:"shadow rounded px-4 py-2 border bg-gray-200"},r.a.createElement(se,{schemaName:t,schema:n}))),r.a.createElement("div",{className:"w-full mt-4"})):null},We=function(){var e=j(),t=w(),n=e.hasComponents()&&e.components().schemas();return n&&0!==Object.keys(n).length?r.a.createElement("section",{id:"".concat(le.getIdentifier("schemas",t)),className:"mt-16"},r.a.createElement("h2",{className:"2xl:w-7/12 text-3xl font-light mb-4 px-8"},o.g),r.a.createElement("ul",null,Object.entries(n).map((function(e){var n=e[0],i=e[1];return r.a.createElement("li",{className:"mb-4",key:n,id:le.getIdentifier("schema-".concat(n),t)},r.a.createElement(Xe,{schemaName:n,schema:i}))})))):null},Ye=function(e){var t=e.error;if(!t)return null;var n,i=t.title,s=t.validationErrors;return r.a.createElement("div",{className:"panel-item"},r.a.createElement("div",{className:"panel-item--center p-8"},r.a.createElement("section",{className:"shadow rounded bg-gray-200 border-red-500 border-l-8"},r.a.createElement("h2",{className:"p-2"},i?"".concat(o.b,": ").concat(i):o.b),s&&s.length?r.a.createElement("div",{className:"bg-gray-800 text-white text-xs p-2"},r.a.createElement("pre",null,(n=s)?n.map((function(e,t){return e&&e.title&&e.location?r.a.createElement("div",{key:t,className:"flex"},r.a.createElement("span",null,"".concat(e.location.startLine,".")),r.a.createElement("code",{className:"whitespace-pre-wrap break-all ml-2"},e.title)):null})).filter(Boolean):null)):null)),r.a.createElement("div",{className:"panel-item--right"}))},Ge=function(e){var t,n,s,o,a,c,p,l=e.asyncapi,f=e.config,d=e.error,h=void 0===d?null:d,m=Object(i.useState)("container:xl"),y=m[0],g=m[1],v=u({onResize:function(e){var t=e.width;requestAnimationFrame((function(){if(void 0!==t){var e=t<=1280?"container:xl":"container:base";e!==y&&g(e)}}))}}).ref;return r.a.createElement(E.Provider,{value:f},r.a.createElement(x.Provider,{value:l},r.a.createElement("section",{className:"aui-root"},r.a.createElement("div",{className:"".concat(y," relative md:flex bg-white leading-normal"),id:f.schemaID||void 0,ref:v},(null===(t=f.show)||void 0===t?void 0:t.sidebar)&&r.a.createElement(S,{config:f.sidebar}),r.a.createElement("div",{className:"panel--center relative py-8 flex-1"},r.a.createElement("div",{className:"relative z-10"},(null===(n=f.show)||void 0===n?void 0:n.errors)&&h&&r.a.createElement(Ye,{error:h}),(null===(s=f.show)||void 0===s?void 0:s.info)&&r.a.createElement(J,null),(null===(o=f.show)||void 0===o?void 0:o.servers)&&r.a.createElement(de,null),(null===(a=f.show)||void 0===a?void 0:a.operations)&&r.a.createElement(Ke,null),(null===(c=f.show)||void 0===c?void 0:c.messages)&&r.a.createElement(Je,null),(null===(p=f.show)||void 0===p?void 0:p.schemas)&&r.a.createElement(We,null)),r.a.createElement("div",{className:"panel--right absolute top-0 right-0 h-full bg-gray-800"}))))))},Qe=(Re=function(e,t){return(Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}Re(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),Ze=function(){return(Ze=Object.assign||function(e){for(var t,n=1,i=arguments.length;n0&&r[r.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]new c(e)):null}},u,p,l,f)},function(e,t,n){const{mix:i}=n(2),r=n(3),s=n(6),o=n(4);e.exports=i(class extends r{allowedValues(){return this._json.enum}allows(e){return void 0===this._json.enum||this._json.enum.includes(e)}hasAllowedValues(){return void 0!==this._json.enum}defaultValue(){return this._json.default}hasDefaultValue(){return void 0!==this._json.default}examples(){return this._json.examples}},s,o)},function(e,t,n){const{createMapOfType:i,getMapValueOfType:r,mix:s}=n(2),o=n(3),a=n(41),c=n(80),u=n(84),p=n(6),l=n(21),f=n(4);e.exports=s(class extends o{parameters(){return i(this._json.parameters,a)}parameter(e){return r(this._json.parameters,e,a)}hasParameters(){return!!this._json.parameters}hasServers(){return!!this._json.servers}servers(){return this._json.servers?this._json.servers:[]}server(e){return this._json.servers?"number"!=typeof e||e>this._json.servers.length-1?null:this._json.servers[+e]:null}publish(){return this._json.publish?new c(this._json.publish):null}subscribe(){return this._json.subscribe?new u(this._json.subscribe):null}hasPublish(){return!!this._json.publish}hasSubscribe(){return!!this._json.subscribe}},p,l,f)},function(e,t,n){const{mix:i}=n(2),r=n(3),s=n(10),o=n(6),a=n(4);e.exports=i(class extends r{location(){return this._json.location}schema(){return this._json.schema?new s(this._json.schema):null}},o,a)},function(e,t,n){const{mix:i}=n(2),r=n(3),s=n(6),o=n(22),a=n(17),c=n(21),u=n(4);e.exports=i(class extends r{id(){return this._json.operationId}summary(){return this._json.summary}},s,o,a,c,u)},function(e,t,n){(function(t){const i=n(44),r=n(45),s=n(10);e.exports=class extends r{uid(){return this.id()||this.name()||this.ext("x-parser-message-name")||t.from(JSON.stringify(this._json)).toString("base64")}payload(){return this._json.payload?new s(this._json.payload):null}traits(){const e=this._json["x-parser-original-traits"]||this._json.traits;return e?e.map(e=>new i(e)):[]}hasTraits(){return!!this._json["x-parser-original-traits"]||!!this._json.traits}originalPayload(){return this._json["x-parser-original-payload"]||this.payload()}originalSchemaFormat(){return this._json["x-parser-original-schema-format"]||this.schemaFormat()}}}).call(this,n(11).Buffer)},function(e,t,n){const i=n(45);e.exports=class extends i{}},function(e,t,n){const{getMapValueOfType:i,mix:r}=n(2),s=n(3),o=n(10),a=n(46),c=n(6),u=n(17),p=n(22),l=n(21),f=n(4);e.exports=r(class extends s{headers(){return this._json.headers?new o(this._json.headers):null}header(e){return this._json.headers?i(this._json.headers.properties,e,o):null}id(){return this._json.messageId}correlationId(){return this._json.correlationId?new a(this._json.correlationId):null}schemaFormat(){return this._json.schemaFormat}contentType(){return this._json.contentType}name(){return this._json.name}title(){return this._json.title}summary(){return this._json.summary}examples(){return this._json.examples}},c,p,u,l,f)},function(e,t,n){const{mix:i}=n(2),r=n(3),s=n(6),o=n(4);e.exports=i(class extends r{location(){return this._json.location}},o,s)},function(e,t,n){const i=n(42);e.exports=class extends i{}},function(e,t){const n=Object.freeze({NEW_SCHEMA:"NEW_SCHEMA",END_SCHEMA:"END_SCHEMA"}),i=Object.freeze({parameters:"parameters",payloads:"payloads",headers:"headers",components:"components",objects:"objects",arrays:"arrays",oneOfs:"oneOfs",allOfs:"allOfs",anyOfs:"anyOfs",nots:"nots",propertyNames:"propertyNames",patternProperties:"patternProperties",contains:"contains",ifs:"ifs",thenes:"thenes",elses:"elses",dependencies:"dependencies",definitions:"definitions"});function r(e,t,s){if(!e)return;const{callback:o,schemaTypesToIterate:a,seenSchemas:c}=s,u=e.json();if(c.has(u))return;c.add(u);let p=e.type()||[];Array.isArray(p)||(p=[p]),!a.includes(i.objects)&&p.includes("object")||!a.includes(i.arrays)&&p.includes("array")||!1!==o(e,t,n.NEW_SCHEMA)&&(a.includes(i.objects)&&p.includes("object")&&function(e,t){Object.entries(e.properties()||{}).forEach(([e,n])=>{r(n,e,t)});const n=e.additionalProperties();"object"==typeof n&&r(n,null,t);const s=t.schemaTypesToIterate;s.includes(i.propertyNames)&&e.propertyNames()&&r(e.propertyNames(),null,t);s.includes(i.patternProperties)&&Object.entries(e.patternProperties()||{}).forEach(([e,n])=>{r(n,e,t)})}(e,s),a.includes(i.arrays)&&p.includes("array")&&function(e,t){const n=e.items();n&&(Array.isArray(n)?n.forEach((e,n)=>{r(e,n,t)}):r(n,null,t));const s=e.additionalItems();"object"==typeof s&&r(s,null,t);t.schemaTypesToIterate.includes(i.contains)&&e.contains()&&r(e.contains(),null,t)}(e,s),a.includes(i.oneOfs)&&(e.oneOf()||[]).forEach((e,t)=>{r(e,t,s)}),a.includes(i.anyOfs)&&(e.anyOf()||[]).forEach((e,t)=>{r(e,t,s)}),a.includes(i.allOfs)&&(e.allOf()||[]).forEach((e,t)=>{r(e,t,s)}),a.includes(i.nots)&&e.not()&&r(e.not(),null,s),a.includes(i.ifs)&&e.if()&&r(e.if(),null,s),a.includes(i.thenes)&&e.then()&&r(e.then(),null,s),a.includes(i.elses)&&e.else()&&r(e.else(),null,s),a.includes(i.dependencies)&&Object.entries(e.dependencies()||{}).forEach(([e,t])=>{t&&!Array.isArray(t)&&r(t,e,s)}),a.includes(i.definitions)&&Object.entries(e.definitions()||{}).forEach(([e,t])=>{r(t,e,s)}),o(e,t,n.END_SCHEMA),c.delete(u))}function s(e,t){if(!e)return;const{schemaTypesToIterate:n}=t;n.includes(i.headers)&&r(e.headers(),null,t),n.includes(i.payloads)&&r(e.payload(),null,t)}e.exports={SchemaIteratorCallbackType:n,SchemaTypesToIterate:i,traverseAsyncApiDocument:function(e,t,n){n||(n=Object.values(i));const o={callback:t,schemaTypesToIterate:n,seenSchemas:new Set};if(e.hasChannels()&&Object.values(e.channels()).forEach(e=>{!function(e,t){if(!e)return;const{schemaTypesToIterate:n}=t;n.includes(i.parameters)&&Object.values(e.parameters()||{}).forEach(e=>{r(e.schema(),null,t)});e.hasPublish()&&e.publish().messages().forEach(e=>{s(e,t)});e.hasSubscribe()&&e.subscribe().messages().forEach(e=>{s(e,t)})}(e,o)}),n.includes(i.components)&&e.hasComponents()){const t=e.components();Object.values(t.messages()||{}).forEach(e=>{s(e,o)}),Object.values(t.schemas()||{}).forEach(e=>{r(e,null,o)}),n.includes(i.parameters)&&Object.values(t.parameters()||{}).forEach(e=>{r(e.schema(),null,o)}),Object.values(t.messageTraits()||{}).forEach(e=>{!function(e,t){if(!e)return;const{schemaTypesToIterate:n}=t;n.includes(i.headers)&&r(e.headers(),null,t)}(e,o)})}}}},function(e,t,n){ - /*! @license DOMPurify 2.3.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.6/LICENSE */ - e.exports=function(){"use strict";var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,i=Object.getPrototypeOf,r=Object.getOwnPropertyDescriptor,s=Object.freeze,o=Object.seal,a=Object.create,c="undefined"!=typeof Reflect&&Reflect,u=c.apply,p=c.construct;u||(u=function(e,t,n){return e.apply(t,n)}),s||(s=function(e){return e}),o||(o=function(e){return e}),p||(p=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?n-1:0),r=1;r/gm),B=o(/^data-[\-\w.\u00B7-\uFFFF]/),L=o(/^aria-[\-\w]+$/),q=o(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),U=o(/^(?:\w+script|data):/i),z=o(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),H=o(/^html$/i),V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function K(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:J(),n=function(t){return e(t)};if(n.version="2.3.6",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var i=t.document,r=t.document,o=t.DocumentFragment,a=t.HTMLTemplateElement,c=t.Node,u=t.Element,p=t.NodeFilter,l=t.NamedNodeMap,E=void 0===l?t.NamedNodeMap||t.MozNamedAttrMap:l,W=t.HTMLFormElement,Y=t.DOMParser,G=t.trustedTypes,Q=u.prototype,Z=S(Q,"cloneNode"),ee=S(Q,"nextSibling"),te=S(Q,"childNodes"),ne=S(Q,"parentNode");if("function"==typeof a){var ie=r.createElement("template");ie.content&&ie.content.ownerDocument&&(r=ie.content.ownerDocument)}var re=X(G,i),se=re?re.createHTML(""):"",oe=r,ae=oe.implementation,ce=oe.createNodeIterator,ue=oe.createDocumentFragment,pe=oe.getElementsByTagName,le=i.importNode,fe={};try{fe=D(r).documentMode?r.documentMode:{}}catch(e){}var de={};n.isSupported="function"==typeof ne&&ae&&void 0!==ae.createHTMLDocument&&9!==fe;var he=R,me=M,ye=B,ge=L,ve=U,be=z,xe=q,je=null,Ee=w({},[].concat(K(A),K(P),K($),K(C),K(O))),we=null,De=w({},[].concat(K(I),K(F),K(_),K(N))),Se=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ae=null,Pe=null,$e=!0,ke=!0,Ce=!1,Te=!1,Oe=!1,Ie=!1,Fe=!1,_e=!1,Ne=!1,Re=!1,Me=!0,Be=!0,Le=!1,qe={},Ue=null,ze=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),He=null,Ve=w({},["audio","video","img","source","image","track"]),Ke=null,Je=w({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Xe="http://www.w3.org/1998/Math/MathML",We="http://www.w3.org/2000/svg",Ye="http://www.w3.org/1999/xhtml",Ge=Ye,Qe=!1,Ze=void 0,et=["application/xhtml+xml","text/html"],tt="text/html",nt=void 0,it=null,rt=r.createElement("form"),st=function(e){return e instanceof RegExp||e instanceof Function},ot=function(e){it&&it===e||(e&&"object"===(void 0===e?"undefined":V(e))||(e={}),e=D(e),je="ALLOWED_TAGS"in e?w({},e.ALLOWED_TAGS):Ee,we="ALLOWED_ATTR"in e?w({},e.ALLOWED_ATTR):De,Ke="ADD_URI_SAFE_ATTR"in e?w(D(Je),e.ADD_URI_SAFE_ATTR):Je,He="ADD_DATA_URI_TAGS"in e?w(D(Ve),e.ADD_DATA_URI_TAGS):Ve,Ue="FORBID_CONTENTS"in e?w({},e.FORBID_CONTENTS):ze,Ae="FORBID_TAGS"in e?w({},e.FORBID_TAGS):{},Pe="FORBID_ATTR"in e?w({},e.FORBID_ATTR):{},qe="USE_PROFILES"in e&&e.USE_PROFILES,$e=!1!==e.ALLOW_ARIA_ATTR,ke=!1!==e.ALLOW_DATA_ATTR,Ce=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Te=e.SAFE_FOR_TEMPLATES||!1,Oe=e.WHOLE_DOCUMENT||!1,_e=e.RETURN_DOM||!1,Ne=e.RETURN_DOM_FRAGMENT||!1,Re=e.RETURN_TRUSTED_TYPE||!1,Fe=e.FORCE_BODY||!1,Me=!1!==e.SANITIZE_DOM,Be=!1!==e.KEEP_CONTENT,Le=e.IN_PLACE||!1,xe=e.ALLOWED_URI_REGEXP||xe,Ge=e.NAMESPACE||Ye,e.CUSTOM_ELEMENT_HANDLING&&st(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Se.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&st(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Se.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Se.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ze=Ze=-1===et.indexOf(e.PARSER_MEDIA_TYPE)?tt:e.PARSER_MEDIA_TYPE,nt="application/xhtml+xml"===Ze?function(e){return e}:m,Te&&(ke=!1),Ne&&(_e=!0),qe&&(je=w({},[].concat(K(O))),we=[],!0===qe.html&&(w(je,A),w(we,I)),!0===qe.svg&&(w(je,P),w(we,F),w(we,N)),!0===qe.svgFilters&&(w(je,$),w(we,F),w(we,N)),!0===qe.mathMl&&(w(je,C),w(we,_),w(we,N))),e.ADD_TAGS&&(je===Ee&&(je=D(je)),w(je,e.ADD_TAGS)),e.ADD_ATTR&&(we===De&&(we=D(we)),w(we,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&w(Ke,e.ADD_URI_SAFE_ATTR),e.FORBID_CONTENTS&&(Ue===ze&&(Ue=D(Ue)),w(Ue,e.FORBID_CONTENTS)),Be&&(je["#text"]=!0),Oe&&w(je,["html","head","body"]),je.table&&(w(je,["tbody"]),delete Ae.tbody),s&&s(e),it=e)},at=w({},["mi","mo","mn","ms","mtext"]),ct=w({},["foreignobject","desc","title","annotation-xml"]),ut=w({},P);w(ut,$),w(ut,k);var pt=w({},C);w(pt,T);var lt=function(e){var t=ne(e);t&&t.tagName||(t={namespaceURI:Ye,tagName:"template"});var n=m(e.tagName),i=m(t.tagName);if(e.namespaceURI===We)return t.namespaceURI===Ye?"svg"===n:t.namespaceURI===Xe?"svg"===n&&("annotation-xml"===i||at[i]):Boolean(ut[n]);if(e.namespaceURI===Xe)return t.namespaceURI===Ye?"math"===n:t.namespaceURI===We?"math"===n&&ct[i]:Boolean(pt[n]);if(e.namespaceURI===Ye){if(t.namespaceURI===We&&!ct[i])return!1;if(t.namespaceURI===Xe&&!at[i])return!1;var r=w({},["title","style","font","a","script"]);return!pt[n]&&(r[n]||!ut[n])}return!1},ft=function(e){h(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){try{e.outerHTML=se}catch(t){e.remove()}}},dt=function(e,t){try{h(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){h(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!we[e])if(_e||Ne)try{ft(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},ht=function(e){var t=void 0,n=void 0;if(Fe)e=""+e;else{var i=y(e,/^[\r\n\t ]+/);n=i&&i[0]}"application/xhtml+xml"===Ze&&(e=''+e+"");var s=re?re.createHTML(e):e;if(Ge===Ye)try{t=(new Y).parseFromString(s,Ze)}catch(e){}if(!t||!t.documentElement){t=ae.createDocument(Ge,"template",null);try{t.documentElement.innerHTML=Qe?"":s}catch(e){}}var o=t.body||t.documentElement;return e&&n&&o.insertBefore(r.createTextNode(n),o.childNodes[0]||null),Ge===Ye?pe.call(t,Oe?"html":"body")[0]:Oe?t.documentElement:o},mt=function(e){return ce.call(e.ownerDocument||e,e,p.SHOW_ELEMENT|p.SHOW_COMMENT|p.SHOW_TEXT,null,!1)},yt=function(e){return e instanceof W&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof E)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore)},gt=function(e){return"object"===(void 0===c?"undefined":V(c))?e instanceof c:e&&"object"===(void 0===e?"undefined":V(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},vt=function(e,t,i){de[e]&&f(de[e],(function(e){e.call(n,t,i,it)}))},bt=function(e){var t=void 0;if(vt("beforeSanitizeElements",e,null),yt(e))return ft(e),!0;if(y(e.nodeName,/[\u0080-\uFFFF]/))return ft(e),!0;var i=nt(e.nodeName);if(vt("uponSanitizeElement",e,{tagName:i,allowedTags:je}),!gt(e.firstElementChild)&&(!gt(e.content)||!gt(e.content.firstElementChild))&&x(/<[/\w]/g,e.innerHTML)&&x(/<[/\w]/g,e.textContent))return ft(e),!0;if("select"===i&&x(/