generator-jhipster 7.3.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/cli/import-jdl.js +3 -2
  2. package/cli/jhipster-command.js +2 -2
  3. package/cli/program.js +32 -29
  4. package/generators/app/index.js +46 -27
  5. package/generators/aws/index.js +8 -8
  6. package/generators/aws/lib/eb.js +1 -1
  7. package/generators/azure-app-service/index.js +16 -9
  8. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +2 -2
  9. package/generators/azure-spring-cloud/index.js +16 -9
  10. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +2 -2
  11. package/generators/bootstrap/index.js +57 -62
  12. package/generators/ci-cd/index.js +11 -8
  13. package/generators/ci-cd/templates/github-actions.yml.ejs +1 -1
  14. package/generators/ci-cd/templates/travis.yml.ejs +9 -4
  15. package/generators/cleanup.js +27 -171
  16. package/generators/client/files-angular.js +12 -1
  17. package/generators/client/files-common.js +6 -2
  18. package/generators/client/files-react.js +13 -2
  19. package/generators/client/files-vue.js +59 -7
  20. package/generators/client/index.js +46 -32
  21. package/generators/client/needle-api/needle-client-angular.js +1 -1
  22. package/generators/client/needle-api/needle-client-vue.js +57 -7
  23. package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
  24. package/generators/client/templates/angular/angular.json.ejs +5 -0
  25. package/generators/client/templates/angular/jest.conf.js.ejs +2 -0
  26. package/generators/client/templates/angular/package.json +29 -29
  27. package/generators/client/templates/angular/package.json.ejs +3 -1
  28. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
  29. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.ts.ejs +4 -4
  30. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
  31. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
  32. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
  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.component.ts.ejs +4 -4
  35. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
  36. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
  37. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +4 -4
  38. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
  39. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
  40. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
  41. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +122 -123
  42. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
  43. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
  44. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
  45. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +80 -80
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +4 -4
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +89 -91
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +4 -4
  58. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
  59. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +8 -8
  60. package/generators/client/templates/angular/src/main/webapp/app/app-routing.module.ts.ejs +14 -3
  61. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +8 -29
  62. package/generators/client/templates/angular/src/main/webapp/app/config/datepicker-adapter.ts.ejs +1 -1
  63. package/generators/client/templates/angular/src/main/webapp/app/config/dayjs.ts.ejs +4 -4
  64. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +14 -9
  65. package/generators/client/templates/angular/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +6 -6
  66. package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
  67. package/generators/client/templates/angular/src/main/webapp/app/entities/entity-navbar-items.ts.ejs +29 -0
  68. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +106 -98
  69. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
  70. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
  71. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +20 -0
  72. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +74 -70
  73. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +41 -2
  74. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
  75. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +114 -115
  76. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +4 -4
  77. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
  78. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
  79. package/generators/client/templates/angular/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +4 -4
  80. package/generators/client/templates/angular/src/main/webapp/app/shared/date/duration.pipe.ts.ejs +1 -1
  81. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.spec.ts.ejs +1 -1
  82. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.ts.ejs +1 -1
  83. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.spec.ts.ejs +1 -1
  84. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.ts.ejs +1 -1
  85. package/generators/client/templates/angular/src/main/webapp/app/shared/language/translate.directive.ts.ejs +6 -6
  86. package/generators/client/templates/angular/src/main/webapp/app/shared/language/translation.module.ts.ejs +83 -0
  87. package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +16 -2
  88. package/generators/client/templates/angular/tsconfig.json.ejs +2 -0
  89. package/generators/client/templates/angular/tsconfig.spec.json.ejs +0 -1
  90. package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +0 -2
  91. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +0 -16
  92. package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +12 -5
  93. package/generators/client/templates/common/package.json +6 -6
  94. package/generators/client/templates/common/src/main/webapp/robots.txt.ejs +0 -1
  95. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +86 -56
  96. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
  97. package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
  98. package/generators/client/templates/react/package.json +54 -53
  99. package/generators/client/templates/react/package.json.ejs +6 -1
  100. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
  101. package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +3 -2
  102. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
  103. package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +2 -2
  104. package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
  105. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
  106. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
  107. package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
  108. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.scss.ejs +9 -0
  109. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +2 -2
  110. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
  111. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
  112. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
  113. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -1
  114. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +17 -3
  115. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +13 -1
  116. package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
  117. package/generators/client/templates/vue/package.json +40 -49
  118. package/generators/client/templates/vue/package.json.ejs +13 -17
  119. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +23 -12
  120. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
  121. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
  122. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
  123. package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +16 -6
  124. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +27 -8
  125. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
  126. package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
  127. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
  128. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
  129. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +20 -0
  130. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
  131. package/generators/client/templates/vue/src/main/webapp/app/entities/user/{user.oauth2.service.ts.ejs → user.service.ts.ejs} +1 -1
  132. package/generators/client/templates/vue/{webpack/utils.js.ejs → src/main/webapp/app/index.ts.ejs} +1 -12
  133. package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -9
  134. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +20 -18
  135. package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +45 -3
  136. package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +19 -3
  137. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +0 -2
  138. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +3 -1
  139. package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +17 -3
  140. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +25 -10
  141. package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +2 -2
  142. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +6 -4
  143. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +4 -2
  144. package/generators/client/templates/vue/src/test/javascript/spec/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +10 -4
  145. package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
  146. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
  147. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
  148. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
  149. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +0 -1
  150. package/generators/client/templates/vue/tsconfig.json.ejs +6 -10
  151. package/generators/client/templates/vue/tsconfig.spec.json.ejs +37 -0
  152. package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
  153. package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
  154. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +150 -126
  155. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -76
  156. package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
  157. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -41
  158. package/generators/cloudfoundry/index.js +9 -9
  159. package/generators/common/index.js +12 -10
  160. package/generators/common/templates/.prettierrc.ejs +1 -1
  161. package/generators/common/templates/README.md.jhi.ejs +19 -0
  162. package/generators/common/templates/package.json +4 -4
  163. package/generators/cypress/index.js +12 -9
  164. package/generators/cypress/templates/cypress.json.ejs +16 -2
  165. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +3 -14
  166. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +33 -39
  167. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +52 -62
  168. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +2 -10
  169. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +25 -34
  170. package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -22
  171. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +4 -4
  172. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +67 -7
  173. package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
  174. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -6
  175. package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
  176. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +8 -8
  177. package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +0 -9
  178. package/generators/database-changelog/index.js +33 -22
  179. package/generators/database-changelog-liquibase/index.js +12 -8
  180. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +1 -1
  181. package/generators/docker-compose/index.js +11 -12
  182. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +1 -1
  183. package/generators/entities/index.js +35 -26
  184. package/generators/entities-client/index.js +10 -7
  185. package/generators/entity/index.js +81 -32
  186. package/generators/entity-client/files.js +7 -16
  187. package/generators/entity-client/index.js +22 -12
  188. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
  189. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +1 -1
  190. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +58 -60
  191. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -35
  192. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  193. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +4 -4
  194. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +110 -112
  195. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +9 -2
  196. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +8 -8
  197. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +8 -8
  198. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +8 -8
  199. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +15 -6
  200. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
  201. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +1 -1
  202. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +1 -1
  203. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +203 -198
  204. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +5 -5
  205. package/generators/entity-client/templates/angular/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
  206. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +264 -127
  207. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +17 -14
  208. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +5 -4
  209. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -13
  210. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +32 -25
  211. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
  212. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +2 -1
  213. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  214. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
  215. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +10 -7
  216. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +5 -1
  217. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
  218. package/generators/entity-i18n/index.js +7 -4
  219. package/generators/entity-server/files.js +14 -0
  220. package/generators/entity-server/index.js +12 -8
  221. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +2 -2
  222. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
  223. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +9 -8
  224. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +16 -29
  225. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +3 -3
  226. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
  227. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +1 -1
  228. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +18 -2
  229. package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +24 -0
  230. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +8 -6
  231. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +5 -1
  232. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +41 -43
  233. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +3 -3
  234. package/generators/gae/index.js +10 -10
  235. package/generators/generator-base-blueprint.js +14 -46
  236. package/generators/generator-base-private.js +44 -23
  237. package/generators/generator-base.js +58 -18
  238. package/generators/generator-constants.js +30 -23
  239. package/generators/generator-transforms.js +39 -27
  240. package/generators/heroku/index.js +14 -33
  241. package/generators/init/constants.cjs +1 -1
  242. package/generators/java/constants.cjs +1 -1
  243. package/generators/kubernetes/files.js +3 -0
  244. package/generators/kubernetes/index.js +10 -10
  245. package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -1
  246. package/generators/kubernetes/templates/deployment.yml.ejs +8 -3
  247. package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
  248. package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
  249. package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
  250. package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
  251. package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
  252. package/generators/kubernetes/templates/istio/gateway.yml.ejs +7 -5
  253. package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
  254. package/generators/kubernetes-base.js +1 -0
  255. package/generators/kubernetes-helm/files.js +3 -8
  256. package/generators/kubernetes-helm/index.js +10 -10
  257. package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +0 -1
  258. package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +5 -0
  259. package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +0 -11
  260. package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +5 -0
  261. package/generators/kubernetes-helm/templates/app/values.yml.ejs +68 -5
  262. package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +1 -1
  263. package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +1 -1
  264. package/generators/kubernetes-knative/index.js +10 -10
  265. package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +6 -4
  266. package/generators/kubernetes-knative/templates/service.yml.ejs +1 -1
  267. package/generators/languages/index.js +13 -13
  268. package/generators/languages/templates/src/main/webapp/i18n/vi/login.json +1 -1
  269. package/generators/openapi-client/index.js +13 -10
  270. package/generators/openshift/index.js +10 -11
  271. package/generators/openshift/templates/deployment.yml.ejs +1 -1
  272. package/generators/page/index.js +12 -10
  273. package/generators/server/__snapshots__/generator.spec.mjs.snap +28 -15
  274. package/generators/server/cleanup.js +151 -0
  275. package/generators/server/files-sql.js +52 -0
  276. package/generators/server/files.js +31 -14
  277. package/generators/server/index.js +86 -33
  278. package/generators/server/templates/build.gradle.ejs +231 -189
  279. package/generators/server/templates/gradle.properties.ejs +12 -12
  280. package/generators/server/templates/npmw +8 -6
  281. package/generators/server/templates/npmw.cmd +13 -8
  282. package/generators/server/templates/pom.xml.ejs +425 -217
  283. package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
  284. package/generators/server/templates/src/main/docker/app.yml.ejs +1 -1
  285. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -2
  286. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +3 -2
  287. package/generators/server/templates/src/main/java/package/config/OpenApiConfiguration.java.ejs +17 -54
  288. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +5 -5
  289. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +4 -6
  290. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -3
  291. package/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs +19 -9
  292. package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
  293. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +2 -2
  294. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -25
  295. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +31 -4
  296. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +23 -11
  297. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +16 -8
  298. package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +6 -6
  299. package/generators/server/templates/src/main/java/package/web/filter/ModifyServersOpenApiFilter.java.ejs +3 -2
  300. package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +1 -1
  301. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
  302. package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +2 -2
  303. package/generators/server/templates/src/main/resources/config/application.yml.ejs +22 -8
  304. package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +1 -2
  305. package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
  306. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +2 -6
  307. package/generators/server/templates/src/test/java/package/cucumber/CucumberTestContextConfiguration.java.ejs +2 -3
  308. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +41 -6
  309. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
  310. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +6 -1
  311. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
  312. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
  313. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +17 -3
  314. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +63 -0
  315. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +1 -1
  316. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +2 -3
  317. package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +9 -0
  318. package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +2 -0
  319. package/generators/server/templates/src/test/resources/logback.xml.ejs +1 -1
  320. package/generators/server/templates/src/test/{features → resources/package/features}/gitkeep +0 -0
  321. package/generators/server/templates/src/test/{features → resources/package/features}/user/user.feature.ejs +0 -0
  322. package/generators/spring-controller/index.js +9 -7
  323. package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +1 -1
  324. package/generators/spring-service/index.js +10 -7
  325. package/generators/upgrade/index.js +4 -5
  326. package/generators/utils.js +2 -2
  327. package/generators/workspaces/index.js +16 -7
  328. package/jdl/jhipster/default-application-options.js +9 -7
  329. package/package.json +22 -22
  330. package/utils/entity.js +17 -4
  331. package/utils/field.js +11 -1
  332. package/utils/multi-step-transform/index.js +8 -8
  333. package/generators/client/templates/react/.npmrc.ejs +0 -1
  334. package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -17
  335. package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
  336. package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
  337. package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -15
  338. package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +0 -91
  339. package/generators/server/templates/src/test/java/package/config/apidocs/GatewaySwaggerResourcesProviderTest.java.ejs +0 -79
  340. package/generators/server/templates/src/test/resources/cucumber.properties.ejs +0 -1
