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
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
/* eslint-disable consistent-return */
|
|
20
20
|
import chalk from 'chalk';
|
|
21
21
|
import BaseGenerator from '../base/index.mjs';
|
|
22
|
-
import { GENERATOR_GIT
|
|
22
|
+
import { GENERATOR_GIT } from '../generator-list.mjs';
|
|
23
23
|
import { files } from './files.mjs';
|
|
24
24
|
import command from './command.mjs';
|
|
25
25
|
/**
|
|
@@ -34,9 +34,6 @@ export default class InitGenerator extends BaseGenerator {
|
|
|
34
34
|
if (!this.fromBlueprint) {
|
|
35
35
|
await this.composeWithBlueprints(GENERATOR_GIT);
|
|
36
36
|
}
|
|
37
|
-
if (!this.delegateToBlueprint) {
|
|
38
|
-
await this.dependsOnJHipster(GENERATOR_PROJECT_NAME);
|
|
39
|
-
}
|
|
40
37
|
}
|
|
41
38
|
get initializing() {
|
|
42
39
|
return this.asInitializingTaskGroup({
|
|
@@ -74,7 +71,7 @@ export default class InitGenerator extends BaseGenerator {
|
|
|
74
71
|
}
|
|
75
72
|
get postWriting() {
|
|
76
73
|
return this.asPostWritingTaskGroup({
|
|
77
|
-
/** Husky commit hook install at install priority requires git to be
|
|
74
|
+
/** Husky commit hook install at install priority requires git to be initialized */
|
|
78
75
|
async initGitRepo() {
|
|
79
76
|
if (!this.skipGit && !this.jhipsterConfig.monorepository) {
|
|
80
77
|
await this.initializeGitRepository();
|
|
@@ -122,6 +119,7 @@ export default class InitGenerator extends BaseGenerator {
|
|
|
122
119
|
this.log.warn(chalk.red.bold(`Application commit to Git failed from ${repositoryRoot}. Try to commit manually. (${e.message})`));
|
|
123
120
|
}
|
|
124
121
|
};
|
|
122
|
+
// @ts-expect-error keep compatibility with other adapters
|
|
125
123
|
if (this.env.adapter.queue) {
|
|
126
124
|
await this.env.adapter.queue(commitFiles);
|
|
127
125
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
-
export const GRADLE_VERSION = '8.
|
|
19
|
+
export const GRADLE_VERSION = '8.5';
|
|
20
20
|
export const GRADLE = 'gradle';
|
|
21
21
|
export const GRADLE_DESCRIPTION = 'Gradle';
|
|
22
22
|
export const BUILD_DESTINATION_VALUE = 'build';
|
|
@@ -15,6 +15,10 @@ export const entityServerFiles = {
|
|
|
15
15
|
condition: ctx => ctx.useJakartaValidation,
|
|
16
16
|
templates: ['_entityPackage_/domain/_persistClass_.java.jhi.jakarta_validation'],
|
|
17
17
|
}),
|
|
18
|
+
javaMainPackageTemplatesBlock({
|
|
19
|
+
condition: ctx => ctx.useJacksonIdentityInfo,
|
|
20
|
+
templates: ['_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info'],
|
|
21
|
+
}),
|
|
18
22
|
],
|
|
19
23
|
};
|
|
20
24
|
export const enumFiles = {
|
|
@@ -31,6 +31,7 @@ export default class JavaGenerator extends BaseApplicationGenerator {
|
|
|
31
31
|
packageInfoFile;
|
|
32
32
|
generateEntities;
|
|
33
33
|
useJakartaValidation;
|
|
34
|
+
useJacksonIdentityInfo;
|
|
34
35
|
generateEnums;
|
|
35
36
|
async beforeQueue() {
|
|
36
37
|
if (!this.fromBlueprint) {
|
|
@@ -106,11 +107,11 @@ export default class JavaGenerator extends BaseApplicationGenerator {
|
|
|
106
107
|
async writeServerFiles({ application, entities }) {
|
|
107
108
|
if (!this.generateEntities)
|
|
108
109
|
return;
|
|
109
|
-
const { useJakartaValidation } = this;
|
|
110
|
+
const { useJakartaValidation, useJacksonIdentityInfo } = this;
|
|
110
111
|
for (const entity of entities.filter(entity => !entity.skipServer && !entity.builtIn)) {
|
|
111
112
|
await this.writeFiles({
|
|
112
113
|
sections: entityServerFiles,
|
|
113
|
-
context: { ...application, ...entity, useJakartaValidation },
|
|
114
|
+
context: { ...application, ...entity, useJakartaValidation, useJacksonIdentityInfo },
|
|
114
115
|
});
|
|
115
116
|
}
|
|
116
117
|
},
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
<%#
|
|
20
|
+
This is a fragment file, it will be merged into to root template if available.
|
|
21
|
+
EJS fragments will process % delimiter tags in template and & delimiter tags in the merge process.
|
|
22
|
+
-%>
|
|
23
|
+
<&_ if (fragment.importSection) { -&>
|
|
24
|
+
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
|
|
25
|
+
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
|
|
26
|
+
<&_ } -&>
|
|
27
|
+
|
|
28
|
+
<&_ if (fragment.annotationSection) { -&>
|
|
29
|
+
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "<%- primaryKey.name %>", scope = <%- persistClass %>.class)
|
|
30
|
+
<&_ } -&>
|
|
@@ -33,6 +33,7 @@ import statistics from '../statistics.mjs';
|
|
|
33
33
|
import { addApplicationIndex, allNewApplications, customizeForMicroservices } from './internal/index.mjs';
|
|
34
34
|
import { mergeYoRcContent } from '../../jdl/index.js';
|
|
35
35
|
import { normalizeBlueprintName } from '../base/internal/blueprint.mjs';
|
|
36
|
+
import { updateApplicationEntitiesTransform } from '../base-application/support/update-application-entities-transform.mjs';
|
|
36
37
|
const { upperFirst } = _;
|
|
37
38
|
/**
|
|
38
39
|
* Add jdl extension to the file
|
|
@@ -89,8 +90,11 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
89
90
|
get [BaseGenerator.INITIALIZING]() {
|
|
90
91
|
return this.delegateTasksToBlueprint(() => this.initializing);
|
|
91
92
|
}
|
|
92
|
-
get
|
|
93
|
-
return this.
|
|
93
|
+
get configuring() {
|
|
94
|
+
return this.asConfiguringTaskGroup({
|
|
95
|
+
insight() {
|
|
96
|
+
statistics.sendSubGenEvent('generator', 'import-jdl');
|
|
97
|
+
},
|
|
94
98
|
async downloadJdlFiles() {
|
|
95
99
|
if (this.jdlFiles) {
|
|
96
100
|
this.jdlFiles = await Promise.all(this.jdlFiles.map(toJdlFile).map(async (filename) => {
|
|
@@ -116,16 +120,6 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
116
120
|
this.jdlContents.push(this.readDestination(jdlFile)?.toString() ?? '');
|
|
117
121
|
}
|
|
118
122
|
},
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
get [BaseGenerator.LOADING]() {
|
|
122
|
-
return this.delegateTasksToBlueprint(() => this.loading);
|
|
123
|
-
}
|
|
124
|
-
get default() {
|
|
125
|
-
return this.asDefaultTaskGroup({
|
|
126
|
-
insight() {
|
|
127
|
-
statistics.sendSubGenEvent('generator', 'import-jdl');
|
|
128
|
-
},
|
|
129
123
|
async parseJDL() {
|
|
130
124
|
const configuration = {
|
|
131
125
|
applicationName: this.options.baseName ?? (this.existingProject ? this.jhipsterConfig.baseName : undefined),
|
|
@@ -147,6 +141,14 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
147
141
|
...applicationsWithEntities.filter((app) => app.config.applicationType !== 'gateway'),
|
|
148
142
|
];
|
|
149
143
|
},
|
|
144
|
+
configure() {
|
|
145
|
+
const nrApplications = this.applications.length;
|
|
146
|
+
const allNew = allNewApplications(this.applications);
|
|
147
|
+
const interactiveFallback = !allNew;
|
|
148
|
+
this.interactive = this.interactive ?? interactiveFallback;
|
|
149
|
+
this.force = this.options.force ?? (nrApplications > 0 && allNew) ? true : undefined;
|
|
150
|
+
this.reproducible = allNew;
|
|
151
|
+
},
|
|
150
152
|
customizeApplication() {
|
|
151
153
|
for (const app of this.applications) {
|
|
152
154
|
app.config.entities = app.entities.map(entity => entity.name);
|
|
@@ -162,17 +164,10 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
162
164
|
addApplicationIndex(this.applications);
|
|
163
165
|
customizeForMicroservices(this.exportedApplicationsWithEntities);
|
|
164
166
|
},
|
|
165
|
-
|
|
166
|
-
const nrApplications = this.applications.length;
|
|
167
|
-
const allNew = allNewApplications(this.applications);
|
|
168
|
-
const interactiveFallback = !allNew;
|
|
169
|
-
this.interactive = this.interactive ?? interactiveFallback;
|
|
170
|
-
this.force = this.options.force ?? (nrApplications > 0 && allNew) ? true : undefined;
|
|
171
|
-
this.reproducible = allNew;
|
|
172
|
-
},
|
|
173
|
-
generateJson() {
|
|
167
|
+
async generateJson() {
|
|
174
168
|
if (this.applications.length === 0) {
|
|
175
169
|
this.writeConfig({ entities: this.exportedEntities });
|
|
170
|
+
await this.env.sharedFs.pipeline({ refresh: true }, updateApplicationEntitiesTransform({ destinationPath: this.destinationPath(), throwOnMissingConfig: false }));
|
|
176
171
|
}
|
|
177
172
|
else {
|
|
178
173
|
this.writeConfig(...this.applications.map(app => (this.ignoreApplication ? { ...app, config: undefined } : app)));
|
|
@@ -219,8 +214,8 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
219
214
|
},
|
|
220
215
|
});
|
|
221
216
|
}
|
|
222
|
-
get [BaseGenerator.
|
|
223
|
-
return this.delegateTasksToBlueprint(() => this.
|
|
217
|
+
get [BaseGenerator.CONFIGURING]() {
|
|
218
|
+
return this.delegateTasksToBlueprint(() => this.configuring);
|
|
224
219
|
}
|
|
225
220
|
get end() {
|
|
226
221
|
return this.asEndTaskGroup({
|
|
@@ -469,6 +469,7 @@ data:
|
|
|
469
469
|
"FreeOTP",
|
|
470
470
|
"Google Authenticator"
|
|
471
471
|
],
|
|
472
|
+
"localizationTexts": {},
|
|
472
473
|
"webAuthnPolicyRpEntityName": "keycloak",
|
|
473
474
|
"webAuthnPolicySignatureAlgorithms": [
|
|
474
475
|
"ES256"
|
|
@@ -481,6 +482,7 @@ data:
|
|
|
481
482
|
"webAuthnPolicyCreateTimeout": 0,
|
|
482
483
|
"webAuthnPolicyAvoidSameAuthenticatorRegister": false,
|
|
483
484
|
"webAuthnPolicyAcceptableAaguids": [],
|
|
485
|
+
"webAuthnPolicyExtraOrigins": [],
|
|
484
486
|
"webAuthnPolicyPasswordlessRpEntityName": "keycloak",
|
|
485
487
|
"webAuthnPolicyPasswordlessSignatureAlgorithms": [
|
|
486
488
|
"ES256"
|
|
@@ -493,6 +495,7 @@ data:
|
|
|
493
495
|
"webAuthnPolicyPasswordlessCreateTimeout": 0,
|
|
494
496
|
"webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": false,
|
|
495
497
|
"webAuthnPolicyPasswordlessAcceptableAaguids": [],
|
|
498
|
+
"webAuthnPolicyPasswordlessExtraOrigins": [],
|
|
496
499
|
"scopeMappings": [
|
|
497
500
|
{
|
|
498
501
|
"clientScope": "offline_access",
|
|
@@ -2499,7 +2502,7 @@ data:
|
|
|
2499
2502
|
"cibaInterval": "5",
|
|
2500
2503
|
"frontendUrl": ""
|
|
2501
2504
|
},
|
|
2502
|
-
"keycloakVersion": "
|
|
2505
|
+
"keycloakVersion": "23.0.1",
|
|
2503
2506
|
"userManagedAccessAllowed": false,
|
|
2504
2507
|
"clientProfiles": {
|
|
2505
2508
|
"profiles": []
|
|
@@ -34,6 +34,7 @@ import { updateLanguagesTask as updateLanguagesInJava } from '../server/support/
|
|
|
34
34
|
import { SERVER_MAIN_RES_DIR, SERVER_TEST_RES_DIR } from '../generator-constants.mjs';
|
|
35
35
|
import command from './command.mjs';
|
|
36
36
|
import { QUEUES } from '../base-application/priorities.mjs';
|
|
37
|
+
import { PRIORITY_NAMES } from '../base/priorities.mjs';
|
|
37
38
|
const { startCase } = _;
|
|
38
39
|
/**
|
|
39
40
|
* This is the base class for a generator that generates entities.
|
|
@@ -68,6 +69,14 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
68
69
|
if (!this.delegateToBlueprint) {
|
|
69
70
|
await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
|
|
70
71
|
}
|
|
72
|
+
if (!this.jhipsterConfigWithDefaults.skipClient &&
|
|
73
|
+
this.jhipsterConfigWithDefaults.clientFramework !== 'no' &&
|
|
74
|
+
(!this.jhipsterConfig.enableTranslation || this.jhipsterConfigWithDefaults.clientFramework === 'angular')) {
|
|
75
|
+
// We must write languages files for translation process for entities only generation.
|
|
76
|
+
// Angular frontend uses translation files even if enableTranslation is enabled.
|
|
77
|
+
// As side effect, with angular frontends, translation files will be written for nativeLanguage for entity only generation.
|
|
78
|
+
this.setFeatures({ disableSkipPriorities: true });
|
|
79
|
+
}
|
|
71
80
|
}
|
|
72
81
|
// Public API method used by the getter and also by Blueprints
|
|
73
82
|
get initializing() {
|
|
@@ -144,27 +153,24 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
144
153
|
}
|
|
145
154
|
},
|
|
146
155
|
defaults() {
|
|
147
|
-
const { nativeLanguage,
|
|
156
|
+
const { nativeLanguage, enableTranslation } = this.jhipsterConfigWithDefaults;
|
|
157
|
+
const isLanguageConfigured = Boolean(this.jhipsterConfig.nativeLanguage);
|
|
158
|
+
// Prompts detects current language. Save default native language for next execution.
|
|
159
|
+
this.config.defaults({ nativeLanguage });
|
|
148
160
|
if (!enableTranslation) {
|
|
149
|
-
if (!this.jhipsterConfig.nativeLanguage) {
|
|
150
|
-
this.jhipsterConfig.nativeLanguage = nativeLanguage;
|
|
151
|
-
}
|
|
152
161
|
return;
|
|
153
162
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
this.jhipsterConfig.nativeLanguage = nativeLanguage;
|
|
159
|
-
}
|
|
160
|
-
if (!this.jhipsterConfig.languages) {
|
|
161
|
-
this.jhipsterConfig.languages = [];
|
|
163
|
+
this.config.defaults({ languages: [] });
|
|
164
|
+
if (!isLanguageConfigured && this.languagesToApply.length === 0) {
|
|
165
|
+
// If languages is not configured, apply defaults.
|
|
166
|
+
this.languagesToApply = this.jhipsterConfigWithDefaults.languages;
|
|
162
167
|
}
|
|
163
168
|
if (this.jhipsterConfig.languages.length === 0 || this.jhipsterConfig.languages[0] !== this.jhipsterConfig.nativeLanguage) {
|
|
164
|
-
|
|
169
|
+
// Set native language as first language.
|
|
170
|
+
this.jhipsterConfig.languages = [...new Set([nativeLanguage, ...this.jhipsterConfig.languages])];
|
|
165
171
|
}
|
|
166
172
|
if (this.languagesToApply && this.languagesToApply.length > 0) {
|
|
167
|
-
// Save new languages
|
|
173
|
+
// Save new languages.
|
|
168
174
|
this.jhipsterConfig.languages = [...new Set([...this.jhipsterConfig.languages, ...this.languagesToApply])];
|
|
169
175
|
}
|
|
170
176
|
},
|
|
@@ -248,7 +254,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
248
254
|
async translateFile({ application }) {
|
|
249
255
|
if (!application.enableTranslation ||
|
|
250
256
|
application.skipServer ||
|
|
251
|
-
(!application.backendTypeSpringBoot && !this.writeJavaLanguageFiles)
|
|
257
|
+
(!application.backendTypeSpringBoot && !this.writeJavaLanguageFiles) ||
|
|
258
|
+
this.options.skipPriorities?.includes?.(PRIORITY_NAMES.POST_WRITING))
|
|
252
259
|
return;
|
|
253
260
|
await Promise.all(this.languagesToApply.map(async (lang) => {
|
|
254
261
|
const language = findLanguageForTag(lang);
|
|
@@ -296,6 +303,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
296
303
|
get postWriting() {
|
|
297
304
|
return this.asPostWritingTaskGroup({
|
|
298
305
|
write({ application, control }) {
|
|
306
|
+
if (this.options.skipPriorities?.includes?.(PRIORITY_NAMES.POST_WRITING))
|
|
307
|
+
return;
|
|
299
308
|
if (application.enableTranslation && !application.skipClient) {
|
|
300
309
|
if (application.clientFrameworkAngular) {
|
|
301
310
|
updateLanguagesInAngularTask.call(this, { application, control });
|
|
@@ -55,7 +55,9 @@ export async function askForLanguages({ control }) {
|
|
|
55
55
|
choices: () => {
|
|
56
56
|
const languageOptions = this.supportedLanguages;
|
|
57
57
|
const nativeLanguage = this.jhipsterConfigWithDefaults.nativeLanguage;
|
|
58
|
-
|
|
58
|
+
const choices = languagesAsChoices(languageOptions.filter(l => l.languageTag !== nativeLanguage));
|
|
59
|
+
const defaults = this.jhipsterConfigWithDefaults.languages ?? [];
|
|
60
|
+
return [...choices.filter(({ value }) => defaults.includes(value)), ...choices.filter(({ value }) => !defaults.includes(value))];
|
|
59
61
|
},
|
|
60
62
|
default: () => this.jhipsterConfigWithDefaults.languages,
|
|
61
63
|
},
|
|
@@ -63,7 +63,7 @@ export const replaceTranslationKeysWithText = (getWebappTranslation, body, regex
|
|
|
63
63
|
}
|
|
64
64
|
else if (escapeHtml) {
|
|
65
65
|
// Escape specific chars
|
|
66
|
-
replacement = replacement.replace(/'/g, ''').replace(/"/g, '"');
|
|
66
|
+
replacement = replacement.replace(/'/g, ''').replace(/"/g, '"').replace(/@/g, '@');
|
|
67
67
|
}
|
|
68
68
|
else if (stringify) {
|
|
69
69
|
replacement = JSON.stringify(replacement);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# SQL/spring-data-relational sub-generador
|
|
2
|
+
|
|
3
|
+
Adds support to liquibase to SQL databases and Neo4j.
|
|
4
|
+
|
|
5
|
+
## Customizing
|
|
6
|
+
|
|
7
|
+
Customizing basics can be found at [Customizing](../app/README.md#customizing)
|
|
8
|
+
|
|
9
|
+
### Notable relationships customizations
|
|
10
|
+
|
|
11
|
+
#### OnUpdate/OnDelete
|
|
12
|
+
|
|
13
|
+
```jdl
|
|
14
|
+
relationship ManyToOne {
|
|
15
|
+
A to @OnDelete("SET NULL") @OnUpdate("CASCADE") B
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Allowed values: `NO ACTION | RESTRICT | CASCADE | SET NULL | SET DEFAULT`
|
|
@@ -24,31 +24,35 @@ import { GENERATOR_PROJECT_NAME } from '../generator-list.mjs';
|
|
|
24
24
|
import { BASE_NAME } from './constants.mjs';
|
|
25
25
|
import { getHipster } from '../base/support/index.mjs';
|
|
26
26
|
import command from './command.mjs';
|
|
27
|
+
import { validateProjectName } from './support/name-resolver.mjs';
|
|
27
28
|
/**
|
|
28
29
|
* @class
|
|
29
30
|
* @extends {BaseApplicationGenerator<import('../base-application/types.mjs').BaseApplication>}
|
|
30
31
|
*/
|
|
31
32
|
export default class ProjectNameGenerator extends BaseApplicationGenerator {
|
|
33
|
+
javaApplication;
|
|
32
34
|
async beforeQueue() {
|
|
33
|
-
if (this.options.defaults) {
|
|
34
|
-
if (!this.jhipsterConfig.baseName) {
|
|
35
|
-
this.jhipsterConfig.baseName = getDefaultAppName(this);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
35
|
this.sharedData.getControl().existingProject =
|
|
39
36
|
this.options.defaults || this.options.applicationWithConfig || (this.jhipsterConfig.baseName !== undefined && this.config.existed);
|
|
40
37
|
if (!this.fromBlueprint) {
|
|
41
38
|
await this.composeWithBlueprints(GENERATOR_PROJECT_NAME);
|
|
42
39
|
}
|
|
43
|
-
if (this.sharedData.getControl().existingProject && !this.jhipsterConfig.baseName) {
|
|
44
|
-
this.jhipsterConfig.baseName = getDefaultAppName(this);
|
|
45
|
-
}
|
|
46
40
|
}
|
|
47
41
|
get initializing() {
|
|
48
42
|
return this.asInitializingTaskGroup({
|
|
49
43
|
loadOptions() {
|
|
50
44
|
this.parseJHipsterOptions(command.options);
|
|
51
45
|
},
|
|
46
|
+
parseOptions() {
|
|
47
|
+
if (this.options.defaults) {
|
|
48
|
+
if (!this.jhipsterConfig.baseName) {
|
|
49
|
+
this.jhipsterConfig.baseName = getDefaultAppName({
|
|
50
|
+
reproducible: this.options.reproducible,
|
|
51
|
+
javaApplication: this.javaApplication,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
52
56
|
});
|
|
53
57
|
}
|
|
54
58
|
get [BaseApplicationGenerator.INITIALIZING]() {
|
|
@@ -63,7 +67,7 @@ export default class ProjectNameGenerator extends BaseApplicationGenerator {
|
|
|
63
67
|
type: 'input',
|
|
64
68
|
validate: input => this.validateBaseName(input),
|
|
65
69
|
message: 'What is the base name of your application?',
|
|
66
|
-
default: () => getDefaultAppName(this),
|
|
70
|
+
default: () => getDefaultAppName({ reproducible: this.options.reproducible, javaApplication: this.javaApplication }),
|
|
67
71
|
},
|
|
68
72
|
], this.config);
|
|
69
73
|
},
|
|
@@ -114,15 +118,6 @@ export default class ProjectNameGenerator extends BaseApplicationGenerator {
|
|
|
114
118
|
* @returns Boolean
|
|
115
119
|
*/
|
|
116
120
|
validateBaseName(input) {
|
|
117
|
-
|
|
118
|
-
return 'Your base name cannot contain special characters or a blank space';
|
|
119
|
-
}
|
|
120
|
-
if (/_/.test(input)) {
|
|
121
|
-
return 'Your base name cannot contain underscores as this does not meet the URI spec';
|
|
122
|
-
}
|
|
123
|
-
if (input?.toLowerCase() === 'application') {
|
|
124
|
-
return "Your base name cannot be named 'application' as this is a reserved name for Spring Boot";
|
|
125
|
-
}
|
|
126
|
-
return true;
|
|
121
|
+
return validateProjectName(input, { javaApplication: this.javaApplication });
|
|
127
122
|
}
|
|
128
123
|
}
|
|
@@ -17,14 +17,43 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import path from 'path';
|
|
20
|
+
import { camelCase } from 'lodash-es';
|
|
20
21
|
import { isReproducible } from '../../base/support/index.mjs';
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
if (
|
|
22
|
+
const defaultName = 'jhipster';
|
|
23
|
+
export const validateJavaApplicationName = (name) => {
|
|
24
|
+
if (!/^([\w]*)$/.test(name)) {
|
|
25
|
+
return 'Your base name cannot contain special characters or a blank space';
|
|
26
|
+
}
|
|
27
|
+
if (/_/.test(name)) {
|
|
28
|
+
return 'Your base name cannot contain underscores as this does not meet the URI spec';
|
|
29
|
+
}
|
|
30
|
+
if (name.toLowerCase() === 'application') {
|
|
31
|
+
return "Your base name cannot be named 'application' as this is a reserved name for Spring Boot";
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
};
|
|
35
|
+
export const validateNpmProjectName = (name) => {
|
|
36
|
+
if (!/^([\w-.]*)$/.test(name)) {
|
|
37
|
+
return 'Your base name cannot contain special characters or a blank space';
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
};
|
|
41
|
+
export const validateProjectName = (name, { javaApplication } = {}) => javaApplication ? validateJavaApplicationName(name) : validateNpmProjectName(name);
|
|
42
|
+
const getDefaultName = (generator) => {
|
|
43
|
+
if (generator?.options && isReproducible(generator)) {
|
|
44
|
+
return defaultName;
|
|
45
|
+
}
|
|
46
|
+
let projectName = path.basename(process.cwd());
|
|
47
|
+
const { reproducible = false, javaApplication = false } = generator && !generator.options ? generator : {};
|
|
48
|
+
if (reproducible) {
|
|
24
49
|
return defaultName;
|
|
25
50
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
51
|
+
if (javaApplication) {
|
|
52
|
+
projectName = camelCase(projectName);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
projectName = projectName.replace('generator-jhipster-', '');
|
|
56
|
+
}
|
|
57
|
+
return validateProjectName(projectName, { javaApplication }) === true ? projectName : defaultName;
|
|
29
58
|
};
|
|
30
59
|
export default getDefaultName;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@fortawesome/fontawesome-svg-core": "6.
|
|
4
|
-
"@fortawesome/free-solid-svg-icons": "6.
|
|
3
|
+
"@fortawesome/fontawesome-svg-core": "6.5.1",
|
|
4
|
+
"@fortawesome/free-solid-svg-icons": "6.5.1",
|
|
5
5
|
"@fortawesome/react-fontawesome": "0.2.0",
|
|
6
6
|
"@reduxjs/toolkit": "1.9.7",
|
|
7
|
-
"axios": "1.6.
|
|
7
|
+
"axios": "1.6.2",
|
|
8
8
|
"bootstrap": "5.3.2",
|
|
9
9
|
"bootswatch": "5.3.2",
|
|
10
10
|
"lodash": "4.17.21",
|
|
11
11
|
"path-browserify": "1.0.1",
|
|
12
12
|
"react": "18.2.0",
|
|
13
13
|
"react-dom": "18.2.0",
|
|
14
|
-
"react-hook-form": "7.
|
|
14
|
+
"react-hook-form": "7.49.0",
|
|
15
15
|
"react-jhipster": "0.25.3",
|
|
16
16
|
"react-loadable": "5.5.0",
|
|
17
17
|
"react-redux": "8.1.3",
|
|
18
|
-
"react-redux-loading-bar": "5.0.
|
|
19
|
-
"react-router-dom": "6.
|
|
18
|
+
"react-redux-loading-bar": "5.0.5",
|
|
19
|
+
"react-router-dom": "6.20.1",
|
|
20
20
|
"react-toastify": "9.1.3",
|
|
21
21
|
"react-transition-group": "4.4.5",
|
|
22
|
-
"reactstrap": "9.2.
|
|
22
|
+
"reactstrap": "9.2.1",
|
|
23
23
|
"redux": "4.2.1",
|
|
24
24
|
"redux-thunk": "2.4.2",
|
|
25
25
|
"sonar-scanner": "3.1.0",
|
|
@@ -28,32 +28,32 @@
|
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@module-federation/utilities": "3.0.3-0",
|
|
31
|
-
"@testing-library/react": "14.
|
|
32
|
-
"@types/jest": "29.5.
|
|
33
|
-
"@types/lodash": "4.14.
|
|
34
|
-
"@types/node": "18.
|
|
35
|
-
"@types/react": "18.2.
|
|
36
|
-
"@types/react-dom": "18.2.
|
|
37
|
-
"@types/react-redux": "7.1.
|
|
31
|
+
"@testing-library/react": "14.1.2",
|
|
32
|
+
"@types/jest": "29.5.11",
|
|
33
|
+
"@types/lodash": "4.14.202",
|
|
34
|
+
"@types/node": "18.19.3",
|
|
35
|
+
"@types/react": "18.2.43",
|
|
36
|
+
"@types/react-dom": "18.2.17",
|
|
37
|
+
"@types/react-redux": "7.1.31",
|
|
38
38
|
"@types/redux": "3.6.31",
|
|
39
|
-
"@types/webpack-env": "1.18.
|
|
40
|
-
"@typescript-eslint/eslint-plugin": "6.
|
|
41
|
-
"@typescript-eslint/parser": "6.
|
|
39
|
+
"@types/webpack-env": "1.18.4",
|
|
40
|
+
"@typescript-eslint/eslint-plugin": "6.13.2",
|
|
41
|
+
"@typescript-eslint/parser": "6.13.2",
|
|
42
42
|
"autoprefixer": "10.4.16",
|
|
43
43
|
"browser-sync": "2.29.3",
|
|
44
44
|
"browser-sync-webpack-plugin": "2.3.0",
|
|
45
45
|
"copy-webpack-plugin": "11.0.0",
|
|
46
|
-
"core-js": "3.
|
|
46
|
+
"core-js": "3.34.0",
|
|
47
47
|
"cross-env": "7.0.3",
|
|
48
48
|
"css-loader": "6.8.1",
|
|
49
49
|
"css-minimizer-webpack-plugin": "5.0.1",
|
|
50
|
-
"eslint": "8.
|
|
51
|
-
"eslint-config-prettier": "9.
|
|
50
|
+
"eslint": "8.55.0",
|
|
51
|
+
"eslint-config-prettier": "9.1.0",
|
|
52
52
|
"eslint-plugin-react": "7.33.2",
|
|
53
53
|
"eslint-webpack-plugin": "4.0.1",
|
|
54
54
|
"folder-hash": "4.0.4",
|
|
55
55
|
"fork-ts-checker-webpack-plugin": "9.0.2",
|
|
56
|
-
"html-webpack-plugin": "5.5.
|
|
56
|
+
"html-webpack-plugin": "5.5.4",
|
|
57
57
|
"identity-obj-proxy": "3.0.0",
|
|
58
58
|
"jest": "29.7.0",
|
|
59
59
|
"jest-environment-jsdom": "29.7.0",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"merge-jsons-webpack-plugin": "2.0.1",
|
|
64
64
|
"mini-css-extract-plugin": "2.7.6",
|
|
65
65
|
"postcss-loader": "7.3.3",
|
|
66
|
-
"postcss-rtlcss": "4.0.
|
|
66
|
+
"postcss-rtlcss": "4.0.9",
|
|
67
67
|
"react-infinite-scroll-component": "6.1.0",
|
|
68
68
|
"redux-mock-store": "1.5.4",
|
|
69
69
|
"rimraf": "5.0.5",
|
|
@@ -77,8 +77,8 @@
|
|
|
77
77
|
"terser-webpack-plugin": "5.3.9",
|
|
78
78
|
"thread-loader": "4.0.2",
|
|
79
79
|
"ts-jest": "29.1.1",
|
|
80
|
-
"ts-loader": "9.5.
|
|
81
|
-
"typescript": "5.
|
|
80
|
+
"ts-loader": "9.5.1",
|
|
81
|
+
"typescript": "5.3.3",
|
|
82
82
|
"webpack": "5.89.0",
|
|
83
83
|
"webpack-cli": "5.1.4",
|
|
84
84
|
"webpack-dev-server": "4.15.1",
|
|
@@ -153,7 +153,7 @@ describe('Notification Middleware', () => {
|
|
|
153
153
|
},
|
|
154
154
|
};
|
|
155
155
|
|
|
156
|
-
const
|
|
156
|
+
const UNKNOWN_400_ERROR = {
|
|
157
157
|
type: ERROR_TYPE,
|
|
158
158
|
error: {
|
|
159
159
|
isAxiosError: true,
|
|
@@ -163,7 +163,7 @@ describe('Notification Middleware', () => {
|
|
|
163
163
|
},
|
|
164
164
|
};
|
|
165
165
|
|
|
166
|
-
const
|
|
166
|
+
const UNKNOWN_ERROR = {
|
|
167
167
|
type: ERROR_TYPE,
|
|
168
168
|
error: {
|
|
169
169
|
isAxiosError: true,
|
|
@@ -256,13 +256,13 @@ describe('Notification Middleware', () => {
|
|
|
256
256
|
});
|
|
257
257
|
|
|
258
258
|
it('should trigger an error toast message and return error for unknown 400 error', () => {
|
|
259
|
-
expect(store.dispatch(
|
|
259
|
+
expect(store.dispatch(UNKNOWN_400_ERROR).error.response.status).toEqual(400);
|
|
260
260
|
const toastMsg = (toastify.toast as any).error.getCall(0).args[0];
|
|
261
261
|
expect(toastMsg).toContain('Unknown error!');
|
|
262
262
|
});
|
|
263
263
|
|
|
264
264
|
it('should trigger an error toast message and return error for unknown error', () => {
|
|
265
|
-
expect(store.dispatch(
|
|
265
|
+
expect(store.dispatch(UNKNOWN_ERROR).error.isAxiosError).toEqual(true);
|
|
266
266
|
const toastMsg = (toastify.toast as any).error.getCall(0).args[0];
|
|
267
267
|
expect(toastMsg).toContain('Unknown error!');
|
|
268
268
|
});
|