@asyncapi/generator 2.8.3 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.md +3 -0
- package/docs/api.md +1 -50
- package/docs/baked-in-templates.md +1 -1
- package/docs/jsdoc2md-handlebars/main-index/global-index/global-index-dl.hbs +13 -0
- package/docs/jsdoc2md-handlebars/member-index-grouped.hbs +6 -0
- package/docs/jsdoc2md-handlebars/member-index-list.hbs +6 -0
- package/docs/jsdoc2md-handlebars/members.hbs +1 -0
- package/docs/migration-nunjucks-react.md +2 -2
- package/jest.config.js +7 -5
- package/lib/__mocks__/templateConfigValidator.js +1 -1
- package/lib/generator.js +4 -59
- package/lib/templates/BakedInTemplatesList.json +7 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/.ageneratorrc +33 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/README.md +35 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ClientConsumer.js +30 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ClientConsumer.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ClientEndpoint.js +46 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ClientEndpoint.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ClientProducer.js +30 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ClientProducer.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ConsumeEvent.js +26 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ConsumeEvent.js.map +1 -0
- package/lib/templates/bakedInTemplates/{core-template-client-websocket-javascript/__transpiled/components/HandleMessage.js → core-template-client-kafka-java-quarkus/__transpiled/components/ConsumerFields.js} +7 -8
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ConsumerFields.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/EndpointFields.js +44 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/EndpointFields.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/MiddleService.js +46 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/MiddleService.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ProduceEvent.js +48 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ProduceEvent.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ProducerFields.js +26 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/ProducerFields.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/SendEvent.js +40 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/SendEvent.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/dependencies/ConsumerDependencies.js +18 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/dependencies/ConsumerDependencies.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/dependencies/EndpointDependencies.js +18 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/dependencies/EndpointDependencies.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/dependencies/ProducerDependencies.js +18 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/components/dependencies/ProducerDependencies.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/jest.config.js +13 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/jest.config.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/client.java.js +183 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/client.java.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/consumer.java.js +86 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/consumer.java.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/models/model.js +19 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/models/model.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/producer.java.js +102 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/producer.java.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/resources/AppProperties.js +73 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/template/src/main/resources/AppProperties.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/ClientConsumer.js +20 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/ClientEndpoint.js +32 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/ClientProducer.js +21 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/ConsumeEvent.js +18 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/ConsumerFields.js +9 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/EndpointFields.js +40 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/MiddleService.js +37 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/ProduceEvent.js +39 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/ProducerFields.js +16 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/SendEvent.js +33 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/dependencies/ConsumerDependencies.js +11 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/dependencies/EndpointDependencies.js +11 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/components/dependencies/ProducerDependencies.js +11 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/jest.config.js +14 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/package.json +49 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/.dockerignore +5 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/.mvn/wrapper/MavenWrapperDownloader.java +93 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/.mvn/wrapper/maven-wrapper.properties +20 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/README.md +59 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/mvnw +332 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/mvnw.cmd +206 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/pom.xml +123 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/src/main/docker/Dockerfile.jvm +98 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/src/main/docker/docker-compose.yaml +28 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/src/main/java/com/asyncapi/client.java.js +27 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/src/main/java/com/asyncapi/consumer.java.js +22 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/src/main/java/com/asyncapi/models/model.js +6 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/src/main/java/com/asyncapi/producer.java.js +23 -0
- package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/template/src/main/resources/AppProperties.js +75 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/ClientClass.js +10 -5
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/ClientClass.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/jest.config.js +13 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/jest.config.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/template/client.dart.js +10 -74
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/template/client.dart.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/ClientClass.js +11 -7
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/jest.config.js +14 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/package.json +1 -15
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/README.md +88 -6
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ClientConnector.js +22 -5
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ClientConnector.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ClientFields.js +19 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ClientFields.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ConnectorFields.js +8 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ConnectorFields.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/Constructor.js +44 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/Constructor.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ConstructorSignature.js +28 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ConstructorSignature.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/DefaultConstructorSignature.js +32 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/DefaultConstructorSignature.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/EchoWebSocket.js +20 -5
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/EchoWebSocket.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/HandleError.js +1 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/HandleError.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/InitConnector.js +23 -33
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/InitConnector.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnTextMessageHandler.js +42 -9
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnTextMessageHandler.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/TimedConnection.js +39 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/TimedConnection.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/URIParams.js +63 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/URIParams.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/dependencies/ClientDependencies.js +13 -17
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/dependencies/ClientDependencies.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/dependencies/ConnectorDependencies.js +16 -15
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/dependencies/ConnectorDependencies.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/jest.config.js +13 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/jest.config.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/client.java.js +153 -57
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/client.java.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/connector.java.js +152 -51
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/connector.java.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/models/model.js +2 -35
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/models/model.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/resources/AppProperties.js +3 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/resources/AppProperties.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/ClientConnector.js +12 -5
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/ClientFields.js +18 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/ConnectorFields.js +7 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/Constructor.js +30 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/ConstructorSignature.js +19 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/DefaultConstructorSignature.js +23 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/EchoWebSocket.js +17 -7
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/HandleError.js +2 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/InitConnector.js +13 -30
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/OnTextMessageHandler.js +55 -15
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/TimedConnection.js +31 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/URIParams.js +60 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/dependencies/ClientDependencies.js +12 -18
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/dependencies/ConnectorDependencies.js +16 -16
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/jest.config.js +14 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/package.json +1 -15
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/pom.xml +15 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/java/com/asyncapi/client.java.js +4 -3
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/java/com/asyncapi/connector.java.js +7 -3
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/java/com/asyncapi/models/model.js +2 -32
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/resources/AppProperties.js +5 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/.ageneratorrc +8 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ClientClass.js +15 -7
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ClientClass.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/CompileOperationSchemas.js +48 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/CompileOperationSchemas.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Constructor.js +7 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Constructor.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/jest.config.js +13 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/jest.config.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/client.js.js +51 -116
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/client.js.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/ClientClass.js +19 -11
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/CompileOperationSchemas.js +40 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/Constructor.js +7 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/jest.config.js +14 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/package.json +5 -18
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/template/client.js.js +5 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/README.md +20 -5
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/ClientClass.js +15 -8
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/ClientClass.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Constructor.js +3 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Constructor.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/jest.config.js +13 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/jest.config.js.map +1 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/client.py.js +41 -174
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/client.py.js.map +1 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/ClientClass.js +20 -10
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/Constructor.js +5 -2
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/jest.config.js +14 -0
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/package.json +1 -15
- package/lib/templates/config/loader.js +64 -0
- package/lib/{templateConfigValidator.js → templates/config/validator.js} +2 -2
- package/package.json +3 -3
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/Connect.js +0 -60
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/Connect.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/HandleMessage.js +0 -21
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/HandleMessage.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/RegisterErrorHandler.js +0 -21
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/RegisterErrorHandler.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/Connect.js +0 -49
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/HandleMessage.js +0 -14
- package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/RegisterErrorHandler.js +0 -14
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnClose.js +0 -23
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnClose.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnOpen.js +0 -25
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnOpen.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/OnClose.js +0 -16
- package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/OnOpen.js +0 -16
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Connect.js +0 -63
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Connect.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/HandleMessage.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/RegisterErrorHandler.js +0 -25
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/RegisterErrorHandler.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/SendOperation.js +0 -53
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/SendOperation.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/Connect.js +0 -54
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/HandleMessage.js +0 -14
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/RegisterErrorHandler.js +0 -18
- package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/SendOperation.js +0 -44
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Connect.js +0 -58
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Connect.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/HandleMessage.js +0 -24
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/HandleMessage.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/QueryParamsVariables.js +0 -36
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/QueryParamsVariables.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/RegisterErrorHandler.js +0 -23
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/RegisterErrorHandler.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/SendOperation.js +0 -56
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/SendOperation.js.map +0 -1
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/Connect.js +0 -49
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/HandleMessage.js +0 -17
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/QueryParamsVariables.js +0 -27
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/RegisterErrorHandler.js +0 -16
- package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/SendOperation.js +0 -50
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# @asyncapi/generator
|
|
2
2
|
|
|
3
|
+
## 2.11.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ced1404: Pushing of release https://github.com/asyncapi/generator/pull/1747 that failed due to pipeline issues.
|
|
8
|
+
|
|
9
|
+
## 2.10.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- aee45ba: Pushing of release https://github.com/asyncapi/generator/pull/1747 that failed due to pipeline issues.
|
|
14
|
+
|
|
15
|
+
## 2.9.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 8168bcd: Pushing of release https://github.com/asyncapi/generator/pull/1747 that failed due to pipeline issues.
|
|
20
|
+
|
|
21
|
+
## 2.8.4
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- 91735c3: Fix invalid Java method name generation and properly handle multiple WebSocket handlers
|
|
26
|
+
|
|
27
|
+
- Generate valid Java method names for WebSocket operation handlers with strange identifiers.
|
|
28
|
+
- Produce distinct @OnTextMessage handler methods for each send operation and add safe default routing for unrecognized messages.
|
|
29
|
+
- Update onClose/onOpen formatting.
|
|
30
|
+
|
|
31
|
+
- Updated dependencies [91735c3]
|
|
32
|
+
- @asyncapi/generator-components@0.3.1
|
|
33
|
+
|
|
3
34
|
## 2.8.3
|
|
4
35
|
|
|
5
36
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -26,3 +26,6 @@ There is a large number of templates that are ready to use and are officially su
|
|
|
26
26
|
<!-- TEMPLATES-LIST:END -->
|
|
27
27
|
|
|
28
28
|
You can find above templates and the ones provided by the community in **[this list](https://github.com/search?q=topic%3Aasyncapi+topic%3Agenerator+topic%3Atemplate)**
|
|
29
|
+
|
|
30
|
+
> [!IMPORTANT]
|
|
31
|
+
> **Experimental Feature:** AsyncAPI Generator also comes with **baked-in templates** - official templates shipped directly inside the Generator (`@asyncapi/generator`). They cover code, docs, configs, and SDKs, and are maintained under [/packages/templates](packages/templates) directory, following a strict, opinionated structure for consistency and ease of maintenance. This feature is not recommended for production use. For those who want to try them out or learn more, see the [Baked-in templates documentation](https://www.asyncapi.com/docs/tools/generator/baked-in-templates).
|
package/docs/api.md
CHANGED
|
@@ -8,7 +8,6 @@ Reference API documentation for AsyncAPI Generator library.
|
|
|
8
8
|
|
|
9
9
|
<dl>
|
|
10
10
|
<dt><a href="#Generator">Generator</a></dt>
|
|
11
|
-
<dd></dd>
|
|
12
11
|
</dl>
|
|
13
12
|
|
|
14
13
|
## Members
|
|
@@ -16,7 +15,7 @@ Reference API documentation for AsyncAPI Generator library.
|
|
|
16
15
|
<dl>
|
|
17
16
|
<dt><a href="#listBakedInTemplates">listBakedInTemplates</a> ⇒ <code>Array.<Object></code></dt>
|
|
18
17
|
<dd><p>List core templates, optionally filter by type, stack, protocol, or target.
|
|
19
|
-
Use name of returned templates as input for the
|
|
18
|
+
Use name of returned templates as input for the `generate` method for template generation. Such core templates code is part of the @asyncapi/generator package.</p></dd>
|
|
20
19
|
</dl>
|
|
21
20
|
|
|
22
21
|
|
|
@@ -54,7 +53,6 @@ Use name of returned templates as input for the <code>generate</code> method for
|
|
|
54
53
|
* [.executeAfterHook()](#Generator+executeAfterHook) ⇒ `Promise.<void>`
|
|
55
54
|
* [.parseInput()](#Generator+parseInput)
|
|
56
55
|
* [.configureTemplate()](#Generator+configureTemplate)
|
|
57
|
-
* ~~[.generateFromString(asyncapiString, [parseOptions])](#Generator+generateFromString) ⇒ `Promise.<(TemplateRenderResult|undefined)>`~~
|
|
58
56
|
* [.generateFromURL(asyncapiURL)](#Generator+generateFromURL) ⇒ `Promise.<(TemplateRenderResult|undefined)>`
|
|
59
57
|
* [.generateFromFile(asyncapiFile)](#Generator+generateFromFile) ⇒ `Promise.<(TemplateRenderResult|undefined)>`
|
|
60
58
|
* [.installTemplate([force])](#Generator+installTemplate)
|
|
@@ -371,53 +369,6 @@ Configure the templates based the desired renderer.
|
|
|
371
369
|
|
|
372
370
|
**Kind**: instance method of [`Generator`](#Generator)
|
|
373
371
|
|
|
374
|
-
<a name="Generator+generateFromString"></a>
|
|
375
|
-
|
|
376
|
-
### ~~generator.generateFromString~~
|
|
377
|
-
***Deprecated***
|
|
378
|
-
|
|
379
|
-
Generates files from a given template and AsyncAPI string.
|
|
380
|
-
|
|
381
|
-
**Kind**: instance method of [`Generator`](#Generator)
|
|
382
|
-
**Params**
|
|
383
|
-
|
|
384
|
-
- asyncapiString `String` - AsyncAPI string to use as source.
|
|
385
|
-
- [parseOptions] `Object` ` = {}` - AsyncAPI Parser parse options. Check out [@asyncapi/parser](https://www.github.com/asyncapi/parser-js) for more information.
|
|
386
|
-
|
|
387
|
-
**Example**
|
|
388
|
-
```js
|
|
389
|
-
const asyncapiString = `
|
|
390
|
-
asyncapi: '2.0.0'
|
|
391
|
-
info:
|
|
392
|
-
title: Example
|
|
393
|
-
version: 1.0.0
|
|
394
|
-
...
|
|
395
|
-
`;
|
|
396
|
-
generator
|
|
397
|
-
.generateFromString(asyncapiString)
|
|
398
|
-
.then(() => {
|
|
399
|
-
console.log('Done!');
|
|
400
|
-
})
|
|
401
|
-
.catch(console.error);
|
|
402
|
-
```
|
|
403
|
-
**Example** *(Using async/await)*
|
|
404
|
-
```js
|
|
405
|
-
const asyncapiString = `
|
|
406
|
-
asyncapi: '2.0.0'
|
|
407
|
-
info:
|
|
408
|
-
title: Example
|
|
409
|
-
version: 1.0.0
|
|
410
|
-
...
|
|
411
|
-
`;
|
|
412
|
-
|
|
413
|
-
try {
|
|
414
|
-
await generator.generateFromString(asyncapiString);
|
|
415
|
-
console.log('Done!');
|
|
416
|
-
} catch (e) {
|
|
417
|
-
console.error(e);
|
|
418
|
-
}
|
|
419
|
-
```
|
|
420
|
-
|
|
421
372
|
<a name="Generator+generateFromURL"></a>
|
|
422
373
|
|
|
423
374
|
### generator.generateFromURL
|
|
@@ -9,7 +9,7 @@ Baked-in templates are official AsyncAPI templates that are **developed, version
|
|
|
9
9
|
|
|
10
10
|
AsyncAPI Generator supports a variety of baked-in template types for generating code, documentation, configs, and SDKs. All templates are managed under the `packages/templates` directory and follow a strict, opinionated directory structure for consistency and ease of maintenance.
|
|
11
11
|
|
|
12
|
-
>
|
|
12
|
+
> Check out the [list of baked-in templates](https://github.com/asyncapi/generator/blob/master/apps/generator/lib/templates/BakedInTemplatesList.json)
|
|
13
13
|
|
|
14
14
|
## Supported template types
|
|
15
15
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{{#globals kind=kind ~}}
|
|
2
|
+
{{#if @first~}}{{>heading-indent}}{{../title}}
|
|
3
|
+
|
|
4
|
+
<dl>
|
|
5
|
+
{{/if~}}
|
|
6
|
+
<dt>{{>sig-link-html}}</dt>
|
|
7
|
+
{{#if description~}}
|
|
8
|
+
<dd><p>{{{inlineLinks description}}}</p></dd>
|
|
9
|
+
{{/if}}
|
|
10
|
+
{{#if @last~}}</dl>
|
|
11
|
+
|
|
12
|
+
{{/if~}}
|
|
13
|
+
{{/globals~}}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{{#unless deprecated~}}
|
|
2
|
+
{{string-repeat " " (add level baseLevel)}}* {{#unless (equal _title undefined)}}_{{_title}}_{{else}}{{>sig-link}}{{/unless}}
|
|
3
|
+
{{#groupBy (option "group-by")~}}
|
|
4
|
+
{{>member-index-grouped baseLevel=(add ../level ../baseLevel 1)~}}
|
|
5
|
+
{{/groupBy~}}
|
|
6
|
+
{{/unless~}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{{#children inherited=undefined ~}}{{#unless deprecated~}}{{>docs~}}{{/unless~}}{{/children~}}
|
package/jest.config.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
|
+
const baseConfig = require('../../jest.config.base');
|
|
3
|
+
|
|
2
4
|
module.exports = {
|
|
5
|
+
...baseConfig(__dirname, {
|
|
6
|
+
moduleNameMapper: {
|
|
7
|
+
'^@asyncapi/nunjucks-filters$': path.resolve(__dirname, '../nunjucks-filters'),
|
|
8
|
+
},
|
|
9
|
+
}),
|
|
3
10
|
clearMocks: true,
|
|
4
|
-
moduleNameMapper: {
|
|
5
|
-
'^nimma/legacy$': '<rootDir>../../node_modules/nimma/dist/legacy/cjs/index.js',
|
|
6
|
-
'^nimma/(.*)': '<rootDir>../../node_modules/nimma/dist/cjs/$1',
|
|
7
|
-
'^@asyncapi/nunjucks-filters$': path.resolve(__dirname, '../nunjucks-filters'),
|
|
8
|
-
},
|
|
9
11
|
};
|
package/lib/generator.js
CHANGED
|
@@ -13,7 +13,8 @@ const { isAsyncAPIDocument } = require('@asyncapi/parser/cjs/document');
|
|
|
13
13
|
|
|
14
14
|
const { configureReact, renderReact, saveRenderedReactContent } = require('./renderer/react');
|
|
15
15
|
const { configureNunjucks, renderNunjucks } = require('./renderer/nunjucks');
|
|
16
|
-
const { validateTemplateConfig } = require('./
|
|
16
|
+
const { validateTemplateConfig } = require('./templates/config/validator');
|
|
17
|
+
const { loadTemplateConfig } = require('./templates/config/loader');
|
|
17
18
|
const { isGenerationConditionMet } = require('./conditionalGeneration');
|
|
18
19
|
const { listBakedInTemplates, isCoreTemplate, getTemplate } = require('./templates/bakedInTemplates');
|
|
19
20
|
const {
|
|
@@ -37,7 +38,6 @@ const { definitions, flatten, shorthands } = require('@npmcli/config/lib/definit
|
|
|
37
38
|
|
|
38
39
|
const FILTERS_DIRNAME = 'filters';
|
|
39
40
|
const HOOKS_DIRNAME = 'hooks';
|
|
40
|
-
const CONFIG_FILENAME = 'package.json';
|
|
41
41
|
const PACKAGE_JSON_FILENAME = 'package.json';
|
|
42
42
|
const GIT_IGNORE_FILENAME = '{.gitignore}';
|
|
43
43
|
const NPM_IGNORE_FILENAME = '{.npmignore}';
|
|
@@ -301,8 +301,8 @@ class Generator {
|
|
|
301
301
|
this.templateDir = templatePkgPath;
|
|
302
302
|
this.templateName = templatePkgName;
|
|
303
303
|
this.templateContentDir = path.resolve(this.templateDir, TEMPLATE_CONTENT_DIRNAME);
|
|
304
|
-
|
|
305
|
-
await this.
|
|
304
|
+
|
|
305
|
+
this.templateConfig = await loadTemplateConfig(this.templateDir, this.templateParams);
|
|
306
306
|
|
|
307
307
|
return { templatePkgName, templatePkgPath };
|
|
308
308
|
}
|
|
@@ -1017,61 +1017,6 @@ class Generator {
|
|
|
1017
1017
|
return !this.noOverwriteGlobs.some(globExp => minimatch(filePath, globExp));
|
|
1018
1018
|
}
|
|
1019
1019
|
|
|
1020
|
-
/**
|
|
1021
|
-
* Loads the template configuration.
|
|
1022
|
-
* @private
|
|
1023
|
-
*/
|
|
1024
|
-
async loadTemplateConfig() {
|
|
1025
|
-
this.templateConfig = {};
|
|
1026
|
-
|
|
1027
|
-
// Try to load config from .ageneratorrc
|
|
1028
|
-
try {
|
|
1029
|
-
const rcConfigPath = path.resolve(this.templateDir, '.ageneratorrc');
|
|
1030
|
-
const yaml = await readFile(rcConfigPath, { encoding: 'utf8' });
|
|
1031
|
-
const yamlConfig = require('js-yaml').load(yaml);
|
|
1032
|
-
this.templateConfig = yamlConfig || {};
|
|
1033
|
-
|
|
1034
|
-
await this.loadDefaultValues();
|
|
1035
|
-
return;
|
|
1036
|
-
} catch (rcError) {
|
|
1037
|
-
// console.error('Could not load .ageneratorrc file:', rcError);
|
|
1038
|
-
log.debug('Could not load .ageneratorrc file:', rcError);
|
|
1039
|
-
// Continue to try package.json if .ageneratorrc fails
|
|
1040
|
-
}
|
|
1041
|
-
|
|
1042
|
-
// Try to load config from package.json
|
|
1043
|
-
try {
|
|
1044
|
-
const configPath = path.resolve(this.templateDir, CONFIG_FILENAME);
|
|
1045
|
-
const json = await readFile(configPath, { encoding: 'utf8' });
|
|
1046
|
-
const generatorProp = JSON.parse(json).generator;
|
|
1047
|
-
this.templateConfig = generatorProp || {};
|
|
1048
|
-
} catch (packageError) {
|
|
1049
|
-
// console.error('Could not load generator config from package.json:', packageError);
|
|
1050
|
-
log.debug('Could not load generator config from package.json:', packageError);
|
|
1051
|
-
}
|
|
1052
|
-
|
|
1053
|
-
await this.loadDefaultValues();
|
|
1054
|
-
}
|
|
1055
|
-
|
|
1056
|
-
/**
|
|
1057
|
-
* Loads default values of parameters from template config. If value was already set as parameter it will not be
|
|
1058
|
-
* overriden.
|
|
1059
|
-
* @private
|
|
1060
|
-
*/
|
|
1061
|
-
async loadDefaultValues() {
|
|
1062
|
-
const parameters = this.templateConfig.parameters;
|
|
1063
|
-
const defaultValues = Object.keys(parameters || {}).filter(key => parameters[key].default);
|
|
1064
|
-
|
|
1065
|
-
defaultValues.filter(dv => this.templateParams[dv] === undefined).forEach(dv =>
|
|
1066
|
-
Object.defineProperty(this.templateParams, dv, {
|
|
1067
|
-
enumerable: true,
|
|
1068
|
-
get() {
|
|
1069
|
-
return parameters[dv].default;
|
|
1070
|
-
}
|
|
1071
|
-
})
|
|
1072
|
-
);
|
|
1073
|
-
}
|
|
1074
|
-
|
|
1075
1020
|
/**
|
|
1076
1021
|
* Launches all the hooks registered at a given hook point/name.
|
|
1077
1022
|
*
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
renderer: react
|
|
2
|
+
apiVersion: v3
|
|
3
|
+
generator: '>=1.3.0 <3.0.0'
|
|
4
|
+
parameters:
|
|
5
|
+
server:
|
|
6
|
+
description: The name of the server described in AsyncAPI document
|
|
7
|
+
required: false
|
|
8
|
+
appendClientSuffix:
|
|
9
|
+
description: Add 'Client' suffix at the end of the class name. This option has no effect if 'customClientName' is specified.
|
|
10
|
+
required: false
|
|
11
|
+
default: false
|
|
12
|
+
customClientName:
|
|
13
|
+
description: The custom name for the generated client class
|
|
14
|
+
required: false
|
|
15
|
+
env:
|
|
16
|
+
description: The environment for the generated client, e.g., dev, prod
|
|
17
|
+
required: false
|
|
18
|
+
default: dev
|
|
19
|
+
version:
|
|
20
|
+
description: The version for the generated client, e.g., V1, V2
|
|
21
|
+
required: false
|
|
22
|
+
default: V1
|
|
23
|
+
nonRenderableFiles:
|
|
24
|
+
- .dockerignore
|
|
25
|
+
- .gitignore
|
|
26
|
+
- .mvn/**
|
|
27
|
+
- mvnw
|
|
28
|
+
- mvnw.cmd
|
|
29
|
+
metadata:
|
|
30
|
+
type: client
|
|
31
|
+
protocol: kafka
|
|
32
|
+
target: java
|
|
33
|
+
stack: quarkus
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
## Java Quarkus Kafka Client
|
|
2
|
+
|
|
3
|
+
1. Clone the generator project and run `npm install`
|
|
4
|
+
2. Navigate to `packages/templates/clients/kafka/test/integration-test` and run the tests with `npm run test` to generate Kafka clients
|
|
5
|
+
3. Navigate to `packages/templates/clients/kafka/java/quarkus`
|
|
6
|
+
4. Install dependencies with `npm install`
|
|
7
|
+
5. Navigate to the generated clients in the folder with `cd test/temp/snapshotTestResult`
|
|
8
|
+
6. Pick a generated client inside one of the folders and navigate to source code with `cd` ex: `cd /client_adeo`
|
|
9
|
+
7. Navigate to the docker folder with `cd src/main/docker` and find the `docker-compose.yaml` file.
|
|
10
|
+
8. Start the kafka broker by running `docker-compose up -d`.
|
|
11
|
+
9. In another terminal, in directory `test/temp/snapshotTestResult/client_adeo` run the templated client with `mvn quarkus:dev`. You will see the logged events in this one.
|
|
12
|
+
10. In another terminal, in any path, send request the REST endpoint to simulate event production. Request example:
|
|
13
|
+
|
|
14
|
+
Linux/MacOs
|
|
15
|
+
```bash
|
|
16
|
+
curl --header "Content-Type: application/json" --request POST --data '{""value"": ""RANDOM_VALUE""}' http://localhost:8080/
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Windows
|
|
20
|
+
```powershell
|
|
21
|
+
curl.exe --header "Content-Type: application/json" --request POST --data '{""value"": ""RANDOM_VALUE""}' http://localhost:8080/
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Generate client with custom AsyncAPI document
|
|
25
|
+
|
|
26
|
+
1. Navigate to `packages/templates/clients/kafka/java/quarkus`
|
|
27
|
+
2. Install with `npm install`
|
|
28
|
+
3. Navigate back to `./generator`
|
|
29
|
+
4. Generate the template client with `node .\apps\generator\cli.js <path-to-custom-document> .\packages\templates\clients\kafka\java\quarkus\ -o outputClient --force-write --param server=<custom-server>`
|
|
30
|
+
5. Navigate to `outputClient` or any other name you gave the output folder
|
|
31
|
+
6. Navigate to the docker folder with `cd src/main/docker` and find the `docker-compose.yaml` file.
|
|
32
|
+
7. Start the kafka broker by runnning `docker-compose up -d`. Make sure you have docker desktop up and running.
|
|
33
|
+
8. In another terminal, run the templated client with `mvn quarkus:dev`. You will see the logged events in this one.
|
|
34
|
+
9. In another terminal, send request the REST endpoint to simulate event production.
|
|
35
|
+
10. See the output in the terminal
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('source-map-support/register');
|
|
4
|
+
var ConsumeEvent = require('./ConsumeEvent.js');
|
|
5
|
+
var ConsumerFields = require('./ConsumerFields.js');
|
|
6
|
+
var generatorReactSdk = require('@asyncapi/generator-react-sdk');
|
|
7
|
+
var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
|
|
8
|
+
|
|
9
|
+
function ClientConsumer({
|
|
10
|
+
className,
|
|
11
|
+
eventName
|
|
12
|
+
}) {
|
|
13
|
+
const formattedEventName = eventName ? eventName.replace(/^\w/, c => c.toUpperCase()) : eventName;
|
|
14
|
+
return /*#__PURE__*/jsxRuntime.jsxs(generatorReactSdk.Text, {
|
|
15
|
+
newLines: 2,
|
|
16
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
|
|
17
|
+
newLines: 2,
|
|
18
|
+
children: `
|
|
19
|
+
@ApplicationScoped
|
|
20
|
+
public class ${className}{`
|
|
21
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ConsumerFields.ConsumerFields, {
|
|
22
|
+
clientName: className
|
|
23
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ConsumeEvent, {
|
|
24
|
+
eventName: formattedEventName
|
|
25
|
+
})]
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = ClientConsumer;
|
|
30
|
+
//# sourceMappingURL=ClientConsumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientConsumer.js","sources":["../../../../../../../../packages/templates/clients/kafka/java/quarkus/components/ClientConsumer.js"],"sourcesContent":["import ConsumeEvent from './ConsumeEvent';\nimport { ConsumerFields } from './ConsumerFields';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport default function ClientConsumer({ className, eventName }) {\n const formattedEventName = eventName ? eventName.replace(/^\\w/, (c) => c.toUpperCase()) : eventName;\n\n return (\n <Text newLines={2}>\n <Text newLines={2}>\n {`\n@ApplicationScoped \npublic class ${className}{`}\n </Text>\n <ConsumerFields clientName={className}/>\n <ConsumeEvent eventName={formattedEventName}/>\n \n </Text>\n );\n}\n"],"names":["ClientConsumer","className","eventName","formattedEventName","replace","c","toUpperCase","_jsxs","Text","newLines","children","_jsx","ConsumerFields","clientName","ConsumeEvent"],"mappings":";;;;;;;;AAIe,SAASA,cAAcA,CAAC;EAAEC,SAAS;AAAEC,EAAAA,SAAAA;AAAU,CAAC,EAAE;AAC/D,EAAA,MAAMC,kBAAkB,GAAGD,SAAS,GAAGA,SAAS,CAACE,OAAO,CAAC,KAAK,EAAGC,CAAC,IAAKA,CAAC,CAACC,WAAW,EAAE,CAAC,GAAGJ,SAAS,CAAA;EAEnG,oBACEK,eAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;IAAAC,QAAA,EAAA,cAChBC,cAAA,CAACH,sBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAAAC,MAAAA,QAAA,EACf,CAAA;AACT;AACA,aAAA,EAAeT,SAAS,CAAA,CAAA,CAAA;AAAG,KACf,CAAC,eACPU,cAAA,CAACC,6BAAc,EAAA;AAACC,MAAAA,UAAU,EAAEZ,SAAAA;AAAU,KAAC,CAAC,eACxCU,cAAA,CAACG,YAAY,EAAA;AAACZ,MAAAA,SAAS,EAAEC,kBAAAA;AAAmB,KAAC,CAAC,CAAA;AAAA,GAE1C,CAAC,CAAA;AAEX;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('source-map-support/register');
|
|
4
|
+
var generatorReactSdk = require('@asyncapi/generator-react-sdk');
|
|
5
|
+
var EndpointFields = require('./EndpointFields.js');
|
|
6
|
+
var ProduceEvent = require('./ProduceEvent.js');
|
|
7
|
+
var MiddleService = require('./MiddleService.js');
|
|
8
|
+
var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
|
|
9
|
+
require('@asyncapi/generator-helpers');
|
|
10
|
+
|
|
11
|
+
function ClientEndpoint({
|
|
12
|
+
className,
|
|
13
|
+
operations,
|
|
14
|
+
channels,
|
|
15
|
+
correctPath
|
|
16
|
+
}) {
|
|
17
|
+
if (!correctPath) {
|
|
18
|
+
correctPath = '/';
|
|
19
|
+
}
|
|
20
|
+
const sendOperations = operations.filterBySend();
|
|
21
|
+
return /*#__PURE__*/jsxRuntime.jsxs(generatorReactSdk.Text, {
|
|
22
|
+
newLines: 2,
|
|
23
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
|
|
24
|
+
newLines: 2,
|
|
25
|
+
children: `
|
|
26
|
+
@Path("${correctPath}")
|
|
27
|
+
@Consumes(MediaType.APPLICATION_JSON)
|
|
28
|
+
@Produces(MediaType.APPLICATION_JSON)
|
|
29
|
+
public class ${className}{`
|
|
30
|
+
}), /*#__PURE__*/jsxRuntime.jsx(EndpointFields.EndpointFields, {
|
|
31
|
+
sendOperations: sendOperations,
|
|
32
|
+
channels: channels
|
|
33
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ProduceEvent.ProduceEvent, {
|
|
34
|
+
sendOperations: sendOperations
|
|
35
|
+
}), /*#__PURE__*/jsxRuntime.jsx(MiddleService.MiddleService, {
|
|
36
|
+
channels: channels
|
|
37
|
+
}), /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
|
|
38
|
+
newLines: 2,
|
|
39
|
+
children: `
|
|
40
|
+
}`
|
|
41
|
+
})]
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = ClientEndpoint;
|
|
46
|
+
//# sourceMappingURL=ClientEndpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientEndpoint.js","sources":["../../../../../../../../packages/templates/clients/kafka/java/quarkus/components/ClientEndpoint.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\nimport { EndpointFields } from './EndpointFields';\nimport { ProduceEvent } from './ProduceEvent';\nimport { MiddleService } from './MiddleService';\n\nexport default function ClientEndpoint({ className, operations, channels, correctPath }) {\n if (!correctPath) {\n correctPath = '/';\n }\n \n const sendOperations = operations.filterBySend();\n\n return (\n <Text newLines={2}>\n <Text newLines={2}>\n {`\n@Path(\"${correctPath}\") \n@Consumes(MediaType.APPLICATION_JSON)\n@Produces(MediaType.APPLICATION_JSON)\npublic class ${className}{`}\n </Text>\n <EndpointFields sendOperations={sendOperations} channels={channels} />\n <ProduceEvent sendOperations={sendOperations}/>\n <MiddleService channels={channels} />\n <Text newLines={2}>\n {`\n}`}\n </Text>\n \n </Text>\n );\n}\n"],"names":["ClientEndpoint","className","operations","channels","correctPath","sendOperations","filterBySend","_jsxs","Text","newLines","children","_jsx","EndpointFields","ProduceEvent","MiddleService"],"mappings":";;;;;;;;;;AAKe,SAASA,cAAcA,CAAC;EAAEC,SAAS;EAAEC,UAAU;EAAEC,QAAQ;AAAEC,EAAAA,WAAAA;AAAY,CAAC,EAAE;EACvF,IAAI,CAACA,WAAW,EAAE;AAChBA,IAAAA,WAAW,GAAG,GAAG,CAAA;AACnB,GAAA;AAEA,EAAA,MAAMC,cAAc,GAAGH,UAAU,CAACI,YAAY,EAAE,CAAA;EAEhD,oBACEC,eAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;IAAAC,QAAA,EAAA,cAChBC,cAAA,CAACH,sBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAAAC,MAAAA,QAAA,EACf,CAAA;AACT,OAAA,EAASN,WAAW,CAAA;AACpB;AACA;AACA,aAAA,EAAeH,SAAS,CAAA,CAAA,CAAA;AAAG,KACf,CAAC,eACPU,cAAA,CAACC,6BAAc,EAAA;AAACP,MAAAA,cAAc,EAAEA,cAAe;AAACF,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAE,CAAC,eACtEQ,cAAA,CAACE,yBAAY,EAAA;AAACR,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAC,CAAC,eAC/CM,cAAA,CAACG,2BAAa,EAAA;AAACX,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAE,CAAC,eACrCQ,cAAA,CAACH,sBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAAAC,MAAAA,QAAA,EACf,CAAA;AACT,CAAA,CAAA;AAAE,KACU,CAAC,CAAA;AAAA,GAEH,CAAC,CAAA;AAEX;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('source-map-support/register');
|
|
4
|
+
var ProducerFields = require('./ProducerFields.js');
|
|
5
|
+
var generatorReactSdk = require('@asyncapi/generator-react-sdk');
|
|
6
|
+
var SendEvent = require('./SendEvent.js');
|
|
7
|
+
var generatorHelpers = require('@asyncapi/generator-helpers');
|
|
8
|
+
var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
|
|
9
|
+
|
|
10
|
+
function ClientProducer({
|
|
11
|
+
className
|
|
12
|
+
}) {
|
|
13
|
+
const clientName = generatorHelpers.lowerFirst(className);
|
|
14
|
+
return /*#__PURE__*/jsxRuntime.jsxs(generatorReactSdk.Text, {
|
|
15
|
+
newLines: 2,
|
|
16
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
|
|
17
|
+
newLines: 2,
|
|
18
|
+
children: `
|
|
19
|
+
@ApplicationScoped
|
|
20
|
+
public class ${className}{`
|
|
21
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ProducerFields.ProducerFields, {
|
|
22
|
+
clientName: clientName
|
|
23
|
+
}), /*#__PURE__*/jsxRuntime.jsx(SendEvent, {
|
|
24
|
+
eventName: clientName
|
|
25
|
+
})]
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = ClientProducer;
|
|
30
|
+
//# sourceMappingURL=ClientProducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientProducer.js","sources":["../../../../../../../../packages/templates/clients/kafka/java/quarkus/components/ClientProducer.js"],"sourcesContent":["import { ProducerFields } from './ProducerFields';\nimport { Text } from '@asyncapi/generator-react-sdk';\nimport SendEvent from './SendEvent';\nimport { lowerFirst } from '@asyncapi/generator-helpers';\n\nexport default function ClientProducer({ className }) {\n const clientName = lowerFirst(className);\n\n return (\n <Text newLines={2}>\n <Text newLines={2}>\n {`\n@ApplicationScoped \npublic class ${className}{`}\n </Text>\n <ProducerFields clientName={clientName} />\n <SendEvent eventName={clientName}/>\n \n </Text>\n );\n}"],"names":["ClientProducer","className","clientName","lowerFirst","_jsxs","Text","newLines","children","_jsx","ProducerFields","SendEvent","eventName"],"mappings":";;;;;;;;;AAKe,SAASA,cAAcA,CAAC;AAAEC,EAAAA,SAAAA;AAAU,CAAC,EAAE;AACpD,EAAA,MAAMC,UAAU,GAAGC,2BAAU,CAACF,SAAS,CAAC,CAAA;EAExC,oBACEG,eAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;IAAAC,QAAA,EAAA,cAChBC,cAAA,CAACH,sBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAAAC,MAAAA,QAAA,EACf,CAAA;AACT;AACA,aAAA,EAAeN,SAAS,CAAA,CAAA,CAAA;AAAG,KACf,CAAC,eACPO,cAAA,CAACC,6BAAc,EAAA;AAACP,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAE,CAAC,eAC1CM,cAAA,CAACE,SAAS,EAAA;AAACC,MAAAA,SAAS,EAAET,UAAAA;AAAW,KAAC,CAAC,CAAA;AAAA,GAE/B,CAAC,CAAA;AAEX;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('source-map-support/register');
|
|
4
|
+
var generatorReactSdk = require('@asyncapi/generator-react-sdk');
|
|
5
|
+
var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
|
|
6
|
+
|
|
7
|
+
function ConsumeEvent({
|
|
8
|
+
eventName
|
|
9
|
+
}) {
|
|
10
|
+
return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
|
|
11
|
+
indent: 2,
|
|
12
|
+
newLines: 2,
|
|
13
|
+
children: `
|
|
14
|
+
@Incoming("consumer-channel")
|
|
15
|
+
public void consume${eventName}(Record<String, String> record) {
|
|
16
|
+
logger.infof("Got an event, id: %s value: %s", record.key(), record.value());
|
|
17
|
+
|
|
18
|
+
// TODO: Add your business logic here for events
|
|
19
|
+
// - Parse the response payload using your generated models
|
|
20
|
+
}
|
|
21
|
+
}`
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = ConsumeEvent;
|
|
26
|
+
//# sourceMappingURL=ConsumeEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsumeEvent.js","sources":["../../../../../../../../packages/templates/clients/kafka/java/quarkus/components/ConsumeEvent.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport default function ConsumeEvent({ eventName }) {\n return (\n <Text indent={2} newLines={2}>\n {`\n @Incoming(\"consumer-channel\") \n public void consume${eventName}(Record<String, String> record) {\n logger.infof(\"Got an event, id: %s value: %s\", record.key(), record.value());\n \n // TODO: Add your business logic here for events\n // - Parse the response payload using your generated models\n }\n}`}\n </Text>\n \n );\n}"],"names":["ConsumeEvent","eventName","_jsx","Text","indent","newLines","children"],"mappings":";;;;;;AAEe,SAASA,YAAYA,CAAC;AAAEC,EAAAA,SAAAA;AAAU,CAAC,EAAE;EAClD,oBACEC,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAACC,IAAAA,QAAQ,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAC1B,CAAA;AACP;AACA,uBAAA,EAAyBL,SAAS,CAAA;AAClC;AACA;AACA;AACA;AACA;AACA,CAAA,CAAA;AAAE,GACQ,CAAC,CAAA;AAGX;;;;"}
|
|
@@ -6,16 +6,15 @@ require('source-map-support/register');
|
|
|
6
6
|
var generatorReactSdk = require('@asyncapi/generator-react-sdk');
|
|
7
7
|
var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
|
|
8
8
|
|
|
9
|
-
function
|
|
9
|
+
function ConsumerFields({
|
|
10
|
+
clientName
|
|
11
|
+
}) {
|
|
10
12
|
return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
|
|
11
|
-
newLines: 2,
|
|
12
13
|
indent: 2,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (cb) cb(message);
|
|
16
|
-
}`
|
|
14
|
+
newLines: 2,
|
|
15
|
+
children: `private static final Logger logger = Logger.getLogger(${clientName}.class);`
|
|
17
16
|
});
|
|
18
17
|
}
|
|
19
18
|
|
|
20
|
-
exports.
|
|
21
|
-
//# sourceMappingURL=
|
|
19
|
+
exports.ConsumerFields = ConsumerFields;
|
|
20
|
+
//# sourceMappingURL=ConsumerFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsumerFields.js","sources":["../../../../../../../../packages/templates/clients/kafka/java/quarkus/components/ConsumerFields.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ConsumerFields({ clientName }) {\n return (\n <Text indent={2} newLines={2}>\n {`private static final Logger logger = Logger.getLogger(${clientName}.class);`}\n </Text>\n );\n}\n"],"names":["ConsumerFields","clientName","_jsx","Text","indent","newLines","children"],"mappings":";;;;;;;;AAEO,SAASA,cAAcA,CAAC;AAAEC,EAAAA,UAAAA;AAAW,CAAC,EAAE;EAC7C,oBACEC,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAACC,IAAAA,QAAQ,EAAE,CAAE;IAAAC,QAAA,EAC1B,yDAAyDL,UAAU,CAAA,QAAA,CAAA;AAAU,GAC1E,CAAC,CAAA;AAEX;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
require('source-map-support/register');
|
|
6
|
+
var generatorReactSdk = require('@asyncapi/generator-react-sdk');
|
|
7
|
+
var generatorHelpers = require('@asyncapi/generator-helpers');
|
|
8
|
+
var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
|
|
9
|
+
|
|
10
|
+
function EndpointFields({
|
|
11
|
+
sendOperations,
|
|
12
|
+
channels
|
|
13
|
+
}) {
|
|
14
|
+
if (!sendOperations || sendOperations.length === 0) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
18
|
+
children: [sendOperations.map((operation, index) => {
|
|
19
|
+
const topicName = generatorHelpers.toCamelCase(operation.channels()[index].id());
|
|
20
|
+
const producerName = `${generatorHelpers.upperFirst(topicName)}Producer`;
|
|
21
|
+
return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
|
|
22
|
+
newLines: 2,
|
|
23
|
+
children: `
|
|
24
|
+
@Inject
|
|
25
|
+
${producerName} producer;`
|
|
26
|
+
}, producerName);
|
|
27
|
+
}), channels.length > 1 && /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
|
|
28
|
+
newLines: 2,
|
|
29
|
+
children: `
|
|
30
|
+
@Inject
|
|
31
|
+
@Channel("middle-out")
|
|
32
|
+
Emitter<String> middleEmitter;
|
|
33
|
+
|
|
34
|
+
// Modify DTO for BL
|
|
35
|
+
public static class DTO{
|
|
36
|
+
public String id;
|
|
37
|
+
public String value;
|
|
38
|
+
}`
|
|
39
|
+
})]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
exports.EndpointFields = EndpointFields;
|
|
44
|
+
//# sourceMappingURL=EndpointFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EndpointFields.js","sources":["../../../../../../../../packages/templates/clients/kafka/java/quarkus/components/EndpointFields.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\nimport { toCamelCase, upperFirst } from '@asyncapi/generator-helpers';\n\nexport function EndpointFields({ sendOperations, channels }) {\n if (!sendOperations || sendOperations.length === 0) {\n return null;\n }\n\n return (\n <>\n {sendOperations.map((operation, index) => {\n const topicName = toCamelCase(operation.channels()[index].id());\n const producerName = `${upperFirst(topicName) }Producer`;\n\n return (\n <Text key={producerName} newLines={2}>\n {`\n @Inject\n ${producerName} producer;`}\n </Text>\n );\n })}\n \n {channels.length > 1 && (\n <Text newLines={2}>\n {`\n @Inject\n @Channel(\"middle-out\")\n Emitter<String> middleEmitter;\n\n // Modify DTO for BL\n public static class DTO{\n public String id;\n public String value;\n }`}\n </Text>\n )}\n </>\n );\n}\n"],"names":["EndpointFields","sendOperations","channels","length","_jsxs","_Fragment","children","map","operation","index","topicName","toCamelCase","id","producerName","upperFirst","_jsx","Text","newLines"],"mappings":";;;;;;;;;AAGO,SAASA,cAAcA,CAAC;EAAEC,cAAc;AAAEC,EAAAA,QAAAA;AAAS,CAAC,EAAE;EAC3D,IAAI,CAACD,cAAc,IAAIA,cAAc,CAACE,MAAM,KAAK,CAAC,EAAE;AAClD,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,oBACEC,eAAA,CAAAC,mBAAA,EAAA;IAAAC,QAAA,EAAA,CACGL,cAAc,CAACM,GAAG,CAAC,CAACC,SAAS,EAAEC,KAAK,KAAK;AACxC,MAAA,MAAMC,SAAS,GAAGC,4BAAW,CAACH,SAAS,CAACN,QAAQ,EAAE,CAACO,KAAK,CAAC,CAACG,EAAE,EAAE,CAAC,CAAA;AAC/D,MAAA,MAAMC,YAAY,GAAG,CAAA,EAAGC,2BAAU,CAACJ,SAAS,CAAC,CAAY,QAAA,CAAA,CAAA;MAEzD,oBACEK,cAAA,CAACC,sBAAI,EAAA;AAAoBC,QAAAA,QAAQ,EAAE,CAAE;AAAAX,QAAAA,QAAA,EAClC,CAAA;AACb;AACA,IAAA,EAAMO,YAAY,CAAA,UAAA,CAAA;AAAY,OAAA,EAHTA,YAIL,CAAC,CAAA;KAEV,CAAC,EAEDX,QAAQ,CAACC,MAAM,GAAG,CAAC,iBAClBY,cAAA,CAACC,sBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAAAX,MAAAA,QAAA,EACf,CAAA;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAA,CAAA;AAAM,KACQ,CACP,CAAA;AAAA,GACD,CAAC,CAAA;AAEP;;;;"}
|