@@ -30,160 +30,158 @@ import { Alert, AlertService } from 'app/core/util/alert.service';
30
30
 
31
31
  import { AlertErrorComponent } from './alert-error.component';
32
32
 
33
- describe('Component Tests', () => {
34
- describe('Alert Error Component', () => {
35
- let comp: AlertErrorComponent;
36
- let fixture: ComponentFixture<AlertErrorComponent>;
37
- let eventManager: EventManager;
38
- let alertService: AlertService;
39
-
40
- beforeEach(
41
- waitForAsync(() => {
42
- TestBed.configureTestingModule({
33
+ describe('Alert Error Component', () => {
34
+ let comp: AlertErrorComponent;
35
+ let fixture: ComponentFixture<AlertErrorComponent>;
36
+ let eventManager: EventManager;
37
+ let alertService: AlertService;
38
+
39
+ beforeEach(
40
+ waitForAsync(() => {
41
+ TestBed.configureTestingModule({
43
42
  <%_ if (enableTranslation) { _%>
44
- imports: [TranslateModule.forRoot()],
43
+ imports: [TranslateModule.forRoot()],
45
44
  <%_ } _%>
46
- declarations: [AlertErrorComponent],
47
- providers: [EventManager, AlertService],
48
- })
49
- .overrideTemplate(AlertErrorComponent, '')
50
- .compileComponents();
45
+ declarations: [AlertErrorComponent],
46
+ providers: [EventManager, AlertService],
51
47
  })
52
- );
53
-
54
- beforeEach(() => {
55
- fixture = TestBed.createComponent(AlertErrorComponent);
56
- comp = fixture.componentInstance;
57
- eventManager = TestBed.inject(EventManager);
58
- alertService = TestBed.inject(AlertService);
59
- alertService.addAlert = (alert: Alert, alerts?: Alert[]) => {
60
- if (alerts) {
61
- alerts.push(alert);
62
- }
63
- return alert;
64
- };
65
- });
48
+ .overrideTemplate(AlertErrorComponent, '')
49
+ .compileComponents();
50
+ })
51
+ );
52
+
53
+ beforeEach(() => {
54
+ fixture = TestBed.createComponent(AlertErrorComponent);
55
+ comp = fixture.componentInstance;
56
+ eventManager = TestBed.inject(EventManager);
57
+ alertService = TestBed.inject(AlertService);
58
+ alertService.addAlert = (alert: Alert, alerts?: Alert[]) => {
59
+ if (alerts) {
60
+ alerts.push(alert);
61
+ }
62
+ return alert;
63
+ };
64
+ });
66
65
 
67
- describe('Error Handling', () => {
68
- it('Should display an alert on status 0', () => {
69
- // GIVEN
70
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: { status: 0 } });
71
- // THEN
72
- expect(comp.alerts.length).toBe(1);
73
- expect(comp.alerts[0].<%= mainAlertField %>).toBe(<% if (enableTranslation) { %>'error.server.not.reachable'<% } else { %>'Server not reachable'<% } %>);
74
- });
66
+ describe('Error Handling', () => {
67
+ it('Should display an alert on status 0', () => {
68
+ // GIVEN
69
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: { status: 0 } });
70
+ // THEN
71
+ expect(comp.alerts.length).toBe(1);
72
+ expect(comp.alerts[0].<%= mainAlertField %>).toBe(<% if (enableTranslation) { %>'error.server.not.reachable'<% } else { %>'Server not reachable'<% } %>);
73
+ });
75
74
 
76
- it('Should display an alert on status 404', () => {
77
- // GIVEN
78
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: { status: 404 } });
79
- // THEN
80
- expect(comp.alerts.length).toBe(1);
81
- expect(comp.alerts[0].<%= mainAlertField %>).toBe(<% if (enableTranslation) { %>'error.url.not.found'<% } else { %>'Not found'<% } %>);
82
- });
75
+ it('Should display an alert on status 404', () => {
76
+ // GIVEN
77
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: { status: 404 } });
78
+ // THEN
79
+ expect(comp.alerts.length).toBe(1);
80
+ expect(comp.alerts[0].<%= mainAlertField %>).toBe(<% if (enableTranslation) { %>'error.url.not.found'<% } else { %>'Not found'<% } %>);
81
+ });
83
82
 
84
- it('Should display an alert on generic error', () => {
85
- // GIVEN
86
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: { error: { message: 'Error Message' } } });
87
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: { error: 'Second Error Message' } });
88
- // THEN
89
- expect(comp.alerts.length).toBe(2);
90
- expect(comp.alerts[0].<%= mainAlertField %>).toBe('Error Message');
91
- expect(comp.alerts[1].<%= mainAlertField %>).toBe('Second Error Message');
92
- });
83
+ it('Should display an alert on generic error', () => {
84
+ // GIVEN
85
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: { error: { message: 'Error Message' } } });
86
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: { error: 'Second Error Message' } });
87
+ // THEN
88
+ expect(comp.alerts.length).toBe(2);
89
+ expect(comp.alerts[0].<%= mainAlertField %>).toBe('Error Message');
90
+ expect(comp.alerts[1].<%= mainAlertField %>).toBe('Second Error Message');
91
+ });
93
92
 
