generator-jhipster 7.1.0 → 7.4.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 (917) hide show
  1. package/README.md +1 -1
  2. package/cli/commands.js +21 -0
  3. package/cli/environment-builder.js +10 -2
  4. package/cli/import-jdl.js +7 -10
  5. package/cli/jdl.js +1 -0
  6. package/cli/jhipster-command.js +14 -28
  7. package/cli/program.js +37 -29
  8. package/generators/add/index.cjs +78 -0
  9. package/generators/app/esm.mjs +21 -0
  10. package/generators/app/generator.spec.mjs +47 -0
  11. package/generators/app/index.js +38 -34
  12. package/generators/app/prompts.js +1 -1
  13. package/generators/aws/esm.mjs +21 -0
  14. package/generators/aws/generator.spec.mjs +47 -0
  15. package/generators/aws/index.js +8 -8
  16. package/generators/aws/lib/eb.js +1 -1
  17. package/generators/azure-app-service/esm.mjs +21 -0
  18. package/generators/azure-app-service/generator.spec.mjs +47 -0
  19. package/generators/azure-app-service/index.js +30 -19
  20. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +3 -3
  21. package/generators/azure-spring-cloud/esm.mjs +21 -0
  22. package/generators/azure-spring-cloud/generator.spec.mjs +47 -0
  23. package/generators/azure-spring-cloud/index.js +68 -46
  24. package/generators/azure-spring-cloud/templates/application-azure.yml.ejs +4 -4
  25. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +3 -3
  26. package/generators/base/esm.mjs +21 -0
  27. package/generators/base/generator.spec.mjs +44 -0
  28. package/generators/bootstrap/esm.mjs +21 -0
  29. package/generators/bootstrap/generator.spec.mjs +44 -0
  30. package/generators/bootstrap/index.js +55 -58
  31. package/generators/ci-cd/esm.mjs +21 -0
  32. package/generators/ci-cd/generator.spec.mjs +47 -0
  33. package/generators/ci-cd/index.js +30 -47
  34. package/generators/ci-cd/templates/github-actions.yml.ejs +5 -2
  35. package/generators/ci-cd/templates/travis.yml.ejs +9 -4
  36. package/generators/cleanup.js +5 -0
  37. package/generators/client/__workflow/devserver-angular.json +13 -0
  38. package/generators/client/__workflow/devserver-react.json +13 -0
  39. package/generators/client/__workflow/devserver-vue.json +13 -0
  40. package/generators/client/esm.mjs +21 -0
  41. package/generators/client/files-angular.js +8 -9
  42. package/generators/client/files-common.js +7 -3
  43. package/generators/client/files-react.js +11 -1
  44. package/generators/client/files-vue.js +56 -6
  45. package/generators/client/generator.spec.mjs +47 -0
  46. package/generators/client/index.js +127 -51
  47. package/generators/client/needle-api/needle-client-vue.js +5 -5
  48. package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
  49. package/generators/client/templates/angular/README.md.jhi.client.angular.ejs +48 -0
  50. package/generators/client/templates/angular/angular.json.ejs +0 -1
  51. package/generators/client/templates/angular/package.json +28 -25
  52. package/generators/client/templates/angular/package.json.ejs +18 -18
  53. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
  54. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
  55. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
  56. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
  57. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
  58. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
  59. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
  60. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
  61. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
  62. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +116 -118
  63. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
  64. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
  65. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +74 -76
  66. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +1 -1
  67. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
  68. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +50 -52
  69. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
  70. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +1 -2
  71. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
  72. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
  73. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +3 -5
  74. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +1 -1
  75. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
  76. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +19 -21
  77. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.ts.ejs +1 -1
  78. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
  79. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts.ejs +1 -1
  80. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
  81. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +62 -64
  82. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
  83. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
  84. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
  85. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +87 -89
  86. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +3 -3
  87. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +41 -43
  88. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
  89. package/generators/client/templates/angular/src/main/webapp/app/app.constants.ts.ejs +0 -4
  90. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +3 -1
  91. package/generators/client/templates/angular/src/main/webapp/app/config/error.constants.ts.ejs +2 -2
  92. package/generators/client/templates/angular/src/main/webapp/app/config/translation.config.ts.ejs +1 -2
  93. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +179 -172
  94. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.ts.ejs +9 -9
  95. package/generators/client/templates/angular/src/main/webapp/app/core/config/application-config.service.ts.ejs +9 -0
  96. package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.spec.ts.ejs +2 -1
  97. package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +14 -22
  98. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.spec.ts.ejs +87 -89
  99. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +93 -95
  100. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
  101. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +2 -2
  102. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +66 -68
  103. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
  104. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
  105. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +112 -114
  106. package/generators/client/templates/angular/src/main/webapp/app/login/login.service.ts.ejs +1 -11
  107. package/generators/client/templates/angular/src/main/webapp/app/login/logout.model.ts.ejs +1 -1
  108. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
  109. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
  110. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +24 -37
  111. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +5 -3
  112. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +7 -5
  113. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.directive.ts.ejs +7 -10
  114. package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +8 -1
  115. package/generators/client/templates/angular/webpack/environment.js.ejs +2 -2
  116. package/generators/client/templates/angular/webpack/logo-jhipster.png +0 -0
  117. package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +2 -3
  118. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +23 -7
  119. package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +3 -3
  120. package/generators/client/templates/common/README.md.jhi.client.ejs +224 -0
  121. package/generators/client/templates/common/package.json +9 -10
  122. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
  123. package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
  124. package/generators/client/templates/react/jest.conf.js.ejs +7 -1
  125. package/generators/client/templates/react/package.json +61 -64
  126. package/generators/client/templates/react/package.json.ejs +22 -31
  127. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
  128. package/generators/client/templates/react/src/main/webapp/app/app.tsx.ejs +1 -2
  129. package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +0 -3
  130. package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.ts.ejs +0 -2
  131. package/generators/client/templates/react/src/main/webapp/app/config/constants.ts.ejs +0 -9
  132. package/generators/client/templates/react/src/main/webapp/app/config/error-middleware.ts.ejs +2 -2
  133. package/generators/client/templates/react/src/main/webapp/app/config/logger-middleware.ts.ejs +1 -1
  134. package/generators/client/templates/react/src/main/webapp/app/config/notification-middleware.ts.ejs +1 -3
  135. package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +1 -3
  136. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
  137. package/generators/client/templates/react/src/main/webapp/app/modules/account/settings/settings.reducer.spec.ts.ejs +0 -4
  138. package/generators/client/templates/react/src/main/webapp/app/modules/account/settings/settings.reducer.ts.ejs +1 -1
  139. package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +1 -2
  140. package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +4 -4
  141. package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
  142. package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health-modal.tsx.ejs +1 -2
  143. package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health.tsx.ejs +3 -1
  144. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
  145. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
  146. package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +5 -1
  147. package/generators/client/templates/react/src/main/webapp/app/modules/login/logout.tsx.ejs +1 -6
  148. package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +0 -3
  149. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.spec.tsx.ejs +0 -3
  150. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.spec.tsx.ejs +0 -3
  151. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.tsx.ejs +1 -2
  152. package/generators/client/templates/react/src/main/webapp/app/shared/layout/footer/footer.tsx.ejs +1 -1
  153. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header-components.tsx.ejs +3 -5
  154. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.spec.tsx.ejs +0 -3
  155. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
  156. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +0 -3
  157. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
  158. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
  159. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
  160. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -5
  161. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.ts.ejs +0 -2
  162. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +12 -12
  163. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +1 -1
  164. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +0 -1
  165. package/generators/client/templates/react/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
  166. package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +6 -0
  167. package/generators/client/templates/react/webpack/environment.js.ejs +35 -0
  168. package/generators/client/templates/react/webpack/webpack.common.js.ejs +31 -37
  169. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +21 -7
  170. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +14 -7
  171. package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
  172. package/generators/client/templates/vue/package.json +47 -55
  173. package/generators/client/templates/vue/package.json.ejs +33 -40
  174. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +4 -5
  175. package/generators/client/templates/vue/src/main/webapp/app/account/activate/activate.component.ts.ejs +2 -2
  176. package/generators/client/templates/vue/src/main/webapp/app/account/change-password/change-password.component.ts.ejs +1 -1
  177. package/generators/client/templates/vue/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.ts.ejs +1 -1
  178. package/generators/client/templates/vue/src/main/webapp/app/account/reset-password/init/reset-password-init.component.ts.ejs +1 -1
  179. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.component.ts.ejs +1 -1
  180. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
  181. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.component.ts.ejs +1 -1
  182. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
  183. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
  184. package/generators/client/templates/vue/src/main/webapp/app/admin/health/health-modal.component.ts.ejs +2 -4
  185. package/generators/client/templates/vue/src/main/webapp/app/admin/health/health.component.ts.ejs +1 -2
  186. package/generators/client/templates/vue/src/main/webapp/app/admin/health/health.service.ts.ejs +5 -9
  187. package/generators/client/templates/vue/src/main/webapp/app/admin/logs/logs.component.ts.ejs +2 -2
  188. package/generators/client/templates/vue/src/main/webapp/app/admin/logs/logs.service.ts.ejs +1 -1
  189. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
  190. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +1 -6
  191. package/generators/client/templates/vue/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -4
  192. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +9 -0
  193. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-view.component.ts.ejs +5 -0
  194. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.component.ts.ejs +6 -1
  195. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.service.ts.ejs +3 -2
  196. package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +18 -9
  197. package/generators/client/templates/vue/src/main/webapp/app/core/home/home.component.ts.ejs +1 -1
  198. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +16 -16
  199. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
  200. package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
  201. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
  202. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
  203. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +12 -0
  204. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
  205. package/generators/{common/templates/.huskyrc.ejs → client/templates/vue/src/main/webapp/app/index.ts.ejs} +1 -5
  206. package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -10
  207. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +12 -5
  208. package/generators/client/templates/vue/src/main/webapp/app/router/admin.ts.ejs +4 -4
  209. package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +44 -1
  210. package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +11 -0
  211. package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +61 -0
  212. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +5 -3
  213. package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +3 -1
  214. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +13 -18
  215. package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +18 -0
  216. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +28 -8
  217. package/generators/client/templates/vue/src/test/javascript/spec/app/account/account.service.spec.ts.ejs +2 -2
  218. package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +1 -1
  219. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.component.spec.ts.ejs +12 -12
  220. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.service.spec.ts.ejs +2 -1
  221. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +3 -1
  222. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-view.component.spec.ts.ejs +2 -1
  223. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +3 -1
  224. package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
  225. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
  226. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
  227. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
  228. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/alert/alert.service.spec.ts.ejs +124 -0
  229. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +33 -1
  230. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/data/data-utils.service.spec.ts.ejs +6 -6
  231. package/generators/client/templates/vue/tsconfig.json.ejs +5 -9
  232. package/generators/{server/templates/src/main/java/package/repository/search/SearchCouchbaseRepository.java.ejs → client/templates/vue/tsconfig.spec.json.ejs} +17 -21
  233. package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
  234. package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
  235. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +164 -119
  236. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -80
  237. package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
  238. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -46
  239. package/generators/cloudfoundry/esm.mjs +21 -0
  240. package/generators/cloudfoundry/generator.spec.mjs +47 -0
  241. package/generators/cloudfoundry/index.js +38 -24
  242. package/generators/common/esm.mjs +21 -0
  243. package/generators/common/files.js +9 -2
  244. package/generators/common/generator.spec.mjs +47 -0
  245. package/generators/common/index.js +66 -11
  246. package/generators/common/templates/.husky/pre-commit +4 -0
  247. package/generators/common/templates/.prettierrc.ejs +1 -1
  248. package/generators/common/templates/{README.md.ejs → README.md.jhi.ejs} +85 -171
  249. package/generators/common/templates/package.json +5 -5
  250. package/generators/cypress/esm.mjs +21 -0
  251. package/generators/cypress/generator.spec.mjs +47 -0
  252. package/generators/cypress/index.js +17 -14
  253. package/generators/cypress/templates/cypress.json.ejs +8 -1
  254. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +4 -4
  255. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +2 -2
  256. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +1 -1
  257. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +1 -1
  258. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +4 -4
  259. package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -3
  260. package/generators/cypress/templates/src/test/javascript/cypress/integration/lighthouse.audits.ts.ejs +3 -3
  261. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +6 -44
  262. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +30 -2
  263. package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
  264. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -1
  265. package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
  266. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
  267. package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +104 -79
  268. package/generators/database-changelog/esm.mjs +21 -0
  269. package/generators/database-changelog/generator.spec.mjs +47 -0
  270. package/generators/database-changelog/index.js +35 -24
  271. package/generators/database-changelog-liquibase/esm.mjs +21 -0
  272. package/generators/database-changelog-liquibase/generator.spec.mjs +47 -0
  273. package/generators/database-changelog-liquibase/index.js +17 -11
  274. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +2 -1
  275. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +3 -3
  276. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +4 -4
  277. package/generators/docker-base.js +3 -3
  278. package/generators/docker-compose/esm.mjs +21 -0
  279. package/generators/docker-compose/generator.spec.mjs +44 -0
  280. package/generators/docker-compose/index.js +23 -11
  281. package/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +1 -1
  282. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +113 -39
  283. package/generators/docker-prompts.js +3 -3
  284. package/generators/entities/esm.mjs +21 -0
  285. package/generators/entities/generator.spec.mjs +47 -0
  286. package/generators/entities/index.js +37 -28
  287. package/generators/entities-client/esm.mjs +21 -0
  288. package/generators/entities-client/generator.spec.mjs +47 -0
  289. package/generators/entities-client/index.js +12 -9
  290. package/generators/entity/esm.mjs +21 -0
  291. package/generators/entity/generator.spec.mjs +47 -0
  292. package/generators/entity/index.js +54 -36
  293. package/generators/entity-client/esm.mjs +21 -0
  294. package/generators/entity-client/files.js +6 -11
  295. package/generators/entity-client/generator.spec.mjs +47 -0
  296. package/generators/entity-client/index.js +77 -10
  297. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
  298. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +57 -54
  299. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +2 -2
  300. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +2 -2
  301. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +105 -107
  302. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +17 -4
  303. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +3 -4
  304. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +6 -0
  305. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +52 -54
  306. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
  307. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +173 -175
  308. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +2 -4
  309. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +193 -195
  310. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +7 -0
  311. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +262 -110
  312. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +5 -2
  313. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +26 -23
  314. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +7 -7
  315. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-details.component.ts.ejs +5 -0
  316. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +22 -3
  317. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
  318. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +9 -1
  319. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  320. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
  321. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-details.component.spec.ts.ejs +2 -1
  322. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +2 -0
  323. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +3 -1
  324. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
  325. package/generators/entity-i18n/esm.mjs +21 -0
  326. package/generators/entity-i18n/files.js +61 -26
  327. package/generators/entity-i18n/generator.spec.mjs +47 -0
  328. package/generators/entity-i18n/index.js +12 -9
  329. package/generators/entity-i18n/templates/i18n/entity_hr.json.ejs +0 -0
  330. package/generators/entity-i18n/templates/i18n/entity_pa.json.ejs +69 -0
  331. package/generators/entity-server/esm.mjs +21 -0
  332. package/generators/entity-server/files-couchbase.js +73 -0
  333. package/generators/entity-server/files.js +102 -31
  334. package/generators/entity-server/generator.spec.mjs +47 -0
  335. package/generators/entity-server/index.js +29 -13
  336. package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +212 -0
  337. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +138 -0
  338. package/generators/entity-server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/entity.fts.ejs +6 -3
  339. package/generators/entity-server/templates/partials/save_template.ejs +2 -2
  340. package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +3 -3
  341. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +2 -2
  342. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +375 -0
  343. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.elastic_search.ejs +25 -0
  344. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.hibernate_cache.ejs +41 -0
  345. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_persistence.ejs +130 -0
  346. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_validation.ejs +51 -0
  347. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_cassandra.ejs +48 -0
  348. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_mongodb.ejs +82 -0
  349. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_neo4j.ejs +97 -0
  350. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +114 -0
  351. package/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs +11 -4
  352. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +10 -15
  353. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +17 -30
  354. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +6 -9
  355. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
  356. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
  357. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +61 -10
  358. package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +12 -8
  359. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +4 -4
  360. package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +18 -13
  361. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +8 -4
  362. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +9 -9
  363. package/generators/entity-server/templates/src/main/java/package/service/mapper/BaseEntityMapper.java.ejs +1 -1
  364. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +7 -3
  365. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +52 -54
  366. package/generators/entity-server/templates/src/test/java/package/domain/EntityTest.java.ejs +1 -1
  367. package/generators/entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs +1 -1
  368. package/generators/entity-server/templates/src/test/java/package/service/dto/EntityDTOTest.java.ejs +1 -1
  369. package/generators/entity-server/templates/src/test/java/package/service/mapper/EntityMapperTest.java.ejs +1 -1
  370. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +36 -22
  371. package/generators/export-jdl/esm.mjs +21 -0
  372. package/generators/export-jdl/generator.spec.mjs +44 -0
  373. package/generators/export-jdl/index.js +2 -2
  374. package/generators/gae/esm.mjs +21 -0
  375. package/generators/gae/generator.spec.mjs +47 -0
  376. package/generators/gae/index.js +60 -41
  377. package/generators/gae/templates/dispatch.yaml.ejs +2 -2
  378. package/generators/generator-base-blueprint.js +35 -37
  379. package/generators/generator-base-docker.js +4 -24
  380. package/generators/generator-base-private.js +59 -116
  381. package/generators/generator-base.js +544 -91
  382. package/generators/generator-constants.js +43 -29
  383. package/generators/generator-defaults.js +1 -0
  384. package/generators/generator-list.js +27 -2
  385. package/generators/generator-transforms.js +31 -24
  386. package/generators/gradle/__snapshots__/generator.spec.cjs.snap +59 -0
  387. package/generators/gradle/constants.cjs +29 -0
  388. package/generators/gradle/files.cjs +37 -0
  389. package/generators/gradle/generator.spec.cjs +71 -0
  390. package/generators/gradle/index.cjs +136 -0
  391. package/generators/gradle/templates/.eslintignore.jhi.gradle.ejs +19 -0
  392. package/generators/gradle/templates/.gitignore.jhi.gradle.ejs +28 -0
  393. package/generators/gradle/templates/.prettierignore.jhi.gradle.ejs +22 -0
  394. package/generators/gradle/templates/build.gradle.jhi.ejs +48 -0
  395. package/generators/gradle/templates/gradle.properties.jhi.ejs +57 -0
  396. package/generators/gradle/templates/settings.gradle.jhi.ejs +20 -0
  397. package/generators/heroku/esm.mjs +21 -0
  398. package/generators/heroku/generator.spec.mjs +47 -0
  399. package/generators/heroku/index.js +92 -80
  400. package/generators/heroku/templates/Procfile.ejs +1 -1
  401. package/generators/heroku/templates/application-heroku.yml.ejs +9 -9
  402. package/generators/heroku/templates/bootstrap-heroku.yml.ejs +2 -2
  403. package/generators/heroku/templates/pom-profile.xml.ejs +1 -1
  404. package/generators/info/esm.mjs +21 -0
  405. package/generators/info/generator.spec.mjs +44 -0
  406. package/generators/info/index.js +4 -2
  407. package/generators/init/__snapshots__/generator.spec.cjs.snap +65 -0
  408. package/generators/init/config.cjs +36 -0
  409. package/generators/init/constants.cjs +35 -0
  410. package/generators/init/files.cjs +51 -0
  411. package/generators/init/generator.spec.cjs +112 -0
  412. package/generators/init/index.cjs +283 -0
  413. package/generators/init/mixin.cjs +76 -0
  414. package/generators/init/options.cjs +27 -0
  415. package/generators/init/templates/.editorconfig.jhi.ejs +40 -0
  416. package/generators/init/templates/.eslintignore.jhi.ejs +21 -0
  417. package/generators/init/templates/.gitattributes.jhi.ejs +170 -0
  418. package/generators/init/templates/.gitignore.jhi.ejs +128 -0
  419. package/generators/init/templates/.husky/pre-commit +4 -0
  420. package/generators/{client/templates/vue/webpack/utils.js.ejs → init/templates/.lintstagedrc.js.ejs} +1 -10
  421. package/generators/init/templates/.prettierignore.jhi.ejs +23 -0
  422. package/generators/init/templates/.prettierrc.yml.jhi.ejs +29 -0
  423. package/generators/init/templates/README.md.ejs +19 -0
  424. package/generators/init/templates/package.json +6 -0
  425. package/generators/init/templates/package.json.ejs +41 -0
  426. package/generators/java/__snapshots__/generator.spec.cjs.snap +118 -0
  427. package/generators/java/config.cjs +43 -0
  428. package/generators/java/constants.cjs +69 -0
  429. package/generators/java/files.cjs +26 -0
  430. package/generators/java/generator.spec.cjs +87 -0
  431. package/generators/java/index.cjs +226 -0
  432. package/generators/java/mixin.cjs +120 -0
  433. package/generators/java/options.cjs +32 -0
  434. package/generators/java/templates/.editorconfig.jhi.java.ejs +23 -0
  435. package/generators/java/templates/.gitignore.jhi.java.ejs +34 -0
  436. package/generators/java/templates/.prettierrc.yml.jhi.java.ejs +25 -0
  437. package/generators/kubernetes/esm.mjs +21 -0
  438. package/generators/kubernetes/files.js +20 -8
  439. package/generators/kubernetes/generator.spec.mjs +44 -0
  440. package/generators/kubernetes/index.js +126 -64
  441. package/generators/kubernetes/kubernetes-constants.js +50 -0
  442. package/generators/kubernetes/prompts.js +25 -16
  443. package/generators/kubernetes/templates/README-KUBERNETES.md.ejs +12 -13
  444. package/generators/kubernetes/templates/db/couchbase.yml.ejs +3 -3
  445. package/generators/kubernetes/templates/db/elasticsearch.yml.ejs +5 -5
  446. package/generators/kubernetes/templates/db/mariadb.yml.ejs +5 -5
  447. package/generators/kubernetes/templates/db/mongodb.yml.ejs +2 -2
  448. package/generators/kubernetes/templates/db/mssql.yml.ejs +5 -5
  449. package/generators/kubernetes/templates/db/mysql.yml.ejs +5 -5
  450. package/generators/kubernetes/templates/db/neo4j.yml.ejs +5 -5
  451. package/generators/kubernetes/templates/db/postgresql.yml.ejs +5 -5
  452. package/generators/kubernetes/templates/deployment.yml.ejs +61 -56
  453. package/generators/kubernetes/templates/ingress.yml.ejs +2 -2
  454. package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
  455. package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
  456. package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
  457. package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
  458. package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
  459. package/generators/kubernetes/templates/istio/gateway.yml.ejs +11 -9
  460. package/generators/kubernetes/templates/kubectl-apply.sh.ejs +24 -23
  461. package/generators/kubernetes/templates/kustomize/kustomization.yml.ejs +27 -27
  462. package/generators/kubernetes/templates/messagebroker/kafka.yml.ejs +4 -4
  463. package/generators/kubernetes/templates/monitoring/jhipster-grafana-dashboard.yml.ejs +2 -2
  464. package/generators/kubernetes/templates/monitoring/jhipster-grafana.yml.ejs +6 -6
  465. package/generators/kubernetes/templates/monitoring/jhipster-prometheus-crd.yml.ejs +2 -2
  466. package/generators/kubernetes/templates/registry/application-configmap.yml.ejs +6 -6
  467. package/generators/kubernetes/templates/registry/consul.yml.ejs +2 -2
  468. package/generators/kubernetes/templates/registry/jhipster-registry.yml.ejs +4 -4
  469. package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
  470. package/generators/kubernetes/templates/service.yml.ejs +8 -8
  471. package/generators/kubernetes-base.js +44 -18
  472. package/generators/kubernetes-helm/esm.mjs +21 -0
  473. package/generators/kubernetes-helm/files.js +20 -21
  474. package/generators/kubernetes-helm/generator.spec.mjs +44 -0
  475. package/generators/kubernetes-helm/index.js +106 -46
  476. package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +2 -3
  477. package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +27 -0
  478. package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +4 -15
  479. package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +11 -6
  480. package/generators/kubernetes-helm/templates/app/values.yml.ejs +73 -10
  481. package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +17 -0
  482. package/generators/kubernetes-helm/templates/csvc/helpers.tpl.ejs +1 -1
  483. package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +3 -3
  484. package/generators/kubernetes-helm/templates/csvc/values.yml.ejs +6 -6
  485. package/generators/kubernetes-helm/templates/helm-apply.sh.ejs +2 -2
  486. package/generators/kubernetes-helm/templates/helm-upgrade.sh.ejs +1 -1
  487. package/generators/kubernetes-knative/esm.mjs +21 -0
  488. package/generators/kubernetes-knative/files.js +30 -19
  489. package/generators/kubernetes-knative/generator.spec.mjs +44 -0
  490. package/generators/kubernetes-knative/index.js +134 -72
  491. package/generators/kubernetes-knative/prompts.js +7 -3
  492. package/generators/kubernetes-knative/templates/README-KUBERNETES-KNATIVE.md.ejs +5 -5
  493. package/generators/kubernetes-knative/templates/helm-apply.sh.ejs +1 -1
  494. package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +10 -8
  495. package/generators/kubernetes-knative/templates/kubectl-apply.sh.ejs +24 -19
  496. package/generators/kubernetes-knative/templates/service.yml.ejs +32 -32
  497. package/generators/languages/esm.mjs +21 -0
  498. package/generators/languages/files.js +73 -0
  499. package/generators/languages/generator.spec.mjs +47 -0
  500. package/generators/languages/index.js +45 -22
  501. package/generators/languages/prompts.js +1 -1
  502. package/generators/languages/templates/src/main/resources/i18n/messages_hr.properties.ejs +0 -0
  503. package/generators/languages/templates/src/main/resources/i18n/messages_pa.properties.ejs +41 -0
  504. package/generators/languages/templates/src/main/webapp/i18n/al/global.json.ejs +2 -2
  505. package/generators/languages/templates/src/main/webapp/i18n/al/health.json.ejs +17 -15
  506. package/generators/languages/templates/src/main/webapp/i18n/ar-ly/global.json.ejs +2 -2
  507. package/generators/languages/templates/src/main/webapp/i18n/ar-ly/health.json.ejs +17 -15
  508. package/generators/languages/templates/src/main/webapp/i18n/bg/global.json.ejs +2 -2
  509. package/generators/languages/templates/src/main/webapp/i18n/bg/health.json.ejs +19 -16
  510. package/generators/languages/templates/src/main/webapp/i18n/bn/global.json.ejs +2 -2
  511. package/generators/languages/templates/src/main/webapp/i18n/bn/health.json.ejs +17 -15
  512. package/generators/languages/templates/src/main/webapp/i18n/by/global.json.ejs +2 -2
  513. package/generators/languages/templates/src/main/webapp/i18n/by/health.json.ejs +17 -15
  514. package/generators/languages/templates/src/main/webapp/i18n/ca/global.json.ejs +2 -2
  515. package/generators/languages/templates/src/main/webapp/i18n/ca/health.json.ejs +17 -15
  516. package/generators/languages/templates/src/main/webapp/i18n/cs/global.json.ejs +2 -2
  517. package/generators/languages/templates/src/main/webapp/i18n/cs/health.json.ejs +17 -15
  518. package/generators/languages/templates/src/main/webapp/i18n/da/global.json.ejs +2 -2
  519. package/generators/languages/templates/src/main/webapp/i18n/da/health.json.ejs +17 -15
  520. package/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +2 -2
  521. package/generators/languages/templates/src/main/webapp/i18n/de/health.json.ejs +17 -15
  522. package/generators/languages/templates/src/main/webapp/i18n/el/global.json.ejs +2 -2
  523. package/generators/languages/templates/src/main/webapp/i18n/el/health.json.ejs +17 -15
  524. package/generators/languages/templates/src/main/webapp/i18n/en/global.json.ejs +2 -2
  525. package/generators/languages/templates/src/main/webapp/i18n/en/health.json.ejs +17 -15
  526. package/generators/languages/templates/src/main/webapp/i18n/es/global.json.ejs +2 -2
  527. package/generators/languages/templates/src/main/webapp/i18n/es/health.json.ejs +17 -15
  528. package/generators/languages/templates/src/main/webapp/i18n/et/global.json.ejs +2 -2
  529. package/generators/languages/templates/src/main/webapp/i18n/et/health.json.ejs +17 -15
  530. package/generators/languages/templates/src/main/webapp/i18n/fa/global.json.ejs +2 -2
  531. package/generators/languages/templates/src/main/webapp/i18n/fa/health.json.ejs +17 -15
  532. package/generators/languages/templates/src/main/webapp/i18n/fi/global.json.ejs +2 -2
  533. package/generators/languages/templates/src/main/webapp/i18n/fi/health.json.ejs +17 -15
  534. package/generators/languages/templates/src/main/webapp/i18n/fr/global.json.ejs +2 -2
  535. package/generators/languages/templates/src/main/webapp/i18n/fr/health.json.ejs +17 -15
  536. package/generators/languages/templates/src/main/webapp/i18n/gl/global.json.ejs +2 -2
  537. package/generators/languages/templates/src/main/webapp/i18n/gl/health.json.ejs +17 -15
  538. package/generators/languages/templates/src/main/webapp/i18n/hi/global.json.ejs +2 -2
  539. package/generators/languages/templates/src/main/webapp/i18n/hi/health.json.ejs +17 -15
  540. package/generators/languages/templates/src/main/webapp/i18n/hr/activate.json.ejs +0 -0
  541. package/generators/languages/templates/src/main/webapp/i18n/hr/configuration.json +0 -0
  542. package/generators/languages/templates/src/main/webapp/i18n/hr/error.json +0 -0
  543. package/generators/languages/templates/src/main/webapp/i18n/hr/gateway.json +0 -0
  544. package/generators/languages/templates/src/main/webapp/i18n/hr/global.json.ejs +2 -2
  545. package/generators/languages/templates/src/main/webapp/i18n/hr/health.json.ejs +15 -13
  546. package/generators/languages/templates/src/main/webapp/i18n/hr/home.json +0 -0
  547. package/generators/languages/templates/src/main/webapp/i18n/hr/login.json +0 -0
  548. package/generators/languages/templates/src/main/webapp/i18n/hr/logs.json +0 -0
  549. package/generators/languages/templates/src/main/webapp/i18n/hr/metrics.json +0 -0
  550. package/generators/languages/templates/src/main/webapp/i18n/hr/password.json +0 -0
  551. package/generators/languages/templates/src/main/webapp/i18n/hr/register.json +0 -0
  552. package/generators/languages/templates/src/main/webapp/i18n/hr/reset.json.ejs +1 -2
  553. package/generators/languages/templates/src/main/webapp/i18n/hr/sessions.json +0 -0
  554. package/generators/languages/templates/src/main/webapp/i18n/hr/settings.json +0 -0
  555. package/generators/languages/templates/src/main/webapp/i18n/hr/tracker.json +0 -0
  556. package/generators/languages/templates/src/main/webapp/i18n/hr/user-management.json +0 -0
  557. package/generators/languages/templates/src/main/webapp/i18n/hu/global.json.ejs +2 -2
  558. package/generators/languages/templates/src/main/webapp/i18n/hu/health.json.ejs +17 -15
  559. package/generators/languages/templates/src/main/webapp/i18n/hy/global.json.ejs +2 -2
  560. package/generators/languages/templates/src/main/webapp/i18n/hy/health.json.ejs +17 -15
  561. package/generators/languages/templates/src/main/webapp/i18n/in/global.json.ejs +2 -2
  562. package/generators/languages/templates/src/main/webapp/i18n/in/health.json.ejs +17 -15
  563. package/generators/languages/templates/src/main/webapp/i18n/it/global.json.ejs +2 -2
  564. package/generators/languages/templates/src/main/webapp/i18n/it/health.json.ejs +17 -15
  565. package/generators/languages/templates/src/main/webapp/i18n/ja/global.json.ejs +2 -2
  566. package/generators/languages/templates/src/main/webapp/i18n/ja/health.json.ejs +17 -15
  567. package/generators/languages/templates/src/main/webapp/i18n/ko/global.json.ejs +2 -2
  568. package/generators/languages/templates/src/main/webapp/i18n/ko/health.json.ejs +17 -15
  569. package/generators/languages/templates/src/main/webapp/i18n/mr/global.json.ejs +2 -2
  570. package/generators/languages/templates/src/main/webapp/i18n/mr/health.json.ejs +17 -15
  571. package/generators/languages/templates/src/main/webapp/i18n/my/global.json.ejs +2 -2
  572. package/generators/languages/templates/src/main/webapp/i18n/my/health.json.ejs +17 -15
  573. package/generators/languages/templates/src/main/webapp/i18n/nl/global.json.ejs +2 -2
  574. package/generators/languages/templates/src/main/webapp/i18n/nl/health.json.ejs +17 -15
  575. package/generators/languages/templates/src/main/webapp/i18n/pa/activate.json.ejs +27 -0
  576. package/generators/languages/templates/src/main/webapp/i18n/pa/configuration.json +10 -0
  577. package/generators/languages/templates/src/main/webapp/i18n/pa/error.json +14 -0
  578. package/generators/languages/templates/src/main/webapp/i18n/pa/gateway.json +15 -0
  579. package/generators/languages/templates/src/main/webapp/i18n/pa/global.json.ejs +162 -0
  580. package/generators/languages/templates/src/main/webapp/i18n/pa/health.json.ejs +71 -0
  581. package/generators/languages/templates/src/main/webapp/i18n/pa/home.json +19 -0
  582. package/generators/languages/templates/src/main/webapp/i18n/pa/login.json +19 -0
  583. package/generators/languages/templates/src/main/webapp/i18n/pa/logs.json +11 -0
  584. package/generators/languages/templates/src/main/webapp/i18n/pa/metrics.json +102 -0
  585. package/generators/languages/templates/src/main/webapp/i18n/pa/password.json +12 -0
  586. package/generators/languages/templates/src/main/webapp/i18n/pa/register.json +24 -0
  587. package/generators/languages/templates/src/main/webapp/i18n/pa/reset.json.ejs +44 -0
  588. package/generators/languages/templates/src/main/webapp/i18n/pa/sessions.json +15 -0
  589. package/generators/languages/templates/src/main/webapp/i18n/pa/settings.json +32 -0
  590. package/generators/languages/templates/src/main/webapp/i18n/pa/tracker.json +12 -0
  591. package/generators/languages/templates/src/main/webapp/i18n/pa/user-management.json +31 -0
  592. package/generators/languages/templates/src/main/webapp/i18n/pl/global.json.ejs +2 -2
  593. package/generators/languages/templates/src/main/webapp/i18n/pl/health.json.ejs +17 -15
  594. package/generators/languages/templates/src/main/webapp/i18n/pt-br/global.json.ejs +2 -2
  595. package/generators/languages/templates/src/main/webapp/i18n/pt-br/health.json.ejs +17 -15
  596. package/generators/languages/templates/src/main/webapp/i18n/pt-pt/global.json.ejs +2 -2
  597. package/generators/languages/templates/src/main/webapp/i18n/pt-pt/health.json.ejs +17 -15
  598. package/generators/languages/templates/src/main/webapp/i18n/ro/global.json.ejs +2 -2
  599. package/generators/languages/templates/src/main/webapp/i18n/ro/health.json.ejs +17 -15
  600. package/generators/languages/templates/src/main/webapp/i18n/ru/global.json.ejs +2 -2
  601. package/generators/languages/templates/src/main/webapp/i18n/ru/health.json.ejs +17 -15
  602. package/generators/languages/templates/src/main/webapp/i18n/si/global.json.ejs +2 -2
  603. package/generators/languages/templates/src/main/webapp/i18n/si/health.json.ejs +17 -15
  604. package/generators/languages/templates/src/main/webapp/i18n/sk/global.json.ejs +2 -2
  605. package/generators/languages/templates/src/main/webapp/i18n/sk/health.json.ejs +17 -15
  606. package/generators/languages/templates/src/main/webapp/i18n/sr/global.json.ejs +2 -2
  607. package/generators/languages/templates/src/main/webapp/i18n/sr/health.json.ejs +16 -14
  608. package/generators/languages/templates/src/main/webapp/i18n/sv/global.json.ejs +2 -2
  609. package/generators/languages/templates/src/main/webapp/i18n/sv/health.json.ejs +17 -15
  610. package/generators/languages/templates/src/main/webapp/i18n/ta/global.json.ejs +2 -2
  611. package/generators/languages/templates/src/main/webapp/i18n/ta/health.json.ejs +17 -15
  612. package/generators/languages/templates/src/main/webapp/i18n/te/global.json.ejs +2 -2
  613. package/generators/languages/templates/src/main/webapp/i18n/te/health.json.ejs +17 -15
  614. package/generators/languages/templates/src/main/webapp/i18n/th/global.json.ejs +2 -2
  615. package/generators/languages/templates/src/main/webapp/i18n/th/health.json.ejs +17 -15
  616. package/generators/languages/templates/src/main/webapp/i18n/tr/global.json.ejs +2 -2
  617. package/generators/languages/templates/src/main/webapp/i18n/tr/health.json.ejs +17 -15
  618. package/generators/languages/templates/src/main/webapp/i18n/ua/global.json.ejs +2 -2
  619. package/generators/languages/templates/src/main/webapp/i18n/ua/health.json.ejs +17 -15
  620. package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json.ejs +2 -2
  621. package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/health.json.ejs +16 -14
  622. package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/global.json.ejs +2 -2
  623. package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/health.json.ejs +17 -15
  624. package/generators/languages/templates/src/main/webapp/i18n/vi/global.json.ejs +2 -2
  625. package/generators/languages/templates/src/main/webapp/i18n/vi/health.json.ejs +17 -15
  626. package/generators/languages/templates/src/main/webapp/i18n/zh-cn/global.json.ejs +2 -2
  627. package/generators/languages/templates/src/main/webapp/i18n/zh-cn/health.json.ejs +17 -15
  628. package/generators/languages/templates/src/main/webapp/i18n/zh-tw/global.json.ejs +2 -2
  629. package/generators/languages/templates/src/main/webapp/i18n/zh-tw/health.json.ejs +17 -15
  630. package/generators/languages/templates/src/test/resources/i18n/messages_hr.properties.ejs +0 -0
  631. package/generators/languages/templates/src/test/resources/i18n/messages_pa.properties.ejs +4 -0
  632. package/generators/maven/__snapshots__/generator.spec.cjs.snap +53 -0
  633. package/generators/maven/constants.cjs +27 -0
  634. package/generators/maven/files.cjs +36 -0
  635. package/generators/maven/generator.spec.cjs +78 -0
  636. package/generators/maven/index.cjs +131 -0
  637. package/generators/maven/templates/.eslintignore.jhi.maven.ejs +19 -0
  638. package/generators/maven/templates/.gitignore.jhi.maven.ejs +9 -0
  639. package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +117 -0
  640. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  641. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -0
  642. package/generators/maven/templates/.prettierignore.jhi.maven.ejs +3 -0
  643. package/generators/maven/templates/mvnw +310 -0
  644. package/generators/maven/templates/mvnw.cmd +182 -0
  645. package/generators/maven/templates/pom.xml.jhi.ejs +98 -0
  646. package/generators/openapi-client/esm.mjs +21 -0
  647. package/generators/openapi-client/files.js +21 -15
  648. package/generators/openapi-client/generator.spec.mjs +47 -0
  649. package/generators/openapi-client/index.js +80 -28
  650. package/generators/openapi-client/prompts.js +6 -2
  651. package/generators/openshift/esm.mjs +21 -0
  652. package/generators/openshift/files.js +12 -5
  653. package/generators/openshift/generator.spec.mjs +44 -0
  654. package/generators/openshift/index.js +136 -64
  655. package/generators/openshift/prompts.js +12 -4
  656. package/generators/openshift/templates/apply.sh.ejs +6 -6
  657. package/generators/openshift/templates/db/cassandra.yml.ejs +8 -9
  658. package/generators/openshift/templates/db/couchbase.yml.ejs +8 -9
  659. package/generators/openshift/templates/db/elasticsearch.yml.ejs +8 -9
  660. package/generators/openshift/templates/db/mariadb.yml.ejs +8 -9
  661. package/generators/openshift/templates/db/mongodb.yml.ejs +8 -9
  662. package/generators/openshift/templates/db/mysql.yml.ejs +8 -9
  663. package/generators/openshift/templates/db/postgresql.yml.ejs +8 -9
  664. package/generators/openshift/templates/deployment.yml.ejs +46 -46
  665. package/generators/openshift/templates/messagebroker/kafka.yml.ejs +13 -14
  666. package/generators/openshift/templates/monitoring/jhipster-metrics.yml.ejs +17 -17
  667. package/generators/openshift/templates/registry/application-configmap.yml.ejs +6 -6
  668. package/generators/options.js +63 -0
  669. package/generators/page/esm.mjs +21 -0
  670. package/generators/page/generator.spec.mjs +47 -0
  671. package/generators/page/index.js +17 -13
  672. package/generators/project-name/config.cjs +40 -0
  673. package/generators/project-name/constants.cjs +37 -0
  674. package/generators/project-name/generator.spec.cjs +43 -0
  675. package/generators/project-name/index.cjs +194 -0
  676. package/generators/project-name/mixin.cjs +82 -0
  677. package/generators/project-name/options.cjs +33 -0
  678. package/generators/server/__snapshots__/generator.spec.mjs.snap +1848 -0
  679. package/generators/server/esm.mjs +21 -0
  680. package/generators/server/files-couchbase.js +155 -0
  681. package/generators/server/files-sql.js +52 -0
  682. package/generators/server/files.js +302 -286
  683. package/generators/server/generator.spec.mjs +52 -0
  684. package/generators/server/index.js +193 -97
  685. package/generators/server/needle-api/needle-server-cache.js +7 -8
  686. package/generators/server/prompts.js +104 -62
  687. package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +1 -1
  688. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  689. package/generators/server/templates/build.gradle.ejs +43 -9
  690. package/generators/server/templates/checkstyle.xml.ejs +2 -2
  691. package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase/Couchbase.Dockerfile.ejs +0 -0
  692. package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase/scripts/configure-node.sh.ejs +4 -4
  693. package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase-cluster.yml.ejs +0 -0
  694. package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase.yml.ejs +0 -0
  695. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +83 -0
  696. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +40 -0
  697. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +44 -0
  698. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +162 -0
  699. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +104 -0
  700. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs +25 -0
  701. package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +114 -0
  702. package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +49 -0
  703. package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -0
  704. package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -0
  705. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/user__admin.json.ejs +18 -0
  706. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/user__user.json.ejs +17 -0
  707. package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +3 -6
  708. package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +55 -0
  709. package/generators/server/templates/{src/test/java/package/repository/CustomN1qlCouchbaseRepositoryTest.java.ejs → couchbase/src/test/java/package/repository/JHipsterCouchbaseRepositoryTest.java.ejs} +3 -4
  710. package/generators/server/templates/gradle/docker.gradle.ejs +3 -3
  711. package/generators/server/templates/gradle/profile_dev.gradle.ejs +36 -12
  712. package/generators/server/templates/gradle/profile_prod.gradle.ejs +7 -7
  713. package/generators/server/templates/gradle/war.gradle.ejs +4 -4
  714. package/generators/server/templates/gradle.properties.ejs +21 -17
  715. package/generators/server/templates/mvnw +1 -1
  716. package/generators/server/templates/mvnw.cmd +1 -1
  717. package/generators/server/templates/npmw +1 -1
  718. package/generators/server/templates/npmw.cmd +1 -1
  719. package/generators/server/templates/package.json.ejs +4 -8
  720. package/generators/server/templates/pom.xml.ejs +352 -160
  721. package/generators/server/templates/settings.gradle.ejs +38 -9
  722. package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
  723. package/generators/server/templates/src/main/docker/app.yml.ejs +80 -75
  724. package/generators/server/templates/src/main/docker/config/README.md.ejs +2 -2
  725. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +117 -41
  726. package/generators/server/templates/src/main/docker/elasticsearch.yml.ejs +12 -1
  727. package/generators/server/templates/src/main/docker/jhipster-control-center.yml.ejs +8 -8
  728. package/generators/server/templates/src/main/docker/jhipster-registry.yml.ejs +3 -3
  729. package/generators/server/templates/src/main/docker/prometheus/prometheus.yml.ejs +1 -1
  730. package/generators/server/templates/src/main/java/package/Application.java.ejs +6 -5
  731. package/generators/server/templates/src/main/java/package/aop/logging/LoggingAspect.java.ejs +1 -1
  732. package/generators/server/templates/src/main/java/package/client/OAuth2InterceptedFeignConfiguration.java.ejs +1 -1
  733. package/generators/server/templates/src/main/java/package/config/CacheConfiguration.java.ejs +94 -96
  734. package/generators/server/templates/src/main/java/package/config/Constants.java.ejs +8 -8
  735. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_cassandra.java.ejs +2 -8
  736. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +116 -33
  737. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_mongodb.java.ejs +4 -6
  738. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_neo4j.java.ejs +4 -6
  739. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_sql.java.ejs +13 -13
  740. package/generators/server/templates/src/main/java/package/config/ElasticsearchConfiguration.java.ejs +5 -4
  741. package/generators/server/templates/src/main/java/package/config/FeignConfiguration.java.ejs +6 -1
  742. package/generators/server/templates/src/main/java/package/config/JacksonConfiguration.java.ejs +3 -3
  743. package/generators/server/templates/src/main/java/package/config/LiquibaseConfiguration.java.ejs +5 -5
  744. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +1 -4
  745. package/generators/server/templates/src/main/java/package/config/LoggingConfiguration.java.ejs +13 -13
  746. package/generators/server/templates/src/main/java/package/config/OAuth2Configuration.java.ejs +38 -0
  747. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +99 -102
  748. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +114 -66
  749. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +31 -32
  750. package/generators/server/templates/src/main/java/package/config/WebsocketSecurityConfiguration.java.ejs +4 -2
  751. package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +5 -5
  752. package/generators/server/templates/src/main/java/package/config/dbmigrations/InitialSetupMigration.java.ejs +2 -6
  753. package/generators/server/templates/src/main/java/package/domain/AbstractAuditingEntity.java.ejs +48 -36
  754. package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +20 -20
  755. package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +55 -55
  756. package/generators/server/templates/src/main/java/package/domain/User.java.ejs +185 -160
  757. package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
  758. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +40 -15
  759. package/generators/server/templates/src/main/java/package/repository/PersistentTokenRepository.java.ejs +14 -36
  760. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +209 -163
  761. package/generators/server/templates/src/main/java/package/repository/rowmapper/UserRowMapper.java.ejs +4 -4
  762. package/generators/server/templates/src/main/java/package/repository/search/UserSearchRepository.java.ejs +33 -7
  763. package/generators/server/templates/src/main/java/package/repository/search/package-info.java.ejs +2 -2
  764. package/generators/server/templates/src/main/java/package/security/DomainUserDetailsService.java.ejs +11 -11
  765. package/generators/server/templates/src/main/java/package/security/PersistentTokenRememberMeServices.java.ejs +43 -45
  766. package/generators/server/templates/src/main/java/package/security/SecurityUtils.java.ejs +62 -29
  767. package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +10 -10
  768. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +31 -6
  769. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +29 -4
  770. package/generators/server/templates/src/main/java/package/service/MailService.java.ejs +2 -2
  771. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +326 -304
  772. package/generators/server/templates/src/main/java/package/service/dto/AdminUserDTO.java.ejs +24 -24
  773. package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +7 -7
  774. package/generators/server/templates/src/main/java/package/service/mapper/UserMapper.java.ejs +11 -11
  775. package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +71 -0
  776. package/generators/server/templates/src/main/java/package/web/filter/OAuth2RefreshTokensWebFilter.java.ejs +103 -0
  777. package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +3 -3
  778. package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +77 -76
  779. package/generators/server/templates/src/main/java/package/web/rest/ClientForwardController.java.ejs +3 -3
  780. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +12 -12
  781. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource.java.ejs +58 -22
  782. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +62 -39
  783. package/generators/server/templates/src/main/java/package/web/rest/UserJWTController.java.ejs +3 -3
  784. package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +51 -51
  785. package/generators/server/templates/src/main/java/package/web/rest/errors/ErrorConstants.java.ejs +4 -4
  786. package/generators/server/templates/src/main/java/package/web/rest/errors/ExceptionTranslator.java.ejs +19 -19
  787. package/generators/server/templates/src/main/java/package/web/rest/vm/ManagedUserVM.java.ejs +4 -4
  788. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +105 -102
  789. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +78 -78
  790. package/generators/server/templates/src/main/resources/config/application-tls.yml.ejs +1 -1
  791. package/generators/server/templates/src/main/resources/config/application.yml.ejs +42 -55
  792. package/generators/server/templates/src/main/resources/config/bootstrap-prod.yml.ejs +7 -7
  793. package/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +6 -6
  794. package/generators/server/templates/src/main/resources/config/cql/changelog/create-tables.cql.ejs +1 -1
  795. package/generators/server/templates/src/main/resources/config/liquibase/changelog/initial_schema.xml.ejs +26 -34
  796. package/generators/server/templates/src/main/resources/config/liquibase/data/user.csv.ejs +2 -2
  797. package/generators/server/templates/src/main/resources/config/liquibase/data/user_authority.csv.ejs +1 -1
  798. package/generators/server/templates/src/main/resources/config/liquibase/master.xml.ejs +14 -14
  799. package/generators/server/templates/src/main/resources/config/{couchmove/changelog/V0.1__initial_setup → neo4j/migrations}/user__admin.json.ejs +2 -2
  800. package/generators/server/templates/src/main/resources/config/{couchmove/changelog/V0.1__initial_setup → neo4j/migrations}/user__user.json.ejs +2 -2
  801. package/generators/server/templates/src/main/resources/h2.server.properties.ejs +2 -2
  802. package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +55 -55
  803. package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
  804. package/generators/server/templates/src/main/resources/swagger/api.yml.ejs +6 -6
  805. package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +13 -7
  806. package/generators/server/templates/src/test/java/package/ReactiveSqlTestContainerExtension.java.ejs +9 -9
  807. package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +3 -0
  808. package/generators/server/templates/src/test/java/package/config/TestSecurityConfiguration.java.ejs +27 -28
  809. package/generators/server/templates/src/test/java/package/config/WebConfigurerTest.java.ejs +5 -7
  810. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +6 -4
  811. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
  812. package/generators/server/templates/src/test/java/package/repository/timezone/DateTimeWrapper.java.ejs +3 -3
  813. package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +24 -24
  814. package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest.java.ejs +97 -10
  815. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +23 -18
  816. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
  817. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
  818. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +16 -2
  819. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +108 -4
  820. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +4 -4
  821. package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +133 -133
  822. package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +17 -17
  823. package/generators/server/templates/src/test/java/package/test/util/OAuth2TestUtil.java.ejs +104 -0
  824. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +397 -338
  825. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +67 -70
  826. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +20 -20
  827. package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +2 -2
  828. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +14 -14
  829. package/generators/server/templates/src/test/java/package/web/rest/LogoutResourceIT.java.ejs +41 -34
  830. package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +59 -59
  831. package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +25 -55
  832. package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +35 -35
  833. package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +263 -261
  834. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +13 -13
  835. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorTestController.java.ejs +3 -3
  836. package/generators/server/templates/src/test/resources/config/application-testcontainers.yml.ejs +17 -17
  837. package/generators/server/templates/src/test/resources/config/application.yml.ejs +34 -36
  838. package/generators/server/templates/src/test/resources/config/bootstrap.yml.ejs +4 -4
  839. package/generators/server/templates/src/test/resources/logback.xml.ejs +54 -52
  840. package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +80 -0
  841. package/generators/spring-boot/config.cjs +30 -0
  842. package/generators/spring-boot/constants.cjs +28 -0
  843. package/generators/spring-boot/files.cjs +46 -0
  844. package/generators/spring-boot/generator.spec.cjs +64 -0
  845. package/generators/spring-boot/index.cjs +162 -0
  846. package/generators/spring-boot/mixin.cjs +82 -0
  847. package/generators/spring-boot/options.cjs +19 -0
  848. package/generators/spring-boot/templates/build.gradle.jhi.spring-boot.ejs +29 -0
  849. package/generators/spring-boot/templates/pom.xml.jhi.spring-boot.ejs +45 -0
  850. package/generators/spring-boot/templates/src/main/java/package/Application.java.jhi.ejs +31 -0
  851. package/generators/spring-boot/templates/src/main/resources/application.properties.jhi.ejs +19 -0
  852. package/generators/spring-boot/templates/src/test/java/package/ApplicationTests.java.jhi.ejs +31 -0
  853. package/generators/spring-controller/esm.mjs +21 -0
  854. package/generators/spring-controller/generator.spec.mjs +47 -0
  855. package/generators/spring-controller/index.js +39 -19
  856. package/generators/spring-controller/templates/src/main/java/package/web/rest/Resource.java.ejs +5 -5
  857. package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +2 -2
  858. package/generators/spring-service/esm.mjs +21 -0
  859. package/generators/spring-service/generator.spec.mjs +47 -0
  860. package/generators/spring-service/index.js +33 -13
  861. package/generators/spring-service/templates/src/main/java/package/service/Service.java.ejs +16 -8
  862. package/generators/spring-service/templates/src/main/java/package/service/impl/ServiceImpl.java.ejs +9 -5
  863. package/generators/statistics.js +3 -1
  864. package/generators/upgrade/esm.mjs +21 -0
  865. package/generators/upgrade/generator.spec.mjs +44 -0
  866. package/generators/upgrade/index.js +5 -6
  867. package/generators/upgrade-config/esm.mjs +21 -0
  868. package/generators/upgrade-config/generator.spec.mjs +44 -0
  869. package/generators/upgrade-config/index.js +2 -2
  870. package/generators/utils.js +78 -11
  871. package/generators/workspaces/esm.mjs +21 -0
  872. package/generators/workspaces/generator.spec.mjs +47 -0
  873. package/generators/workspaces/index.js +20 -12
  874. package/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +8 -0
  875. package/jdl/converters/json-to-jdl-entity-converter.js +1 -0
  876. package/jdl/jhipster/application-options.js +18 -3
  877. package/jdl/jhipster/default-application-options.js +13 -7
  878. package/jdl/jhipster/deployment-options.js +25 -12
  879. package/jdl/jhipster/kubernetes-platform-types.js +40 -0
  880. package/jdl/jhipster/message-broker-types.js +1 -0
  881. package/jdl/jhipster/openapi-options.js +21 -0
  882. package/jdl/jhipster/openshift-platform-types.js +27 -0
  883. package/jdl/models/jdl-enum-value.js +2 -1
  884. package/jdl/models/jdl-enum.js +11 -1
  885. package/jdl/parsing/jdl-ast-builder-visitor.js +10 -2
  886. package/jdl/parsing/jdl-parser.js +3 -0
  887. package/jdl/parsing/lexer/application-tokens.js +4 -0
  888. package/jdl/parsing/validator.js +7 -1
  889. package/jdl/validators/application-validator.js +1 -0
  890. package/lib/constants/generators.mjs +20 -0
  891. package/lib/constants/priorities.cjs +131 -0
  892. package/lib/constants/priorities.mjs +19 -0
  893. package/lib/support/index.cjs +21 -0
  894. package/lib/support/mixin.cjs +199 -0
  895. package/lib/support/shared-data.cjs +74 -0
  896. package/package.json +55 -36
  897. package/utils/entity.js +21 -4
  898. package/utils/field.js +27 -3
  899. package/utils/liquibase.js +31 -20
  900. package/utils/multi-step-transform/index.js +52 -0
  901. package/utils/multi-step-transform/template-data.js +60 -0
  902. package/utils/multi-step-transform/template-file-fs.js +43 -0
  903. package/utils/multi-step-transform/template-file.js +84 -0
  904. package/NOTICE +0 -4
  905. package/generators/client/templates/angular/.npmrc.ejs +0 -1
  906. package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -18
  907. package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
  908. package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
  909. package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -16
  910. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.ejs +0 -769
  911. package/generators/server/templates/src/main/java/package/config/OAuth2SsoConfiguration.java.ejs +0 -94
  912. package/generators/server/templates/src/main/java/package/config/OAuth2TokenServicesConfiguration.java.ejs +0 -68
  913. package/generators/server/templates/src/main/java/package/repository/CustomN1qlCouchbaseRepository.java.ejs +0 -135
  914. package/generators/server/templates/src/main/java/package/repository/CustomReactiveN1qlCouchbaseRepository.java.ejs +0 -157
  915. package/generators/server/templates/src/main/java/package/repository/N1qlCouchbaseRepository.java.ejs +0 -46
  916. package/generators/server/templates/src/main/java/package/repository/ReactiveN1qlCouchbaseRepository.java.ejs +0 -47
  917. package/generators/server/templates/src/test/java/package/config/DatabaseConfigurationIT.java.ejs +0 -112
