generator-jhipster 8.0.0 → 8.1.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/README.md +61 -57
- package/dist/cli/environment-builder.mjs +11 -4
- package/dist/cli/program.mjs +1 -1
- package/dist/generators/angular/cleanup.mjs +7 -0
- package/dist/generators/angular/files-angular.mjs +3 -4
- package/dist/generators/angular/generator.mjs +2 -15
- package/dist/generators/angular/needle-api/needle-client-angular.mjs +2 -8
- package/dist/generators/angular/resources/package.json +23 -23
- package/dist/generators/angular/support/translate-angular.mjs +2 -2
- package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
- package/dist/generators/angular/templates/angular.json.ejs +3 -7
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +6 -4
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +39 -33
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +44 -36
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +24 -23
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +74 -62
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +12 -4
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +54 -48
- package/dist/generators/angular/templates/src/main/webapp/app/admin/admin.routes.ts.ejs +74 -0
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +15 -5
- package/dist/generators/angular/templates/src/main/webapp/app/admin/docs/docs.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +20 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +10 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +9 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +12 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +13 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +13 -9
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +13 -5
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +21 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +16 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +11 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +20 -11
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +48 -34
- package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +73 -0
- package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +67 -0
- package/dist/generators/angular/templates/src/main/webapp/app/app.routes.ts.ejs +85 -0
- package/dist/generators/angular/templates/src/main/webapp/app/core/microfrontend/index.ts.ejs +5 -4
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/event-manager.service.spec.ts.ejs +12 -12
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.model.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +26 -14
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +38 -25
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +5 -12
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +55 -21
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +10 -10
- package/dist/generators/angular/templates/src/main/webapp/app/entities/entity.routes.ts.ejs +25 -0
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +21 -17
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +5 -2
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +5 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +97 -78
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +6 -4
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +11 -7
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/bootstrap.ts.ejs +5 -5
- package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +1 -1
- package/dist/generators/angular/templates/webpack/webpack.microfrontend.js.ejs +2 -2
- package/dist/generators/app/README.md +108 -0
- package/dist/generators/app/USAGE +3 -0
- package/dist/generators/app/command.mjs +3 -3
- package/dist/generators/app/generator.mjs +11 -0
- package/dist/generators/base/command.mjs +0 -11
- package/dist/generators/base-application/generator.mjs +5 -6
- package/dist/generators/base-application/support/entities.mjs +2 -2
- package/dist/generators/base-application/support/index.mjs +1 -0
- package/dist/generators/base-application/support/prepare-entity.mjs +0 -1
- package/dist/generators/base-application/support/prepare-relationship.mjs +4 -0
- package/dist/generators/base-application/support/update-application-entities-transform.mjs +52 -0
- package/dist/generators/base-core/generator.mjs +17 -4
- package/dist/generators/base-entity-changes/generator.mjs +1 -1
- package/dist/generators/bootstrap/command.mjs +6 -0
- package/dist/generators/bootstrap/generator.mjs +27 -9
- package/dist/generators/bootstrap-application/generator.mjs +1 -19
- package/dist/generators/bootstrap-application-base/command.mjs +30 -0
- package/dist/generators/bootstrap-application-base/generator.mjs +27 -5
- package/dist/generators/bootstrap-application-base/index.mjs +1 -0
- package/dist/generators/bootstrap-application-base/support/export-jdl-transform.mjs +61 -0
- package/dist/generators/bootstrap-application-base/support/import-jdl-transform.mjs +64 -0
- package/dist/generators/bootstrap-application-base/support/index.mjs +2 -0
- package/dist/generators/client/command.mjs +2 -0
- package/dist/generators/client/resources/package.json +4 -4
- package/dist/generators/client/support/entity-definition.mjs +3 -3
- package/dist/generators/client/templates/README.md.jhi.client.ejs +2 -2
- package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
- package/dist/generators/common/command.mjs +2 -0
- package/dist/generators/common/resources/package.json +3 -3
- package/dist/generators/common/templates/sonar-project.properties.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +0 -1
- package/dist/generators/docker/generator.mjs +1 -1
- package/dist/generators/docker/templates/docker/cassandra.yml.ejs +2 -2
- package/dist/generators/docker/templates/docker/keycloak.yml.ejs +1 -1
- package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +4 -1
- package/dist/generators/docker-compose/generator.mjs +4 -11
- package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -1
- package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +4 -1
- package/dist/generators/export-jdl/generator.mjs +1 -1
- package/dist/generators/feign-client/cleanup.mjs +12 -0
- package/dist/generators/feign-client/files.mjs +35 -0
- package/dist/generators/feign-client/generator.mjs +65 -0
- package/dist/generators/feign-client/index.mjs +19 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +174 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizedFeignClient.java.ejs +72 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuth2InterceptedFeignConfiguration.java.ejs +35 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuthIdpTokenResponseDTO.java.ejs +161 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/TokenRelayRequestInterceptor.java.ejs +42 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/UserFeignClientInterceptor_jwt.java.ejs +36 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/config/FeignConfiguration.java.ejs +45 -0
- package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +263 -0
- package/dist/generators/generate-blueprint/command.mjs +1 -1
- package/dist/generators/generate-blueprint/resources/package.json +1 -1
- package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -1
- package/dist/generators/generator-constants.mjs +9 -5
- package/dist/generators/generator-list.mjs +1 -0
- package/dist/generators/git/generator.mjs +3 -5
- package/dist/generators/gradle/constants.mjs +1 -1
- package/dist/generators/java/command.mjs +6 -0
- package/dist/generators/java/entity-files.mjs +4 -0
- package/dist/generators/java/generator.mjs +3 -2
- package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +30 -0
- package/dist/generators/jdl/generator.mjs +18 -23
- package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +4 -1
- package/dist/generators/kubernetes/templates/keycloak/keycloak.yml.ejs +1 -1
- package/dist/generators/languages/generator.mjs +24 -15
- package/dist/generators/languages/prompts.mjs +3 -1
- package/dist/generators/languages/support/translate.mjs +1 -1
- package/dist/generators/languages/templates/entity/i18n/entity_pt-br.json.ejs +1 -1
- package/dist/generators/liquibase/README.md +19 -0
- package/dist/generators/project-name/generator.mjs +14 -19
- package/dist/generators/project-name/support/name-resolver.mjs +35 -6
- package/dist/generators/react/resources/package.json +24 -24
- package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +4 -4
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-detail.tsx.ejs +1 -2
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +12 -13
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.tsx.ejs +3 -8
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityModel_.model.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.scss.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
- package/dist/generators/server/cleanup.mjs +5 -0
- package/dist/generators/server/command.mjs +13 -2
- package/dist/generators/server/entity-files.mjs +3 -3
- package/dist/generators/server/files.mjs +2 -38
- package/dist/generators/server/generator.mjs +35 -19
- package/dist/generators/server/jdl/application-definition.mjs +5 -2
- package/dist/generators/server/options/feign-client.mjs +24 -0
- package/dist/generators/server/options/index.mjs +1 -0
- package/dist/generators/server/resources/Dockerfile +16 -16
- package/dist/generators/server/resources/gradle/libs.versions.toml +4 -4
- package/dist/generators/server/resources/pom.xml +11 -11
- package/dist/generators/server/support/config.mjs +1 -0
- package/dist/generators/server/support/prepare-entity.mjs +4 -1
- package/dist/generators/server/templates/build.gradle.ejs +1 -2
- package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -21
- package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +5 -15
- package/dist/generators/server/templates/pom.xml.ejs +1 -4
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/get_all_template.ejs +7 -7
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/search_template.ejs +4 -4
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/repository/_entityClass_Repository.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs +2 -2
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +3 -3
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +20 -2
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +4 -1
- package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs +1 -5
- package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +48 -12
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs +4 -13
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs +5 -11
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/PublicUserResource.java.ejs +3 -3
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/UserResource.java.ejs +6 -6
- package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +8 -7
- package/dist/generators/server/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs +1 -1
- package/dist/generators/server/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +8 -8
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs +2 -2
- package/dist/generators/spring-cache/internal/dependencies.mjs +1 -1
- package/dist/generators/spring-cache/templates/gradle/cache.gradle.ejs +1 -1
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +3 -0
- package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.elastic_search.ejs +1 -1
- package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/repository/search/_entityClass_SearchRepository.java.ejs +1 -1
- package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/repository/search/UserSearchRepository.java.ejs +4 -4
- package/dist/generators/spring-data-neo4j/generator.mjs +43 -1
- package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_neo4j.ejs +1 -1
- package/dist/generators/spring-data-relational/README.md +7 -0
- package/dist/generators/spring-data-relational/generator.mjs +2 -1
- package/dist/generators/spring-data-relational/internal/dependencies.mjs +29 -8
- package/dist/generators/spring-data-relational/support/database-data.mjs +4 -0
- package/dist/generators/spring-data-relational/templates/src/main/java/_package_/repository/EntityManager_reactive.java.ejs +49 -8
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +1 -1
- package/dist/generators/upgrade/generator.mjs +3 -3
- package/dist/generators/vue/resources/package.json +21 -21
- package/dist/generators/vue/templates/package.json.ejs +1 -0
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -2
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.ts.ejs +3 -3
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -15
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +2 -7
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -0
- package/dist/jdl/converters/json-to-jdl-converter.js +1 -1
- package/dist/jdl/converters/json-to-jdl-entity-converter.js +1 -0
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.js +5 -0
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +0 -27
- package/dist/jdl/exporters/jhipster-entity-exporter.js +3 -2
- package/dist/jdl/jhipster/default-application-options.js +1 -1
- package/dist/jdl/jhipster/field-types.js +1 -1
- package/dist/jdl/jhipster/json-entity.js +6 -0
- package/dist/jdl/models/jdl-entity.js +16 -1
- package/dist/jdl/models/jdl-field.js +13 -0
- package/dist/jdl/models/jdl-object.js +3 -3
- package/dist/jdl/models/jdl-relationship.js +23 -5
- package/dist/jdl/parsing/lexer/application-tokens.js +1 -1
- package/dist/testing/helpers.mjs +10 -3
- package/dist/types/cli/environment-builder.d.mts +2 -0
- package/dist/types/generators/angular/needle-api/needle-client-angular.d.mts +0 -1
- package/dist/types/generators/base/api.d.mts +12 -0
- package/dist/types/generators/base/support/needles.d.mts +1 -1
- package/dist/types/generators/base-application/generator.d.mts +2 -2
- package/dist/types/generators/base-application/support/index.d.mts +1 -0
- package/dist/types/generators/base-application/support/update-application-entities-transform.d.mts +4 -0
- package/dist/types/generators/base-application/types/relationship.d.mts +4 -0
- package/dist/types/generators/base-core/generator.d.mts +7 -1
- package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.mts +8 -0
- package/dist/types/generators/bootstrap-application-base/support/import-jdl-transform.d.mts +6 -0
- package/dist/types/generators/bootstrap-application-base/support/index.d.mts +2 -0
- package/dist/types/generators/client/support/entity-definition.d.mts +2 -2
- package/dist/types/generators/feign-client/types-export.d.ts +1 -0
- package/dist/types/generators/generator-constants.d.mts +52 -48
- package/dist/types/generators/generator-list.d.mts +1 -0
- package/dist/types/generators/project-name/support/name-resolver.d.mts +9 -1
- package/dist/types/generators/server/options/feign-client.d.mts +21 -0
- package/dist/types/generators/server/options/index.d.mts +1 -0
- package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +1 -0
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +1 -1
- package/dist/types/jdl/jhipster/json-entity.d.ts +2 -0
- package/dist/types/jdl/models/jdl-entity.d.ts +1 -0
- package/dist/types/jdl/models/jdl-relationship.d.ts +0 -18
- package/dist/types/jdl/types/types.d.mts +2 -2
- package/package.json +27 -27
|
@@ -69,7 +69,7 @@ public class SqlTestContainersSpringContextCustomizerFactory implements ContextC
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
<%_ if (reactive) { _%>
|
|
72
|
-
testValues = testValues.and("spring.r2dbc.url=" + prodTestContainer.getTestContainer().getJdbcUrl().replace("jdbc", "r2dbc")<% if (prodDatabaseTypeMssql) { %>.replace(";encrypt=false", "")<% } %> + "<%- prodDatabaseExtraOptions %>");
|
|
72
|
+
testValues = testValues.and("spring.r2dbc.url=" + prodTestContainer.getTestContainer().getJdbcUrl().replace("jdbc", "r2dbc")<% if (prodDatabaseTypeMariadb) { %>.replace("mariadb", "mysql")<% } else if (prodDatabaseTypeMssql) { %>.replace(";encrypt=false", "")<% } %> + "<%- prodDatabaseExtraOptions %>");
|
|
73
73
|
testValues = testValues.and("spring.r2dbc.username=" + prodTestContainer.getTestContainer().getUsername());
|
|
74
74
|
testValues = testValues.and("spring.r2dbc.password=" + prodTestContainer.getTestContainer().getPassword());
|
|
75
75
|
testValues = testValues.and("spring.liquibase.url=" + prodTestContainer.getTestContainer().getJdbcUrl() + "<%- prodDatabaseExtraOptions %>");
|
|
@@ -152,11 +152,11 @@ export default class UpgradeGenerator extends BaseGenerator {
|
|
|
152
152
|
const noPackageLockParam = '--no-package-lock';
|
|
153
153
|
const generatorCommand = `${commandPrefix} ${npmPackage}@${version} ${devDependencyParam} ${noPackageLockParam} --ignore-scripts --force`;
|
|
154
154
|
this.log.verboseInfo(generatorCommand);
|
|
155
|
-
const
|
|
156
|
-
if (
|
|
155
|
+
const npmInstall = this.spawnCommandSync(generatorCommand, { stdio: 'pipe', reject: false });
|
|
156
|
+
if (npmInstall.exitCode === 0)
|
|
157
157
|
this.log.ok(`Installed ${npmPackage}@${version}`);
|
|
158
158
|
else
|
|
159
|
-
throw new Error(`Something went wrong while installing ${npmPackage}! ${
|
|
159
|
+
throw new Error(`Something went wrong while installing ${npmPackage}! ${npmInstall.stdout} ${npmInstall.stderr}`);
|
|
160
160
|
}
|
|
161
161
|
get [BaseGenerator.CONFIGURING]() {
|
|
162
162
|
return this.asConfiguringTaskGroup({
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@fortawesome/fontawesome-svg-core": "6.
|
|
4
|
-
"@fortawesome/free-solid-svg-icons": "6.
|
|
5
|
-
"@fortawesome/vue-fontawesome": "3.0.
|
|
3
|
+
"@fortawesome/fontawesome-svg-core": "6.5.1",
|
|
4
|
+
"@fortawesome/free-solid-svg-icons": "6.5.1",
|
|
5
|
+
"@fortawesome/vue-fontawesome": "3.0.5",
|
|
6
6
|
"@vuelidate/core": "2.0.3",
|
|
7
7
|
"@vuelidate/validators": "2.0.4",
|
|
8
|
-
"@vueuse/core": "10.
|
|
9
|
-
"axios": "1.6.
|
|
8
|
+
"@vueuse/core": "10.7.0",
|
|
9
|
+
"axios": "1.6.2",
|
|
10
10
|
"bootstrap": "4.6.2",
|
|
11
11
|
"bootstrap-vue": "2.23.1",
|
|
12
12
|
"bootswatch": "5.3.2",
|
|
13
13
|
"deepmerge": "4.3.1",
|
|
14
14
|
"js-cookie": "3.0.5",
|
|
15
15
|
"pinia": "2.1.7",
|
|
16
|
-
"vue": "3.3.
|
|
17
|
-
"vue-i18n": "9.
|
|
16
|
+
"vue": "3.3.11",
|
|
17
|
+
"vue-i18n": "9.8.0",
|
|
18
18
|
"vue-router": "4.2.5"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@module-federation/utilities": "3.0.3-0",
|
|
22
22
|
"@pinia/testing": "0.1.3",
|
|
23
|
-
"@rushstack/eslint-patch": "1.
|
|
23
|
+
"@rushstack/eslint-patch": "1.6.0",
|
|
24
24
|
"@tsconfig/node18": "18.2.2",
|
|
25
|
-
"@types/node": "18.
|
|
26
|
-
"@types/sinon": "
|
|
27
|
-
"@vitejs/plugin-vue": "4.
|
|
25
|
+
"@types/node": "18.19.3",
|
|
26
|
+
"@types/sinon": "17.0.2",
|
|
27
|
+
"@vitejs/plugin-vue": "4.5.2",
|
|
28
28
|
"@vue/eslint-config-prettier": "8.0.0",
|
|
29
29
|
"@vue/eslint-config-typescript": "10.0.0",
|
|
30
|
-
"@vue/test-utils": "2.4.
|
|
30
|
+
"@vue/test-utils": "2.4.3",
|
|
31
31
|
"@vue/tsconfig": "0.4.0",
|
|
32
32
|
"autoprefixer": "10.4.16",
|
|
33
33
|
"axios-mock-adapter": "1.22.0",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"copy-webpack-plugin": "11.0.0",
|
|
36
36
|
"css-loader": "6.8.1",
|
|
37
37
|
"css-minimizer-webpack-plugin": "5.0.1",
|
|
38
|
-
"eslint": "8.
|
|
38
|
+
"eslint": "8.55.0",
|
|
39
39
|
"eslint-plugin-prettier": "5.0.1",
|
|
40
40
|
"eslint-plugin-vue": "8.7.1",
|
|
41
41
|
"flush-promises": "1.0.2",
|
|
42
42
|
"folder-hash": "4.0.4",
|
|
43
43
|
"happy-dom": "12.10.3",
|
|
44
|
-
"html-webpack-plugin": "5.5.
|
|
44
|
+
"html-webpack-plugin": "5.5.4",
|
|
45
45
|
"merge-jsons-webpack-plugin": "2.0.1",
|
|
46
46
|
"mini-css-extract-plugin": "2.7.6",
|
|
47
47
|
"numeral": "2.0.6",
|
|
@@ -54,16 +54,16 @@
|
|
|
54
54
|
"sass-loader": "13.3.2",
|
|
55
55
|
"sinon": "17.0.1",
|
|
56
56
|
"terser-webpack-plugin": "5.3.9",
|
|
57
|
-
"ts-loader": "9.5.
|
|
58
|
-
"typescript": "5.
|
|
59
|
-
"vite": "
|
|
60
|
-
"vitest": "0.
|
|
61
|
-
"vitest-sonar-reporter": "0.
|
|
57
|
+
"ts-loader": "9.5.1",
|
|
58
|
+
"typescript": "5.3.3",
|
|
59
|
+
"vite": "5.0.7",
|
|
60
|
+
"vitest": "1.0.4",
|
|
61
|
+
"vitest-sonar-reporter": "1.0.0",
|
|
62
62
|
"vue-loader": "17.3.1",
|
|
63
63
|
"vue-style-loader": "4.1.3",
|
|
64
|
-
"vue-tsc": "1.8.
|
|
64
|
+
"vue-tsc": "1.8.25",
|
|
65
65
|
"webpack": "5.89.0",
|
|
66
|
-
"webpack-bundle-analyzer": "4.
|
|
66
|
+
"webpack-bundle-analyzer": "4.10.1",
|
|
67
67
|
"webpack-cli": "5.1.4",
|
|
68
68
|
"webpack-dev-server": "4.15.1",
|
|
69
69
|
"webpack-merge": "5.10.0",
|
|
@@ -156,6 +156,7 @@
|
|
|
156
156
|
<%_ } else { %>
|
|
157
157
|
"webapp:build:dev": "<%= clientPackageManager %> run vite-build",
|
|
158
158
|
"webapp:build:prod": "<%= clientPackageManager %> run vite-build",
|
|
159
|
+
"webapp:dev": "<%= clientPackageManager %> run vite-serve",
|
|
159
160
|
"webapp:serve": "<%= clientPackageManager %> run vite-serve",
|
|
160
161
|
<%_ } %>
|
|
161
162
|
"webapp:prod": "<%= clientPackageManager %> run clean-www && <%= clientPackageManager %> run webapp:build:prod --",
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
</dd>
|
|
36
36
|
<%_ } _%>
|
|
37
37
|
<%_ for (relationship of relationships) {
|
|
38
|
-
const ownerSide = relationship.ownerSide;
|
|
39
38
|
const relationshipName = relationship.relationshipName;
|
|
40
39
|
const relationshipFieldName = relationship.relationshipFieldName;
|
|
41
40
|
const relationshipFieldNamePlural = relationship.relationshipFieldNamePlural;
|
|
@@ -43,7 +42,7 @@
|
|
|
43
42
|
const otherEntityName = relationship.otherEntityName;
|
|
44
43
|
const otherEntityField = relationship.otherEntityField;
|
|
45
44
|
const otherEntityAngularName = relationship.otherEntityAngularName; _%>
|
|
46
|
-
<%_ if (
|
|
45
|
+
<%_ if (relationship.persistableRelationship) { _%>
|
|
47
46
|
<dt>
|
|
48
47
|
<span v-text="t$('<%= i18nKeyPrefix %>.<%= relationshipName %>')"><%= relationshipNameHumanized %></span>
|
|
49
48
|
</dt>
|
|
@@ -34,7 +34,7 @@ import AlertService from '@/shared/alert/alert.service';
|
|
|
34
34
|
<%_
|
|
35
35
|
const allRelationshipsThatNeedSelectOptions = Object
|
|
36
36
|
.values(relationshipsByOtherEntity)
|
|
37
|
-
.map(relationships => relationships.filter(rel => rel.
|
|
37
|
+
.map(relationships => relationships.filter(rel => rel.persistableRelationship))
|
|
38
38
|
.filter(relationships => relationships.length > 0);
|
|
39
39
|
_%>
|
|
40
40
|
<%_ for (const [relationship] of Object.values(allRelationshipsThatNeedSelectOptions)) { _%>
|
|
@@ -14,9 +14,9 @@ import { useAlertService } from '@/shared/alert/alert.service';
|
|
|
14
14
|
<%_
|
|
15
15
|
const allRelationshipsThatNeedSelectOptions = Object
|
|
16
16
|
.values(relationshipsByOtherEntity)
|
|
17
|
-
.map(relationships => relationships.filter(rel => rel.
|
|
17
|
+
.map(relationships => relationships.filter(rel => rel.persistableRelationship))
|
|
18
18
|
.filter(relationships => relationships.length > 0);
|
|
19
|
-
const relationshipsContainManyToOne = relationships.some(rel => !rel.otherEntityIsEmbedded && rel.collection && rel.
|
|
19
|
+
const relationshipsContainManyToOne = relationships.some(rel => !rel.otherEntityIsEmbedded && rel.collection && rel.persistableRelationship);
|
|
20
20
|
_%>
|
|
21
21
|
|
|
22
22
|
<%_ for (const [relationship] of Object.values(allRelationshipsThatNeedSelectOptions)) { _%>
|
|
@@ -176,7 +176,7 @@ _%>
|
|
|
176
176
|
<%_ if (relationshipsContainManyToOne) { _%>
|
|
177
177
|
<%_
|
|
178
178
|
for (relationship of relationships) {
|
|
179
|
-
if (relationship.
|
|
179
|
+
if (relationship.collection && relationship.persistableRelationship) {
|
|
180
180
|
const relationshipFieldNamePlural = relationship.relationshipFieldNamePlural;
|
|
181
181
|
_%>
|
|
182
182
|
this.<%= entityInstance %>.<%= relationshipFieldNamePlural %> = [];
|
|
@@ -121,7 +121,6 @@ _%>
|
|
|
121
121
|
</div>
|
|
122
122
|
<%_ } _%>
|
|
123
123
|
<%_ for (relationship of relationships) {
|
|
124
|
-
const ownerSide = relationship.ownerSide;
|
|
125
124
|
const otherEntityName = relationship.otherEntityName;
|
|
126
125
|
const otherEntityNamePlural = relationship.otherEntityNamePlural;
|
|
127
126
|
const relationshipName = relationship.relationshipName;
|
|
@@ -131,7 +130,7 @@ _%>
|
|
|
131
130
|
const otherEntityField = relationship.otherEntityField;
|
|
132
131
|
const relationshipRequired = relationship.relationshipRequired;
|
|
133
132
|
const translationKey = `${i18nKeyPrefix}.${relationshipName}`; _%>
|
|
134
|
-
<%_ if (relationship.
|
|
133
|
+
<%_ if (!relationship.collection && relationship.persistableRelationship) { _%>
|
|
135
134
|
<div class="form-group">
|
|
136
135
|
<label class="form-control-label" v-text="t$('<%= translationKey %>')" for="<%= entityFileName %>-<%= relationshipName %>"><%= relationshipNameHumanized %></label>
|
|
137
136
|
<select class="form-control" id="<%= entityFileName %>-<%= relationshipName %>" data-cy="<%= relationshipFieldName %>" name="<%= relationshipName %>" v-model="<%= entityInstance %>.<%=relationshipFieldName %>"<% if (relationshipRequired) { %> required<% } %>>
|
|
@@ -143,19 +142,7 @@ _%>
|
|
|
143
142
|
<option v-bind:value="<%= entityInstance %>.<%=relationshipFieldName %> && <%=otherEntityName %>Option.id === <%= entityInstance %>.<%=relationshipFieldName %>.id ? <%= entityInstance %>.<%=relationshipFieldName %> : <%=otherEntityName %>Option" v-for="<%=otherEntityName %>Option in <%=otherEntityNamePlural %>" :key="<%=otherEntityName %>Option.id">{{<%=otherEntityName %>Option.<%=otherEntityField %>}}</option>
|
|
144
143
|
</select>
|
|
145
144
|
</div>
|
|
146
|
-
<%_ } else if (relationship.
|
|
147
|
-
<div class="form-group">
|
|
148
|
-
<label class="form-control-label" v-text="t$('<%= translationKey %>')" for="<%= entityFileName %>-<%= relationshipName %>"><%= relationshipNameHumanized %></label>
|
|
149
|
-
<select class="form-control" id="<%= entityFileName %>-<%= relationshipName %>" data-cy="<%= relationshipFieldName %>" name="<%= relationshipName %>" v-model="<%= entityInstance %>.<%=relationshipFieldName %>"<% if (relationshipRequired) { %> required<% } %>>
|
|
150
|
-
<%_ if (!relationshipRequired) { _%>
|
|
151
|
-
<option v-bind:value="null"></option>
|
|
152
|
-
<%_ } else { _%>
|
|
153
|
-
<option v-if="!<%= entityInstance %>.<%= relationshipName %>" v-bind:value="null" selected></option>
|
|
154
|
-
<%_ } _%>
|
|
155
|
-
<option v-bind:value="<%= entityInstance %>.<%=relationshipFieldName %> && <%=otherEntityName %>Option.id === <%= entityInstance %>.<%=relationshipFieldName %>.id ? <%= entityInstance %>.<%=relationshipFieldName %> : <%=otherEntityName %>Option" v-for="<%=otherEntityName %>Option in <%=otherEntityNamePlural %>" :key="<%=otherEntityName %>Option.id">{{<%=otherEntityName %>Option.<%=otherEntityField %>}}</option>
|
|
156
|
-
</select>
|
|
157
|
-
</div>
|
|
158
|
-
<%_ } else if (relationship.relationshipManyToMany && ownerSide) { _%>
|
|
145
|
+
<%_ } else if (relationship.persistableRelationship) { _%>
|
|
159
146
|
<div class="form-group">
|
|
160
147
|
<label v-text="t$('<%= translationKey %>')" for="<%= entityFileName %>-<%= relationshipName %>"><%= relationshipNameHumanized %></label>
|
|
161
148
|
<select class="form-control" id="<%= entityFileName %>-<%= relationshipFieldNamePlural %>" data-cy="<%= relationshipFieldName %>" multiple name="<%= relationshipName %>" v-if="<%=entityInstance %>.<%=relationshipFieldNamePlural %> !== undefined" v-model="<%=entityInstance %>.<%=relationshipFieldNamePlural %>"<% if (relationshipRequired) { %> required<% } %>>
|
|
@@ -51,9 +51,7 @@
|
|
|
51
51
|
<th scope="row"<% if (!paginationNo) { %> v-on:click="changeOrder('<%= field.fieldName%>')"<% } %>><span v-text="t$('<%=`${i18nKeyPrefix}.${field.fieldName}` %>')"><%= field.fieldNameHumanized %></span><% if (!paginationNo) { %> <jhi-sort-indicator :current-order="propOrder" :reverse="reverse" :field-name="'<%= field.fieldName%>'"></jhi-sort-indicator><% } %></th>
|
|
52
52
|
<%_ } _%>
|
|
53
53
|
<%_ for (relationship of relationships) { _%>
|
|
54
|
-
<%_ if (relationship.
|
|
55
|
-
|| (relationship.relationshipOneToOne && relationship.ownerSide)
|
|
56
|
-
|| (relationship.relationshipManyToMany && relationship.ownerSide && paginationNo)) {
|
|
54
|
+
<%_ if (relationship.persistableRelationship && (paginationNo || !relationship.collection)) {
|
|
57
55
|
const fieldName = "." + relationship.otherEntityField; _%>
|
|
58
56
|
<th scope="row"<% if (!paginationNo) { %> v-on:click="changeOrder('<%=relationship.relationshipName + (fieldName)%>')"<% } %>><span v-text="t$('<%= `${i18nKeyPrefix}.${relationship.relationshipName}` %>')"><%= relationship.relationshipNameHumanized %></span><% if (!paginationNo) { %> <jhi-sort-indicator :current-order="propOrder" :reverse="reverse" :field-name="'<%=relationship.relationshipName + (fieldName)%>'"></jhi-sort-indicator><% } %></th>
|
|
59
57
|
<%_ } _%>
|
|
@@ -93,15 +91,12 @@
|
|
|
93
91
|
<%_ } _%>
|
|
94
92
|
<%_ } _%>
|
|
95
93
|
<%_ for (relationship of relationships) {
|
|
96
|
-
const ownerSide = relationship.ownerSide;
|
|
97
94
|
const relationshipFieldName = relationship.relationshipFieldName;
|
|
98
95
|
const relationshipFieldNamePlural = relationship.relationshipFieldNamePlural;
|
|
99
96
|
const otherEntityName = relationship.otherEntityName;
|
|
100
97
|
const otherEntityField = relationship.otherEntityField;
|
|
101
98
|
const otherEntityAngularName = relationship.otherEntityAngularName; _%>
|
|
102
|
-
<%_ if (relationship.
|
|
103
|
-
|| (relationship.relationshipOneToOne && ownerSide)
|
|
104
|
-
|| (relationship.relationshipManyToMany && ownerSide && paginationNo)) { _%>
|
|
99
|
+
<%_ if (relationship.persistableRelationship && (paginationNo || !relationship.collection)) { _%>
|
|
105
100
|
<td>
|
|
106
101
|
<%_ if (relationship.otherEntityUser) { _%>
|
|
107
102
|
<%_ if (relationship.relationshipManyToMany) { _%>
|
|
@@ -80,7 +80,7 @@ function getJDLObjectFromMultipleApplications(directory) {
|
|
|
80
80
|
});
|
|
81
81
|
return jdlObject;
|
|
82
82
|
}
|
|
83
|
-
function getJDLObjectFromSingleApplication(yoRcFileContent, entities, existingJDLObject = new JDLObject()) {
|
|
83
|
+
export function getJDLObjectFromSingleApplication(yoRcFileContent, entities, existingJDLObject = new JDLObject()) {
|
|
84
84
|
const cleanedYoRcFileContent = cleanYoRcFileContent(yoRcFileContent);
|
|
85
85
|
const jdlApplication = convertApplicationToJDL({ application: cleanedYoRcFileContent });
|
|
86
86
|
if (!entities) {
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
import { lowerFirst } from 'lodash-es';
|
|
19
20
|
import { JDLEntity } from '../../models/index.mjs';
|
|
20
21
|
import { formatComment } from '../../utils/format-utils.js';
|
|
21
22
|
export default { convertEntities };
|
|
@@ -34,6 +35,10 @@ export function convertEntities(parsedEntities, jdlFieldGetterFunction) {
|
|
|
34
35
|
name: parsedEntity.name,
|
|
35
36
|
tableName: parsedEntity.tableName || parsedEntity.name,
|
|
36
37
|
comment: formatComment(parsedEntity.documentation),
|
|
38
|
+
annotations: Object.fromEntries(parsedEntity.annotations?.map(annotation => [
|
|
39
|
+
lowerFirst(annotation.optionName),
|
|
40
|
+
annotation.type === 'UNARY' ? true : annotation.optionValue,
|
|
41
|
+
]) ?? []),
|
|
37
42
|
});
|
|
38
43
|
const jdlFields = jdlFieldGetterFunction.call(undefined, parsedEntity);
|
|
39
44
|
jdlEntity.addFields(jdlFields);
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import * as _ from 'lodash-es';
|
|
20
20
|
import JDLObject from '../../models/jdl-object.js';
|
|
21
|
-
import JDLUnaryOption from '../../models/jdl-unary-option.js';
|
|
22
21
|
import JDLBinaryOption from '../../models/jdl-binary-option.js';
|
|
23
22
|
import { applicationTypes, binaryOptions } from '../../jhipster/index.mjs';
|
|
24
23
|
import { convertApplications } from './application-converter.js';
|
|
@@ -97,7 +96,6 @@ function fillClassesAndFields() {
|
|
|
97
96
|
jdlEntities.forEach(jdlEntity => {
|
|
98
97
|
jdlObject.addEntity(jdlEntity);
|
|
99
98
|
});
|
|
100
|
-
addOptionsFromEntityAnnotations();
|
|
101
99
|
}
|
|
102
100
|
function getJDLFieldsFromParsedEntity(entity) {
|
|
103
101
|
const fields = [];
|
|
@@ -110,31 +108,6 @@ function getJDLFieldsFromParsedEntity(entity) {
|
|
|
110
108
|
}
|
|
111
109
|
return fields;
|
|
112
110
|
}
|
|
113
|
-
function addOptionsFromEntityAnnotations() {
|
|
114
|
-
parsedContent.entities.forEach(entity => {
|
|
115
|
-
const entityName = entity.name;
|
|
116
|
-
const annotations = entity.annotations;
|
|
117
|
-
annotations.forEach(annotation => {
|
|
118
|
-
let annotationName = _.lowerFirst(annotation.optionName);
|
|
119
|
-
if (annotation.type === 'UNARY') {
|
|
120
|
-
jdlObject.addOption(new JDLUnaryOption({
|
|
121
|
-
name: annotationName,
|
|
122
|
-
entityNames: [entityName],
|
|
123
|
-
}));
|
|
124
|
-
}
|
|
125
|
-
else if (annotation.type === 'BINARY') {
|
|
126
|
-
if (annotationName === 'paginate') {
|
|
127
|
-
annotationName = binaryOptions.Options.PAGINATION;
|
|
128
|
-
}
|
|
129
|
-
jdlObject.addOption(new JDLBinaryOption({
|
|
130
|
-
name: annotationName,
|
|
131
|
-
value: annotation.optionValue,
|
|
132
|
-
entityNames: [entityName],
|
|
133
|
-
}));
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
111
|
function getValidations(field) {
|
|
139
112
|
return convertValidations(field.validations, getConstantValueFromConstantName).reduce((jdlValidations, jdlValidation) => {
|
|
140
113
|
jdlValidations[jdlValidation.name] = jdlValidation;
|
|
@@ -63,8 +63,9 @@ function updateEntities(subFolder) {
|
|
|
63
63
|
function updateEntityToGenerateWithExistingOne(filePath, entity) {
|
|
64
64
|
if (doesFileExist(filePath)) {
|
|
65
65
|
const fileOnDisk = readJSONFile(filePath);
|
|
66
|
-
if (
|
|
67
|
-
entity.
|
|
66
|
+
if (!entity.annotations?.changelogDate && fileOnDisk?.annotations?.changelogDate) {
|
|
67
|
+
entity.annotations = entity.annotations || {};
|
|
68
|
+
entity.annotations.changelogDate = fileOnDisk.annotations.changelogDate;
|
|
68
69
|
return { ...fileOnDisk, ...entity };
|
|
69
70
|
}
|
|
70
71
|
}
|
|
@@ -121,7 +121,7 @@ export function getConfigForTranslation(options = {}) {
|
|
|
121
121
|
options[NATIVE_LANGUAGE] = 'en';
|
|
122
122
|
}
|
|
123
123
|
if (options[ENABLE_TRANSLATION] && options[LANGUAGES] === undefined) {
|
|
124
|
-
options[LANGUAGES] = [
|
|
124
|
+
options[LANGUAGES] = [];
|
|
125
125
|
}
|
|
126
126
|
return options;
|
|
127
127
|
}
|
|
@@ -40,7 +40,7 @@ export const CommonDBTypes = {
|
|
|
40
40
|
TEXT_BLOB: 'TextBlob',
|
|
41
41
|
INSTANT: 'Instant',
|
|
42
42
|
DURATION: 'Duration',
|
|
43
|
-
BYTES: 'byte[]',
|
|
43
|
+
BYTES: 'byte[]', // Supported by mongodb at CI samples
|
|
44
44
|
BYTE_BUFFER: 'ByteBuffer', // Supported by cassandra at CI samples
|
|
45
45
|
};
|
|
46
46
|
export const RelationalOnlyDBTypes = {
|
|
@@ -22,6 +22,7 @@ import { upperFirst } from '../utils/string-utils.js';
|
|
|
22
22
|
* The JSONEntity class represents a read-to-be exported to JSON entity.
|
|
23
23
|
*/
|
|
24
24
|
class JSONEntity {
|
|
25
|
+
annotations;
|
|
25
26
|
/**
|
|
26
27
|
* Creates a new JSONEntity instance.
|
|
27
28
|
* @param args the entity configuration, keys:
|
|
@@ -46,6 +47,7 @@ class JSONEntity {
|
|
|
46
47
|
const merged = merge(getDefaults(args.entityName), args);
|
|
47
48
|
this.name = merged.name;
|
|
48
49
|
this.fields = merged.fields;
|
|
50
|
+
this.annotations = merged.annotations;
|
|
49
51
|
this.relationships = merged.relationships;
|
|
50
52
|
this.documentation = merged.documentation;
|
|
51
53
|
this.entityTableName = merged.entityTableName;
|
|
@@ -100,6 +102,9 @@ class JSONEntity {
|
|
|
100
102
|
this[optionName] = options[optionName];
|
|
101
103
|
});
|
|
102
104
|
}
|
|
105
|
+
setAnnotations(annotations = {}) {
|
|
106
|
+
Object.assign(this.annotations, annotations);
|
|
107
|
+
}
|
|
103
108
|
}
|
|
104
109
|
export default JSONEntity;
|
|
105
110
|
function getDefaults(entityName) {
|
|
@@ -108,5 +113,6 @@ function getDefaults(entityName) {
|
|
|
108
113
|
fields: [],
|
|
109
114
|
relationships: [],
|
|
110
115
|
applications: [],
|
|
116
|
+
annotations: {},
|
|
111
117
|
};
|
|
112
118
|
}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
import { upperFirst } from 'lodash-es';
|
|
19
20
|
import { merge } from '../utils/object-utils.js';
|
|
20
21
|
import getTableNameFromEntityName from '../jhipster/entity-table-name-creator.js';
|
|
21
22
|
export default class JDLEntity {
|
|
@@ -23,6 +24,7 @@ export default class JDLEntity {
|
|
|
23
24
|
tableName;
|
|
24
25
|
fields;
|
|
25
26
|
comment;
|
|
27
|
+
annotations;
|
|
26
28
|
constructor(args) {
|
|
27
29
|
const merged = merge(defaults(), args);
|
|
28
30
|
if (!merged.name) {
|
|
@@ -32,6 +34,7 @@ export default class JDLEntity {
|
|
|
32
34
|
this.tableName = merged.tableName || merged.name;
|
|
33
35
|
this.fields = merged.fields;
|
|
34
36
|
this.comment = merged.comment;
|
|
37
|
+
this.annotations = merged.annotations ?? {};
|
|
35
38
|
}
|
|
36
39
|
/**
|
|
37
40
|
* Adds the fields to the entity.
|
|
@@ -60,6 +63,18 @@ export default class JDLEntity {
|
|
|
60
63
|
.map(line => ` * ${line}\n`)
|
|
61
64
|
.join('')} */\n`;
|
|
62
65
|
}
|
|
66
|
+
Object.entries(this.annotations).forEach(([key, value]) => {
|
|
67
|
+
key = upperFirst(key);
|
|
68
|
+
if (value === true) {
|
|
69
|
+
stringifiedEntity += `@${key}\n`;
|
|
70
|
+
}
|
|
71
|
+
else if (typeof value === 'string') {
|
|
72
|
+
stringifiedEntity += `@${key}("${value}")\n`;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
stringifiedEntity += `@${key}(${value})\n`;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
63
78
|
stringifiedEntity += `entity ${this.name}`;
|
|
64
79
|
if (this.tableName && getTableNameFromEntityName(this.name) !== getTableNameFromEntityName(this.tableName)) {
|
|
65
80
|
stringifiedEntity += ` (${this.tableName})`;
|
|
@@ -73,7 +88,7 @@ export default class JDLEntity {
|
|
|
73
88
|
function defaults() {
|
|
74
89
|
return {
|
|
75
90
|
fields: {},
|
|
76
|
-
|
|
91
|
+
annotations: {},
|
|
77
92
|
};
|
|
78
93
|
}
|
|
79
94
|
function formatFieldObjects(jdlFieldObjects) {
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
import { upperFirst } from 'lodash-es';
|
|
19
20
|
import { merge } from '../utils/object-utils.js';
|
|
20
21
|
export default class JDLField {
|
|
21
22
|
name;
|
|
@@ -66,6 +67,18 @@ export default class JDLField {
|
|
|
66
67
|
.map(line => ` * ${line}\n`)
|
|
67
68
|
.join('')} */\n`;
|
|
68
69
|
}
|
|
70
|
+
Object.entries(this.options ?? {}).forEach(([key, value]) => {
|
|
71
|
+
key = upperFirst(key);
|
|
72
|
+
if (value === true) {
|
|
73
|
+
string += `@${key}\n`;
|
|
74
|
+
}
|
|
75
|
+
else if (typeof value === 'string') {
|
|
76
|
+
string += `@${key}("${value}")\n`;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
string += `@${key}(${value})\n`;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
69
82
|
string += `${this.name} ${this.type}`;
|
|
70
83
|
Object.keys(this.validations).forEach(validationName => {
|
|
71
84
|
string += ` ${this.validations[validationName].toString()}`;
|
|
@@ -229,10 +229,10 @@ export default class JDLObject {
|
|
|
229
229
|
string += `${this.enums.toString()}\n`;
|
|
230
230
|
}
|
|
231
231
|
if (this.getRelationshipQuantity() !== 0) {
|
|
232
|
-
string += `${relationshipsToString(this.relationships)}
|
|
232
|
+
string += `${relationshipsToString(this.relationships)}`;
|
|
233
233
|
}
|
|
234
234
|
if (this.getOptionQuantity() !== 0) {
|
|
235
|
-
string +=
|
|
235
|
+
string += `\n${optionsToString(this.options)}`;
|
|
236
236
|
}
|
|
237
237
|
return string;
|
|
238
238
|
}
|
|
@@ -263,7 +263,7 @@ function relationshipsToString(relationships) {
|
|
|
263
263
|
if (string === '') {
|
|
264
264
|
return '';
|
|
265
265
|
}
|
|
266
|
-
return `${
|
|
266
|
+
return `${string}\n`;
|
|
267
267
|
}
|
|
268
268
|
function optionsToString(options) {
|
|
269
269
|
const string = options.toString();
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2023 the original author or authors from the JHipster project.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
* for more information.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { upperFirst } from 'lodash-es';
|
|
1
20
|
import { Validations } from '../jhipster/index.mjs';
|
|
2
21
|
import { relationshipTypeExists } from '../jhipster/relationship-types.js';
|
|
3
22
|
const { REQUIRED } = Validations;
|
|
@@ -72,9 +91,9 @@ export default class JDLRelationship {
|
|
|
72
91
|
if (Object.keys(sourceOptions).length !== 0) {
|
|
73
92
|
Object.keys(sourceOptions).forEach(name => {
|
|
74
93
|
const value = sourceOptions[name];
|
|
75
|
-
|
|
94
|
+
name = upperFirst(name);
|
|
95
|
+
string += `@${name}${value != null && value !== true ? `(${value}) ` : ' '}`;
|
|
76
96
|
});
|
|
77
|
-
string += ' ';
|
|
78
97
|
}
|
|
79
98
|
string += `${this.from}`;
|
|
80
99
|
if (this.injectedFieldInFrom) {
|
|
@@ -92,12 +111,11 @@ export default class JDLRelationship {
|
|
|
92
111
|
}
|
|
93
112
|
const destinationOptions = this.options.destination;
|
|
94
113
|
if (Object.keys(destinationOptions).length !== 0) {
|
|
95
|
-
string += '\n';
|
|
96
114
|
Object.keys(destinationOptions).forEach(name => {
|
|
97
115
|
const value = destinationOptions[name];
|
|
98
|
-
|
|
116
|
+
name = upperFirst(name);
|
|
117
|
+
string += `@${name}${value != null && value !== true ? `(${value}) ` : ' '}`;
|
|
99
118
|
});
|
|
100
|
-
string += ' ';
|
|
101
119
|
}
|
|
102
120
|
string += `${this.to}`;
|
|
103
121
|
if (this.injectedFieldInTo) {
|
|
@@ -55,7 +55,7 @@ const applicationConfigTokens = [
|
|
|
55
55
|
{ name: 'CLIENT_THEME', pattern: CLIENT_THEME },
|
|
56
56
|
{ name: 'WITH_ADMIN_UI', pattern: WITH_ADMIN_UI },
|
|
57
57
|
{ name: 'NATIVE_LANGUAGE', pattern: NATIVE_LANGUAGE },
|
|
58
|
-
{ name: 'FRONT_END_BUILDER', pattern: 'frontendBuilder' },
|
|
58
|
+
{ name: 'FRONT_END_BUILDER', pattern: 'frontendBuilder' }, // TODO always valid?
|
|
59
59
|
{ name: 'SKIP_USER_MANAGEMENT', pattern: SKIP_USER_MANAGEMENT },
|
|
60
60
|
{ name: 'ENABLE_SWAGGER_CODEGEN', pattern: ENABLE_SWAGGER_CODEGEN },
|
|
61
61
|
{ name: 'REACTIVE', pattern: REACTIVE },
|
package/dist/testing/helpers.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import EnvironmentBuilder from '../cli/environment-builder.mjs';
|
|
|
5
5
|
import { JHIPSTER_CONFIG_DIR } from '../generators/generator-constants.mjs';
|
|
6
6
|
import { GENERATOR_WORKSPACES } from '../generators/generator-list.mjs';
|
|
7
7
|
import getGenerator from './get-generator.mjs';
|
|
8
|
-
import { createJHipsterLogger, normalizePathEnd } from '../generators/base/support/index.mjs';
|
|
8
|
+
import { createJHipsterLogger, normalizePathEnd, parseCreationTimestamp } from '../generators/base/support/index.mjs';
|
|
9
9
|
import BaseGenerator from '../generators/base/index.mjs';
|
|
10
10
|
import { getPackageRoot, isDistFolder } from '../lib/index.mjs';
|
|
11
11
|
const { set } = _;
|
|
@@ -76,7 +76,7 @@ class JHipsterRunContext extends RunContext {
|
|
|
76
76
|
commonWorkspacesConfig;
|
|
77
77
|
generateApplicationsSet = false;
|
|
78
78
|
withJHipsterConfig(configuration, entities) {
|
|
79
|
-
return this.withFiles(createFiles('', { baseName: 'jhipster', ...configuration }, entities));
|
|
79
|
+
return this.withFiles(createFiles('', { baseName: 'jhipster', creationTimestamp: parseCreationTimestamp('2020-01-01'), ...configuration }, entities));
|
|
80
80
|
}
|
|
81
81
|
withSkipWritingPriorities() {
|
|
82
82
|
return this.withOptions({ skipPriorities: ['writing', 'postWriting', 'writingEntities', 'postWritingEntities'] });
|
|
@@ -261,7 +261,14 @@ export function createTestHelpers(options = {}) {
|
|
|
261
261
|
helper.getRunContextType = () => JHipsterRunContext;
|
|
262
262
|
return helper;
|
|
263
263
|
}
|
|
264
|
-
const commonTestOptions = {
|
|
264
|
+
const commonTestOptions = {
|
|
265
|
+
reproducible: true,
|
|
266
|
+
skipChecks: true,
|
|
267
|
+
reproducibleTests: true,
|
|
268
|
+
noInsight: true,
|
|
269
|
+
useVersionPlaceholders: true,
|
|
270
|
+
fakeKeytool: true,
|
|
271
|
+
};
|
|
265
272
|
export const basicHelpers = createTestHelpers({ generatorOptions: { ...commonTestOptions } });
|
|
266
273
|
export const defaultHelpers = createTestHelpers({
|
|
267
274
|
generatorOptions: { skipPrettier: true, ...commonTestOptions },
|
|
@@ -3,7 +3,6 @@ export default class extends needleClientBase {
|
|
|
3
3
|
addGlobalSCSSStyle(style: any, comment: any): void;
|
|
4
4
|
addVendorSCSSStyle(style: any, comment: any): void;
|
|
5
5
|
addModule(appName: any, angularName: any, folderName: any, fileName: any, enableTranslation: any): void;
|
|
6
|
-
addToAdminModule(appName: any, adminAngularName: any, adminFolderName: any, adminFileName: any, enableTranslation: any): void;
|
|
7
6
|
_genericAddModule(appName: any, angularName: any, folderName: any, fileName: any, enableTranslation: any, clientFramework: any, modulePath: any, importNeedle: any, moduleNeedle: any): void;
|
|
8
7
|
_generateRewriteFileModelWithImportStatement(appName: any, angularName: any, folderName: any, fileName: any, modulePath: any, needle: any): import("../../needle-base.mjs").NeedleFileModel;
|
|
9
8
|
_generateImportStatement(appName: any, angularName: any, folderName: any, fileName: any): string;
|