From 532be4a3030f29463dd61de6f0cbe0386eee0419 Mon Sep 17 00:00:00 2001 From: "jonas-lt@live.dk" Date: Fri, 17 Nov 2023 10:08:19 -1000 Subject: [PATCH 1/3] remove messageId --- components/Message.js | 5 +- package-lock.json | 16 +- package.json | 2 +- test/components/Message.test.js | 4 +- test/components/Operations.test.js | 1 - .../__snapshots__/AsyncAPI.test.js.snap | 281 ++------- test/spec/asyncapi_v3.yml | 565 +++++++++--------- 7 files changed, 320 insertions(+), 554 deletions(-) diff --git a/components/Message.js b/components/Message.js index 8c73e573f..370ab58e9 100644 --- a/components/Message.js +++ b/components/Message.js @@ -13,8 +13,7 @@ export function Message({ message }) { // NOSONAR return null; } - // check typeof as fallback for older version than `2.4.0` - const messageId = typeof message.messageId === 'function' && message.messageId(); + const messageId = message.id(); const headers = message.headers(); const payload = message.payload(); const correlationId = message.correlationId(); @@ -26,7 +25,7 @@ export function Message({ message }) { // NOSONAR if (message.title()) { header += ` ${message.title()}`; } - const id = message.messageId() || message.name() || message.id(); + const id = message.name() || messageId; if (id) { header += ` \`${id}\``; } diff --git a/package-lock.json b/package-lock.json index 884d467b9..a5d0667fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@asyncapi/cli": "^0.60.1", - "@asyncapi/parser": "^3.0.0-next-major-spec.3", + "@asyncapi/parser": "^3.0.0-next-major-spec.11", "@babel/preset-env": "^7.15.8", "@babel/preset-react": "^7.14.5", "@types/react": "^18.2.18", @@ -1444,12 +1444,12 @@ } }, "node_modules/@asyncapi/parser": { - "version": "3.0.0-next-major-spec.3", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.3.tgz", - "integrity": "sha512-LCrAQqJpGxraMyU2k1Nh1X6Q1dz7a/YhTRRFFrQHOEo+TUT/kRdoUkRDP++e58dO7h9MBN+/hZK5TaqE+/jQiw==", + "version": "3.0.0-next-major-spec.11", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.11.tgz", + "integrity": "sha512-jJX2HGmeXykvJ1KfrYadeYbf0Dh4mDDvD5KNtf/SJGvVANdYRQrgCV14VlBMnv7kPVELuv8JaYEedYe6x4F8zA==", "dev": true, "dependencies": { - "@asyncapi/specs": "^6.0.0-next-major-spec.6", + "@asyncapi/specs": "^6.0.0-next-major-spec.9", "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", "@stoplight/json-ref-resolver": "^3.1.5", "@stoplight/spectral-core": "^1.16.1", @@ -1740,9 +1740,9 @@ } }, "node_modules/@asyncapi/specs": { - "version": "6.0.0-next-major-spec.6", - "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.0.0-next-major-spec.6.tgz", - "integrity": "sha512-xYiXZetKiAZgZoh2q/sxt+Ceg8bLTK/WSCwtLvlH7JgnjpnOEtCDwKszijmmOJEYdGVSrj0OFXLPrg/dm4JANw==", + "version": "6.0.0-next-major-spec.13", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.0.0-next-major-spec.13.tgz", + "integrity": "sha512-mnGllHVaUscCHaDnYfLGo84KK81NcTmevVFQP94RusKM2SvtYkbBuC0nwQ6ie/PAEHQy+kn2PjrJlfwwm7VgEQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.11" diff --git a/package.json b/package.json index db62fb916..15a4760df 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ }, "devDependencies": { "@asyncapi/cli": "^0.60.1", - "@asyncapi/parser": "^3.0.0-next-major-spec.3", + "@asyncapi/parser": "^3.0.0-next-major-spec.11", "@babel/preset-env": "^7.15.8", "@babel/preset-react": "^7.14.5", "@types/react": "^18.2.18", diff --git a/test/components/Message.test.js b/test/components/Message.test.js index 8ee80f890..52ff93b25 100644 --- a/test/components/Message.test.js +++ b/test/components/Message.test.js @@ -138,9 +138,9 @@ describe('Message component', () => { } } ] - }); + }, { id: 'UserSignup Message Id' }); const expected = ` -#### Message User signup \`UserSignup Message Id\` +#### Message User signup \`UserSignup\` *Action to sign a user up.* diff --git a/test/components/Operations.test.js b/test/components/Operations.test.js index bf01e7113..dc41d64c8 100644 --- a/test/components/Operations.test.js +++ b/test/components/Operations.test.js @@ -918,7 +918,6 @@ A longer description of the message } }, SomeMessage2: { - messageId: 'SomeMessage2', description: 'A longer description of the message', payload: { type: 'object', diff --git a/test/components/__snapshots__/AsyncAPI.test.js.snap b/test/components/__snapshots__/AsyncAPI.test.js.snap index d9b93f70e..5bd5e30b8 100644 --- a/test/components/__snapshots__/AsyncAPI.test.js.snap +++ b/test/components/__snapshots__/AsyncAPI.test.js.snap @@ -360,297 +360,92 @@ Accepts **one of** the following messages: `; exports[`AsyncAPI component should render AsyncAPI v3 document 1`] = ` -"# Adeo AsyncAPI Case Study %REPLACED_BY_MAVEN% documentation +"# Streetlights API 1.0.0 documentation -* Email support: [info@asyncapi.io](mailto:info@asyncapi.io) +* License: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) +* Default content type: [application/json](https://www.iana.org/assignments/media-types/application/json) -This Adeo specification illustrates how ADEO uses AsyncAPI to document some of their exchanges +The Smartylighting Streetlights API allows you to remotely manage the city lights. -##### Specification tags +### Check out its awesome features: -| Name | Description | Documentation | -|---|---|---| -| costing | Costing channels, used by Costing clients. | - | +* Turn a specific streetlight on/off 🌃 +* Dim a specific streetlight 😎 +* Receive real-time information about environmental lighting conditions 📈 ## Table of Contents * [Servers](#servers) * [production](#production-server) - * [staging](#staging-server) - * [dev](#dev-server) ## Servers ### \`production\` Server -* URL: \`kafka-secure://prod.url:9092/\` -* Protocol: \`kafka-secure\` - -Kafka PRODUCTION cluster - -#### Security - -##### Security Requirement 1 - -* Type: \`PLAIN\` - * security.protocol: SASL_SSL - * sasl.mechanism: PLAIN - - Use [SASL authentication with SSL encryption](https://docs.confluent.io/platform/current/security/security_tutorial.html#configure-clients) to connect to the ADEO Broker. - - - - - - -#### \`kafka\` Server specific information - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| schemaRegistryUrl | - | - | \`\\"https://schema-registry.prod.url/\\"\` | - | - | - - -### \`staging\` Server - -* URL: \`kafka-secure://staging.url:9092/\` -* Protocol: \`kafka-secure\` - -Kafka STAGING cluster for \`uat\` and \`preprod\` environments - -#### Security - -##### Security Requirement 1 - -* Type: \`PLAIN\` - * security.protocol: SASL_SSL - * sasl.mechanism: PLAIN - - Use [SASL authentication with SSL encryption](https://docs.confluent.io/platform/current/security/security_tutorial.html#configure-clients) to connect to the ADEO Broker. - - - - - - -#### \`kafka\` Server specific information - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| schemaRegistryUrl | - | - | \`\\"https://schema-registry.staging.url/\\"\` | - | - | - - -### \`dev\` Server - -* URL: \`kafka-secure://dev.url:9092/\` -* Protocol: \`kafka-secure\` - -Kafka DEV cluster for \`dev\` and \`sit\` environments - -#### Security - -##### Security Requirement 1 - -* Type: \`PLAIN\` - * security.protocol: SASL_SSL - * sasl.mechanism: PLAIN - - Use [SASL authentication with SSL encryption](https://docs.confluent.io/platform/current/security/security_tutorial.html#configure-clients) to connect to the ADEO Broker. - - - - +* URL: \`mqtt://test.mosquitto.org:{port}/\` +* Protocol: \`mqtt\` +Test broker -#### \`kafka\` Server specific information +#### URL Variables -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| schemaRegistryUrl | - | - | \`\\"https://schema-registry.dev.url/\\"\` | - | - | +| Name | Description | Default value | Allowed values | +|---|---|---|---| +| port | Secure connection (TLS) is available through port 8883. | \`1883\` | \`1883\`, \`8883\` | ## Operations -### REPLY \`adeo-{env}-case-study-COSTING-REQUEST-{version}\` Operation - -*[COSTING] Request one or more Costing calculation for any product* - -* Operation ID: \`requestCosting\` - -Use this topic to do a Costing Request to Costing product. We use the [**RecordNameStrategy**](https://docs.confluent.io/platform/current/schema-registry/serdes-develop/index.html#subject-name-strategy) to infer the messages schema. You have to define \`x-value.subject.name.strategy\` to \`io.confluent.kafka.serializers.subject.RecordNameStrategy\` in your producer to use the schema we manage. The schema below illustrates how Costing Request messages are handled. ![](https://user-images.githubusercontent.com/5501911/188920831-689cec5f-8dc3-460b-8794-0b54ec8b0ac8.png) - - -You can try a costing request using our [Conduktor producer template](https://conduktor.url) +### SEND \`some.channel\` Operation +* Operation ID: \`some.channel.subscribe\` -##### Operation tags - -| Name | Description | Documentation | -|---|---|---| -| costing | - | - | - -#### Parameters - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| env | string | Adeo Kafka Environment for messages publications. | allowed (\`\\"dev\\"\`, \`\\"sit\\"\`, \`\\"uat1\\"\`, \`\\"preprod\\"\`, \`\\"prod\\"\`) | - | **required** | -| version | string | the topic version you want to use | default (\`\\"V1\\"\`), examples (\`\\"V1\\"\`) | - | **required** | - - -#### \`kafka\` Channel specific information - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| replicas | - | - | \`\\"3\\"\` | - | - | -| partitions | - | - | \`\\"3\\"\` | - | - | -| topicConfiguration | - | - | - | - | - | -| topicConfiguration.cleanup.policy | - | - | - | - | - | -| topicConfiguration.cleanup.policy.0 (index) | - | - | \`\\"delete\\"\` | - | - | -| topicConfiguration.retention.ms | - | - | \`\\"604800000\\"\` | - | - | +this description shows in markdown -#### \`kafka\` Operation specific information +Sending **one of** the following messages: -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| groupId | string | The groupId must be prefixed by your \`svc\` account, deliver by the Adeo Kafka team. This \`svc\` must have the write access to the topic. | - | - | - | -| x-value.subject.name.strategy | string | We use the RecordNameStrategy to infer the messages schema. Use \`x-value.subject.name.strategy=io.confluent.kafka.serializers.subject.RecordNameStrategy\` in your producer configuration. | - | - | - | - -#### Message Costing Request V1 \`CostingRequestV1\` +#### Message \`Success\` -*Costing Request V1 inputs.* +* Content type: [application/json](https://www.iana.org/assignments/media-types/application/json) -##### Headers +##### Payload | Name | Type | Description | Value | Constraints | Notes | |---|---|---|---|---|---| | (root) | object | - | - | - | **additional properties are allowed** | -| REQUEST_ID | string | A unique Request ID needed to define a \`CORRELATION_ID\` for exchanges, which will be sent back in the Costing Responses. | - | format (\`uuid\`) | **required** | -| REPLY_TOPIC | string | The Kafka topic where to send the Costing Response. This is required for the [Return Address EIP pattern](https://www.enterpriseintegrationpatterns.com/patterns/messaging/ReturnAddress.html). **You must grant WRITE access to our \`svc-ccr-app\` service account.** | - | - | **required** | -| REQUESTER_ID | string | The Costing requester service account used to produce costing request. | - | - | **required** | -| REQUESTER_CODE | string | The Costing requester code (generally the BU Code). The requester code is useful to get the dedicated context (tenant). | - | - | **required** | +| result | string | - | examples (\`\\"success\\"\`) | - | - | -> Examples of headers _(generated)_ +> Examples of payload _(generated)_ \`\`\`json { - \\"REQUEST_ID\\": \\"1fa6ef40-8f47-40a8-8cf6-f8607d0066ef\\", - \\"REPLY_TOPIC\\": \\"adeo-case-study-COSTING-RESPONSE-V1\\", - \\"REQUESTER_ID\\": \\"svc-ecollect-app\\", - \\"REQUESTER_CODE\\": 1 + \\"result\\": \\"success\\" } \`\`\` -##### Payload - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| (root) | record | - | - | - | - | - -> Examples of payload _(generated)_ - -\`\`\`json -\\"\\" -\`\`\` - - -##### Message tags - -| Name | Description | Documentation | -|---|---|---| -| costing | - | - | - -#### Response information - -* should be done to channel: \`adeo-{env}-case-study-COSTING-RESPONSE-{version}\` -#### Operation reply address information - -* Operation reply address location: \`$message.header#/REPLY_TOPIC\` - - - -### SEND \`adeo-{env}-case-study-COSTING-RESPONSE-{version}\` Operation - -*[COSTING] Get the costing responses matching an initial Costing Request.* - -* Operation ID: \`getCostingResponse\` - -This topic is used to REPLY Costing Requests and is targeted by the \`REPLY_TOPIC\` header. **You must grant PUBLISH access to our \`svc-ccr-app\` service account.**. We use the [**RecordNameStrategy**](https://docs.confluent.io/platform/current/schema-registry/serdes-develop/index.html#subject-name-strategy) to infer the messages schema. You have to define \`key.subject.name.strategy\` and \`x-value.subject.name.strategy\` to \`io.confluent.kafka.serializers.subject.RecordNameStrategy\` in your consumer. The schema below illustrates how Costing Response messages are handled. - ![](https://user-images.githubusercontent.com/5501911/188920831-689cec5f-8dc3-460b-8794-0b54ec8b0ac8.png) - - -##### Operation tags - -| Name | Description | Documentation | -|---|---|---| -| costing | - | - | - -#### Parameters - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| env | string | Adeo Kafka Environment for messages publications. | allowed (\`\\"dev\\"\`, \`\\"sit\\"\`, \`\\"uat1\\"\`, \`\\"preprod\\"\`, \`\\"prod\\"\`) | - | **required** | -| version | string | the topic version you want to use | default (\`\\"V1\\"\`), examples (\`\\"V1\\"\`) | - | **required** | - - -#### \`kafka\` Channel specific information - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| x-key.subject.name.strategy | string | We use the RecordNameStrategy to infer the messages schema. Use \`x-key.subject.name.strategy=io.confluent.kafka.serializers.subject.RecordNameStrategy\` in your consumer configuration. | - | - | - | -| x-value.subject.name.strategy | string | We use the RecordNameStrategy to infer the messages schema. Use \`x-value.subject.name.strategy=io.confluent.kafka.serializers.subject.RecordNameStrategy\` in your consumer configuration. | - | - | - | - -#### \`kafka\` Operation specific information - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| groupId | string | The groupId must be prefixed by your \`svc\` account, deliver by the Adeo Kafka team. This \`svc\` must have the read access to the topic. | - | - | - | - -#### Message Costing Response \`CostingResponse\` - -*Costing Response ouputs.* - -Please refer to the \`CostingResponseKey.avsc\` schema, available on [our github project](https://github.url/). +#### Message \`Failure\` +* Content type: [application/json](https://www.iana.org/assignments/media-types/application/json) -##### Headers +##### Payload | Name | Type | Description | Value | Constraints | Notes | |---|---|---|---|---|---| -| (root) | object | - | - | - | **additional properties are allowed** | -| CALCULATION_ID | string | A unique Message ID. | - | format (\`uuid\`) | - | -| CORRELATION_ID | string | A unique Correlation ID defined from the \`REQUEST_ID\` or the \`MESSAGE_ID\` provided in the Costing Request. | - | format (\`uuid\`) | - | -| REQUEST_TIMESTAMP | string | Timestamp of the costing request | - | format (\`date-time\`) | - | -| CALCULATION_TIMESTAMP | string | Technical timestamp for the costing calculation | - | format (\`date-time\`) | - | +| (root) | object | - | examples (\`{\\"error\\":{\\"errorCode\\":404,\\"errorMessage\\":\\"Something messed up\\"}}\`) | - | **additional properties are allowed** | +| error | object | - | - | - | **additional properties are allowed** | +| error.errorCode | integer | - | - | - | - | +| error.errorMessage | string | - | - | - | - | -> Examples of headers _(generated)_ +> Examples of payload \`\`\`json { - \\"CALCULATION_ID\\": \\"1fa6ef40-8f47-40a8-8cf6-f8607d0066ef\\", - \\"CORRELATION_ID\\": \\"1fa6ef40-8f47-40a8-8cf6-f8607d0066ef\\", - \\"REQUEST_TIMESTAMP\\": \\"2019-08-24T14:15:22Z\\", - \\"CALCULATION_TIMESTAMP\\": \\"2019-08-24T14:15:22Z\\" + \\"error\\": { + \\"errorCode\\": 404, + \\"errorMessage\\": \\"Something messed up\\" + } } -\`\`\` - - -##### Payload - -| Name | Type | Description | Value | Constraints | Notes | -|---|---|---|---|---|---| -| (root) | record | - | - | - | - | - -> Examples of payload _(generated)_ - -\`\`\`json -\\"\\" -\`\`\` - - -##### Message tags - -| Name | Description | Documentation | -|---|---|---| -| costing | - | - |" +\`\`\`" `; diff --git a/test/spec/asyncapi_v3.yml b/test/spec/asyncapi_v3.yml index 06e285bef..c5639d710 100644 --- a/test/spec/asyncapi_v3.yml +++ b/test/spec/asyncapi_v3.yml @@ -1,318 +1,291 @@ asyncapi: 3.0.0 info: - title: Adeo AsyncAPI Case Study - version: "%REPLACED_BY_MAVEN%" - description: > - This Adeo specification illustrates how ADEO uses AsyncAPI to document some of their exchanges - contact: - name: AsyncAPI team - email: info@asyncapi.io - tags: - - name: costing - description: "Costing channels, used by Costing clients." + title: Streetlights API + version: 1.0.0 + description: "The Smartylighting Streetlights API allows you to remotely manage the city lights.\n\n### Check out its awesome features:\n\n* Turn a specific streetlight on/off \U0001F303\n* Dim a specific streetlight \U0001F60E\n* Receive real-time information about environmental lighting conditions \U0001F4C8\n" + license: + name: Apache 2.0 + url: 'https://www.apache.org/licenses/LICENSE-2.0' +defaultContentType: application/json servers: production: - host: "prod.url:9092" - protocol: kafka-secure - description: Kafka PRODUCTION cluster - security: - - $ref: '#/components/securitySchemes/sasl-ssl' - bindings: - kafka: - schemaRegistryUrl: >- - https://schema-registry.prod.url/ - staging: - host: "staging.url:9092" - protocol: kafka-secure - description: Kafka STAGING cluster for `uat` and `preprod` environments - security: - - $ref: '#/components/securitySchemes/sasl-ssl' - bindings: - kafka: - schemaRegistryUrl: >- - https://schema-registry.staging.url/ - dev: - host: "dev.url:9092" - protocol: kafka-secure - description: Kafka DEV cluster for `dev` and `sit` environments - security: - - $ref: '#/components/securitySchemes/sasl-ssl' - bindings: - kafka: - schemaRegistryUrl: >- - https://schema-registry.dev.url/ - + host: 'test.mosquitto.org:{port}' + protocol: mqtt + description: Test broker + variables: + port: + description: Secure connection (TLS) is available through port 8883. + default: '1883' + enum: + - '1883' + - '8883' channels: - costingRequest: - address: "adeo-{env}-case-study-COSTING-REQUEST-{version}" - description: > - Use this topic to do a Costing Request to Costing product. - We use the - [**RecordNameStrategy**](https://docs.confluent.io/platform/current/schema-registry/serdes-develop/index.html#subject-name-strategy) - to infer the messages schema. - You have to define `x-value.subject.name.strategy` to - `io.confluent.kafka.serializers.subject.RecordNameStrategy` in your - producer to use the schema we manage. - The schema below illustrates how Costing Request messages are - handled. - ![](https://user-images.githubusercontent.com/5501911/188920831-689cec5f-8dc3-460b-8794-0b54ec8b0ac8.png) + 'smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured': + address: 'smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured' + messages: + receiveLightMeasurement.message: + $ref: '#/components/messages/lightMeasured' + description: The topic on which measured values may be produced and consumed. parameters: - env: - $ref: "#/components/parameters/Env" - version: - $ref: "#/components/parameters/Version" - bindings: - kafka: - replicas: 3 - partitions: 3 - topicConfiguration: - cleanup.policy: [ "delete" ] - retention.ms: 604800000 + streetlightId: + $ref: '#/components/parameters/streetlightId' + 'smartylighting/streetlights/1/0/action/{streetlightId}/turn/on': + address: 'smartylighting/streetlights/1/0/action/{streetlightId}/turn/on' messages: - costingRequest: - $ref: "#/components/messages/costingRequestV1" - - costingResponse: - address: "adeo-{env}-case-study-COSTING-RESPONSE-{version}" - description: > - This topic is used to REPLY Costing Requests and is targeted by the - `REPLY_TOPIC` header. - **You must grant PUBLISH access to our `svc-ccr-app` service account.**. - We use the - [**RecordNameStrategy**](https://docs.confluent.io/platform/current/schema-registry/serdes-develop/index.html#subject-name-strategy) - to infer the messages schema. - You have to define `key.subject.name.strategy` and - `x-value.subject.name.strategy` to - `io.confluent.kafka.serializers.subject.RecordNameStrategy` in your - consumer. - The schema below illustrates how Costing Response messages are - handled. - ![](https://user-images.githubusercontent.com/5501911/188920831-689cec5f-8dc3-460b-8794-0b54ec8b0ac8.png) + turnOn.message: + $ref: '#/components/messages/turnOnOff' parameters: - env: - $ref: "#/components/parameters/Env" - version: - $ref: "#/components/parameters/Version" - bindings: - kafka: - x-key.subject.name.strategy: - type: string - description: > - We use the RecordNameStrategy to infer the messages schema. - Use - `x-key.subject.name.strategy=io.confluent.kafka.serializers.subject.RecordNameStrategy` - in your consumer configuration. - x-value.subject.name.strategy: - type: string - description: > - We use the RecordNameStrategy to infer the messages schema. - Use - `x-value.subject.name.strategy=io.confluent.kafka.serializers.subject.RecordNameStrategy` - in your consumer configuration. + streetlightId: + $ref: '#/components/parameters/streetlightId' + 'smartylighting/streetlights/1/0/action/{streetlightId}/turn/off': + address: 'smartylighting/streetlights/1/0/action/{streetlightId}/turn/off' messages: - costingResponse: - $ref: "#/components/messages/costingResponse" - + turnOff.message: + $ref: '#/components/messages/turnOnOff' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + 'smartylighting/streetlights/1/0/action/{streetlightId}/dim': + address: 'smartylighting/streetlights/1/0/action/{streetlightId}/dim' + messages: + dimLight.message: + $ref: '#/components/messages/dimLight' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + some.channel: + address: some.channel + messages: + subscribe.message.0: + $ref: '#/components/messages/successMessage' + subscribe.message.1: + $ref: '#/components/messages/failureMessage' operations: - requestCosting: - action: receive - channel: - $ref: '#/channels/costingRequest' - reply: - channel: - $ref: '#/channels/costingResponse' - address: - location: '$message.header#/REPLY_TOPIC' - summary: | - [COSTING] Request one or more Costing calculation for any product - description: > - You can try a costing request using our [Conduktor producer - template](https://conduktor.url) - tags: - - name: costing - bindings: - kafka: - groupId: - type: string - description: > - The groupId must be prefixed by your `svc` account, deliver by the - Adeo Kafka team. - This `svc` must have the write access to the topic. - x-value.subject.name.strategy: - type: string - description: > - We use the RecordNameStrategy to infer the messages schema. - Use - `x-value.subject.name.strategy=io.confluent.kafka.serializers.subject.RecordNameStrategy` - in your producer configuration. - getCostingResponse: - action: send - channel: - $ref: '#/channels/costingResponse' - summary: > - [COSTING] Get the costing responses matching an initial Costing - Request. - bindings: - kafka: - groupId: - type: string - description: > - The groupId must be prefixed by your `svc` account, deliver by the - Adeo Kafka team. - This `svc` must have the read access to the topic. - tags: - - name: costing + receiveLightMeasurement: + action: receive + channel: + $ref: >- + #/channels/smartylighting~1streetlights~11~10~1event~1{streetlightId}~1lighting~1measured + summary: >- + Inform about environmental lighting conditions of a particular + streetlight. + description: | + This is the description with **bold** text. + On multiple lines. + tags: + - name: oparation-tag1 + externalDocs: + description: External docs description 1 + url: 'https://www.asyncapi.com/' + - name: oparation-tag2 + description: Description 2 + externalDocs: + url: 'https://www.asyncapi.com/' + - name: oparation-tag3 + - name: oparation-tag4 + description: Description 4 + - name: message-tag5 + externalDocs: + url: 'https://www.asyncapi.com/' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/components/messages/lightMeasured' + turnOn: + action: send + channel: + $ref: >- + #/channels/smartylighting~1streetlights~11~10~1action~1{streetlightId}~1turn~1on + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/components/messages/turnOnOff' + turnOff: + action: send + channel: + $ref: >- + #/channels/smartylighting~1streetlights~11~10~1action~1{streetlightId}~1turn~1off + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/components/messages/turnOnOff' + dimLight: + action: send + channel: + $ref: >- + #/channels/smartylighting~1streetlights~11~10~1action~1{streetlightId}~1dim + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/components/messages/dimLight' + some.channel.subscribe: + action: send + channel: + $ref: '#/channels/some.channel' + description: this description shows in markdown + messages: + - $ref: '#/components/messages/successMessage' + - $ref: '#/components/messages/failureMessage' components: - correlationIds: - costingCorrelationId: - description: > - This correlation ID is used for message tracing and messages - correlation. - This correlation ID is generated at runtime based on the `REQUEST_ID` - and sent to the RESPONSE message. - location: $message.header#/REQUEST_ID messages: - costingRequestV1: - name: CostingRequestV1 - title: Costing Request V1 - summary: Costing Request V1 inputs. + lightMeasured: + name: lightMeasured + title: Light measured + summary: >- + Inform about environmental lighting conditions of a particular + streetlight. + contentType: application/json tags: - - name: costing - correlationId: - $ref: "#/components/correlationIds/costingCorrelationId" - headers: - type: object - required: - - REQUESTER_ID - - REQUESTER_CODE - - REQUEST_ID - - REPLY_TOPIC - properties: - REQUEST_ID: - $ref: "#/components/schemas/RequestId" - REPLY_TOPIC: - $ref: "#/components/schemas/ReplyTopic" - REQUESTER_ID: - $ref: "#/components/schemas/RequesterId" - REQUESTER_CODE: - $ref: "#/components/schemas/RequesterCode" + - name: message-tag1 + externalDocs: + description: External docs description 1 + url: 'https://www.asyncapi.com/' + - name: message-tag2 + description: Description 2 + externalDocs: + url: 'https://www.asyncapi.com/' + - name: message-tag3 + - name: message-tag4 + description: Description 4 + - name: message-tag5 + externalDocs: + url: 'https://www.asyncapi.com/' + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/lightMeasuredPayload' + turnOnOff: + name: turnOnOff + title: Turn on/off + summary: Command a particular streetlight to turn the lights on or off. + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/turnOnOffPayload' + dimLight: + name: dimLight + title: Dim light + summary: Command a particular streetlight to dim the lights. + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/dimLightPayload' + successMessage: + name: Success payload: - schemaFormat: application/vnd.apache.avro;version=1.9.0 - schema: - $ref: "https://www.asyncapi.com/resources/casestudies/adeo/CostingRequestPayload.avsc" - costingResponse: - name: CostingResponse - title: Costing Response - summary: Costing Response ouputs. - tags: - - name: costing - description: > - Please refer to the `CostingResponseKey.avsc` schema, available on [our - github - project](https://github.url/). - correlationId: - $ref: "#/components/correlationIds/costingCorrelationId" - headers: type: object properties: - CALCULATION_ID: - $ref: "#/components/schemas/MessageId" - CORRELATION_ID: - $ref: "#/components/schemas/CorrelationId" - REQUEST_TIMESTAMP: - type: string - format: date-time - description: Timestamp of the costing request - CALCULATION_TIMESTAMP: + result: type: string - format: date-time - description: Technical timestamp for the costing calculation + examples: + - success + failureMessage: + name: Failure payload: - schemaFormat: application/vnd.apache.avro;version=1.9.0 - schema: - $ref: "https://deploy-preview-921--asyncapi-website.netlify.app/resources/casestudies/adeo/CostingResponsePayload.avsc" + type: object + properties: + error: + type: object + properties: + errorCode: + type: integer + errorMessage: + type: string + examples: + - error: + errorCode: 404 + errorMessage: Something messed up schemas: - RequesterId: - type: string - description: The Costing requester service account used to produce costing request. - example: svc-ecollect-app - RequesterCode: - type: string - description: >- - The Costing requester code (generally the BU Code). The requester code - is useful to get the dedicated context (tenant). - example: 1 - MessageId: - type: string - format: uuid - description: A unique Message ID. - example: 1fa6ef40-8f47-40a8-8cf6-f8607d0066ef - RequestId: - type: string - format: uuid - description: >- - A unique Request ID needed to define a `CORRELATION_ID` for exchanges, - which will be sent back in the Costing Responses. - example: 1fa6ef40-8f47-40a8-8cf6-f8607d0066ef - CorrelationId: - type: string - format: uuid - description: >- - A unique Correlation ID defined from the `REQUEST_ID` or the - `MESSAGE_ID` provided in the Costing Request. - example: 1fa6ef40-8f47-40a8-8cf6-f8607d0066ef - BuCode: - type: string - description: The Business Unit code for which data are applicable. - example: 1 - ReplyTopic: - type: string - description: > - The Kafka topic where to send the Costing Response. This is required for - the [Return Address EIP - pattern](https://www.enterpriseintegrationpatterns.com/patterns/messaging/ReturnAddress.html). - **You must grant WRITE access to our `svc-ccr-app` service account.** - example: adeo-case-study-COSTING-RESPONSE-V1 - ErrorStep: - type: string - description: | - The woker that has thrown the error. - example: EXPOSE_RESULT - ErrorMessage: - type: string - description: | - The error message describing the error. - example: Error message - ErrorCode: + lightMeasuredPayload: + type: object + properties: + lumens: + type: integer + minimum: 0 + description: Light intensity measured in lumens. + x-pi: false + sentAt: + $ref: '#/components/schemas/sentAt' + turnOnOffPayload: + type: object + properties: + command: + type: string + enum: + - 'on' + - 'off' + description: Whether to turn on or off the light. + x-pi: false + sentAt: + $ref: '#/components/schemas/sentAt' + dimLightPayload: + type: object + properties: + percentage: + type: integer + description: Percentage to which the light should be dimmed to. + minimum: 0 + maximum: 100 + sentAt: + $ref: '#/components/schemas/sentAt' + sentAt: type: string - description: | - The error code. - example: CURRENCY_NOT_FOUND - parameters: - Env: - description: Adeo Kafka Environment for messages publications. - enum: - - dev - - sit - - uat1 - - preprod - - prod - Version: - description: the topic version you want to use - examples: - - V1 - default: V1 + format: date-time + description: Date and time when the message was sent. securitySchemes: - sasl-ssl: - type: plain - x-sasl.jaas.config: >- - org.apache.kafka.common.security.plain.PlainLoginModule required - username="" password=""; - x-security.protocol: SASL_SSL - x-ssl.endpoint.identification.algorithm: https - x-sasl.mechanism: PLAIN - description: > - Use [SASL authentication with SSL - encryption](https://docs.confluent.io/platform/current/security/security_tutorial.html#configure-clients) - to connect to the ADEO Broker. \ No newline at end of file + apiKey: + type: apiKey + in: user + description: Provide your API key as the user and leave the password empty. + supportedOauthFlows: + type: oauth2 + description: Flows to support OAuth 2.0 + flows: + implicit: + authorizationUrl: 'https://authserver.example/auth' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + password: + tokenUrl: 'https://authserver.example/token' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + clientCredentials: + tokenUrl: 'https://authserver.example/token' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + authorizationCode: + authorizationUrl: 'https://authserver.example/auth' + tokenUrl: 'https://authserver.example/token' + refreshUrl: 'https://authserver.example/refresh' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + openIdConnectWellKnown: + type: openIdConnect + openIdConnectUrl: 'https://authserver.example/.well-known' + parameters: + streetlightId: + description: The ID of the streetlight. + messageTraits: + commonHeaders: + headers: + type: object + properties: + my-app-header: + type: integer + minimum: 0 + maximum: 100 + operationTraits: + kafka: + bindings: + kafka: + clientId: + const: my-app-id From 90491a6c77163a546ce5e744bbe79f620ae7b153 Mon Sep 17 00:00:00 2001 From: "jonas-lt@live.dk" Date: Mon, 20 Nov 2023 07:20:36 -1000 Subject: [PATCH 2/3] update dependency --- package-lock.json | 8 ++++---- package.json | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index f9ede3341..bedeb6ce5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,8 @@ "yaml": "^1.10.2" }, "devDependencies": { - "@asyncapi/parser": "^3.0.0-next-major-spec.11", "@asyncapi/cli": "^0.60.4", + "@asyncapi/parser": "^3.0.0-next-major-spec.12", "@babel/preset-env": "^7.15.8", "@babel/preset-react": "^7.14.5", "@types/react": "^18.2.18", @@ -1450,9 +1450,9 @@ } }, "node_modules/@asyncapi/parser": { - "version": "3.0.0-next-major-spec.11", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.11.tgz", - "integrity": "sha512-jJX2HGmeXykvJ1KfrYadeYbf0Dh4mDDvD5KNtf/SJGvVANdYRQrgCV14VlBMnv7kPVELuv8JaYEedYe6x4F8zA==", + "version": "3.0.0-next-major-spec.12", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.12.tgz", + "integrity": "sha512-68b3ceprIrkAWC9FLBOQqK+H9iQnwRNj2G8/s7OyvsNVpyRpNOe4xETUm/RkfyZYTjpLC2sGqbX42SEU0PW2+g==", "dev": true, "dependencies": { "@asyncapi/specs": "^6.0.0-next-major-spec.9", diff --git a/package.json b/package.json index cb183825c..9a7c49fab 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "yaml": "^1.10.2" }, "devDependencies": { - "@asyncapi/parser": "^3.0.0-next-major-spec.11", + "@asyncapi/parser": "^3.0.0-next-major-spec.12", "@asyncapi/cli": "^0.60.4", "@babel/preset-env": "^7.15.8", "@babel/preset-react": "^7.14.5", @@ -57,8 +57,8 @@ }, "generator": { "renderer": "react", - "apiVersion": "v2", - "generator": ">=1.13.0 <2.0.0", + "apiVersion": "v3", + "generator": ">=1.15.0 <2.0.0", "parameters": { "frontMatter": { "description": "The name of a JSON or YAML formatted file containing values to provide the YAML frontmatter for static-site or documentation generators. The file may contain {{title}} and {{version}} replaceable tags.", From 8da7782721e29b76cf68cba8ca2fff9c6887c364 Mon Sep 17 00:00:00 2001 From: "jonas-lt@live.dk" Date: Wed, 29 Nov 2023 10:43:50 -1000 Subject: [PATCH 3/3] adapted dependency versions --- package-lock.json | 800 ++++++++++++++++++++++---------------- package.json | 4 +- test/spec/asyncapi_v3.yml | 12 +- 3 files changed, 468 insertions(+), 348 deletions(-) diff --git a/package-lock.json b/package-lock.json index bedeb6ce5..4cc32dd42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,8 @@ "yaml": "^1.10.2" }, "devDependencies": { - "@asyncapi/cli": "^0.60.4", - "@asyncapi/parser": "^3.0.0-next-major-spec.12", + "@asyncapi/cli": "^1.1.9", + "@asyncapi/parser": "^3.0.0-next-major-spec.14", "@babel/preset-env": "^7.15.8", "@babel/preset-react": "^7.14.5", "@types/react": "^18.2.18", @@ -272,17 +272,17 @@ } }, "node_modules/@asyncapi/cli": { - "version": "0.60.4", - "resolved": "https://registry.npmjs.org/@asyncapi/cli/-/cli-0.60.4.tgz", - "integrity": "sha512-5R/ELt3ow8UM5tDnQsxwPg1imM/fKn/7TiNm1D68OBKhg+SKLITenS/4+pMMfhbEWMXkYSIcA68/lEjazB6oLA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@asyncapi/cli/-/cli-1.1.9.tgz", + "integrity": "sha512-kJwBaKKYnQzJT6KflWkp9SPLyMj/PogBiVhSIGisTZCyoZuPJzZkXhgNQTtjG8GZ6vpscVCLa327+gfBHyI0yA==", "dev": true, "dependencies": { "@asyncapi/avro-schema-parser": "^3.0.5", "@asyncapi/bundler": "^0.3.8", - "@asyncapi/converter": "^1.4.0", + "@asyncapi/converter": "^1.4.2", "@asyncapi/diff": "^0.4.1", - "@asyncapi/generator": "^1.13.1", - "@asyncapi/modelina": "^1.9.1", + "@asyncapi/generator": "^1.15.1", + "@asyncapi/modelina": "^2.0.2", "@asyncapi/openapi-schema-parser": "^3.0.5", "@asyncapi/optimizer": "^0.2.3", "@asyncapi/parser": "^3.0.0-next-major-spec.2", @@ -311,7 +311,7 @@ "serve-handler": "^6.1.3", "strip-ansi": "^6.0.0", "unzipper": "^0.10.11", - "wrap-ansi": "^4.0.0", + "wrap-ansi": "^9.0.0", "ws": "^8.2.3" }, "bin": { @@ -325,12 +325,27 @@ } }, "node_modules/@asyncapi/cli/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@asyncapi/cli/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@asyncapi/cli/node_modules/argparse": { @@ -388,6 +403,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/@asyncapi/cli/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, "node_modules/@asyncapi/cli/node_modules/fast-levenshtein": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", @@ -420,15 +441,6 @@ "node": ">=8" } }, - "node_modules/@asyncapi/cli/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@asyncapi/cli/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -454,28 +466,35 @@ } }, "node_modules/@asyncapi/cli/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", + "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", "dev": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@asyncapi/cli/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/@asyncapi/cli/node_modules/supports-color": { @@ -500,29 +519,35 @@ } }, "node_modules/@asyncapi/cli/node_modules/wrap-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz", - "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/@asyncapi/cli/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/@asyncapi/cli/node_modules/ws": { @@ -547,19 +572,19 @@ } }, "node_modules/@asyncapi/converter": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@asyncapi/converter/-/converter-1.4.0.tgz", - "integrity": "sha512-YGmfb1K7sN9OpmOa1gjbNBTTv9QsQWfXaD7ibKFzHjgsIuQyUjwhp4++psiyw82iRQEUb1RoNPK8/X5knbG/Zg==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@asyncapi/converter/-/converter-1.4.2.tgz", + "integrity": "sha512-/EcZcJPmgcgYAVrxQEInSNj59qIyHJXQ2Ug9LSwQeTcKGxLB40QgjsaQr5Kw/FMkNobZgeOOEtctiDOkqvRsoA==", "dev": true, "dependencies": { - "@asyncapi/parser": "^2.1.1", + "@asyncapi/parser": "^2.1.2", "js-yaml": "^3.14.1" } }, "node_modules/@asyncapi/converter/node_modules/@asyncapi/parser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.1.tgz", - "integrity": "sha512-FnJ5Du9iMu9MEb5mF90gF7z1ZkdnazisBsm3GHVFr7VaiF8luAoB+bklGYFwoMb+9QWKWr1099orY5VyXULAcQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.2.tgz", + "integrity": "sha512-2pHKnr2P8EujcrvZo4x4zNwsEIAg5vb1ZEhl2+OH0YBg8EYH/Xx73XZ+bbwLaYIg1gvFjm29jNB9UL3CMeDU5w==", "dev": true, "dependencies": { "@asyncapi/specs": "^5.1.0", @@ -580,9 +605,7 @@ "avsc": "^5.7.5", "js-yaml": "^4.1.0", "jsonpath-plus": "^7.2.0", - "node-fetch": "2.6.7", - "ramldt2jsonschema": "^1.2.3", - "webapi-parser": "^0.5.0" + "node-fetch": "2.6.7" } }, "node_modules/@asyncapi/converter/node_modules/@asyncapi/parser/node_modules/js-yaml": { @@ -684,15 +707,15 @@ } }, "node_modules/@asyncapi/generator": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@asyncapi/generator/-/generator-1.13.1.tgz", - "integrity": "sha512-+6pQE9OlXue79AO0hMJwlzwH48vED/rPGU1NAQlDyuTvo8599JTd3zUPFDafExRn/arQltJPDE+Z5jtNBifXjw==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@asyncapi/generator/-/generator-1.15.1.tgz", + "integrity": "sha512-8yhEGSaASmKIQlSjmH6RBpsCRJ6c8oWSfY0WCWSk7+lw9eyuFzhq57XKfFAexy2GCVoHAx67VA6/4Na8I2nwew==", "dev": true, "dependencies": { - "@asyncapi/generator-react-sdk": "^0.2.23", - "@asyncapi/parser": "2.1.0", + "@asyncapi/generator-react-sdk": "^1.0.2", + "@asyncapi/parser": "^2.1.2", "@npmcli/arborist": "^2.2.4", - "@smoya/multi-parser": "^4.0.0", + "@smoya/multi-parser": "^5.0.0", "ajv": "^8.12.0", "chokidar": "^3.4.0", "commander": "^6.1.0", @@ -703,7 +726,6 @@ "js-yaml": "^3.13.1", "levenshtein-edit-distance": "^2.0.5", "loglevel": "^1.6.8", - "markdown-it": "^12.3.2", "minimatch": "^3.0.4", "node-fetch": "^2.6.0", "nunjucks": "^3.2.0", @@ -875,78 +897,22 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/@asyncapi/generator/node_modules/@asyncapi/generator-react-sdk": { - "version": "0.2.25", - "resolved": "https://registry.npmjs.org/@asyncapi/generator-react-sdk/-/generator-react-sdk-0.2.25.tgz", - "integrity": "sha512-zmVdNaMPTDoUHnAIp33+dkGspEuLIi3BaaHFXY5lmL1XmaD9bU1rK/HLpNKhV32Os6Wp50CuskOwDsoRCeSGow==", - "dev": true, - "dependencies": { - "@asyncapi/parser": "^1.15.1", - "@babel/core": "7.12.9", - "@babel/preset-env": "^7.12.7", - "@babel/preset-react": "^7.12.7", - "@rollup/plugin-babel": "^5.2.1", - "babel-plugin-source-map-support": "^2.1.3", - "prop-types": "^15.7.2", - "react": "^17.0.1", - "rollup": "^2.60.1", - "source-map-support": "^0.5.19" - } - }, - "node_modules/@asyncapi/generator/node_modules/@asyncapi/generator-react-sdk/node_modules/@asyncapi/parser": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-1.18.1.tgz", - "integrity": "sha512-7sU9DajLV+vA2vShTYmD5lbtbTY6TOcGxB4Z4IcpRp8x5pejOsN32iU05eIYCnuamsi5SMscFxoi6fIO2vPK3Q==", - "dev": true, - "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.0.6", - "@asyncapi/specs": "^4.1.1", - "@fmvilas/pseudo-yaml-ast": "^0.3.1", - "ajv": "^6.10.1", - "js-yaml": "^3.13.1", - "json-to-ast": "^2.1.0", - "lodash.clonedeep": "^4.5.0", - "node-fetch": "^2.6.0", - "tiny-merge-patch": "^0.1.2" - } - }, - "node_modules/@asyncapi/generator/node_modules/@asyncapi/generator-react-sdk/node_modules/@asyncapi/specs": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-4.3.1.tgz", - "integrity": "sha512-EfexhJu/lwF8OdQDm28NKLJHFkx0Gb6O+rcezhZYLPIoNYKXJMh2J1vFGpwmfAcTTh+ffK44Oc2Hs1Q4sLBp+A==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.11" - } - }, - "node_modules/@asyncapi/generator/node_modules/@asyncapi/generator-react-sdk/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@asyncapi/generator/node_modules/@asyncapi/parser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.0.tgz", - "integrity": "sha512-78jjN3eW4ZmgJEa6Ap15lofzADCeItO4wHcAY2Jod3qLB1xf1zFDZQdtm3VSHYLeLhwoC1A33bAtzEf7M5P2bg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.2.tgz", + "integrity": "sha512-2pHKnr2P8EujcrvZo4x4zNwsEIAg5vb1ZEhl2+OH0YBg8EYH/Xx73XZ+bbwLaYIg1gvFjm29jNB9UL3CMeDU5w==", "dev": true, "dependencies": { "@asyncapi/specs": "^5.1.0", "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "@stoplight/json": "^3.20.2", + "@stoplight/json-ref-readers": "^1.2.2", "@stoplight/json-ref-resolver": "^3.1.5", "@stoplight/spectral-core": "^1.16.1", "@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", @@ -955,9 +921,7 @@ "avsc": "^5.7.5", "js-yaml": "^4.1.0", "jsonpath-plus": "^7.2.0", - "node-fetch": "2.6.7", - "ramldt2jsonschema": "^1.2.3", - "webapi-parser": "^0.5.0" + "node-fetch": "2.6.7" } }, "node_modules/@asyncapi/generator/node_modules/@asyncapi/parser/node_modules/js-yaml": { @@ -981,44 +945,19 @@ "@types/json-schema": "^7.0.11" } }, - "node_modules/@asyncapi/generator/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "node_modules/@asyncapi/generator/node_modules/@smoya/multi-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@smoya/multi-parser/-/multi-parser-5.0.0.tgz", + "integrity": "sha512-8cBG+pD478YHblQafBDngubW6lVcxJK+WJb0EtMnPYhP9upMBceRAnWRVL1RgZ5t/3C2C9DsjOo7IazW78Kf5g==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@asyncapi/generator/node_modules/@babel/core/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" + "@asyncapi/avro-schema-parser": "^3.0.3", + "@asyncapi/openapi-schema-parser": "^3.0.4", + "@asyncapi/protobuf-schema-parser": "^3.0.0", + "@asyncapi/raml-dt-schema-parser": "^4.0.4", + "parserapiv1": "npm:@asyncapi/parser@^2.1.0", + "parserapiv2": "npm:@asyncapi/parser@3.0.0-next-major-spec.8", + "parserapiv3": "npm:@asyncapi/parser@^3.0.0-next-major-spec.10" } }, "node_modules/@asyncapi/generator/node_modules/argparse": { @@ -1027,12 +966,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/@asyncapi/generator/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/@asyncapi/generator/node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -1053,15 +986,6 @@ } } }, - "node_modules/@asyncapi/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@asyncapi/generator/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -1085,40 +1009,46 @@ } }, "node_modules/@asyncapi/modelina": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@asyncapi/modelina/-/modelina-1.9.1.tgz", - "integrity": "sha512-Uik1951dm0MGduKsPzzJmeHZ/IINevR1Qx+QHIRfj9B4ayEAFMNV7sOBJ9eqtEvDohGvXgeFsnNMGAXshed1GQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@asyncapi/modelina/-/modelina-2.0.5.tgz", + "integrity": "sha512-cjoQP5yOLkvdhBlHcQYISqC1VKRjV+Rul+HIapwy3UjYXe1i2QZ/HmP81GAk8FQl8ejigi/iL24qvqjog0fyFw==", "dev": true, "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.9", "@apidevtools/swagger-parser": "^10.0.3", - "@asyncapi/avro-schema-parser": "^3.0.2", - "@asyncapi/openapi-schema-parser": "^3.0.4", - "@asyncapi/parser": "^2.1.0", - "@asyncapi/raml-dt-schema-parser": "^4.0.4", + "@asyncapi/avro-schema-parser": "^3.0.5", + "@asyncapi/openapi-schema-parser": "^3.0.6", + "@asyncapi/parser": "^2.1.2", + "@asyncapi/raml-dt-schema-parser": "^4.0.6", "@swc/core": "^1.3.5", "@swc/jest": "^0.2.23", + "@types/node": "^20.3.3", "alterschema": "^1.1.2", "change-case": "^4.1.2", + "cross-env": "^7.0.3", "openapi-types": "9.3.0", - "typescript-json-schema": "^0.57.0" + "typescript-json-schema": "^0.58.1" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/@asyncapi/modelina/node_modules/@asyncapi/parser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.0.tgz", - "integrity": "sha512-78jjN3eW4ZmgJEa6Ap15lofzADCeItO4wHcAY2Jod3qLB1xf1zFDZQdtm3VSHYLeLhwoC1A33bAtzEf7M5P2bg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.2.tgz", + "integrity": "sha512-2pHKnr2P8EujcrvZo4x4zNwsEIAg5vb1ZEhl2+OH0YBg8EYH/Xx73XZ+bbwLaYIg1gvFjm29jNB9UL3CMeDU5w==", "dev": true, "dependencies": { "@asyncapi/specs": "^5.1.0", "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "@stoplight/json": "^3.20.2", + "@stoplight/json-ref-readers": "^1.2.2", "@stoplight/json-ref-resolver": "^3.1.5", "@stoplight/spectral-core": "^1.16.1", "@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", @@ -1127,9 +1057,7 @@ "avsc": "^5.7.5", "js-yaml": "^4.1.0", "jsonpath-plus": "^7.2.0", - "node-fetch": "2.6.7", - "ramldt2jsonschema": "^1.2.3", - "webapi-parser": "^0.5.0" + "node-fetch": "2.6.7" } }, "node_modules/@asyncapi/modelina/node_modules/@asyncapi/specs": { @@ -1202,12 +1130,12 @@ } }, "node_modules/@asyncapi/openapi-schema-parser": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@asyncapi/openapi-schema-parser/-/openapi-schema-parser-3.0.5.tgz", - "integrity": "sha512-2CPP0arkI/ibXTdae6DqeQyor3xuSf0GOyh0+yFPqVkbiYPBkC8K2UNbQ610vt8KpcEFeijX+7YuV+FTuQ5CHg==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@asyncapi/openapi-schema-parser/-/openapi-schema-parser-3.0.6.tgz", + "integrity": "sha512-hm6B0hjsfg2cFzksIWhpnxImCXUxj+7al9WnNceWNQPrEZVUKt+lKyEDJseJy8XIT+KeJazy/uwa5WI1yuDanA==", "dev": true, "dependencies": { - "@asyncapi/parser": "^2.1.1", + "@asyncapi/parser": "^2.1.2", "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", "ajv": "^8.11.0", "ajv-errors": "^3.0.0", @@ -1215,9 +1143,9 @@ } }, "node_modules/@asyncapi/openapi-schema-parser/node_modules/@asyncapi/parser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.1.tgz", - "integrity": "sha512-FnJ5Du9iMu9MEb5mF90gF7z1ZkdnazisBsm3GHVFr7VaiF8luAoB+bklGYFwoMb+9QWKWr1099orY5VyXULAcQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.2.tgz", + "integrity": "sha512-2pHKnr2P8EujcrvZo4x4zNwsEIAg5vb1ZEhl2+OH0YBg8EYH/Xx73XZ+bbwLaYIg1gvFjm29jNB9UL3CMeDU5w==", "dev": true, "dependencies": { "@asyncapi/specs": "^5.1.0", @@ -1238,9 +1166,7 @@ "avsc": "^5.7.5", "js-yaml": "^4.1.0", "jsonpath-plus": "^7.2.0", - "node-fetch": "2.6.7", - "ramldt2jsonschema": "^1.2.3", - "webapi-parser": "^0.5.0" + "node-fetch": "2.6.7" } }, "node_modules/@asyncapi/openapi-schema-parser/node_modules/@asyncapi/specs": { @@ -1450,9 +1376,9 @@ } }, "node_modules/@asyncapi/parser": { - "version": "3.0.0-next-major-spec.12", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.12.tgz", - "integrity": "sha512-68b3ceprIrkAWC9FLBOQqK+H9iQnwRNj2G8/s7OyvsNVpyRpNOe4xETUm/RkfyZYTjpLC2sGqbX42SEU0PW2+g==", + "version": "3.0.0-next-major-spec.15", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.15.tgz", + "integrity": "sha512-3Ngxkekzw7oh8auqGmEnz3PiSxSIkveMzdpuBIOiQ3EHVnBpG1cdhi/mMlvksqTsMQcfLGPsVVqW7Y3cW2HPDQ==", "dev": true, "dependencies": { "@asyncapi/specs": "^6.0.0-next-major-spec.9", @@ -4138,15 +4064,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@fmvilas/pseudo-yaml-ast": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@fmvilas/pseudo-yaml-ast/-/pseudo-yaml-ast-0.3.1.tgz", - "integrity": "sha512-8OAB74W2a9M3k9bjYD8AjVXkX+qO8c0SqNT5HlgOqx7AxSw8xdksEcZp7gFtfi+4njSxT6+76ZR+1ubjAwQHOg==", - "dev": true, - "dependencies": { - "yaml-ast-parser": "0.0.43" - } - }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -6836,9 +6753,9 @@ } }, "node_modules/@smoya/multi-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smoya/multi-parser/-/multi-parser-4.0.0.tgz", - "integrity": "sha512-NgPxSaB3YqwrIVe7AtQ/wh9I2J0BHR4lP0PdqirYYrc0XXRwdDjIRrywEc2jjECWsL7tuGU/QtGMGIVaJe6ZYA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smoya/multi-parser/-/multi-parser-4.1.0.tgz", + "integrity": "sha512-0q4805I7ZdkKNEbNrbxmBNAdYEAH9aBYCuXiIXCbu8WC0sdRqLWmTsvg/DaNO8ZnsrGhVzy5VITf+8CKlVnGoQ==", "dev": true, "dependencies": { "@asyncapi/avro-schema-parser": "^3.0.3", @@ -9939,15 +9856,6 @@ "node": ">= 0.12.0" } }, - "node_modules/code-error-fragment": { - "version": "0.0.230", - "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", - "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -10334,6 +10242,24 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -10912,15 +10838,6 @@ "once": "^1.4.0" } }, - "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -12245,6 +12162,18 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -12475,12 +12404,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -15639,9 +15562,9 @@ "dev": true }, "node_modules/json-e": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/json-e/-/json-e-4.5.3.tgz", - "integrity": "sha512-dpH7RFjP74uLxVym1kYz3lvLjdb5Iv4L1jv/emA0RbhrBLWY1ridB549aEHHg4QSFDAHOD/Cc8+6wFf5m1elQQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/json-e/-/json-e-4.6.0.tgz", + "integrity": "sha512-j8egdhAzK7up1UoBfaT5TI3WRw2d602iIM0dJfcddMntGlzaJEfCcIVSwGCZDJSFtBE7JnTbe72geAB4XAQtmA==", "dev": true, "dependencies": { "json-stable-stringify-without-jsonify": "^1.0.1" @@ -15735,19 +15658,6 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, - "node_modules/json-to-ast": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz", - "integrity": "sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==", - "dev": true, - "dependencies": { - "code-error-fragment": "0.0.230", - "grapheme-splitter": "^1.0.4" - }, - "engines": { - "node": ">= 4" - } - }, "node_modules/json2md": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/json2md/-/json2md-1.13.0.tgz", @@ -15934,15 +15844,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, "node_modules/list-item": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz", @@ -16023,12 +15924,6 @@ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", "dev": true }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -16284,28 +16179,6 @@ "tmpl": "1.0.5" } }, - "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/markdown-link": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz", @@ -16359,12 +16232,6 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, "node_modules/mem-fs": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-2.3.0.tgz", @@ -18000,15 +17867,198 @@ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, - "node_modules/parserv2": { + "node_modules/parserapiv1": { "name": "@asyncapi/parser", - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.0.tgz", - "integrity": "sha512-78jjN3eW4ZmgJEa6Ap15lofzADCeItO4wHcAY2Jod3qLB1xf1zFDZQdtm3VSHYLeLhwoC1A33bAtzEf7M5P2bg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.2.tgz", + "integrity": "sha512-2pHKnr2P8EujcrvZo4x4zNwsEIAg5vb1ZEhl2+OH0YBg8EYH/Xx73XZ+bbwLaYIg1gvFjm29jNB9UL3CMeDU5w==", "dev": true, "dependencies": { "@asyncapi/specs": "^5.1.0", "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "@stoplight/json": "^3.20.2", + "@stoplight/json-ref-readers": "^1.2.2", + "@stoplight/json-ref-resolver": "^3.1.5", + "@stoplight/spectral-core": "^1.16.1", + "@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-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "avsc": "^5.7.5", + "js-yaml": "^4.1.0", + "jsonpath-plus": "^7.2.0", + "node-fetch": "2.6.7" + } + }, + "node_modules/parserapiv1/node_modules/@asyncapi/specs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-5.1.0.tgz", + "integrity": "sha512-yffhETqehkim43luMnPKOwzY0D0YtU4bKpORIXIaid6p5Y5kDLrMGJaEPkNieQp03HMjhjFrnUPtT8kvqe0+aQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.11" + } + }, + "node_modules/parserapiv1/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/parserapiv1/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/parserapiv1/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/parserapiv1/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/parserapiv1/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/parserapiv1/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/parserapiv2": { + "name": "@asyncapi/parser", + "version": "3.0.0-next-major-spec.8", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.8.tgz", + "integrity": "sha512-d8ebYM08BCsx3Q4AeLke6naU/NrcAXFEVpS6b3EWcKRdUDce+v0X5k9aDH+YXWCaQApEF28UzcxhlSOJvhIFgQ==", + "dev": true, + "dependencies": { + "@asyncapi/specs": "^6.0.0-next-major-spec.9", + "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "@stoplight/json-ref-resolver": "^3.1.5", + "@stoplight/spectral-core": "^1.16.1", + "@stoplight/spectral-functions": "^1.7.2", + "@stoplight/spectral-parsers": "^1.0.2", + "@types/json-schema": "^7.0.11", + "@types/urijs": "^1.19.19", + "ajv": "^8.11.0", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "avsc": "^5.7.5", + "js-yaml": "^4.1.0", + "jsonpath-plus": "^7.2.0", + "node-fetch": "2.6.7", + "ramldt2jsonschema": "^1.2.3", + "webapi-parser": "^0.5.0" + } + }, + "node_modules/parserapiv2/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/parserapiv2/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/parserapiv2/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/parserapiv2/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/parserapiv2/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/parserapiv2/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/parserapiv3": { + "name": "@asyncapi/parser", + "version": "3.0.0-next-major-spec.15", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.15.tgz", + "integrity": "sha512-3Ngxkekzw7oh8auqGmEnz3PiSxSIkveMzdpuBIOiQ3EHVnBpG1cdhi/mMlvksqTsMQcfLGPsVVqW7Y3cW2HPDQ==", + "dev": true, + "dependencies": { + "@asyncapi/specs": "^6.0.0-next-major-spec.9", + "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", "@stoplight/json-ref-resolver": "^3.1.5", "@stoplight/spectral-core": "^1.16.1", "@stoplight/spectral-functions": "^1.7.2", @@ -18026,6 +18076,94 @@ "webapi-parser": "^0.5.0" } }, + "node_modules/parserapiv3/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/parserapiv3/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/parserapiv3/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/parserapiv3/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/parserapiv3/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/parserapiv3/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/parserv2": { + "name": "@asyncapi/parser", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-2.1.2.tgz", + "integrity": "sha512-2pHKnr2P8EujcrvZo4x4zNwsEIAg5vb1ZEhl2+OH0YBg8EYH/Xx73XZ+bbwLaYIg1gvFjm29jNB9UL3CMeDU5w==", + "dev": true, + "dependencies": { + "@asyncapi/specs": "^5.1.0", + "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "@stoplight/json": "^3.20.2", + "@stoplight/json-ref-readers": "^1.2.2", + "@stoplight/json-ref-resolver": "^3.1.5", + "@stoplight/spectral-core": "^1.16.1", + "@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-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "avsc": "^5.7.5", + "js-yaml": "^4.1.0", + "jsonpath-plus": "^7.2.0", + "node-fetch": "2.6.7" + } + }, "node_modules/parserv2/node_modules/@asyncapi/specs": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-5.1.0.tgz", @@ -18097,12 +18235,12 @@ }, "node_modules/parserv3": { "name": "@asyncapi/parser", - "version": "3.0.0-next-major-spec.3", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.3.tgz", - "integrity": "sha512-LCrAQqJpGxraMyU2k1Nh1X6Q1dz7a/YhTRRFFrQHOEo+TUT/kRdoUkRDP++e58dO7h9MBN+/hZK5TaqE+/jQiw==", + "version": "3.0.0-next-major-spec.15", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.0-next-major-spec.15.tgz", + "integrity": "sha512-3Ngxkekzw7oh8auqGmEnz3PiSxSIkveMzdpuBIOiQ3EHVnBpG1cdhi/mMlvksqTsMQcfLGPsVVqW7Y3cW2HPDQ==", "dev": true, "dependencies": { - "@asyncapi/specs": "^6.0.0-next-major-spec.6", + "@asyncapi/specs": "^6.0.0-next-major-spec.9", "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", "@stoplight/json-ref-resolver": "^3.1.5", "@stoplight/spectral-core": "^1.16.1", @@ -20131,9 +20269,9 @@ } }, "node_modules/simple-git": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.20.0.tgz", - "integrity": "sha512-ozK8tl2hvLts8ijTs18iFruE+RoqmC/mqZhjs/+V7gS5W68JpJ3+FCTmLVqmR59MaUQ52MfGQuWsIqfsTbbJ0Q==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.21.0.tgz", + "integrity": "sha512-oTzw9248AF5bDTMk9MrxsRzEzivMlY+DWH0yWS4VYpMhNLhDWnN06pCtaUyPnqv/FpsdeNmRqmZugMABHRPdDA==", "dev": true, "dependencies": { "@kwsites/file-exists": "^1.1.1", @@ -20351,9 +20489,9 @@ "dev": true }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -20843,12 +20981,6 @@ "xtend": "~4.0.1" } }, - "node_modules/tiny-merge-patch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tiny-merge-patch/-/tiny-merge-patch-0.1.2.tgz", - "integrity": "sha512-NLoA//tTMBPTr0oGdq+fxnvVR0tDa8tOcG9ZGbuovGzROadZ404qOV4g01jeWa5S8MC9nAOvu5bQgCW7s8tlWQ==", - "dev": true - }, "node_modules/tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -21482,9 +21614,9 @@ } }, "node_modules/typescript-json-schema": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.57.0.tgz", - "integrity": "sha512-xirQK0s95K3OL7Knve0OOxQHErByCxUsgXr5oCHa9J0jWgiA+9/tidHWPu1UMjRv7MoX5ViP6QmOrWCi+dvRew==", + "version": "0.58.1", + "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.58.1.tgz", + "integrity": "sha512-EcmquhfGEmEJOAezLZC6CzY0rPNzfXuky+Z3zoXULEEncW8e13aAjmC2r8ppT1bvvDekJj1TJ4xVhOdkjYtkUA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -21501,9 +21633,9 @@ } }, "node_modules/typescript-json-schema/node_modules/@types/node": { - "version": "16.18.58", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.58.tgz", - "integrity": "sha512-YGncyA25/MaVtQkjWW9r0EFBukZ+JulsLcVZBlGUfIb96OBMjkoRWwQo5IEWJ8Fj06Go3GHw+bjYDitv6BaGsA==", + "version": "16.18.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.66.tgz", + "integrity": "sha512-sePmD/imfKvC4re/Wwos1NEcXYm6O96CAG5gQVY53nmDb8ePQ4qPku6uruN7n6TJ0t5FhcoUc2+yvE2/UZVDZw==", "dev": true }, "node_modules/typescript-json-schema/node_modules/cliui": { @@ -21579,12 +21711,6 @@ "node": ">=12" } }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -22455,12 +22581,6 @@ "node": ">= 6" } }, - "node_modules/yaml-ast-parser": { - "version": "0.0.43", - "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", - "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", - "dev": true - }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/package.json b/package.json index 9a7c49fab..fe1740e44 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,8 @@ "yaml": "^1.10.2" }, "devDependencies": { - "@asyncapi/parser": "^3.0.0-next-major-spec.12", - "@asyncapi/cli": "^0.60.4", + "@asyncapi/parser": "^3.0.0-next-major-spec.14", + "@asyncapi/cli": "^1.1.9", "@babel/preset-env": "^7.15.8", "@babel/preset-react": "^7.14.5", "@types/react": "^18.2.18", diff --git a/test/spec/asyncapi_v3.yml b/test/spec/asyncapi_v3.yml index c5639d710..ef0c47a5d 100644 --- a/test/spec/asyncapi_v3.yml +++ b/test/spec/asyncapi_v3.yml @@ -91,7 +91,7 @@ operations: traits: - $ref: '#/components/operationTraits/kafka' messages: - - $ref: '#/components/messages/lightMeasured' + - $ref: '#/channels/smartylighting~1streetlights~11~10~1event~1{streetlightId}~1lighting~1measured/messages/receiveLightMeasurement.message' turnOn: action: send channel: @@ -100,7 +100,7 @@ operations: traits: - $ref: '#/components/operationTraits/kafka' messages: - - $ref: '#/components/messages/turnOnOff' + - $ref: '#/channels/smartylighting~1streetlights~11~10~1action~1{streetlightId}~1turn~1on/messages/turnOn.message' turnOff: action: send channel: @@ -109,7 +109,7 @@ operations: traits: - $ref: '#/components/operationTraits/kafka' messages: - - $ref: '#/components/messages/turnOnOff' + - $ref: '#/channels/smartylighting~1streetlights~11~10~1action~1{streetlightId}~1turn~1off/messages/turnOff.message' dimLight: action: send channel: @@ -118,15 +118,15 @@ operations: traits: - $ref: '#/components/operationTraits/kafka' messages: - - $ref: '#/components/messages/dimLight' + - $ref: '#/channels/smartylighting~1streetlights~11~10~1action~1{streetlightId}~1dim/messages/dimLight.message' some.channel.subscribe: action: send channel: $ref: '#/channels/some.channel' description: this description shows in markdown messages: - - $ref: '#/components/messages/successMessage' - - $ref: '#/components/messages/failureMessage' + - $ref: '#/channels/some.channel/messages/subscribe.message.0' + - $ref: '#/channels/some.channel/messages/subscribe.message.1' components: messages: lightMeasured: