diff --git a/.github/workflows/update-maintainers-trigger.yaml b/.github/workflows/update-maintainers-trigger.yaml new file mode 100644 index 000000000..12fc4abe4 --- /dev/null +++ b/.github/workflows/update-maintainers-trigger.yaml @@ -0,0 +1,28 @@ +# This action is centrally managed in https://github.com/asyncapi/.github/ +# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo + +name: Trigger MAINTAINERS.yaml file update + +on: + push: + branches: [ master ] + paths: + # Check all valid CODEOWNERS locations: + # https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-location + - 'CODEOWNERS' + - '.github/CODEOWNERS' + - '.docs/CODEOWNERS' + +jobs: + trigger-maintainers-update: + name: Trigger updating MAINTAINERS.yaml because of CODEOWNERS change + runs-on: ubuntu-latest + + steps: + - name: Repository Dispatch + uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # https://github.com/peter-evans/repository-dispatch/releases/tag/v3.0.0 + with: + # The PAT with the 'public_repo' scope is required + token: ${{ secrets.GH_TOKEN }} + repository: ${{ github.repository_owner }}/community + event-type: trigger-maintainers-update diff --git a/CODEOWNERS b/CODEOWNERS index d0bb2424f..b177b9f9e 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -5,4 +5,4 @@ # For more details, read the following article on GitHub: https://help.github.com/articles/about-codeowners/. # These are the default owners for the whole content of the "@asyncapi/asyncapi-react" repository. The default owners are automatically added as reviewers when you open a pull request unless different owners are specified in the file. -* @magicmatatjahu @derberg @fmvilas @asyncapi-bot-eve +* @magicmatatjahu @fmvilas @asyncapi-bot-eve @AceTheCreator diff --git a/library/package.json b/library/package.json index c672910a4..95b5c5e09 100644 --- a/library/package.json +++ b/library/package.json @@ -1,6 +1,6 @@ { "name": "@asyncapi/react-component", - "version": "2.2.2", + "version": "2.5.0", "private": false, "description": "A React component for AsyncAPI specification.", "repository": { @@ -70,12 +70,13 @@ "dependencies": { "@asyncapi/avro-schema-parser": "^3.0.24", "@asyncapi/openapi-schema-parser": "^3.0.24", - "@asyncapi/parser": "^3.1.0", - "@asyncapi/protobuf-schema-parser": "^3.2.14", + "@asyncapi/parser": "^3.3.0", + "@asyncapi/protobuf-schema-parser": "^3.3.0", "highlight.js": "^10.7.2", "isomorphic-dompurify": "^2.14.0", "marked": "^4.0.14", "openapi-sampler": "^1.2.1", + "react-error-boundary": "^4.1.2", "use-resize-observer": "^9.1.0" }, "peerDependencies": { diff --git a/library/src/components/Bindings.tsx b/library/src/components/Bindings.tsx index f40deb37f..a6c8fcc39 100644 --- a/library/src/components/Bindings.tsx +++ b/library/src/components/Bindings.tsx @@ -25,9 +25,9 @@ export const Bindings: React.FunctionComponent = ({ const schemaName = (
{name} - + {protocol} - +
); return ( diff --git a/library/src/components/Href.tsx b/library/src/components/Href.tsx index fd5c3aff5..2b9ad33c0 100644 --- a/library/src/components/Href.tsx +++ b/library/src/components/Href.tsx @@ -15,7 +15,7 @@ export const Href: React.FunctionComponent = ({ }) => ( = ({
{schema.format() && ( - + format: {schema.format()} - + )} {/* related to string */} {schema.pattern() !== undefined && ( - + must match: {schema.pattern()} - + )} {schema.contentMediaType() !== undefined && ( - + media type: {schema.contentMediaType()} - + )} {schema.contentEncoding() !== undefined && ( - + encoding: {schema.contentEncoding()} - + )} {/* constraints */} {!!constraints.length && constraints.map((c) => ( - {c} - + ))} {uid && !uid.startsWith(' = ({ {schema.default() !== undefined && (
Default value: - + {SchemaHelpers.prettifyValue(schema.default())}
@@ -217,7 +217,7 @@ export const Schema: React.FunctionComponent = ({ {schema.const() !== undefined && (
Const: - + {SchemaHelpers.prettifyValue(schema.const())}
@@ -228,7 +228,7 @@ export const Schema: React.FunctionComponent = ({ {schema.enum()?.map((e, idx) => (
  • {SchemaHelpers.prettifyValue(e)}
  • @@ -244,14 +244,14 @@ export const Schema: React.FunctionComponent = ({
    )} {externalDocs && ( - + Documentation - + )} {schema.examples() && (
      @@ -259,7 +259,7 @@ export const Schema: React.FunctionComponent = ({ {schema.examples()?.map((e, idx) => (
    • {SchemaHelpers.prettifyValue(e)}
    • diff --git a/library/src/containers/ApplicationErrorHandler/ErrorBoundary.tsx b/library/src/containers/ApplicationErrorHandler/ErrorBoundary.tsx new file mode 100644 index 000000000..ecefbaf08 --- /dev/null +++ b/library/src/containers/ApplicationErrorHandler/ErrorBoundary.tsx @@ -0,0 +1,39 @@ +import React, { useEffect, useState } from 'react'; +import { ReactNode } from 'react'; +import { ErrorBoundary, FallbackProps } from 'react-error-boundary'; +import { ErrorObject } from '../../types'; +import { Error } from '../Error/Error'; + +interface Props { + children: ReactNode; +} + +function fallbackRender({ error }: FallbackProps) { + const ErrorObject: ErrorObject = { + title: 'Something went wrong', + type: 'application-error', + validationErrors: [ + { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + title: error?.message, + }, + ], + }; + return ; +} + +const AsyncApiErrorBoundary = ({ children }: Props) => { + const [key, setKey] = useState(0); + + useEffect(() => { + setKey((prevKey) => prevKey + 1); + }, [children]); + + return ( + + {children} + + ); +}; + +export default AsyncApiErrorBoundary; diff --git a/library/src/containers/AsyncApi/Layout.tsx b/library/src/containers/AsyncApi/Layout.tsx index 5bf6bac38..b6105b392 100644 --- a/library/src/containers/AsyncApi/Layout.tsx +++ b/library/src/containers/AsyncApi/Layout.tsx @@ -8,22 +8,19 @@ import { Servers } from '../Servers/Servers'; import { Operations } from '../Operations/Operations'; import { Messages } from '../Messages/Messages'; import { Schemas } from '../Schemas/Schemas'; -import { Error } from '../Error/Error'; import { ConfigInterface } from '../../config'; import { SpecificationContext, ConfigContext } from '../../contexts'; -import { ErrorObject } from '../../types'; +import AsyncApiErrorBoundary from '../ApplicationErrorHandler/ErrorBoundary'; interface Props { asyncapi: AsyncAPIDocumentInterface; config: ConfigInterface; - error?: ErrorObject; } const AsyncApiLayout: React.FunctionComponent = ({ asyncapi, config, - error = null, }) => { const [observerClassName, setObserverClassName] = useState('container:xl'); @@ -35,7 +32,7 @@ const AsyncApiLayout: React.FunctionComponent = ({ } const possibleClassName = - width <= 1280 ? 'container:xl' : 'container:base'; + width <= 1536 ? 'container:xl' : 'container:base'; if (possibleClassName !== observerClassName) { setObserverClassName(possibleClassName); } @@ -48,24 +45,25 @@ const AsyncApiLayout: React.FunctionComponent = ({
      -
      - {configShow.sidebar && } -
      -
      - {configShow.errors && error && } - {configShow.info && } - {configShow.servers && } - {configShow.operations && } - {configShow.messages && } - {configShow.schemas && } + +
      + {configShow.sidebar && } +
      +
      + {configShow.info && } + {configShow.servers && } + {configShow.operations && } + {configShow.messages && } + {configShow.schemas && } +
      +
      -
      -
      +
      diff --git a/library/src/containers/AsyncApi/Standalone.tsx b/library/src/containers/AsyncApi/Standalone.tsx index e441afd6a..6228f93a8 100644 --- a/library/src/containers/AsyncApi/Standalone.tsx +++ b/library/src/containers/AsyncApi/Standalone.tsx @@ -79,16 +79,16 @@ class AsyncApiComponent extends Component { if (!error) { return null; } - return concatenatedConfig.show?.errors && ; + return ( + concatenatedConfig.show?.errors && ( +
      + +
      + ) + ); } - return ( - - ); + return ; } private updateState(schema: PropsSchema) { diff --git a/library/src/containers/Error/Error.tsx b/library/src/containers/Error/Error.tsx index 984cc8fa2..e22618ea3 100644 --- a/library/src/containers/Error/Error.tsx +++ b/library/src/containers/Error/Error.tsx @@ -10,12 +10,15 @@ const renderErrors = (errors: ValidationError[]): React.ReactNode => { return errors .map((singleError: ValidationError, index: number) => { - if (!singleError?.title || !singleError.location) { + if (!singleError?.title) { return null; } return ( -
      - {`${singleError.location.startLine}.`} +
      + {(singleError?.location?.startLine ?? + singleError?.location?.startOffset) && ( + {`line ${singleError?.location?.startLine + singleError?.location?.startOffset}:`} + )} {singleError.title} diff --git a/library/src/containers/Info/Info.tsx b/library/src/containers/Info/Info.tsx index 49a4d40d7..a32eeb269 100644 --- a/library/src/containers/Info/Info.tsx +++ b/library/src/containers/Info/Info.tsx @@ -46,9 +46,9 @@ export const Info: React.FunctionComponent = () => { {license.name()} ) : ( - + {license.name()} - + )} )} @@ -77,6 +77,7 @@ export const Info: React.FunctionComponent = () => { {EXTERAL_DOCUMENTATION_TEXT} @@ -108,9 +109,9 @@ export const Info: React.FunctionComponent = () => { )} {specId && (
    • - + ID: {specId} - +
    • )}
    diff --git a/library/src/containers/Messages/Message.tsx b/library/src/containers/Messages/Message.tsx index 4d5c5fbf3..f7466e57e 100644 --- a/library/src/containers/Messages/Message.tsx +++ b/library/src/containers/Messages/Message.tsx @@ -55,12 +55,9 @@ export const Message: React.FunctionComponent = ({
    {index !== undefined && ( - #{index} + #{index} )} {title && {title}} - - {messageId} -
    {summary &&

    {summary}

    } @@ -94,7 +91,7 @@ export const Message: React.FunctionComponent = ({
    Message ID - + {messageId}
    @@ -105,7 +102,7 @@ export const Message: React.FunctionComponent = ({
    Correlation ID - + {correlationId.location()}
    diff --git a/library/src/containers/Operations/Operation.tsx b/library/src/containers/Operations/Operation.tsx index 26dc958d7..cb1b76bf6 100644 --- a/library/src/containers/Operations/Operation.tsx +++ b/library/src/containers/Operations/Operation.tsx @@ -53,7 +53,7 @@ export const Operation: React.FunctionComponent = (props) => { {servers.map((server) => (
  • = (props) => { const specV = useSpec().version(); const version = specV.localeCompare('2.6.0', undefined, { numeric: true }); const isAsyncAPIv2 = version === 0; - const { borderColor, typeLabel } = + const { backgroundColor, typeLabel } = CommonHelpers.getOperationDesignInformation({ type, config, @@ -181,7 +181,7 @@ export const OperationInfo: React.FunctionComponent = (props) => {

    {typeLabel} @@ -223,7 +223,7 @@ export const OperationInfo: React.FunctionComponent = (props) => {
    Operation ID - + {operationId}
    @@ -262,7 +262,7 @@ export const OperationReplyInfo: React.FunctionComponent = (props) => { : 'bg-blue-600 border-blue-600' } text-sm rounded-t h-8 px-4 border text-white flex items-center`} > - REPLY INFORMATION + REPLY INFORMATION
    = ({ {servers.map((server) => (
  • = ({
    {securityProtocol && (
    - + security.protocol: - - + + {securityProtocol} - +
    )} {saslMechanism && (
    - + sasl.mechanism: - - + + {saslMechanism} - +
    )}
    @@ -179,19 +179,19 @@ const SecurityItem: React.FunctionComponent = ({ key={flowName} >
    - + Flow: - - + + {ServerHelpers.flowName(flowName)} - +
    {authorizationUrl && (
    - + Auth URL: - + {authorizationUrl} @@ -199,9 +199,9 @@ const SecurityItem: React.FunctionComponent = ({ )} {tokenUrl && (
    - + Token URL: - + {tokenUrl} @@ -209,9 +209,9 @@ const SecurityItem: React.FunctionComponent = ({ )} {refreshUrl && (
    - + Refresh URL: - + {refreshUrl} @@ -219,9 +219,9 @@ const SecurityItem: React.FunctionComponent = ({ )} {scopes && (
    - + Scopes: - +
      {scopes && Object.entries(scopes).map(([scopeName, scopeDesc]) => ( diff --git a/library/src/containers/Servers/Server.tsx b/library/src/containers/Servers/Server.tsx index 560444ee1..233efdf9c 100644 --- a/library/src/containers/Servers/Server.tsx +++ b/library/src/containers/Servers/Server.tsx @@ -34,14 +34,14 @@ export const Server: React.FunctionComponent = ({
      {server.url()} - + {protocolVersion ? `${server.protocol()} ${protocolVersion}` : server.protocol()} - - + + {serverName} - +
      {server.hasDescription() && ( diff --git a/library/src/containers/Sidebar/Sidebar.tsx b/library/src/containers/Sidebar/Sidebar.tsx index a834a2b40..58d481f04 100644 --- a/library/src/containers/Sidebar/Sidebar.tsx +++ b/library/src/containers/Sidebar/Sidebar.tsx @@ -41,7 +41,7 @@ export const Sidebar: React.FunctionComponent = () => {
    • setShowSidebar(false)} >
      {message.id()}
      @@ -119,7 +119,7 @@ export const Sidebar: React.FunctionComponent = () => { >
      @@ -348,7 +348,13 @@ const OperationItem: React.FunctionComponent = ({ config, isAsyncAPIv2, }); - const bgColors = ['bg-red-600', 'bg-orange-600', 'bg-green-600']; + const bgColors = [ + 'bg-red-600', + 'bg-orange-600', + 'bg-green-600', + 'bg-blue-600', + ]; + return (
    • = ({ href={`#${operationHrefId}`} onClick={() => setShowSidebar(false)} > - {typeLabel} - + {label}
    • diff --git a/library/src/containers/Sidebar/__tests__/SideBar.test.tsx b/library/src/containers/Sidebar/__tests__/SideBar.test.tsx index 4701a0006..6568f57e7 100644 --- a/library/src/containers/Sidebar/__tests__/SideBar.test.tsx +++ b/library/src/containers/Sidebar/__tests__/SideBar.test.tsx @@ -121,10 +121,10 @@ describe('Sidebar component', () => { 'smartylighting.streetlights.1.0.action.{streetlightId}.dim', ]; for (let i = 0; i < operations.length; i++) { + const description = operations[i].querySelector('span'); + // eslint-disable-next-line jest/no-standalone-expect - expect(operations[i].querySelectorAll('span')[1].textContent).toBe( - expectedOperationDescriptions[i], - ); + expect(description?.textContent).toBe(expectedOperationDescriptions[i]); } }); }); diff --git a/library/src/helpers/__tests__/schema.test.ts b/library/src/helpers/__tests__/schema.test.ts index aaa5b6f7a..637674997 100644 --- a/library/src/helpers/__tests__/schema.test.ts +++ b/library/src/helpers/__tests__/schema.test.ts @@ -896,21 +896,11 @@ describe('SchemaHelpers', () => { test('should not render title because title is undefined', () => { expect( - SchemaHelpers.applicatorSchemaName( - 0, - FIRST_CASE, - OTHER_CASES, - undefined, - ), + SchemaHelpers.applicatorSchemaName(0, FIRST_CASE, OTHER_CASES), ).toMatchSnapshot(); expect( - SchemaHelpers.applicatorSchemaName( - 1, - FIRST_CASE, - OTHER_CASES, - undefined, - ), + SchemaHelpers.applicatorSchemaName(1, FIRST_CASE, OTHER_CASES), ).toMatchSnapshot(); }); diff --git a/library/src/helpers/parser.ts b/library/src/helpers/parser.ts index 44947ca09..83da10b6b 100644 --- a/library/src/helpers/parser.ts +++ b/library/src/helpers/parser.ts @@ -1,9 +1,19 @@ -import { Parser as AsyncapiParser, fromURL } from '@asyncapi/parser'; +import { + Parser as AsyncapiParser, + Diagnostic, + DiagnosticSeverity, + fromURL, +} from '@asyncapi/parser'; import { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser'; import { ProtoBuffSchemaParser } from '@asyncapi/protobuf-schema-parser'; import { AvroSchemaParser } from '@asyncapi/avro-schema-parser'; -import { ErrorObject, ParserReturn, FetchingSchemaInterface } from '../types'; +import { + ErrorObject, + ParserReturn, + FetchingSchemaInterface, + ValidationError, +} from '../types'; import { VALIDATION_ERRORS_TYPE } from '../constants'; @@ -21,8 +31,17 @@ export class Parser { parserOptions?: any, ): Promise { try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - const { document } = await asyncapiParser.parse(content, parserOptions); + const { document, diagnostics } = await asyncapiParser.parse( + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + content, + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + parserOptions, + ); + + if (document === undefined) { + throw this.convertDiagnosticToErrorObject(diagnostics, [0]); + } + return { asyncapi: document }; } catch (err) { return this.handleError(err as ErrorObject); @@ -42,13 +61,51 @@ export class Parser { arg.requestOptions as any, ); // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - const { document } = await fromResult.parse(parserOptions); - return { asyncapi: document }; + const { document, diagnostics } = await fromResult.parse(parserOptions); + + if (document == undefined) { + // this means there are errors in the document. + // so we gather all the severity 0 diagnostics and throw them as errors + throw this.convertDiagnosticToErrorObject(diagnostics, [0]); + } + + return { asyncapi: document, error: undefined }; } catch (err) { return this.handleError(err as ErrorObject); } } + static readonly convertDiagnosticToErrorObject = ( + diagnostics: Diagnostic[], + severities: DiagnosticSeverity[], + ): ErrorObject => { + const error: ErrorObject = { + title: 'There are errors in your Asyncapi document', + type: 'VALIDATION_ERRORS_TYPE', + validationErrors: [], + }; + diagnostics.forEach((diagnostic) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison + if (severities.includes(diagnostic.severity)) { + const tempObj: ValidationError = { + title: diagnostic.message, + location: { + jsonPointer: '/' + diagnostic.path.join('/'), + startLine: diagnostic.range.start.line, + startColumn: diagnostic.range.start.character, + // as of @asyncapi/parser 3.3.0 offset of 1 correctly shows the error line + startOffset: 1, + endLine: diagnostic.range.end.line, + endColumn: diagnostic.range.end.character, + endOffset: 0, + }, + }; + error.validationErrors?.push(tempObj); + } + }); + return error; + }; + private static handleError = (err: ErrorObject): ParserReturn => { if (err.type === VALIDATION_ERRORS_TYPE) { return { diff --git a/library/src/styles/default.css b/library/src/styles/default.css index d82010887..75e8f4ef7 100644 --- a/library/src/styles/default.css +++ b/library/src/styles/default.css @@ -13,15 +13,20 @@ @apply lg:relative lg:block lg:w-64 lg:h-auto; } + .container\:xl .sidebar--wrapper{ + @apply xl:w-full; + @apply sm:w-full; + } + .container\:base .sidebar--content { @apply lg:w-56; } - .container\:xl .sidebar--content { + /*.container\:xl .sidebar--content { @apply absolute; left: 50%; transform: translate(-50%, 0); - } + }*/ .container\:base .panel-item { @apply 2xl:flex; diff --git a/library/src/types.ts b/library/src/types.ts index c1d52ae4c..9f58864e2 100644 --- a/library/src/types.ts +++ b/library/src/types.ts @@ -44,7 +44,7 @@ export interface MessageExample { export interface ValidationError { title: string; - location: { + location?: { jsonPointer: string; startLine: number; startColumn: number; diff --git a/package-lock.json b/package-lock.json index c093aa547..957d2b2ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,17 +36,18 @@ }, "library": { "name": "@asyncapi/react-component", - "version": "2.2.2", + "version": "2.5.0", "license": "Apache-2.0", "dependencies": { "@asyncapi/avro-schema-parser": "^3.0.24", "@asyncapi/openapi-schema-parser": "^3.0.24", - "@asyncapi/parser": "^3.1.0", - "@asyncapi/protobuf-schema-parser": "^3.2.14", + "@asyncapi/parser": "^3.3.0", + "@asyncapi/protobuf-schema-parser": "^3.3.0", "highlight.js": "^10.7.2", "isomorphic-dompurify": "^2.14.0", "marked": "^4.0.14", "openapi-sampler": "^1.2.1", + "react-error-boundary": "^4.1.2", "use-resize-observer": "^9.1.0" }, "devDependencies": { @@ -190,39 +191,44 @@ } }, "node_modules/@asyncapi/parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.1.0.tgz", - "integrity": "sha512-rUd+fsPRE68o+F3gLqk7OaBj5J5VgBiLk9eJBGEXolNmKbVd45mxJm2aBpMkphQEmYHuBvxZyiNYlSCyr1D2fA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.4.0.tgz", + "integrity": "sha512-Sxn74oHiZSU6+cVeZy62iPZMFMvKp4jupMFHelSICCMw1qELmUHPvuZSr+ZHDmNGgHcEpzJM5HN02kR7T4g+PQ==", + "license": "Apache-2.0", "dependencies": { - "@asyncapi/specs": "^6.7.1", + "@asyncapi/specs": "^6.8.0", "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", - "@stoplight/json": "^3.20.2", + "@stoplight/json": "3.21.0", "@stoplight/json-ref-readers": "^1.2.2", "@stoplight/json-ref-resolver": "^3.1.5", - "@stoplight/spectral-core": "^1.16.1", + "@stoplight/spectral-core": "^1.18.3", "@stoplight/spectral-functions": "^1.7.2", "@stoplight/spectral-parsers": "^1.0.2", "@stoplight/spectral-ref-resolver": "^1.0.3", "@stoplight/types": "^13.12.0", "@types/json-schema": "^7.0.11", "@types/urijs": "^1.19.19", - "ajv": "^8.11.0", + "ajv": "^8.17.1", "ajv-errors": "^3.0.0", "ajv-formats": "^2.1.1", "avsc": "^5.7.5", "js-yaml": "^4.1.0", - "jsonpath-plus": "^7.2.0", + "jsonpath-plus": "^10.0.0", "node-fetch": "2.6.7" } }, "node_modules/@asyncapi/protobuf-schema-parser": { - "version": "3.2.14", - "resolved": "https://registry.npmjs.org/@asyncapi/protobuf-schema-parser/-/protobuf-schema-parser-3.2.14.tgz", - "integrity": "sha512-7v64Jxhz2IBfaQECUhfwuLRMFQTysvmqtvT+Esgd9NooIPRnkEzgCbBnC25oGjzSB6Sju28G406lQpO15HHaEw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@asyncapi/protobuf-schema-parser/-/protobuf-schema-parser-3.3.0.tgz", + "integrity": "sha512-KQYt/FQQxHj6s6clObl1zzWqsZSH1McK9xw9egoELCY1knN/mzDR++A5cKXQAf8FqKVuw410Gbvkw51e1N8m3w==", + "license": "Apache-2.0", "dependencies": { - "@asyncapi/parser": "^3.1.0", - "@types/protocol-buffers-schema": "^3.4.1", - "protobufjs": "^7.2.6" + "@asyncapi/parser": "^3.4.0", + "@types/protocol-buffers-schema": "^3.4.3", + "protobufjs": "^7.4.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/@asyncapi/react-component": { @@ -230,9 +236,9 @@ "link": true }, "node_modules/@asyncapi/specs": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.7.1.tgz", - "integrity": "sha512-jEaW2vgAwD9GboCdO/TI1zN2k+iowL8YFYwiZwTIr4U4KDmsgo3BLypScl6Jl4+IvY9RdsWE67nuzVX7jooiqQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.8.0.tgz", + "integrity": "sha512-1i6xs8+IOh6U5T7yH+bCMGQBF+m7kP/NpwyAlt++XaDQutoGCgACf24mQBgcDVqDWWoY81evQv+9ABvw0BviVg==", "dependencies": { "@types/json-schema": "^7.0.11" } @@ -3071,10 +3077,23 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, "node_modules/@jsep-plugin/regex": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.3.tgz", - "integrity": "sha512-XfZgry4DwEZvSFtS/6Y+R48D7qJYJK6R9/yJFyUFHCIUMEEHuJ4X95TDgJp5QkmzfLYvapMPzskV5HpIDrREug==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", + "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "license": "MIT", "engines": { "node": ">= 10.16.0" }, @@ -3554,9 +3573,9 @@ } }, "node_modules/@next/env": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.1.tgz", - "integrity": "sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==" + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.10.tgz", + "integrity": "sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw==" }, "node_modules/@next/eslint-plugin-next": { "version": "14.2.2", @@ -3568,9 +3587,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.1.tgz", - "integrity": "sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.10.tgz", + "integrity": "sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ==", "cpu": [ "arm64" ], @@ -3583,9 +3602,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.1.tgz", - "integrity": "sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.10.tgz", + "integrity": "sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA==", "cpu": [ "x64" ], @@ -3598,9 +3617,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.1.tgz", - "integrity": "sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.10.tgz", + "integrity": "sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA==", "cpu": [ "arm64" ], @@ -3613,9 +3632,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.1.tgz", - "integrity": "sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.10.tgz", + "integrity": "sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ==", "cpu": [ "arm64" ], @@ -3628,9 +3647,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.1.tgz", - "integrity": "sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.10.tgz", + "integrity": "sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg==", "cpu": [ "x64" ], @@ -3643,9 +3662,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.1.tgz", - "integrity": "sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.10.tgz", + "integrity": "sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA==", "cpu": [ "x64" ], @@ -3658,9 +3677,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.1.tgz", - "integrity": "sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.10.tgz", + "integrity": "sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ==", "cpu": [ "arm64" ], @@ -3673,9 +3692,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.1.tgz", - "integrity": "sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.10.tgz", + "integrity": "sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg==", "cpu": [ "ia32" ], @@ -3688,9 +3707,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.1.tgz", - "integrity": "sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.10.tgz", + "integrity": "sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ==", "cpu": [ "x64" ], @@ -4436,27 +4455,32 @@ "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -4465,27 +4489,32 @@ "node_modules/@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" }, "node_modules/@rushstack/eslint-patch": { "version": "1.7.2", @@ -5049,18 +5078,24 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, "node_modules/@swc/helpers": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", - "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", "dependencies": { + "@swc/counter": "^0.1.3", "tslib": "^2.4.0" } }, "node_modules/@swc/helpers/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/@tailwindcss/typography": { "version": "0.4.1", @@ -6408,14 +6443,14 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -11708,6 +11743,11 @@ "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" }, + "node_modules/fast-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", + "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -15539,9 +15579,10 @@ } }, "node_modules/jsep": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", - "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", "engines": { "node": ">= 10.16.0" } @@ -15649,11 +15690,21 @@ ] }, "node_modules/jsonpath-plus": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.2.0.tgz", - "integrity": "sha512-zBfiUPM5nD0YZSBT/o/fbCUlCcepMIdP0CJZxM1+KgA4f2T206f6VAg9e7mX35+KlMaIc5qXW34f3BnwJ3w+RA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.2.0.tgz", + "integrity": "sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==", + "license": "MIT", + "dependencies": { + "@jsep-plugin/assignment": "^1.3.0", + "@jsep-plugin/regex": "^1.0.4", + "jsep": "^1.4.0" + }, + "bin": { + "jsonpath": "bin/jsonpath-cli.js", + "jsonpath-plus": "bin/jsonpath-cli.js" + }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/jsonpointer": { @@ -16803,7 +16854,8 @@ "node_modules/long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" }, "node_modules/loose-envify": { "version": "1.4.0", @@ -17804,12 +17856,12 @@ "dev": true }, "node_modules/next": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/next/-/next-14.1.1.tgz", - "integrity": "sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.10.tgz", + "integrity": "sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww==", "dependencies": { - "@next/env": "14.1.1", - "@swc/helpers": "0.5.2", + "@next/env": "14.2.10", + "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "graceful-fs": "^4.2.11", @@ -17823,18 +17875,19 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.1.1", - "@next/swc-darwin-x64": "14.1.1", - "@next/swc-linux-arm64-gnu": "14.1.1", - "@next/swc-linux-arm64-musl": "14.1.1", - "@next/swc-linux-x64-gnu": "14.1.1", - "@next/swc-linux-x64-musl": "14.1.1", - "@next/swc-win32-arm64-msvc": "14.1.1", - "@next/swc-win32-ia32-msvc": "14.1.1", - "@next/swc-win32-x64-msvc": "14.1.1" + "@next/swc-darwin-arm64": "14.2.10", + "@next/swc-darwin-x64": "14.2.10", + "@next/swc-linux-arm64-gnu": "14.2.10", + "@next/swc-linux-arm64-musl": "14.2.10", + "@next/swc-linux-x64-gnu": "14.2.10", + "@next/swc-linux-x64-musl": "14.2.10", + "@next/swc-win32-arm64-msvc": "14.2.10", + "@next/swc-win32-ia32-msvc": "14.2.10", + "@next/swc-win32-x64-msvc": "14.2.10" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", "react": "^18.2.0", "react-dom": "^18.2.0", "sass": "^1.3.0" @@ -17843,6 +17896,9 @@ "@opentelemetry/api": { "optional": true }, + "@playwright/test": { + "optional": true + }, "sass": { "optional": true } @@ -21671,10 +21727,11 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/protobufjs": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -21694,13 +21751,20 @@ } }, "node_modules/protobufjs/node_modules/@types/node": { - "version": "20.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", - "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.20.0" } }, + "node_modules/protobufjs/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/protocols": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", @@ -21986,6 +22050,18 @@ "loose-envify": "^1.1.0" } }, + "node_modules/react-error-boundary": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.1.2.tgz", + "integrity": "sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -26219,7 +26295,8 @@ "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -26453,6 +26530,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -27468,7 +27546,7 @@ "@codemirror/lang-yaml": "^6.0.0", "@uiw/codemirror-theme-material": "^4.21.24", "@uiw/react-codemirror": "^4.21.24", - "next": "14.1.1", + "next": "14.2.10", "react": "^18", "react-dom": "^18", "react-split": "^2.0.14", @@ -27655,10 +27733,10 @@ }, "web-component": { "name": "@asyncapi/web-component", - "version": "2.2.2", + "version": "2.5.0", "license": "Apache-2.0", "dependencies": { - "@asyncapi/react-component": "^2.2.2", + "@asyncapi/react-component": "^2.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", "web-react-components": "^1.4.2" diff --git a/playground/components/Tab.tsx b/playground/components/Tab.tsx index 0a46bd414..540640a61 100644 --- a/playground/components/Tab.tsx +++ b/playground/components/Tab.tsx @@ -19,7 +19,7 @@ class Tab extends Component { { event.preventDefault(); - if (parentCallback && tabIndex) { + if (parentCallback && tabIndex != undefined) { parentCallback(tabIndex); } }} diff --git a/playground/package.json b/playground/package.json index 33ed03e08..5c367a0ab 100644 --- a/playground/package.json +++ b/playground/package.json @@ -10,7 +10,7 @@ "@codemirror/lang-yaml": "^6.0.0", "@uiw/codemirror-theme-material": "^4.21.24", "@uiw/react-codemirror": "^4.21.24", - "next": "14.1.1", + "next": "14.2.10", "react": "^18", "react-dom": "^18", "react-split": "^2.0.14", diff --git a/playground/specs/dummy.ts b/playground/specs/dummy.ts index e83f47be9..e5e748efa 100644 --- a/playground/specs/dummy.ts +++ b/playground/specs/dummy.ts @@ -58,7 +58,7 @@ servers: - '5672' security: - user-password: [] - dommy-kafka: + dummy-kafka: url: http://localhost:{port} protocol: kafka description: dummy Kafka broker @@ -82,18 +82,18 @@ channels: Still dummy though. operationId: receiveNewDummyInfo tags: - - name: oparation-tag1 + - name: operation-tag1 externalDocs: description: External docs description 1 url: https://www.asyncapi.com/ - - name: oparation-tag2 + - name: operation-tag2 description: Description 2 externalDocs: url: "https://www.asyncapi.com/" - - name: oparation-tag3 - - name: oparation-tag4 + - name: operation-tag3 + - name: operation-tag4 description: Description 4 - - name: oparation-tag5 + - name: operation-tag5 externalDocs: url: "https://www.asyncapi.com/" traits: diff --git a/playground/specs/streetlights.ts b/playground/specs/streetlights.ts index 44563ec3c..40c6c52e9 100644 --- a/playground/specs/streetlights.ts +++ b/playground/specs/streetlights.ts @@ -287,18 +287,18 @@ components: externalDocs: url: "https://www.asyncapi.com/" tags: - - name: oparation-tag1 + - name: operation-tag1 externalDocs: description: External docs description 1 url: https://www.asyncapi.com/ - - name: oparation-tag2 + - name: operation-tag2 description: Description 2 externalDocs: url: "https://www.asyncapi.com/" - - name: oparation-tag3 - - name: oparation-tag4 + - name: operation-tag3 + - name: operation-tag4 description: Description 4 - - name: oparation-tag5 + - name: operation-tag5 externalDocs: url: "https://www.asyncapi.com/" traits: diff --git a/web-component/package.json b/web-component/package.json index 9cd9449ac..cff0a6813 100644 --- a/web-component/package.json +++ b/web-component/package.json @@ -1,6 +1,6 @@ { "name": "@asyncapi/web-component", - "version": "2.2.2", + "version": "2.5.0", "private": false, "description": "A web component for AsyncAPI specification. Based on @asyncapi/react-component.", "repository": { @@ -44,7 +44,7 @@ "install:reactcomp": "chmod +x ./bump-react-comp.sh && ./bump-react-comp.sh" }, "dependencies": { - "@asyncapi/react-component": "^2.2.2", + "@asyncapi/react-component": "^2.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", "web-react-components": "^1.4.2"