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
|
@@ -31,6 +31,9 @@ import { createImporterFromContent } from '../../jdl/jdl-importer.js';
|
|
|
31
31
|
import { GENERATOR_JHIPSTER, JHIPSTER_CONFIG_DIR } from '../generator-constants.mjs';
|
|
32
32
|
import statistics from '../statistics.mjs';
|
|
33
33
|
import { addApplicationIndex, allNewApplications, customizeForMicroservices } from './internal/index.mjs';
|
|
34
|
+
import { mergeYoRcContent } from '../../jdl/index.js';
|
|
35
|
+
import { normalizeBlueprintName } from '../base/internal/blueprint.mjs';
|
|
36
|
+
import { updateApplicationEntitiesTransform } from '../base-application/support/update-application-entities-transform.mjs';
|
|
34
37
|
const { upperFirst } = _;
|
|
35
38
|
/**
|
|
36
39
|
* Add jdl extension to the file
|
|
@@ -87,8 +90,11 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
87
90
|
get [BaseGenerator.INITIALIZING]() {
|
|
88
91
|
return this.delegateTasksToBlueprint(() => this.initializing);
|
|
89
92
|
}
|
|
90
|
-
get
|
|
91
|
-
return this.
|
|
93
|
+
get configuring() {
|
|
94
|
+
return this.asConfiguringTaskGroup({
|
|
95
|
+
insight() {
|
|
96
|
+
statistics.sendSubGenEvent('generator', 'import-jdl');
|
|
97
|
+
},
|
|
92
98
|
async downloadJdlFiles() {
|
|
93
99
|
if (this.jdlFiles) {
|
|
94
100
|
this.jdlFiles = await Promise.all(this.jdlFiles.map(toJdlFile).map(async (filename) => {
|
|
@@ -114,16 +120,6 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
114
120
|
this.jdlContents.push(this.readDestination(jdlFile)?.toString() ?? '');
|
|
115
121
|
}
|
|
116
122
|
},
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
get [BaseGenerator.LOADING]() {
|
|
120
|
-
return this.delegateTasksToBlueprint(() => this.loading);
|
|
121
|
-
}
|
|
122
|
-
get default() {
|
|
123
|
-
return this.asDefaultTaskGroup({
|
|
124
|
-
insight() {
|
|
125
|
-
statistics.sendSubGenEvent('generator', 'import-jdl');
|
|
126
|
-
},
|
|
127
123
|
async parseJDL() {
|
|
128
124
|
const configuration = {
|
|
129
125
|
applicationName: this.options.baseName ?? (this.existingProject ? this.jhipsterConfig.baseName : undefined),
|
|
@@ -145,6 +141,14 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
145
141
|
...applicationsWithEntities.filter((app) => app.config.applicationType !== 'gateway'),
|
|
146
142
|
];
|
|
147
143
|
},
|
|
144
|
+
configure() {
|
|
145
|
+
const nrApplications = this.applications.length;
|
|
146
|
+
const allNew = allNewApplications(this.applications);
|
|
147
|
+
const interactiveFallback = !allNew;
|
|
148
|
+
this.interactive = this.interactive ?? interactiveFallback;
|
|
149
|
+
this.force = this.options.force ?? (nrApplications > 0 && allNew) ? true : undefined;
|
|
150
|
+
this.reproducible = allNew;
|
|
151
|
+
},
|
|
148
152
|
customizeApplication() {
|
|
149
153
|
for (const app of this.applications) {
|
|
150
154
|
app.config.entities = app.entities.map(entity => entity.name);
|
|
@@ -160,17 +164,10 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
160
164
|
addApplicationIndex(this.applications);
|
|
161
165
|
customizeForMicroservices(this.exportedApplicationsWithEntities);
|
|
162
166
|
},
|
|
163
|
-
|
|
164
|
-
const nrApplications = this.applications.length;
|
|
165
|
-
const allNew = allNewApplications(this.applications);
|
|
166
|
-
const interactiveFallback = !allNew;
|
|
167
|
-
this.interactive = this.interactive ?? interactiveFallback;
|
|
168
|
-
this.force = this.options.force ?? (nrApplications > 0 && allNew) ? true : undefined;
|
|
169
|
-
this.reproducible = allNew;
|
|
170
|
-
},
|
|
171
|
-
generateJson() {
|
|
167
|
+
async generateJson() {
|
|
172
168
|
if (this.applications.length === 0) {
|
|
173
169
|
this.writeConfig({ entities: this.exportedEntities });
|
|
170
|
+
await this.env.sharedFs.pipeline({ refresh: true }, updateApplicationEntitiesTransform({ destinationPath: this.destinationPath(), throwOnMissingConfig: false }));
|
|
174
171
|
}
|
|
175
172
|
else {
|
|
176
173
|
this.writeConfig(...this.applications.map(app => (this.ignoreApplication ? { ...app, config: undefined } : app)));
|
|
@@ -217,8 +214,8 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
217
214
|
},
|
|
218
215
|
});
|
|
219
216
|
}
|
|
220
|
-
get [BaseGenerator.
|
|
221
|
-
return this.delegateTasksToBlueprint(() => this.
|
|
217
|
+
get [BaseGenerator.CONFIGURING]() {
|
|
218
|
+
return this.delegateTasksToBlueprint(() => this.configuring);
|
|
222
219
|
}
|
|
223
220
|
get end() {
|
|
224
221
|
return this.asEndTaskGroup({
|
|
@@ -270,16 +267,23 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
270
267
|
}
|
|
271
268
|
writeConfig(...applications) {
|
|
272
269
|
for (const application of applications) {
|
|
273
|
-
const { folder = '',
|
|
270
|
+
const { folder = '', entities = [], sharedFs } = application;
|
|
271
|
+
let { config, namespaceConfigs } = application;
|
|
274
272
|
const appPath = folder ? `${folder}/` : folder;
|
|
275
273
|
const fs = sharedFs ? createMemFsEditor(sharedFs) : this.fs;
|
|
276
274
|
if (config) {
|
|
277
275
|
const configFile = this.destinationPath(`${appPath}.yo-rc.json`);
|
|
278
276
|
const oldConfig = fs.readJSON(configFile, {});
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
277
|
+
if (Array.isArray(config.blueprints)) {
|
|
278
|
+
config = {
|
|
279
|
+
...config,
|
|
280
|
+
blueprints: config.blueprints.map(({ name, ...remaining }) => ({ ...remaining, name: normalizeBlueprintName(name) })),
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
if (namespaceConfigs) {
|
|
284
|
+
namespaceConfigs = Object.fromEntries(Object.entries(namespaceConfigs).map(([ns, config]) => [normalizeBlueprintName(ns), config]));
|
|
285
|
+
}
|
|
286
|
+
fs.writeJSON(configFile, mergeYoRcContent(oldConfig, { ...namespaceConfigs, [GENERATOR_JHIPSTER]: config }));
|
|
283
287
|
}
|
|
284
288
|
for (const entity of entities) {
|
|
285
289
|
const configFile = this.destinationPath(`${appPath}${JHIPSTER_CONFIG_DIR}/${upperFirst(entity.name)}.json`);
|
|
@@ -24,7 +24,6 @@ metadata:
|
|
|
24
24
|
<%_ if (useKeycloak && ingressTypeGke) { _%>
|
|
25
25
|
annotations:
|
|
26
26
|
kubernetes.io/ingress.allow-http: "true"
|
|
27
|
-
kubernetes.io/ingress.class: gce
|
|
28
27
|
kubernetes.io/ingress.global-static-ip-name: <%= app.baseName.toLowerCase()%>-ip
|
|
29
28
|
cert-manager.io/issuer: letsencrypt-staging
|
|
30
29
|
acme.cert-manager.io/http01-edit-in-place: "true"
|
|
@@ -469,6 +469,7 @@ data:
|
|
|
469
469
|
"FreeOTP",
|
|
470
470
|
"Google Authenticator"
|
|
471
471
|
],
|
|
472
|
+
"localizationTexts": {},
|
|
472
473
|
"webAuthnPolicyRpEntityName": "keycloak",
|
|
473
474
|
"webAuthnPolicySignatureAlgorithms": [
|
|
474
475
|
"ES256"
|
|
@@ -481,6 +482,7 @@ data:
|
|
|
481
482
|
"webAuthnPolicyCreateTimeout": 0,
|
|
482
483
|
"webAuthnPolicyAvoidSameAuthenticatorRegister": false,
|
|
483
484
|
"webAuthnPolicyAcceptableAaguids": [],
|
|
485
|
+
"webAuthnPolicyExtraOrigins": [],
|
|
484
486
|
"webAuthnPolicyPasswordlessRpEntityName": "keycloak",
|
|
485
487
|
"webAuthnPolicyPasswordlessSignatureAlgorithms": [
|
|
486
488
|
"ES256"
|
|
@@ -493,6 +495,7 @@ data:
|
|
|
493
495
|
"webAuthnPolicyPasswordlessCreateTimeout": 0,
|
|
494
496
|
"webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": false,
|
|
495
497
|
"webAuthnPolicyPasswordlessAcceptableAaguids": [],
|
|
498
|
+
"webAuthnPolicyPasswordlessExtraOrigins": [],
|
|
496
499
|
"scopeMappings": [
|
|
497
500
|
{
|
|
498
501
|
"clientScope": "offline_access",
|
|
@@ -2499,7 +2502,7 @@ data:
|
|
|
2499
2502
|
"cibaInterval": "5",
|
|
2500
2503
|
"frontendUrl": ""
|
|
2501
2504
|
},
|
|
2502
|
-
"keycloakVersion": "
|
|
2505
|
+
"keycloakVersion": "23.0.1",
|
|
2503
2506
|
"userManagedAccessAllowed": false,
|
|
2504
2507
|
"clientProfiles": {
|
|
2505
2508
|
"profiles": []
|
|
@@ -34,6 +34,7 @@ import { updateLanguagesTask as updateLanguagesInJava } from '../server/support/
|
|
|
34
34
|
import { SERVER_MAIN_RES_DIR, SERVER_TEST_RES_DIR } from '../generator-constants.mjs';
|
|
35
35
|
import command from './command.mjs';
|
|
36
36
|
import { QUEUES } from '../base-application/priorities.mjs';
|
|
37
|
+
import { PRIORITY_NAMES } from '../base/priorities.mjs';
|
|
37
38
|
const { startCase } = _;
|
|
38
39
|
/**
|
|
39
40
|
* This is the base class for a generator that generates entities.
|
|
@@ -53,6 +54,7 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
53
54
|
composedBlueprints;
|
|
54
55
|
languageCommand;
|
|
55
56
|
writeJavaLanguageFiles;
|
|
57
|
+
regenerateLanguages;
|
|
56
58
|
constructor(args, options, features) {
|
|
57
59
|
super(args, options, features);
|
|
58
60
|
this.languageCommand = this.options.commandName === 'languages';
|
|
@@ -67,6 +69,14 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
67
69
|
if (!this.delegateToBlueprint) {
|
|
68
70
|
await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
|
|
69
71
|
}
|
|
72
|
+
if (!this.jhipsterConfigWithDefaults.skipClient &&
|
|
73
|
+
this.jhipsterConfigWithDefaults.clientFramework !== 'no' &&
|
|
74
|
+
(!this.jhipsterConfig.enableTranslation || this.jhipsterConfigWithDefaults.clientFramework === 'angular')) {
|
|
75
|
+
// We must write languages files for translation process for entities only generation.
|
|
76
|
+
// Angular frontend uses translation files even if enableTranslation is enabled.
|
|
77
|
+
// As side effect, with angular frontends, translation files will be written for nativeLanguage for entity only generation.
|
|
78
|
+
this.setFeatures({ disableSkipPriorities: true });
|
|
79
|
+
}
|
|
70
80
|
}
|
|
71
81
|
// Public API method used by the getter and also by Blueprints
|
|
72
82
|
get initializing() {
|
|
@@ -143,27 +153,24 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
143
153
|
}
|
|
144
154
|
},
|
|
145
155
|
defaults() {
|
|
146
|
-
const { nativeLanguage,
|
|
156
|
+
const { nativeLanguage, enableTranslation } = this.jhipsterConfigWithDefaults;
|
|
157
|
+
const isLanguageConfigured = Boolean(this.jhipsterConfig.nativeLanguage);
|
|
158
|
+
// Prompts detects current language. Save default native language for next execution.
|
|
159
|
+
this.config.defaults({ nativeLanguage });
|
|
147
160
|
if (!enableTranslation) {
|
|
148
|
-
if (!this.jhipsterConfig.nativeLanguage) {
|
|
149
|
-
this.jhipsterConfig.nativeLanguage = nativeLanguage;
|
|
150
|
-
}
|
|
151
161
|
return;
|
|
152
162
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
this.jhipsterConfig.nativeLanguage = nativeLanguage;
|
|
158
|
-
}
|
|
159
|
-
if (!this.jhipsterConfig.languages) {
|
|
160
|
-
this.jhipsterConfig.languages = [];
|
|
163
|
+
this.config.defaults({ languages: [] });
|
|
164
|
+
if (!isLanguageConfigured && this.languagesToApply.length === 0) {
|
|
165
|
+
// If languages is not configured, apply defaults.
|
|
166
|
+
this.languagesToApply = this.jhipsterConfigWithDefaults.languages;
|
|
161
167
|
}
|
|
162
168
|
if (this.jhipsterConfig.languages.length === 0 || this.jhipsterConfig.languages[0] !== this.jhipsterConfig.nativeLanguage) {
|
|
163
|
-
|
|
169
|
+
// Set native language as first language.
|
|
170
|
+
this.jhipsterConfig.languages = [...new Set([nativeLanguage, ...this.jhipsterConfig.languages])];
|
|
164
171
|
}
|
|
165
172
|
if (this.languagesToApply && this.languagesToApply.length > 0) {
|
|
166
|
-
// Save new languages
|
|
173
|
+
// Save new languages.
|
|
167
174
|
this.jhipsterConfig.languages = [...new Set([...this.jhipsterConfig.languages, ...this.languagesToApply])];
|
|
168
175
|
}
|
|
169
176
|
},
|
|
@@ -177,7 +184,7 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
177
184
|
return this.asPreparingTaskGroup({
|
|
178
185
|
prepareForTemplates({ application, source }) {
|
|
179
186
|
if (application.enableTranslation) {
|
|
180
|
-
if (!this.languageCommand) {
|
|
187
|
+
if (!this.languageCommand || this.regenerateLanguages) {
|
|
181
188
|
this.languagesToApply = application.languages;
|
|
182
189
|
}
|
|
183
190
|
else {
|
|
@@ -204,17 +211,21 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
204
211
|
get default() {
|
|
205
212
|
return this.asDefaultTaskGroup({
|
|
206
213
|
async loadNativeLanguage({ application, control }) {
|
|
214
|
+
if (application.skipClient)
|
|
215
|
+
return;
|
|
207
216
|
control.translations = control.translations ?? {};
|
|
208
217
|
this.translationData = new TranslationData({ generator: this, translations: control.translations });
|
|
209
218
|
const { clientSrcDir, enableTranslation, nativeLanguage } = application;
|
|
210
219
|
const fallbackLanguage = 'en';
|
|
211
220
|
this.queueLoadLanguages({ clientSrcDir, enableTranslation, nativeLanguage, fallbackLanguage });
|
|
212
221
|
const filter = createTranslationsFilter({ clientSrcDir, nativeLanguage, fallbackLanguage });
|
|
213
|
-
|
|
222
|
+
const listener = filePath => {
|
|
214
223
|
if (filter(filePath)) {
|
|
224
|
+
this.env.sharedFs.removeListener('change', listener);
|
|
215
225
|
this.queueLoadLanguages({ clientSrcDir, enableTranslation, nativeLanguage, fallbackLanguage });
|
|
216
226
|
}
|
|
217
|
-
}
|
|
227
|
+
};
|
|
228
|
+
this.env.sharedFs.on('change', listener);
|
|
218
229
|
control.getWebappTranslation = (...args) => this.translationData.getClientTranslation(...args);
|
|
219
230
|
},
|
|
220
231
|
insight() {
|
|
@@ -243,7 +254,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
243
254
|
async translateFile({ application }) {
|
|
244
255
|
if (!application.enableTranslation ||
|
|
245
256
|
application.skipServer ||
|
|
246
|
-
(!application.backendTypeSpringBoot && !this.writeJavaLanguageFiles)
|
|
257
|
+
(!application.backendTypeSpringBoot && !this.writeJavaLanguageFiles) ||
|
|
258
|
+
this.options.skipPriorities?.includes?.(PRIORITY_NAMES.POST_WRITING))
|
|
247
259
|
return;
|
|
248
260
|
await Promise.all(this.languagesToApply.map(async (lang) => {
|
|
249
261
|
const language = findLanguageForTag(lang);
|
|
@@ -291,6 +303,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
291
303
|
get postWriting() {
|
|
292
304
|
return this.asPostWritingTaskGroup({
|
|
293
305
|
write({ application, control }) {
|
|
306
|
+
if (this.options.skipPriorities?.includes?.(PRIORITY_NAMES.POST_WRITING))
|
|
307
|
+
return;
|
|
294
308
|
if (application.enableTranslation && !application.skipClient) {
|
|
295
309
|
if (application.clientFrameworkAngular) {
|
|
296
310
|
updateLanguagesInAngularTask.call(this, { application, control });
|
|
@@ -305,7 +319,7 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
305
319
|
if (application.enableTranslation &&
|
|
306
320
|
application.generateUserManagement &&
|
|
307
321
|
!application.skipServer &&
|
|
308
|
-
|
|
322
|
+
application.backendTypeSpringBoot) {
|
|
309
323
|
updateLanguagesInJava.call(this, { application, control });
|
|
310
324
|
}
|
|
311
325
|
},
|
|
@@ -317,6 +331,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
317
331
|
get postWritingEntities() {
|
|
318
332
|
return this.asPostWritingEntitiesTaskGroup({
|
|
319
333
|
addEntities({ application, entities, source }) {
|
|
334
|
+
if (application.skipClient)
|
|
335
|
+
return;
|
|
320
336
|
const languagesToApply = application.enableTranslation ? this.languagesToApply : [...new Set([application.nativeLanguage, 'en'])];
|
|
321
337
|
for (const entity of entities.filter(entity => !entity.skipClient && !entity.builtIn)) {
|
|
322
338
|
for (const language of languagesToApply) {
|
|
@@ -346,16 +362,16 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
346
362
|
this.queueTask({
|
|
347
363
|
method: async () => {
|
|
348
364
|
const filter = createTranslationsFileFilter({ clientSrcDir, nativeLanguage, fallbackLanguage });
|
|
349
|
-
await this.
|
|
365
|
+
await this.pipeline({
|
|
350
366
|
name: 'loading translations',
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
}
|
|
367
|
+
filter: file => file.path.startsWith(this.destinationPath()) && filter(file),
|
|
368
|
+
refresh: true,
|
|
369
|
+
}, this.translationData.loadFromStreamTransform({
|
|
370
|
+
enableTranslation,
|
|
371
|
+
clientSrcDir,
|
|
372
|
+
nativeLanguage,
|
|
373
|
+
fallbackLanguage,
|
|
374
|
+
}));
|
|
359
375
|
},
|
|
360
376
|
taskName: 'loadingTranslations',
|
|
361
377
|
queueName: QUEUES.LOADING_TRANSLATIONS_QUEUE,
|
|
@@ -55,7 +55,9 @@ export async function askForLanguages({ control }) {
|
|
|
55
55
|
choices: () => {
|
|
56
56
|
const languageOptions = this.supportedLanguages;
|
|
57
57
|
const nativeLanguage = this.jhipsterConfigWithDefaults.nativeLanguage;
|
|
58
|
-
|
|
58
|
+
const choices = languagesAsChoices(languageOptions.filter(l => l.languageTag !== nativeLanguage));
|
|
59
|
+
const defaults = this.jhipsterConfigWithDefaults.languages ?? [];
|
|
60
|
+
return [...choices.filter(({ value }) => defaults.includes(value)), ...choices.filter(({ value }) => !defaults.includes(value))];
|
|
59
61
|
},
|
|
60
62
|
default: () => this.jhipsterConfigWithDefaults.languages,
|
|
61
63
|
},
|
|
@@ -63,7 +63,7 @@ export const replaceTranslationKeysWithText = (getWebappTranslation, body, regex
|
|
|
63
63
|
}
|
|
64
64
|
else if (escapeHtml) {
|
|
65
65
|
// Escape specific chars
|
|
66
|
-
replacement = replacement.replace(/'/g, ''').replace(/"/g, '"');
|
|
66
|
+
replacement = replacement.replace(/'/g, ''').replace(/"/g, '"').replace(/@/g, '@');
|
|
67
67
|
}
|
|
68
68
|
else if (stringify) {
|
|
69
69
|
replacement = JSON.stringify(replacement);
|
|
@@ -18,9 +18,8 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { inspect } from 'node:util';
|
|
20
20
|
import * as _ from 'lodash-es';
|
|
21
|
-
import {
|
|
21
|
+
import { transform } from '@yeoman/transform';
|
|
22
22
|
import { Minimatch } from 'minimatch';
|
|
23
|
-
import { clearFileState } from 'mem-fs-editor/state';
|
|
24
23
|
const { get } = _;
|
|
25
24
|
export const createTranslationsFilter = ({ clientSrcDir, nativeLanguage, fallbackLanguage }) => {
|
|
26
25
|
const pattern = !fallbackLanguage || nativeLanguage === fallbackLanguage
|
|
@@ -42,22 +41,18 @@ export default class TranslationData {
|
|
|
42
41
|
this.generator = generator;
|
|
43
42
|
this.translations = translations;
|
|
44
43
|
}
|
|
45
|
-
loadFromStreamTransform({ clientSrcDir, nativeLanguage, fallbackLanguage = 'en' }) {
|
|
44
|
+
loadFromStreamTransform({ enableTranslation, clientSrcDir, nativeLanguage, fallbackLanguage = 'en' }) {
|
|
46
45
|
const filter = createTranslationsFileFilter({ clientSrcDir, nativeLanguage, fallbackLanguage });
|
|
47
46
|
const minimatchNative = new Minimatch(`**/${clientSrcDir}i18n/${nativeLanguage}/*.json`);
|
|
48
|
-
return
|
|
49
|
-
if (filter(file)) {
|
|
47
|
+
return transform(file => {
|
|
48
|
+
if (filter(file) && file.contents) {
|
|
50
49
|
const contents = JSON.parse(file.contents.toString());
|
|
51
50
|
this.mergeTranslation(contents, !minimatchNative.match(file.path));
|
|
51
|
+
if (!enableTranslation) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
52
54
|
}
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
clearTranslationsStatusTransform({ clientSrcDir, nativeLanguage, fallbackLanguage = 'en' }) {
|
|
56
|
-
const filter = createTranslationsFileFilter({ clientSrcDir, nativeLanguage, fallbackLanguage });
|
|
57
|
-
return passthrough(file => {
|
|
58
|
-
if (filter(file)) {
|
|
59
|
-
clearFileState(file);
|
|
60
|
-
}
|
|
55
|
+
return file;
|
|
61
56
|
});
|
|
62
57
|
}
|
|
63
58
|
mergeTranslation(translation, fallback) {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# SQL/spring-data-relational sub-generador
|
|
2
|
+
|
|
3
|
+
Adds support to liquibase to SQL databases and Neo4j.
|
|
4
|
+
|
|
5
|
+
## Customizing
|
|
6
|
+
|
|
7
|
+
Customizing basics can be found at [Customizing](../app/README.md#customizing)
|
|
8
|
+
|
|
9
|
+
### Notable relationships customizations
|
|
10
|
+
|
|
11
|
+
#### OnUpdate/OnDelete
|
|
12
|
+
|
|
13
|
+
```jdl
|
|
14
|
+
relationship ManyToOne {
|
|
15
|
+
A to @OnDelete("SET NULL") @OnUpdate("CASCADE") B
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Allowed values: `NO ACTION | RESTRICT | CASCADE | SET NULL | SET DEFAULT`
|
|
@@ -35,6 +35,8 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
|
|
|
35
35
|
recreateInitialChangelog;
|
|
36
36
|
numberOfRows;
|
|
37
37
|
databaseChangelogs = [];
|
|
38
|
+
injectBuildTool = true;
|
|
39
|
+
injectLogs = true;
|
|
38
40
|
constructor(args, options, features) {
|
|
39
41
|
super(args, options, { skipParseOptions: false, ...features });
|
|
40
42
|
this.argument('entities', {
|
|
@@ -137,7 +139,7 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
|
|
|
137
139
|
prepareEntity(entity, this, application);
|
|
138
140
|
prepareEntityForServer(entity);
|
|
139
141
|
if (!entity.embedded && !entity.primaryKey) {
|
|
140
|
-
prepareEntityPrimaryKeyForTemplates(entity,
|
|
142
|
+
prepareEntityPrimaryKeyForTemplates.call(this, { entity, application });
|
|
141
143
|
}
|
|
142
144
|
for (const field of entity.fields ?? []) {
|
|
143
145
|
prepareField(entity, field, this);
|
|
@@ -222,13 +224,15 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
|
|
|
222
224
|
get postWriting() {
|
|
223
225
|
return this.asPostWritingTaskGroup({
|
|
224
226
|
customizeSpring({ source }) {
|
|
227
|
+
if (!this.injectLogs)
|
|
228
|
+
return;
|
|
225
229
|
source.addLogbackMainLog?.({ name: 'liquibase', level: 'WARN' });
|
|
226
230
|
source.addLogbackMainLog?.({ name: 'LiquibaseSchemaResolver', level: 'INFO' });
|
|
227
231
|
source.addLogbackTestLog?.({ name: 'liquibase', level: 'WARN' });
|
|
228
232
|
source.addLogbackTestLog?.({ name: 'LiquibaseSchemaResolver', level: 'INFO' });
|
|
229
233
|
},
|
|
230
234
|
customizeMaven({ source, application }) {
|
|
231
|
-
if (!application.buildToolMaven)
|
|
235
|
+
if (!application.buildToolMaven || !this.injectBuildTool)
|
|
232
236
|
return;
|
|
233
237
|
if (!application.javaDependencies) {
|
|
234
238
|
throw new Error('Some application fields are be mandatory');
|
|
@@ -331,7 +335,7 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
|
|
|
331
335
|
}
|
|
332
336
|
},
|
|
333
337
|
injectGradle({ source, application }) {
|
|
334
|
-
if (!application.buildToolGradle)
|
|
338
|
+
if (!application.buildToolGradle || !this.injectBuildTool)
|
|
335
339
|
return;
|
|
336
340
|
if (!application.javaDependencies) {
|
|
337
341
|
throw new Error('Some application fields are be mandatory');
|
|
@@ -24,31 +24,35 @@ import { GENERATOR_PROJECT_NAME } from '../generator-list.mjs';
|
|
|
24
24
|
import { BASE_NAME } from './constants.mjs';
|
|
25
25
|
import { getHipster } from '../base/support/index.mjs';
|
|
26
26
|
import command from './command.mjs';
|
|
27
|
+
import { validateProjectName } from './support/name-resolver.mjs';
|
|
27
28
|
/**
|
|
28
29
|
* @class
|
|
29
30
|
* @extends {BaseApplicationGenerator<import('../base-application/types.mjs').BaseApplication>}
|
|
30
31
|
*/
|
|
31
32
|
export default class ProjectNameGenerator extends BaseApplicationGenerator {
|
|
33
|
+
javaApplication;
|
|
32
34
|
async beforeQueue() {
|
|
33
|
-
if (this.options.defaults) {
|
|
34
|
-
if (!this.jhipsterConfig.baseName) {
|
|
35
|
-
this.jhipsterConfig.baseName = getDefaultAppName(this);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
35
|
this.sharedData.getControl().existingProject =
|
|
39
36
|
this.options.defaults || this.options.applicationWithConfig || (this.jhipsterConfig.baseName !== undefined && this.config.existed);
|
|
40
37
|
if (!this.fromBlueprint) {
|
|
41
38
|
await this.composeWithBlueprints(GENERATOR_PROJECT_NAME);
|
|
42
39
|
}
|
|
43
|
-
if (this.sharedData.getControl().existingProject && !this.jhipsterConfig.baseName) {
|
|
44
|
-
this.jhipsterConfig.baseName = getDefaultAppName(this);
|
|
45
|
-
}
|
|
46
40
|
}
|
|
47
41
|
get initializing() {
|
|
48
42
|
return this.asInitializingTaskGroup({
|
|
49
43
|
loadOptions() {
|
|
50
44
|
this.parseJHipsterOptions(command.options);
|
|
51
45
|
},
|
|
46
|
+
parseOptions() {
|
|
47
|
+
if (this.options.defaults) {
|
|
48
|
+
if (!this.jhipsterConfig.baseName) {
|
|
49
|
+
this.jhipsterConfig.baseName = getDefaultAppName({
|
|
50
|
+
reproducible: this.options.reproducible,
|
|
51
|
+
javaApplication: this.javaApplication,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
52
56
|
});
|
|
53
57
|
}
|
|
54
58
|
get [BaseApplicationGenerator.INITIALIZING]() {
|
|
@@ -63,7 +67,7 @@ export default class ProjectNameGenerator extends BaseApplicationGenerator {
|
|
|
63
67
|
type: 'input',
|
|
64
68
|
validate: input => this.validateBaseName(input),
|
|
65
69
|
message: 'What is the base name of your application?',
|
|
66
|
-
default: () => getDefaultAppName(this),
|
|
70
|
+
default: () => getDefaultAppName({ reproducible: this.options.reproducible, javaApplication: this.javaApplication }),
|
|
67
71
|
},
|
|
68
72
|
], this.config);
|
|
69
73
|
},
|
|
@@ -114,15 +118,6 @@ export default class ProjectNameGenerator extends BaseApplicationGenerator {
|
|
|
114
118
|
* @returns Boolean
|
|
115
119
|
*/
|
|
116
120
|
validateBaseName(input) {
|
|
117
|
-
|
|
118
|
-
return 'Your base name cannot contain special characters or a blank space';
|
|
119
|
-
}
|
|
120
|
-
if (/_/.test(input)) {
|
|
121
|
-
return 'Your base name cannot contain underscores as this does not meet the URI spec';
|
|
122
|
-
}
|
|
123
|
-
if (input?.toLowerCase() === 'application') {
|
|
124
|
-
return "Your base name cannot be named 'application' as this is a reserved name for Spring Boot";
|
|
125
|
-
}
|
|
126
|
-
return true;
|
|
121
|
+
return validateProjectName(input, { javaApplication: this.javaApplication });
|
|
127
122
|
}
|
|
128
123
|
}
|
|
@@ -17,14 +17,43 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import path from 'path';
|
|
20
|
+
import { camelCase } from 'lodash-es';
|
|
20
21
|
import { isReproducible } from '../../base/support/index.mjs';
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
if (
|
|
22
|
+
const defaultName = 'jhipster';
|
|
23
|
+
export const validateJavaApplicationName = (name) => {
|
|
24
|
+
if (!/^([\w]*)$/.test(name)) {
|
|
25
|
+
return 'Your base name cannot contain special characters or a blank space';
|
|
26
|
+
}
|
|
27
|
+
if (/_/.test(name)) {
|
|
28
|
+
return 'Your base name cannot contain underscores as this does not meet the URI spec';
|
|
29
|
+
}
|
|
30
|
+
if (name.toLowerCase() === 'application') {
|
|
31
|
+
return "Your base name cannot be named 'application' as this is a reserved name for Spring Boot";
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
};
|
|
35
|
+
export const validateNpmProjectName = (name) => {
|
|
36
|
+
if (!/^([\w-.]*)$/.test(name)) {
|
|
37
|
+
return 'Your base name cannot contain special characters or a blank space';
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
};
|
|
41
|
+
export const validateProjectName = (name, { javaApplication } = {}) => javaApplication ? validateJavaApplicationName(name) : validateNpmProjectName(name);
|
|
42
|
+
const getDefaultName = (generator) => {
|
|
43
|
+
if (generator?.options && isReproducible(generator)) {
|
|
44
|
+
return defaultName;
|
|
45
|
+
}
|
|
46
|
+
let projectName = path.basename(process.cwd());
|
|
47
|
+
const { reproducible = false, javaApplication = false } = generator && !generator.options ? generator : {};
|
|
48
|
+
if (reproducible) {
|
|
24
49
|
return defaultName;
|
|
25
50
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
51
|
+
if (javaApplication) {
|
|
52
|
+
projectName = camelCase(projectName);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
projectName = projectName.replace('generator-jhipster-', '');
|
|
56
|
+
}
|
|
57
|
+
return validateProjectName(projectName, { javaApplication }) === true ? projectName : defaultName;
|
|
29
58
|
};
|
|
30
59
|
export default getDefaultName;
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import * as _ from 'lodash-es';
|
|
20
|
-
import {
|
|
20
|
+
import { isFileStateModified } from 'mem-fs-editor/state';
|
|
21
21
|
import chalk from 'chalk';
|
|
22
22
|
import BaseApplicationGenerator from '../base-application/index.mjs';
|
|
23
23
|
import { GENERATOR_CLIENT, GENERATOR_LANGUAGES, GENERATOR_REACT } from '../generator-list.mjs';
|
|
@@ -54,7 +54,7 @@ export default class ReactGenerator extends BaseApplicationGenerator {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
get [BaseApplicationGenerator.LOADING]() {
|
|
57
|
-
return this.
|
|
57
|
+
return this.delegateTasksToBlueprint(() => this.loading);
|
|
58
58
|
}
|
|
59
59
|
get preparing() {
|
|
60
60
|
return this.asPreparingTaskGroup({
|
|
@@ -84,18 +84,26 @@ export default class ReactGenerator extends BaseApplicationGenerator {
|
|
|
84
84
|
get [BaseApplicationGenerator.PREPARING_EACH_ENTITY]() {
|
|
85
85
|
return this.asPreparingEachEntityTaskGroup(this.delegateTasksToBlueprint(() => this.preparingEachEntity));
|
|
86
86
|
}
|
|
87
|
-
get
|
|
88
|
-
return {
|
|
89
|
-
cleanupOldFilesTask,
|
|
90
|
-
writeFiles,
|
|
87
|
+
get default() {
|
|
88
|
+
return this.asDefaultTaskGroup({
|
|
91
89
|
queueTranslateTransform({ control, application }) {
|
|
92
90
|
if (!application.enableTranslation) {
|
|
93
|
-
this.queueTransformStream(
|
|
94
|
-
name: 'translating
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
this.queueTransformStream({
|
|
92
|
+
name: 'translating react application',
|
|
93
|
+
filter: file => isFileStateModified(file) && file.path.startsWith(this.destinationPath()) && isTranslatedReactFile(file),
|
|
94
|
+
refresh: false,
|
|
95
|
+
}, translateReactFilesTransform(control.getWebappTranslation));
|
|
97
96
|
}
|
|
98
97
|
},
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
get [BaseApplicationGenerator.DEFAULT]() {
|
|
101
|
+
return this.delegateTasksToBlueprint(() => this.default);
|
|
102
|
+
}
|
|
103
|
+
get writing() {
|
|
104
|
+
return {
|
|
105
|
+
cleanupOldFilesTask,
|
|
106
|
+
writeFiles,
|
|
99
107
|
};
|
|
100
108
|
}
|
|
101
109
|
get [BaseApplicationGenerator.WRITING]() {
|