generator-jhipster 7.8.1 → 7.9.2

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 (516) hide show
  1. package/README.md +1 -1
  2. package/cli/environment-builder.js +3 -1
  3. package/cli/import-jdl.js +61 -35
  4. package/cli/jdl.js +5 -4
  5. package/cli/jhipster-command.js +1 -1
  6. package/cli/program.js +5 -3
  7. package/generators/app/index.js +11 -0
  8. package/generators/app/prompts.js +60 -12
  9. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +3 -3
  10. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +3 -3
  11. package/generators/bootstrap/index.js +1 -0
  12. package/generators/bootstrap-application/generator.mjs +1 -0
  13. package/generators/ci-cd/templates/.gitlab-ci.yml.ejs +2 -3
  14. package/generators/client/files-angular.js +72 -89
  15. package/generators/client/files-react.js +63 -74
  16. package/generators/client/files-vue.js +8 -54
  17. package/generators/client/index.js +18 -11
  18. package/generators/client/needle-api/needle-client-angular.js +1 -4
  19. package/generators/client/needle-api/needle-client-react.js +2 -2
  20. package/generators/client/prompts.js +1 -0
  21. package/generators/client/templates/angular/.eslintrc.json.ejs +10 -1
  22. package/generators/client/templates/angular/angular.json.ejs +0 -1
  23. package/generators/client/templates/angular/jest.conf.js.ejs +3 -1
  24. package/generators/client/templates/angular/package.json +31 -31
  25. package/generators/client/templates/angular/package.json.ejs +23 -22
  26. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +4 -4
  27. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html.ejs +1 -1
  28. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +15 -15
  29. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +17 -11
  30. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +16 -16
  31. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +14 -9
  32. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +9 -9
  33. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +27 -27
  34. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +28 -13
  35. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.html.ejs +7 -7
  36. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +19 -19
  37. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +1 -1
  38. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.ts.ejs +35 -37
  39. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +4 -4
  40. package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +7 -7
  41. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +6 -6
  42. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.module.ts.ejs +0 -1
  43. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +3 -3
  44. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +5 -5
  45. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +1 -1
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html.ejs +5 -5
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +10 -10
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +10 -10
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +9 -9
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +8 -8
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +5 -5
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +4 -4
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +5 -5
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +4 -4
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +14 -14
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +16 -16
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +2 -1
  58. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +133 -138
  59. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +22 -24
  60. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +40 -49
  61. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.model.ts.ejs +2 -2
  62. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.module.ts.ejs +0 -1
  63. package/generators/client/templates/angular/src/main/webapp/app/config/navigation.constants.ts.ejs +23 -0
  64. package/generators/client/templates/angular/src/main/webapp/app/config/pagination.constants.ts.ejs +2 -3
  65. package/generators/client/templates/angular/src/main/webapp/app/core/request/request-util.ts.ejs +1 -1
  66. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.model.ts.ejs +2 -2
  67. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.ts.ejs +7 -3
  68. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.html.ejs +14 -14
  69. package/generators/client/templates/angular/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
  70. package/generators/client/templates/angular/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
  71. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
  72. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
  73. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +9 -9
  74. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +16 -27
  75. package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.html.ejs +10 -0
  76. package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.ts.ejs +23 -0
  77. package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +40 -0
  78. package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.ts.ejs +95 -0
  79. package/generators/client/templates/angular/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +1 -1
  80. package/generators/client/templates/angular/src/main/webapp/app/shared/shared.module.ts.ejs +3 -0
  81. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.service.ts.ejs +31 -0
  82. package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +3 -8
  83. package/generators/client/templates/angular/tsconfig.json.ejs +6 -0
  84. package/generators/client/templates/angular/tsconfig.spec.json.ejs +1 -1
  85. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +6 -2
  86. package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +1 -1
  87. package/generators/client/templates/common/package.json +6 -6
  88. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +2 -0
  89. package/generators/client/templates/react/.eslintrc.json.ejs +10 -1
  90. package/generators/client/templates/react/jest.conf.js.ejs +3 -1
  91. package/generators/client/templates/react/package.json +57 -57
  92. package/generators/client/templates/react/package.json.ejs +3 -3
  93. package/generators/client/templates/react/src/main/webapp/app/app.tsx.ejs +3 -3
  94. package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +1 -1
  95. package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +7 -5
  96. package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +4 -5
  97. package/generators/client/templates/react/src/main/webapp/app/modules/account/activate/activate.tsx.ejs +8 -4
  98. package/generators/client/templates/react/src/main/webapp/app/modules/account/index.tsx.ejs +9 -6
  99. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +1 -0
  100. package/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx.ejs +8 -5
  101. package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.ts.ejs +6 -7
  102. package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health-modal.tsx.ejs +3 -2
  103. package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health.tsx.ejs +4 -4
  104. package/generators/client/templates/react/src/main/webapp/app/modules/administration/index.tsx.ejs +14 -11
  105. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +8 -2
  106. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/index.tsx.ejs +13 -13
  107. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-delete-dialog.tsx.ejs +7 -4
  108. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-detail.tsx.ejs +5 -3
  109. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx.ejs +10 -6
  110. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +18 -26
  111. package/generators/client/templates/react/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +6 -3
  112. package/generators/client/templates/react/src/main/webapp/app/modules/login/login.tsx.ejs +6 -5
  113. package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +53 -25
  114. package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +30 -27
  115. package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.tsx.ejs +35 -34
  116. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-routes.spec.tsx.ejs +55 -0
  117. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-routes.tsx.ejs +21 -0
  118. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.spec.tsx.ejs +1 -1
  119. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.tsx.ejs +1 -1
  120. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +8 -10
  121. package/generators/client/templates/react/src/main/webapp/app/shared/error/page-not-found.tsx.ejs +9 -13
  122. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.spec.tsx.ejs +3 -5
  123. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +5 -8
  124. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +1 -1
  125. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-item.tsx.ejs +12 -11
  126. package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +2 -2
  127. package/generators/client/templates/react/tsconfig.json.ejs +2 -4
  128. package/generators/client/templates/react/tsconfig.test.json.ejs +1 -0
  129. package/generators/client/templates/react/webpack/webpack.common.js.ejs +7 -3
  130. package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +4 -4
  131. package/generators/client/templates/vue/.eslintrc.js.ejs +10 -1
  132. package/generators/client/templates/vue/package.json +40 -39
  133. package/generators/client/templates/vue/package.json.ejs +3 -3
  134. package/generators/client/templates/vue/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +2 -2
  135. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.vue.ejs +1 -1
  136. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +2 -2
  137. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +5 -3
  138. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +2 -2
  139. package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +1 -1
  140. package/generators/client/templates/vue/src/main/webapp/app/shared/date/filters.ts.ejs +0 -6
  141. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +5 -0
  142. package/generators/client/templates/vue/src/test/javascript/spec/app/account/register/register.component.spec.ts.ejs +1 -1
  143. package/generators/client/templates/vue/tsconfig.json.ejs +1 -1
  144. package/generators/client/templates/vue/tsconfig.spec.json.ejs +2 -2
  145. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +4 -0
  146. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +8 -1
  147. package/generators/client/transform-angular.cjs +117 -0
  148. package/generators/client/transform-react.cjs +126 -0
  149. package/generators/client/transform-vue.cjs +42 -0
  150. package/generators/common/files.js +2 -9
  151. package/generators/common/templates/README.md.jhi.ejs +21 -5
  152. package/generators/common/templates/package.json +3 -3
  153. package/generators/cypress/files.js +34 -22
  154. package/generators/cypress/index.js +42 -19
  155. package/generators/cypress/templates/cypress-audits.config.ts.ejs +28 -0
  156. package/generators/cypress/templates/cypress.config.ts.ejs +57 -0
  157. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/login-page.spec.ts.ejs → e2e/account/login-page.cy.ts.ejs} +0 -0
  158. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/password-page.spec.ts.ejs → e2e/account/password-page.cy.ts.ejs} +0 -0
  159. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/register-page.spec.ts.ejs → e2e/account/register-page.cy.ts.ejs} +0 -0
  160. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/reset-password-page.spec.ts.ejs → e2e/account/reset-password-page.cy.ts.ejs} +0 -0
  161. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/settings-page.spec.ts.ejs → e2e/account/settings-page.cy.ts.ejs} +0 -0
  162. package/generators/cypress/templates/src/test/javascript/cypress/{integration/administration/administration.spec.ts.ejs → e2e/administration/administration.cy.ts.ejs} +1 -1
  163. package/generators/cypress/templates/src/test/javascript/cypress/{integration → e2e}/lighthouse.audits.ts.ejs +0 -0
  164. package/generators/cypress/templates/src/test/javascript/cypress/plugins/global.d.ts.ejs +25 -0
  165. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +13 -14
  166. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +4 -4
  167. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
  168. package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +8 -8
  169. package/generators/cypress/templates/src/test/javascript/cypress/tsconfig.json.ejs +8 -5
  170. package/generators/database-changelog-liquibase/files.js +1 -1
  171. package/generators/database-changelog-liquibase/index.js +3 -0
  172. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
  173. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity_constraints.xml.ejs +1 -1
  174. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +1 -1
  175. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +2 -2
  176. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_migrate.xml.ejs +1 -1
  177. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +2 -2
  178. package/generators/docker-base.js +6 -3
  179. package/generators/docker-compose/files.js +5 -2
  180. package/generators/docker-compose/index.js +13 -24
  181. package/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +1 -1
  182. package/generators/docker-compose/templates/docker-compose.yml.ejs +10 -8
  183. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +62 -4
  184. package/generators/docker-prompts.js +1 -2
  185. package/generators/docker-utils.js +0 -1
  186. package/generators/entity/index.js +5 -15
  187. package/generators/entity/prompts.js +1 -52
  188. package/generators/entity-client/files-angular.cjs +169 -0
  189. package/generators/entity-client/files-cypress.cjs +52 -0
  190. package/generators/entity-client/files-react.cjs +113 -0
  191. package/generators/entity-client/files-vue.cjs +140 -0
  192. package/generators/entity-client/files.js +10 -381
  193. package/generators/entity-client/index.js +120 -19
  194. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +4 -5
  195. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.ts.ejs +2 -1
  196. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +12 -11
  197. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +0 -5
  198. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +18 -25
  199. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.test-samples.ts.ejs +45 -0
  200. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +45 -37
  201. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +47 -28
  202. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +292 -94
  203. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +5 -106
  204. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +2 -82
  205. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +5 -5
  206. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.ts.ejs +5 -5
  207. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +2 -3
  208. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +89 -175
  209. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +69 -44
  210. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.spec.ts.ejs +111 -0
  211. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.ts.ejs +263 -0
  212. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +99 -120
  213. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +47 -71
  214. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +79 -195
  215. package/generators/entity-client/templates/{common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs → cypress/src/test/javascript/cypress/e2e/entity/entity.cy.ts.ejs} +26 -17
  216. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +10 -5
  217. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +5 -3
  218. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +11 -6
  219. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -10
  220. package/generators/entity-client/templates/react/src/main/webapp/app/entities/index.tsx.ejs +13 -13
  221. package/generators/entity-client/templates/react/src/main/webapp/app/entities/react_validators.ejs +25 -32
  222. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +2 -2
  223. package/generators/entity-server/cleanup.js +41 -0
  224. package/generators/entity-server/files.js +118 -53
  225. package/generators/entity-server/index.js +14 -27
  226. package/generators/entity-server/templates/partials/save_template.ejs +1 -1
  227. package/generators/entity-server/templates/partials/update_template.ejs +1 -1
  228. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +11 -5
  229. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.elastic_search.ejs +17 -0
  230. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_cassandra.ejs +3 -1
  231. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +6 -1
  232. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +1 -1
  233. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +2 -2
  234. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +13 -6
  235. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +1 -1
  236. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +46 -9
  237. package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +3 -3
  238. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +2 -2
  239. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +2 -5
  240. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +140 -132
  241. package/generators/gae/index.js +1 -1
  242. package/generators/generate-blueprint/constants.mjs +22 -2
  243. package/generators/generate-blueprint/generator.mjs +25 -6
  244. package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +5 -3
  245. package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +2 -1
  246. package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +6 -5
  247. package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +10 -1
  248. package/generators/generator-base-blueprint.js +19 -20
  249. package/generators/generator-base-private.js +116 -64
  250. package/generators/generator-base.js +241 -91
  251. package/generators/generator-constants.js +118 -66
  252. package/generators/generator-defaults.js +1 -0
  253. package/generators/heroku/index.js +5 -4
  254. package/generators/heroku/templates/application-heroku.yml.ejs +1 -2
  255. package/generators/heroku/templates/heroku.gradle.ejs +28 -1
  256. package/generators/heroku/templates/pom-profile.xml.ejs +29 -0
  257. package/generators/java/index.cjs +2 -2
  258. package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -2
  259. package/generators/kubernetes/templates/db/mongodb.yml.ejs +1 -2
  260. package/generators/kubernetes/templates/ingress.yml.ejs +11 -4
  261. package/generators/kubernetes/templates/monitoring/jhipster-grafana.yml.ejs +6 -2
  262. package/generators/kubernetes/templates/registry/consul.yml.ejs +1 -2
  263. package/generators/kubernetes/templates/registry/jhipster-registry.yml.ejs +1 -2
  264. package/generators/languages/templates/src/main/webapp/i18n/al/global.json.ejs +7 -1
  265. package/generators/languages/templates/src/main/webapp/i18n/ar-ly/global.json.ejs +7 -1
  266. package/generators/languages/templates/src/main/webapp/i18n/bg/global.json.ejs +7 -1
  267. package/generators/languages/templates/src/main/webapp/i18n/bn/global.json.ejs +7 -1
  268. package/generators/languages/templates/src/main/webapp/i18n/by/global.json.ejs +7 -1
  269. package/generators/languages/templates/src/main/webapp/i18n/ca/global.json.ejs +7 -1
  270. package/generators/languages/templates/src/main/webapp/i18n/cs/global.json.ejs +7 -1
  271. package/generators/languages/templates/src/main/webapp/i18n/da/global.json.ejs +7 -1
  272. package/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +7 -1
  273. package/generators/languages/templates/src/main/webapp/i18n/el/global.json.ejs +7 -1
  274. package/generators/languages/templates/src/main/webapp/i18n/en/global.json.ejs +7 -1
  275. package/generators/languages/templates/src/main/webapp/i18n/en/health.json.ejs +3 -0
  276. package/generators/languages/templates/src/main/webapp/i18n/es/global.json.ejs +7 -1
  277. package/generators/languages/templates/src/main/webapp/i18n/et/global.json.ejs +7 -1
  278. package/generators/languages/templates/src/main/webapp/i18n/fa/global.json.ejs +7 -1
  279. package/generators/languages/templates/src/main/webapp/i18n/fi/global.json.ejs +7 -1
  280. package/generators/languages/templates/src/main/webapp/i18n/fr/global.json.ejs +7 -1
  281. package/generators/languages/templates/src/main/webapp/i18n/gl/global.json.ejs +7 -1
  282. package/generators/languages/templates/src/main/webapp/i18n/hi/global.json.ejs +7 -1
  283. package/generators/languages/templates/src/main/webapp/i18n/hr/global.json.ejs +7 -1
  284. package/generators/languages/templates/src/main/webapp/i18n/hu/global.json.ejs +7 -1
  285. package/generators/languages/templates/src/main/webapp/i18n/hy/global.json.ejs +7 -1
  286. package/generators/languages/templates/src/main/webapp/i18n/in/global.json.ejs +7 -1
  287. package/generators/languages/templates/src/main/webapp/i18n/it/global.json.ejs +7 -1
  288. package/generators/languages/templates/src/main/webapp/i18n/ja/global.json.ejs +7 -1
  289. package/generators/languages/templates/src/main/webapp/i18n/ko/global.json.ejs +7 -1
  290. package/generators/languages/templates/src/main/webapp/i18n/mr/global.json.ejs +7 -1
  291. package/generators/languages/templates/src/main/webapp/i18n/my/global.json.ejs +7 -1
  292. package/generators/languages/templates/src/main/webapp/i18n/nl/global.json.ejs +7 -1
  293. package/generators/languages/templates/src/main/webapp/i18n/pa/global.json.ejs +7 -1
  294. package/generators/languages/templates/src/main/webapp/i18n/pl/global.json.ejs +7 -1
  295. package/generators/languages/templates/src/main/webapp/i18n/pt-br/global.json.ejs +7 -1
  296. package/generators/languages/templates/src/main/webapp/i18n/pt-pt/global.json.ejs +7 -1
  297. package/generators/languages/templates/src/main/webapp/i18n/ro/global.json.ejs +7 -1
  298. package/generators/languages/templates/src/main/webapp/i18n/ru/global.json.ejs +7 -1
  299. package/generators/languages/templates/src/main/webapp/i18n/si/global.json.ejs +7 -1
  300. package/generators/languages/templates/src/main/webapp/i18n/sk/global.json.ejs +7 -1
  301. package/generators/languages/templates/src/main/webapp/i18n/sr/global.json.ejs +7 -1
  302. package/generators/languages/templates/src/main/webapp/i18n/sv/global.json.ejs +7 -1
  303. package/generators/languages/templates/src/main/webapp/i18n/ta/global.json.ejs +7 -1
  304. package/generators/languages/templates/src/main/webapp/i18n/te/global.json.ejs +7 -1
  305. package/generators/languages/templates/src/main/webapp/i18n/th/global.json.ejs +7 -1
  306. package/generators/languages/templates/src/main/webapp/i18n/tr/global.json.ejs +7 -1
  307. package/generators/languages/templates/src/main/webapp/i18n/ua/global.json.ejs +7 -1
  308. package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +7 -1
  309. package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/global.json.ejs +7 -1
  310. package/generators/languages/templates/src/main/webapp/i18n/vi/global.json.ejs +7 -1
  311. package/generators/languages/templates/src/main/webapp/i18n/zh-cn/global.json.ejs +7 -1
  312. package/generators/languages/templates/src/main/webapp/i18n/zh-tw/global.json.ejs +7 -1
  313. package/generators/languages/templates/src/test/resources/i18n/messages_al.properties.ejs +4 -1
  314. package/generators/languages/templates/src/test/resources/i18n/messages_ar_LY.properties.ejs +4 -1
  315. package/generators/languages/templates/src/test/resources/i18n/messages_bg.properties.ejs +1 -1
  316. package/generators/languages/templates/src/test/resources/i18n/messages_bn.properties.ejs +4 -1
  317. package/generators/languages/templates/src/test/resources/i18n/messages_by.properties.ejs +4 -1
  318. package/generators/languages/templates/src/test/resources/i18n/messages_ca.properties.ejs +4 -1
  319. package/generators/languages/templates/src/test/resources/i18n/messages_cs.properties.ejs +4 -1
  320. package/generators/languages/templates/src/test/resources/i18n/messages_da.properties.ejs +4 -1
  321. package/generators/languages/templates/src/test/resources/i18n/messages_de.properties.ejs +4 -1
  322. package/generators/languages/templates/src/test/resources/i18n/messages_el.properties.ejs +4 -1
  323. package/generators/languages/templates/src/test/resources/i18n/messages_es.properties.ejs +4 -1
  324. package/generators/languages/templates/src/test/resources/i18n/messages_et.properties.ejs +4 -1
  325. package/generators/languages/templates/src/test/resources/i18n/messages_fa.properties.ejs +4 -1
  326. package/generators/languages/templates/src/test/resources/i18n/messages_fi.properties.ejs +1 -1
  327. package/generators/languages/templates/src/test/resources/i18n/messages_gl.properties.ejs +4 -1
  328. package/generators/languages/templates/src/test/resources/i18n/messages_hi.properties.ejs +4 -1
  329. package/generators/languages/templates/src/test/resources/i18n/messages_hr.properties.ejs +1 -1
  330. package/generators/languages/templates/src/test/resources/i18n/messages_hu.properties.ejs +4 -1
  331. package/generators/languages/templates/src/test/resources/i18n/messages_hy.properties.ejs +4 -1
  332. package/generators/languages/templates/src/test/resources/i18n/messages_in.properties.ejs +4 -1
  333. package/generators/languages/templates/src/test/resources/i18n/messages_it.properties.ejs +4 -1
  334. package/generators/languages/templates/src/test/resources/i18n/messages_ja.properties.ejs +4 -1
  335. package/generators/languages/templates/src/test/resources/i18n/messages_ko.properties.ejs +4 -1
  336. package/generators/languages/templates/src/test/resources/i18n/messages_mr.properties.ejs +4 -1
  337. package/generators/languages/templates/src/test/resources/i18n/messages_my.properties.ejs +4 -1
  338. package/generators/languages/templates/src/test/resources/i18n/messages_nl.properties.ejs +4 -1
  339. package/generators/languages/templates/src/test/resources/i18n/messages_pa.properties.ejs +1 -1
  340. package/generators/languages/templates/src/test/resources/i18n/messages_pl.properties.ejs +4 -1
  341. package/generators/languages/templates/src/test/resources/i18n/messages_pt_BR.properties.ejs +1 -1
  342. package/generators/languages/templates/src/test/resources/i18n/messages_pt_PT.properties.ejs +4 -1
  343. package/generators/languages/templates/src/test/resources/i18n/messages_ro.properties.ejs +4 -1
  344. package/generators/languages/templates/src/test/resources/i18n/messages_ru.properties.ejs +4 -1
  345. package/generators/languages/templates/src/test/resources/i18n/messages_si.properties.ejs +4 -1
  346. package/generators/languages/templates/src/test/resources/i18n/messages_sk.properties.ejs +4 -1
  347. package/generators/languages/templates/src/test/resources/i18n/messages_sr.properties.ejs +4 -1
  348. package/generators/languages/templates/src/test/resources/i18n/messages_sv.properties.ejs +4 -1
  349. package/generators/languages/templates/src/test/resources/i18n/messages_ta.properties.ejs +4 -1
  350. package/generators/languages/templates/src/test/resources/i18n/messages_te.properties.ejs +4 -1
  351. package/generators/languages/templates/src/test/resources/i18n/messages_th.properties.ejs +4 -1
  352. package/generators/languages/templates/src/test/resources/i18n/messages_tr.properties.ejs +4 -1
  353. package/generators/languages/templates/src/test/resources/i18n/messages_ua.properties.ejs +4 -1
  354. package/generators/languages/templates/src/test/resources/i18n/messages_uz_Cyrl_UZ.properties.ejs +4 -1
  355. package/generators/languages/templates/src/test/resources/i18n/messages_uz_Latn_UZ.properties.ejs +4 -1
  356. package/generators/languages/templates/src/test/resources/i18n/messages_vi.properties.ejs +4 -1
  357. package/generators/languages/templates/src/test/resources/i18n/messages_zh_CN.properties.ejs +4 -1
  358. package/generators/languages/templates/src/test/resources/i18n/messages_zh_TW.properties.ejs +4 -1
  359. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  360. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +3 -3
  361. package/generators/maven/templates/pom.xml.jhi.ejs +2 -2
  362. package/generators/openapi-client/files.js +2 -8
  363. package/generators/openapi-client/index.js +2 -0
  364. package/generators/openshift/templates/registry/consul.yml.ejs +1 -2
  365. package/generators/openshift/templates/registry/jhipster-registry.yml.ejs +1 -2
  366. package/generators/project-name/index.cjs +8 -5
  367. package/generators/server/cleanup-angular.js +37 -0
  368. package/generators/server/cleanup-cache-provider.js +46 -0
  369. package/generators/server/cleanup-cassandra.js +49 -0
  370. package/generators/server/cleanup-cucumber.js +40 -0
  371. package/generators/server/cleanup-elasticsearch.js +48 -0
  372. package/generators/server/cleanup-gradle.js +40 -0
  373. package/generators/server/cleanup-kafka.js +41 -0
  374. package/generators/server/cleanup-maven.js +37 -0
  375. package/generators/server/cleanup-mongodb.js +40 -0
  376. package/generators/server/cleanup-oauth2.js +43 -0
  377. package/generators/server/cleanup-reactive.js +38 -0
  378. package/generators/server/cleanup-sql.js +48 -0
  379. package/generators/server/cleanup.js +85 -51
  380. package/generators/server/esm.mjs +1 -0
  381. package/generators/server/files-couchbase.js +11 -10
  382. package/generators/server/files-sql.js +197 -4
  383. package/generators/server/files.js +180 -273
  384. package/generators/server/index.js +32 -86
  385. package/generators/server/needles.cjs +79 -0
  386. package/generators/server/templates/.mvn/jvm.config +1 -1
  387. package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  388. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +3 -3
  389. package/generators/server/templates/.npmrc.ejs +1 -0
  390. package/generators/server/templates/build.gradle.ejs +121 -226
  391. package/generators/server/templates/couchbase/src/test/java/package/config/CouchbaseTestContainer.java.ejs +67 -0
  392. package/generators/server/templates/couchbase/src/test/java/package/config/EmbeddedCouchbase.java.ejs +30 -0
  393. package/generators/server/templates/gradle/docker.gradle.ejs +6 -0
  394. package/generators/server/templates/gradle/profile_dev.gradle.ejs +95 -3
  395. package/generators/server/templates/gradle/profile_prod.gradle.ejs +80 -4
  396. package/generators/server/templates/gradle.properties.ejs +17 -13
  397. package/generators/server/templates/pom.xml.ejs +274 -225
  398. package/generators/server/templates/settings.gradle.ejs +2 -1
  399. package/generators/server/templates/sql/common/src/main/docker/config/mariadb/my.cnf +49 -0
  400. package/generators/server/templates/sql/common/src/main/docker/config/mysql/my.cnf +82 -0
  401. package/generators/server/templates/{src → sql/common/src}/main/docker/mariadb.yml.ejs +2 -0
  402. package/generators/server/templates/{src → sql/common/src}/main/docker/mssql.yml.ejs +0 -0
  403. package/generators/server/templates/{src → sql/common/src}/main/docker/mysql.yml.ejs +2 -2
  404. package/generators/server/templates/{src → sql/common/src}/main/docker/postgresql.yml.ejs +0 -0
  405. package/generators/server/templates/{src → sql/common/src}/main/java/package/config/LiquibaseConfiguration.java.ejs +0 -0
  406. package/generators/server/templates/{src → sql/common/src}/main/resources/h2.server.properties.ejs +0 -0
  407. package/generators/server/templates/sql/common/src/test/java/package/config/EmbeddedSQL.java.ejs +30 -0
  408. package/generators/server/templates/sql/common/src/test/java/package/config/MariadbTestContainer.java.ejs +60 -0
  409. package/generators/server/templates/sql/common/src/test/java/package/config/MsSqlTestContainer.java.ejs +59 -0
  410. package/generators/server/templates/sql/common/src/test/java/package/config/MysqlTestContainer.java.ejs +69 -0
  411. package/generators/server/templates/sql/common/src/test/java/package/config/PostgreSqlTestContainer.java.ejs +59 -0
  412. package/generators/server/templates/sql/common/src/test/java/package/config/SqlTestContainer.java.ejs +28 -0
  413. package/generators/server/templates/{src → sql/common/src}/test/java/package/config/timezone/HibernateTimeZoneIT.java.ejs +0 -0
  414. package/generators/server/templates/{src → sql/common/src}/test/java/package/repository/timezone/DateTimeWrapper.java.ejs +0 -0
  415. package/generators/server/templates/{src → sql/common/src}/test/java/package/repository/timezone/DateTimeWrapperRepository.java.ejs +0 -0
  416. package/generators/server/templates/sql/common/src/test/resources/config/application-testdev.yml.ejs +93 -0
  417. package/generators/server/templates/{src/test/resources/config/application-testcontainers.yml.ejs → sql/common/src/test/resources/config/application-testprod.yml.ejs} +17 -33
  418. package/generators/server/templates/sql/common/src/test/resources/testcontainers/mariadb/my.cnf +49 -0
  419. package/generators/server/templates/sql/common/src/test/resources/testcontainers/mysql/my.cnf +83 -0
  420. package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/EntityManager.java.ejs +0 -0
  421. package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/rowmapper/ColumnConverter.java.ejs +0 -0
  422. package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/rowmapper/UserRowMapper.java.ejs +0 -0
  423. package/generators/server/templates/src/main/docker/app.yml.ejs +16 -14
  424. package/generators/server/templates/src/main/docker/cassandra-migration.yml.ejs +1 -0
  425. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +62 -6
  426. package/generators/server/templates/src/main/docker/jhipster-control-center.yml.ejs +1 -1
  427. package/generators/server/templates/src/main/docker/jhipster-registry.yml.ejs +1 -1
  428. package/generators/server/templates/src/main/docker/jib/entrypoint.sh.ejs +36 -1
  429. package/generators/server/templates/src/main/docker/keycloak.yml.ejs +8 -6
  430. package/generators/server/templates/src/main/java/package/config/ApplicationProperties.java.ejs +3 -0
  431. package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +2 -6
  432. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +1 -1
  433. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +16 -30
  434. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +108 -15
  435. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +6 -0
  436. package/generators/server/templates/src/main/java/package/security/DomainUserDetailsService.java.ejs +6 -3
  437. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +10 -3
  438. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +12 -2
  439. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource.java.ejs +1 -5
  440. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -5
  441. package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +3 -4
  442. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +4 -3
  443. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +1 -1
  444. package/generators/server/templates/src/main/resources/config/application.yml.ejs +1 -1
  445. package/generators/server/templates/src/main/resources/config/liquibase/changelog/initial_schema.xml.ejs +1 -1
  446. package/generators/server/templates/src/main/resources/config/liquibase/master.xml.ejs +54 -24
  447. package/generators/server/templates/src/main/resources/swagger/api.yml.ejs +3 -3
  448. package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +32 -19
  449. package/generators/server/templates/src/test/java/package/{repository/search/UserSearchRepositoryMockConfiguration.java.ejs → config/AsyncSyncConfiguration.java.ejs} +12 -10
  450. package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +20 -1
  451. package/generators/{entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs → server/templates/src/test/java/package/config/ElasticsearchReactiveTestConfiguration.java.ejs} +14 -11
  452. package/generators/server/templates/src/test/java/package/config/ElasticsearchTestContainer.java.ejs +68 -0
  453. package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +19 -0
  454. package/generators/server/templates/src/test/java/package/config/EmbeddedElasticsearch.java.ejs +30 -0
  455. package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +19 -0
  456. package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +19 -0
  457. package/generators/server/templates/src/test/java/package/config/EmbeddedNeo4j.java.ejs +29 -0
  458. package/generators/server/templates/src/test/java/package/config/EmbeddedRedis.java.ejs +30 -0
  459. package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +11 -2
  460. package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +19 -1
  461. package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +5 -5
  462. package/generators/server/templates/src/test/java/package/config/Neo4jTestContainer.java.ejs +66 -0
  463. package/generators/server/templates/src/test/java/package/config/RedisTestContainer.java.ejs +57 -0
  464. package/generators/server/templates/src/test/java/package/config/{NoOpMailConfiguration.java.ejs → SpringBootTestClassOrderer.java.ejs} +16 -16
  465. package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +166 -30
  466. package/generators/server/templates/src/test/java/package/config/WebConfigurerTest.java.ejs +0 -23
  467. package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +5 -3
  468. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +7 -15
  469. package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +8 -11
  470. package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
  471. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +19 -73
  472. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +0 -8
  473. package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +13 -10
  474. package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +76 -51
  475. package/generators/server/templates/src/test/resources/config/application.yml.ejs +13 -62
  476. package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +1 -0
  477. package/generators/server/templates/src/test/resources/templates/mail/activationEmail.html.ejs +19 -0
  478. package/generators/server/templates/src/test/resources/templates/mail/creationEmail.html.ejs +19 -0
  479. package/generators/server/templates/src/test/resources/templates/mail/passwordResetEmail.html.ejs +21 -0
  480. package/generators/spring-controller/index.js +16 -1
  481. package/generators/sql-constants.js +85 -0
  482. package/generators/statistics.js +6 -5
  483. package/generators/upgrade/index.js +1 -1
  484. package/generators/utils.js +32 -30
  485. package/generators/workspaces/index.js +31 -28
  486. package/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +2 -3
  487. package/jdl/converters/json-to-jdl-converter.js +23 -6
  488. package/jdl/exporters/applications/jhipster-application-formatter.js +7 -0
  489. package/jdl/jhipster/application-options.js +8 -0
  490. package/jdl/jhipster/default-application-options.js +2 -2
  491. package/jdl/parsing/lexer/application-tokens.js +6 -0
  492. package/jdl/parsing/validator.js +7 -0
  493. package/jdl/validators/application-validator.js +3 -1
  494. package/jdl/validators/jdl-with-application-validator.js +1 -0
  495. package/jdl/validators/jdl-without-application-validator.js +3 -2
  496. package/lib/support/base.cjs +43 -0
  497. package/lib/support/needles.cjs +221 -0
  498. package/lib/support/shared-data.cjs +2 -2
  499. package/package.json +29 -27
  500. package/utils/blueprint.js +1 -1
  501. package/utils/entity.js +9 -1
  502. package/utils/field.js +24 -11
  503. package/utils/liquibase.js +5 -8
  504. package/utils/relationship.js +3 -2
  505. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.spec.tsx.ejs +0 -33
  506. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.tsx.ejs +0 -17
  507. package/generators/cypress/templates/cypress-audits.json.ejs +0 -32
  508. package/generators/cypress/templates/cypress.json.ejs +0 -46
  509. package/generators/docker-compose/templates/realm-config/jhipster-users-0.json.ejs +0 -61
  510. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +0 -81
  511. package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +0 -56
  512. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-users-0.json.ejs +0 -61
  513. package/generators/server/templates/src/test/java/package/AbstractNeo4jIT.java.ejs +0 -44
  514. package/generators/server/templates/src/test/java/package/ReactiveSqlTestContainerExtension.java.ejs +0 -79
  515. package/generators/server/templates/src/test/java/package/RedisTestContainerExtension.java.ejs +0 -44
  516. package/generators/server/templates/src/test/resources/testcontainers/mariadb/my.cnf +0 -2
