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.
Files changed (313) hide show
  1. package/cli/environment-builder.js +1 -0
  2. package/cli/import-jdl.js +3 -2
  3. package/cli/jdl.js +1 -0
  4. package/cli/jhipster-command.js +2 -2
  5. package/cli/program.js +32 -29
  6. package/generators/app/index.js +35 -26
  7. package/generators/aws/index.js +8 -8
  8. package/generators/aws/lib/eb.js +1 -1
  9. package/generators/azure-app-service/index.js +16 -9
  10. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +2 -2
  11. package/generators/azure-spring-cloud/index.js +16 -9
  12. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +2 -2
  13. package/generators/bootstrap/index.js +57 -61
  14. package/generators/ci-cd/index.js +11 -8
  15. package/generators/ci-cd/templates/github-actions.yml.ejs +1 -1
  16. package/generators/ci-cd/templates/travis.yml.ejs +9 -4
  17. package/generators/client/__workflow/devserver-angular.json +1 -1
  18. package/generators/client/__workflow/devserver-react.json +1 -1
  19. package/generators/client/__workflow/devserver-vue.json +1 -1
  20. package/generators/client/files-angular.js +6 -0
  21. package/generators/client/files-common.js +6 -2
  22. package/generators/client/files-react.js +13 -2
  23. package/generators/client/files-vue.js +56 -6
  24. package/generators/client/index.js +114 -32
  25. package/generators/client/needle-api/needle-client-angular.js +1 -1
  26. package/generators/client/needle-api/needle-client-vue.js +57 -7
  27. package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
  28. package/generators/client/templates/angular/package.json +19 -19
  29. package/generators/client/templates/angular/package.json.ejs +2 -1
  30. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
  31. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
  32. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
  33. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
  34. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
  35. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
  36. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
  37. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
  38. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
  39. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +116 -118
  40. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
  41. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
  42. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +74 -76
  43. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
  44. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +50 -52
  45. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +19 -21
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +62 -64
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +87 -89
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +41 -43
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
  58. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +3 -0
  59. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +178 -180
  60. package/generators/client/templates/angular/src/main/webapp/app/core/config/application-config.service.ts.ejs +9 -0
  61. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.spec.ts.ejs +87 -89
  62. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +93 -95
  63. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
  64. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +66 -68
  65. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
  66. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +112 -114
  67. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
  68. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
  69. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +2 -3
  70. package/generators/client/templates/common/README.md.jhi.client.ejs +34 -0
  71. package/generators/client/templates/common/package.json +7 -7
  72. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
  73. package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
  74. package/generators/client/templates/react/package.json +57 -56
  75. package/generators/client/templates/react/package.json.ejs +5 -2
  76. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
  77. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
  78. package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +2 -2
  79. package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
  80. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
  81. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
  82. package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
  83. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
  84. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
  85. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
  86. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
  87. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +17 -1
  88. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +13 -1
  89. package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
  90. package/generators/client/templates/vue/package.json +40 -49
  91. package/generators/client/templates/vue/package.json.ejs +14 -18
  92. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +6 -5
  93. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
  94. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
  95. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
  96. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
  97. package/generators/client/templates/vue/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -4
  98. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +9 -0
  99. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-view.component.ts.ejs +5 -0
  100. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.component.ts.ejs +5 -0
  101. package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +16 -6
  102. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +27 -8
  103. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
  104. package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
  105. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
  106. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
  107. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +14 -0
  108. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
  109. package/generators/client/templates/vue/{webpack/utils.js.ejs → src/main/webapp/app/index.ts.ejs} +1 -12
  110. package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -9
  111. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +23 -11
  112. package/generators/client/templates/vue/src/main/webapp/app/router/admin.ts.ejs +4 -4
  113. package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +45 -3
  114. package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +19 -3
  115. package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +61 -0
  116. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +0 -2
  117. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +3 -1
  118. package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +17 -3
  119. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +25 -10
  120. package/generators/client/templates/vue/src/test/javascript/spec/app/account/account.service.spec.ts.ejs +2 -2
  121. package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +2 -2
  122. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.component.spec.ts.ejs +12 -12
  123. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.service.spec.ts.ejs +2 -1
  124. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +5 -1
  125. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-view.component.spec.ts.ejs +2 -1
  126. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +5 -1
  127. package/generators/client/templates/vue/src/test/javascript/spec/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +10 -4
  128. package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
  129. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
  130. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
  131. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
  132. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/alert/alert.service.spec.ts.ejs +124 -0
  133. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +0 -1
  134. package/generators/client/templates/vue/tsconfig.json.ejs +6 -10
  135. package/generators/client/templates/vue/tsconfig.spec.json.ejs +37 -0
  136. package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
  137. package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
  138. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +152 -126
  139. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -76
  140. package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
  141. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -41
  142. package/generators/cloudfoundry/index.js +9 -9
  143. package/generators/common/index.js +12 -10
  144. package/generators/common/templates/.husky/pre-commit +1 -1
  145. package/generators/common/templates/.prettierrc.ejs +1 -1
  146. package/generators/common/templates/README.md.jhi.ejs +21 -0
  147. package/generators/common/templates/package.json +4 -4
  148. package/generators/cypress/index.js +12 -9
  149. package/generators/cypress/templates/cypress.json.ejs +9 -2
  150. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +4 -4
  151. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +30 -2
  152. package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
  153. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -1
  154. package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
  155. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
  156. package/generators/database-changelog/index.js +33 -22
  157. package/generators/database-changelog-liquibase/index.js +12 -8
  158. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +1 -1
  159. package/generators/docker-compose/index.js +11 -12
  160. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +13 -12
  161. package/generators/entities/index.js +35 -26
  162. package/generators/entities-client/index.js +10 -7
  163. package/generators/entity/index.js +49 -29
  164. package/generators/entity-client/files.js +7 -16
  165. package/generators/entity-client/index.js +74 -11
  166. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
  167. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +58 -60
  168. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -1
  169. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +105 -107
  170. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +8 -1
  171. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +52 -54
  172. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
  173. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +173 -175
  174. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +2 -4
  175. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +193 -195
  176. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +7 -0
  177. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +269 -109
  178. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +5 -2
  179. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +17 -14
  180. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -13
  181. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-details.component.ts.ejs +5 -0
  182. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +23 -8
  183. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
  184. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +9 -1
  185. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  186. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
  187. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-details.component.spec.ts.ejs +2 -1
  188. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +8 -1
  189. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +8 -2
  190. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
  191. package/generators/entity-i18n/index.js +7 -4
  192. package/generators/entity-server/files-couchbase.js +2 -2
  193. package/generators/entity-server/files.js +35 -30
  194. package/generators/entity-server/index.js +12 -8
  195. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +2 -2
  196. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +1 -1
  197. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +6 -2
  198. package/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs +1 -1
  199. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +2 -2
  200. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +17 -30
  201. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +5 -5
  202. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
  203. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
  204. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +2 -2
  205. package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +8 -8
  206. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +4 -4
  207. package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +4 -4
  208. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +7 -3
  209. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +8 -8
  210. package/generators/entity-server/templates/src/main/java/package/service/mapper/BaseEntityMapper.java.ejs +1 -1
  211. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +7 -3
  212. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +51 -53
  213. package/generators/entity-server/templates/src/test/java/package/domain/EntityTest.java.ejs +1 -1
  214. package/generators/entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs +1 -1
  215. package/generators/entity-server/templates/src/test/java/package/service/dto/EntityDTOTest.java.ejs +1 -1
  216. package/generators/entity-server/templates/src/test/java/package/service/mapper/EntityMapperTest.java.ejs +1 -1
  217. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +17 -14
  218. package/generators/gae/index.js +10 -10
  219. package/generators/generator-base-blueprint.js +14 -46
  220. package/generators/generator-base-private.js +42 -22
  221. package/generators/generator-base.js +57 -20
  222. package/generators/generator-constants.js +29 -21
  223. package/generators/generator-transforms.js +39 -27
  224. package/generators/heroku/index.js +27 -48
  225. package/generators/init/constants.cjs +1 -1
  226. package/generators/init/templates/.husky/pre-commit +1 -1
  227. package/generators/java/constants.cjs +1 -1
  228. package/generators/kubernetes/files.js +3 -0
  229. package/generators/kubernetes/index.js +10 -10
  230. package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -1
  231. package/generators/kubernetes/templates/deployment.yml.ejs +8 -3
  232. package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
  233. package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
  234. package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
  235. package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
  236. package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
  237. package/generators/kubernetes/templates/istio/gateway.yml.ejs +7 -5
  238. package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
  239. package/generators/kubernetes-base.js +1 -0
  240. package/generators/kubernetes-helm/files.js +3 -8
  241. package/generators/kubernetes-helm/index.js +10 -10
  242. package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +0 -1
  243. package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +27 -0
  244. package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +0 -11
  245. package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +7 -2
  246. package/generators/kubernetes-helm/templates/app/values.yml.ejs +68 -5
  247. package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +17 -0
  248. package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +2 -2
  249. package/generators/kubernetes-knative/index.js +10 -10
  250. package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +6 -4
  251. package/generators/kubernetes-knative/templates/service.yml.ejs +1 -1
  252. package/generators/languages/index.js +13 -13
  253. package/generators/languages/templates/src/main/webapp/i18n/hr/reset.json.ejs +1 -2
  254. package/generators/languages/templates/src/main/webapp/i18n/vi/login.json +1 -1
  255. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  256. package/generators/openapi-client/index.js +13 -10
  257. package/generators/openshift/index.js +10 -11
  258. package/generators/openshift/templates/deployment.yml.ejs +1 -1
  259. package/generators/page/index.js +12 -10
  260. package/generators/server/__snapshots__/generator.spec.mjs.snap +12 -0
  261. package/generators/server/files-sql.js +52 -0
  262. package/generators/server/files.js +15 -0
  263. package/generators/server/index.js +100 -33
  264. package/generators/server/needle-api/needle-server-cache.js +4 -6
  265. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  266. package/generators/server/templates/build.gradle.ejs +17 -1
  267. package/generators/server/templates/gradle.properties.ejs +11 -11
  268. package/generators/server/templates/npmw +1 -1
  269. package/generators/server/templates/npmw.cmd +1 -1
  270. package/generators/server/templates/pom.xml.ejs +128 -9
  271. package/generators/server/templates/settings.gradle.ejs +9 -0
  272. package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
  273. package/generators/server/templates/src/main/docker/app.yml.ejs +2 -1
  274. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +13 -12
  275. package/generators/server/templates/src/main/java/package/aop/logging/LoggingAspect.java.ejs +1 -1
  276. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_cassandra.java.ejs +0 -6
  277. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_sql.java.ejs +2 -2
  278. package/generators/server/templates/src/main/java/package/config/JacksonConfiguration.java.ejs +1 -1
  279. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +0 -2
  280. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +2 -5
  281. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +9 -1
  282. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -1
  283. package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
  284. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -23
  285. package/generators/server/templates/src/main/java/package/security/PersistentTokenRememberMeServices.java.ejs +0 -2
  286. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +29 -4
  287. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +21 -9
  288. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +13 -5
  289. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
  290. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +1 -1
  291. package/generators/server/templates/src/main/resources/config/application.yml.ejs +7 -7
  292. package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
  293. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
  294. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +6 -1
  295. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
  296. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
  297. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +16 -2
  298. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +63 -0
  299. package/generators/spring-controller/index.js +9 -7
  300. package/generators/spring-service/index.js +10 -7
  301. package/generators/upgrade/index.js +4 -5
  302. package/generators/utils.js +2 -2
  303. package/generators/workspaces/index.js +16 -7
  304. package/jdl/jhipster/default-application-options.js +9 -7
  305. package/package.json +23 -23
  306. package/utils/entity.js +21 -4
  307. package/utils/field.js +12 -2
  308. package/utils/multi-step-transform/index.js +8 -8
  309. package/generators/client/templates/react/.npmrc.ejs +0 -1
  310. package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -17
  311. package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
  312. package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
  313. 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').writeFiles;
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
- useBlueprints = !this.fromBlueprint && this.instantiateBlueprints(GENERATOR_CLIENT);
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 (useBlueprints) return;
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 (useBlueprints) return;
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 (useBlueprints) return;
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 (useBlueprints) return;
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 (useBlueprints) return;
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 (useBlueprints) return;
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 (useBlueprints) return;
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, useBlueprints);
335
+ return writeAngularFiles.call(this);
314
336
  case REACT:
