generator-jhipster 7.8.1 → 7.9.2
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 +1 -1
- package/cli/environment-builder.js +3 -1
- package/cli/import-jdl.js +61 -35
- package/cli/jdl.js +5 -4
- package/cli/jhipster-command.js +1 -1
- package/cli/program.js +5 -3
- package/generators/app/index.js +11 -0
- package/generators/app/prompts.js +60 -12
- package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +3 -3
- package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +3 -3
- package/generators/bootstrap/index.js +1 -0
- package/generators/bootstrap-application/generator.mjs +1 -0
- package/generators/ci-cd/templates/.gitlab-ci.yml.ejs +2 -3
- package/generators/client/files-angular.js +72 -89
- package/generators/client/files-react.js +63 -74
- package/generators/client/files-vue.js +8 -54
- package/generators/client/index.js +18 -11
- package/generators/client/needle-api/needle-client-angular.js +1 -4
- package/generators/client/needle-api/needle-client-react.js +2 -2
- package/generators/client/prompts.js +1 -0
- package/generators/client/templates/angular/.eslintrc.json.ejs +10 -1
- package/generators/client/templates/angular/angular.json.ejs +0 -1
- package/generators/client/templates/angular/jest.conf.js.ejs +3 -1
- package/generators/client/templates/angular/package.json +31 -31
- package/generators/client/templates/angular/package.json.ejs +23 -22
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +15 -15
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +17 -11
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +16 -16
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +14 -9
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +9 -9
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +27 -27
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +28 -13
- package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.html.ejs +7 -7
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +19 -19
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.ts.ejs +35 -37
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +7 -7
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.module.ts.ejs +0 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +10 -10
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +10 -10
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +9 -9
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +14 -14
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +16 -16
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +2 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +133 -138
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +22 -24
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +40 -49
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.model.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.module.ts.ejs +0 -1
- package/generators/client/templates/angular/src/main/webapp/app/config/navigation.constants.ts.ejs +23 -0
- package/generators/client/templates/angular/src/main/webapp/app/config/pagination.constants.ts.ejs +2 -3
- package/generators/client/templates/angular/src/main/webapp/app/core/request/request-util.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.model.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.ts.ejs +7 -3
- package/generators/client/templates/angular/src/main/webapp/app/home/home.component.html.ejs +14 -14
- package/generators/client/templates/angular/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
- package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +9 -9
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +16 -27
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.html.ejs +10 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.ts.ejs +23 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +40 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.ts.ejs +95 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/shared.module.ts.ejs +3 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.service.ts.ejs +31 -0
- package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +3 -8
- package/generators/client/templates/angular/tsconfig.json.ejs +6 -0
- package/generators/client/templates/angular/tsconfig.spec.json.ejs +1 -1
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +6 -2
- package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +1 -1
- package/generators/client/templates/common/package.json +6 -6
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +2 -0
- package/generators/client/templates/react/.eslintrc.json.ejs +10 -1
- package/generators/client/templates/react/jest.conf.js.ejs +3 -1
- package/generators/client/templates/react/package.json +57 -57
- package/generators/client/templates/react/package.json.ejs +3 -3
- package/generators/client/templates/react/src/main/webapp/app/app.tsx.ejs +3 -3
- package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +7 -5
- package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +4 -5
- package/generators/client/templates/react/src/main/webapp/app/modules/account/activate/activate.tsx.ejs +8 -4
- package/generators/client/templates/react/src/main/webapp/app/modules/account/index.tsx.ejs +9 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +1 -0
- package/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx.ejs +8 -5
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.ts.ejs +6 -7
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health-modal.tsx.ejs +3 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health.tsx.ejs +4 -4
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/index.tsx.ejs +14 -11
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +8 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/index.tsx.ejs +13 -13
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-delete-dialog.tsx.ejs +7 -4
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-detail.tsx.ejs +5 -3
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx.ejs +10 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +18 -26
- package/generators/client/templates/react/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +6 -3
- package/generators/client/templates/react/src/main/webapp/app/modules/login/login.tsx.ejs +6 -5
- package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +53 -25
- package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +30 -27
- package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.tsx.ejs +35 -34
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-routes.spec.tsx.ejs +55 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-routes.tsx.ejs +21 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.spec.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +8 -10
- package/generators/client/templates/react/src/main/webapp/app/shared/error/page-not-found.tsx.ejs +9 -13
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.spec.tsx.ejs +3 -5
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +5 -8
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-item.tsx.ejs +12 -11
- package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +2 -2
- package/generators/client/templates/react/tsconfig.json.ejs +2 -4
- package/generators/client/templates/react/tsconfig.test.json.ejs +1 -0
- package/generators/client/templates/react/webpack/webpack.common.js.ejs +7 -3
- package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +4 -4
- package/generators/client/templates/vue/.eslintrc.js.ejs +10 -1
- package/generators/client/templates/vue/package.json +40 -39
- package/generators/client/templates/vue/package.json.ejs +3 -3
- package/generators/client/templates/vue/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.vue.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +5 -3
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/shared/date/filters.ts.ejs +0 -6
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +5 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/account/register/register.component.spec.ts.ejs +1 -1
- package/generators/client/templates/vue/tsconfig.json.ejs +1 -1
- package/generators/client/templates/vue/tsconfig.spec.json.ejs +2 -2
- package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +4 -0
- package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +8 -1
- package/generators/client/transform-angular.cjs +117 -0
- package/generators/client/transform-react.cjs +126 -0
- package/generators/client/transform-vue.cjs +42 -0
- package/generators/common/files.js +2 -9
- package/generators/common/templates/README.md.jhi.ejs +21 -5
- package/generators/common/templates/package.json +3 -3
- package/generators/cypress/files.js +34 -22
- package/generators/cypress/index.js +42 -19
- package/generators/cypress/templates/cypress-audits.config.ts.ejs +28 -0
- package/generators/cypress/templates/cypress.config.ts.ejs +57 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/login-page.spec.ts.ejs → e2e/account/login-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/password-page.spec.ts.ejs → e2e/account/password-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/register-page.spec.ts.ejs → e2e/account/register-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/reset-password-page.spec.ts.ejs → e2e/account/reset-password-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/settings-page.spec.ts.ejs → e2e/account/settings-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/administration/administration.spec.ts.ejs → e2e/administration/administration.cy.ts.ejs} +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/{integration → e2e}/lighthouse.audits.ts.ejs +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/plugins/global.d.ts.ejs +25 -0
- package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +13 -14
- package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +8 -8
- package/generators/cypress/templates/src/test/javascript/cypress/tsconfig.json.ejs +8 -5
- package/generators/database-changelog-liquibase/files.js +1 -1
- package/generators/database-changelog-liquibase/index.js +3 -0
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity_constraints.xml.ejs +1 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +1 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +2 -2
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_migrate.xml.ejs +1 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +2 -2
- package/generators/docker-base.js +6 -3
- package/generators/docker-compose/files.js +5 -2
- package/generators/docker-compose/index.js +13 -24
- package/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +1 -1
- package/generators/docker-compose/templates/docker-compose.yml.ejs +10 -8
- package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +62 -4
- package/generators/docker-prompts.js +1 -2
- package/generators/docker-utils.js +0 -1
- package/generators/entity/index.js +5 -15
- package/generators/entity/prompts.js +1 -52
- package/generators/entity-client/files-angular.cjs +169 -0
- package/generators/entity-client/files-cypress.cjs +52 -0
- package/generators/entity-client/files-react.cjs +113 -0
- package/generators/entity-client/files-vue.cjs +140 -0
- package/generators/entity-client/files.js +10 -381
- package/generators/entity-client/index.js +120 -19
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +4 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.ts.ejs +2 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +12 -11
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +0 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +18 -25
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.test-samples.ts.ejs +45 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +45 -37
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +47 -28
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +292 -94
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +5 -106
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +2 -82
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +5 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.ts.ejs +5 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +2 -3
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +89 -175
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +69 -44
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.spec.ts.ejs +111 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.ts.ejs +263 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +99 -120
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +47 -71
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +79 -195
- package/generators/entity-client/templates/{common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs → cypress/src/test/javascript/cypress/e2e/entity/entity.cy.ts.ejs} +26 -17
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +10 -5
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +5 -3
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +11 -6
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -10
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/index.tsx.ejs +13 -13
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/react_validators.ejs +25 -32
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +2 -2
- package/generators/entity-server/cleanup.js +41 -0
- package/generators/entity-server/files.js +118 -53
- package/generators/entity-server/index.js +14 -27
- package/generators/entity-server/templates/partials/save_template.ejs +1 -1
- package/generators/entity-server/templates/partials/update_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +11 -5
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.elastic_search.ejs +17 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_cassandra.ejs +3 -1
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +6 -1
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +13 -6
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +46 -9
- package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +2 -5
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +140 -132
- package/generators/gae/index.js +1 -1
- package/generators/generate-blueprint/constants.mjs +22 -2
- package/generators/generate-blueprint/generator.mjs +25 -6
- package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +5 -3
- package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +2 -1
- package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +6 -5
- package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +10 -1
- package/generators/generator-base-blueprint.js +19 -20
- package/generators/generator-base-private.js +116 -64
- package/generators/generator-base.js +241 -91
- package/generators/generator-constants.js +118 -66
- package/generators/generator-defaults.js +1 -0
- package/generators/heroku/index.js +5 -4
- package/generators/heroku/templates/application-heroku.yml.ejs +1 -2
- package/generators/heroku/templates/heroku.gradle.ejs +28 -1
- package/generators/heroku/templates/pom-profile.xml.ejs +29 -0
- package/generators/java/index.cjs +2 -2
- package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -2
- package/generators/kubernetes/templates/db/mongodb.yml.ejs +1 -2
- package/generators/kubernetes/templates/ingress.yml.ejs +11 -4
- package/generators/kubernetes/templates/monitoring/jhipster-grafana.yml.ejs +6 -2
- package/generators/kubernetes/templates/registry/consul.yml.ejs +1 -2
- package/generators/kubernetes/templates/registry/jhipster-registry.yml.ejs +1 -2
- package/generators/languages/templates/src/main/webapp/i18n/al/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ar-ly/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/bg/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/bn/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/by/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ca/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/cs/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/da/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/el/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/en/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/en/health.json.ejs +3 -0
- package/generators/languages/templates/src/main/webapp/i18n/es/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/et/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/fa/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/fi/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/fr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/gl/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/hi/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/hr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/hu/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/hy/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/in/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/it/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ja/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ko/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/mr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/my/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/nl/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/pa/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/pl/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/pt-br/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/pt-pt/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ro/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ru/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/si/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/sk/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/sr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/sv/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ta/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/te/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/th/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/tr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ua/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/vi/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/zh-cn/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/zh-tw/global.json.ejs +7 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_al.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ar_LY.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_bg.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_bn.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_by.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ca.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_cs.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_da.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_de.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_el.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_es.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_et.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_fa.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_fi.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_gl.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_hi.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_hr.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_hu.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_hy.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_in.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_it.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ja.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ko.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_mr.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_my.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_nl.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_pa.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_pl.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_pt_BR.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_pt_PT.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ro.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ru.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_si.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_sk.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_sr.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_sv.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ta.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_te.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_th.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_tr.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ua.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_uz_Cyrl_UZ.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_uz_Latn_UZ.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_vi.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_zh_CN.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_zh_TW.properties.ejs +4 -1
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +3 -3
- package/generators/maven/templates/pom.xml.jhi.ejs +2 -2
- package/generators/openapi-client/files.js +2 -8
- package/generators/openapi-client/index.js +2 -0
- package/generators/openshift/templates/registry/consul.yml.ejs +1 -2
- package/generators/openshift/templates/registry/jhipster-registry.yml.ejs +1 -2
- package/generators/project-name/index.cjs +8 -5
- package/generators/server/cleanup-angular.js +37 -0
- package/generators/server/cleanup-cache-provider.js +46 -0
- package/generators/server/cleanup-cassandra.js +49 -0
- package/generators/server/cleanup-cucumber.js +40 -0
- package/generators/server/cleanup-elasticsearch.js +48 -0
- package/generators/server/cleanup-gradle.js +40 -0
- package/generators/server/cleanup-kafka.js +41 -0
- package/generators/server/cleanup-maven.js +37 -0
- package/generators/server/cleanup-mongodb.js +40 -0
- package/generators/server/cleanup-oauth2.js +43 -0
- package/generators/server/cleanup-reactive.js +38 -0
- package/generators/server/cleanup-sql.js +48 -0
- package/generators/server/cleanup.js +85 -51
- package/generators/server/esm.mjs +1 -0
- package/generators/server/files-couchbase.js +11 -10
- package/generators/server/files-sql.js +197 -4
- package/generators/server/files.js +180 -273
- package/generators/server/index.js +32 -86
- package/generators/server/needles.cjs +79 -0
- package/generators/server/templates/.mvn/jvm.config +1 -1
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +3 -3
- package/generators/server/templates/.npmrc.ejs +1 -0
- package/generators/server/templates/build.gradle.ejs +121 -226
- package/generators/server/templates/couchbase/src/test/java/package/config/CouchbaseTestContainer.java.ejs +67 -0
- package/generators/server/templates/couchbase/src/test/java/package/config/EmbeddedCouchbase.java.ejs +30 -0
- package/generators/server/templates/gradle/docker.gradle.ejs +6 -0
- package/generators/server/templates/gradle/profile_dev.gradle.ejs +95 -3
- package/generators/server/templates/gradle/profile_prod.gradle.ejs +80 -4
- package/generators/server/templates/gradle.properties.ejs +17 -13
- package/generators/server/templates/pom.xml.ejs +274 -225
- package/generators/server/templates/settings.gradle.ejs +2 -1
- package/generators/server/templates/sql/common/src/main/docker/config/mariadb/my.cnf +49 -0
- package/generators/server/templates/sql/common/src/main/docker/config/mysql/my.cnf +82 -0
- package/generators/server/templates/{src → sql/common/src}/main/docker/mariadb.yml.ejs +2 -0
- package/generators/server/templates/{src → sql/common/src}/main/docker/mssql.yml.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/main/docker/mysql.yml.ejs +2 -2
- package/generators/server/templates/{src → sql/common/src}/main/docker/postgresql.yml.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/main/java/package/config/LiquibaseConfiguration.java.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/main/resources/h2.server.properties.ejs +0 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/EmbeddedSQL.java.ejs +30 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/MariadbTestContainer.java.ejs +60 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/MsSqlTestContainer.java.ejs +59 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/MysqlTestContainer.java.ejs +69 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/PostgreSqlTestContainer.java.ejs +59 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/SqlTestContainer.java.ejs +28 -0
- package/generators/server/templates/{src → sql/common/src}/test/java/package/config/timezone/HibernateTimeZoneIT.java.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/test/java/package/repository/timezone/DateTimeWrapper.java.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/test/java/package/repository/timezone/DateTimeWrapperRepository.java.ejs +0 -0
- package/generators/server/templates/sql/common/src/test/resources/config/application-testdev.yml.ejs +93 -0
- package/generators/server/templates/{src/test/resources/config/application-testcontainers.yml.ejs → sql/common/src/test/resources/config/application-testprod.yml.ejs} +17 -33
- package/generators/server/templates/sql/common/src/test/resources/testcontainers/mariadb/my.cnf +49 -0
- package/generators/server/templates/sql/common/src/test/resources/testcontainers/mysql/my.cnf +83 -0
- package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/EntityManager.java.ejs +0 -0
- package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/rowmapper/ColumnConverter.java.ejs +0 -0
- package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/rowmapper/UserRowMapper.java.ejs +0 -0
- package/generators/server/templates/src/main/docker/app.yml.ejs +16 -14
- package/generators/server/templates/src/main/docker/cassandra-migration.yml.ejs +1 -0
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +62 -6
- package/generators/server/templates/src/main/docker/jhipster-control-center.yml.ejs +1 -1
- package/generators/server/templates/src/main/docker/jhipster-registry.yml.ejs +1 -1
- package/generators/server/templates/src/main/docker/jib/entrypoint.sh.ejs +36 -1
- package/generators/server/templates/src/main/docker/keycloak.yml.ejs +8 -6
- package/generators/server/templates/src/main/java/package/config/ApplicationProperties.java.ejs +3 -0
- package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +2 -6
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +16 -30
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +108 -15
- package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +6 -0
- package/generators/server/templates/src/main/java/package/security/DomainUserDetailsService.java.ejs +6 -3
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +10 -3
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +12 -2
- package/generators/server/templates/src/main/java/package/web/rest/LogoutResource.java.ejs +1 -5
- package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -5
- package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +3 -4
- package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +4 -3
- package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +1 -1
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +1 -1
- package/generators/server/templates/src/main/resources/config/liquibase/changelog/initial_schema.xml.ejs +1 -1
- package/generators/server/templates/src/main/resources/config/liquibase/master.xml.ejs +54 -24
- package/generators/server/templates/src/main/resources/swagger/api.yml.ejs +3 -3
- package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +32 -19
- package/generators/server/templates/src/test/java/package/{repository/search/UserSearchRepositoryMockConfiguration.java.ejs → config/AsyncSyncConfiguration.java.ejs} +12 -10
- package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +20 -1
- package/generators/{entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs → server/templates/src/test/java/package/config/ElasticsearchReactiveTestConfiguration.java.ejs} +14 -11
- package/generators/server/templates/src/test/java/package/config/ElasticsearchTestContainer.java.ejs +68 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +19 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedElasticsearch.java.ejs +30 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +19 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +19 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedNeo4j.java.ejs +29 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedRedis.java.ejs +30 -0
- package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +11 -2
- package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +19 -1
- package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +5 -5
- package/generators/server/templates/src/test/java/package/config/Neo4jTestContainer.java.ejs +66 -0
- package/generators/server/templates/src/test/java/package/config/RedisTestContainer.java.ejs +57 -0
- package/generators/server/templates/src/test/java/package/config/{NoOpMailConfiguration.java.ejs → SpringBootTestClassOrderer.java.ejs} +16 -16
- package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +166 -30
- package/generators/server/templates/src/test/java/package/config/WebConfigurerTest.java.ejs +0 -23
- package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +5 -3
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +7 -15
- package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +8 -11
- package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +19 -73
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +0 -8
- package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +13 -10
- package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +76 -51
- package/generators/server/templates/src/test/resources/config/application.yml.ejs +13 -62
- package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +1 -0
- package/generators/server/templates/src/test/resources/templates/mail/activationEmail.html.ejs +19 -0
- package/generators/server/templates/src/test/resources/templates/mail/creationEmail.html.ejs +19 -0
- package/generators/server/templates/src/test/resources/templates/mail/passwordResetEmail.html.ejs +21 -0
- package/generators/spring-controller/index.js +16 -1
- package/generators/sql-constants.js +85 -0
- package/generators/statistics.js +6 -5
- package/generators/upgrade/index.js +1 -1
- package/generators/utils.js +32 -30
- package/generators/workspaces/index.js +31 -28
- package/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +2 -3
- package/jdl/converters/json-to-jdl-converter.js +23 -6
- package/jdl/exporters/applications/jhipster-application-formatter.js +7 -0
- package/jdl/jhipster/application-options.js +8 -0
- package/jdl/jhipster/default-application-options.js +2 -2
- package/jdl/parsing/lexer/application-tokens.js +6 -0
- package/jdl/parsing/validator.js +7 -0
- package/jdl/validators/application-validator.js +3 -1
- package/jdl/validators/jdl-with-application-validator.js +1 -0
- package/jdl/validators/jdl-without-application-validator.js +3 -2
- package/lib/support/base.cjs +43 -0
- package/lib/support/needles.cjs +221 -0
- package/lib/support/shared-data.cjs +2 -2
- package/package.json +29 -27
- package/utils/blueprint.js +1 -1
- package/utils/entity.js +9 -1
- package/utils/field.js +24 -11
- package/utils/liquibase.js +5 -8
- package/utils/relationship.js +3 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.spec.tsx.ejs +0 -33
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.tsx.ejs +0 -17
- package/generators/cypress/templates/cypress-audits.json.ejs +0 -32
- package/generators/cypress/templates/cypress.json.ejs +0 -46
- package/generators/docker-compose/templates/realm-config/jhipster-users-0.json.ejs +0 -61
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +0 -81
- package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +0 -56
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-users-0.json.ejs +0 -61
- package/generators/server/templates/src/test/java/package/AbstractNeo4jIT.java.ejs +0 -44
- package/generators/server/templates/src/test/java/package/ReactiveSqlTestContainerExtension.java.ejs +0 -79
- package/generators/server/templates/src/test/java/package/RedisTestContainerExtension.java.ejs +0 -44
- package/generators/server/templates/src/test/resources/testcontainers/mariadb/my.cnf +0 -2
|
@@ -42,7 +42,8 @@ const { formatDateForChangelog } = require('../utils/liquibase');
|
|
|
42
42
|
const { calculateDbNameWithLimit, hibernateSnakeCase } = require('../utils/db');
|
|
43
43
|
const defaultApplicationOptions = require('../jdl/jhipster/default-application-options');
|
|
44
44
|
const databaseTypes = require('../jdl/jhipster/database-types');
|
|
45
|
-
const {
|
|
45
|
+
const { databaseData } = require('./sql-constants');
|
|
46
|
+
const { ANGULAR_X: ANGULAR, REACT, VUE, SVELTE, NO: CLIENT_FRAMEWORK_NO } = require('../jdl/jhipster/client-framework-types');
|
|
46
47
|
const {
|
|
47
48
|
PRIORITY_NAMES: {
|
|
48
49
|
LOADING,
|
|
@@ -67,6 +68,8 @@ const {
|
|
|
67
68
|
END,
|
|
68
69
|
},
|
|
69
70
|
} = require('../lib/constants/priorities.cjs');
|
|
71
|
+
const { insertContentIntoApplicationProperties } = require('./server/needles.cjs');
|
|
72
|
+
const { joinCallbacks } = require('../lib/support/base.cjs');
|
|
70
73
|
|
|
71
74
|
const JHIPSTER_CONFIG_DIR = constants.JHIPSTER_CONFIG_DIR;
|
|
72
75
|
const MODULES_HOOK_FILE = `${JHIPSTER_CONFIG_DIR}/modules/jhi-hooks.json`;
|
|
@@ -101,14 +104,31 @@ const NO_SEARCH_ENGINE = searchEngineTypes.FALSE;
|
|
|
101
104
|
const NO_MESSAGE_BROKER = messageBrokerTypes.NO;
|
|
102
105
|
const NO_WEBSOCKET = websocketTypes.FALSE;
|
|
103
106
|
|
|
107
|
+
const isWin32 = os.platform() === 'win32';
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @callback EditFileCallback
|
|
111
|
+
* @param {JHipsterBaseGenerator} this
|
|
112
|
+
* @param {string} content
|
|
113
|
+
* @param {string} filePath
|
|
114
|
+
* @returns {CascatedEditFileCallback} callback for cascated edit
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* @callback CascatedEditFileCallback
|
|
119
|
+
* @param {...EditFileCallback} callbacks
|
|
120
|
+
* @returns {CascatedEditFileCallback} callback for cascated edit
|
|
121
|
+
*/
|
|
104
122
|
/**
|
|
105
123
|
* This is the Generator base class.
|
|
106
124
|
* This provides all the public API methods exposed via the module system.
|
|
107
125
|
* The public API methods can be directly utilized as well using commonJS require.
|
|
108
126
|
*
|
|
109
127
|
* The method signatures in public API should not be changed without a major version change
|
|
128
|
+
*
|
|
129
|
+
* @extends {import('yeoman-generator')}
|
|
110
130
|
*/
|
|
111
|
-
|
|
131
|
+
class JHipsterBaseGenerator extends PrivateBase {
|
|
112
132
|
constructor(args, options, features) {
|
|
113
133
|
super(args, options, features);
|
|
114
134
|
|
|
@@ -184,9 +204,8 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
184
204
|
try {
|
|
185
205
|
this._jhipsterGenerator = this._jhipsterGenerator || this.env.requireNamespace(this.options.namespace).generator;
|
|
186
206
|
} catch (error) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
);
|
|
207
|
+
const split = this.options.namespace.split(':', 2);
|
|
208
|
+
this._jhipsterGenerator = split.length === 1 ? split[0] : split[1];
|
|
190
209
|
}
|
|
191
210
|
return this.fetchFromInstalledJHipster(this._jhipsterGenerator, 'templates', ...args);
|
|
192
211
|
}
|
|
@@ -335,6 +354,9 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
335
354
|
if (this.jhipsterConfig.clientFramework === VUE) {
|
|
336
355
|
prettierExtensions = `${prettierExtensions},vue`;
|
|
337
356
|
}
|
|
357
|
+
if (this.jhipsterConfig.clientFramework === SVELTE) {
|
|
358
|
+
prettierExtensions = `${prettierExtensions},svelte`;
|
|
359
|
+
}
|
|
338
360
|
}
|
|
339
361
|
if (!this.skipServer && !this.jhipsterConfig.skipServer) {
|
|
340
362
|
prettierExtensions = `${prettierExtensions},java`;
|
|
@@ -1222,6 +1244,15 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1222
1244
|
this.needleApi.serverGradle.addPluginManagementRepository(url, username, password);
|
|
1223
1245
|
}
|
|
1224
1246
|
|
|
1247
|
+
/**
|
|
1248
|
+
* Insert content into ApplicationProperties class
|
|
1249
|
+
* @param {import("./server/needles.cjs").ApplicationPropertiesNeedles} needlesContent
|
|
1250
|
+
* @returns {string} ApplicationProperties contents
|
|
1251
|
+
*/
|
|
1252
|
+
insertContentIntoApplicationProperties(needlesContent) {
|
|
1253
|
+
return insertContentIntoApplicationProperties(this, needlesContent);
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1225
1256
|
/**
|
|
1226
1257
|
* Generate a date to be used by Liquibase changelogs.
|
|
1227
1258
|
*
|
|
@@ -1286,7 +1317,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1286
1317
|
regex = new RegExp(
|
|
1287
1318
|
[
|
|
1288
1319
|
/([\s\n\r]+[a-z][a-zA-Z]*Translate="[a-zA-Z0-9 +{}'_!?.]+")/, // jhiTranslate
|
|
1289
|
-
/([\s\n\r]+\[translate(-v|V)alues\]="\{([a-zA-Z]|\d|:|\{|\}|\[|\]
|
|
1320
|
+
/([\s\n\r]+\[translate(-v|V)alues\]="\{([a-zA-Z]|\d|:|\{|\}|\[|\]|\(|\)|\||-|'|\s|\.|_)*?\}")/, // translate-values or translateValues
|
|
1290
1321
|
/([\s\n\r]+translate-compile)/, // translate-compile
|
|
1291
1322
|
/([\s\n\r]+translate-value-max="[0-9{}()|]*")/, // translate-value-max
|
|
1292
1323
|
]
|
|
@@ -1325,6 +1356,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1325
1356
|
}
|
|
1326
1357
|
|
|
1327
1358
|
/**
|
|
1359
|
+
* @deprecated
|
|
1328
1360
|
* Copy html templates after stripping translation keys when translation is disabled.
|
|
1329
1361
|
*
|
|
1330
1362
|
* @param {string} source - path of the source file to copy from
|
|
@@ -1338,6 +1370,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1338
1370
|
}
|
|
1339
1371
|
|
|
1340
1372
|
/**
|
|
1373
|
+
* @deprecated
|
|
1341
1374
|
* Copy Js templates after stripping translation keys when translation is disabled.
|
|
1342
1375
|
*
|
|
1343
1376
|
* @param {string} source - path of the source file to copy from
|
|
@@ -1351,6 +1384,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1351
1384
|
}
|
|
1352
1385
|
|
|
1353
1386
|
/**
|
|
1387
|
+
* @deprecated
|
|
1354
1388
|
* Copy JSX templates after stripping translation keys when translation is disabled.
|
|
1355
1389
|
*
|
|
1356
1390
|
* @param {string} source - path of the source file to copy from
|
|
@@ -1532,6 +1566,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1532
1566
|
/**
|
|
1533
1567
|
* Compose with a jhipster generator using default jhipster config.
|
|
1534
1568
|
* @param {string} generator - jhipster generator.
|
|
1569
|
+
* @param {object} args - args to pass
|
|
1535
1570
|
* @param {object} [options] - options to pass
|
|
1536
1571
|
* @param {boolean} [once] - compose once with the generator
|
|
1537
1572
|
* @return {object} the composed generator
|
|
@@ -1676,10 +1711,12 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1676
1711
|
}
|
|
1677
1712
|
dir.closeSync();
|
|
1678
1713
|
|
|
1679
|
-
|
|
1714
|
+
const entities = [...new Set((this.jhipsterConfig.entities || []).concat(entityNames))]
|
|
1680
1715
|
.map(entityName => ({ name: entityName, definition: this.readEntityJson(entityName) }))
|
|
1681
|
-
.filter(entity => entity && !this.isBuiltInUser(entity.name) && !this.isBuiltInAuthority(entity.name))
|
|
1716
|
+
.filter(entity => entity && !this.isBuiltInUser(entity.name) && !this.isBuiltInAuthority(entity.name) && entity.definition)
|
|
1682
1717
|
.sort(isBefore);
|
|
1718
|
+
this.jhipsterConfig.entities = entities.map(({ name }) => name);
|
|
1719
|
+
return entities;
|
|
1683
1720
|
}
|
|
1684
1721
|
|
|
1685
1722
|
/**
|
|
@@ -1755,38 +1792,58 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1755
1792
|
const separator = legacyDbNames ? '_' : '__';
|
|
1756
1793
|
const prefix = legacyDbNames ? '' : 'rel_';
|
|
1757
1794
|
const joinTableName = `${prefix}${this.getTableName(entityName)}${separator}${this.getTableName(relationshipName)}`;
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
)
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
} else if (prodDatabaseType === MYSQL && joinTableName.length > 64 && !this.skipCheckLengthOfIdentifier) {
|
|
1766
|
-
this.warning(
|
|
1767
|
-
`The generated join table "${joinTableName}" is too long for MySQL (which has a 64 character limit). It will be truncated!`
|
|
1768
|
-
);
|
|
1769
|
-
|
|
1770
|
-
limit = 64;
|
|
1771
|
-
} else if (prodDatabaseType === POSTGRESQL && joinTableName.length >= 63 && !this.skipCheckLengthOfIdentifier) {
|
|
1795
|
+
const { name, tableNameMaxLength } = databaseData[prodDatabaseType] || {};
|
|
1796
|
+
// FIXME: In V8, remove specific condition for POSTGRESQL joinTableName.length === 63
|
|
1797
|
+
if (
|
|
1798
|
+
tableNameMaxLength &&
|
|
1799
|
+
(joinTableName.length > tableNameMaxLength || (prodDatabaseType === POSTGRESQL && joinTableName.length === 63)) &&
|
|
1800
|
+
!this.skipCheckLengthOfIdentifier
|
|
1801
|
+
) {
|
|
1772
1802
|
this.warning(
|
|
1773
|
-
`The generated join table "${joinTableName}" is too long for
|
|
1803
|
+
`The generated join table "${joinTableName}" is too long for ${name} (which has a ${tableNameMaxLength} character limit). It will be truncated!`
|
|
1774
1804
|
);
|
|
1805
|
+
return calculateDbNameWithLimit(entityName, relationshipName, tableNameMaxLength, { prefix, separator, appendHash: !legacyDbNames });
|
|
1806
|
+
}
|
|
1807
|
+
return joinTableName;
|
|
1808
|
+
}
|
|
1775
1809
|
|
|
1776
|
-
|
|
1777
|
-
|
|
1810
|
+
/**
|
|
1811
|
+
* get a constraint name for tables in JHipster preferred style
|
|
1812
|
+
*
|
|
1813
|
+
* @param {string} entityName - name of the entity
|
|
1814
|
+
* @param {string} columnOrRelationName - name of the column or related entity
|
|
1815
|
+
* @param {string} prodDatabaseType - database type
|
|
1816
|
+
* @param {boolean} noSnakeCase - do not convert names to snakecase
|
|
1817
|
+
* @param {string} prefix - constraintName prefix for the constraintName
|
|
1818
|
+
* @param {string} suffix - constraintName suffix for the constraintName
|
|
1819
|
+
*/
|
|
1820
|
+
getConstraintName(entityName, columnOrRelationName, prodDatabaseType, noSnakeCase, prefix = '', suffix = '') {
|
|
1821
|
+
let constraintName;
|
|
1822
|
+
const legacyDbNames = this.jhipsterConfig && this.jhipsterConfig.legacyDbNames;
|
|
1823
|
+
const separator = legacyDbNames ? '_' : '__';
|
|
1824
|
+
if (noSnakeCase) {
|
|
1825
|
+
constraintName = `${prefix}${entityName}${separator}${columnOrRelationName}${suffix}`;
|
|
1826
|
+
} else {
|
|
1827
|
+
constraintName = `${prefix}${this.getTableName(entityName)}${separator}${this.getTableName(columnOrRelationName)}${suffix}`;
|
|
1828
|
+
}
|
|
1829
|
+
const { name, constraintNameMaxLength } = databaseData[prodDatabaseType] || {};
|
|
1830
|
+
if (constraintNameMaxLength && constraintName.length > constraintNameMaxLength && !this.skipCheckLengthOfIdentifier) {
|
|
1778
1831
|
this.warning(
|
|
1779
|
-
`The generated
|
|
1832
|
+
`The generated constraint name "${constraintName}" is too long for ${name} (which has a ${constraintNameMaxLength} character limit). It will be truncated!`
|
|
1780
1833
|
);
|
|
1781
|
-
|
|
1782
|
-
|
|
1834
|
+
return `${calculateDbNameWithLimit(entityName, columnOrRelationName, constraintNameMaxLength - suffix.length, {
|
|
1835
|
+
separator,
|
|
1836
|
+
noSnakeCase,
|
|
1837
|
+
prefix,
|
|
1838
|
+
appendHash: !legacyDbNames,
|
|
1839
|
+
})}${suffix}`;
|
|
1783
1840
|
}
|
|
1784
|
-
return
|
|
1785
|
-
? joinTableName
|
|
1786
|
-
: calculateDbNameWithLimit(entityName, relationshipName, limit, { prefix, separator, appendHash: !legacyDbNames });
|
|
1841
|
+
return constraintName;
|
|
1787
1842
|
}
|
|
1788
1843
|
|
|
1789
1844
|
/**
|
|
1845
|
+
* @deprecated Should be removed in V8 in favour of getConstraintName
|
|
1846
|
+
*
|
|
1790
1847
|
* get a constraint name for tables in JHipster preferred style after applying any length limits required.
|
|
1791
1848
|
*
|
|
1792
1849
|
* @param {string} entityName - name of the entity
|
|
@@ -1805,13 +1862,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1805
1862
|
constraintName = `${prefix}${this.getTableName(entityName)}${separator}${this.getTableName(columnOrRelationName)}`;
|
|
1806
1863
|
}
|
|
1807
1864
|
let limit = 0;
|
|
1808
|
-
if (prodDatabaseType ===
|
|
1809
|
-
this.warning(
|
|
1810
|
-
`The generated constraint name "${constraintName}" is too long for Oracle (which has a 30 character limit). It will be truncated!`
|
|
1811
|
-
);
|
|
1812
|
-
|
|
1813
|
-
limit = 28;
|
|
1814
|
-
} else if (prodDatabaseType === MYSQL && constraintName.length >= 61 && !this.skipCheckLengthOfIdentifier) {
|
|
1865
|
+
if (prodDatabaseType === MYSQL && constraintName.length >= 61 && !this.skipCheckLengthOfIdentifier) {
|
|
1815
1866
|
this.warning(
|
|
1816
1867
|
`The generated constraint name "${constraintName}" is too long for MySQL (which has a 64 character limit). It will be truncated!`
|
|
1817
1868
|
);
|
|
@@ -1840,19 +1891,6 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1840
1891
|
});
|
|
1841
1892
|
}
|
|
1842
1893
|
|
|
1843
|
-
/**
|
|
1844
|
-
* get a foreign key constraint name for tables in JHipster preferred style.
|
|
1845
|
-
*
|
|
1846
|
-
* @param {string} entityName - name of the entity
|
|
1847
|
-
* @param {string} relationshipName - name of the related entity
|
|
1848
|
-
* @param {string} prodDatabaseType - database type
|
|
1849
|
-
* @param {boolean} noSnakeCase - do not convert names to snakecase
|
|
1850
|
-
*/
|
|
1851
|
-
getConstraintName(entityName, relationshipName, prodDatabaseType, noSnakeCase) {
|
|
1852
|
-
// for backward compatibility
|
|
1853
|
-
return this.getFKConstraintName(entityName, relationshipName, prodDatabaseType, noSnakeCase);
|
|
1854
|
-
}
|
|
1855
|
-
|
|
1856
1894
|
/**
|
|
1857
1895
|
* get a foreign key constraint name for tables in JHipster preferred style.
|
|
1858
1896
|
*
|
|
@@ -1862,7 +1900,10 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1862
1900
|
* @param {boolean} noSnakeCase - do not convert names to snakecase
|
|
1863
1901
|
*/
|
|
1864
1902
|
getFKConstraintName(entityName, relationshipName, prodDatabaseType, noSnakeCase) {
|
|
1865
|
-
|
|
1903
|
+
// FIXME: In V8, this should use only this.getConstraintName that calculates constraint length correctly
|
|
1904
|
+
return prodDatabaseType === ORACLE
|
|
1905
|
+
? this.getConstraintName(entityName, relationshipName, prodDatabaseType, noSnakeCase, 'fk_', '_id')
|
|
1906
|
+
: `${this.getConstraintNameWithLimit(entityName, relationshipName, prodDatabaseType, noSnakeCase, 'fk_')}_id`;
|
|
1866
1907
|
}
|
|
1867
1908
|
|
|
1868
1909
|
/**
|
|
@@ -1874,7 +1915,10 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
1874
1915
|
* @param {boolean} noSnakeCase - do not convert names to snakecase
|
|
1875
1916
|
*/
|
|
1876
1917
|
getUXConstraintName(entityName, columnName, prodDatabaseType, noSnakeCase) {
|
|
1877
|
-
|
|
1918
|
+
// FIXME: In V8, this should use only this.getConstraintName that calculates constraint length correctly
|
|
1919
|
+
return prodDatabaseType === ORACLE
|
|
1920
|
+
? this.getConstraintName(entityName, columnName, prodDatabaseType, noSnakeCase, 'ux_')
|
|
1921
|
+
: `ux_${this.getConstraintNameWithLimit(entityName, columnName, prodDatabaseType, noSnakeCase)}`;
|
|
1878
1922
|
}
|
|
1879
1923
|
|
|
1880
1924
|
/**
|
|
@@ -2007,7 +2051,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
2007
2051
|
* Return the user home
|
|
2008
2052
|
*/
|
|
2009
2053
|
getUserHome() {
|
|
2010
|
-
return process.env[
|
|
2054
|
+
return process.env[isWin32 ? 'USERPROFILE' : 'HOME'];
|
|
2011
2055
|
}
|
|
2012
2056
|
|
|
2013
2057
|
/**
|
|
@@ -2143,7 +2187,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
2143
2187
|
buildCmd += ' -Pwar';
|
|
2144
2188
|
}
|
|
2145
2189
|
|
|
2146
|
-
if (
|
|
2190
|
+
if (!isWin32) {
|
|
2147
2191
|
buildCmd = `./${buildCmd}`;
|
|
2148
2192
|
}
|
|
2149
2193
|
buildCmd += ` -P${profile}`;
|
|
@@ -2169,7 +2213,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
|
|
|
2169
2213
|
buildCmd = `gradlew -x ${command}`;
|
|
2170
2214
|
}
|
|
2171
2215
|
|
|
2172
|
-
if (
|
|
2216
|
+
if (!isWin32) {
|
|
2173
2217
|
buildCmd = `./${buildCmd}`;
|
|
2174
2218
|
}
|
|
2175
2219
|
buildCmd += ` -P${profile}`;
|
|
@@ -2356,7 +2400,9 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2356
2400
|
assert(paramCount > 0, 'One of sections, blocks or files is required');
|
|
2357
2401
|
assert(paramCount === 1, 'Only one of sections, blocks or files must be provided');
|
|
2358
2402
|
|
|
2359
|
-
const { sections, blocks, templates, rootTemplatesPath, context = this } = options;
|
|
2403
|
+
const { sections, blocks, templates, rootTemplatesPath, context = this, transform: methodTransform = [] } = options;
|
|
2404
|
+
const { _: commonSpec = {} } = sections;
|
|
2405
|
+
const { transform: sectionTransform = [] } = commonSpec;
|
|
2360
2406
|
const startTime = new Date();
|
|
2361
2407
|
|
|
2362
2408
|
/* Build lookup order first has preference.
|
|
@@ -2392,20 +2438,18 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2392
2438
|
return val;
|
|
2393
2439
|
}
|
|
2394
2440
|
if (typeof val === 'function') {
|
|
2395
|
-
return val.call(this, context, this);
|
|
2441
|
+
return val.call(this, context, this) || false;
|
|
2396
2442
|
}
|
|
2397
2443
|
throw new Error(`Type not supported ${val}`);
|
|
2398
2444
|
};
|
|
2399
2445
|
|
|
2400
|
-
const renderTemplate = async ({ sourceFile, destinationFile, options, transform
|
|
2446
|
+
const renderTemplate = async ({ sourceFile, destinationFile, options, noEjs, transform, binary }) => {
|
|
2401
2447
|
const extension = path.extname(sourceFile);
|
|
2402
|
-
|
|
2448
|
+
binary = binary || ['.png', '.jpg', '.gif', '.svg', '.ico'].includes(extension);
|
|
2449
|
+
const appendEjs = noEjs === undefined ? !binary && extension !== '.ejs' : !noEjs;
|
|
2403
2450
|
const ejsFile = appendEjs || extension === '.ejs';
|
|
2404
2451
|
|
|
2405
|
-
|
|
2406
|
-
throw new Error(`Transform ${transform} value is not supported`);
|
|
2407
|
-
}
|
|
2408
|
-
destinationFile = transform ? normalizeEjs(destinationFile) : destinationFile;
|
|
2452
|
+
destinationFile = appendEjs ? normalizeEjs(destinationFile) : destinationFile;
|
|
2409
2453
|
|
|
2410
2454
|
let sourceFileFrom;
|
|
2411
2455
|
if (Array.isArray(rootTemplatesAbsolutePath)) {
|
|
@@ -2440,11 +2484,33 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2440
2484
|
if (!ejsFile) {
|
|
2441
2485
|
await this.copyTemplateAsync(sourceFileFrom, destinationFile);
|
|
2442
2486
|
} else {
|
|
2443
|
-
|
|
2487
|
+
let useAsync = true;
|
|
2488
|
+
if (context.entityClass) {
|
|
2489
|
+
const basename = path.basename(sourceFileFrom);
|
|
2490
|
+
if (context.configOptions && context.configOptions.sharedEntities) {
|
|
2491
|
+
Object.values(context.configOptions.sharedEntities).forEach(entity => {
|
|
2492
|
+
entity.resetFakerSeed(`${context.entityClass}-${basename}`);
|
|
2493
|
+
});
|
|
2494
|
+
} else if (context.resetFakerSeed) {
|
|
2495
|
+
context.resetFakerSeed(basename);
|
|
2496
|
+
}
|
|
2497
|
+
// Async calls will make the render method to be scheduled, allowing the faker key to change in the meantime.
|
|
2498
|
+
useAsync = false;
|
|
2499
|
+
}
|
|
2500
|
+
|
|
2501
|
+
const renderOptions = {
|
|
2444
2502
|
...options,
|
|
2445
2503
|
// Set root for ejs to lookup for partials.
|
|
2446
2504
|
root: rootTemplatesAbsolutePath,
|
|
2447
|
-
}
|
|
2505
|
+
};
|
|
2506
|
+
if (useAsync) {
|
|
2507
|
+
await this.renderTemplateAsync(sourceFileFrom, destinationFile, context, renderOptions);
|
|
2508
|
+
} else {
|
|
2509
|
+
this.renderTemplate(sourceFileFrom, destinationFile, context, renderOptions);
|
|
2510
|
+
}
|
|
2511
|
+
}
|
|
2512
|
+
if (!binary && transform && transform.length) {
|
|
2513
|
+
this.editFile(destinationFile, ...transform);
|
|
2448
2514
|
}
|
|
2449
2515
|
return destinationFile;
|
|
2450
2516
|
};
|
|
@@ -2452,10 +2518,13 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2452
2518
|
let parsedBlocks = blocks;
|
|
2453
2519
|
if (sections) {
|
|
2454
2520
|
assert(typeof sections === 'object', 'sections must be an object');
|
|
2455
|
-
const parsedSections = Object.entries(sections)
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2521
|
+
const parsedSections = Object.entries(sections)
|
|
2522
|
+
.map(([sectionName, sectionBlocks]) => {
|
|
2523
|
+
if (sectionName.startsWith('_')) return undefined;
|
|
2524
|
+
assert(Array.isArray(sectionBlocks), `Section must be an array for ${sectionName}`);
|
|
2525
|
+
return { sectionName, sectionBlocks };
|
|
2526
|
+
})
|
|
2527
|
+
.filter(Boolean);
|
|
2459
2528
|
|
|
2460
2529
|
parsedBlocks = parsedSections
|
|
2461
2530
|
.map(({ sectionName, sectionBlocks }) => {
|
|
@@ -2478,7 +2547,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2478
2547
|
from: blockFromCallback,
|
|
2479
2548
|
to: blockToCallback,
|
|
2480
2549
|
condition: blockConditionCallback,
|
|
2481
|
-
transform: blockTransform,
|
|
2550
|
+
transform: blockTransform = [],
|
|
2482
2551
|
} = block;
|
|
2483
2552
|
assert(typeof block === 'object', `Block must be an object for ${blockSpecPath}`);
|
|
2484
2553
|
assert(Array.isArray(block.templates), `Block templates must be an array for ${blockSpecPath}`);
|
|
@@ -2491,13 +2560,31 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2491
2560
|
return block.templates.map((fileSpec, fileIdx) => {
|
|
2492
2561
|
const fileSpecPath = `${blockSpecPath}[${fileIdx}]`;
|
|
2493
2562
|
assert(typeof fileSpec === 'object' || typeof fileSpec === 'string', `File must be an object or a string for ${fileSpecPath}`);
|
|
2563
|
+
let { noEjs } = fileSpec;
|
|
2564
|
+
let derivedTransform;
|
|
2565
|
+
if (typeof blockTransform === 'boolean') {
|
|
2566
|
+
noEjs = !blockTransform;
|
|
2567
|
+
derivedTransform = [...methodTransform, ...sectionTransform];
|
|
2568
|
+
} else {
|
|
2569
|
+
derivedTransform = [...methodTransform, ...sectionTransform, ...blockTransform];
|
|
2570
|
+
}
|
|
2494
2571
|
if (typeof fileSpec === 'string') {
|
|
2495
2572
|
const sourceFile = path.join(blockPath, fileSpec);
|
|
2496
2573
|
const destinationFile = this.destinationPath(blockTo, fileSpec);
|
|
2497
|
-
return { sourceFile, destinationFile, transform:
|
|
2574
|
+
return { sourceFile, destinationFile, noEjs, transform: derivedTransform };
|
|
2498
2575
|
}
|
|
2576
|
+
|
|
2577
|
+
const { options, file, renameTo, transform: fileTransform = [], binary } = fileSpec;
|
|
2499
2578
|
let { sourceFile, destinationFile } = fileSpec;
|
|
2500
|
-
|
|
2579
|
+
|
|
2580
|
+
if (typeof fileTransform === 'boolean') {
|
|
2581
|
+
noEjs = !fileTransform;
|
|
2582
|
+
} else if (Array.isArray(fileTransform)) {
|
|
2583
|
+
derivedTransform = [...derivedTransform, ...fileTransform];
|
|
2584
|
+
} else if (fileTransform !== undefined) {
|
|
2585
|
+
throw new Error(`Transform ${fileTransform} value is not supported`);
|
|
2586
|
+
}
|
|
2587
|
+
|
|
2501
2588
|
const normalizedFile = resolveCallback(sourceFile || file);
|
|
2502
2589
|
sourceFile = path.join(blockPath, normalizedFile);
|
|
2503
2590
|
destinationFile = this.destinationPath(blockTo, path.join(resolveCallback(destinationFile || renameTo, normalizedFile)));
|
|
@@ -2507,16 +2594,23 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2507
2594
|
this.debug(`skipping file ${destinationFile}`);
|
|
2508
2595
|
return undefined;
|
|
2509
2596
|
}
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
const {
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
transform = blockTransform;
|
|
2597
|
+
|
|
2598
|
+
// TODO remove for jhipster 8
|
|
2599
|
+
if (noEjs === undefined) {
|
|
2600
|
+
const { method } = fileSpec;
|
|
2601
|
+
if (method === 'copy') {
|
|
2602
|
+
noEjs = true;
|
|
2603
|
+
}
|
|
2518
2604
|
}
|
|
2519
|
-
|
|
2605
|
+
|
|
2606
|
+
return {
|
|
2607
|
+
sourceFile,
|
|
2608
|
+
destinationFile,
|
|
2609
|
+
options,
|
|
2610
|
+
transform: derivedTransform,
|
|
2611
|
+
noEjs,
|
|
2612
|
+
binary,
|
|
2613
|
+
};
|
|
2520
2614
|
});
|
|
2521
2615
|
})
|
|
2522
2616
|
.flat()
|
|
@@ -2703,9 +2797,15 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2703
2797
|
if (options.cypressCoverage !== undefined) {
|
|
2704
2798
|
this.jhipsterConfig.cypressCoverage = options.cypressCoverage;
|
|
2705
2799
|
}
|
|
2800
|
+
if (options.cypressAudit !== undefined) {
|
|
2801
|
+
this.jhipsterConfig.cypressAudit = options.cypressAudit;
|
|
2802
|
+
}
|
|
2706
2803
|
if (options.legacyDbNames !== undefined) {
|
|
2707
2804
|
this.jhipsterConfig.legacyDbNames = options.legacyDbNames;
|
|
2708
2805
|
}
|
|
2806
|
+
if (options.enableTranslation !== undefined) {
|
|
2807
|
+
this.jhipsterConfig.enableTranslation = options.enableTranslation;
|
|
2808
|
+
}
|
|
2709
2809
|
if (options.language) {
|
|
2710
2810
|
// workaround double options parsing, remove once generator supports skipping parse options
|
|
2711
2811
|
const languages = options.language.flat();
|
|
@@ -2826,6 +2926,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2826
2926
|
dest.skipUserManagement = config.skipUserManagement;
|
|
2827
2927
|
dest.skipCheckLengthOfIdentifier = config.skipCheckLengthOfIdentifier;
|
|
2828
2928
|
dest.microfrontend = config.microfrontend;
|
|
2929
|
+
dest.microfrontends = config.microfrontends;
|
|
2829
2930
|
|
|
2830
2931
|
dest.skipServer = config.skipServer;
|
|
2831
2932
|
dest.skipCommitHook = config.skipCommitHook;
|
|
@@ -2844,6 +2945,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2844
2945
|
|
|
2845
2946
|
dest.testFrameworks = config.testFrameworks || [];
|
|
2846
2947
|
dest.cypressCoverage = config.cypressCoverage;
|
|
2948
|
+
dest.cypressAudit = config.cypressAudit === undefined ? true : config.cypressAudit;
|
|
2847
2949
|
|
|
2848
2950
|
dest.remotes = Object.entries(config.applications || {}).map(([baseName, config]) => ({ baseName, ...config })) || [];
|
|
2849
2951
|
|
|
@@ -2881,7 +2983,14 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2881
2983
|
dest.endpointPrefix = !dest.applicationType || dest.applicationTypeMicroservice ? `services/${dest.lowercaseBaseName}` : '';
|
|
2882
2984
|
}
|
|
2883
2985
|
|
|
2884
|
-
if (dest.
|
|
2986
|
+
if (dest.microfrontends && dest.microfrontends.length > 0) {
|
|
2987
|
+
dest.microfrontends.forEach(microfrontend => {
|
|
2988
|
+
const { baseName } = microfrontend;
|
|
2989
|
+
microfrontend.lowercaseBaseName = baseName.toLowerCase();
|
|
2990
|
+
microfrontend.capitalizedBaseName = _.upperFirst(baseName);
|
|
2991
|
+
microfrontend.endpointPrefix = `services/${microfrontend.lowercaseBaseName}`;
|
|
2992
|
+
});
|
|
2993
|
+
} else if ((!dest.microfrontends || dest.microfrontends.length === 0) && dest.remotes) {
|
|
2885
2994
|
dest.remotes.forEach(app => this.loadDerivedAppConfig(app));
|
|
2886
2995
|
dest.microfrontends = dest.remotes.filter(r => r.clientFramework && r.clientFramework !== CLIENT_FRAMEWORK_NO);
|
|
2887
2996
|
}
|
|
@@ -2890,6 +2999,10 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
2890
2999
|
(dest.applicationTypeMicroservice && !dest.skipClient) ||
|
|
2891
3000
|
(dest.applicationTypeGateway && dest.microfrontends && dest.microfrontends.length > 0);
|
|
2892
3001
|
|
|
3002
|
+
if (dest.microfrontend && dest.applicationTypeMicroservice && !dest.gatewayServerPort) {
|
|
3003
|
+
dest.gatewayServerPort = 8080;
|
|
3004
|
+
}
|
|
3005
|
+
|
|
2893
3006
|
dest.authenticationTypeSession = dest.authenticationType === SESSION;
|
|
2894
3007
|
dest.authenticationTypeJwt = dest.authenticationType === JWT;
|
|
2895
3008
|
dest.authenticationTypeOauth2 = dest.authenticationType === OAUTH2;
|
|
@@ -3045,11 +3158,6 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
3045
3158
|
|
|
3046
3159
|
dest.searchEngineCouchbase = dest.searchEngine === COUCHBASE;
|
|
3047
3160
|
dest.searchEngineElasticsearch = dest.searchEngine === ELASTICSEARCH;
|
|
3048
|
-
|
|
3049
|
-
dest.reactiveSqlTestContainers =
|
|
3050
|
-
dest.reactive &&
|
|
3051
|
-
([MYSQL, POSTGRESQL, MSSQL, MARIADB].includes(dest.prodDatabaseType) ||
|
|
3052
|
-
[MYSQL, POSTGRESQL, MSSQL, MARIADB].includes(dest.devDatabaseType));
|
|
3053
3161
|
}
|
|
3054
3162
|
|
|
3055
3163
|
loadPlatformConfig(config = _.defaults({}, this.jhipsterConfig, this.jhipsterDefaults), dest = this) {
|
|
@@ -3192,7 +3300,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
3192
3300
|
* @experimental
|
|
3193
3301
|
* Load dependabot package.json into shared dependabot dependencies.
|
|
3194
3302
|
* @example this.loadDependabotDependencies(this.fetchFromInstalledJHipster('init', 'templates', 'package.json'));
|
|
3195
|
-
* @param
|
|
3303
|
+
* @param {string} packageJson - package.json path
|
|
3196
3304
|
*/
|
|
3197
3305
|
loadDependabotDependencies(packageJson) {
|
|
3198
3306
|
const { dependencies, devDependencies } = this.fs.readJSON(packageJson);
|
|
@@ -3261,7 +3369,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
3261
3369
|
* @experimental
|
|
3262
3370
|
* Load options from an object.
|
|
3263
3371
|
* When composing, we need to load options from others generators, externalising options allow to easily load them.
|
|
3264
|
-
* @param
|
|
3372
|
+
* @param {Object} [options] - Object containing options.
|
|
3265
3373
|
*/
|
|
3266
3374
|
jhipsterOptions(options = {}) {
|
|
3267
3375
|
options = _.cloneDeep(options);
|
|
@@ -3336,4 +3444,46 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
3336
3444
|
LANG: 'en',
|
|
3337
3445
|
});
|
|
3338
3446
|
}
|
|
3339
|
-
|
|
3447
|
+
|
|
3448
|
+
/**
|
|
3449
|
+
* Edit file content
|
|
3450
|
+
* @param {string} file
|
|
3451
|
+
* @param {...EditFileCallback} transformCallbacks
|
|
3452
|
+
* @returns {CascatedEditFileCallback}
|
|
3453
|
+
*/
|
|
3454
|
+
editFile(file, ...transformCallbacks) {
|
|
3455
|
+
let filePath = this.destinationPath(file);
|
|
3456
|
+
if (!this.env.sharedFs.existsInMemory(filePath) && this.env.sharedFs.existsInMemory(`${filePath}.jhi`)) {
|
|
3457
|
+
filePath = `${filePath}.jhi`;
|
|
3458
|
+
}
|
|
3459
|
+
|
|
3460
|
+
let content;
|
|
3461
|
+
|
|
3462
|
+
try {
|
|
3463
|
+
content = this.readDestination(filePath);
|
|
3464
|
+
} catch (_error) {
|
|
3465
|
+
if (transformCallbacks.length === 0) {
|
|
3466
|
+
throw new Error(`File ${filePath} doesn't exist`);
|
|
3467
|
+
}
|
|
3468
|
+
// allow to edit non existing files
|
|
3469
|
+
content = '';
|
|
3470
|
+
}
|
|
3471
|
+
|
|
3472
|
+
const writeCallback = (...callbacks) => {
|
|
3473
|
+
if (callbacks.length === 0) {
|
|
3474
|
+
return writeCallback;
|
|
3475
|
+
}
|
|
3476
|
+
try {
|
|
3477
|
+
content = joinCallbacks(...callbacks).call(this, content, filePath);
|
|
3478
|
+
this.writeDestination(filePath, content);
|
|
3479
|
+
} catch (error) {
|
|
3480
|
+
throw new Error(`Error editing file ${filePath}: ${error.message} at ${error.stack}`);
|
|
3481
|
+
}
|
|
3482
|
+
return writeCallback;
|
|
3483
|
+
};
|
|
3484
|
+
|
|
3485
|
+
return writeCallback(...transformCallbacks);
|
|
3486
|
+
}
|
|
3487
|
+
}
|
|
3488
|
+
|
|
3489
|
+
module.exports = JHipsterBaseGenerator;
|