@@ -16,9 +16,10 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
-
19
+ const assert = require('assert');
20
20
  const path = require('path');
21
21
  const _ = require('lodash');
22
+ const { kebabCase } = require('lodash');
22
23
  const chalk = require('chalk');
23
24
  const fs = require('fs');
24
25
  const shelljs = require('shelljs');
@@ -26,13 +27,15 @@ const semver = require('semver');
26
27
  const exec = require('child_process').exec;
27
28
  const os = require('os');
28
29
  const normalize = require('normalize-path');
30
+ const simpleGit = require('simple-git');
31
+
29
32
  const packagejs = require('../package.json');
30
33
  const jhipsterUtils = require('./utils');
31
34
  const constants = require('./generator-constants');
32
35
  const PrivateBase = require('./generator-base-private');
33
36
  const NeedleApi = require('./needle-api');
34
- const { defaultConfig } = require('./generator-defaults');
35
- const { defaultConfigMicroservice } = require('./generator-defaults');
37
+ const { defaultConfig, defaultConfigMicroservice } = require('./generator-defaults');
38
+ const { commonOptions } = require('./options');
36
39
  const { detectLanguage } = require('../utils/language');
37
40
  const { formatDateForChangelog } = require('../utils/liquibase');
38
41
  const { calculateDbNameWithLimit, hibernateSnakeCase } = require('../utils/db');
