generator-jhipster 7.2.0 → 7.4.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/cli/environment-builder.js +1 -0
- package/cli/import-jdl.js +3 -2
- package/cli/jdl.js +1 -0
- package/cli/jhipster-command.js +2 -2
- package/cli/program.js +32 -29
- package/generators/app/index.js +35 -26
- package/generators/aws/index.js +8 -8
- package/generators/aws/lib/eb.js +1 -1
- package/generators/azure-app-service/index.js +16 -9
- package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +2 -2
- package/generators/azure-spring-cloud/index.js +16 -9
- package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +2 -2
- package/generators/bootstrap/index.js +57 -61
- package/generators/ci-cd/index.js +11 -8
- package/generators/ci-cd/templates/github-actions.yml.ejs +1 -1
- package/generators/ci-cd/templates/travis.yml.ejs +9 -4
- package/generators/client/__workflow/devserver-angular.json +1 -1
- package/generators/client/__workflow/devserver-react.json +1 -1
- package/generators/client/__workflow/devserver-vue.json +1 -1
- package/generators/client/files-angular.js +6 -0
- package/generators/client/files-common.js +6 -2
- package/generators/client/files-react.js +13 -2
- package/generators/client/files-vue.js +56 -6
- package/generators/client/index.js +114 -32
- package/generators/client/needle-api/needle-client-angular.js +1 -1
- package/generators/client/needle-api/needle-client-vue.js +57 -7
- package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
- package/generators/client/templates/angular/package.json +19 -19
- package/generators/client/templates/angular/package.json.ejs +2 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +116 -118
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +74 -76
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +50 -52
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +19 -21
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +62 -64
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +87 -89
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +41 -43
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
- package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +3 -0
- package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +178 -180
- package/generators/client/templates/angular/src/main/webapp/app/core/config/application-config.service.ts.ejs +9 -0
- package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.spec.ts.ejs +87 -89
- package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +93 -95
- package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +66 -68
- package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +112 -114
- package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
- package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +2 -3
- package/generators/client/templates/common/README.md.jhi.client.ejs +34 -0
- package/generators/client/templates/common/package.json +7 -7
- package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
- package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
- package/generators/client/templates/react/package.json +57 -56
- package/generators/client/templates/react/package.json.ejs +5 -2
- package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
- package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
- package/generators/client/templates/react/webpack/webpack.dev.js.ejs +17 -1
- package/generators/client/templates/react/webpack/webpack.prod.js.ejs +13 -1
- package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
- package/generators/client/templates/vue/package.json +40 -49
- package/generators/client/templates/vue/package.json.ejs +14 -18
- package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +6 -5
- package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -4
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +9 -0
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-view.component.ts.ejs +5 -0
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.component.ts.ejs +5 -0
- package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +16 -6
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +27 -8
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
- package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +14 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
- package/generators/client/templates/vue/{webpack/utils.js.ejs → src/main/webapp/app/index.ts.ejs} +1 -12
- package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -9
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +23 -11
- package/generators/client/templates/vue/src/main/webapp/app/router/admin.ts.ejs +4 -4
- package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +45 -3
- package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +19 -3
- package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +61 -0
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +0 -2
- package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +3 -1
- package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +17 -3
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +25 -10
- package/generators/client/templates/vue/src/test/javascript/spec/app/account/account.service.spec.ts.ejs +2 -2
- package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +2 -2
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.component.spec.ts.ejs +12 -12
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.service.spec.ts.ejs +2 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +5 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-view.component.spec.ts.ejs +2 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +5 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +10 -4
- package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/alert/alert.service.spec.ts.ejs +124 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +0 -1
- package/generators/client/templates/vue/tsconfig.json.ejs +6 -10
- package/generators/client/templates/vue/tsconfig.spec.json.ejs +37 -0
- package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
- package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +152 -126
- package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -76
- package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
- package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -41
- package/generators/cloudfoundry/index.js +9 -9
- package/generators/common/index.js +12 -10
- package/generators/common/templates/.husky/pre-commit +1 -1
- package/generators/common/templates/.prettierrc.ejs +1 -1
- package/generators/common/templates/README.md.jhi.ejs +21 -0
- package/generators/common/templates/package.json +4 -4
- package/generators/cypress/index.js +12 -9
- package/generators/cypress/templates/cypress.json.ejs +9 -2
- package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +30 -2
- package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
- package/generators/database-changelog/index.js +33 -22
- package/generators/database-changelog-liquibase/index.js +12 -8
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +1 -1
- package/generators/docker-compose/index.js +11 -12
- package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +13 -12
- package/generators/entities/index.js +35 -26
- package/generators/entities-client/index.js +10 -7
- package/generators/entity/index.js +49 -29
- package/generators/entity-client/files.js +7 -16
- package/generators/entity-client/index.js +74 -11
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +58 -60
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +105 -107
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +8 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +52 -54
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +173 -175
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +2 -4
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +193 -195
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +7 -0
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +269 -109
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +5 -2
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +17 -14
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -13
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-details.component.ts.ejs +5 -0
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +23 -8
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +9 -1
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-details.component.spec.ts.ejs +2 -1
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +8 -1
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +8 -2
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
- package/generators/entity-i18n/index.js +7 -4
- package/generators/entity-server/files-couchbase.js +2 -2
- package/generators/entity-server/files.js +35 -30
- package/generators/entity-server/index.js +12 -8
- package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +2 -2
- package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +6 -2
- package/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +17 -30
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +5 -5
- package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
- package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +8 -8
- package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +4 -4
- package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +4 -4
- package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +7 -3
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +8 -8
- package/generators/entity-server/templates/src/main/java/package/service/mapper/BaseEntityMapper.java.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +7 -3
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +51 -53
- package/generators/entity-server/templates/src/test/java/package/domain/EntityTest.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/service/dto/EntityDTOTest.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/service/mapper/EntityMapperTest.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +17 -14
- package/generators/gae/index.js +10 -10
- package/generators/generator-base-blueprint.js +14 -46
- package/generators/generator-base-private.js +42 -22
- package/generators/generator-base.js +57 -20
- package/generators/generator-constants.js +29 -21
- package/generators/generator-transforms.js +39 -27
- package/generators/heroku/index.js +27 -48
- package/generators/init/constants.cjs +1 -1
- package/generators/init/templates/.husky/pre-commit +1 -1
- package/generators/java/constants.cjs +1 -1
- package/generators/kubernetes/files.js +3 -0
- package/generators/kubernetes/index.js +10 -10
- package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -1
- package/generators/kubernetes/templates/deployment.yml.ejs +8 -3
- package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
- package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
- package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway.yml.ejs +7 -5
- package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
- package/generators/kubernetes-base.js +1 -0
- package/generators/kubernetes-helm/files.js +3 -8
- package/generators/kubernetes-helm/index.js +10 -10
- package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +0 -1
- package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +27 -0
- package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +0 -11
- package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +7 -2
- package/generators/kubernetes-helm/templates/app/values.yml.ejs +68 -5
- package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +17 -0
- package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +2 -2
- package/generators/kubernetes-knative/index.js +10 -10
- package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +6 -4
- package/generators/kubernetes-knative/templates/service.yml.ejs +1 -1
- package/generators/languages/index.js +13 -13
- package/generators/languages/templates/src/main/webapp/i18n/hr/reset.json.ejs +1 -2
- package/generators/languages/templates/src/main/webapp/i18n/vi/login.json +1 -1
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
- package/generators/openapi-client/index.js +13 -10
- package/generators/openshift/index.js +10 -11
- package/generators/openshift/templates/deployment.yml.ejs +1 -1
- package/generators/page/index.js +12 -10
- package/generators/server/__snapshots__/generator.spec.mjs.snap +12 -0
- package/generators/server/files-sql.js +52 -0
- package/generators/server/files.js +15 -0
- package/generators/server/index.js +100 -33
- package/generators/server/needle-api/needle-server-cache.js +4 -6
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
- package/generators/server/templates/build.gradle.ejs +17 -1
- package/generators/server/templates/gradle.properties.ejs +11 -11
- package/generators/server/templates/npmw +1 -1
- package/generators/server/templates/npmw.cmd +1 -1
- package/generators/server/templates/pom.xml.ejs +128 -9
- package/generators/server/templates/settings.gradle.ejs +9 -0
- package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
- package/generators/server/templates/src/main/docker/app.yml.ejs +2 -1
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +13 -12
- package/generators/server/templates/src/main/java/package/aop/logging/LoggingAspect.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_cassandra.java.ejs +0 -6
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_sql.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/config/JacksonConfiguration.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +0 -2
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +2 -5
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +9 -1
- package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -1
- package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -23
- package/generators/server/templates/src/main/java/package/security/PersistentTokenRememberMeServices.java.ejs +0 -2
- package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +29 -4
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +21 -9
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +13 -5
- package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
- 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 +7 -7
- package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
- package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
- package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +6 -1
- package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
- package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
- package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +16 -2
- package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +63 -0
- package/generators/spring-controller/index.js +9 -7
- package/generators/spring-service/index.js +10 -7
- package/generators/upgrade/index.js +4 -5
- package/generators/utils.js +2 -2
- package/generators/workspaces/index.js +16 -7
- package/jdl/jhipster/default-application-options.js +9 -7
- package/package.json +23 -23
- package/utils/entity.js +21 -4
- package/utils/field.js +12 -2
- package/utils/multi-step-transform/index.js +8 -8
- package/generators/client/templates/react/.npmrc.ejs +0 -1
- package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -17
- package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
- package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
- package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -15
|
@@ -22,9 +22,11 @@ const _ = require('lodash');
|
|
|
22
22
|
const BaseBlueprintGenerator = require('../generator-base-blueprint');
|
|
23
23
|
const prompts = require('./prompts');
|
|
24
24
|
const writeAngularFiles = require('./files-angular').writeFiles;
|
|
25
|
-
const writeReactFiles = require('./files-react')
|
|
26
|
-
const { writeFiles: writeVueFiles, customizeFiles: customizeVueFiles } = require('./files-vue');
|
|
25
|
+
const { cleanup: cleanupReact, writeFiles: writeReactFiles } = require('./files-react');
|
|
26
|
+
const { cleanup: cleanupVue, writeFiles: writeVueFiles, customizeFiles: customizeVueFiles } = require('./files-vue');
|
|
27
27
|
const writeCommonFiles = require('./files-common').writeFiles;
|
|
28
|
+
const { clientI18nFiles } = require('../languages/files');
|
|
29
|
+
|
|
28
30
|
const packagejs = require('../../package.json');
|
|
29
31
|
const constants = require('../generator-constants');
|
|
30
32
|
const statistics = require('../statistics');
|
|
@@ -42,8 +44,6 @@ const { CommonDBTypes } = require('../../jdl/jhipster/field-types');
|
|
|
42
44
|
const TYPE_STRING = CommonDBTypes.STRING;
|
|
43
45
|
const TYPE_UUID = CommonDBTypes.UUID;
|
|
44
46
|
|
|
45
|
-
let useBlueprints;
|
|
46
|
-
|
|
47
47
|
module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
48
48
|
constructor(args, options, features) {
|
|
49
49
|
super(args, options, { unique: 'namespace', ...features });
|
|
@@ -74,8 +74,12 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
74
74
|
this.loadRuntimeOptions();
|
|
75
75
|
|
|
76
76
|
this.existingProject = !!this.jhipsterConfig.clientFramework;
|
|
77
|
+
}
|
|
77
78
|
|
|
78
|
-
|
|
79
|
+
async _postConstruct() {
|
|
80
|
+
if (!this.fromBlueprint) {
|
|
81
|
+
await this.composeWithBlueprints(GENERATOR_CLIENT);
|
|
82
|
+
}
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
// Public API method used by the getter and also by Blueprints
|
|
@@ -106,7 +110,7 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
106
110
|
}
|
|
107
111
|
|
|
108
112
|
get initializing() {
|
|
109
|
-
if (
|
|
113
|
+
if (this.delegateToBlueprint) return {};
|
|
110
114
|
return this._initializing();
|
|
111
115
|
}
|
|
112
116
|
|
|
@@ -122,7 +126,7 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
122
126
|
}
|
|
123
127
|
|
|
124
128
|
get prompting() {
|
|
125
|
-
if (
|
|
129
|
+
if (this.delegateToBlueprint) return {};
|
|
126
130
|
return this._prompting();
|
|
127
131
|
}
|
|
128
132
|
|
|
@@ -158,32 +162,32 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
158
162
|
}
|
|
159
163
|
|
|
160
164
|
get configuring() {
|
|
161
|
-
if (
|
|
165
|
+
if (this.delegateToBlueprint) return {};
|
|
162
166
|
return this._configuring();
|
|
163
167
|
}
|
|
164
168
|
|
|
165
169
|
// Public API method used by the getter and also by Blueprints
|
|
166
170
|
_composing() {
|
|
167
171
|
return {
|
|
168
|
-
composeCommon() {
|
|
169
|
-
this.composeWithJHipster(GENERATOR_COMMON, true);
|
|
172
|
+
async composeCommon() {
|
|
173
|
+
await this.composeWithJHipster(GENERATOR_COMMON, true);
|
|
170
174
|
},
|
|
171
|
-
composeCypress() {
|
|
175
|
+
async composeCypress() {
|
|
172
176
|
const testFrameworks = this.jhipsterConfig.testFrameworks;
|
|
173
177
|
if (!Array.isArray(testFrameworks) || !testFrameworks.includes(CYPRESS)) return;
|
|
174
|
-
this.composeWithJHipster(GENERATOR_CYPRESS, { existingProject: this.existingProject }, true);
|
|
178
|
+
await this.composeWithJHipster(GENERATOR_CYPRESS, { existingProject: this.existingProject }, true);
|
|
175
179
|
},
|
|
176
|
-
composeLanguages() {
|
|
180
|
+
async composeLanguages() {
|
|
177
181
|
// We don't expose client/server to cli, composing with languages is used for test purposes.
|
|
178
182
|
if (this.jhipsterConfig.enableTranslation === false) return;
|
|
179
183
|
|
|
180
|
-
this.composeWithJHipster(GENERATOR_LANGUAGES, true);
|
|
184
|
+
await this.composeWithJHipster(GENERATOR_LANGUAGES, true);
|
|
181
185
|
},
|
|
182
186
|
};
|
|
183
187
|
}
|
|
184
188
|
|
|
185
189
|
get composing() {
|
|
186
|
-
if (
|
|
190
|
+
if (this.delegateToBlueprint) return {};
|
|
187
191
|
return this._composing();
|
|
188
192
|
}
|
|
189
193
|
|
|
@@ -200,12 +204,6 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
200
204
|
this.loadTranslationConfig();
|
|
201
205
|
},
|
|
202
206
|
|
|
203
|
-
checkMicrofrontend() {
|
|
204
|
-
if (this.microfrontend && !this.clientFrameworkAngular) {
|
|
205
|
-
throw new Error(`Microfrontend requires ${ANGULAR} client framework.`);
|
|
206
|
-
}
|
|
207
|
-
},
|
|
208
|
-
|
|
209
207
|
validateSkipServer() {
|
|
210
208
|
if (
|
|
211
209
|
this.jhipsterConfig.skipServer &&
|
|
@@ -241,7 +239,7 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
241
239
|
}
|
|
242
240
|
|
|
243
241
|
get loading() {
|
|
244
|
-
if (
|
|
242
|
+
if (this.delegateToBlueprint) return {};
|
|
245
243
|
return this._loading();
|
|
246
244
|
}
|
|
247
245
|
|
|
@@ -264,11 +262,24 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
264
262
|
this.skipUserManagement = true;
|
|
265
263
|
}
|
|
266
264
|
},
|
|
265
|
+
|
|
266
|
+
async loadNativeLanguage() {
|
|
267
|
+
if (!this.jhipsterConfig.baseName) return;
|
|
268
|
+
const context = {};
|
|
269
|
+
this.loadAppConfig(undefined, context);
|
|
270
|
+
this.loadDerivedAppConfig(context);
|
|
271
|
+
this.loadClientConfig(undefined, context);
|
|
272
|
+
this.loadDerivedClientConfig(context);
|
|
273
|
+
this.loadServerConfig(undefined, context);
|
|
274
|
+
this.loadPlatformConfig(undefined, context);
|
|
275
|
+
this.loadTranslationConfig(undefined, context);
|
|
276
|
+
await this._loadClientTranslations(context);
|
|
277
|
+
},
|
|
267
278
|
};
|
|
268
279
|
}
|
|
269
280
|
|
|
270
281
|
get preparing() {
|
|
271
|
-
if (
|
|
282
|
+
if (this.delegateToBlueprint) return {};
|
|
272
283
|
return this._preparing();
|
|
273
284
|
}
|
|
274
285
|
|
|
@@ -285,6 +296,14 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
285
296
|
this.userPrimaryKeyTypeUUID = this.user.primaryKey.type === TYPE_UUID;
|
|
286
297
|
},
|
|
287
298
|
|
|
299
|
+
loadEntities() {
|
|
300
|
+
if (!this.configOptions.sharedEntities) {
|
|
301
|
+
this.localEntities = [];
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
this.localEntities = Object.values(this.configOptions.sharedEntities).filter(entity => !entity.builtIn && !entity.skipClient);
|
|
305
|
+
},
|
|
306
|
+
|
|
288
307
|
insight() {
|
|
289
308
|
statistics.sendSubGenEvent('generator', GENERATOR_CLIENT, {
|
|
290
309
|
app: {
|
|
@@ -299,29 +318,32 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
299
318
|
}
|
|
300
319
|
|
|
301
320
|
get default() {
|
|
302
|
-
if (
|
|
321
|
+
if (this.delegateToBlueprint) return {};
|
|
303
322
|
return this._default();
|
|
304
323
|
}
|
|
305
324
|
|
|
306
325
|
// Public API method used by the getter and also by Blueprints
|
|
307
326
|
_writing() {
|
|
308
327
|
return {
|
|
328
|
+
cleanupReact,
|
|
329
|
+
cleanupVue,
|
|
330
|
+
|
|
309
331
|
write() {
|
|
310
332
|
if (this.skipClient) return;
|
|
311
333
|
switch (this.clientFramework) {
|
|
312
334
|
case ANGULAR:
|
|
313
|
-
return writeAngularFiles.call(this
|
|
335
|
+
return writeAngularFiles.call(this);
|
|
314
336
|
case REACT:
|
|
315
|
-
return writeReactFiles.call(this
|
|
337
|
+
return writeReactFiles.call(this);
|
|
316
338
|
case VUE:
|
|
317
|
-
return writeVueFiles.call(this
|
|
339
|
+
return writeVueFiles.call(this);
|
|
318
340
|
default:
|
|
319
341
|
// do nothing by default
|
|
320
342
|
}
|
|
321
343
|
},
|
|
322
344
|
writeCommonFiles() {
|
|
323
345
|
if (this.skipClient) return;
|
|
324
|
-
return writeCommonFiles.call(this
|
|
346
|
+
return writeCommonFiles.call(this);
|
|
325
347
|
},
|
|
326
348
|
|
|
327
349
|
...super._missingPostWriting(),
|
|
@@ -329,7 +351,7 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
329
351
|
}
|
|
330
352
|
|
|
331
353
|
get writing() {
|
|
332
|
-
if (
|
|
354
|
+
if (this.delegateToBlueprint) return {};
|
|
333
355
|
return this._writing();
|
|
334
356
|
}
|
|
335
357
|
|
|
@@ -368,13 +390,19 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
368
390
|
|
|
369
391
|
microfrontend() {
|
|
370
392
|
if (!this.microfrontend) return;
|
|
371
|
-
this.
|
|
393
|
+
if (this.clientFrameworkAngular) {
|
|
394
|
+
this.addWebpackConfig("require('./webpack.microfrontend')(config, options, targetOptions)");
|
|
395
|
+
} else if (this.clientFrameworkVue) {
|
|
396
|
+
this.addWebpackConfig("require('./webpack.microfrontend')({ serve: options.env.WEBPACK_SERVE })");
|
|
397
|
+
} else {
|
|
398
|
+
throw new Error(`Client framework ${this.clientFramework} doesn't support microfrontends`);
|
|
399
|
+
}
|
|
372
400
|
},
|
|
373
401
|
};
|
|
374
402
|
}
|
|
375
403
|
|
|
376
404
|
get postWriting() {
|
|
377
|
-
if (
|
|
405
|
+
if (this.delegateToBlueprint) return {};
|
|
378
406
|
return this._postWriting();
|
|
379
407
|
}
|
|
380
408
|
|
|
@@ -396,7 +424,61 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
|
|
|
396
424
|
}
|
|
397
425
|
|
|
398
426
|
get end() {
|
|
399
|
-
if (
|
|
427
|
+
if (this.delegateToBlueprint) return {};
|
|
400
428
|
return this._end();
|
|
401
429
|
}
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* @experimental
|
|
433
|
+
* Load client native translation.
|
|
434
|
+
*/
|
|
435
|
+
async _loadClientTranslations(configContext = this) {
|
|
436
|
+
configContext.clientTranslations = this.configOptions.clientTranslations;
|
|
437
|
+
if (configContext.clientTranslations) {
|
|
438
|
+
this.clientTranslations = configContext.clientTranslations;
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
const { nativeLanguage } = configContext;
|
|
442
|
+
this.clientTranslations = configContext.clientTranslations = this.configOptions.clientTranslations = {};
|
|
443
|
+
const rootTemplatesPath = this.fetchFromInstalledJHipster('languages/templates/');
|
|
444
|
+
|
|
445
|
+
// Prepare and load en translation
|
|
446
|
+
const translationFiles = await this.writeFiles({
|
|
447
|
+
sections: clientI18nFiles,
|
|
448
|
+
rootTemplatesPath,
|
|
449
|
+
context: {
|
|
450
|
+
...configContext,
|
|
451
|
+
lang: 'en',
|
|
452
|
+
clientSrcDir: '__tmp__',
|
|
453
|
+
},
|
|
454
|
+
});
|
|
455
|
+
|
|
456
|
+
// Prepare and load native translation
|
|
457
|
+
configContext.lang = configContext.nativeLanguage;
|
|
458
|
+
if (nativeLanguage && nativeLanguage !== 'en') {
|
|
459
|
+
translationFiles.push(
|
|
460
|
+
...(await this.writeFiles({
|
|
461
|
+
sections: clientI18nFiles,
|
|
462
|
+
rootTemplatesPath,
|
|
463
|
+
context: {
|
|
464
|
+
...configContext,
|
|
465
|
+
lang: configContext.nativeLanguage,
|
|
466
|
+
clientSrcDir: '__tmp__',
|
|
467
|
+
},
|
|
468
|
+
}))
|
|
469
|
+
);
|
|
470
|
+
}
|
|
471
|
+
for (const translationFile of translationFiles) {
|
|
472
|
+
_.merge(this.clientTranslations, this.readDestinationJSON(translationFile));
|
|
473
|
+
delete this.env.sharedFs.get(translationFile).state;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* @experimental
|
|
479
|
+
* Get translation value for a key.
|
|
480
|
+
*/
|
|
481
|
+
_getClientTranslation(translationKey) {
|
|
482
|
+
return _.get(this.clientTranslations, translationKey, `Translation missing for ${translationKey}`);
|
|
483
|
+
}
|
|
402
484
|
};
|
|
@@ -236,7 +236,7 @@ module.exports = class extends needleClientBase {
|
|
|
236
236
|
|
|
237
237
|
if (!isSpecificEntityAlreadyGenerated) {
|
|
238
238
|
const modulePath =
|
|
239
|
-
this.generator.
|
|
239
|
+
this.generator.microfrontend && this.generator.applicationTypeGateway && microserviceName
|
|
240
240
|
? `${microserviceName}/${entityFileName}`
|
|
241
241
|
: `./${entityFolderName}/${entityFileName}.module`;
|
|
242
242
|
const moduleName = microserviceName
|
|
@@ -24,7 +24,17 @@ const needleClientBase = require('./needle-client');
|
|
|
24
24
|
module.exports = class extends needleClientBase {
|
|
25
25
|
addEntityToMenu(routerName, enableTranslation, entityTranslationKeyMenu, entityTranslationValue = _.startCase(routerName)) {
|
|
26
26
|
const errorMessage = `${chalk.yellow('Reference to ') + routerName} ${chalk.yellow('not added to menu.\n')}`;
|
|
27
|
-
const filePath = `${this.CLIENT_MAIN_SRC_DIR}/app/
|
|
27
|
+
const filePath = `${this.CLIENT_MAIN_SRC_DIR}/app/entities/entities-menu.vue`;
|
|
28
|
+
|
|
29
|
+
const isSpecificEntityAlreadyGenerated = jhipsterUtils.checkStringInFile(
|
|
30
|
+
filePath,
|
|
31
|
+
`<b-dropdown-item to="/${routerName}">`,
|
|
32
|
+
this.generator
|
|
33
|
+
);
|
|
34
|
+
if (isSpecificEntityAlreadyGenerated) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
28
38
|
const menuI18nTitle = enableTranslation ? ` v-text="$t('global.menu.entities.${entityTranslationKeyMenu}')"` : '';
|
|
29
39
|
const entityEntry =
|
|
30
40
|
// prettier-ignore
|
|
@@ -41,6 +51,16 @@ module.exports = class extends needleClientBase {
|
|
|
41
51
|
addEntityToRouterImport(entityName, fileName, folderName, readOnly) {
|
|
42
52
|
const errorMessage = `${chalk.yellow('Reference to entity ') + entityName} ${chalk.yellow('not added to router entities import.\n')}`;
|
|
43
53
|
const filePath = `${this.CLIENT_MAIN_SRC_DIR}/app/router/entities.ts`;
|
|
54
|
+
|
|
55
|
+
const isSpecificEntityAlreadyGenerated = jhipsterUtils.checkStringInFile(
|
|
56
|
+
filePath,
|
|
57
|
+
`import('@/entities/${folderName}/${fileName}.vue');`,
|
|
58
|
+
this.generator
|
|
59
|
+
);
|
|
60
|
+
if (isSpecificEntityAlreadyGenerated) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
44
64
|
let entityEntry;
|
|
45
65
|
if (!readOnly) {
|
|
46
66
|
// prettier-ignore
|
|
@@ -70,8 +90,7 @@ module.exports = class extends needleClientBase {
|
|
|
70
90
|
const errorMessage = `${chalk.yellow('Reference to entity ') + entityName} ${chalk.yellow('not added to router entities.\n')}`;
|
|
71
91
|
const filePath = `${this.CLIENT_MAIN_SRC_DIR}/app/router/entities.ts`;
|
|
72
92
|
|
|
73
|
-
const isSpecificEntityAlreadyGenerated = jhipsterUtils.checkStringInFile(filePath, `path: '
|
|
74
|
-
|
|
93
|
+
const isSpecificEntityAlreadyGenerated = jhipsterUtils.checkStringInFile(filePath, `path: '${entityFileName}'`, this.generator);
|
|
75
94
|
if (isSpecificEntityAlreadyGenerated) {
|
|
76
95
|
return;
|
|
77
96
|
}
|
|
@@ -81,25 +100,25 @@ module.exports = class extends needleClientBase {
|
|
|
81
100
|
// prettier-ignore
|
|
82
101
|
entityEntry = this.generator.stripMargin(
|
|
83
102
|
`|{
|
|
84
|
-
| path: '
|
|
103
|
+
| path: '${entityFileName}',
|
|
85
104
|
| name: '${entityName}',
|
|
86
105
|
| component: ${entityName},
|
|
87
106
|
| meta: { authorities: [Authority.USER] }
|
|
88
107
|
| },
|
|
89
108
|
| {
|
|
90
|
-
| path: '
|
|
109
|
+
| path: '${entityFileName}/new',
|
|
91
110
|
| name: '${entityName}Create',
|
|
92
111
|
| component: ${entityName}Update,
|
|
93
112
|
| meta: { authorities: [Authority.USER] }
|
|
94
113
|
| },
|
|
95
114
|
| {
|
|
96
|
-
| path: '
|
|
115
|
+
| path: '${entityFileName}/:${entityInstance}Id/edit',
|
|
97
116
|
| name: '${entityName}Edit',
|
|
98
117
|
| component: ${entityName}Update,
|
|
99
118
|
| meta: { authorities: [Authority.USER] }
|
|
100
119
|
| },
|
|
101
120
|
| {
|
|
102
|
-
| path: '
|
|
121
|
+
| path: '${entityFileName}/:${entityInstance}Id/view',
|
|
103
122
|
| name: '${entityName}View',
|
|
104
123
|
| component: ${entityName}Details,
|
|
105
124
|
| meta: { authorities: [Authority.USER] }
|
|
@@ -124,6 +143,7 @@ module.exports = class extends needleClientBase {
|
|
|
124
143
|
}
|
|
125
144
|
|
|
126
145
|
const rewriteFileModel = this.generateFileModel(filePath, 'jhipster-needle-add-entity-to-router', entityEntry);
|
|
146
|
+
rewriteFileModel.prettierAware = true;
|
|
127
147
|
this.addBlockContentToFile(rewriteFileModel, errorMessage);
|
|
128
148
|
}
|
|
129
149
|
|
|
@@ -152,4 +172,34 @@ module.exports = class extends needleClientBase {
|
|
|
152
172
|
const rewriteFileModel = this.generateFileModel(filePath, 'jhipster-needle-add-entity-service-to-main', entityEntry);
|
|
153
173
|
this.addBlockContentToFile(rewriteFileModel, errorMessage);
|
|
154
174
|
}
|
|
175
|
+
|
|
176
|
+
addEntityServiceToEntitiesComponentImport(entityName, entityClass, entityFileName, entityFolderName) {
|
|
177
|
+
const errorMessage = `${chalk.yellow('Reference to entity ') + entityClass} ${chalk.yellow(
|
|
178
|
+
'not added to import in entities component.\n'
|
|
179
|
+
)}`;
|
|
180
|
+
const filePath = `${this.CLIENT_MAIN_SRC_DIR}/app/entities/entities.component.ts`;
|
|
181
|
+
|
|
182
|
+
// prettier-ignore
|
|
183
|
+
const entityEntry = `import ${entityName}Service from './${entityFolderName}/${entityFileName}.service';`;
|
|
184
|
+
|
|
185
|
+
const rewriteFileModel = this.generateFileModel(
|
|
186
|
+
filePath,
|
|
187
|
+
'jhipster-needle-add-entity-service-to-entities-component-import',
|
|
188
|
+
entityEntry
|
|
189
|
+
);
|
|
190
|
+
this.addBlockContentToFile(rewriteFileModel, errorMessage);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
addEntityServiceToEntitiesComponent(entityInstance, entityName) {
|
|
194
|
+
const errorMessage = `${chalk.yellow('Reference to entity ') + entityName} ${chalk.yellow(
|
|
195
|
+
'not added to service in entities component.\n'
|
|
196
|
+
)}`;
|
|
197
|
+
const filePath = `${this.CLIENT_MAIN_SRC_DIR}/app/entities/entities.component.ts`;
|
|
198
|
+
|
|
199
|
+
// prettier-ignore
|
|
200
|
+
const entityEntry = `@Provide('${entityInstance}Service') private ${entityInstance}Service = () => new ${entityName}Service();`;
|
|
201
|
+
|
|
202
|
+
const rewriteFileModel = this.generateFileModel(filePath, 'jhipster-needle-add-entity-service-to-entities-component', entityEntry);
|
|
203
|
+
this.addBlockContentToFile(rewriteFileModel, errorMessage);
|
|
204
|
+
}
|
|
155
205
|
};
|
|
@@ -92,6 +92,7 @@
|
|
|
92
92
|
"@typescript-eslint/no-parameter-properties": ["warn", { "allows": ["public", "private", "protected"] }],
|
|
93
93
|
"@typescript-eslint/no-shadow": ["error"],
|
|
94
94
|
"@typescript-eslint/no-unnecessary-condition": "error",
|
|
95
|
+
"@typescript-eslint/no-unsafe-argument": "off",
|
|
95
96
|
"@typescript-eslint/no-unsafe-assignment": "off",
|
|
96
97
|
"@typescript-eslint/no-unsafe-call": "off",
|
|
97
98
|
"@typescript-eslint/no-unsafe-member-access": "off",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@angular/common": "12.2.
|
|
4
|
-
"bootstrap": "4.6.
|
|
3
|
+
"@angular/common": "12.2.12",
|
|
4
|
+
"bootstrap": "4.6.1",
|
|
5
5
|
"@fortawesome/angular-fontawesome": "0.9.0",
|
|
6
6
|
"@fortawesome/fontawesome-svg-core": "1.2.36",
|
|
7
7
|
"@fortawesome/free-solid-svg-icons": "5.15.4",
|
|
@@ -12,37 +12,37 @@
|
|
|
12
12
|
"ngx-infinite-scroll": "10.0.1",
|
|
13
13
|
"ngx-webstorage": "8.0.0",
|
|
14
14
|
"rxjs": "6.6.7",
|
|
15
|
-
"swagger-ui-dist": "
|
|
15
|
+
"swagger-ui-dist": "4.1.2",
|
|
16
16
|
"tslib": "2.3.1",
|
|
17
17
|
"zone.js": "0.11.4"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@angular/cli": "12.2.
|
|
21
|
-
"@angular-builders/custom-webpack": "12.1.
|
|
20
|
+
"@angular/cli": "12.2.12",
|
|
21
|
+
"@angular-builders/custom-webpack": "12.1.3",
|
|
22
22
|
"@angular-builders/jest": "12.1.2",
|
|
23
|
-
"@angular-eslint/eslint-plugin": "12.
|
|
24
|
-
"@types/node": "16.
|
|
25
|
-
"@types/jest": "27.0.
|
|
26
|
-
"@typescript-eslint/eslint-plugin": "
|
|
27
|
-
"browser-sync": "2.27.
|
|
23
|
+
"@angular-eslint/eslint-plugin": "12.7.0",
|
|
24
|
+
"@types/node": "16.11.11",
|
|
25
|
+
"@types/jest": "27.0.3",
|
|
26
|
+
"@typescript-eslint/eslint-plugin": "5.5.0",
|
|
27
|
+
"browser-sync": "2.27.7",
|
|
28
28
|
"browser-sync-webpack-plugin": "2.3.0",
|
|
29
|
-
"copy-webpack-plugin": "
|
|
29
|
+
"copy-webpack-plugin": "10.0.0",
|
|
30
30
|
"eslint": "7.32.0",
|
|
31
31
|
"eslint-config-prettier": "8.3.0",
|
|
32
|
-
"eslint-webpack-plugin": "3.
|
|
32
|
+
"eslint-webpack-plugin": "3.1.1",
|
|
33
33
|
"folder-hash": "4.0.1",
|
|
34
|
-
"jest": "27.
|
|
35
|
-
"jest-preset-angular": "
|
|
34
|
+
"jest": "27.4.3",
|
|
35
|
+
"jest-preset-angular": "10.1.0",
|
|
36
36
|
"jest-date-mock": "1.0.8",
|
|
37
|
-
"jest-junit": "
|
|
37
|
+
"jest-junit": "13.0.0",
|
|
38
38
|
"jest-sonar-reporter": "2.0.0",
|
|
39
|
-
"merge-jsons-webpack-plugin": "
|
|
39
|
+
"merge-jsons-webpack-plugin": "2.0.1",
|
|
40
40
|
"rimraf": "3.0.2",
|
|
41
|
-
"ts-jest": "27.0.
|
|
41
|
+
"ts-jest": "27.0.7",
|
|
42
42
|
"typescript": "4.3.5",
|
|
43
43
|
"webpack": "5.50.0",
|
|
44
|
-
"webpack-bundle-analyzer": "4.
|
|
44
|
+
"webpack-bundle-analyzer": "4.5.0",
|
|
45
45
|
"webpack-merge": "5.8.0",
|
|
46
|
-
"webpack-notifier": "1.
|
|
46
|
+
"webpack-notifier": "1.14.1"
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
{
|
|
21
21
|
"name": "<%= dasherizedBaseName %>",
|
|
22
22
|
"version": "0.0.1-SNAPSHOT",
|
|
23
|
-
"description": "
|
|
23
|
+
"description": "<%= projectDescription %>",
|
|
24
24
|
"private": true,
|
|
25
25
|
"license": "UNLICENSED",
|
|
26
26
|
"cacheDirectories": [
|
|
@@ -175,6 +175,7 @@
|
|
|
175
175
|
"test": "ng test --coverage --log-heap-usage -w=2",
|
|
176
176
|
"test:watch": "<%= clientPackageManager %> run test -- --watch",
|
|
177
177
|
"watch": "concurrently npm:start<% if(!skipServer) { %> npm:backend:start<% } %>",
|
|
178
|
+
"build-watch": "concurrently 'npm run webapp:build:dev -- --watch'<% if(!skipServer) { %> npm:backend:start<% } %>",
|
|
178
179
|
"webapp:build": "<%= clientPackageManager %> run clean-www && <%= clientPackageManager %> run webapp:build:dev",
|
|
179
180
|
"webapp:build:dev": "ng build --configuration development",
|
|
180
181
|
"webapp:build:prod": "ng build --configuration production",
|
|
@@ -24,68 +24,66 @@ import { of, throwError } from 'rxjs';
|
|
|
24
24
|
import { ActivateService } from './activate.service';
|
|
25
25
|
import { ActivateComponent } from './activate.component';
|
|
26
26
|
|
|
27
|
-
describe('
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
],
|
|
42
|
-
})
|
|
43
|
-
.overrideTemplate(ActivateComponent, '')
|
|
44
|
-
.compileComponents();
|
|
27
|
+
describe('ActivateComponent', () => {
|
|
28
|
+
let comp: ActivateComponent;
|
|
29
|
+
|
|
30
|
+
beforeEach(
|
|
31
|
+
waitForAsync(() => {
|
|
32
|
+
TestBed.configureTestingModule({
|
|
33
|
+
imports: [HttpClientTestingModule],
|
|
34
|
+
declarations: [ActivateComponent],
|
|
35
|
+
providers: [
|
|
36
|
+
{
|
|
37
|
+
provide: ActivatedRoute,
|
|
38
|
+
useValue: { queryParams: of({ key: 'ABC123' }) },
|
|
39
|
+
},
|
|
40
|
+
],
|
|
45
41
|
})
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
.overrideTemplate(ActivateComponent, '')
|
|
43
|
+
.compileComponents();
|
|
44
|
+
})
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
beforeEach(() => {
|
|
48
|
+
const fixture = TestBed.createComponent(ActivateComponent);
|
|
49
|
+
comp = fixture.componentInstance;
|
|
50
|
+
});
|
|
52
51
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
it('calls activate.get with the key from params', inject(
|
|
53
|
+
[ActivateService],
|
|
54
|
+
fakeAsync((service: ActivateService) => {
|
|
55
|
+
jest.spyOn(service, 'get').mockReturnValue(of());
|
|
57
56
|
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
comp.ngOnInit();
|
|
58
|
+
tick();
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
expect(service.get).toHaveBeenCalledWith('ABC123');
|
|
61
|
+
})
|
|
62
|
+
));
|
|
64
63
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
it('should set set success to true upon successful activation', inject(
|
|
65
|
+
[ActivateService],
|
|
66
|
+
fakeAsync((service: ActivateService) => {
|
|
67
|
+
jest.spyOn(service, 'get').mockReturnValue(of({}));
|
|
69
68
|
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
comp.ngOnInit();
|
|
70
|
+
tick();
|
|
72
71
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
expect(comp.error).toBe(false);
|
|
73
|
+
expect(comp.success).toBe(true);
|
|
74
|
+
})
|
|
75
|
+
));
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
it('should set set error to true upon activation failure', inject(
|
|
78
|
+
[ActivateService],
|
|
79
|
+
fakeAsync((service: ActivateService) => {
|
|
80
|
+
jest.spyOn(service, 'get').mockReturnValue(throwError('ERROR'));
|
|
82
81
|
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
comp.ngOnInit();
|
|
83
|
+
tick();
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
});
|
|
85
|
+
expect(comp.error).toBe(true);
|
|
86
|
+
expect(comp.success).toBe(false);
|
|
87
|
+
})
|
|
88
|
+
));
|
|
91
89
|
});
|