generator-jhipster 8.0.0-rc.1 → 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 +71 -58
- package/dist/cli/environment-builder.mjs +14 -7
- package/dist/cli/jhipster-command.mjs +7 -3
- package/dist/cli/program.mjs +2 -2
- package/dist/generators/angular/cleanup.mjs +7 -0
- package/dist/generators/angular/files-angular.mjs +3 -4
- package/dist/generators/angular/generator.mjs +10 -22
- package/dist/generators/angular/needle-api/needle-client-angular.mjs +2 -8
- package/dist/generators/angular/resources/package.json +25 -24
- 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/package.json.ejs +4 -8
- 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 +44 -35
- 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_/service/_entityFile_.service.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.scss.ejs +1 -1
- 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 +48 -126
- 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/app/support/config.mjs +3 -3
- package/dist/generators/base/command.mjs +0 -11
- package/dist/generators/base/generator.mjs +0 -3
- package/dist/generators/base/support/config.mjs +6 -6
- package/dist/generators/base/support/jhipster7-context.mjs +3 -3
- package/dist/generators/base-application/generator.mjs +7 -8
- package/dist/generators/base-application/support/entities.mjs +2 -2
- package/dist/generators/base-application/support/enum.mjs +1 -1
- package/dist/generators/base-application/support/index.mjs +1 -0
- package/dist/generators/base-application/support/prepare-entity.mjs +14 -11
- package/dist/generators/base-application/support/prepare-field.mjs +11 -7
- package/dist/generators/base-application/support/prepare-relationship.mjs +16 -14
- 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/base-workspaces/internal/docker-prompts.mjs +13 -12
- package/dist/generators/bootstrap/command.mjs +6 -0
- package/dist/generators/bootstrap/generator.mjs +84 -45
- package/dist/generators/bootstrap/support/auto-crlf-transform.mjs +34 -21
- package/dist/generators/bootstrap/support/eslint-transform.mjs +2 -5
- package/dist/generators/bootstrap/support/java-unused-imports-transform.mjs +2 -2
- package/dist/generators/bootstrap/support/multi-step-transform/index.mjs +17 -28
- package/dist/generators/bootstrap/support/multi-step-transform/template-file-fs.mjs +12 -6
- package/dist/generators/bootstrap/support/multi-step-transform/template-file.mjs +1 -0
- package/dist/generators/bootstrap/support/prettier-support.mjs +2 -2
- package/dist/generators/bootstrap-application/generator.mjs +10 -21
- package/dist/generators/bootstrap-application-base/command.mjs +30 -0
- package/dist/generators/bootstrap-application-base/generator.mjs +36 -11
- 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/bootstrap-application-server/generator.mjs +2 -2
- 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/content/css/loading.css.ejs +1 -1
- package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
- package/dist/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs +14 -1
- package/dist/generators/common/command.mjs +2 -0
- package/dist/generators/common/files.mjs +1 -1
- package/dist/generators/common/generator.mjs +29 -7
- package/dist/generators/common/resources/package.json +4 -4
- package/dist/generators/common/templates/.lintstagedrc.cjs.ejs +21 -0
- package/dist/generators/common/templates/.prettierrc.ejs +1 -1
- package/dist/generators/common/templates/README.md.jhi.ejs +2 -0
- package/dist/generators/common/templates/sonar-project.properties.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/settings-page.cy.ts.ejs +3 -0
- 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/entity/prompts.mjs +123 -306
- 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 +11 -7
- 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/heroku/generator.mjs +318 -595
- package/dist/generators/heroku/templates/Procfile.ejs +1 -1
- package/dist/generators/heroku/templates/application-heroku.yml.ejs +0 -12
- package/dist/generators/info/generator.mjs +6 -4
- package/dist/generators/init/generator.mjs +2 -2
- package/dist/generators/java/command.mjs +6 -0
- package/dist/generators/java/entity-files.mjs +5 -1
- package/dist/generators/java/generator.mjs +15 -15
- package/dist/generators/java/support/package-info-transform.mjs +20 -6
- package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +24 -28
- package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +30 -0
- package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +3 -3
- package/dist/generators/java/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +86 -8
- package/dist/generators/java/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +85 -0
- package/dist/generators/jdl/generator.mjs +32 -28
- package/dist/generators/kubernetes/templates/ingress.yml.ejs +0 -1
- 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/command.mjs +5 -0
- package/dist/generators/languages/generator.mjs +44 -28
- 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/languages/translation-data.mjs +8 -13
- package/dist/generators/liquibase/README.md +19 -0
- package/dist/generators/liquibase/generator.mjs +7 -3
- package/dist/generators/project-name/generator.mjs +14 -19
- package/dist/generators/project-name/support/name-resolver.mjs +35 -6
- package/dist/generators/react/generator.mjs +18 -10
- package/dist/generators/react/resources/package.json +30 -29
- package/dist/generators/react/templates/package.json.ejs +4 -5
- package/dist/generators/react/templates/src/main/webapp/app/config/icon-loader.ts.ejs +35 -33
- 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 +19 -15
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +1 -1
- 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/modules/home/home.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +9 -2
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header-components.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.scss.ejs +6 -5
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +10 -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/react/templates/tsconfig.test.json.ejs +1 -1
- package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +13 -58
- 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 +48 -23
- 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 +19 -19
- package/dist/generators/server/resources/gradle/libs.versions.toml +4 -4
- package/dist/generators/server/resources/pom.xml +18 -18
- package/dist/generators/server/support/config.mjs +5 -4
- package/dist/generators/server/support/prepare-entity.mjs +9 -6
- package/dist/generators/server/support/prepare-field.mjs +20 -0
- package/dist/generators/server/support/relationship.mjs +2 -1
- package/dist/generators/server/support/templates/field-values.mjs +5 -2
- package/dist/generators/server/templates/README.md.jhi.spring-boot.ejs +0 -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/package.json.ejs +0 -5
- package/dist/generators/server/templates/pom.xml.ejs +2 -12
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/get_all_template.ejs +8 -8
- 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/dto/_dtoClass_.java.ejs +2 -2
- 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 +14 -14
- package/dist/generators/server/templates/src/main/java/_package_/config/JacksonConfiguration.java.ejs +2 -1
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +21 -3
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +6 -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 -6
- 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 +6 -7
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/UserResource.java.ejs +6 -8
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs +4 -7
- 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 +11 -11
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +4 -4
- 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 -3
- 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 +3 -37
- 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/generator.mjs +25 -16
- package/dist/generators/vue/resources/package.json +29 -28
- package/dist/generators/vue/templates/package.json.ejs +4 -5
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +10 -3
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +3 -4
- 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_.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +14 -7
- package/dist/generators/vue/templates/src/main/webapp/app/router/index.ts.ejs +8 -1
- package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +19 -34
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -0
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-option-converter.js +2 -2
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +1 -1
- package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +1 -1
- 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/application-converter.js +1 -17
- 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/applications/jhipster-application-formatter.js +17 -1
- package/dist/jdl/exporters/config.js +11 -0
- package/dist/jdl/exporters/export-utils.js +2 -13
- package/dist/jdl/exporters/jhipster-entity-exporter.js +3 -2
- package/dist/jdl/index.js +1 -0
- package/dist/jdl/jdl-importer.js +6 -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-application-configuration-factory.js +34 -2
- package/dist/jdl/models/jdl-application-configuration.js +6 -3
- package/dist/jdl/models/jdl-application-factory.js +2 -2
- package/dist/jdl/models/jdl-application.js +12 -3
- 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/jdl-ast-builder-visitor.js +63 -7
- package/dist/jdl/parsing/jdl-parser.js +52 -6
- package/dist/jdl/parsing/lexer/application-tokens.js +2 -2
- package/dist/jdl/validators/entity-validator.js +4 -2
- package/dist/jdl/validators/enum-validator.js +4 -2
- package/dist/jdl/validators/jdl-with-application-validator.js +18 -8
- package/dist/jdl/validators/jdl-without-application-validator.js +30 -29
- package/dist/jdl/validators/validator.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/config.d.mts +3 -3
- 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/prepare-entity.d.mts +6 -1
- 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/support/auto-crlf-transform.d.mts +3 -2
- package/dist/types/generators/bootstrap/support/multi-step-transform/index.d.mts +3 -20
- package/dist/types/generators/bootstrap/support/multi-step-transform/template-file-fs.d.mts +15 -9
- package/dist/types/generators/bootstrap/support/multi-step-transform/template-file.d.mts +1 -0
- 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/java/support/package-info-transform.d.mts +1 -4
- 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/generators/server/support/templates/field-values.d.mts +1 -1
- 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/exporters/config.d.ts +1 -0
- package/dist/types/jdl/index.d.ts +1 -0
- package/dist/types/jdl/jdl-importer.d.ts +1 -0
- package/dist/types/jdl/jhipster/json-entity.d.ts +2 -0
- package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -0
- package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +2 -2
- package/dist/types/jdl/models/jdl-application-configuration.d.ts +8 -6
- package/dist/types/jdl/models/jdl-application-factory.d.ts +1 -1
- package/dist/types/jdl/models/jdl-application.d.ts +8 -4
- package/dist/types/jdl/models/jdl-entity.d.ts +1 -0
- package/dist/types/jdl/models/jdl-object.d.ts +1 -1
- package/dist/types/jdl/models/jdl-relationship.d.ts +0 -18
- package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +1 -1
- package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +10 -0
- package/dist/types/jdl/parsing/jdl-parser.d.ts +3 -0
- package/dist/types/jdl/parsing/lexer/application-tokens.d.ts +1 -0
- package/dist/types/jdl/types/types.d.mts +2 -2
- package/dist/types/jdl/validators/entity-validator.d.ts +2 -2
- package/dist/types/jdl/validators/enum-validator.d.ts +2 -2
- package/dist/types/jdl/validators/validator.d.ts +4 -1
- package/package.json +41 -41
|
@@ -182,11 +182,8 @@ function askForFieldsToRemove() {
|
|
|
182
182
|
}
|
|
183
183
|
});
|
|
184
184
|
}
|
|
185
|
-
function askForRelationships() {
|
|
185
|
+
function askForRelationships(...args) {
|
|
186
186
|
const context = this.entityData;
|
|
187
|
-
if (this.options.defaults) {
|
|
188
|
-
return undefined;
|
|
189
|
-
}
|
|
190
187
|
// don't prompt if data is imported from a file
|
|
191
188
|
if (context.useConfigurationFile && context.updateEntity !== 'add') {
|
|
192
189
|
return undefined;
|
|
@@ -194,7 +191,7 @@ function askForRelationships() {
|
|
|
194
191
|
if (context.databaseType === CASSANDRA) {
|
|
195
192
|
return undefined;
|
|
196
193
|
}
|
|
197
|
-
return askForRelationship.call(this);
|
|
194
|
+
return askForRelationship.call(this, ...args);
|
|
198
195
|
}
|
|
199
196
|
function askForRelationsToRemove() {
|
|
200
197
|
const context = this.entityData;
|
|
@@ -384,22 +381,26 @@ function askForPagination() {
|
|
|
384
381
|
/**
|
|
385
382
|
* ask question for a field creation
|
|
386
383
|
*/
|
|
387
|
-
function askForField() {
|
|
384
|
+
async function askForField() {
|
|
388
385
|
const context = this.entityData;
|
|
389
386
|
this.log.log(chalk.green(`\nGenerating field #${this.entityConfig.fields.length + 1}\n`));
|
|
390
|
-
const skipServer = context.skipServer;
|
|
391
387
|
const databaseType = context.databaseType;
|
|
392
388
|
const clientFramework = context.clientFramework;
|
|
393
389
|
const possibleFiltering = databaseType === SQL && !context.reactive;
|
|
394
|
-
const
|
|
390
|
+
const fieldAddAnswer = await this.prompt([
|
|
395
391
|
{
|
|
396
392
|
type: 'confirm',
|
|
397
393
|
name: 'fieldAdd',
|
|
398
394
|
message: 'Do you want to add a field to your entity?',
|
|
399
395
|
default: true,
|
|
400
396
|
},
|
|
397
|
+
]);
|
|
398
|
+
if (!fieldAddAnswer.fieldAdd) {
|
|
399
|
+
logFieldsAndRelationships.call(this);
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
402
|
+
const answers = await this.prompt([
|
|
401
403
|
{
|
|
402
|
-
when: response => response.fieldAdd === true,
|
|
403
404
|
type: 'input',
|
|
404
405
|
name: 'fieldName',
|
|
405
406
|
validate: input => {
|
|
@@ -430,67 +431,25 @@ function askForField() {
|
|
|
430
431
|
message: 'What is the name of your field?',
|
|
431
432
|
},
|
|
432
433
|
{
|
|
433
|
-
when: response => response.fieldAdd === true && (skipServer || ['sql', 'mongodb', 'neo4j', 'couchbase'].includes(databaseType)),
|
|
434
434
|
type: 'list',
|
|
435
435
|
name: 'fieldType',
|
|
436
436
|
message: 'What is the type of your field?',
|
|
437
|
-
choices: [
|
|
438
|
-
{
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
},
|
|
442
|
-
{
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
},
|
|
446
|
-
{
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
},
|
|
450
|
-
{
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
},
|
|
454
|
-
{
|
|
455
|
-
value: DOUBLE,
|
|
456
|
-
name: 'Double',
|
|
457
|
-
},
|
|
458
|
-
{
|
|
459
|
-
value: BIG_DECIMAL,
|
|
460
|
-
name: 'BigDecimal',
|
|
461
|
-
},
|
|
462
|
-
{
|
|
463
|
-
value: LOCAL_DATE,
|
|
464
|
-
name: 'LocalDate',
|
|
465
|
-
},
|
|
466
|
-
{
|
|
467
|
-
value: INSTANT,
|
|
468
|
-
name: 'Instant',
|
|
469
|
-
},
|
|
470
|
-
{
|
|
471
|
-
value: ZONED_DATE_TIME,
|
|
472
|
-
name: 'ZonedDateTime',
|
|
473
|
-
},
|
|
474
|
-
{
|
|
475
|
-
value: DURATION,
|
|
476
|
-
name: 'Duration',
|
|
477
|
-
},
|
|
478
|
-
{
|
|
479
|
-
value: BOOLEAN,
|
|
480
|
-
name: 'Boolean',
|
|
481
|
-
},
|
|
482
|
-
{
|
|
483
|
-
value: ENUM,
|
|
484
|
-
name: 'Enumeration (Java enum type)',
|
|
485
|
-
},
|
|
486
|
-
{
|
|
487
|
-
value: UUID,
|
|
488
|
-
name: 'UUID',
|
|
489
|
-
},
|
|
490
|
-
{
|
|
491
|
-
value: BYTES,
|
|
492
|
-
name: '[BETA] Blob',
|
|
493
|
-
},
|
|
437
|
+
choices: () => [
|
|
438
|
+
{ value: STRING, name: 'String' },
|
|
439
|
+
{ value: INTEGER, name: 'Integer' },
|
|
440
|
+
{ value: LONG, name: 'Long' },
|
|
441
|
+
{ value: FLOAT, name: 'Float' },
|
|
442
|
+
{ value: DOUBLE, name: 'Double' },
|
|
443
|
+
{ value: BIG_DECIMAL, name: 'BigDecimal' },
|
|
444
|
+
{ value: LOCAL_DATE, name: 'LocalDate' },
|
|
445
|
+
{ value: INSTANT, name: 'Instant' },
|
|
446
|
+
{ value: ZONED_DATE_TIME, name: 'ZonedDateTime' },
|
|
447
|
+
{ value: DURATION, name: 'Duration' },
|
|
448
|
+
{ value: BOOLEAN, name: 'Boolean' },
|
|
449
|
+
{ value: ENUM, name: 'Enumeration (Java enum type)' },
|
|
450
|
+
{ value: UUID, name: 'UUID' },
|
|
451
|
+
{ value: UUID, name: 'UUID' },
|
|
452
|
+
...(databaseType === CASSANDRA ? [{ value: BYTE_BUFFER, name: '[BETA] Blob' }] : [{ value: BYTES, name: '[BETA] Blob' }]),
|
|
494
453
|
],
|
|
495
454
|
default: 0,
|
|
496
455
|
},
|
|
@@ -566,117 +525,26 @@ function askForField() {
|
|
|
566
525
|
},
|
|
567
526
|
},
|
|
568
527
|
{
|
|
569
|
-
when: response => response.
|
|
570
|
-
type: 'list',
|
|
571
|
-
name: 'fieldType',
|
|
572
|
-
message: 'What is the type of your field?',
|
|
573
|
-
choices: [
|
|
574
|
-
{
|
|
575
|
-
value: UUID,
|
|
576
|
-
name: 'UUID',
|
|
577
|
-
},
|
|
578
|
-
{
|
|
579
|
-
value: STRING,
|
|
580
|
-
name: 'String',
|
|
581
|
-
},
|
|
582
|
-
{
|
|
583
|
-
value: INTEGER,
|
|
584
|
-
name: 'Integer',
|
|
585
|
-
},
|
|
586
|
-
{
|
|
587
|
-
value: LONG,
|
|
588
|
-
name: 'Long',
|
|
589
|
-
},
|
|
590
|
-
{
|
|
591
|
-
value: FLOAT,
|
|
592
|
-
name: 'Float',
|
|
593
|
-
},
|
|
594
|
-
{
|
|
595
|
-
value: DOUBLE,
|
|
596
|
-
name: 'Double',
|
|
597
|
-
},
|
|
598
|
-
{
|
|
599
|
-
value: BIG_DECIMAL,
|
|
600
|
-
name: 'BigDecimal',
|
|
601
|
-
},
|
|
602
|
-
{
|
|
603
|
-
value: LOCAL_DATE,
|
|
604
|
-
name: 'LocalDate',
|
|
605
|
-
},
|
|
606
|
-
{
|
|
607
|
-
value: INSTANT,
|
|
608
|
-
name: 'Instant',
|
|
609
|
-
},
|
|
610
|
-
{
|
|
611
|
-
value: ZONED_DATE_TIME,
|
|
612
|
-
name: 'ZonedDateTime',
|
|
613
|
-
},
|
|
614
|
-
{
|
|
615
|
-
value: DURATION,
|
|
616
|
-
name: 'Duration',
|
|
617
|
-
},
|
|
618
|
-
{
|
|
619
|
-
value: ENUM,
|
|
620
|
-
name: 'Enumeration (Java enum type)',
|
|
621
|
-
},
|
|
622
|
-
{
|
|
623
|
-
value: BOOLEAN,
|
|
624
|
-
name: 'Boolean',
|
|
625
|
-
},
|
|
626
|
-
{
|
|
627
|
-
value: BYTE_BUFFER,
|
|
628
|
-
name: '[BETA] blob',
|
|
629
|
-
},
|
|
630
|
-
],
|
|
631
|
-
default: 0,
|
|
632
|
-
},
|
|
633
|
-
{
|
|
634
|
-
when: response => response.fieldAdd === true && response.fieldType === BYTES,
|
|
635
|
-
type: 'list',
|
|
636
|
-
name: 'fieldTypeBlobContent',
|
|
637
|
-
message: 'What is the content of the Blob field?',
|
|
638
|
-
choices: [
|
|
639
|
-
{
|
|
640
|
-
value: IMAGE,
|
|
641
|
-
name: 'An image',
|
|
642
|
-
},
|
|
643
|
-
{
|
|
644
|
-
value: ANY,
|
|
645
|
-
name: 'A binary file',
|
|
646
|
-
},
|
|
647
|
-
{
|
|
648
|
-
value: TEXT,
|
|
649
|
-
name: 'A CLOB (Text field)',
|
|
650
|
-
},
|
|
651
|
-
],
|
|
652
|
-
default: 0,
|
|
653
|
-
},
|
|
654
|
-
{
|
|
655
|
-
when: response => response.fieldAdd === true && response.fieldType === BYTE_BUFFER,
|
|
528
|
+
when: response => response.fieldType === BYTES || response.fieldType === BYTE_BUFFER,
|
|
656
529
|
type: 'list',
|
|
657
530
|
name: 'fieldTypeBlobContent',
|
|
658
531
|
message: 'What is the content of the Blob field?',
|
|
659
|
-
choices: [
|
|
660
|
-
{
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
},
|
|
664
|
-
{
|
|
665
|
-
value: ANY,
|
|
666
|
-
name: 'A binary file',
|
|
667
|
-
},
|
|
532
|
+
choices: answers => [
|
|
533
|
+
{ value: IMAGE, name: 'An image' },
|
|
534
|
+
{ value: ANY, name: 'A binary file' },
|
|
535
|
+
...(answers.fieldType === BYTES ? [{ value: TEXT, name: 'A CLOB (Text field)' }] : []),
|
|
668
536
|
],
|
|
669
537
|
default: 0,
|
|
670
538
|
},
|
|
671
539
|
{
|
|
672
|
-
when: response => response.
|
|
540
|
+
when: response => response.fieldType !== BYTE_BUFFER,
|
|
673
541
|
type: 'confirm',
|
|
674
542
|
name: 'fieldValidate',
|
|
675
543
|
message: 'Do you want to add validation rules to your field?',
|
|
676
544
|
default: false,
|
|
677
545
|
},
|
|
678
546
|
{
|
|
679
|
-
when: response => response.
|
|
547
|
+
when: response => response.fieldValidate === true,
|
|
680
548
|
type: 'checkbox',
|
|
681
549
|
name: 'fieldValidateRules',
|
|
682
550
|
message: 'Which validation rules do you want to add?',
|
|
@@ -719,7 +587,7 @@ function askForField() {
|
|
|
719
587
|
default: 0,
|
|
720
588
|
},
|
|
721
589
|
{
|
|
722
|
-
when: response => response.
|
|
590
|
+
when: response => response.fieldValidate === true && response.fieldValidateRules.includes('minlength'),
|
|
723
591
|
type: 'input',
|
|
724
592
|
name: 'fieldValidateRulesMinlength',
|
|
725
593
|
validate: input => (inputIsNumber(input) ? true : 'Minimum length must be a positive number'),
|
|
@@ -727,7 +595,7 @@ function askForField() {
|
|
|
727
595
|
default: 0,
|
|
728
596
|
},
|
|
729
597
|
{
|
|
730
|
-
when: response => response.
|
|
598
|
+
when: response => response.fieldValidate === true && response.fieldValidateRules.includes('maxlength'),
|
|
731
599
|
type: 'input',
|
|
732
600
|
name: 'fieldValidateRulesMaxlength',
|
|
733
601
|
validate: input => (inputIsNumber(input) ? true : 'Maximum length must be a positive number'),
|
|
@@ -735,7 +603,7 @@ function askForField() {
|
|
|
735
603
|
default: 20,
|
|
736
604
|
},
|
|
737
605
|
{
|
|
738
|
-
when: response => response.
|
|
606
|
+
when: response => response.fieldValidate === true && response.fieldValidateRules.includes('min'),
|
|
739
607
|
type: 'input',
|
|
740
608
|
name: 'fieldValidateRulesMin',
|
|
741
609
|
message: 'What is the minimum of your field?',
|
|
@@ -748,7 +616,7 @@ function askForField() {
|
|
|
748
616
|
default: 0,
|
|
749
617
|
},
|
|
750
618
|
{
|
|
751
|
-
when: response => response.
|
|
619
|
+
when: response => response.fieldValidate === true && response.fieldValidateRules.includes('max'),
|
|
752
620
|
type: 'input',
|
|
753
621
|
name: 'fieldValidateRulesMax',
|
|
754
622
|
message: 'What is the maximum of your field?',
|
|
@@ -761,8 +629,7 @@ function askForField() {
|
|
|
761
629
|
default: 100,
|
|
762
630
|
},
|
|
763
631
|
{
|
|
764
|
-
when: response => response.
|
|
765
|
-
response.fieldValidate === true &&
|
|
632
|
+
when: response => response.fieldValidate === true &&
|
|
766
633
|
response.fieldValidateRules.includes(MINBYTES) &&
|
|
767
634
|
response.fieldType === BYTES &&
|
|
768
635
|
response.fieldTypeBlobContent !== TEXT,
|
|
@@ -773,8 +640,7 @@ function askForField() {
|
|
|
773
640
|
default: 0,
|
|
774
641
|
},
|
|
775
642
|
{
|
|
776
|
-
when: response => response.
|
|
777
|
-
response.fieldValidate === true &&
|
|
643
|
+
when: response => response.fieldValidate === true &&
|
|
778
644
|
response.fieldValidateRules.includes(MAXBYTES) &&
|
|
779
645
|
response.fieldType === BYTES &&
|
|
780
646
|
response.fieldTypeBlobContent !== TEXT,
|
|
@@ -785,79 +651,64 @@ function askForField() {
|
|
|
785
651
|
default: 5000000,
|
|
786
652
|
},
|
|
787
653
|
{
|
|
788
|
-
when: response => response.
|
|
654
|
+
when: response => response.fieldValidate === true && response.fieldValidateRules.includes('pattern'),
|
|
789
655
|
type: 'input',
|
|
790
656
|
name: 'fieldValidateRulesPattern',
|
|
791
657
|
message: 'What is the regular expression pattern you want to apply on your field?',
|
|
792
658
|
default: '^[a-zA-Z0-9]*$',
|
|
793
659
|
},
|
|
794
|
-
];
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
}
|
|
817
|
-
logFieldsAndRelationships.call(this);
|
|
818
|
-
if (props.fieldAdd) {
|
|
819
|
-
return askForField.call(this);
|
|
820
|
-
}
|
|
821
|
-
return undefined;
|
|
822
|
-
});
|
|
660
|
+
]);
|
|
661
|
+
if (answers.fieldIsEnum) {
|
|
662
|
+
answers.fieldType = _.upperFirst(answers.fieldType);
|
|
663
|
+
answers.fieldValues = answers.fieldValues.toUpperCase();
|
|
664
|
+
}
|
|
665
|
+
const field = {
|
|
666
|
+
fieldName: answers.fieldName,
|
|
667
|
+
fieldType: answers.enumType || answers.fieldType,
|
|
668
|
+
fieldTypeBlobContent: answers.fieldTypeBlobContent,
|
|
669
|
+
fieldValues: answers.fieldValues,
|
|
670
|
+
fieldValidateRules: answers.fieldValidateRules,
|
|
671
|
+
fieldValidateRulesMinlength: answers.fieldValidateRulesMinlength,
|
|
672
|
+
fieldValidateRulesMaxlength: answers.fieldValidateRulesMaxlength,
|
|
673
|
+
fieldValidateRulesPattern: answers.fieldValidateRulesPattern,
|
|
674
|
+
fieldValidateRulesMin: answers.fieldValidateRulesMin,
|
|
675
|
+
fieldValidateRulesMax: answers.fieldValidateRulesMax,
|
|
676
|
+
fieldValidateRulesMinbytes: answers.fieldValidateRulesMinbytes,
|
|
677
|
+
fieldValidateRulesMaxbytes: answers.fieldValidateRulesMaxbytes,
|
|
678
|
+
};
|
|
679
|
+
this.entityConfig.fields = this.entityConfig.fields.concat(field);
|
|
680
|
+
logFieldsAndRelationships.call(this);
|
|
681
|
+
await askForField.call(this);
|
|
823
682
|
}
|
|
824
683
|
/**
|
|
825
684
|
* ask question for a relationship creation
|
|
826
685
|
*/
|
|
827
|
-
function askForRelationship() {
|
|
686
|
+
async function askForRelationship(...args) {
|
|
687
|
+
const [{ application }] = args;
|
|
828
688
|
const context = this.entityData;
|
|
829
689
|
const name = context.name;
|
|
830
690
|
this.log.log(chalk.green('\nGenerating relationships to other entities\n'));
|
|
831
|
-
const
|
|
691
|
+
const addRelationshipAnswers = await this.prompt([
|
|
832
692
|
{
|
|
833
693
|
type: 'confirm',
|
|
834
694
|
name: 'relationshipAdd',
|
|
835
695
|
message: 'Do you want to add a relationship to another entity?',
|
|
836
696
|
default: true,
|
|
837
697
|
},
|
|
698
|
+
]);
|
|
699
|
+
if (!addRelationshipAnswers.relationshipAdd) {
|
|
700
|
+
logFieldsAndRelationships.call(this);
|
|
701
|
+
this.log.log('\n');
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
const answers = await this.prompt([
|
|
838
705
|
{
|
|
839
|
-
|
|
840
|
-
type: 'input',
|
|
706
|
+
type: 'list',
|
|
841
707
|
name: 'otherEntityName',
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
return 'Your other entity name cannot contain special characters';
|
|
845
|
-
}
|
|
846
|
-
if (input === '') {
|
|
847
|
-
return 'Your other entity name cannot be empty';
|
|
848
|
-
}
|
|
849
|
-
if (isReservedTableName(input, 'JAVA')) {
|
|
850
|
-
return 'Your other entity name cannot contain a Java reserved keyword';
|
|
851
|
-
}
|
|
852
|
-
if (input.toLowerCase() === 'user' && context.applicationType === 'microservice') {
|
|
853
|
-
return "Your entity cannot have a relationship with User because it's a gateway entity";
|
|
854
|
-
}
|
|
855
|
-
return true;
|
|
856
|
-
},
|
|
857
|
-
message: 'What is the name of the other entity?',
|
|
708
|
+
message: 'What is the other entity?',
|
|
709
|
+
choices: () => [...this.getExistingEntityNames(), ...(application.generateBuiltInUserEntity ? ['User'] : [])],
|
|
858
710
|
},
|
|
859
711
|
{
|
|
860
|
-
when: response => response.relationshipAdd === true,
|
|
861
712
|
type: 'input',
|
|
862
713
|
name: 'relationshipName',
|
|
863
714
|
validate: input => {
|
|
@@ -882,83 +733,59 @@ function askForRelationship() {
|
|
|
882
733
|
default: response => _.lowerFirst(response.otherEntityName),
|
|
883
734
|
},
|
|
884
735
|
{
|
|
885
|
-
when: response => response.relationshipAdd === true,
|
|
886
736
|
type: 'list',
|
|
887
737
|
name: 'relationshipType',
|
|
888
738
|
message: 'What is the type of the relationship?',
|
|
889
|
-
choices: response =>
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
{
|
|
896
|
-
value: 'many-to-many',
|
|
897
|
-
name: 'many-to-many',
|
|
898
|
-
},
|
|
899
|
-
{
|
|
900
|
-
value: 'one-to-one',
|
|
901
|
-
name: 'one-to-one',
|
|
902
|
-
},
|
|
903
|
-
];
|
|
904
|
-
if (!this.isBuiltInUser(response.otherEntityName)) {
|
|
905
|
-
opts.unshift({
|
|
906
|
-
value: 'one-to-many',
|
|
907
|
-
name: 'one-to-many',
|
|
908
|
-
});
|
|
909
|
-
}
|
|
910
|
-
return opts;
|
|
911
|
-
},
|
|
739
|
+
choices: response => [
|
|
740
|
+
'many-to-one',
|
|
741
|
+
'many-to-many',
|
|
742
|
+
'one-to-one',
|
|
743
|
+
...(this.isBuiltInUser(response.otherEntityName) ? [] : ['one-to-many']),
|
|
744
|
+
],
|
|
912
745
|
default: 0,
|
|
913
746
|
},
|
|
914
747
|
{
|
|
915
|
-
when: response =>
|
|
916
|
-
response.otherEntityName.toLowerCase() !== 'user' &&
|
|
917
|
-
(response.relationshipType === 'many-to-many' || response.relationshipType === 'one-to-one'),
|
|
918
|
-
type: 'confirm',
|
|
919
|
-
name: 'ownerSide',
|
|
920
|
-
message: 'Is this entity the owner of the relationship?',
|
|
921
|
-
default: false,
|
|
922
|
-
},
|
|
923
|
-
{
|
|
924
|
-
when: response => context.databaseType === SQL &&
|
|
925
|
-
response.relationshipAdd === true &&
|
|
926
|
-
response.relationshipType === 'one-to-one' &&
|
|
927
|
-
(response.ownerSide === true || response.otherEntityName.toLowerCase() === 'user'),
|
|
748
|
+
when: response => application.databaseType === SQL && response.relationshipType === 'one-to-one',
|
|
928
749
|
type: 'confirm',
|
|
929
750
|
name: 'id',
|
|
930
751
|
message: 'Do you want to use JPA Derived Identifier - @MapsId?',
|
|
931
752
|
default: false,
|
|
932
753
|
},
|
|
933
754
|
{
|
|
934
|
-
when:
|
|
935
|
-
(
|
|
936
|
-
|
|
937
|
-
|
|
755
|
+
when: answers => {
|
|
756
|
+
if (this.isBuiltInUser(answers.otherEntityName)) {
|
|
757
|
+
answers.bidirectional = false;
|
|
758
|
+
return false;
|
|
759
|
+
}
|
|
760
|
+
if (!application.databaseTypeNeo4j && answers.relationshipType !== 'many-to-one') {
|
|
761
|
+
// Relationships requires bidirectional.
|
|
762
|
+
answers.bidirectional = true;
|
|
763
|
+
return false;
|
|
764
|
+
}
|
|
765
|
+
return true;
|
|
766
|
+
},
|
|
767
|
+
type: 'input',
|
|
768
|
+
name: 'bidirectional',
|
|
769
|
+
message: 'Do you want to generate a bidirectional relationship',
|
|
770
|
+
default: true,
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
when: response => response.bidirectional,
|
|
938
774
|
type: 'input',
|
|
939
775
|
name: 'otherEntityRelationshipName',
|
|
940
776
|
message: 'What is the name of this relationship in the other entity?',
|
|
941
777
|
default: () => _.lowerFirst(name),
|
|
942
778
|
},
|
|
943
779
|
{
|
|
944
|
-
when: response => response.relationshipAdd === true &&
|
|
945
|
-
response.otherEntityName.toLowerCase() !== 'user' &&
|
|
946
|
-
(response.relationshipType === 'many-to-one' ||
|
|
947
|
-
(response.relationshipType === 'many-to-many' && response.ownerSide === true) ||
|
|
948
|
-
(response.relationshipType === 'one-to-one' && response.ownerSide === true)),
|
|
949
780
|
type: 'input',
|
|
950
781
|
name: 'otherEntityField',
|
|
951
782
|
message: response => `When you display this relationship on client-side, which field from '${response.otherEntityName}' do you want to use? This field will be displayed as a String, so it cannot be a Blob`,
|
|
952
|
-
default: 'id',
|
|
783
|
+
default: answers => (answers.otherEntityName === 'User' ? 'login' : 'id'),
|
|
953
784
|
},
|
|
954
785
|
{
|
|
955
|
-
when: response => response.
|
|
956
|
-
response.
|
|
957
|
-
|
|
958
|
-
(response.relationshipType === 'many-to-many' &&
|
|
959
|
-
(response.ownerSide === true || response.otherEntityName.toLowerCase() === 'user')) ||
|
|
960
|
-
(response.relationshipType === 'one-to-one' &&
|
|
961
|
-
(response.ownerSide === true || response.otherEntityName.toLowerCase() === 'user'))),
|
|
786
|
+
when: response => (response.otherEntityName.toLowerCase() !== context.name.toLowerCase() && response.relationshipType === 'many-to-one') ||
|
|
787
|
+
response.relationshipType === 'many-to-many' ||
|
|
788
|
+
response.relationshipType === 'one-to-one',
|
|
962
789
|
type: 'confirm',
|
|
963
790
|
name: 'relationshipValidate',
|
|
964
791
|
message: 'Do you want to add any validation rules to this relationship?',
|
|
@@ -977,33 +804,23 @@ function askForRelationship() {
|
|
|
977
804
|
],
|
|
978
805
|
default: 0,
|
|
979
806
|
},
|
|
980
|
-
];
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
}
|
|
998
|
-
this.entityConfig.relationships = this.entityConfig.relationships.concat(relationship);
|
|
999
|
-
}
|
|
1000
|
-
logFieldsAndRelationships.call(this);
|
|
1001
|
-
if (props.relationshipAdd) {
|
|
1002
|
-
return askForRelationship.call(this);
|
|
1003
|
-
}
|
|
1004
|
-
this.log.log('\n');
|
|
1005
|
-
return undefined;
|
|
1006
|
-
});
|
|
807
|
+
]);
|
|
808
|
+
const relationship = {
|
|
809
|
+
relationshipSide: 'left',
|
|
810
|
+
relationshipName: answers.relationshipName,
|
|
811
|
+
otherEntityName: _.lowerFirst(answers.otherEntityName),
|
|
812
|
+
relationshipType: answers.relationshipType,
|
|
813
|
+
relationshipValidateRules: answers.relationshipValidateRules,
|
|
814
|
+
otherEntityField: answers.otherEntityField,
|
|
815
|
+
ownerSide: answers.ownerSide,
|
|
816
|
+
id: answers.id,
|
|
817
|
+
otherEntityRelationshipName: answers.otherEntityRelationshipName,
|
|
818
|
+
};
|
|
819
|
+
if (this.isBuiltInUser(answers.otherEntityName)) {
|
|
820
|
+
relationship.otherEntityRelationshipName = _.lowerFirst(name);
|
|
821
|
+
}
|
|
822
|
+
this.entityConfig.relationships = this.entityConfig.relationships.concat(relationship);
|
|
823
|
+
await askForRelationship.call(this, ...args);
|
|
1007
824
|
}
|
|
1008
825
|
/**
|
|
1009
826
|
* Show the entity and it's fields and relationships in console
|
|
@@ -1060,7 +877,7 @@ function logFieldsAndRelationships() {
|
|
|
1060
877
|
if (relationship.relationshipValidateRules && relationship.relationshipValidateRules.includes(REQUIRED)) {
|
|
1061
878
|
validationDetails.push(REQUIRED);
|
|
1062
879
|
}
|
|
1063
|
-
this.log.
|
|
880
|
+
this.log.log(`${chalk.red(relationship.relationshipName)} ${chalk.white(`(${_.upperFirst(relationship.otherEntityName)})`)} ${chalk.cyan(relationship.relationshipType)} ${chalk.cyan(validationDetails.join(' '))}`);
|
|
1064
881
|
});
|
|
1065
882
|
this.log.log();
|
|
1066
883
|
}
|
|
@@ -51,7 +51,7 @@ export default class extends BaseGenerator {
|
|
|
51
51
|
}
|
|
52
52
|
catch (error) {
|
|
53
53
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
-
throw new Error(`An error occurred while exporting to JDL: ${error.message}\n${error}
|
|
54
|
+
throw new Error(`An error occurred while exporting to JDL: ${error.message}\n${error}`, { cause: error });
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes server files that where generated in previous JHipster versions and therefore
|
|
3
|
+
* need to be removed.
|
|
4
|
+
*/
|
|
5
|
+
export default function cleanupTask({ application }) {
|
|
6
|
+
if (this.isJhipsterVersionLessThan('8.0.1')) {
|
|
7
|
+
if (application.authenticationTypeOauth2) {
|
|
8
|
+
this.removeFile(`${application.javaPackageSrcDir}security/oauth2/AuthorizationHeaderUtil.java`);
|
|
9
|
+
this.removeFile(`${application.javaPackageTestDir}security/oauth2/AuthorizationHeaderUtilTest.java`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { SERVER_MAIN_SRC_DIR, SERVER_TEST_SRC_DIR } from '../generator-constants.mjs';
|
|
2
|
+
import { moveToJavaPackageSrcDir, moveToJavaPackageTestDir } from '../java/support/index.mjs';
|
|
3
|
+
export const feignFiles = {
|
|
4
|
+
microserviceFeignFiles: [
|
|
5
|
+
{
|
|
6
|
+
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
7
|
+
renameTo: moveToJavaPackageSrcDir,
|
|
8
|
+
templates: ['config/FeignConfiguration.java'],
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
condition: generator => generator.authenticationTypeOauth2,
|
|
12
|
+
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
13
|
+
renameTo: moveToJavaPackageSrcDir,
|
|
14
|
+
templates: [
|
|
15
|
+
'client/AuthorizationHeaderUtil.java',
|
|
16
|
+
'client/AuthorizedFeignClient.java',
|
|
17
|
+
'client/OAuth2InterceptedFeignConfiguration.java',
|
|
18
|
+
'client/TokenRelayRequestInterceptor.java',
|
|
19
|
+
'client/OAuthIdpTokenResponseDTO.java',
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
condition: generator => generator.authenticationTypeJwt,
|
|
24
|
+
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
25
|
+
renameTo: moveToJavaPackageSrcDir,
|
|
26
|
+
templates: ['client/UserFeignClientInterceptor_jwt.java'],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
condition: generator => generator.authenticationTypeOauth2,
|
|
30
|
+
path: `${SERVER_TEST_SRC_DIR}_package_/`,
|
|
31
|
+
renameTo: moveToJavaPackageTestDir,
|
|
32
|
+
templates: ['client/AuthorizationHeaderUtilTest.java'],
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
};
|