315
- return writeReactFiles.call(this, useBlueprints);
337
+ return writeReactFiles.call(this);
316
338
  case VUE:
317
- return writeVueFiles.call(this, useBlueprints);
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, useBlueprints);
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 (useBlueprints) return;
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.addWebpackConfig("require('./webpack.microfrontend')(config, options, targetOptions)");
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 (useBlueprints) return;
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 (useBlueprints) return;
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.jhipsterConfig.microfrontend && this.generator.jhipsterConfig.applicationType === 'gateway' && microserviceName
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/core/jhi-navbar/jhi-navbar.vue`;
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: '/${entityFileName}'`, this.generator);
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: '/${entityFileName}',
103
+ | path: '${entityFileName}',
85
104
  | name: '${entityName}',
86
105
  | component: ${entityName},
87
106
  | meta: { authorities: [Authority.USER] }
88
107
  | },
89
108
  | {
90
- | path: '/${entityFileName}/new',
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: '/${entityFileName}/:${entityInstance}Id/edit',
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: '/${entityFileName}/:${entityInstance}Id/view',
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.5",
4
- "bootstrap": "4.6.0",
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": "3.52.2",
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.5",
21
- "@angular-builders/custom-webpack": "12.1.2",
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.4.1",
24
- "@types/node": "16.9.1",
25
- "@types/jest": "27.0.1",
26
- "@typescript-eslint/eslint-plugin": "4.31.1",
27
- "browser-sync": "2.27.5",
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": "9.0.1",
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.0.1",
32
+ "eslint-webpack-plugin": "3.1.1",
33
33
  "folder-hash": "4.0.1",
34
- "jest": "27.2.0",
35
- "jest-preset-angular": "9.0.7",
34
+ "jest": "27.4.3",
35
+ "jest-preset-angular": "10.1.0",
36
36
  "jest-date-mock": "1.0.8",
37
- "jest-junit": "12.2.0",
37
+ "jest-junit": "13.0.0",
38
38
  "jest-sonar-reporter": "2.0.0",
39
- "merge-jsons-webpack-plugin": "1.0.21",
39
+ "merge-jsons-webpack-plugin": "2.0.1",
40
40
  "rimraf": "3.0.2",
41
- "ts-jest": "27.0.5",
41
+ "ts-jest": "27.0.7",
42
42
  "typescript": "4.3.5",
43
43
  "webpack": "5.50.0",
44
- "webpack-bundle-analyzer": "4.4.2",
44
+ "webpack-bundle-analyzer": "4.5.0",
45
45
  "webpack-merge": "5.8.0",
46
- "webpack-notifier": "1.13.0"
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": "Description for <%= baseName %>",
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('Component Tests', () => {
28
- describe('ActivateComponent', () => {
29
- let comp: ActivateComponent;
30
-
31
- beforeEach(
32
- waitForAsync(() => {
33
- TestBed.configureTestingModule({
34
- imports: [HttpClientTestingModule],
35
- declarations: [ActivateComponent],
36
- providers: [
37
- {
38
- provide: ActivatedRoute,
39
- useValue: { queryParams: of({ key: 'ABC123' }) },
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
- beforeEach(() => {
49
- const fixture = TestBed.createComponent(ActivateComponent);
50
- comp = fixture.componentInstance;
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
- it('calls activate.get with the key from params', inject(
54
- [ActivateService],
55
- fakeAsync((service: ActivateService) => {
56
- jest.spyOn(service, 'get').mockReturnValue(of());
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
- comp.ngOnInit();
59
- tick();
57
+ comp.ngOnInit();
58
+ tick();
60
59
 
61
- expect(service.get).toHaveBeenCalledWith('ABC123');
62
- })
63
- ));
60
+ expect(service.get).toHaveBeenCalledWith('ABC123');
61
+ })
62
+ ));
64
63
 
65
- it('should set set success to true upon successful activation', inject(
66
- [ActivateService],
67
- fakeAsync((service: ActivateService) => {
68
- jest.spyOn(service, 'get').mockReturnValue(of({}));
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
- comp.ngOnInit();
71
- tick();
69
+ comp.ngOnInit();
70
+ tick();
72
71
 
73
- expect(comp.error).toBe(false);
74
- expect(comp.success).toBe(true);
75
- })
76
- ));
72
+ expect(comp.error).toBe(false);
73
+ expect(comp.success).toBe(true);
74
+ })
75
+ ));
77
76
 
78
- it('should set set error to true upon activation failure', inject(
79
- [ActivateService],
80
- fakeAsync((service: ActivateService) => {
81
- jest.spyOn(service, 'get').mockReturnValue(throwError('ERROR'));
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
- comp.ngOnInit();
84
- tick();
82
+ comp.ngOnInit();
83
+ tick();
85
84
 
86
- expect(comp.error).toBe(true);
87
- expect(comp.success).toBe(false);
88
- })
89
- ));
90
- });
85
+ expect(comp.error).toBe(true);
86
+ expect(comp.success).toBe(false);
87
+ })
88
+ ));
91
89
  });