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
@@ -24,31 +24,31 @@ import {
24
24
  } from '../../support/commands';
25
25
 
26
26
  describe('/account/settings', () => {
27
- const username = Cypress.env('E2E_USERNAME') ?? 'admin';
28
- const password = Cypress.env('E2E_PASSWORD') ?? 'admin';
27
+ const adminUsername = Cypress.env('E2E_USERNAME') ?? 'admin';
28
+ const adminPassword = Cypress.env('E2E_PASSWORD') ?? 'admin';
29
+ const username = Cypress.env('E2E_USERNAME') ?? 'user';
30
+ const password = Cypress.env('E2E_PASSWORD') ?? 'user';
29
31
 
30
- before(() => {
31
- cy.window().then((win) => {
32
- win.sessionStorage.clear()
33
- });
34
- <%_ if (authenticationTypeSession) { _%>
35
- cy.clearCookie('SESSION');
36
- <%_ } _%>
37
- cy.clearCookies();
38
- cy.visit('');
39
- cy.login('user', 'user');
40
- cy.clickOnSettingsItem();
41
- })
32
+ beforeEach(() => {
33
+ cy.login(username, password);
34
+ cy.visit('/account/settings');
35
+ });
42
36
 
43
37
  beforeEach(() => {
44
38
  cy.intercept('POST', '/api/account').as('settingsSave');
45
39
  });
46
40
 
41
+ it('should be accessible through menu', () => {
42
+ cy.visit('');
43
+ cy.clickOnSettingsItem();
44
+ cy.url().should('match', /\/account\/settings$/);
45
+ });
46
+
47
47
  it("should be able to change 'user' firstname settings", () => {
48
48
  cy.get(firstNameSettingsSelector).clear().type('jhipster');
49
49
  // need to modify email because default email does not match regex in vue
50
50
  cy.get(emailSettingsSelector).clear().type('user@localhost.fr');
51
- cy.get(submitSettingsSelector).click({force: true});
51
+ cy.get(submitSettingsSelector).click();
52
52
  cy.wait('@settingsSave').then(({ response }) => expect(response.statusCode).to.equal(200));
53
53
  });
54
54
 
@@ -56,39 +56,30 @@ describe('/account/settings', () => {
56
56
  cy.get(lastNameSettingsSelector).clear().type('retspihj');
57
57
  // need to modify email because default email does not match regex in vue
58
58
  cy.get(emailSettingsSelector).clear().type('user@localhost.fr');
59
- cy.get(submitSettingsSelector).click({force: true});
59
+ cy.get(submitSettingsSelector).click();
60
60
  cy.wait('@settingsSave').then(({ response }) => expect(response.statusCode).to.equal(200));
61
61
  });
62
62
 
63
63
  it("should be able to change 'user' email settings", () => {
64
64
  cy.get(emailSettingsSelector).clear().type('user@localhost.fr');
65
- cy.get(submitSettingsSelector).click({force: true});
65
+ cy.get(submitSettingsSelector).click();
66
66
  cy.wait('@settingsSave').then(({ response }) => expect(response.statusCode).to.equal(200));
67
67
  });
68
68
 
69
69
  it("should not be able to change 'user' settings if email already exists", () => {
70
- // add an email for admin account
71
- cy.clickOnLogoutItem();
70
+ cy.login(adminUsername, adminPassword);
72
71
  cy.visit('');
73
- cy.login(username, password);
74
72
  cy.clickOnSettingsItem();
75
73
  cy.get(emailSettingsSelector).clear().type('admin@localhost.fr');
76
- cy.get(submitSettingsSelector).click({force: true});
77
- cy.clickOnLogoutItem();
74
+ cy.get(submitSettingsSelector).click();
78
75
 
79
- // try to reuse email used in admin account
80
- cy.window().then((win) => {
81
- win.sessionStorage.clear()
82
- });
76
+ cy.login(username, password);
83
77
  cy.visit('');
84
- cy.intercept('POST', '/api/account').as('settingsNotSave');
85
- cy.login('user', 'user');
86
78
  cy.clickOnSettingsItem();
79
+
80
+ cy.intercept('POST', '/api/account').as('settingsNotSave');
87
81
  cy.get(emailSettingsSelector).clear().type('admin@localhost.fr');
88
- cy.get(submitSettingsSelector).click({force: true});
89
- // Fix in future version of cypress
90
- // => https://glebbahmutov.com/blog/cypress-intercept-problems/#no-overwriting-interceptors
91
- // => https://github.com/cypress-io/cypress/issues/9302
92
- // cy.wait('@settingsNotSave').then(({ response }) => expect(response.statusCode).to.equal(400));
82
+ cy.get(submitSettingsSelector).click();
83
+ cy.wait('@settingsNotSave').then(({ response }) => expect(response.statusCode).to.equal(400));
93
84
  });
94
- })
85
+ });
@@ -34,31 +34,10 @@ describe('/admin', () => {
34
34
  const username = Cypress.env('E2E_USERNAME') ?? 'admin';
35
35
  const password = Cypress.env('E2E_PASSWORD') ?? 'admin';
36
36
 
37
- <%_ if (authenticationTypeOauth2) { _%>
38
37
  beforeEach(() => {
39
- cy.getOauth2Data();
40
- cy.get('@oauth2Data').then(oauth2Data => {
41
- cy.oauthLogin(oauth2Data, username, password);
42
- });
43
- });
44
-
45
- afterEach(() => {
46
- cy.oauthLogout();
47
- cy.clearCache();
48
- });
49
- <%_ } else { _%>
50
- before(() => {
51
- cy.window().then((win) => {
52
- win.sessionStorage.clear()
53
- });
54
- <%_ if (authenticationTypeSession) { _%>
55
- cy.clearCookie('SESSION');
56
- <%_ } _%>
57
- cy.clearCookies();
58
- cy.visit('');
59
38
  cy.login(username, password);
39
+ cy.visit('');
60
40
  });
61
- <%_ } _%>
62
41
 
63
42
  <%_ if (!skipUserManagement) { _%>
64
43
  describe('/user-management', () => {
@@ -28,20 +28,20 @@
28
28
 
29
29
  // This function is called when a project is opened or re-opened (e.g. due to
30
30
  // the project's config changing)
31
- import fs = require('fs');;
31
+ import fs = require('fs');
32
32
  import { lighthouse, pa11y, prepareAudit } from 'cypress-audit';
33
33
  import ReportGenerator = require('lighthouse/report/generator/report-generator');
34
34
  /**
35
35
  * @type {Cypress.PluginConfig}
36
36
  */
37
- module.exports = (on, config) => {
37
+ module.exports = (on<%_ if (cypressCoverage) { _%>, config<%_ } _%>) => {
38
38
  // `on` is used to hook into various events Cypress emits
39
- // `config` is the resolved Cypress config
39
+ <%_ if (cypressCoverage) { _%>// `config` is the resolved Cypress config<%_ } _%>
40
40
  on('before:browser:launch', (browser, launchOptions) => {
41
41
  prepareAudit(launchOptions);
42
42
  if (browser.name === 'chrome' && browser.isHeadless) {
43
43
  launchOptions.args.push('--disable-gpu');
44
- return launchOptions
44
+ return launchOptions;
45
45
  }
46
46
  });
47
47
 
@@ -104,22 +104,82 @@ export const classValid = <%_ if (clientFrameworkAngular) { _%>'ng-valid';
104
104
  <%_ } else if (clientFrameworkReact) { _%>'is-valid';
105
105
  <%_ } else { _%>'valid';<%_ } _%>
106
106
 
107
- <%_ if (!authenticationTypeOauth2) { _%>
107
+ Cypress.Commands.add('authenticatedRequest', (data: any) => {
108
+ <%_ if (authenticationTypeJwt) { _%>
109
+ <%_ if (clientFrameworkAngular || clientFrameworkReact) { _%>
110
+ const bearerToken = JSON.parse(sessionStorage.getItem(Cypress.env('jwtStorageName')));
111
+ <%_ } else { _%>
112
+ const bearerToken = sessionStorage.getItem(Cypress.env('jwtStorageName'));
113
+ <%_ } _%>
114
+ return cy.request({
115
+ ...data,
116
+ auth: {
117
+ bearer: bearerToken,
118
+ },
119
+ });
120
+ <%_ } else { _%>
121
+ return cy.getCookie('XSRF-TOKEN').then(csrfCookie => {
122
+ return cy.request({
123
+ ...data,
124
+ headers: {
125
+ ...data.headers,
126
+ 'X-XSRF-TOKEN': csrfCookie?.value,
127
+ },
128
+ });
129
+ });
130
+ <%_ } _%>
131
+ });
132
+
108
133
  Cypress.Commands.add('login', (username: string, password: string) => {
109
- cy.clickOnLoginItem();
110
- cy.get(usernameLoginSelector).type(username);
111
- cy.get(passwordLoginSelector).type(password);
112
- cy.get(submitLoginSelector).click();
134
+ cy.session(
135
+ [username, password],
136
+ () => {
137
+ <%_ if (authenticationTypeOauth2) { _%>
138
+ cy.getOauth2Data();
139
+ cy.get('@oauth2Data').then(oauth2Data => {
140
+ cy.oauthLogin(oauth2Data, username, password);
141
+ });
142
+ <%_ } else { _%>
143
+ cy.request({
144
+ method: 'GET',
145
+ url: '/api/account',
146
+ failOnStatusCode: false,
147
+ });
148
+ cy.authenticatedRequest({
149
+ method: 'POST',
150
+ body: { username, password },
151
+ url: Cypress.env('authenticationUrl'),
152
+ <%_ if (authenticationTypeSession) { _%>
153
+ form: true,
154
+ <%_ } else { _%>
155
+ }).then(({ body: { id_token } }) => {
156
+ <%_ if (clientFrameworkVue) { _%>
157
+ sessionStorage.setItem(Cypress.env('jwtStorageName'), id_token);
158
+ <%_ } else { _%>
159
+ sessionStorage.setItem(Cypress.env('jwtStorageName'), JSON.stringify(id_token));
160
+ <%_ } _%>
161
+ <%_ } _%>
162
+ });
163
+ <%_ } _%>
164
+ },
165
+ {
166
+ validate() {
167
+ cy.authenticatedRequest({ url: '/api/account' }).its('status').should('eq', 200);
168
+ },
169
+ }
170
+ );
113
171
  });
114
172
 
115
173
  declare global {
116
174
  namespace Cypress {
117
- interface Chainable<Subject> {
175
+ interface Chainable {
176
+ <%_ if (!authenticationTypeOauth2) { _%>
118
177
  login(username: string, password: string): Cypress.Chainable;
178
+ <%_ } _%>
179
+ authenticatedRequest(data: any): Cypress.Chainable;
119
180
  }
120
181
  }
121
182
  }
122
- <%_ } _%>
123
183
 
124
184
  import 'cypress-audit/commands';
125
185
  // Convert this to a module instead of script (allows import/export)
@@ -75,10 +75,10 @@ Cypress.Commands.add('setFieldSelectToLastOfEntity', (fieldName: string) => {
75
75
  return cy.get(`[data-cy="${fieldName}"]`).then(select => {
76
76
  const selectSize = (select[0] as HTMLSelectElement)?.options?.length || Number(select.attr('size')) || 0;
77
77
  if (selectSize > 0) {
78
- return cy.get(`[data-cy="${fieldName}"] option`).then((options: any) => {
79
- const elements = [...options].map(o => o.label);
78
+ return cy.get(`[data-cy="${fieldName}"] option`).then((options: JQuery<HTMLElement>) => {
79
+ const elements = [...options].map((o: HTMLElement) => (o as HTMLOptionElement).label);
80
80
  const lastElement = elements.length - 1;
81
- cy.get(`[data-cy="${fieldName}"]`).select(elements[lastElement]).type('{downarrow}');
81
+ cy.get(`[data-cy="${fieldName}"]`).select(lastElement).type('{downarrow}');
82
82
  });
83
83
  } else {
84
84
  return cy.get(`[data-cy="${fieldName}"]`).type('{downarrow}');
@@ -88,7 +88,7 @@ Cypress.Commands.add('setFieldSelectToLastOfEntity', (fieldName: string) => {
88
88
 
89
89
  declare global {
90
90
  namespace Cypress {
91
- interface Chainable<Subject> {
91
+ interface Chainable {
92
92
  getEntityHeading(entityName: string): Cypress.Chainable;
93
93
  getEntityCreateUpdateHeading(entityName: string): Cypress.Chainable;
94
94
  getEntityDetailsHeading(entityInstanceName: string): Cypress.Chainable;
@@ -41,12 +41,7 @@ import './management';
41
41
  <%_ if (authenticationTypeOauth2) { _%>
42
42
  import './oauth2';
43
43
  <%_ } _%>
44
- <%_ if (authenticationTypeSession) { _%>
45
- Cypress.Cookies.defaults({
46
- preserve: ['XSRF-TOKEN','SESSION', 'JSESSIONID']
47
- })
48
- <%_ } _%>
49
- <%_ if (clientFrameworkReact || clientFrameworkVue) { _%>
44
+ <%_ if (clientFrameworkVue && communicationSpringWebsocket) { _%>
50
45
 
51
46
  // https://docs.cypress.io/api/events/catalog-of-events#Uncaught-Exceptions
52
47
  Cypress.on('uncaught:exception', (err, runnable) => {
@@ -28,7 +28,7 @@ Cypress.Commands.add('getManagementInfo', () => {
28
28
 
29
29
  declare global {
30
30
  namespace Cypress {
31
- interface Chainable<Subject> {
31
+ interface Chainable {
32
32
  getManagementInfo(): Cypress.Chainable;
33
33
  }
34
34
  }
@@ -32,36 +32,36 @@ import {
32
32
  } from './commands';
33
33
 
34
34
  Cypress.Commands.add('clickOnLoginItem', () => {
35
- return cy.get(navbarSelector).get(accountMenuSelector).click({force: true}).get(loginItemSelector).click({force: true});
35
+ return cy.get(navbarSelector).get(accountMenuSelector).click().get(loginItemSelector).click();
36
36
  });
37
37
 
38
38
  Cypress.Commands.add('clickOnLogoutItem', () => {
39
- return cy.get(navbarSelector).get(accountMenuSelector).click({force: true}).get(logoutItemSelector).click({force: true});
39
+ return cy.get(navbarSelector).get(accountMenuSelector).click().get(logoutItemSelector).click();
40
40
  });
41
41
 
42
42
  Cypress.Commands.add('clickOnRegisterItem', () => {
43
- return cy.get(navbarSelector).get(accountMenuSelector).click({force: true}).get(registerItemSelector).click({force: true});
43
+ return cy.get(navbarSelector).get(accountMenuSelector).click().get(registerItemSelector).click();
44
44
  });
45
45
 
46
46
  Cypress.Commands.add('clickOnSettingsItem', () => {
47
- return cy.get(navbarSelector).get(accountMenuSelector).click({force: true}).get(settingsItemSelector).click({force: true});
47
+ return cy.get(navbarSelector).get(accountMenuSelector).click().get(settingsItemSelector).click();
48
48
  });
49
49
 
50
50
  Cypress.Commands.add('clickOnPasswordItem', () => {
51
- return cy.get(navbarSelector).get(accountMenuSelector).click({force: true}).get(passwordItemSelector).click({force: true});
51
+ return cy.get(navbarSelector).get(accountMenuSelector).click().get(passwordItemSelector).click();
52
52
  });
53
53
 
54
54
  Cypress.Commands.add('clickOnAdminMenuItem', (item: string) => {
55
- return cy.get(navbarSelector).get(adminMenuSelector).click({force: true}).get(`.dropdown-item[href="/admin/${item}"]`).click({force: true});
55
+ return cy.get(navbarSelector).get(adminMenuSelector).click().get(`.dropdown-item[href="/admin/${item}"]`).click();
56
56
  });
57
57
 
58
58
  Cypress.Commands.add('clickOnEntityMenuItem', (entityName: string) => {
59
- return cy.get(navbarSelector).get(entityItemSelector).click({force: true}).get(`.dropdown-item[href="/${entityName}"]`).click({force: true});
59
+ return cy.get(navbarSelector).get(entityItemSelector).click().get(`.dropdown-item[href="/${entityName}"]`).click();
60
60
  });
61
61
 
62
62
  declare global {
63
63
  namespace Cypress {
64
- interface Chainable<Subject> {
64
+ interface Chainable {
65
65
  clickOnLoginItem(): Cypress.Chainable;
66
66
  clickOnLogoutItem(): Cypress.Chainable;
67
67
  clickOnRegisterItem(): Cypress.Chainable;
@@ -155,14 +155,6 @@ Cypress.Commands.add('oauthLogout', () => {
155
155
  });
156
156
  });
157
157
 
158
- Cypress.Commands.add('clearCache', () => {
159
- cy.clearCookies();
160
- cy.clearLocalStorage();
161
- cy.window().then(win => {
162
- win.sessionStorage.clear();
163
- });
164
- });
165
-
166
158
  declare global {
167
159
  namespace Cypress {
168
160
  interface Chainable<Subject> {
@@ -172,7 +164,6 @@ declare global {
172
164
  auth0Login(oauth2Data: any, username: string, password: string): Cypress.Chainable;
173
165
  oktaLogin(oauth2Data: any, username: string, password: string): Cypress.Chainable;
174
166
  oauthLogout(): Cypress.Chainable;
175
- clearCache(): Cypress.Chainable;
176
167
  }
177
168
  }
178
169
  }
@@ -28,7 +28,6 @@ const BASE_CHANGELOG = {
28
28
  removedRelationships: [],
29
29
  };
30
30
 
31
- let useBlueprints;
32
31
  /* eslint-disable consistent-return */
33
32
  module.exports = class extends BaseBlueprintGenerator {
34
33
  constructor(args, options, features) {
@@ -45,37 +44,49 @@ module.exports = class extends BaseBlueprintGenerator {
45
44
  }
46
45
  this.info(`Creating changelog for entities ${this.options.entities}`);
47
46
  this.configOptions.oldSharedEntities = this.configOptions.oldSharedEntities || [];
48
- useBlueprints = !this.fromBlueprint && this.instantiateBlueprints(GENERATOR_DATABASE_CHANGELOG);
47
+ }
48
+
49
+ async _postConstruct() {
50
+ if (!this.fromBlueprint) {
51
+ await this.composeWithBlueprints(GENERATOR_DATABASE_CHANGELOG);
52
+ }
49
53
  }
50
54
 
51
55
  _default() {
52
56
  return {
53
- calculateChangelogs() {
57
+ async calculateChangelogs() {
54
58
  const diff = this._generateChangelogFromFiles();
55
59
 
56
- diff.forEach(([fieldChanges, _relationshipChanges]) => {
57
- if (fieldChanges.type === 'entity-new') {
58
- this._composeWithIncrementalChangelogProvider(fieldChanges);
59
- } else if (fieldChanges.addedFields.length > 0 || fieldChanges.removedFields.length > 0) {
60
- this._composeWithIncrementalChangelogProvider(fieldChanges);
61
- }
62
- });
63
-
64
- diff.forEach(([_fieldChanges, relationshipChanges]) => {
65
- if (
66
- relationshipChanges &&
67
- relationshipChanges.incremental &&
68
- (relationshipChanges.addedRelationships.length > 0 || relationshipChanges.removedRelationships.length > 0)
69
- ) {
70
- this._composeWithIncrementalChangelogProvider(relationshipChanges);
71
- }
72
- });
60
+ await Promise.all(
61
+ diff.map(([fieldChanges, _relationshipChanges]) => {
62
+ if (fieldChanges.type === 'entity-new') {
63
+ return this._composeWithIncrementalChangelogProvider(fieldChanges);
64
+ }
65
+ if (fieldChanges.addedFields.length > 0 || fieldChanges.removedFields.length > 0) {
66
+ return this._composeWithIncrementalChangelogProvider(fieldChanges);
67
+ }
68
+ return undefined;
69
+ })
70
+ );
71
+
72
+ await Promise.all(
73
+ diff.map(([_fieldChanges, relationshipChanges]) => {
74
+ if (
75
+ relationshipChanges &&
76
+ relationshipChanges.incremental &&
77
+ (relationshipChanges.addedRelationships.length > 0 || relationshipChanges.removedRelationships.length > 0)
78
+ ) {
79
+ return this._composeWithIncrementalChangelogProvider(relationshipChanges);
80
+ }
81
+ return undefined;
82
+ })
83
+ );
73
84
  },
74
85
  };
75
86
  }
76
87
 
77
88
  get default() {
78
- if (useBlueprints) return;
89
+ if (this.delegateToBlueprint) return {};
79
90
  return this._default();
80
91
  }
81
92
 
@@ -85,7 +96,7 @@ module.exports = class extends BaseBlueprintGenerator {
85
96
 
86
97
  _composeWithIncrementalChangelogProvider(databaseChangelog) {
87
98
  const skipWriting = !this.options.entities.includes(databaseChangelog.entityName);
88
- this.composeWithJHipster(GENERATOR_DATABASE_CHANGELOG_LIQUIBASE, {
99
+ return this.composeWithJHipster(GENERATOR_DATABASE_CHANGELOG_LIQUIBASE, {
89
100
  databaseChangelog,
90
101
  skipWriting,
91
102
  configOptions: this.configOptions,
@@ -35,7 +35,6 @@ const { prepareFieldForTemplates } = require('../../utils/field');
35
35
  const { prepareRelationshipForTemplates } = require('../../utils/relationship');
36
36
  const { prepareFieldForLiquibaseTemplates } = require('../../utils/liquibase');
37
37
 
38
- let useBlueprints;
39
38
  /* eslint-disable consistent-return */
40
39
  module.exports = class extends BaseBlueprintGenerator {
41
40
  constructor(args, options, features) {
@@ -51,7 +50,12 @@ module.exports = class extends BaseBlueprintGenerator {
51
50
 
52
51
  // Set number of rows to be generated
53
52
  this.numberOfRows = 10;
54
- useBlueprints = !this.fromBlueprint && this.instantiateBlueprints(GENERATOR_DATABASE_CHANGELOG_LIQUIBASE);
53
+ }
54
+
55
+ async _postConstruct() {
56
+ if (!this.fromBlueprint) {
57
+ await this.composeWithBlueprints(GENERATOR_DATABASE_CHANGELOG_LIQUIBASE);
58
+ }
55
59
  }
56
60
 
57
61
  _loading() {
@@ -69,7 +73,7 @@ module.exports = class extends BaseBlueprintGenerator {
69
73
  }
70
74
 
71
75
  get loading() {
72
- if (useBlueprints) return;
76
+ if (this.delegateToBlueprint) return {};
73
77
  return this._loading();
74
78
  }
75
79
 
@@ -149,7 +153,7 @@ module.exports = class extends BaseBlueprintGenerator {
149
153
  }
150
154
 
151
155
  get preparing() {
152
- if (useBlueprints) return;
156
+ if (this.delegateToBlueprint) return {};
153
157
  return this._preparing();
154
158
  }
155
159
 
@@ -194,7 +198,7 @@ module.exports = class extends BaseBlueprintGenerator {
194
198
  }
195
199
 
196
200
  get preparingRelationships() {
197
- if (useBlueprints) return;
201
+ if (this.delegateToBlueprint) return {};
198
202
  return this._preparingRelationships();
199
203
  }
200
204
 
@@ -209,7 +213,7 @@ module.exports = class extends BaseBlueprintGenerator {
209
213
  }
210
214
 
211
215
  get default() {
212
- if (useBlueprints) return;
216
+ if (this.delegateToBlueprint) return {};
213
217
  return this._default();
214
218
  }
215
219
 
@@ -253,7 +257,7 @@ module.exports = class extends BaseBlueprintGenerator {
253
257
  }
254
258
 
255
259
  get writing() {
256
- if (useBlueprints) return;
260
+ if (this.delegateToBlueprint) return {};
257
261
  if (this.options.skipWriting) {
258
262
  return {};
259
263
  }
@@ -286,7 +290,7 @@ module.exports = class extends BaseBlueprintGenerator {
286
290
  }
287
291
 
288
292
  get postWriting() {
289
- if (useBlueprints) return;
293
+ if (this.delegateToBlueprint) return {};
290
294
  if (this.options.skipWriting) {
291
295
  return {};
292
296
  }
@@ -42,7 +42,7 @@ if (hasFieldConstraint) { _%>
42
42
  _%>
43
43
  <addNotNullConstraint tableName="<%= entityTableName %>"
44
44
  columnName="<%= field.columnName %>"
45
- columnDataType="<%= field.fieldType %>"/>
45
+ columnDataType="<%= field.columnType %>"/>
46
46
  <%_ if (field.shouldCreateContentType) { _%>
47
47
  <addNotNullConstraint tableName="<%= entityTableName %>"
48
48
  columnName="<%= field.columnName %>_content_type"
@@ -34,13 +34,12 @@ const { GENERATOR_DOCKER_COMPOSE } = require('../generator-list');
34
34
 
35
35
  const NO_DATABASE = databaseTypes.NO;
36
36
 
37
- let useBlueprints;
38
-
39
37
  /* eslint-disable consistent-return */
40
38
  module.exports = class extends BaseDockerGenerator {
41
- constructor(args, options, features) {
42
- super(args, options, features);
43
- useBlueprints = !this.fromBlueprint && this.instantiateBlueprints(GENERATOR_DOCKER_COMPOSE);
39
+ async _postConstruct() {
40
+ if (!this.fromBlueprint) {
41
+ await this.composeWithBlueprints(GENERATOR_DOCKER_COMPOSE);
42
+ }
44
43
  }
45
44
 
46
45
  _initializing() {
@@ -81,7 +80,7 @@ module.exports = class extends BaseDockerGenerator {
81
80
  }
82
81
 
83
82
  get initializing() {
84
- if (useBlueprints) return;
83
+ if (this.delegateToBlueprint) return {};
85
84
  return this._initializing();
86
85
  }
87
86
 
@@ -90,7 +89,7 @@ module.exports = class extends BaseDockerGenerator {
90
89
  }
91
90
 
92
91
  get prompting() {
93
- if (useBlueprints) return;
92
+ if (this.delegateToBlueprint) return {};
94
93
  return this._prompting();
95
94
  }
96
95
 
@@ -118,7 +117,7 @@ module.exports = class extends BaseDockerGenerator {
118
117
  }
119
118
 
120
119
  get configuring() {
121
- if (useBlueprints) return;
120
+ if (this.delegateToBlueprint) return {};
122
121
  return this._configuring();
123
122
  }
124
123
 
@@ -264,7 +263,7 @@ module.exports = class extends BaseDockerGenerator {
264
263
  }
265
264
 
266
265
  get preparing() {
267
- if (useBlueprints) return;
266
+ if (this.delegateToBlueprint) return {};
268
267
  return this._preparing();
269
268
  }
270
269
 
@@ -277,7 +276,7 @@ module.exports = class extends BaseDockerGenerator {
277
276
  }
278
277
 
279
278
  get loading() {
280
- if (useBlueprints) return;
279
+ if (this.delegateToBlueprint) return {};
281
280
  return this._loading();
282
281
  }
283
282
 
@@ -286,7 +285,7 @@ module.exports = class extends BaseDockerGenerator {
286
285
  }
287
286
 
288
287
  get writing() {
289
- if (useBlueprints) return;
288
+ if (this.delegateToBlueprint) return {};
290
289
  return this._writing();
291
290
  }
292
291
 
@@ -313,7 +312,7 @@ module.exports = class extends BaseDockerGenerator {
313
312
  }
314
313
 
315
314
  end() {
316
- if (useBlueprints) return;
315
+ if (this.delegateToBlueprint) return {};
317
316
  return this._end();
318
317
  }
319
318
  };
@@ -2492,7 +2492,7 @@
2492
2492
  "clientOfflineSessionIdleTimeout": "0",
2493
2493
  "cibaInterval": "5"
2494
2494
  },
2495
- "keycloakVersion": "15.0.2",
2495
+ "keycloakVersion": "16.1.0",
2496
2496
  "userManagedAccessAllowed": false,
2497
2497
  "clientProfiles": {
2498
2498
  "profiles": []