94
- it('Should display an alert on status 400 for generic error', () => {
95
- // GIVEN
96
- const response = new HttpErrorResponse({
97
- url: 'http://localhost:8080/api/foos',
98
- headers: new HttpHeaders(),
93
+ it('Should display an alert on status 400 for generic error', () => {
94
+ // GIVEN
95
+ const response = new HttpErrorResponse({
96
+ url: 'http://localhost:8080/api/foos',
97
+ headers: new HttpHeaders(),
98
+ status: 400,
99
+ statusText: 'Bad Request',
100
+ error: {
101
+ type: 'https://www.jhipster.tech/problem/constraint-violation',
102
+ title: 'Bad Request',
99
103
  status: 400,
100
- statusText: 'Bad Request',
101
- error: {
102
- type: 'https://www.jhipster.tech/problem/constraint-violation',
103
- title: 'Bad Request',
104
- status: 400,
105
- path: '/api/foos',
106
- message: 'error.validation',
107
- },
108
- });
109
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
110
- // THEN
111
- expect(comp.alerts.length).toBe(1);
112
- expect(comp.alerts[0].<%= mainAlertField %>).toBe('error.validation');
104
+ path: '/api/foos',
105
+ message: 'error.validation',
106
+ },
113
107
  });
108
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
109
+ // THEN
110
+ expect(comp.alerts.length).toBe(1);
111
+ expect(comp.alerts[0].<%= mainAlertField %>).toBe('error.validation');
112
+ });
114
113
 
115
- it('Should display an alert on status 400 for generic error without message', () => {
116
- // GIVEN
117
- const response = new HttpErrorResponse({
118
- url: 'http://localhost:8080/api/foos',
119
- headers: new HttpHeaders(),
120
- status: 400,
121
- error: 'Bad Request',
122
- });
123
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
124
- // THEN
125
- expect(comp.alerts.length).toBe(1);
126
- expect(comp.alerts[0].<%= mainAlertField %>).toBe('Bad Request');
114
+ it('Should display an alert on status 400 for generic error without message', () => {
115
+ // GIVEN
116
+ const response = new HttpErrorResponse({
117
+ url: 'http://localhost:8080/api/foos',
118
+ headers: new HttpHeaders(),
119
+ status: 400,
120
+ error: 'Bad Request',
127
121
  });
122
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
123
+ // THEN
124
+ expect(comp.alerts.length).toBe(1);
125
+ expect(comp.alerts[0].<%= mainAlertField %>).toBe('Bad Request');
126
+ });
128
127
 
129
- it('Should display an alert on status 400 for invalid parameters', () => {
130
- // GIVEN
131
- const response = new HttpErrorResponse({
132
- url: 'http://localhost:8080/api/foos',
133
- headers: new HttpHeaders(),
128
+ it('Should display an alert on status 400 for invalid parameters', () => {
129
+ // GIVEN
130
+ const response = new HttpErrorResponse({
131
+ url: 'http://localhost:8080/api/foos',
132
+ headers: new HttpHeaders(),
133
+ status: 400,
134
+ statusText: 'Bad Request',
135
+ error: {
136
+ type: 'https://www.jhipster.tech/problem/constraint-violation',
137
+ title: 'Method argument not valid',
134
138
  status: 400,
135
- statusText: 'Bad Request',
136
- error: {
137
- type: 'https://www.jhipster.tech/problem/constraint-violation',
138
- title: 'Method argument not valid',
139
- status: 400,
140
- path: '/api/foos',
141
- message: 'error.validation',
142
- fieldErrors: [{ objectName: 'foo', field: 'minField', message: 'Min' }],
143
- },
144
- });
145
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
146
- // THEN
147
- expect(comp.alerts.length).toBe(1);
148
- expect(comp.alerts[0].<%= mainAlertField %>).toBe(<% if (enableTranslation) { %>'error.Size'<% } else { %>'Error on field "MinField"'<% } %>);
139
+ path: '/api/foos',
140
+ message: 'error.validation',
141
+ fieldErrors: [{ objectName: 'foo', field: 'minField', message: 'Min' }],
142
+ },
149
143
  });
144
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
145
+ // THEN
146
+ expect(comp.alerts.length).toBe(1);
147
+ expect(comp.alerts[0].<%= mainAlertField %>).toBe(<% if (enableTranslation) { %>'error.Size'<% } else { %>'Error on field "MinField"'<% } %>);
148
+ });
150
149
 
151
- it('Should display an alert on status 400 for error headers', () => {
152
- // GIVEN
153
- const response = new HttpErrorResponse({
154
- url: 'http://localhost:8080/api/foos',
155
- headers: new HttpHeaders().append('app-error', 'Error Message').append('app-params', 'foo'),
150
+ it('Should display an alert on status 400 for error headers', () => {
151
+ // GIVEN
152
+ const response = new HttpErrorResponse({
153
+ url: 'http://localhost:8080/api/foos',
154
+ headers: new HttpHeaders().append('app-error', 'Error Message').append('app-params', 'foo'),
155
+ status: 400,
156
+ statusText: 'Bad Request',
157
+ error: {
156
158
  status: 400,
157
- statusText: 'Bad Request',
158
- error: {
159
- status: 400,
160
- message: 'error.validation',
161
- },
162
- });
163
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
164
- // THEN
165
- expect(comp.alerts.length).toBe(1);
166
- expect(comp.alerts[0].<%= mainAlertField %>).toBe('Error Message');
159
+ message: 'error.validation',
160
+ },
167
161
  });
162
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
163
+ // THEN
164
+ expect(comp.alerts.length).toBe(1);
165
+ expect(comp.alerts[0].<%= mainAlertField %>).toBe('Error Message');
166
+ });
168
167
 
169
- it('Should display an alert on status 500 with detail', () => {
170
- // GIVEN
171
- const response = new HttpErrorResponse({
172
- url: 'http://localhost:8080/api/foos',
173
- headers: new HttpHeaders(),
168
+ it('Should display an alert on status 500 with detail', () => {
169
+ // GIVEN
170
+ const response = new HttpErrorResponse({
171
+ url: 'http://localhost:8080/api/foos',
172
+ headers: new HttpHeaders(),
173
+ status: 500,
174
+ statusText: 'Internal server error',
175
+ error: {
174
176
  status: 500,
175
- statusText: 'Internal server error',
176
- error: {
177
- status: 500,
178
- message: 'error.http.500',
179
- detail: 'Detailed error message',
180
- },
181
- });
182
- eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
183
- // THEN
184
- expect(comp.alerts.length).toBe(1);
185
- expect(comp.alerts[0].<%= mainAlertField %>).toBe(<% if (enableTranslation) { %>'error.http.500'<% } else { %>'Detailed error message'<% } %>);
177
+ message: 'error.http.500',
178
+ detail: 'Detailed error message',
179
+ },
186
180
  });
181
+ eventManager.broadcast({ name: '<%= frontendAppName %>.httpError', content: response });
182
+ // THEN
183
+ expect(comp.alerts.length).toBe(1);
184
+ expect(comp.alerts[0].<%= mainAlertField %>).toBe(<% if (enableTranslation) { %>'error.http.500'<% } else { %>'Detailed error message'<% } %>);
187
185
  });
188
186
  });
189
187
  });
@@ -24,43 +24,41 @@ import { AlertService } from 'app/core/util/alert.service';
24
24
 
25
25
  import { AlertComponent } from './alert.component';
26
26
 
27
- describe('Component Tests', () => {
28
- describe('Alert Component', () => {
29
- let comp: AlertComponent;
30
- let fixture: ComponentFixture<AlertComponent>;
31
- let mockAlertService: AlertService;
27
+ describe('Alert Component', () => {
28
+ let comp: AlertComponent;
29
+ let fixture: ComponentFixture<AlertComponent>;
30
+ let mockAlertService: AlertService;
32
31
 
33
- beforeEach(
34
- waitForAsync(() => {
35
- TestBed.configureTestingModule({
36
- declarations: [AlertComponent],
37
- providers: [AlertService],
38
- })
39
- .overrideTemplate(AlertComponent, '')
40
- .compileComponents();
32
+ beforeEach(
33
+ waitForAsync(() => {
34
+ TestBed.configureTestingModule({
35
+ declarations: [AlertComponent],
36
+ providers: [AlertService],
41
37
  })
42
- );
38
+ .overrideTemplate(AlertComponent, '')
39
+ .compileComponents();
40
+ })
41
+ );
43
42
 
44
- beforeEach(() => {
45
- fixture = TestBed.createComponent(AlertComponent);
46
- comp = fixture.componentInstance;
47
- mockAlertService = TestBed.inject(AlertService);
48
- });
43
+ beforeEach(() => {
44
+ fixture = TestBed.createComponent(AlertComponent);
45
+ comp = fixture.componentInstance;
46
+ mockAlertService = TestBed.inject(AlertService);
47
+ });
49
48
 
50
- it('Should call alertService.get on init', () => {
51
- // WHEN
52
- comp.ngOnInit();
49
+ it('Should call alertService.get on init', () => {
50
+ // WHEN
51
+ comp.ngOnInit();
53
52
 
54
- // THEN
55
- expect(mockAlertService.get).toHaveBeenCalled();
56
- });
53
+ // THEN
54
+ expect(mockAlertService.get).toHaveBeenCalled();
55
+ });
57
56
 
58
- it('Should call alertService.clear on destroy', () => {
59
- // WHEN
60
- comp.ngOnDestroy();
57
+ it('Should call alertService.clear on destroy', () => {
58
+ // WHEN
59
+ comp.ngOnDestroy();
61
60
 
62
- // THEN
63
- expect(mockAlertService.clear).toHaveBeenCalled();
64
- });
61
+ // THEN
62
+ expect(mockAlertService.clear).toHaveBeenCalled();
65
63
  });
66
64
  });
@@ -99,7 +99,7 @@ describe('HasAnyAuthorityDirective tests', () => {
99
99
  mockAccountService.hasAnyAuthority = jest.fn(() => false);
100
100
 
101
101
  // WHEN
102
- authenticationState.next();
102
+ authenticationState.next(null);
103
103
  fixture.detectChanges();
104
104
 
105
105
  // THEN
@@ -109,7 +109,7 @@ describe('HasAnyAuthorityDirective tests', () => {
109
109
  mockAccountService.hasAnyAuthority = jest.fn(() => true);
110
110
 
111
111
  // WHEN
112
- authenticationState.next();
112
+ authenticationState.next(null);
113
113
  fixture.detectChanges();
114
114
 
115
115
  // THEN
@@ -133,7 +133,7 @@ describe('HasAnyAuthorityDirective tests', () => {
133
133
 
134
134
  // WHEN
135
135
  jest.clearAllMocks();
136
- authenticationState.next();
136
+ authenticationState.next(null);
137
137
 
138
138
  // THEN
139
139
  expect(mockAccountService.hasAnyAuthority).toHaveBeenCalled();
@@ -141,7 +141,7 @@ describe('HasAnyAuthorityDirective tests', () => {
141
141
  // WHEN
142
142
  jest.clearAllMocks();
143
143
  hasAnyAuthorityDirective.ngOnDestroy();
144
- authenticationState.next();
144
+ authenticationState.next(null);
145
145
 
146
146
  // THEN
147
147
  expect(mockAccountService.hasAnyAuthority).not.toHaveBeenCalled();
@@ -18,7 +18,7 @@
18
18
  -%>
19
19
  import { Pipe, PipeTransform } from '@angular/core';
20
20
 
21
- import * as dayjs from 'dayjs';
21
+ import dayjs from 'dayjs/esm';
22
22
 
23
23
  @Pipe({
24
24
  name: 'duration',
@@ -16,7 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- import * as dayjs from 'dayjs';
19
+ import dayjs from 'dayjs/esm';
20
20
 
21
21
  import { FormatMediumDatePipe } from './format-medium-date.pipe';
22
22
 
@@ -18,7 +18,7 @@
18
18
  -%>
19
19
  import { Pipe, PipeTransform } from '@angular/core';
20
20
 
21
- import * as dayjs from 'dayjs';
21
+ import dayjs from 'dayjs/esm';
22
22
 
23
23
  @Pipe({
24
24
  name: 'formatMediumDate',
@@ -16,7 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- import * as dayjs from 'dayjs';
19
+ import dayjs from 'dayjs/esm';
20
20
 
21
21
  import { FormatMediumDatetimePipe } from './format-medium-datetime.pipe';
22
22
 
@@ -18,7 +18,7 @@
18
18
  -%>
19
19
  import { Pipe, PipeTransform } from '@angular/core';
20
20
 
21
- import * as dayjs from 'dayjs';
21
+ import dayjs from 'dayjs/esm';
22
22
 
23
23
  @Pipe({
24
24
  name: 'formatMediumDatetime',
@@ -33,7 +33,7 @@ export class TranslateDirective implements OnChanges, OnInit, OnDestroy {
33
33
  @Input() <%= jhiPrefix %>Translate!: string;
34
34
  @Input() translateValues?: { [key: string]: unknown };
35
35
 
36
- private readonly directiveDestroyed = new Subject<never>();
36
+ private readonly directiveDestroyed = new Subject();
37
37
 
38
38
  constructor(private el: ElementRef, private translateService: TranslateService) {}
39
39
 
@@ -51,7 +51,7 @@ export class TranslateDirective implements OnChanges, OnInit, OnDestroy {
51
51
  }
52
52
 
53
53
  ngOnDestroy(): void {
54
- this.directiveDestroyed.next();
54
+ this.directiveDestroyed.next(null);
55
55
  this.directiveDestroyed.complete();
56
56
  }
57
57
 
@@ -59,11 +59,11 @@ export class TranslateDirective implements OnChanges, OnInit, OnDestroy {
59
59
  this.translateService
60
60
  .get(this.<%= jhiPrefix %>Translate, this.translateValues)
61
61
  .pipe(takeUntil(this.directiveDestroyed))
62
- .subscribe(
63
- value => {
62
+ .subscribe({
63
+ next: value => {
64
64
  this.el.nativeElement.innerHTML = value;
65
65
  },
66
- () => `${translationNotFoundMessage}[${this.<%= jhiPrefix %>Translate}]`
67
- );
66
+ error: () => `${translationNotFoundMessage}[${this.<%= jhiPrefix %>Translate}]`
67
+ });
68
68
  }
69
69
  }
@@ -0,0 +1,83 @@
1
+ <%#
2
+ Copyright 2013-2021 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ import { NgModule } from '@angular/core';
20
+ import { HttpClient } from '@angular/common/http';
21
+ import { TranslateModule, TranslateService, TranslateLoader, MissingTranslationHandler } from '@ngx-translate/core';
22
+ <%_ if (applicationTypeMicroservice) { _%>import { TranslateHttpLoader } from '@ngx-translate/http-loader';<%_ } _%>
23
+ import { translatePartialLoader, missingTranslationHandler } from 'app/config/translation.config';
24
+ import { SessionStorageService } from 'ngx-webstorage';
25
+
26
+ <%_ if (applicationTypeMicroservice) { _%>
27
+ function lazyTranslatePartialLoader(http: HttpClient): TranslateLoader {
28
+ return new TranslateHttpLoader(http, 'services/<%= lowercaseBaseName %>/i18n/', `.json?_=${I18N_HASH}`);
29
+ }
30
+
31
+ @NgModule({
32
+ imports: [
33
+ TranslateModule.forChild({
34
+ loader: {
35
+ provide: TranslateLoader,
36
+ useFactory: (lazyTranslatePartialLoader),
37
+ deps: [HttpClient]
38
+ },
39
+ isolate: false,
40
+ extend: true,
41
+ }),
42
+ ],
43
+ })
44
+ export class LazyTranslationModule {
45
+ constructor(
46
+ private translateService: TranslateService,
47
+ private translateLoader: TranslateLoader,
48
+ sessionStorageService: SessionStorageService
49
+ ) {
50
+ const currentLang = translateService.store.currentLang;
51
+ this.translateLoader.getTranslation(currentLang).subscribe(translation => {
52
+ this.translateService.setTranslation(currentLang, translation);
53
+ });
54
+ }
55
+ }
56
+ <%_ } _%>
57
+
58
+ @NgModule({
59
+ imports: [
60
+ TranslateModule.forRoot({
61
+ loader: {
62
+ provide: TranslateLoader,
63
+ useFactory: translatePartialLoader,
64
+ deps: [HttpClient],
65
+ },
66
+ missingTranslationHandler: {
67
+ provide: MissingTranslationHandler,
68
+ useFactory: missingTranslationHandler,
69
+ },
70
+ }),
71
+ ],
72
+ })
73
+ export class TranslationModule {
74
+ constructor(
75
+ private translateService: TranslateService,
76
+ sessionStorageService: SessionStorageService
77
+ ) {
78
+ translateService.setDefaultLang('<%= nativeLanguage %>');
79
+ // if user have changed language and navigates away from the application and back to the application then use previously choosed language
80
+ const langKey = sessionStorageService.retrieve('locale') ?? '<%= nativeLanguage %>';
81
+ translateService.use(langKey);
82
+ }
83
+ }
@@ -4,9 +4,23 @@ declare const I18N_HASH: string;
4
4
  <%_ } _%>
5
5
  <%_ if (applicationTypeGateway && microfrontend) { _%>
6
6
 
7
- <%_ for (const entity of Object.values(this.configOptions.sharedEntities).filter(entity => entity.microserviceName)) { _%>
7
+ <%_ for (const remote of microfrontends) { _%>
8
+ declare module '<%= remote.lowercaseBaseName %>/entity-routing' {
9
+ export class EntityRoutingModule {}
10
+ }
11
+ declare module '<%= remote.lowercaseBaseName %>/entity-navbar-items' {
12
+ export const EntityNavbarItems : []
13
+ }
14
+ <%_ if (enableTranslation) { _%>
15
+ declare module '<%= remote.lowercaseBaseName %>/translation-module' {
16
+ export class LazyTranslationModule {}
17
+ }
18
+ <%_ } _%>
19
+
20
+ <%_ } _%>
21
+ <%_ for (const entity of Object.values(this.configOptions.sharedEntities).filter(entity => entity.microserviceName)) { _%>
8
22
  declare module '<%= entity.microserviceName %>/<%= entity.entityFileName %>' {
9
23
  export class <%= entity.microserviceName ? upperFirstCamelCase(entity.microserviceName) : '' %><%= entity.entityAngularName %>Module {}
10
24
  }
11
- <%_ } _%>
25
+ <%_ } _%>
12
26
  <%_ } _%>
@@ -33,6 +33,8 @@
33
33
  "experimentalDecorators": true,
34
34
  "moduleResolution": "node",
35
35
  "importHelpers": true,
36
+ "esModuleInterop": true,
37
+ "allowSyntheticDefaultImports": true,
36
38
  "target": "es2017",
37
39
  "module": "es2020",
38
40
  "lib": ["es2018", "dom"]
@@ -19,7 +19,6 @@
19
19
  {
20
20
  "extends": "./tsconfig.json",
21
21
  "compilerOptions": {
22
- "emitDecoratorMetadata": true,
23
22
  "outDir": "<%= BUILD_DIR %>out-tsc/spec",
24
23
  "types": ["jest", "node"]
25
24
  },
@@ -23,8 +23,6 @@ function setupProxy({ tls }) {
23
23
  '/api',
24
24
  '/services',
25
25
  '/management',
26
- '/swagger-resources',
27
- '/v2/api-docs',
28
26
  '/v3/api-docs',
29
27
  '/h2-console',
30
28
  <%_ if (authenticationTypeOauth2) { _%>
@@ -42,22 +42,6 @@ module.exports = async (config, options, targetOptions) => {
42
42
  });
43
43
 
44
44
  <%_ } _%>
45
- config.cache = {
46
- // 1. Set cache type to filesystem
47
- type: 'filesystem',
48
- cacheDirectory: path.resolve(__dirname, '../<%= buildDir %>webpack'),
49
- buildDependencies: {
50
- // 2. Add your config as buildDependency to get cache invalidation on config change
51
- config: [
52
- __filename,
53
- path.resolve(__dirname, 'webpack.custom.js'),
54
- path.resolve(__dirname, '../angular.json'),
55
- path.resolve(__dirname, '../tsconfig.app.json'),
56
- path.resolve(__dirname, '../tsconfig.json')
57
- ],
58
- },
59
- };
60
-
61
45
  // PLUGINS
62
46
  if (config.mode === 'development') {
63
47
  config.plugins.push(