generator-jhipster 7.8.0 → 7.9.1
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 +32 -32
- 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/gateway/gateway.component.ts.ejs +14 -0
- 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/gateway/gateway.tsx.ejs +9 -1
- 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/gateway/gateway.component.ts.ejs +14 -0
- 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 +11 -12
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +45 -35
- 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
|
@@ -25,6 +25,7 @@ const prioritiesForSub = subGenerator => (subGenerator.startsWith('entit') ? ENT
|
|
|
25
25
|
|
|
26
26
|
export const GENERATORS = 'generators';
|
|
27
27
|
export const SUB_GENERATORS = 'subGenerators';
|
|
28
|
+
export const ADDITIONAL_SUB_GENERATORS = 'additionalSubGenerators';
|
|
28
29
|
export const DYNAMIC = 'dynamic';
|
|
29
30
|
export const JS = 'js';
|
|
30
31
|
|
|
@@ -43,6 +44,11 @@ export const options = () => ({
|
|
|
43
44
|
type: Array,
|
|
44
45
|
scope: 'storage',
|
|
45
46
|
},
|
|
47
|
+
[ADDITIONAL_SUB_GENERATORS]: {
|
|
48
|
+
desc: 'Comma separated additional sub generators to generate',
|
|
49
|
+
type: String,
|
|
50
|
+
scope: 'storage',
|
|
51
|
+
},
|
|
46
52
|
[DYNAMIC]: {
|
|
47
53
|
desc: 'Genate dynamic generators (advanced)',
|
|
48
54
|
type: Boolean,
|
|
@@ -73,6 +79,7 @@ export const defaultConfig = () => ({
|
|
|
73
79
|
[DYNAMIC]: false,
|
|
74
80
|
[JS]: false,
|
|
75
81
|
[SUB_GENERATORS]: [],
|
|
82
|
+
[ADDITIONAL_SUB_GENERATORS]: '',
|
|
76
83
|
});
|
|
77
84
|
|
|
78
85
|
export const defaultSubGeneratorConfig = () => ({
|
|
@@ -91,6 +98,7 @@ const allSubGeneratorConfig = subGenerator => ({
|
|
|
91
98
|
export const allGeneratorsConfig = () => ({
|
|
92
99
|
...requiredConfig,
|
|
93
100
|
[SUB_GENERATORS]: Object.values(GENERATOR_LIST),
|
|
101
|
+
[ADDITIONAL_SUB_GENERATORS]: '',
|
|
94
102
|
[DYNAMIC]: false,
|
|
95
103
|
[JS]: false,
|
|
96
104
|
[GENERATORS]: Object.fromEntries(
|
|
@@ -110,6 +118,17 @@ export const prompts = () => {
|
|
|
110
118
|
pageSize: 30,
|
|
111
119
|
loop: false,
|
|
112
120
|
},
|
|
121
|
+
{
|
|
122
|
+
type: 'input',
|
|
123
|
+
name: ADDITIONAL_SUB_GENERATORS,
|
|
124
|
+
message: 'Comma separated additional sub-generators.',
|
|
125
|
+
validate: input => {
|
|
126
|
+
if (input) {
|
|
127
|
+
return /^([\w,-]*)$/.test(input) ? true : 'Please provide valid generator names';
|
|
128
|
+
}
|
|
129
|
+
return true;
|
|
130
|
+
},
|
|
131
|
+
},
|
|
113
132
|
{
|
|
114
133
|
type: 'confirm',
|
|
115
134
|
name: 'cli',
|
|
@@ -119,11 +138,12 @@ export const prompts = () => {
|
|
|
119
138
|
];
|
|
120
139
|
};
|
|
121
140
|
|
|
122
|
-
export const subGeneratorPrompts = subGenerator => {
|
|
141
|
+
export const subGeneratorPrompts = (subGenerator, additionalSubGenerator) => {
|
|
123
142
|
return [
|
|
124
143
|
{
|
|
125
144
|
type: 'confirm',
|
|
126
145
|
name: SBS,
|
|
146
|
+
when: !additionalSubGenerator,
|
|
127
147
|
message: `Is ${chalk.yellow(subGenerator)} generator a side-by-side blueprint?`,
|
|
128
148
|
default: true,
|
|
129
149
|
},
|
|
@@ -139,7 +159,7 @@ export const subGeneratorPrompts = subGenerator => {
|
|
|
139
159
|
message: `What task do you want do implement at ${chalk.yellow(subGenerator)} generator?`,
|
|
140
160
|
choices: prioritiesForSub(subGenerator),
|
|
141
161
|
pageSize: 30,
|
|
142
|
-
default: answers => (answers.sbs ? [] : prioritiesForSub(subGenerator)),
|
|
162
|
+
default: answers => (answers.sbs || additionalSubGenerator ? [] : prioritiesForSub(subGenerator)),
|
|
143
163
|
loop: false,
|
|
144
164
|
},
|
|
145
165
|
];
|
|
@@ -21,6 +21,7 @@ import lodash from 'lodash';
|
|
|
21
21
|
import { readFile } from 'fs/promises';
|
|
22
22
|
|
|
23
23
|
import BaseBlueprintGenerator from '../generator-base-blueprint.js';
|
|
24
|
+
import { SKIP_COMMIT_HOOK } from '../init/constants.cjs';
|
|
24
25
|
import {
|
|
25
26
|
PRIORITY_PREFIX,
|
|
26
27
|
INITIALIZING_PRIORITY,
|
|
@@ -45,6 +46,7 @@ import {
|
|
|
45
46
|
GENERATORS,
|
|
46
47
|
PRIORITIES,
|
|
47
48
|
SUB_GENERATORS,
|
|
49
|
+
ADDITIONAL_SUB_GENERATORS,
|
|
48
50
|
WRITTEN,
|
|
49
51
|
} from './constants.mjs';
|
|
50
52
|
|
|
@@ -73,6 +75,9 @@ export default class extends BaseBlueprintGenerator {
|
|
|
73
75
|
if (this.options.defaults) {
|
|
74
76
|
this.config.defaults(defaultConfig());
|
|
75
77
|
}
|
|
78
|
+
this.config.defaults({
|
|
79
|
+
[SKIP_COMMIT_HOOK]: true,
|
|
80
|
+
});
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
/** @inheritdoc */
|
|
@@ -120,6 +125,16 @@ export default class extends BaseBlueprintGenerator {
|
|
|
120
125
|
await this.prompt(subGeneratorPrompts(subGenerator), subGeneratorStorage);
|
|
121
126
|
}
|
|
122
127
|
},
|
|
128
|
+
async eachAdditionalSubGenerator() {
|
|
129
|
+
const additionalSubGenerators = this.config.get(ADDITIONAL_SUB_GENERATORS) || '';
|
|
130
|
+
for (const subGenerator of additionalSubGenerators
|
|
131
|
+
.split(',')
|
|
132
|
+
.map(sub => sub.trim())
|
|
133
|
+
.filter(Boolean)) {
|
|
134
|
+
const subGeneratorStorage = this.getSubGeneratorStorage(subGenerator);
|
|
135
|
+
await this.prompt(subGeneratorPrompts(subGenerator, true), subGeneratorStorage);
|
|
136
|
+
}
|
|
137
|
+
},
|
|
123
138
|
};
|
|
124
139
|
}
|
|
125
140
|
|
|
@@ -161,7 +176,8 @@ export default class extends BaseBlueprintGenerator {
|
|
|
161
176
|
return {
|
|
162
177
|
prepareCommands() {
|
|
163
178
|
this.application.commands = [];
|
|
164
|
-
|
|
179
|
+
if (!this.application[GENERATORS]) return;
|
|
180
|
+
for (const generator of Object.keys(this.application[GENERATORS])) {
|
|
165
181
|
const subGeneratorConfig = this.getSubGeneratorStorage(generator).getAll();
|
|
166
182
|
if (subGeneratorConfig.command) {
|
|
167
183
|
this.application.commands.push(generator);
|
|
@@ -184,8 +200,10 @@ export default class extends BaseBlueprintGenerator {
|
|
|
184
200
|
sections: files,
|
|
185
201
|
context: this.application,
|
|
186
202
|
});
|
|
187
|
-
|
|
188
|
-
|
|
203
|
+
},
|
|
204
|
+
async writingGenerators() {
|
|
205
|
+
if (!this.application[GENERATORS]) return;
|
|
206
|
+
for (const generator of Object.keys(this.application[GENERATORS])) {
|
|
189
207
|
const subGeneratorStorage = this.getSubGeneratorStorage(generator);
|
|
190
208
|
const subGeneratorConfig = subGeneratorStorage.getAll();
|
|
191
209
|
const priorities = (subGeneratorConfig[PRIORITIES] || []).map(priority => ({
|
|
@@ -199,6 +217,7 @@ export default class extends BaseBlueprintGenerator {
|
|
|
199
217
|
...defaultSubGeneratorConfig(),
|
|
200
218
|
...subGeneratorConfig,
|
|
201
219
|
generator,
|
|
220
|
+
customGenerator,
|
|
202
221
|
jhipsterGenerator,
|
|
203
222
|
subGenerator: generator,
|
|
204
223
|
generatorClass: upperFirst(camelCase(jhipsterGenerator)),
|
|
@@ -234,8 +253,8 @@ export default class extends BaseBlueprintGenerator {
|
|
|
234
253
|
lint: 'eslint .',
|
|
235
254
|
'lint-fix': 'npm run ejslint && npm run lint -- --fix',
|
|
236
255
|
mocha: 'mocha generators --no-insight --forbid-only',
|
|
237
|
-
'prettier-format': 'prettier --write "{,**/}*.{js,cjs,mjs,
|
|
238
|
-
pretest: 'npm run lint',
|
|
256
|
+
'prettier-format': 'prettier --write "{,**/}*.{md,json,yml,html,js,cjs,mjs,ts,tsx,css,scss,vue,java}"',
|
|
257
|
+
pretest: 'npm run prettier-check && npm run lint',
|
|
239
258
|
test: 'npm run mocha --',
|
|
240
259
|
'update-snapshot': 'npm run mocha -- --no-parallel --updateSnapshot',
|
|
241
260
|
},
|
|
@@ -331,7 +350,7 @@ To begin to work:
|
|
|
331
350
|
- launch: ${chalk.yellow.bold('npm install')}
|
|
332
351
|
- link: ${chalk.yellow.bold('npm link')}
|
|
333
352
|
- link JHipster: ${chalk.yellow.bold('npm link generator-jhipster')}
|
|
334
|
-
- test your module in a JHipster project:
|
|
353
|
+
- test your module in a JHipster project:
|
|
335
354
|
- create a new directory and go into it
|
|
336
355
|
- link the blueprint: ${chalk.yellow.bold(`npm link generator-jhipster-${this.moduleName}`)}
|
|
337
356
|
- launch JHipster with flags: ${chalk.yellow.bold(`jhipster --blueprints ${this.moduleName}`)}
|
|
@@ -18,15 +18,17 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
name: Generator
|
|
20
20
|
on: [push, pull_request]
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
21
23
|
jobs:
|
|
22
24
|
<%= baseName %>:
|
|
23
25
|
name: npm-test
|
|
24
26
|
runs-on: ubuntu-20.04
|
|
25
27
|
timeout-minutes: 10
|
|
26
28
|
steps:
|
|
27
|
-
- uses: actions/checkout@
|
|
28
|
-
- uses: actions/setup-node@
|
|
29
|
+
- uses: actions/checkout@v3
|
|
30
|
+
- uses: actions/setup-node@v3
|
|
29
31
|
with:
|
|
30
|
-
node-version:
|
|
32
|
+
node-version: 16
|
|
31
33
|
- run: npm ci
|
|
32
34
|
- run: npm run test
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
module.exports = {
|
|
20
20
|
<% for (const command of commands) { %>
|
|
21
21
|
'<%= command %>': {
|
|
22
|
-
desc: 'Run <%= command %>',
|
|
22
|
+
desc: 'Run <%= command %> sub-generator (<%= baseName %> blueprint)',
|
|
23
|
+
blueprint: 'generator-jhipster-<%= baseName %>',
|
|
23
24
|
},
|
|
24
25
|
<% } %>
|
|
25
26
|
};
|
|
@@ -35,7 +35,6 @@ import {
|
|
|
35
35
|
} from 'generator-jhipster/esm/priorities';
|
|
36
36
|
<%_ } _%>
|
|
37
37
|
|
|
38
|
-
|
|
39
38
|
<%_ if (application.dynamic) { _%>
|
|
40
39
|
// eslint-disable-next-line import/prefer-default-export
|
|
41
40
|
export async function createGenerator(env) {
|
|
@@ -57,13 +56,15 @@ export default class extends <%= generatorClass %>Generator {
|
|
|
57
56
|
super(args, opts, { taskPrefix: PRIORITY_PREFIX, ...features });
|
|
58
57
|
|
|
59
58
|
if (this.options.help) return;
|
|
59
|
+
<%_ if (!customGenerator) { _%>
|
|
60
60
|
|
|
61
61
|
if (!this.options.jhipsterContext) {
|
|
62
62
|
throw new Error(`This is a JHipster blueprint and should be used only like ${chalk.yellow('jhipster --blueprints <%= application.baseName %>')}`);
|
|
63
63
|
}
|
|
64
|
-
<%_ if (sbs) { _%>
|
|
64
|
+
<%_ if (sbs) { _%>
|
|
65
65
|
|
|
66
66
|
this.sbsBlueprint = true
|
|
67
|
+
<%_ } _%>
|
|
67
68
|
<%_ } _%>
|
|
68
69
|
}
|
|
69
70
|
|
|
@@ -73,6 +74,9 @@ export default class extends <%= generatorClass %>Generator {
|
|
|
73
74
|
|
|
74
75
|
get [<%= priority.constant %>]() {
|
|
75
76
|
return {
|
|
77
|
+
<%_ if (!sbs) { _%>
|
|
78
|
+
...super._<%= priority.name %>(),
|
|
79
|
+
<%_ } _%>
|
|
76
80
|
async <%= priority.name %>TemplateTask() {
|
|
77
81
|
<%_ if (priority.name == 'writing') { %>
|
|
78
82
|
await this.writeFiles({
|
|
@@ -85,9 +89,6 @@ export default class extends <%= generatorClass %>Generator {
|
|
|
85
89
|
});
|
|
86
90
|
<%_ } %>
|
|
87
91
|
},
|
|
88
|
-
<%_ if (!sbs) { _%>
|
|
89
|
-
...super._<%= priority.name %>(),
|
|
90
|
-
<%_ } _%>
|
|
91
92
|
};
|
|
92
93
|
}
|
|
93
94
|
<& } -&>
|
|
@@ -20,16 +20,25 @@ import expect from 'expect';
|
|
|
20
20
|
|
|
21
21
|
import { helpers, lookups } from '#test-utils';
|
|
22
22
|
|
|
23
|
+
const SUB_GENERATOR = '<%= subGenerator %>';
|
|
24
|
+
<%_ if (customGenerator) { _%>
|
|
25
|
+
const SUB_GENERATOR_NAMESPACE = `jhipster-<%= application.baseName %>:${SUB_GENERATOR}`;
|
|
26
|
+
<%_ } else { _%>
|
|
27
|
+
const BLUEPRINT_NAMESPACE = `jhipster:${SUB_GENERATOR}`;
|
|
28
|
+
<%_ } _%>
|
|
29
|
+
|
|
23
30
|
describe('SubGenerator <%= subGenerator %> of <%= application.baseName %> JHipster blueprint', () => {
|
|
24
31
|
describe('run', () => {
|
|
25
32
|
let result;
|
|
26
33
|
before(async function() {
|
|
27
34
|
result = await helpers
|
|
28
|
-
.create('
|
|
35
|
+
.create(<%= customGenerator ? 'SUB_GENERATOR_NAMESPACE' : 'BLUEPRINT_NAMESPACE' %>)
|
|
29
36
|
.withOptions({
|
|
30
37
|
reproducible: true,
|
|
31
38
|
defaults: true,
|
|
39
|
+
<%_ if (!customGenerator) { _%>
|
|
32
40
|
blueprint: '<%= application.baseName %>',
|
|
41
|
+
<%_ } _%>
|
|
33
42
|
})
|
|
34
43
|
.withLookups(lookups)
|
|
35
44
|
.run();
|
|
@@ -383,6 +383,7 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
383
383
|
_isPriorityMissing(priorityName, destPriority = 'related') {
|
|
384
384
|
const ownPrototype = Object.getPrototypeOf(this);
|
|
385
385
|
const parentPrototype = Object.getPrototypeOf(ownPrototype);
|
|
386
|
+
priorityName = `${this.features.taskPrefix || ''}${priorityName}`;
|
|
386
387
|
if (
|
|
387
388
|
parentPrototype !== JHipsterBaseBlueprintGenerator.prototype &&
|
|
388
389
|
!Object.getOwnPropertyDescriptor(ownPrototype, priorityName) &&
|
|
@@ -482,7 +483,7 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
482
483
|
* Compose external blueprint module
|
|
483
484
|
* @param {string} blueprint - name of the blueprint
|
|
484
485
|
* @param {string} subGen - sub generator
|
|
485
|
-
* @param {any}
|
|
486
|
+
* @param {any} [extraOptions] - options to pass to blueprint generator
|
|
486
487
|
* @return {Generator|undefined}
|
|
487
488
|
*/
|
|
488
489
|
async _composeBlueprint(blueprint, subGen, extraOptions = {}) {
|
|
@@ -534,7 +535,11 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
534
535
|
this.warning(`Could not retrieve packagePath of blueprint '${blueprintPkgName}'`);
|
|
535
536
|
return undefined;
|
|
536
537
|
}
|
|
537
|
-
|
|
538
|
+
const packageJsonFile = path.join(blueprintPackagePath, 'package.json');
|
|
539
|
+
if (!fs.existsSync(packageJsonFile)) {
|
|
540
|
+
return undefined;
|
|
541
|
+
}
|
|
542
|
+
return JSON.parse(fs.readFileSync(packageJsonFile));
|
|
538
543
|
}
|
|
539
544
|
|
|
540
545
|
/**
|
|
@@ -561,13 +566,7 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
561
566
|
if (blueprint === 'generator-jhipster') {
|
|
562
567
|
this.error(`You cannot use ${chalk.yellow(blueprint)} as the blueprint.`);
|
|
563
568
|
}
|
|
564
|
-
|
|
565
|
-
this.error(
|
|
566
|
-
`The ${chalk.yellow(blueprint)} blueprint provided is not installed. Please install it using command ${chalk.yellow(
|
|
567
|
-
`npm i -g ${blueprint}`
|
|
568
|
-
)}.`
|
|
569
|
-
);
|
|
570
|
-
}
|
|
569
|
+
this._findBlueprintPackageJson(blueprint);
|
|
571
570
|
}
|
|
572
571
|
|
|
573
572
|
/**
|
|
@@ -583,19 +582,19 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
583
582
|
}
|
|
584
583
|
const mainGeneratorJhipsterVersion = packagejs.version;
|
|
585
584
|
const blueprintJhipsterVersion = blueprintPackageJson.dependencies && blueprintPackageJson.dependencies['generator-jhipster'];
|
|
586
|
-
if (blueprintJhipsterVersion && !semver.valid(blueprintJhipsterVersion) && !semver.validRange(blueprintJhipsterVersion)) {
|
|
587
|
-
this.info(`Blueprint ${blueprintPkgName} contains generator-jhipster dependency with non comparable version`);
|
|
588
|
-
return;
|
|
589
|
-
}
|
|
590
585
|
if (blueprintJhipsterVersion) {
|
|
591
|
-
if (
|
|
592
|
-
this.
|
|
593
|
-
|
|
594
|
-
blueprintPkgName
|
|
595
|
-
)} blueprint targets JHipster v${blueprintJhipsterVersion} and is not compatible with this JHipster version. Either update the blueprint or JHipster. You can also disable this check using --skip-checks at your own risk`
|
|
596
|
-
);
|
|
586
|
+
if (!semver.valid(blueprintJhipsterVersion) && !semver.validRange(blueprintJhipsterVersion)) {
|
|
587
|
+
this.info(`Blueprint ${blueprintPkgName} contains generator-jhipster dependency with non comparable version`);
|
|
588
|
+
return;
|
|
597
589
|
}
|
|
598
|
-
|
|
590
|
+
if (semver.satisfies(mainGeneratorJhipsterVersion, blueprintJhipsterVersion)) {
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
593
|
+
throw new Error(
|
|
594
|
+
`The installed ${chalk.yellow(
|
|
595
|
+
blueprintPkgName
|
|
596
|
+
)} blueprint targets JHipster v${blueprintJhipsterVersion} and is not compatible with this JHipster version. Either update the blueprint or JHipster. You can also disable this check using --skip-checks at your own risk`
|
|
597
|
+
);
|
|
599
598
|
}
|
|
600
599
|
const blueprintPeerJhipsterVersion =
|
|
601
600
|
blueprintPackageJson.peerDependencies && blueprintPackageJson.peerDependencies['generator-jhipster'];
|
|
@@ -34,6 +34,8 @@ const { languageToJavaLanguage } = require('./utils');
|
|
|
34
34
|
const JSONToJDLEntityConverter = require('../jdl/converters/json-to-jdl-entity-converter');
|
|
35
35
|
const JSONToJDLOptionConverter = require('../jdl/converters/json-to-jdl-option-converter');
|
|
36
36
|
const { stringify } = require('../utils');
|
|
37
|
+
const { fieldIsEnum } = require('../utils/field');
|
|
38
|
+
const { databaseData } = require('./sql-constants');
|
|
37
39
|
|
|
38
40
|
const { ANGULAR, REACT, VUE } = SUPPORTED_CLIENT_FRAMEWORKS;
|
|
39
41
|
const dbTypes = require('../jdl/jhipster/field-types');
|
|
@@ -104,6 +106,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
104
106
|
* @param {any} _this - reference to generator
|
|
105
107
|
* @param {string} resourceDir - resource directory
|
|
106
108
|
* @param {string} lang - language code
|
|
109
|
+
* @param {string} testResourceDir - test resource directory
|
|
107
110
|
*/
|
|
108
111
|
installI18nServerFilesByLanguage(_this, resourceDir, lang, testResourceDir) {
|
|
109
112
|
const generator = _this || this;
|
|
@@ -196,6 +199,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
196
199
|
* Update Languages In MailServiceIT
|
|
197
200
|
*
|
|
198
201
|
* @param languages
|
|
202
|
+
* @param packageFolder
|
|
199
203
|
*/
|
|
200
204
|
updateLanguagesInLanguageMailServiceIT(languages, packageFolder) {
|
|
201
205
|
const fullPath = `${SERVER_TEST_SRC_DIR}${packageFolder}/service/MailServiceIT.java`;
|
|
@@ -431,7 +435,9 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
431
435
|
if (this.options.reproducible) {
|
|
432
436
|
return projectNameReproducibleConfigForTests.baseName;
|
|
433
437
|
}
|
|
434
|
-
return /^[a-zA-Z0-9_]+$/.test(path.basename(process.cwd()))
|
|
438
|
+
return /^[a-zA-Z0-9_-]+$/.test(path.basename(process.cwd()))
|
|
439
|
+
? path.basename(process.cwd()).replace('generator-jhipster-', '')
|
|
440
|
+
: 'jhipster';
|
|
435
441
|
}
|
|
436
442
|
|
|
437
443
|
/**
|
|
@@ -545,10 +551,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
545
551
|
* @returns {boolean} true if input is number; false otherwise
|
|
546
552
|
*/
|
|
547
553
|
isNumber(input) {
|
|
548
|
-
|
|
549
|
-
return false;
|
|
550
|
-
}
|
|
551
|
-
return true;
|
|
554
|
+
return !isNaN(this.filterNumber(input));
|
|
552
555
|
}
|
|
553
556
|
|
|
554
557
|
/**
|
|
@@ -556,10 +559,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
556
559
|
* @returns {boolean} true if input is a signed number; false otherwise
|
|
557
560
|
*/
|
|
558
561
|
isSignedNumber(input) {
|
|
559
|
-
|
|
560
|
-
return false;
|
|
561
|
-
}
|
|
562
|
-
return true;
|
|
562
|
+
return !isNaN(this.filterNumber(input, true));
|
|
563
563
|
}
|
|
564
564
|
|
|
565
565
|
/**
|
|
@@ -567,10 +567,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
567
567
|
* @returns {boolean} true if input is a signed decimal number; false otherwise
|
|
568
568
|
*/
|
|
569
569
|
isSignedDecimalNumber(input) {
|
|
570
|
-
|
|
571
|
-
return false;
|
|
572
|
-
}
|
|
573
|
-
return true;
|
|
570
|
+
return !isNaN(this.filterNumber(input, true, true));
|
|
574
571
|
}
|
|
575
572
|
|
|
576
573
|
/**
|
|
@@ -850,6 +847,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
850
847
|
* Generate Entity Client Field Default Values
|
|
851
848
|
*
|
|
852
849
|
* @param {Array|Object} fields - array of fields
|
|
850
|
+
* @param [clientFramework]
|
|
853
851
|
* @returns {Array} defaultVariablesValues
|
|
854
852
|
*/
|
|
855
853
|
generateEntityClientFieldDefaultValues(fields, clientFramework = ANGULAR) {
|
|
@@ -871,7 +869,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
871
869
|
/**
|
|
872
870
|
* Find key type for Typescript
|
|
873
871
|
*
|
|
874
|
-
* @param {string} primaryKey - primary key definition
|
|
872
|
+
* @param {string | object} primaryKey - primary key definition
|
|
875
873
|
* @returns {string} primary key type in Typescript
|
|
876
874
|
*/
|
|
877
875
|
getTypescriptKeyType(primaryKey) {
|
|
@@ -884,6 +882,28 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
884
882
|
return 'string';
|
|
885
883
|
}
|
|
886
884
|
|
|
885
|
+
/**
|
|
886
|
+
* Find type for Typescript
|
|
887
|
+
*
|
|
888
|
+
* @param {string} fieldType - field type
|
|
889
|
+
* @returns {string} field type in Typescript
|
|
890
|
+
*/
|
|
891
|
+
getTypescriptType(fieldType) {
|
|
892
|
+
if ([TYPE_INTEGER, TYPE_LONG, TYPE_FLOAT, TYPE_DOUBLE, TYPE_BIG_DECIMAL].includes(fieldType)) {
|
|
893
|
+
return 'number';
|
|
894
|
+
}
|
|
895
|
+
if ([TYPE_LOCAL_DATE, TYPE_ZONED_DATE_TIME, TYPE_INSTANT].includes(fieldType)) {
|
|
896
|
+
return 'dayjs.Dayjs';
|
|
897
|
+
}
|
|
898
|
+
if ([TYPE_BOOLEAN].includes(fieldType)) {
|
|
899
|
+
return 'boolean';
|
|
900
|
+
}
|
|
901
|
+
if (fieldIsEnum(fieldType)) {
|
|
902
|
+
return fieldType;
|
|
903
|
+
}
|
|
904
|
+
return 'string';
|
|
905
|
+
}
|
|
906
|
+
|
|
887
907
|
/**
|
|
888
908
|
* Generate Entity Client Field Declarations
|
|
889
909
|
*
|
|
@@ -891,6 +911,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
891
911
|
* @param {Array|Object} fields - array of fields
|
|
892
912
|
* @param {Array|Object} relationships - array of relationships
|
|
893
913
|
* @param {string} dto - dto
|
|
914
|
+
* @param [customDateType]
|
|
894
915
|
* @param {boolean} embedded - either the actual entity is embedded or not
|
|
895
916
|
* @returns variablesWithTypes: Array
|
|
896
917
|
*/
|
|
@@ -985,13 +1006,13 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
985
1006
|
const typeImports = new Map();
|
|
986
1007
|
const uniqueEnums = {};
|
|
987
1008
|
fields.forEach(field => {
|
|
988
|
-
const
|
|
989
|
-
if (field.fieldIsEnum && (!uniqueEnums[
|
|
990
|
-
const importType = `${
|
|
1009
|
+
const { enumFileName, fieldType } = field;
|
|
1010
|
+
if (field.fieldIsEnum && (!uniqueEnums[fieldType] || (uniqueEnums[fieldType] && field.fieldValues.length !== 0))) {
|
|
1011
|
+
const importType = `${fieldType}`;
|
|
991
1012
|
const basePath = clientFramework === VUE ? '@' : 'app';
|
|
992
1013
|
const modelPath = clientFramework === ANGULAR ? 'entities' : 'shared/model';
|
|
993
|
-
const importPath = `${basePath}/${modelPath}/enumerations/${
|
|
994
|
-
uniqueEnums[
|
|
1014
|
+
const importPath = `${basePath}/${modelPath}/enumerations/${enumFileName}.model`;
|
|
1015
|
+
uniqueEnums[fieldType] = field.fieldType;
|
|
995
1016
|
typeImports.set(importType, importPath);
|
|
996
1017
|
}
|
|
997
1018
|
});
|
|
@@ -1044,6 +1065,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
1044
1065
|
/**
|
|
1045
1066
|
* Generate language objects in array of "'en': { name: 'English' }" format
|
|
1046
1067
|
* @param {string[]} languages
|
|
1068
|
+
* @param clientFramework
|
|
1047
1069
|
* @returns generated language options
|
|
1048
1070
|
*/
|
|
1049
1071
|
generateLanguageOptions(languages, clientFramework) {
|
|
@@ -1149,10 +1171,48 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
1149
1171
|
);
|
|
1150
1172
|
}
|
|
1151
1173
|
|
|
1174
|
+
/**
|
|
1175
|
+
* Generate a test entity, according to the references
|
|
1176
|
+
*
|
|
1177
|
+
* @param references
|
|
1178
|
+
* @param additionalFields
|
|
1179
|
+
* @return {String} test sample
|
|
1180
|
+
*/
|
|
1181
|
+
generateTypescriptTestEntity(references, additionalFields = {}) {
|
|
1182
|
+
const entries = references
|
|
1183
|
+
.map(reference => {
|
|
1184
|
+
if (reference.field) {
|
|
1185
|
+
const field = reference.field;
|
|
1186
|
+
const { fieldIsEnum, fieldType, fieldTypeTimed, fieldTypeLocalDate, fieldWithContentType, fieldName, contentTypeFieldName } =
|
|
1187
|
+
field;
|
|
1188
|
+
|
|
1189
|
+
const fakeData = field.generateFakeData('ts');
|
|
1190
|
+
if (fieldWithContentType) {
|
|
1191
|
+
return [
|
|
1192
|
+
[fieldName, fakeData],
|
|
1193
|
+
[contentTypeFieldName, "'unknown'"],
|
|
1194
|
+
];
|
|
1195
|
+
}
|
|
1196
|
+
if (fieldIsEnum) {
|
|
1197
|
+
return [[fieldName, `${fieldType}[${fakeData}]`]];
|
|
1198
|
+
}
|
|
1199
|
+
if (fieldTypeTimed || fieldTypeLocalDate) {
|
|
1200
|
+
return [[fieldName, `dayjs(${fakeData})`]];
|
|
1201
|
+
}
|
|
1202
|
+
return [[fieldName, fakeData]];
|
|
1203
|
+
}
|
|
1204
|
+
return [[reference.name, this.generateTestEntityId(reference.type, 'random', false)]];
|
|
1205
|
+
})
|
|
1206
|
+
.flat();
|
|
1207
|
+
return `{
|
|
1208
|
+
${[...entries, ...Object.entries(additionalFields)].map(([key, value]) => `${key}: ${value}`).join(',\n ')}
|
|
1209
|
+
}`;
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1152
1212
|
/**
|
|
1153
1213
|
* Generate a test entity, according to the type
|
|
1154
1214
|
*
|
|
1155
|
-
* @param
|
|
1215
|
+
* @param references
|
|
1156
1216
|
* @param {number} [index] - index of the primary key sample, pass undefined for a random key.
|
|
1157
1217
|
*/
|
|
1158
1218
|
generateTestEntity(references, index = 'random') {
|
|
@@ -1205,62 +1265,54 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
1205
1265
|
if (!protocol) {
|
|
1206
1266
|
throw new Error('protocol is required');
|
|
1207
1267
|
}
|
|
1208
|
-
|
|
1268
|
+
const { databaseName } = options;
|
|
1269
|
+
if (!databaseName) {
|
|
1209
1270
|
throw new Error("option 'databaseName' is required");
|
|
1210
1271
|
}
|
|
1211
1272
|
if ([MYSQL, MARIADB, POSTGRESQL, ORACLE, MSSQL].includes(databaseType) && !options.hostname) {
|
|
1212
1273
|
throw new Error(`option 'hostname' is required for ${databaseType} databaseType`);
|
|
1274
|
+
} else if (![MYSQL, MARIADB, POSTGRESQL, ORACLE, MSSQL, H2_DISK, H2_MEMORY].includes(databaseType)) {
|
|
1275
|
+
throw new Error(`${databaseType} databaseType is not supported`);
|
|
1213
1276
|
}
|
|
1214
|
-
let
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
}
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
}
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
}
|
|
1233
|
-
} else if (databaseType === H2_DISK) {
|
|
1234
|
-
if (!options.localDirectory) {
|
|
1235
|
-
throw new Error(`'localDirectory' option should be provided for ${databaseType} databaseType`);
|
|
1236
|
-
}
|
|
1237
|
-
if (protocol === 'r2dbc') {
|
|
1238
|
-
dbcUrl = `${protocol}:h2:file://${options.localDirectory}/${options.databaseName}`;
|
|
1239
|
-
} else {
|
|
1240
|
-
dbcUrl = `${protocol}:h2:file:${options.localDirectory}/${options.databaseName}`;
|
|
1241
|
-
}
|
|
1242
|
-
extraOptions = ';DB_CLOSE_DELAY=-1';
|
|
1243
|
-
} else if (databaseType === H2_MEMORY) {
|
|
1244
|
-
if (protocol === 'r2dbc') {
|
|
1245
|
-
dbcUrl = `${protocol}:h2:mem:///${options.databaseName}`;
|
|
1246
|
-
} else {
|
|
1247
|
-
dbcUrl = `${protocol}:h2:mem:${options.databaseName}`;
|
|
1248
|
-
}
|
|
1249
|
-
extraOptions = ';DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE';
|
|
1277
|
+
let databaseDataForType = databaseData[databaseType];
|
|
1278
|
+
if (databaseDataForType[protocol]) {
|
|
1279
|
+
databaseDataForType = {
|
|
1280
|
+
...databaseDataForType,
|
|
1281
|
+
...databaseDataForType[protocol],
|
|
1282
|
+
};
|
|
1283
|
+
}
|
|
1284
|
+
const { protocolSuffix = '', extraOptions = '', useDirectory = false } = databaseDataForType;
|
|
1285
|
+
let { port = '' } = databaseDataForType;
|
|
1286
|
+
if (useDirectory && !options.localDirectory) {
|
|
1287
|
+
throw new Error(`'localDirectory' option should be provided for ${databaseType} databaseType`);
|
|
1288
|
+
}
|
|
1289
|
+
const databaseHasHost = options.hostname;
|
|
1290
|
+
if (options.itests && H2_MEMORY === databaseType) {
|
|
1291
|
+
port = ':12344';
|
|
1292
|
+
}
|
|
1293
|
+
let url = `${protocol}:${protocolSuffix}`;
|
|
1294
|
+
if (options.localDirectory) {
|
|
1295
|
+
url += `${options.localDirectory}/`;
|
|
1250
1296
|
} else {
|
|
1251
|
-
|
|
1297
|
+
url += databaseHasHost ? options.hostname : databaseName;
|
|
1298
|
+
url += port;
|
|
1252
1299
|
}
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
dbcUrl += extraOptions;
|
|
1300
|
+
if (databaseHasHost || options.localDirectory) {
|
|
1301
|
+
url += databaseName;
|
|
1256
1302
|
}
|
|
1257
|
-
return
|
|
1303
|
+
return `${url}${options.skipExtraOptions ? '' : extraOptions}`;
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
getDBCExtraOption(databaseType) {
|
|
1307
|
+
const databaseDataForType = databaseData[databaseType];
|
|
1308
|
+
const { extraOptions = '' } = databaseDataForType;
|
|
1309
|
+
return extraOptions;
|
|
1258
1310
|
}
|
|
1259
1311
|
|
|
1260
1312
|
/**
|
|
1261
1313
|
* Returns the primary key value based on the primary key type, DB and default value
|
|
1262
1314
|
*
|
|
1263
|
-
* @param {string}
|
|
1315
|
+
* @param {string} primaryKey - the primary key type
|
|
1264
1316
|
* @param {string} databaseType - the database type
|
|
1265
1317
|
* @param {string} defaultValue - default value
|
|
1266
1318
|
* @returns {string} java primary key value
|
|
@@ -1550,7 +1602,7 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
1550
1602
|
* Create a angular form path getter method of reference.
|
|
1551
1603
|
*
|
|
1552
1604
|
* @param {object} reference
|
|
1553
|
-
* @param {string[]}
|
|
1605
|
+
* @param {string[]} prefix
|
|
1554
1606
|
* @return {string}
|
|
1555
1607
|
*/
|
|
1556
1608
|
buildAngularFormPath(reference, prefix = []) {
|