@@ -83,7 +83,7 @@ export default class <%=jhiPrefixCapitalized%>UserManagementEdit extends Vue {
83
83
  if (this.userAccount.id) {
84
84
  this.userManagementService().update(this.userAccount).then((res) => {
85
85
  this.returnToList();
86
- this.$root.$bvToast.toast(this.getMessageFromHeader(res).toString(), {
86
+ (this.$root as any).$bvToast.toast(this.getMessageFromHeader(res).toString(), {
87
87
  toaster: 'b-toaster-top-center',
88
88
  title: 'Info',
89
89
  variant: 'info',
@@ -100,7 +100,7 @@ export default class <%=jhiPrefixCapitalized%>UserManagementEdit extends Vue {
100
100
  <%_ } _%>
101
101
  this.userManagementService().create(this.userAccount).then(res => {
102
102
  this.returnToList();
103
- this.$root.$bvToast.toast(this.getMessageFromHeader(res).toString(), {
103
+ (this.$root as any).$bvToast.toast(this.getMessageFromHeader(res).toString(), {
104
104
  toaster: 'b-toaster-top-center',
105
105
  title: 'Success',
106
106
  variant: 'success',
@@ -11,8 +11,8 @@ import EntitiesMenu from '@/entities/entities-menu.vue';
11
11
  components: {
12
12
  'entities-menu': EntitiesMenu,
13
13
  <%_ if (applicationTypeGateway && microfrontend) { _%>
14
- <%_ for (const remote of remotes) { _%>
15
- '<%= remote.lowercaseBaseName %>-menu': () => import('@<%= remote.lowercaseBaseName %>/entities-menu'),
14
+ <%_ for (const microfrontend of microfrontends) { _%>
15
+ '<%= microfrontend.lowercaseBaseName %>-menu': () => import('@<%= microfrontend.lowercaseBaseName %>/entities-menu'),
16
16
  <%_ } _%>
17
17
  <%_ } _%>
18
18
  },
@@ -94,7 +94,9 @@ export default class JhiNavbar extends Vue {
94
94
 
95
95
  public hasAnyAuthority(authorities: any): boolean {
96
96
  this.accountService().hasAnyAuthorityAndCheckAuth(authorities).then(value => {
97
- this.hasAnyAuthorityValues[authorities] = value;
97
+ if (this.hasAnyAuthorityValues[authorities] !== value) {
98
+ this.hasAnyAuthorityValues = { ...this.hasAnyAuthorityValues, [authorities]: value };
99
+ }
98
100
  });
99
101
  return this.hasAnyAuthorityValues[authorities] ?? false;
100
102
  }
@@ -35,8 +35,8 @@
35
35
  </span>
36
36
  <entities-menu></entities-menu>
37
37
  <%_ if (applicationTypeGateway && microfrontend) { _%>
38
- <%_ for (const remote of remotes) { _%>
39
- <<%= remote.lowercaseBaseName %>-menu></<%= remote.lowercaseBaseName %>-menu>
38
+ <%_ for (const microfrontend of microfrontends) { _%>
39
+ <<%= microfrontend.lowercaseBaseName %>-menu></<%= microfrontend.lowercaseBaseName %>-menu>
40
40
  <%_ } _%>
41
41
  <%_ } _%>
42
42
  <!-- jhipster-needle-add-entity-to-menu - JHipster will add entities to the menu here -->
@@ -7,7 +7,7 @@ export default class AlertService {
7
7
  <%_ } else {_%>
8
8
  const alertMessage = message;
9
9
  <%_ } _%>
10
- instance.$root.$bvToast.toast(alertMessage.toString(), {
10
+ (instance.$root as any).$bvToast.toast(alertMessage.toString(), {
11
11
  toaster: 'b-toaster-top-center',
12
12
  title: 'Error',
13
13
  variant: 'danger',
@@ -13,12 +13,6 @@ export function initFilters() {
13
13
  }
14
14
  return '';
15
15
  });
16
- Vue.filter('formatMillis', value => {
17
- if (value) {
18
- return dayjs(value).format(DATE_TIME_FORMAT);
19
- }
20
- return '';
21
- });
22
16
  Vue.filter('duration', value => {
23
17
  if (value) {
24
18
  const formatted = dayjs.duration(value).humanize();
@@ -15,6 +15,7 @@ module.exports = {
15
15
  '^.+\\.tsx?$': 'ts-jest',
16
16
  },
17
17
  moduleNameMapper: {
18
+ rxjs: '<rootDir>/node_modules/rxjs/dist/bundles/rxjs.umd.js',
18
19
  '^@/(.*)$': '<rootDir>/<%= CLIENT_MAIN_SRC_DIR %>app/$1',
19
20
  ...pathsToModuleNameMapper(paths, { prefix: `<rootDir>/${baseUrl}/` }),
20
21
  <%_ if (applicationTypeGateway && microfrontend) { _%>
@@ -41,7 +42,11 @@ module.exports = {
41
42
  coverageThreshold: {
42
43
  global: {
43
44
  statements: 80,
45
+ <%_ if (microfrontend) { _%>
46
+ branches: 57,
47
+ <%_ } else { _%>
44
48
  branches: 60,
49
+ <%_ } _%>
45
50
  functions: 70,
46
51
  lines: 80,
47
52
  },
@@ -58,7 +58,7 @@ describe('Register Component', () => {
58
58
 
59
59
  it('should open login modal when asked to', () => {
60
60
  let called = false;
61
- register.$root.$on('bv::show::modal', () => {
61
+ (register.$root as any).$on('bv::show::modal', () => {
62
62
  called = true;
63
63
  });
64
64
  register.openLogin();
@@ -21,5 +21,5 @@
21
21
  "include": [
22
22
  "<%= CLIENT_MAIN_SRC_DIR %>app"
23
23
  ],
24
- "exclude": ["node_modules"<% if (cypressTests) { %>,"<%= CLIENT_TEST_SRC_DIR %>cypress"<% } %>]
24
+ "exclude": ["node_modules"]
25
25
  }
@@ -31,7 +31,7 @@
31
31
  "types": ["jest", "node"]
32
32
  },
33
33
  "include": [
34
- "<%= CLIENT_MAIN_SRC_DIR %>app/**/*",
35
- "<%= CLIENT_TEST_SRC_DIR %>spec/**/*"
34
+ "<%= CLIENT_MAIN_SRC_DIR %>app",
35
+ "<%= CLIENT_TEST_SRC_DIR %>spec"
36
36
  ]
37
37
  }
@@ -30,6 +30,10 @@ module.exports = (env, options) => {
30
30
  },
31
31
  // cheap-module-eval-source-map is faster for development
32
32
  devtool: config.dev.devtool,
33
+ output: {
34
+ filename: 'app/[contenthash].bundle.js',
35
+ chunkFilename: 'app/[id].chunk.js'
36
+ },
33
37
  optimization: {
34
38
  moduleIds: 'named',
35
39
  },
@@ -36,6 +36,10 @@ const webpackConfig = {
36
36
  })
37
37
  },
38
38
  devtool: config.build.productionSourceMap ? config.build.devtool : false,
39
+ output: {
40
+ filename: 'app/[name].[contenthash].bundle.js',
41
+ chunkFilename: 'app/[id].[chunkhash].chunk.js'
42
+ },
39
43
  optimization: {
40
44
  moduleIds: 'deterministic',
41
45
  minimizer: [
@@ -90,7 +94,10 @@ const webpackConfig = {
90
94
  extractComments: false,
91
95
  }),
92
96
  // extract css into its own file
93
- new MiniCssExtractPlugin(),
97
+ new MiniCssExtractPlugin({
98
+ filename: 'content/[name].[contenthash].css',
99
+ chunkFilename: 'content/[id].css'
100
+ }),
94
101
  // keep module.id stable when vendor modules does not change
95
102
  new ForkTsCheckerWebpackPlugin(
96
103
  {
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Copyright 2013-2022 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
+ const PLACEHOLDER_REGEX = /(?:placeholder|title)=['|"](\{\{\s?['|"]([a-zA-Z0-9.\-_]+)['|"]\s?\|\s?translate\s?\}\})['|"]/.source;
20
+
21
+ const JHI_TRANSLATE_REGEX = /(\n?\s*[a-z][a-zA-Z]*Translate="[a-zA-Z0-9 +{}'_!?.]+")/.source;
22
+ const TRANSLATE_VALUES_REGEX = /(\n?\s*\[translateValues\]="\{(?:(?!\}").)*?\}")/.source;
23
+ const TRANSLATE_REGEX = [JHI_TRANSLATE_REGEX, TRANSLATE_VALUES_REGEX].join('|');
24
+
25
+ function getTranslationValue(generator, key, data) {
26
+ return (generator._getClientTranslation && generator._getClientTranslation(key, data)) || undefined;
27
+ }
28
+
29
+ /**
30
+ * Replace translation key with translation values
31
+ *
32
+ * @param {import('../generator-base.js')} generator
33
+ * @param {string} content
34
+ * @param {string} regexSource regular expression to find keys
35
+ * @param {object} [options]
36
+ * @param {number} [options.keyIndex]
37
+ * @param {number} [options.replacementIndex]
38
+ * @returns {string}
39
+ */
40
+ function replaceTranslationKeysWithText(generator, content, regexSource, { keyIndex = 1, replacementIndex = 1 } = {}) {
41
+ const regex = new RegExp(regexSource, 'g');
42
+ let match = regex.exec(content);
43
+ while (match !== null) {
44
+ // match is now the next match, in array form and our key is at index 1, index 1 is replace target.
45
+ const key = match[keyIndex];
46
+ const target = match[replacementIndex];
47
+ const translation = getTranslationValue(generator, key) || generator.baseName;
48
+ content = content.replace(target, translation);
49
+ match = regex.exec(content);
50
+ }
51
+
52
+ return content;
53
+ }
54
+
55
+ /**
56
+ *
57
+ * @param {import('../generator-base.js')} generator reference to the generator
58
+ * @param {string} content html content
59
+ * @param {string} jsKey
60
+ * @returns string with pageTitle replaced
61
+ */
62
+ function replaceJSTranslation(generator, content, jsKey) {
63
+ return replaceTranslationKeysWithText(generator, content, `${jsKey}\\s?:\\s?['|"]([a-zA-Z0-9.\\-_]+)['|"]`);
64
+ }
65
+
66
+ /**
67
+ *
68
+ * @param {import('../generator-base.js')} generator reference to the generator
69
+ * @param {string} content html content
70
+ * @returns string with pageTitle replaced
71
+ */
72
+ function replacePageTitles(generator, content) {
73
+ return replaceJSTranslation(generator, content, 'pageTitle');
74
+ }
75
+
76
+ /**
77
+ * @type {function(import('../generator-base.js'), string): string}
78
+ */
79
+ function replacePlaceholders(generator, content) {
80
+ return replaceTranslationKeysWithText(generator, content, PLACEHOLDER_REGEX, { keyIndex: 2 });
81
+ }
82
+
83
+ /**
84
+ * Replace error code translation key with translated message
85
+ *
86
+ * @type {function(import('../generator-base.js'), string): string}
87
+ */
88
+ function replaceErrorMessage(generator, content) {
89
+ return replaceJSTranslation(generator, content, 'errorMessage');
90
+ }
91
+
92
+ /**
93
+ * Replace and cleanup translations.
94
+ *
95
+ * @type {import('../generator-base.js').EditFileCallback}
96
+ * @this {import('../generator-base.js')}
97
+ */
98
+ function replaceAngularTranslations(content, filePath) {
99
+ if (this.enableTranslation) {
100
+ return content;
101
+ }
102
+ if (/\.html$/.test(filePath)) {
103
+ content = content.replace(new RegExp(TRANSLATE_REGEX, 'g'), '');
104
+ content = replacePlaceholders(this, content);
105
+ }
106
+ if (/(:?route|module)\.ts$/.test(filePath)) {
107
+ content = replacePageTitles(this, content);
108
+ }
109
+ if (/error\.route\.ts$/.test(filePath)) {
110
+ content = replaceErrorMessage(this, content);
111
+ }
112
+ return content;
113
+ }
114
+
115
+ module.exports = {
116
+ replaceAngularTranslations,
117
+ };
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Copyright 2013-2022 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
+ const TRANSLATE_IMPORT_1 = /import { ?[T|t]ranslate(?:, ?[T|t]ranslate)? ?} from 'react-jhipster';?/.source; // Translate imports
20
+ const TRANSLATE_IMPORT_2 = / *[T|t]ranslate,|, ?[T|t]ranslate/.source; // Translate import
21
+ const TRANSLATE_IMPORT = [TRANSLATE_IMPORT_1, TRANSLATE_IMPORT_2].join('|');
22
+
23
+ const TRANSLATE_FUNCTION = /translate\(\s*'(?<key>[^']+)'(?:,\s*(?<interpolate>\{[^}]*\}))?\s*\)/g.source;
24
+
25
+ const CONTENT_TYPE_ATTRIBUTE = 'contentKey=(?:"(?<key>[^"]+)"|\\{[^\\}]+\\})\\s*';
26
+ const INTERPOLATE_ATTRIBUTE = 'interpolate=\\{(?<interpolate>\\{[^\\}]+\\})\\}\\s*';
27
+ const COMPONENT_ATTRIBUTE = 'component="(?<component>[^"]+)"\\s*';
28
+ const TRANSLATE_TAG = `<Translate\\s*(?:(?:${COMPONENT_ATTRIBUTE}|${INTERPOLATE_ATTRIBUTE}|${CONTENT_TYPE_ATTRIBUTE})+)>(?<translation>[\\s\\S]*?)<\\/Translate>`;
29
+
30
+ function getTranslationValue(generator, key, data) {
31
+ if (generator._getEntityClientTranslation) {
32
+ return generator._getEntityClientTranslation(key, data);
33
+ }
34
+ return (generator._getClientTranslation && generator._getClientTranslation(key, data)) || undefined;
35
+ }
36
+
37
+ const replaceTranslationKeysWithText = (generator, body, regexp, { keyPattern, interpolatePattern, wrapTranslation, escapeHtml } = {}) => {
38
+ const matches = body.matchAll(new RegExp(regexp, 'g'));
39
+ if (typeof wrapTranslation === 'string') {
40
+ wrapTranslation = [wrapTranslation, wrapTranslation];
41
+ }
42
+ for (const match of matches) {
43
+ const target = match[0];
44
+
45
+ let key = match.groups && match.groups.key;
46
+ if (!key && keyPattern) {
47
+ const keyMatch = target.match(new RegExp(keyPattern));
48
+ key = keyMatch && keyMatch.groups && keyMatch.groups.key;
49
+ }
50
+ if (!key) {
51
+ throw new Error(`Translation key not found for ${target}`);
52
+ }
53
+
54
+ let interpolate = match.groups && match.groups.interpolate;
55
+ if (!interpolate && interpolatePattern) {
56
+ const interpolateMatch = target.match(new RegExp(interpolatePattern));
57
+ interpolate = interpolateMatch && interpolateMatch.groups && interpolateMatch.groups.interpolate;
58
+ }
59
+
60
+ let data;
61
+ if (interpolate) {
62
+ const interpolateMatches = interpolate.matchAll(/(?<field>[^{\s:,}]+)(?::\s*(?<value>[^,}]+))?/g);
63
+ data = {};
64
+ for (const interpolateMatch of interpolateMatches) {
65
+ const field = interpolateMatch.groups.field;
66
+ let value = interpolateMatch.groups.value;
67
+ if (value === undefined) {
68
+ value = key;
69
+ }
70
+ value = value.trim();
71
+ if (/^\d+$/.test(value)) {
72
+ // convert integer
73
+ value = parseInt(value, 10);
74
+ } else if (/^'.*'$/.test(value) || /^".*"$/.test(value)) {
75
+ // extract string value
76
+ value = value.substring(1, value.length - 2);
77
+ } else {
78
+ // wrap expression
79
+ value = `{${value}}`;
80
+ }
81
+ data[field] = value;
82
+ }
83
+ }
84
+
85
+ const translation = getTranslationValue(generator, key, data);
86
+
87
+ let replacement = translation;
88
+ if (!replacement) {
89
+ replacement = wrapTranslation ? `${wrapTranslation[0]}${wrapTranslation[1]}` : '';
90
+ } else if (wrapTranslation) {
91
+ replacement = `${wrapTranslation[0]}${translation}${wrapTranslation[1]}`;
92
+ } else if (escapeHtml) {
93
+ // Escape specific chars
94
+ replacement = replacement.replace(/'/g, '&apos;').replace(/"/g, '&quot;');
95
+ }
96
+ body = body.replace(target, replacement);
97
+ }
98
+ return body;
99
+ };
100
+
101
+ /**
102
+ * Replace and cleanup translations.
103
+ *
104
+ * @type {import('../generator-base.js').EditFileCallback}
105
+ * @this {import('../generator-base.js')}
106
+ */
107
+ function replaceReactTranslations(body, filePath) {
108
+ if (this.enableTranslation || !this._getClientTranslation) {
109
+ return body;
110
+ }
111
+ if (/\.tsx$/.test(filePath)) {
112
+ body = body.replace(new RegExp(TRANSLATE_IMPORT, 'g'), '');
113
+ body = replaceTranslationKeysWithText(this, body, `\\{\\s*${TRANSLATE_FUNCTION}\\s*\\}`, { wrapTranslation: '"' });
114
+ body = replaceTranslationKeysWithText(this, body, TRANSLATE_FUNCTION, { wrapTranslation: '"' });
115
+ body = replaceTranslationKeysWithText(this, body, TRANSLATE_TAG, {
116
+ keyPattern: CONTENT_TYPE_ATTRIBUTE,
117
+ interpolatePattern: INTERPOLATE_ATTRIBUTE,
118
+ escapeHtml: true,
119
+ });
120
+ }
121
+ return body;
122
+ }
123
+
124
+ module.exports = {
125
+ replaceReactTranslations,
126
+ };
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright 2013-2022 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
+
20
+ const TRANSLATIONS_ATTRIBUTES = ['v-text', 'v-bind:placeholder', 'v-html', 'v-bind:title', 'v-bind:label', 'v-bind:value', 'v-bind:html']
21
+ .map(s => `(?:${s}="\\$t\\(.*?\\)")`)
22
+ .join('|');
23
+
24
+ /**
25
+ * Replace and cleanup vue translations.
26
+ *
27
+ * @type {import('../generator-base.js').EditFileCallback}
28
+ * @this {import('../generator-base.js')}
29
+ */
30
+ function replaceVueTranslations(body, filePath) {
31
+ if (this.enableTranslation || !this._getClientTranslation) {
32
+ return body;
33
+ }
34
+ if (/\.vue$/.test(filePath)) {
35
+ body = body.replace(new RegExp(`[\\s\\n]*(?:${TRANSLATIONS_ATTRIBUTES})`, 'g'), '');
36
+ }
37
+ return body;
38
+ }
39
+
40
+ module.exports = {
41
+ replaceVueTranslations,
42
+ };
@@ -41,12 +41,10 @@ const commonFiles = {
41
41
  {
42
42
  file: 'gitattributes',
43
43
  renameTo: () => '.gitattributes',
44
- method: 'copy',
45
44
  },
46
45
  {
47
46
  file: 'editorconfig',
48
47
  renameTo: () => '.editorconfig',
49
- method: 'copy',
50
48
  },
51
49
  {
52
50
  file: 'sonar-project.properties',
@@ -58,12 +56,7 @@ const commonFiles = {
58
56
  commitHooks: [
59
57
  {
60
58
  condition: generator => !generator.skipCommitHook,
61
- templates: [
62
- '.lintstagedrc.js',
63
- {
64
- file: '.husky/pre-commit',
65
- },
66
- ],
59
+ templates: ['.lintstagedrc.js', '.husky/pre-commit'],
67
60
  },
68
61
  ],
69
62
  };
@@ -71,7 +64,7 @@ const commonFiles = {
71
64
  function writeFiles() {
72
65
  return {
73
66
  writeFiles() {
74
- return this.writeFilesToDisk(commonFiles);
67
+ return this.writeFiles({ sections: commonFiles });
75
68
  },
76
69
  };
77
70
  }
@@ -37,7 +37,7 @@ let clientPackageMngrName = 'Npm';
37
37
  let clientPackageMngrAddGlobal = 'install -g';
38
38
  let clientPackageMngrAdd = 'install --save --save-exact';
39
39
  let clientPackageMngrAddDev = 'install --save-dev --save-exact';
40
- let DOCUMENTATION_ARCHIVE_URL = `${DOCUMENTATION_URL}`;
40
+ let DOCUMENTATION_ARCHIVE_URL = `${DOCUMENTATION_URL + DOCUMENTATION_ARCHIVE_PATH}v${jhipsterVersion}`;
41
41
  _%>
42
42
  This application was generated using JHipster <%= jhipsterVersion %>, you can find documentation and help at [<%= DOCUMENTATION_ARCHIVE_URL %>](<%= DOCUMENTATION_ARCHIVE_URL %>).
43
43
  <%_ if (applicationTypeGateway || applicationTypeMicroservice) { _%>
@@ -50,7 +50,7 @@ This application is configured for Service Discovery and Configuration with <% i
50
50
 
51
51
  Node is required for generation and recommended for development. `package.json` is always generated for a better development experience with prettier, commit hooks, scripts and so on.
52
52
 
53
- In the project root, JHipster generates configuration files for tools like git, prettier, eslint, husk, and others that are well known and you can find references in the web.
53
+ In the project root, JHipster generates configuration files for tools like git, prettier, eslint, husky, and others that are well known and you can find references in the web.
54
54
 
55
55
  <%_ if (configOptions.backendName === 'Java') { %>
56
56
  `/src/*` structure follows default <%= configOptions.backendName %> structure.
@@ -109,7 +109,7 @@ spring:
109
109
  client:
110
110
  provider:
111
111
  oidc:
112
- issuer-uri: http://localhost:9080/auth/realms/jhipster
112
+ issuer-uri: http://localhost:9080/realms/jhipster
113
113
  registration:
114
114
  oidc:
115
115
  client-id: web_app
@@ -117,6 +117,14 @@ spring:
117
117
  scope: openid,profile,email
118
118
  ```
119
119
 
120
+ Some of Keycloak configuration is now done in build time and the other part before running the app, here is the [list](https://www.keycloak.org/server/all-config) of all build and configuration options.
121
+
122
+ Before moving to production, please make sure to follow this [guide](https://www.keycloak.org/server/configuration) for better security and performance.
123
+
124
+ Also, you should never use `start-dev` nor `KC_DB=dev-file` in production.
125
+
126
+ When using Kubernetes, importing should be done using init-containers (with a volume when using `db=dev-file`).
127
+
120
128
  ### Okta
121
129
 
122
130
  If you'd like to use Okta instead of Keycloak, it's pretty quick using the [Okta CLI](https://cli.okta.com/). After you've installed it, run:
@@ -233,7 +241,7 @@ See Cypress' documentation for setting OS [environment variables](https://docs.c
233
241
  <%_ } _%>
234
242
 
235
243
  <%_ if (enableSwaggerCodegen) { _%>
236
- ### Doing API-First development using openapi-generator
244
+ ### Doing API-First development using openapi-generator-cli
237
245
 
238
246
  [OpenAPI-Generator]() is configured for this application. You can generate API code from the `src/main/resources/swagger/api.yml` definition file by running:
239
247
  <%_ if (buildToolMaven) { _%>
@@ -399,7 +407,13 @@ You can also fully dockerize your application and all the services that it depen
399
407
  To achieve this, first build a docker image of your app by running:
400
408
 
401
409
  ```
402
- <% if (buildToolMaven) { %>./mvnw -Pprod verify jib:dockerBuild<% } %><% if (buildToolGradle) { %>./gradlew bootJar -Pprod jibDockerBuild<% } %>
410
+ npm run java:docker
411
+ ```
412
+
413
+ Or build a arm64 docker image when using an arm64 processor os like MacOS with M1 processor family running:
414
+
415
+ ```
416
+ npm run java:docker:arm64
403
417
  ```
404
418
 
405
419
  Then run:
@@ -408,6 +422,8 @@ Then run:
408
422
  docker-compose -f src/main/docker/app.yml up -d
409
423
  ```
410
424
 
425
+ When running Docker Desktop on MacOS Big Sur or later, consider enabling experimental `Use the new Virtualization framework` for better processing performance ([disk access performance is worse](https://github.com/docker/roadmap/issues/7)).
426
+
411
427
  For more information refer to [Using Docker and Docker-Compose][], this page also contains information on the docker-compose sub-generator (`jhipster docker-compose`), which is able to generate docker configurations for one or several JHipster applications.
412
428
 
413
429
  ## Continuous Integration (optional)
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "devDependencies": {
3
- "concurrently": "7.1.0",
3
+ "concurrently": "7.3.0",
4
4
  "husky": "7.0.4",
5
- "lint-staged": "12.3.7",
6
- "npm": "8.6.0",
5
+ "lint-staged": "13.0.3",
6
+ "npm": "8.15.1",
7
7
  "wait-on": "6.0.1"
8
8
  }
9
9
  }