generator-jhipster 8.4.0 → 8.6.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 +3 -4
- package/dist/cli/commands.mjs +2 -0
- package/dist/cli/environment-builder.mjs +5 -0
- package/dist/cli/program.mjs +10 -4
- package/dist/generators/angular/entity-files-angular.js +6 -7
- package/dist/generators/angular/resources/package.json +20 -20
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +4 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +4 -5
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +6 -5
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +5 -5
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +2 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +4 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +0 -1
- package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/config/uib-pagination.config.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +7 -5
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth-expired.interceptor.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth.interceptor.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +6 -6
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +4 -5
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +5 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +5 -6
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +6 -6
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +11 -9
- package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +10 -10
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +6 -7
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +2 -0
- package/dist/generators/app/generator.js +4 -13
- package/dist/generators/base/command.js +1 -0
- package/dist/generators/base/generator.js +22 -28
- package/dist/generators/base/internal/command.js +13 -0
- package/dist/generators/base/internal/index.js +1 -0
- package/dist/generators/base/priorities.js +12 -1
- package/dist/generators/base/shared-data.js +74 -2
- package/dist/generators/base/support/config.js +1 -1
- package/dist/generators/base/support/jhipster7-context.js +155 -52
- package/dist/generators/base-application/generator.js +15 -3
- package/dist/generators/base-application/priorities.js +1 -0
- package/dist/generators/base-application/support/prepare-entity.js +7 -8
- package/dist/generators/base-application/support/prepare-relationship.js +3 -2
- package/dist/generators/base-core/generator.js +132 -63
- package/dist/generators/bootstrap/generator.js +1 -1
- package/dist/generators/bootstrap/support/eslint-worker.js +14 -12
- package/dist/generators/bootstrap/support/multi-step-transform/template-file.js +6 -1
- package/dist/generators/bootstrap-application/generator.js +1 -1
- package/dist/generators/bootstrap-application-base/generator.js +7 -3
- package/dist/generators/bootstrap-application-client/generator.js +5 -1
- package/dist/generators/bootstrap-application-server/generator.js +1 -0
- package/dist/generators/ci-cd/generator.js +1 -1
- package/dist/generators/ci-cd/templates/docker-registry.yml.ejs +0 -1
- package/dist/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +0 -1
- package/dist/generators/client/command.js +2 -2
- package/dist/generators/client/generator.js +2 -3
- package/dist/generators/client/generators/common/command.js +5 -0
- package/dist/generators/client/generators/common/generator.js +79 -0
- package/dist/generators/client/generators/common/index.js +20 -0
- package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
- package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
- package/dist/generators/client/resources/package.json +6 -6
- package/dist/generators/client/support/filter-entities.js +1 -1
- package/dist/generators/client/templates/.eslintignore.ejs +9 -5
- package/dist/generators/client/templates/README.md.jhi.client.ejs +29 -20
- package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
- package/dist/generators/common/generator.js +5 -0
- package/dist/generators/common/resources/package.json +2 -2
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
- package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
- package/dist/generators/docker/templates/docker/mariadb.yml.ejs +1 -1
- package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -2
- package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
- package/dist/generators/docker/templates/docker/realm-config/keycloak-health-check.sh +2 -2
- package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -0
- package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
- package/dist/generators/docker-compose/templates/realm-config/keycloak-health-check.sh +2 -2
- package/dist/generators/entity/generator.js +2 -10
- package/dist/generators/entity/prompts.js +6 -11
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +1 -1
- package/dist/generators/gatling/README.md +15 -0
- package/dist/generators/gatling/generator.js +0 -1
- package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
- package/dist/generators/generate-blueprint/command.js +16 -0
- package/dist/generators/generate-blueprint/files.js +11 -1
- package/dist/generators/generate-blueprint/generator.js +34 -17
- package/dist/generators/generate-blueprint/resources/package.json +3 -1
- package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +20 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
- package/dist/generators/generate-blueprint/templates/.github/workflows/build-cache.yml.ejs +39 -0
- package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +105 -0
- package/dist/generators/generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs +1 -1
- package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
- package/dist/generators/generate-blueprint/templates/eslint.config.js.ejs +33 -0
- package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
- package/dist/generators/generator-constants.js +2 -2
- package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/dist/generators/heroku/generator.js +1 -1
- package/dist/generators/info/generator.js +1 -3
- package/dist/generators/info/support/extract-info.js +60 -0
- package/dist/generators/info/support/index.js +1 -0
- package/dist/generators/init/generator.js +2 -2
- package/dist/generators/init/resources/.node-version +1 -1
- package/dist/generators/init/resources/package.json +2 -2
- package/dist/generators/java/generators/bootstrap/generator.js +9 -2
- package/dist/generators/java/generators/build-tool/command.js +6 -3
- package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
- package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
- package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
- package/dist/generators/java/generators/node/templates/npmw +1 -5
- package/dist/generators/java/support/add-java-annotation.js +28 -7
- package/dist/generators/java/support/generated-annotation-transform.js +1 -1
- package/dist/generators/java/support/index.js +1 -1
- package/dist/generators/jdl/generator.js +7 -7
- package/dist/generators/kubernetes/files.js +1 -1
- package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +1 -1
- package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
- package/dist/generators/languages/generator.js +5 -2
- package/dist/generators/liquibase/templates/src/main/java/_package_/config/LiquibaseConfiguration.java.ejs +1 -1
- package/dist/generators/maven/command.js +15 -0
- package/dist/generators/maven/generator.js +6 -1
- package/dist/generators/maven/index.js +1 -0
- package/dist/generators/maven/internal/xml-store.js +7 -6
- package/dist/generators/maven/support/pom-store.js +24 -9
- package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
- package/dist/generators/maven/templates/mvnw +185 -243
- package/dist/generators/maven/templates/mvnw.cmd +121 -180
- package/dist/generators/react/entity-files-react.js +7 -7
- package/dist/generators/react/generator.js +10 -0
- package/dist/generators/react/resources/package.json +28 -28
- package/dist/generators/react/templates/src/main/webapp/app/app.tsx.ejs +9 -0
- package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
- package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/translation.ts.ejs +4 -0
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
- package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +15 -1
- package/dist/generators/react/templates/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +4 -0
- package/dist/generators/react/templates/src/main/webapp/app/modules/login/logout.tsx.ejs +5 -3
- package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.tsx.ejs +0 -9
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +1 -3
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +29 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
- package/dist/generators/react/templates/src/main/webapp/app/shared/util/url-utils.ts.ejs +1 -1
- package/dist/generators/server/command.js +0 -11
- package/dist/generators/server/generator.js +16 -75
- package/dist/generators/server/jdl/application-definition.js +3 -1
- package/dist/generators/server/resources/Dockerfile +13 -13
- package/dist/generators/server/resources/gradle/libs.versions.toml +9 -7
- package/dist/generators/server/resources/pom.xml +16 -16
- package/dist/generators/server/support/config.js +4 -8
- package/dist/generators/server/support/prepare-entity.js +5 -6
- package/dist/generators/server/support/relationship.js +5 -2
- package/dist/generators/server/templates/build.gradle.ejs +5 -3
- package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +2 -1
- package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +2 -1
- package/dist/generators/server/templates/gradle.properties.ejs +1 -1
- package/dist/generators/server/templates/pom.xml.ejs +7 -31
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +1 -18
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +1 -21
- package/dist/generators/server/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
- package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +34 -0
- package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
- 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/AccountResource_oauth2.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +44 -10
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
- package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +60 -22
- package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
- package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
- package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
- package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
- package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
- package/dist/generators/spring-boot/command.js +117 -6
- package/dist/generators/spring-boot/files.js +0 -5
- package/dist/generators/spring-boot/generator.js +44 -9
- package/dist/generators/spring-boot/prompts.js +6 -70
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +374 -582
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/UserService.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/PublicUserResource.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/UserResource.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
- package/dist/generators/spring-cache/internal/dependencies.js +2 -2
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +3 -3
- package/dist/generators/spring-cloud/generators/gateway/command.js +10 -1
- package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
- package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_imperative.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_reactive.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
- package/dist/generators/spring-data-cassandra/generator.js +2 -2
- package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
- package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/config/DatabaseConfiguration.java_neo4j.ejs +18 -2
- package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
- package/dist/generators/vue/entity-files-vue.js +7 -7
- package/dist/generators/vue/resources/package.json +21 -21
- package/dist/generators/vue/templates/.eslintrc.cjs.ejs +7 -0
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
- package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
- package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
- package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
- package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
- package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
- package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
- package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
- package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
- package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
- package/dist/jdl/exporters/config.js +1 -0
- package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
- package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
- package/dist/jdl/jdl-importer.js +22 -20
- package/dist/jdl/jhipster/binary-options.js +12 -8
- package/dist/jdl/jhipster/json-entity.js +1 -1
- package/dist/jdl/models/abstract-jdl-option.js +2 -2
- package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
- package/dist/jdl/models/jdl-binary-option.js +2 -2
- package/dist/jdl/models/jdl-deployment.js +11 -0
- package/dist/jdl/models/jdl-entity.js +1 -1
- package/dist/jdl/models/jdl-enum.js +1 -1
- package/dist/jdl/models/jdl-enums.js +0 -18
- package/dist/jdl/models/jdl-field.js +2 -2
- package/dist/jdl/models/jdl-object-wrapper.js +1 -0
- package/dist/jdl/models/jdl-object.js +23 -45
- package/dist/jdl/models/jdl-options.js +0 -18
- package/dist/jdl/models/jdl-relationships.js +8 -16
- package/dist/jdl/models/jdl-unary-option.js +1 -1
- package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
- package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
- package/dist/jdl/parsing/jdl-parser.js +14 -0
- package/dist/jdl/parsing/lexer/lexer.js +17 -11
- package/dist/jdl/parsing/validator.js +16 -2
- package/dist/jdl/readers/json-reader.js +1 -1
- package/dist/jdl/utils/array-utils.js +6 -0
- package/dist/jdl/utils/set-utils.js +3 -2
- package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
- package/dist/lib/eslint/base.js +25 -0
- package/dist/lib/eslint/recommended.js +22 -0
- package/dist/testing/github.js +32 -0
- package/dist/testing/helpers.js +13 -0
- package/dist/testing/index.js +2 -0
- package/dist/testing/sample-config.js +31 -0
- package/dist/types/cli/commands.d.mts +2 -0
- package/dist/types/cli/environment-builder.d.mts +1 -0
- package/dist/types/generators/base/api.d.ts +19 -8
- package/dist/types/generators/base/generator.d.ts +10 -4
- package/dist/types/generators/base/internal/command.d.ts +2 -0
- package/dist/types/generators/base/internal/index.d.ts +1 -0
- package/dist/types/generators/base/priorities.d.ts +4 -0
- package/dist/types/generators/base/shared-data.d.ts +11 -2
- package/dist/types/generators/base/types.d.ts +12 -0
- package/dist/types/generators/base-application/priorities.d.ts +2 -0
- package/dist/types/generators/base-application/support/entity.d.ts +2 -2
- package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
- package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
- package/dist/types/generators/base-application/types.d.ts +11 -0
- package/dist/types/generators/base-core/generator.d.ts +18 -2
- package/dist/types/generators/generator-constants.d.ts +1 -1
- package/dist/types/generators/info/support/extract-info.d.ts +14 -0
- package/dist/types/generators/info/support/index.d.ts +1 -0
- package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
- package/dist/types/generators/java/support/doc.d.ts +1 -1
- package/dist/types/generators/java/support/index.d.ts +1 -1
- package/dist/types/generators/java/types.d.ts +12 -0
- package/dist/types/generators/maven/internal/xml-store.d.ts +3 -2
- package/dist/types/generators/maven/support/pom-store.d.ts +5 -2
- package/dist/types/generators/maven/types.d.ts +1 -0
- package/dist/types/generators/server/support/relationship.d.ts +2 -2
- package/dist/types/generators/server/types.d.ts +7 -1
- package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
- package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
- package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
- package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
- package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
- package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
- package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
- package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
- package/dist/types/jdl/converters/types.d.ts +102 -14
- package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
- package/dist/types/jdl/exporters/config.d.ts +2 -1
- package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
- package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
- package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
- package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
- package/dist/types/jdl/exporters/types.d.ts +61 -0
- package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
- package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
- package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
- package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
- package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
- package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
- package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
- package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application.d.ts +16 -13
- package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
- package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
- package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
- package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
- package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
- package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
- package/dist/types/jdl/models/jdl-field.d.ts +10 -8
- package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
- package/dist/types/jdl/models/jdl-object.d.ts +23 -19
- package/dist/types/jdl/models/jdl-options.d.ts +7 -24
- package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
- package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
- package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
- package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
- package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
- package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
- package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
- package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
- package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
- package/dist/types/jdl/parsing/validator.d.ts +1 -1
- package/dist/types/jdl/utils/array-utils.d.ts +1 -0
- package/dist/types/jdl/utils/set-utils.d.ts +1 -19
- package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
- package/dist/types/lib/eslint/base.d.ts +20 -0
- package/dist/types/lib/eslint/recommended.d.ts +20 -0
- package/dist/types/testing/github.d.ts +11 -0
- package/dist/types/testing/helpers.d.ts +21 -3
- package/dist/types/testing/index.d.ts +2 -0
- package/dist/types/testing/sample-config.d.ts +4 -0
- package/package.json +35 -30
- package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +0 -35
- /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs
CHANGED
|
@@ -16,23 +16,47 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
|
|
20
19
|
<%_ if (enableTranslation) { _%>
|
|
21
20
|
import { translate } from 'react-jhipster';
|
|
22
21
|
<%_ } _%>
|
|
23
22
|
import { toast } from 'react-toastify';
|
|
24
23
|
import { isFulfilledAction, isRejectedAction } from 'app/shared/reducers/reducer.utils';
|
|
25
|
-
import {
|
|
24
|
+
import { isAxiosError } from 'axios';
|
|
25
|
+
import { FieldErrorVM, isProblemWithMessage } from 'app/shared/jhipster/problem-details';
|
|
26
|
+
import { getMessageFromHeaders } from 'app/shared/jhipster/headers';
|
|
27
|
+
|
|
28
|
+
type TostMessage = {
|
|
29
|
+
message?: string;
|
|
30
|
+
<%_ if (enableTranslation) { _%>
|
|
31
|
+
key?: string;
|
|
32
|
+
data?: any;
|
|
33
|
+
<%_ } _%>
|
|
34
|
+
};
|
|
26
35
|
|
|
27
|
-
const addErrorAlert = (message
|
|
36
|
+
const addErrorAlert = (message: TostMessage) => {
|
|
28
37
|
<%_ if (enableTranslation) { _%>
|
|
29
|
-
key
|
|
30
|
-
toast.error(translate(key, data));
|
|
38
|
+
toast.error(message.key ? translate(message.key, message.data) ?? message.message : message.message);
|
|
31
39
|
<%_ } else { _%>
|
|
32
|
-
toast.error(message);
|
|
40
|
+
toast.error(message.message);
|
|
33
41
|
<%_ } _%>
|
|
34
42
|
};
|
|
35
43
|
|
|
44
|
+
const getFieldErrorsTosts = (fieldErrors: FieldErrorVM[]): TostMessage[] =>
|
|
45
|
+
fieldErrors.map(fieldError => {
|
|
46
|
+
if (['Min', 'Max', 'DecimalMin', 'DecimalMax'].includes(fieldError.message)) {
|
|
47
|
+
fieldError.message = 'Size';
|
|
48
|
+
}
|
|
49
|
+
// convert 'something[14].other[4].id' to 'something[].other[].id' so translations can be written to it
|
|
50
|
+
const convertedField = fieldError.field.replace(/\[\d*\]/g, '[]');
|
|
51
|
+
<%_ if (enableTranslation) { _%>
|
|
52
|
+
const fieldName = translate(`<%= frontendAppName %>.${fieldError.objectName}.${convertedField}`);
|
|
53
|
+
return { message: `Error on field "${fieldName}"`, key: `error.${fieldError.message}`, data: { fieldName } };
|
|
54
|
+
<%_ } else { _%>
|
|
55
|
+
const fieldName = convertedField.charAt(0).toUpperCase() + convertedField.slice(1);
|
|
56
|
+
return { message: `Error on field "${fieldName}"` };
|
|
57
|
+
<%_ } _%>
|
|
58
|
+
});
|
|
59
|
+
|
|
36
60
|
export default () => next => action => {
|
|
37
61
|
const { error, payload } = action;
|
|
38
62
|
|
|
@@ -40,103 +64,72 @@ export default () => next => action => {
|
|
|
40
64
|
*
|
|
41
65
|
* The notification middleware serves to add success and error notifications
|
|
42
66
|
*/
|
|
43
|
-
if (isFulfilledAction(action) && payload
|
|
44
|
-
const
|
|
45
|
-
let alert: string | null = null;
|
|
46
|
-
<%_ if (enableTranslation) { _%>
|
|
47
|
-
let alertParams: string | null = null;
|
|
48
|
-
<%_ } _%>
|
|
49
|
-
headers && Object.entries<string>(headers).forEach(([k, v]) => {
|
|
50
|
-
if (k.toLowerCase().endsWith('app-alert')) {
|
|
51
|
-
alert = v;
|
|
52
|
-
}<% if (enableTranslation) { %> else if (k.toLowerCase().endsWith('app-params')) {
|
|
53
|
-
alertParams = decodeURIComponent(v.replace(/\+/g, ' '));
|
|
54
|
-
}<% } %>
|
|
55
|
-
});
|
|
67
|
+
if (isFulfilledAction(action) && payload?.headers) {
|
|
68
|
+
const { alert<% if (enableTranslation) { %>, param<% } %> } = getMessageFromHeaders(payload.headers);
|
|
56
69
|
if (alert) {
|
|
57
70
|
<%_ if (enableTranslation) { _%>
|
|
58
|
-
|
|
59
|
-
toast.success(translate(alert, { param: alertParam }));
|
|
71
|
+
toast.success(translate(alert, { param }));
|
|
60
72
|
<%_ } else { _%>
|
|
61
73
|
toast.success(alert);
|
|
62
74
|
<%_ } _%>
|
|
63
75
|
}
|
|
64
76
|
}
|
|
65
77
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
)<% } else { %>convertedField.charAt(0).toUpperCase() + convertedField.slice(1)<% } %>;
|
|
111
|
-
addErrorAlert(`Error on field "${fieldName}"`, `error.${fieldError.message}`, { fieldName });
|
|
112
|
-
}
|
|
113
|
-
} else if (typeof data === 'string' && data !== '') {
|
|
114
|
-
addErrorAlert(data);
|
|
115
|
-
} else {
|
|
116
|
-
toast.error(data?.message || data?.error || data?.title || 'Unknown error!');
|
|
117
|
-
}
|
|
118
|
-
break;
|
|
78
|
+
if (isRejectedAction(action) && isAxiosError(error)) {
|
|
79
|
+
if (error.response) {
|
|
80
|
+
const response = error.response;
|
|
81
|
+
if (response.status === 401) {
|
|
82
|
+
// Ignore, page will be redirected to login.
|
|
83
|
+
} else if (error.config?.url?.endsWith('api/account') || error.config?.url?.endsWith('api/authenticate')) {
|
|
84
|
+
// Ignore, authentication status check and authentication are treated differently.
|
|
85
|
+
} else if (response.status === 0) {
|
|
86
|
+
// connection refused, server not reachable
|
|
87
|
+
addErrorAlert({
|
|
88
|
+
message: 'Server not reachable',
|
|
89
|
+
<%_ if (enableTranslation) { _%>
|
|
90
|
+
key: 'error.server.not.reachable',
|
|
91
|
+
<%_ } _%>
|
|
92
|
+
});
|
|
93
|
+
} else if (response.status === 404) {
|
|
94
|
+
addErrorAlert({
|
|
95
|
+
message: 'Not found',
|
|
96
|
+
<%_ if (enableTranslation) { _%>
|
|
97
|
+
key: 'error.url.not.found',
|
|
98
|
+
<%_ } _%>
|
|
99
|
+
});
|
|
100
|
+
} else {
|
|
101
|
+
const data = response.data;
|
|
102
|
+
const problem = isProblemWithMessage(data) ? data : null;
|
|
103
|
+
if (problem?.fieldErrors) {
|
|
104
|
+
getFieldErrorsTosts(problem.fieldErrors).forEach(message => addErrorAlert(message));
|
|
105
|
+
} else {
|
|
106
|
+
const { error: toastError<% if (enableTranslation) { %>, param<% } %> } = getMessageFromHeaders((response.headers as any) ?? {});
|
|
107
|
+
if (toastError) {
|
|
108
|
+
<%_ if (enableTranslation) { _%>
|
|
109
|
+
const entityName = translate('global.menu.entities.' + param);
|
|
110
|
+
addErrorAlert({ key: toastError, data: { entityName } });
|
|
111
|
+
<%_ } else { _%>
|
|
112
|
+
addErrorAlert({ message: toastError });
|
|
113
|
+
<%_ } _%>
|
|
114
|
+
<%_ if (enableTranslation) { _%>
|
|
115
|
+
} else if (problem?.message) {
|
|
116
|
+
addErrorAlert({ message: problem.detail, key: problem.message });
|
|
117
|
+
<%_ } _%>
|
|
118
|
+
} else if (typeof data === 'string' && data !== '') {
|
|
119
|
+
addErrorAlert({ message: data });
|
|
120
|
+
} else {
|
|
121
|
+
toast.error(data?.detail ?? data?.message ?? data?.error ?? data?.title ?? 'Unknown error!');
|
|
119
122
|
}
|
|
120
|
-
case 404:
|
|
121
|
-
addErrorAlert('Not found', 'error.url.not.found');
|
|
122
|
-
break;
|
|
123
|
-
|
|
124
|
-
default:
|
|
125
|
-
if (typeof data === 'string' && data !== '') {
|
|
126
|
-
addErrorAlert(data);
|
|
127
|
-
} else {
|
|
128
|
-
toast.error(data?.message || data?.error || data?.title || 'Unknown error!');
|
|
129
|
-
}
|
|
130
123
|
}
|
|
131
124
|
}
|
|
132
|
-
} else if (
|
|
125
|
+
} else if (error.config?.url?.endsWith('api/account') && error.config?.method === 'get') {
|
|
133
126
|
/* eslint-disable no-console */
|
|
134
127
|
console.log('Authentication Error: Trying to access url api/account with GET.');
|
|
135
128
|
} else {
|
|
136
|
-
|
|
129
|
+
addErrorAlert({ message: error.message ?? 'Unknown error!' });
|
|
137
130
|
}
|
|
138
131
|
} else if (error) {
|
|
139
|
-
|
|
132
|
+
addErrorAlert({ message: error.message ?? 'Unknown error!' });
|
|
140
133
|
}
|
|
141
134
|
|
|
142
135
|
return next(action);
|
|
@@ -45,7 +45,7 @@ const store = configureStore({
|
|
|
45
45
|
getDefaultMiddleware({
|
|
46
46
|
serializableCheck: {
|
|
47
47
|
// Ignore these field paths in all actions
|
|
48
|
-
ignoredActionPaths: ['payload.config', 'payload.request', 'payload.headers', 'error'
|
|
48
|
+
ignoredActionPaths: ['meta.arg', 'meta.baseQueryMeta', 'payload.config', 'payload.request', 'payload.headers', 'error'],
|
|
49
49
|
},
|
|
50
50
|
}).concat(
|
|
51
51
|
errorMiddleware,
|
|
@@ -34,6 +34,10 @@ export const locales = Object.keys(languages).sort();
|
|
|
34
34
|
|
|
35
35
|
<%_ if (enableI18nRTL) { _%>
|
|
36
36
|
export const isRTL = (lang: string): boolean => languages[lang] && languages[lang].rtl;
|
|
37
|
+
|
|
38
|
+
export const setTextDirection = (lang: string) => {
|
|
39
|
+
document.querySelector('html').setAttribute('dir', isRTL(lang) ? 'rtl' : 'ltr');
|
|
40
|
+
};
|
|
37
41
|
<%_ } _%>
|
|
38
42
|
|
|
39
43
|
export const registerLocale = store => {
|
|
@@ -143,7 +143,7 @@ _%>
|
|
|
143
143
|
const entity = {
|
|
144
144
|
...<%= entityInstance %>Entity,
|
|
145
145
|
...values,
|
|
146
|
-
<%_ for (const rel of persistableRelationships) { _%>
|
|
146
|
+
<%_ for (const rel of persistableRelationships.filter(rel => !rel.otherEntity.embedded)) { _%>
|
|
147
147
|
<%_ if (rel.collection) { _%>
|
|
148
148
|
<%= rel.propertyName %>: mapIdList(values.<%= rel.propertyName %>),
|
|
149
149
|
<%_ } else { _%>
|
|
@@ -186,7 +186,7 @@ _%>
|
|
|
186
186
|
<%= fieldName %>: convertDateTimeFromServer(<%= entityInstance %>Entity.<%= fieldName %>),
|
|
187
187
|
<%_ } _%>
|
|
188
188
|
<%_ } _%>
|
|
189
|
-
<%_ for (const rel of persistableRelationships) {
|
|
189
|
+
<%_ for (const rel of persistableRelationships.filter(rel => !rel.otherEntity.embedded)) {
|
|
190
190
|
const otherEntityPkName = rel.otherEntity.primaryKey && rel.otherEntity.primaryKey.name || 'id';
|
|
191
191
|
const relationshipFieldName = rel.relationshipFieldName;
|
|
192
192
|
const relationshipFieldNamePlural = rel.relationshipFieldNamePlural;
|
|
@@ -297,7 +297,7 @@ _%>
|
|
|
297
297
|
</UncontrolledTooltip>
|
|
298
298
|
<%_ } _%>
|
|
299
299
|
<%_ } _%>
|
|
300
|
-
<%_ for (const rel of persistableRelationships) {
|
|
300
|
+
<%_ for (const rel of persistableRelationships.filter(rel => !rel.otherEntity.embedded)) {
|
|
301
301
|
const otherEntityPkName = rel.otherEntity.primaryKey && rel.otherEntity.primaryKey.name || 'id';
|
|
302
302
|
const otherEntityNamePlural = rel.otherEntityNamePlural;
|
|
303
303
|
const relationshipName = rel.relationshipName;
|
|
@@ -63,18 +63,23 @@ export const searchEntities = createAsyncThunk(
|
|
|
63
63
|
const requestUrl = `${apiSearchUrl}?query=${query}`;
|
|
64
64
|
<%_ } _%>
|
|
65
65
|
return axios.get<I<%= entityReactName %>[]>(requestUrl);
|
|
66
|
-
}
|
|
66
|
+
},
|
|
67
|
+
{ serializeError: serializeAxiosError },
|
|
67
68
|
);
|
|
68
69
|
|
|
69
70
|
<%_ } _%>
|
|
70
|
-
export const getEntities = createAsyncThunk(
|
|
71
|
+
export const getEntities = createAsyncThunk(
|
|
72
|
+
'<%= entityInstance %>/fetch_entity_list',
|
|
73
|
+
async ({ <%_ if(!paginationNo) { _%>page, size, <%_ } _%>sort }: IQueryParams) => {
|
|
71
74
|
<%_ if (!paginationNo) { _%>
|
|
72
|
-
|
|
75
|
+
const requestUrl = `${apiUrl}?${sort ? `page=${page}&size=${size}&sort=${sort}&` : ''}cacheBuster=${new Date().getTime()}`;
|
|
73
76
|
<%_ } else { _%>
|
|
74
|
-
|
|
77
|
+
const requestUrl = `${apiUrl}?${sort ? `sort=${sort}&` : ''}cacheBuster=${new Date().getTime()}`;
|
|
75
78
|
<%_ } _%>
|
|
76
|
-
|
|
77
|
-
}
|
|
79
|
+
return axios.get<I<%= entityReactName %>[]>(requestUrl);
|
|
80
|
+
},
|
|
81
|
+
{ serializeError: serializeAxiosError },
|
|
82
|
+
);
|
|
78
83
|
|
|
79
84
|
export const getEntity = createAsyncThunk(
|
|
80
85
|
'<%= entityInstance %>/fetch_entity',
|
|
@@ -82,7 +87,7 @@ export const getEntity = createAsyncThunk(
|
|
|
82
87
|
const requestUrl = `${apiUrl}/${id}`;
|
|
83
88
|
return axios.get<I<%= entityReactName %>>(requestUrl);
|
|
84
89
|
},
|
|
85
|
-
{ serializeError: serializeAxiosError }
|
|
90
|
+
{ serializeError: serializeAxiosError },
|
|
86
91
|
);
|
|
87
92
|
|
|
88
93
|
<%_ if (!readOnly) { _%>
|
|
@@ -23,7 +23,11 @@ import React, { useEffect } from 'react';
|
|
|
23
23
|
<%_ } else { _%>
|
|
24
24
|
import React from 'react';
|
|
25
25
|
<%_ } _%>
|
|
26
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
27
|
+
import { useLocation, useNavigate } from 'react-router-dom';
|
|
28
|
+
<%_ } else { _%>
|
|
26
29
|
import { Link } from 'react-router-dom';
|
|
30
|
+
<%_ } _%>
|
|
27
31
|
import { Translate } from 'react-jhipster';
|
|
28
32
|
import { Row, Col, Alert } from 'reactstrap';
|
|
29
33
|
|
|
@@ -35,6 +39,9 @@ import { useAppSelector } from 'app/config/store';
|
|
|
35
39
|
export const Home = () => {
|
|
36
40
|
const account = useAppSelector(state => state.authentication.account);
|
|
37
41
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
42
|
+
const pageLocation = useLocation();
|
|
43
|
+
const navigate = useNavigate();
|
|
44
|
+
|
|
38
45
|
useEffect(() => {
|
|
39
46
|
const redirectURL = localStorage.getItem(REDIRECT_URL);
|
|
40
47
|
if (redirectURL) {
|
|
@@ -65,7 +72,14 @@ export const Home = () => {
|
|
|
65
72
|
<Translate contentKey="global.messages.info.authenticated.prefix">If you want to </Translate>
|
|
66
73
|
<% if (!enableTranslation) { %><span> </span><% } %>
|
|
67
74
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
68
|
-
<a
|
|
75
|
+
<a
|
|
76
|
+
className="alert-link"
|
|
77
|
+
onClick={() =>
|
|
78
|
+
navigate(getLoginUrl(), {
|
|
79
|
+
state: { from: pageLocation },
|
|
80
|
+
})
|
|
81
|
+
}
|
|
82
|
+
>
|
|
69
83
|
<Translate contentKey="global.messages.info.authenticated.link">sign in</Translate>
|
|
70
84
|
</a>
|
|
71
85
|
<%_ } else { _%>
|
package/dist/generators/react/templates/src/main/webapp/app/modules/login/login-redirect.tsx.ejs
CHANGED
|
@@ -7,7 +7,11 @@ export const LoginRedirect = () => {
|
|
|
7
7
|
|
|
8
8
|
useEffect(() => {
|
|
9
9
|
localStorage.setItem(REDIRECT_URL, pageLocation.state.from.pathname);
|
|
10
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
11
|
+
window.location.href = '/oauth2/authorization/oidc';
|
|
12
|
+
<%_ } else { _%>
|
|
10
13
|
window.location.reload();
|
|
14
|
+
<%_ } _%>
|
|
11
15
|
});
|
|
12
16
|
|
|
13
17
|
return null;
|
|
@@ -22,13 +22,15 @@ import { useAppDispatch, useAppSelector } from 'app/config/store';
|
|
|
22
22
|
import { logout } from 'app/shared/reducers/authentication';
|
|
23
23
|
|
|
24
24
|
export const Logout = () => {
|
|
25
|
-
const
|
|
25
|
+
const authentication = useAppSelector(state => state.authentication);
|
|
26
26
|
const dispatch = useAppDispatch();
|
|
27
27
|
|
|
28
28
|
useLayoutEffect(() => {
|
|
29
29
|
dispatch(logout());
|
|
30
|
-
if (logoutUrl) {
|
|
31
|
-
window.location.href = logoutUrl;
|
|
30
|
+
if (authentication.logoutUrl) {
|
|
31
|
+
window.location.href = authentication.logoutUrl;
|
|
32
|
+
} else if (!authentication.isAuthenticated) {
|
|
33
|
+
window.location.href = '/';
|
|
32
34
|
}
|
|
33
35
|
});
|
|
34
36
|
|
|
@@ -112,7 +112,7 @@ const AppRoutes = () => {
|
|
|
112
112
|
}
|
|
113
113
|
/>
|
|
114
114
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
115
|
-
<Route path="
|
|
115
|
+
<Route path="sign-in" element={<LoginRedirect />} />
|
|
116
116
|
<%_ } _%>
|
|
117
117
|
<%_ if (applicationTypeGateway && microfrontend) { _%>
|
|
118
118
|
<%_ for (const remote of microfrontends) { _%>
|
package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs
CHANGED
|
@@ -92,7 +92,7 @@ describe('private-route component', () => {
|
|
|
92
92
|
</PrivateRoute>
|
|
93
93
|
}
|
|
94
94
|
/>
|
|
95
|
-
<Route path="<% if(authenticationTypeOauth2) { %>/
|
|
95
|
+
<Route path="<% if(authenticationTypeOauth2) { %>/sign-in<% } else { %>/login<% } %>" element={<div>Login</div>} />
|
|
96
96
|
</Routes>,
|
|
97
97
|
{
|
|
98
98
|
isAuthenticated: false,
|
package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.tsx.ejs
CHANGED
|
@@ -42,7 +42,7 @@ export const PrivateRoute = ({ children, hasAnyAuthorities = [], ...rest }: IOwn
|
|
|
42
42
|
return (
|
|
43
43
|
<Navigate
|
|
44
44
|
to={{
|
|
45
|
-
pathname: '<%_ if (authenticationTypeOauth2) { _%>/
|
|
45
|
+
pathname: '<%_ if (authenticationTypeOauth2) { _%>/sign-in<%_ } else {_%>/login<%_ } _%>',
|
|
46
46
|
search: pageLocation.search,
|
|
47
47
|
}}
|
|
48
48
|
replace
|
package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.tsx.ejs
CHANGED
|
@@ -28,9 +28,6 @@ import {
|
|
|
28
28
|
} from 'reactstrap';
|
|
29
29
|
import LoadingBar from 'react-redux-loading-bar';
|
|
30
30
|
|
|
31
|
-
<%_ if (enableTranslation && enableI18nRTL) { _%>
|
|
32
|
-
import { isRTL } from 'app/config/translation';
|
|
33
|
-
<%_ } _%>
|
|
34
31
|
import { Home, Brand } from './header-components';
|
|
35
32
|
import { AdminMenu, EntitiesMenu, AccountMenu<%_ if (enableTranslation) { _%>, LocaleMenu<%_ } _%>} from '../menus';
|
|
36
33
|
<%_ if (enableTranslation) { _%>
|
|
@@ -52,9 +49,6 @@ export interface IHeaderProps {
|
|
|
52
49
|
|
|
53
50
|
const Header = (props: IHeaderProps) => {
|
|
54
51
|
const [menuOpen, setMenuOpen] = useState(false);
|
|
55
|
-
<%_ if (enableI18nRTL) { _%>
|
|
56
|
-
useEffect(() => document.querySelector('html').setAttribute('dir', isRTL(Storage.session.get('locale')) ? 'rtl' : 'ltr'));
|
|
57
|
-
<%_ } _%>
|
|
58
52
|
|
|
59
53
|
<%_ if (enableTranslation) { _%>
|
|
60
54
|
const dispatch = useAppDispatch();
|
|
@@ -63,9 +57,6 @@ const Header = (props: IHeaderProps) => {
|
|
|
63
57
|
const langKey = event.target.value;
|
|
64
58
|
Storage.session.set('locale', langKey);
|
|
65
59
|
dispatch(setLocale(langKey));
|
|
66
|
-
<%_ if (enableI18nRTL) { _%>
|
|
67
|
-
document.querySelector('html').setAttribute('dir', isRTL(langKey) ? 'rtl' : 'ltr');
|
|
68
|
-
<%_ } _%>
|
|
69
60
|
}
|
|
70
61
|
<%_ } _%>
|
|
71
62
|
|
package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs
CHANGED
|
@@ -68,9 +68,7 @@ describe('AccountMenu', () => {
|
|
|
68
68
|
it('Renders a guest AccountMenu component', () => {
|
|
69
69
|
const html = guestWrapper();
|
|
70
70
|
|
|
71
|
-
<%_ if (authenticationTypeOauth2) { _%>
|
|
72
|
-
expect(html).toContain(getLoginUrl());
|
|
73
|
-
<%_ } else { _%>
|
|
71
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
74
72
|
expect(html).toContain('/login');
|
|
75
73
|
<%_ } _%>
|
|
76
74
|
expect(html).not.toContain('/logout');
|
package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.tsx.ejs
CHANGED
|
@@ -27,6 +27,9 @@ import { Translate, translate } from 'react-jhipster';
|
|
|
27
27
|
import { getLoginUrl } from 'app/shared/util/url-utils';
|
|
28
28
|
<%_ } _%>
|
|
29
29
|
import { NavDropdown } from './menu-components';
|
|
30
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
31
|
+
import { useLocation, useNavigate } from 'react-router';
|
|
32
|
+
<%_ } _%>
|
|
30
33
|
|
|
31
34
|
|
|
32
35
|
const accountMenuItemsAuthenticated = () => (
|
|
@@ -42,18 +45,38 @@ const accountMenuItemsAuthenticated = () => (
|
|
|
42
45
|
</>
|
|
43
46
|
);
|
|
44
47
|
|
|
48
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
49
|
+
const accountMenuItems = () => {
|
|
50
|
+
const navigate = useNavigate();
|
|
51
|
+
const pageLocation = useLocation();
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<>
|
|
55
|
+
<DropdownItem
|
|
56
|
+
id="login-item"
|
|
57
|
+
tag="a"
|
|
58
|
+
data-cy="login"
|
|
59
|
+
onClick={() =>
|
|
60
|
+
navigate(getLoginUrl(), {
|
|
61
|
+
state: { from: pageLocation },
|
|
62
|
+
})
|
|
63
|
+
}
|
|
64
|
+
>
|
|
65
|
+
<FontAwesomeIcon icon="sign-in-alt" /> <Translate contentKey="global.menu.account.login">Sign in</Translate>
|
|
66
|
+
</DropdownItem>
|
|
67
|
+
</>
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
<%_ } else { _%>
|
|
45
71
|
const accountMenuItems = () => (
|
|
46
72
|
<>
|
|
47
|
-
<%_ if (!authenticationTypeOauth2) { _%>
|
|
48
73
|
<MenuItem id="login-item" icon="sign-in-alt" to="/login" data-cy="login"><Translate contentKey="global.menu.account.login">Sign in</Translate></MenuItem>
|
|
49
|
-
<%_
|
|
50
|
-
<DropdownItem id="login-item" tag="a" href={getLoginUrl()} data-cy="login"><FontAwesomeIcon icon="sign-in-alt" /> <Translate contentKey="global.menu.account.login">Sign in</Translate></DropdownItem>
|
|
51
|
-
<%_ } _%>
|
|
52
|
-
<%_ if (generateUserManagement) { _%>
|
|
74
|
+
<%_ if (generateUserManagement) { _%>
|
|
53
75
|
<MenuItem icon="user-plus" to="/account/register" data-cy="register"><Translate contentKey="global.menu.account.register">Register</Translate></MenuItem>
|
|
54
|
-
<%_ } _%>
|
|
76
|
+
<%_ } _%>
|
|
55
77
|
</>
|
|
56
78
|
);
|
|
79
|
+
<%_ } _%>
|
|
57
80
|
|
|
58
81
|
export const AccountMenu = ({ isAuthenticated = false }) => (
|
|
59
82
|
<NavDropdown icon="user" name={translate('global.menu.account.main')} id="account-menu" data-cy="accountMenu">
|
package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs
CHANGED
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
SliceCaseReducers,
|
|
26
26
|
ValidateSliceCaseReducers,
|
|
27
27
|
} from '@reduxjs/toolkit';
|
|
28
|
-
import { AxiosError } from 'axios';
|
|
28
|
+
import { AxiosError, isAxiosError } from 'axios';
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* Model for redux actions with pagination
|
|
@@ -69,7 +69,7 @@ const commonErrorProperties: Array<keyof SerializedError> = ['name', 'message',
|
|
|
69
69
|
*/
|
|
70
70
|
export const serializeAxiosError = (value: any): AxiosError | SerializedError => {
|
|
71
71
|
if (typeof value === 'object' && value !== null) {
|
|
72
|
-
if (value
|
|
72
|
+
if (isAxiosError(value)) {
|
|
73
73
|
return value;
|
|
74
74
|
} else {
|
|
75
75
|
const simpleError: SerializedError = {};
|
|
@@ -143,4 +143,3 @@ export const createEntitySlice = <T, Reducers extends SliceCaseReducers<EntitySt
|
|
|
143
143
|
},
|
|
144
144
|
});
|
|
145
145
|
};
|
|
146
|
-
|
|
@@ -21,7 +21,7 @@ export const getLoginUrl = () => {
|
|
|
21
21
|
|
|
22
22
|
// If you have configured multiple OIDC providers, then, you can update this URL to /login.
|
|
23
23
|
// It will show a Spring Security generated login page with links to configured OIDC providers.
|
|
24
|
-
return `//${location.hostname}${port}
|
|
24
|
+
return `//${location.hostname}${port}/sign-in`;
|
|
25
25
|
}
|
|
26
26
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
27
27
|
export const REDIRECT_URL = 'redirectURL';
|
|
@@ -21,12 +21,6 @@ import { GENERATOR_COMMON, GENERATOR_SPRING_BOOT } from '../generator-list.js';
|
|
|
21
21
|
import { APPLICATION_TYPE_GATEWAY, APPLICATION_TYPE_MICROSERVICE, APPLICATION_TYPE_MONOLITH } from '../../jdl/index.js';
|
|
22
22
|
const command = {
|
|
23
23
|
options: {
|
|
24
|
-
authenticationType: {
|
|
25
|
-
name: 'auth',
|
|
26
|
-
description: 'Provide authentication type for the application when skipping server side generation',
|
|
27
|
-
type: String,
|
|
28
|
-
scope: 'storage',
|
|
29
|
-
},
|
|
30
24
|
db: {
|
|
31
25
|
description: 'Provide DB name for the application when skipping server side generation',
|
|
32
26
|
type: String,
|
|
@@ -65,11 +59,6 @@ const command = {
|
|
|
65
59
|
type: String,
|
|
66
60
|
scope: 'storage',
|
|
67
61
|
},
|
|
68
|
-
reactive: {
|
|
69
|
-
description: 'Generate a reactive backend',
|
|
70
|
-
type: Boolean,
|
|
71
|
-
scope: 'storage',
|
|
72
|
-
},
|
|
73
62
|
searchEngine: {
|
|
74
63
|
description: 'Provide search engine for the application when skipping server side generation',
|
|
75
64
|
type: String,
|