@@ -52,8 +55,9 @@ const { ORACLE, MYSQL, POSTGRESQL, MARIADB, MSSQL, SQL, MONGODB, COUCHBASE, NEO4
52
55
  const NO_DATABASE = databaseTypes.NO;
53
56
 
54
57
  const { GENERATOR_BOOTSTRAP } = require('./generator-list');
58
+ const { PROMETHEUS, ELK } = require('../jdl/jhipster/monitoring-types');
55
59
  const { JWT, OAUTH2, SESSION } = require('../jdl/jhipster/authentication-types');
56
- const { EHCACHE, REDIS, HAZELCAST, MEMCACHED } = require('../jdl/jhipster/cache-types');
60
+ const { CAFFEINE, EHCACHE, REDIS, HAZELCAST, INFINISPAN, MEMCACHED } = require('../jdl/jhipster/cache-types');
57
61
  const { GRADLE, MAVEN } = require('../jdl/jhipster/build-tool-types');
58
62
  const { SPRING_WEBSOCKET } = require('../jdl/jhipster/websocket-types');
59
63
  const { KAFKA } = require('../jdl/jhipster/message-broker-types');
@@ -61,45 +65,18 @@ const { CONSUL, EUREKA } = require('../jdl/jhipster/service-discovery-types');
61
65
  const { GATLING, CUCUMBER, PROTRACTOR, CYPRESS } = require('../jdl/jhipster/test-framework-types');
62
66
  const { GATEWAY, MICROSERVICE, MONOLITH } = require('../jdl/jhipster/application-types');
63
67
  const { ELASTICSEARCH } = require('../jdl/jhipster/search-engine-types');
64
-
65
- // Reverse order.
66
- const CUSTOM_PRIORITIES = [
67
- {
68
- priorityName: 'preConflicts',
69
- queueName: 'jhipster:preConflicts',
70
- before: 'conflicts',
71
- },
72
- {
73
- priorityName: 'postWriting',
74
- queueName: 'jhipster:postWriting',
75
- before: 'preConflicts',
76
- },
77
- {
78
- priorityName: 'preparingRelationships',
79
- queueName: 'jhipster:preparingRelationships',
80
- before: 'default',
81
- },
82
- {
83
- priorityName: 'preparingFields',
84
- queueName: 'jhipster:preparingFields',
85
- before: 'preparingRelationships',
86
- },
87
- {
88
- priorityName: 'preparing',
89
- queueName: 'jhipster:preparing',
90
- before: 'preparingFields',
91
- },
92
- {
93
- priorityName: 'loading',
94
- queueName: 'jhipster:loading',
95
- before: 'preparing',
96
- },
97
- {
98
- priorityName: 'composing',
99
- queueName: 'jhipster:composing',
100
- before: 'loading',
101
- },
102
- ];
68
+ const { CUSTOM_PRIORITIES } = require('../lib/constants/priorities.cjs');
69
+ const cacheTypes = require('../jdl/jhipster/cache-types');
70
+ const serviceDiscoveryTypes = require('../jdl/jhipster/service-discovery-types');
71
+ const searchEngineTypes = require('../jdl/jhipster/search-engine-types');
72
+ const messageBrokerTypes = require('../jdl/jhipster/message-broker-types');
73
+ const websocketTypes = require('../jdl/jhipster/websocket-types');
74
+
75
+ const NO_CACHE = cacheTypes.NO;
76
+ const NO_SERVICE_DISCOVERY = serviceDiscoveryTypes.NO;
77
+ const NO_SEARCH_ENGINE = searchEngineTypes.FALSE;
78
+ const NO_MESSAGE_BROKER = messageBrokerTypes.NO;
79
+ const NO_WEBSOCKET = websocketTypes.FALSE;
103
80
 
104
81
  /**
105
82
  * This is the Generator base class.
@@ -109,31 +86,33 @@ const CUSTOM_PRIORITIES = [
109
86
  * The method signatures in public API should not be changed without a major version change
110
87
  */
111
88
  module.exports = class JHipsterBaseGenerator extends PrivateBase {
112
- constructor(args, opts, features) {
113
- super(args, opts, features);
114
-
115
- // This adds support for a `--from-cli` flag
116
- this.option('from-cli', {
117
- desc: 'Indicates the command is run from JHipster CLI',
118
- type: Boolean,
119
- hide: true,
120
- });
89
+ constructor(args, options, features) {
90
+ super(args, options, features);
91
+
92
+ if (!this.features.jhipsterModular) {
93
+ // This adds support for a `--from-cli` flag
94
+ this.option('from-cli', {
95
+ desc: 'Indicates the command is run from JHipster CLI',
96
+ type: Boolean,
97
+ hide: true,
98
+ });
121
99
 
122
- this.option('with-generated-flag', {
123
- desc: 'Add a GeneratedByJHipster annotation to all generated java classes and interfaces',
124
- type: Boolean,
125
- });
100
+ this.option('with-generated-flag', {
101
+ desc: 'Add a GeneratedByJHipster annotation to all generated java classes and interfaces',
102
+ type: Boolean,
103
+ });
126
104
 
127
- this.option('skip-prompts', {
128
- desc: 'Skip prompts',
129
- type: Boolean,
130
- });
105
+ this.option('skip-prompts', {
106
+ desc: 'Skip prompts',
107
+ type: Boolean,
108
+ });
131
109
 
132
- this.option('skip-prettier', {
133
- desc: 'Skip prettier',
134
- type: Boolean,
135
- hide: true,
136
- });
110
+ this.option('skip-prettier', {
111
+ desc: 'Skip prettier',
112
+ type: Boolean,
113
+ hide: true,
114
+ });
115
+ }
137
116
 
138
117
  if (this.options.help) {
139
118
  return;
@@ -144,12 +123,21 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
144
123
  // JHipster runtime config that should not be stored to .yo-rc.json.
145
124
  this.configOptions = this.options.configOptions || { sharedEntities: {} };
146
125
  this.configOptions.sharedEntities = this.configOptions.sharedEntities || {};
126
+ this._sharedData = this.options.jhipsterSharedData;
147
127
 
148
128
  /* Force config to use 'generator-jhipster' namespace. */
149
129
  this._config = this._getStorage('generator-jhipster');
150
130
  /* JHipster config using proxy mode used as a plain object instead of using get/set. */
151
131
  this.jhipsterConfig = this.config.createProxy();
152
132
 
133
+ this.parseTestOptions();
134
+
135
+ if (this.configOptions.existingProject === undefined) {
136
+ this.configOptions.existingProject = Boolean(this.jhipsterConfig.baseName);
137
+ }
138
+ // TODO v8 rename to existingProject.
139
+ this.existingModularProject = this.configOptions.existingProject;
140
+
153
141
  /* Register generator for compose once */
154
142
  this.registerComposedGenerator(this.options.namespace);
155
143
 
@@ -167,6 +155,24 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
167
155
  }
168
156
  }
169
157
 
158
+ /**
159
+ * Alternative templatePath that fetches from the blueprinted generator, instead of the blueprint.
160
+ */
161
+ jhipsterTemplatePath(...args) {
162
+ this._jhipsterGenerator = this._jhipsterGenerator || this.env.requireNamespace(this.options.namespace).generator;
163
+ return this.fetchFromInstalledJHipster(this._jhipsterGenerator, 'templates', ...args);
164
+ }
165
+
166
+ /**
167
+ * Shared Data
168
+ */
169
+ get sharedData() {
170
+ if (!this._sharedData) {
171
+ throw new Error("Shared data doesn't exists it should be provided by the cli");
172
+ }
173
+ return this._sharedData;
174
+ }
175
+
170
176
  /**
171
177
  * expose custom CLIENT_MAIN_SRC_DIR to templates and needles
172
178
  */
@@ -201,7 +207,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
201
207
  isUsingBuiltInUser() {
202
208
  return (
203
209
  !this.jhipsterConfig ||
204
- !this.jhipsterConfig.skipUserManagement ||
210
+ (!this.jhipsterConfig.skipUserManagement && this.jhipsterConfig.databaseType !== NO_DATABASE) ||
205
211
  (this.jhipsterConfig.authenticationType === OAUTH2 && this.jhipsterConfig.databaseType !== NO_DATABASE)
206
212
  );
207
213
  }
@@ -280,7 +286,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
280
286
  getPrettierExtensions() {
281
287
  let prettierExtensions = 'md,json,yml,html';
282
288
  if (!this.skipClient && !this.jhipsterConfig.skipClient) {
283
- prettierExtensions = `${prettierExtensions},js,ts,tsx,css,scss`;
289
+ prettierExtensions = `${prettierExtensions},cjs,mjs,js,ts,tsx,css,scss`;
284
290
  if (this.jhipsterConfig.clientFramework === VUE) {
285
291
  prettierExtensions = `${prettierExtensions},vue`;
286
292
  }
@@ -1443,6 +1449,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
1443
1449
  }
1444
1450
 
1445
1451
  /**
1452
+ * @deprecated
1446
1453
  * Register the composed generator for compose once.
1447
1454
  * @param {string} namespace - jhipster generator.
1448
1455
  * @return {boolean} false if already composed
@@ -1464,7 +1471,13 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
1464
1471
  * @return {object} the composed generator
1465
1472
  */
1466
1473
  composeWithJHipster(generator, args, options, once = false) {
1474
+ assert(typeof generator === 'string', 'generator should to be a string');
1467
1475
  const namespace = generator.includes(':') ? generator : `jhipster:${generator}`;
1476
+ let immediately = false;
1477
+ if (typeof once === 'object') {
1478
+ immediately = once.immediately;
1479
+ once = false;
1480
+ }
1468
1481
  if (typeof args === 'boolean') {
1469
1482
  once = args;
1470
1483
  args = [];
@@ -1490,15 +1503,35 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
1490
1503
  try {
1491
1504
  generator = require.resolve(`./${generator}`);
1492
1505
  } catch (e) {
1493
- throw new Error(`Generator ${generator} was not found`);
1506
+ try {
1507
+ generator = require.resolve(`./${generator}/index.cjs`);
1508
+ } catch (e) {
1509
+ throw new Error(`Generator ${generator} was not found`);
1510
+ }
1494
1511
  }
1495
1512
  }
1496
1513
 
1497
- return this.env.composeWith(generator, args, {
1498
- ...this.options,
1499
- configOptions: this.configOptions,
1500
- ...options,
1501
- });
1514
+ return this.env.composeWith(
1515
+ generator,
1516
+ args,
1517
+ {
1518
+ ...this.options,
1519
+ configOptions: this.configOptions,
1520
+ ...options,
1521
+ },
1522
+ !immediately
1523
+ );
1524
+ }
1525
+
1526
+ /**
1527
+ * Compose with a jhipster generator using default jhipster config, but queue it immediately.
1528
+ * @param {String} generator - jhipster generator.
1529
+ * @param {String[]} [args] - arguments to pass
1530
+ * @param {Object} [options] - options to pass
1531
+ * @return {Object} the composed generator
1532
+ */
1533
+ dependsOnJHipster(generator, args, options) {
1534
+ return this.composeWithJHipster(generator, args, options, { immediately: true });
1502
1535
  }
1503
1536
 
1504
1537
  /**
@@ -1584,6 +1617,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
1584
1617
  }
1585
1618
 
1586
1619
  /**
1620
+ * @deprecated
1587
1621
  * Copy i18 files for given language
1588
1622
  *
1589
1623
  * @param {object} generator - context that can be used as the generator instance or data to process template
@@ -1612,6 +1646,7 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
1612
1646
  }
1613
1647
 
1614
1648
  /**
1649
+ * @deprecated
1615
1650
  * executes a Git command using shellJS
1616
1651
  * gitExec(args [, options] [, callback])
1617
1652
  *
@@ -1827,16 +1862,22 @@ module.exports = class JHipsterBaseGenerator extends PrivateBase {
1827
1862
  */
1828
1863
  generateKeyStore() {
1829
1864
  const done = this.async();
1830
- const keyStoreFile = `${SERVER_MAIN_RES_DIR}config/tls/keystore.p12`;
1865
+
1866
+ let keystoreFolder = `${SERVER_MAIN_RES_DIR}config/tls/`;
1867
+ if (this.destinationPath) {
1868
+ keystoreFolder = this.destinationPath(keystoreFolder);
1869
+ }
1870
+ const keyStoreFile = `${keystoreFolder}/keystore.p12`;
1871
+
1831
1872
  if (this.fs.exists(keyStoreFile)) {
1832
1873
  this.log(chalk.cyan(`\nKeyStore '${keyStoreFile}' already exists. Leaving unchanged.\n`));
1833
1874
  done();
1834
1875
  } else {
1835
1876
  try {
1836
- shelljs.mkdir('-p', `${SERVER_MAIN_RES_DIR}config/tls`);
1877
+ shelljs.mkdir('-p', keystoreFolder);
1837
1878
  } catch (error) {
1838
1879
  // noticed that on windows the shelljs.mkdir tends to sometimes fail
1839
- fs.mkdir(`${SERVER_MAIN_RES_DIR}config/tls`, { recursive: true }, err => {
1880
+ fs.mkdir(keystoreFolder, { recursive: true }, err => {
1840
1881
  if (err) throw err;
1841
1882
  });
1842
1883
  }
@@ -2241,6 +2282,202 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2241
2282
  );
2242
2283
  }
2243
2284
 
2285
+ /**
2286
+ * write the given files using provided options.
2287
+ *
2288
+ * @param {object} options
2289
+ * @param {object} [options.sections] - sections to write
2290
+ * @param {object} [options.blocks] - blocks to write
2291
+ * @param {object} [options.files] - files to write
2292
+ * @param {object} [options.context] - context for templates
2293
+ * @param {string|string[]} [options.rootTemplatesPath] - path(s) to look for templates.
2294
+ * Single absolute path or relative path(s) between the templates folder and template path.
2295
+ * @return {string[]}
2296
+ */
2297
+ async writeFiles(options) {
2298
+ const paramCount = Object.keys(options).filter(key => ['sections', 'blocks', 'templates'].includes(key)).length;
2299
+ assert(paramCount > 0, 'One of sections, blocks or files is required');
2300
+ assert(paramCount === 1, 'Only one of sections, blocks or files must be provided');
2301
+
2302
+ const { sections, blocks, templates, rootTemplatesPath, context = this } = options;
2303
+ const startTime = new Date();
2304
+
2305
+ /* Build lookup order first has preference.
2306
+ * Example
2307
+ * rootTemplatesPath = ['reactive', 'common']
2308
+ * jhipsterTemplatesFolders = ['/.../generator-jhispter-blueprint/server/templates', '/.../generator-jhispter/server/templates']
2309
+ *
2310
+ * /.../generator-jhispter-blueprint/server/templates/reactive/templatePath
2311
+ * /.../generator-jhispter-blueprint/server/templates/common/templatePath
2312
+ * /.../generator-jhispter/server/templates/reactive/templatePath
2313
+ * /.../generator-jhispter/server/templates/common/templatePath
2314
+ */
2315
+ let rootTemplatesAbsolutePath;
2316
+ if (!rootTemplatesPath) {
2317
+ rootTemplatesAbsolutePath = this.jhipsterTemplatesFolders;
2318
+ } else if (typeof rootTemplatesPath === 'string' && path.isAbsolute(rootTemplatesPath)) {
2319
+ rootTemplatesAbsolutePath = rootTemplatesPath;
2320
+ } else {
2321
+ rootTemplatesAbsolutePath = this.jhipsterTemplatesFolders
2322
+ .map(templateFolder => [].concat(rootTemplatesPath).map(relativePath => path.join(templateFolder, relativePath)))
2323
+ .flat();
2324
+ }
2325
+
2326
+ const normalizeEjs = file => file.replace('.ejs', '');
2327
+ const resolveCallback = (val, fallback) => {
2328
+ if (val === undefined) {
2329
+ if (typeof fallback === 'function') {
2330
+ return resolveCallback(fallback);
2331
+ }
2332
+ return fallback;
2333
+ }
2334
+ if (typeof val === 'boolean' || typeof val === 'string') {
2335
+ return val;
2336
+ }
2337
+ if (typeof val === 'function') {
2338
+ return val(context, this);
2339
+ }
2340
+ throw new Error(`Type not supported ${val}`);
2341
+ };
2342
+
2343
+ const renderTemplate = async ({ sourceFile, destinationFile, options, transform = true }) => {
2344
+ const extension = path.extname(sourceFile);
2345
+ const appendEjs = transform && !['.ejs', '.png', '.jpg', '.gif', '.svg', '.ico'].includes(extension);
2346
+ const ejsFile = appendEjs || extension === '.ejs';
2347
+
2348
+ if (typeof transform !== 'boolean') {
2349
+ throw new Error(`Transform ${transform} value is not supported`);
2350
+ }
2351
+ destinationFile = transform ? normalizeEjs(destinationFile) : destinationFile;
2352
+
2353
+ let sourceFileFrom;
2354
+ if (Array.isArray(rootTemplatesAbsolutePath)) {
2355
+ // Look for existing templates
2356
+ const existingTemplates = rootTemplatesAbsolutePath
2357
+ .map(rootPath => this.templatePath(rootPath, sourceFile))
2358
+ .filter(templateFile => fs.existsSync(appendEjs ? `${templateFile}.ejs` : templateFile));
2359
+
2360
+ if (existingTemplates.length > 1) {
2361
+ const moreThanOneMessage = `Multiples templates were found for file ${sourceFile}, using the first
2362
+ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2363
+ if (existingTemplates.length > 2) {
2364
+ this.warning(`Possible blueprint conflict detected: ${moreThanOneMessage}`);
2365
+ } else {
2366
+ this.debug(moreThanOneMessage);
2367
+ }
2368
+ }
2369
+ sourceFileFrom = existingTemplates.shift();
2370
+
2371
+ if (sourceFileFrom === undefined) {
2372
+ throw new Error(`Template file ${sourceFile} was not found at ${rootTemplatesAbsolutePath}`);
2373
+ }
2374
+ } else if (typeof rootTemplatesAbsolutePath === 'string') {
2375
+ sourceFileFrom = this.templatePath(rootTemplatesAbsolutePath, sourceFile);
2376
+ } else {
2377
+ sourceFileFrom = this.templatePath(sourceFile);
2378
+ }
2379
+ if (appendEjs) {
2380
+ sourceFileFrom = `${sourceFileFrom}.ejs`;
2381
+ }
2382
+
2383
+ if (!ejsFile) {
2384
+ await this.copyTemplateAsync(sourceFileFrom, destinationFile);
2385
+ } else {
2386
+ await this.renderTemplateAsync(sourceFileFrom, destinationFile, context, {
2387
+ ...options,
2388
+ // Set root for ejs to lookup for partials.
2389
+ root: rootTemplatesAbsolutePath,
2390
+ });
2391
+ }
2392
+ return destinationFile;
2393
+ };
2394
+
2395
+ let parsedBlocks = blocks;
2396
+ if (sections) {
2397
+ assert(typeof sections === 'object', 'sections must be an object');
2398
+ const parsedSections = Object.entries(sections).map(([sectionName, sectionBlocks]) => {
2399
+ assert(Array.isArray(sectionBlocks), `Section must be an array for ${sectionName}`);
2400
+ return { sectionName, sectionBlocks };
2401
+ });
2402
+
2403
+ parsedBlocks = parsedSections
2404
+ .map(({ sectionName, sectionBlocks }) => {
2405
+ return sectionBlocks.map((block, blockIdx) => {
2406
+ const blockSpecPath = `${sectionName}[${blockIdx}]`;
2407
+ assert(typeof block === 'object', `Block must be an object for ${blockSpecPath}`);
2408
+ return { blockSpecPath, ...block };
2409
+ });
2410
+ })
2411
+ .flat();
2412
+ }
2413
+
2414
+ let parsedTemplates;
2415
+ if (parsedBlocks) {
2416
+ parsedTemplates = parsedBlocks
2417
+ .map((block, blockIdx) => {
2418
+ const {
2419
+ blockSpecPath = `${blockIdx}`,
2420
+ path: blockPathCallback = './',
2421
+ from: blockFromCallback,
2422
+ to: blockToCallback,
2423
+ condition: blockConditionCallback,
2424
+ transform: blockTransform,
2425
+ } = block;
2426
+ assert(typeof block === 'object', `Block must be an object for ${blockSpecPath}`);
2427
+ assert(Array.isArray(block.templates), `Block templates must be an array for ${blockSpecPath}`);
2428
+ const condition = resolveCallback(blockConditionCallback);
2429
+ if (condition !== undefined && !condition) {
2430
+ return undefined;
2431
+ }
2432
+ const blockPath = resolveCallback(blockFromCallback, blockPathCallback);
2433
+ const blockTo = resolveCallback(blockToCallback, blockPathCallback) || blockPath;
2434
+ return block.templates.map((fileSpec, fileIdx) => {
2435
+ const fileSpecPath = `${blockSpecPath}[${fileIdx}]`;
2436
+ assert(typeof fileSpec === 'object' || typeof fileSpec === 'string', `File must be an object or a string for ${fileSpecPath}`);
2437
+ if (typeof fileSpec === 'string') {
2438
+ const sourceFile = path.join(blockPath, fileSpec);
2439
+ const destinationFile = this.destinationPath(blockTo, fileSpec);
2440
+ return { sourceFile, destinationFile, transform: blockTransform };
2441
+ }
2442
+ let { sourceFile, destinationFile } = fileSpec;
2443
+ const { options, file, renameTo } = fileSpec;
2444
+ const normalizedFile = resolveCallback(sourceFile || file);
2445
+ sourceFile = path.join(blockPath, normalizedFile);
2446
+ destinationFile = this.destinationPath(blockTo, path.join(resolveCallback(destinationFile || renameTo, normalizedFile)));
2447
+
2448
+ const override = resolveCallback(fileSpec.override);
2449
+ if (override !== undefined && !override && this.fs.exists(destinationFile)) {
2450
+ this.debug(`skipping file ${destinationFile}`);
2451
+ return undefined;
2452
+ }
2453
+ let { transform } = fileSpec;
2454
+ if (transform === undefined) {
2455
+ // TODO remove for jhipster 8
2456
+ const { noEjs, method } = fileSpec;
2457
+ transform = noEjs || method === 'copy' ? false : undefined;
2458
+ }
2459
+ if (transform === undefined) {
2460
+ transform = blockTransform;
2461
+ }
2462
+ return { sourceFile, destinationFile, options, transform };
2463
+ });
2464
+ })
2465
+ .flat()
2466
+ .filter(template => template);
2467
+ } else {
2468
+ parsedTemplates = templates.map(template => {
2469
+ if (typeof template === 'string') {
2470
+ return { sourceFile: template, destinationFile: template };
2471
+ }
2472
+ return template;
2473
+ });
2474
+ }
2475
+
2476
+ const files = await Promise.all(parsedTemplates.map(template => renderTemplate(template)));
2477
+ this.debug(`Time taken to write files: ${new Date() - startTime}ms`);
2478
+ return files.filter(file => file);
2479
+ }
2480
+
2244
2481
  /**
2245
2482
  * Parse runtime options.
2246
2483
  * @param {Object} [options] - object to load from.
@@ -2342,6 +2579,10 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2342
2579
  this.jhipsterConfig.skipCommitHook = true;
2343
2580
  }
2344
2581
 
2582
+ if (options.monorepository !== undefined) {
2583
+ this.jhipsterConfig.monorepository = options.monorepository;
2584
+ }
2585
+
2345
2586
  if (options.baseName) {
2346
2587
  this.jhipsterConfig.baseName = this.options.baseName;
2347
2588
  }
@@ -2422,6 +2663,10 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2422
2663
  this.jhipsterConfig.microfrontend = options.microfrontend;
2423
2664
  }
2424
2665
 
2666
+ if (options.reactive !== undefined) {
2667
+ this.jhipsterConfig.reactive = options.reactive;
2668
+ }
2669
+
2425
2670
  if (options.clientPackageManager) {
2426
2671
  this.jhipsterConfig.clientPackageManager = options.clientPackageManager;
2427
2672
  }
@@ -2449,10 +2694,26 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2449
2694
  dest.logo = config.logo;
2450
2695
  config.backendName = config.backendName || 'Java';
2451
2696
  dest.backendName = config.backendName;
2697
+
2698
+ config.nodeDependencies = config.nodeDependencies || {
2699
+ prettier: packagejs.dependencies.prettier,
2700
+ 'prettier-plugin-java': packagejs.dependencies['prettier-plugin-java'],
2701
+ 'prettier-plugin-packagejson': packagejs.dependencies['prettier-plugin-packagejson'],
2702
+ };
2703
+ dest.nodeDependencies = config.nodeDependencies;
2704
+
2705
+ // Deprecated use nodeDependencies instead
2452
2706
  config.dependabotPackageJson = config.dependabotPackageJson || {};
2453
2707
  dest.dependabotPackageJson = config.dependabotPackageJson;
2454
2708
  }
2455
2709
 
2710
+ /**
2711
+ * Register and parse common options.
2712
+ */
2713
+ registerCommonOptions() {
2714
+ this.jhipsterOptions(commonOptions);
2715
+ }
2716
+
2456
2717
  /**
2457
2718
  * Load app configs into dest.
2458
2719
  * all variables should be set to dest,
@@ -2483,9 +2744,16 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2483
2744
  dest.microfrontend = config.microfrontend;
2484
2745
  dest.gatewayServerPort = config.gatewayServerPort;
2485
2746
 
2747
+ dest.capitalizedBaseName = config.capitalizedBaseName;
2748
+ dest.dasherizedBaseName = config.dasherizedBaseName;
2749
+ dest.humanizedBaseName = config.humanizedBaseName;
2750
+ dest.projectDescription = config.projectDescription;
2751
+
2486
2752
  dest.testFrameworks = config.testFrameworks || [];
2487
2753
  dest.cypressCoverage = config.cypressCoverage;
2488
2754
 
2755
+ dest.remotes = Object.entries(config.applications || {}).map(([baseName, config]) => ({ baseName, ...config })) || [];
2756
+
2489
2757
  dest.gatlingTests = dest.testFrameworks.includes(GATLING);
2490
2758
  dest.cucumberTests = dest.testFrameworks.includes(CUCUMBER);
2491
2759
  dest.protractorTests = dest.testFrameworks.includes(PROTRACTOR);
@@ -2502,6 +2770,23 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2502
2770
  dest.applicationTypeGateway = dest.applicationType === GATEWAY;
2503
2771
  dest.applicationTypeMonolith = dest.applicationType === MONOLITH;
2504
2772
  dest.applicationTypeMicroservice = dest.applicationType === MICROSERVICE;
2773
+
2774
+ // Application name modified, using each technology's conventions
2775
+ if (dest.baseName) {
2776
+ dest.camelizedBaseName = _.camelCase(dest.baseName);
2777
+ dest.hipster = this.getHipster(dest.baseName);
2778
+ dest.capitalizedBaseName = dest.capitalizedBaseName || _.upperFirst(dest.baseName);
2779
+ dest.dasherizedBaseName = dest.dasherizedBaseName || _.kebabCase(dest.baseName);
2780
+ dest.lowercaseBaseName = dest.baseName.toLowerCase();
2781
+ dest.humanizedBaseName =
2782
+ dest.humanizedBaseName || (dest.baseName.toLowerCase() === 'jhipster' ? 'JHipster' : _.startCase(dest.baseName));
2783
+ dest.projectDescription = dest.projectDescription || `Description for ${this.baseName}`;
2784
+ dest.endpointPrefix = !dest.applicationType || dest.applicationTypeMicroservice ? `services/${dest.lowercaseBaseName}` : '';
2785
+ }
2786
+
2787
+ if (dest.remotes) {
2788
+ dest.remotes.forEach(app => this.loadDerivedAppConfig(app));
2789
+ }
2505
2790
  }
2506
2791
 
2507
2792
  /**
@@ -2517,6 +2802,8 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2517
2802
  dest.clientTheme = config.clientTheme;
2518
2803
  dest.clientThemeVariant = config.clientThemeVariant;
2519
2804
  dest.devServerPort = config.devServerPort;
2805
+
2806
+ dest.clientSrcDir = config.clientSrcDir || this.CLIENT_MAIN_SRC_DIR;
2520
2807
  }
2521
2808
 
2522
2809
  loadDerivedClientConfig(dest = this) {
@@ -2527,6 +2814,10 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2527
2814
  dest.clientThemePrimary = dest.clientThemeVariant === 'primary';
2528
2815
  dest.clientThemeLight = dest.clientThemeVariant === 'light';
2529
2816
  dest.clientThemeDark = dest.clientThemeVariant === 'dark';
2817
+
2818
+ if (dest.baseName) {
2819
+ dest.frontendAppName = this.getFrontendAppName(dest.baseName);
2820
+ }
2530
2821
  }
2531
2822
 
2532
2823
  /**
@@ -2563,6 +2854,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2563
2854
  dest.databaseType = config.databaseType;
2564
2855
  dest.devDatabaseType = config.devDatabaseType;
2565
2856
  dest.prodDatabaseType = config.prodDatabaseType;
2857
+ dest.reactive = config.reactive;
2566
2858
  dest.searchEngine = config.searchEngine;
2567
2859
  dest.cacheProvider = config.cacheProvider;
2568
2860
  dest.enableHibernateCache = config.enableHibernateCache;
@@ -2570,30 +2862,73 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2570
2862
  dest.enableSwaggerCodegen = config.enableSwaggerCodegen;
2571
2863
  dest.messageBroker = config.messageBroker;
2572
2864
  dest.websocket = config.websocket;
2573
- dest.serviceDiscoveryType = config.serviceDiscoveryType;
2574
-
2575
2865
  dest.embeddableLaunchScript = config.embeddableLaunchScript;
2576
2866
 
2867
+ dest.enableGradleEnterprise = config.enableGradleEnterprise;
2868
+
2869
+ if (config.gradleEnterpriseHost && !config.gradleEnterpriseHost.startsWith('https://')) {
2870
+ dest.gradleEnterpriseHost = `https://${config.gradleEnterpriseHost}`;
2871
+ } else {
2872
+ dest.gradleEnterpriseHost = config.gradleEnterpriseHost;
2873
+ }
2874
+
2577
2875
  this.loadDerivedServerConfig(dest);
2578
2876
  }
2579
2877
 
2580
2878
  loadDerivedServerConfig(dest = this) {
2879
+ if (!dest.packageFolder) {
2880
+ dest.packageFolder = dest.packageName.replace(/\./g, '/');
2881
+ }
2882
+
2883
+ // Convert to false for templates.
2884
+ if (dest.serviceDiscoveryType === NO_SERVICE_DISCOVERY || !dest.serviceDiscoveryType) {
2885
+ dest.serviceDiscoveryType = false;
2886
+ }
2887
+ if (dest.websocket === NO_WEBSOCKET || !dest.websocket) {
2888
+ dest.websocket = false;
2889
+ }
2890
+ if (dest.searchEngine === NO_SEARCH_ENGINE || !dest.searchEngine) {
2891
+ dest.searchEngine = false;
2892
+ }
2893
+ if (dest.messageBroker === NO_MESSAGE_BROKER || !dest.messageBroker) {
2894
+ dest.messageBroker = false;
2895
+ }
2896
+
2897
+ dest.authenticationTypeSession = dest.authenticationType === SESSION;
2898
+ dest.authenticationTypeJwt = dest.authenticationType === JWT;
2899
+ dest.authenticationTypeOauth2 = dest.authenticationType === OAUTH2;
2900
+
2581
2901
  dest.buildToolGradle = dest.buildTool === GRADLE;
2582
2902
  dest.buildToolMaven = dest.buildTool === MAVEN;
2583
2903
  dest.buildToolUnknown = !dest.buildToolGradle && !dest.buildToolMaven;
2584
2904
  dest.buildDir = this.getBuildDirectoryForBuildTool(dest.buildTool);
2585
2905
 
2586
- dest.cacheProviderRedis = dest.cacheProvider === REDIS;
2906
+ dest.cacheProviderNo = dest.cacheProvider === NO_CACHE;
2907
+ dest.cacheProviderCaffeine = dest.cacheProvider === CAFFEINE;
2908
+ dest.cacheProviderEhCache = dest.cacheProvider === EHCACHE;
2587
2909
  dest.cacheProviderHazelcast = dest.cacheProvider === HAZELCAST;
2910
+ dest.cacheProviderInfinispan = dest.cacheProvider === INFINISPAN;
2588
2911
  dest.cacheProviderMemcached = dest.cacheProvider === MEMCACHED;
2912
+ dest.cacheProviderRedis = dest.cacheProvider === REDIS;
2589
2913
 
2590
2914
  dest.devDatabaseTypeH2Disk = dest.devDatabaseType === H2_DISK;
2591
2915
  dest.devDatabaseTypeH2Memory = dest.devDatabaseType === H2_MEMORY;
2592
2916
  dest.devDatabaseTypeH2Any = dest.devDatabaseTypeH2Disk || dest.devDatabaseTypeH2Memory;
2593
2917
  dest.devDatabaseTypeCouchbase = dest.devDatabaseType === COUCHBASE;
2594
-
2595
- dest.prodDatabaseTypeMysql = dest.prodDatabaseType === MYSQL;
2918
+ dest.devDatabaseTypeMariadb = dest.devDatabaseType === MARIADB;
2919
+ dest.devDatabaseTypeMssql = dest.devDatabaseType === MSSQL;
2920
+ dest.devDatabaseTypeMysql = dest.devDatabaseType === MYSQL;
2921
+ dest.devDatabaseTypeOracle = dest.devDatabaseType === ORACLE;
2922
+ dest.devDatabaseTypePostgres = dest.devDatabaseType === POSTGRESQL;
2923
+
2924
+ dest.prodDatabaseTypeCouchbase = dest.prodDatabaseType === COUCHBASE;
2925
+ dest.prodDatabaseTypeH2Disk = dest.prodDatabaseType === H2_DISK;
2596
2926
  dest.prodDatabaseTypeMariadb = dest.prodDatabaseType === MARIADB;
2927
+ dest.prodDatabaseTypeMongodb = dest.prodDatabaseType === MONGODB;
2928
+ dest.prodDatabaseTypeMssql = dest.prodDatabaseType === MSSQL;
2929
+ dest.prodDatabaseTypeMysql = dest.prodDatabaseType === MYSQL;
2930
+ dest.prodDatabaseTypeNeo4j = dest.prodDatabaseType === NEO4J;
2931
+ dest.prodDatabaseTypeOracle = dest.prodDatabaseType === ORACLE;
2597
2932
  dest.prodDatabaseTypePostgres = dest.prodDatabaseType === POSTGRESQL;
2598
2933
 
2599
2934
  dest.databaseTypeNo = dest.databaseType === NO_DATABASE;
@@ -2606,19 +2941,12 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2606
2941
  dest.databaseTypeMariadb = dest.databaseType === SQL && (dest.devDatabaseType === MARIADB || dest.prodDatabaseType === MARIADB);
2607
2942
  dest.databaseTypePostgres = dest.databaseType === SQL && (dest.devDatabaseType === POSTGRESQL || dest.prodDatabaseType === POSTGRESQL);
2608
2943
 
2609
- dest.authenticationTypeSession = dest.authenticationType === SESSION;
2610
- dest.authenticationTypeJwt = dest.authenticationType === JWT;
2611
- dest.authenticationTypeOauth2 = dest.authenticationType === OAUTH2;
2612
-
2613
2944
  dest.communicationSpringWebsocket = dest.websocket === SPRING_WEBSOCKET;
2614
2945
 
2615
2946
  dest.messageBrokerKafka = dest.messageBroker === KAFKA;
2616
2947
 
2617
- dest.serviceDiscoveryConsul = dest.serviceDiscoveryType === CONSUL;
2618
- dest.serviceDiscoveryEureka = dest.serviceDiscoveryType === EUREKA;
2619
-
2620
- dest.searchEngineElasticsearch = dest.searchEngine === ELASTICSEARCH;
2621
2948
  dest.searchEngineCouchbase = dest.searchEngine === COUCHBASE;
2949
+ dest.searchEngineElasticsearch = dest.searchEngine === ELASTICSEARCH;
2622
2950
 
2623
2951
  dest.reactiveSqlTestContainers =
2624
2952
  dest.reactive &&
@@ -2626,9 +2954,22 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2626
2954
  [MYSQL, POSTGRESQL, MSSQL, MARIADB].includes(dest.devDatabaseType));
2627
2955
  }
2628
2956
 
2629
- loadPlatformConfig(config = _.defaults({}, this.jhipsterConfig, defaultConfig), dest = this) {}
2957
+ loadPlatformConfig(config = _.defaults({}, this.jhipsterConfig, defaultConfig), dest = this) {
2958
+ dest.serviceDiscoveryType = config.serviceDiscoveryType;
2959
+ dest.monitoring = config.monitoring;
2960
+ this.loadDerivedPlatformConfig(dest);
2961
+ }
2962
+
2963
+ loadDerivedPlatformConfig(dest = this) {
2964
+ dest.serviceDiscoveryConsul = dest.serviceDiscoveryType === CONSUL;
2965
+ dest.serviceDiscoveryEureka = dest.serviceDiscoveryType === EUREKA;
2966
+ dest.serviceDiscoveryAny = dest.serviceDiscoveryConsul || dest.serviceDiscoveryEureka;
2967
+ dest.monitoringELK = dest.monitoring === ELK;
2968
+ dest.monitoringPrometheus = dest.monitoring === PROMETHEUS;
2969
+ }
2630
2970
 
2631
2971
  /**
2972
+ * @deprecated
2632
2973
  * Get all the generator configuration from the .yo-rc.json file
2633
2974
  * @param {string} yoRcPath - .yo-rc.json folder.
2634
2975
  */
@@ -2690,7 +3031,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2690
3031
  return { ...defaultApplicationOptions.getConfigForApplicationType(applicationType), ...defaultConfig };
2691
3032
  }
2692
3033
 
2693
- setConfigDefaults(defaults = this.jhipsterConfig.applicationType !== MICROSERVICE ? defaultConfig : defaultConfigMicroservice) {
3034
+ setConfigDefaults(defaults = this.jhipsterConfig.applicationType === MICROSERVICE ? defaultConfigMicroservice : defaultConfig) {
2694
3035
  const jhipsterVersion = packagejs.version;
2695
3036
  const baseName = this.getDefaultAppName();
2696
3037
  const creationTimestamp = new Date().getTime();
@@ -2722,4 +3063,116 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
2722
3063
  getR2DBCUrl(databaseType, options = {}) {
2723
3064
  return this.getDBCUrl(databaseType, 'r2dbc', options);
2724
3065
  }
3066
+
3067
+ /**
3068
+ * @experimental
3069
+ */
3070
+ showHello() {
3071
+ if (this.configOptions.showHello === false) return false;
3072
+ this.configOptions.showHello = false;
3073
+ return true;
3074
+ }
3075
+
3076
+ /**
3077
+ * @experimental
3078
+ * Load dependabot package.json into shared dependabot dependencies.
3079
+ * @example this.loadDependabotDependencies(this.fetchFromInstalledJHipster('init', 'templates', 'package.json'));
3080
+ * @param String dependabotFile - package.json path
3081
+ */
3082
+ loadDependabotDependencies(packageJson) {
3083
+ const { dependencies, devDependencies } = this.fs.readJSON(packageJson);
3084
+ _.merge(this.configOptions.nodeDependencies, dependencies, devDependencies);
3085
+ }
3086
+
3087
+ /**
3088
+ * @experimental
3089
+ * Check if modular generators should be composed.
3090
+ * @return {Boolean}
3091
+ */
3092
+ shouldComposeModular() {
3093
+ return !this.options.add && !this.options.regenerate;
3094
+ }
3095
+
3096
+ /**
3097
+ * @experimental
3098
+ * Check if modular generators should skip write files.
3099
+ * @return {Boolean}
3100
+ */
3101
+ shouldSkipFiles() {
3102
+ return this.options.configure;
3103
+ }
3104
+
3105
+ /**
3106
+ * @experimental
3107
+ * Check if prompts must be skipped.
3108
+ * @return {Boolean}
3109
+ */
3110
+ shouldSkipPrompts() {
3111
+ return (
3112
+ this.options.defaults ||
3113
+ this.options.skipPrompts ||
3114
+ this.options.regenerate ||
3115
+ (!this.options.add && this.existingModularProject && !this.options.askAnswered)
3116
+ );
3117
+ }
3118
+
3119
+ /**
3120
+ * Load config for simulating existing project.
3121
+ */
3122
+ parseTestOptions() {
3123
+ /*
3124
+ * When testing a generator with yeoman-test using 'withLocalConfig(localConfig)', it instantiates the
3125
+ * generator and then executes generator.config.defaults(localConfig).
3126
+ * JHipster workflow does a lot of configuration at the constructor, sometimes this is required due to current
3127
+ * blueprints support implementation, making it incompatible with yeoman-test's withLocalConfig.
3128
+ * 'defaultLocalConfig' option is a replacement for yeoman-test's withLocalConfig method.
3129
+ * 'defaults' function sets every key that has undefined value at current config.
3130
+ */
3131
+ if (this.options.defaultLocalConfig) {
3132
+ this.config.defaults(this.options.defaultLocalConfig);
3133
+ delete this.options.defaultLocalConfig;
3134
+ }
3135
+ /*
3136
+ * Option 'localConfig' uses set instead of defaults of 'defaultLocalConfig'.
3137
+ * 'set' function sets every key from 'localConfig'.
3138
+ */
3139
+ if (this.options.localConfig) {
3140
+ this.config.set(this.options.localConfig);
3141
+ delete this.options.localConfig;
3142
+ }
3143
+ }
3144
+
3145
+ /**
3146
+ * @experimental
3147
+ * Load options from an object.
3148
+ * When composing, we need to load options from others generators, externalising options allow to easily load them.
3149
+ * @param String options - Object containing options.
3150
+ */
3151
+ jhipsterOptions(options = {}) {
3152
+ Object.entries(options).forEach(([optionName, optionDesc]) => {
3153
+ this.option(kebabCase(optionName), optionDesc);
3154
+ if (!optionDesc.scope) return;
3155
+ const optionValue = this.options[optionName];
3156
+ if (optionValue !== undefined) {
3157
+ if (optionDesc.scope === 'storage') {
3158
+ this.config.set(optionName, optionValue);
3159
+ } else if (optionDesc.scope === 'runtime') {
3160
+ this.configOptions[optionName] = optionValue;
3161
+ } else {
3162
+ throw new Error(`Scope ${optionDesc.scope} not supported`);
3163
+ }
3164
+ delete this.options[optionName];
3165
+ }
3166
+ });
3167
+ }
3168
+
3169
+ /**
3170
+ * Create a simple-git instance using current destinationPath as baseDir.
3171
+ */
3172
+ createGit() {
3173
+ return simpleGit({ baseDir: this.destinationPath() }).env({
3174
+ ...process.env,
3175
+ LANG: 'en',
3176
+ });
3177
+ }
2725
3178
  };