generator-jhipster 7.2.0 → 7.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/cli/environment-builder.js +1 -0
  2. package/cli/import-jdl.js +3 -2
  3. package/cli/jdl.js +1 -0
  4. package/cli/jhipster-command.js +2 -2
  5. package/cli/program.js +32 -29
  6. package/generators/app/index.js +35 -26
  7. package/generators/aws/index.js +8 -8
  8. package/generators/aws/lib/eb.js +1 -1
  9. package/generators/azure-app-service/index.js +16 -9
  10. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +2 -2
  11. package/generators/azure-spring-cloud/index.js +16 -9
  12. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +2 -2
  13. package/generators/bootstrap/index.js +57 -61
  14. package/generators/ci-cd/index.js +11 -8
  15. package/generators/ci-cd/templates/github-actions.yml.ejs +1 -1
  16. package/generators/ci-cd/templates/travis.yml.ejs +9 -4
  17. package/generators/client/__workflow/devserver-angular.json +1 -1
  18. package/generators/client/__workflow/devserver-react.json +1 -1
  19. package/generators/client/__workflow/devserver-vue.json +1 -1
  20. package/generators/client/files-angular.js +6 -0
  21. package/generators/client/files-common.js +6 -2
  22. package/generators/client/files-react.js +13 -2
  23. package/generators/client/files-vue.js +56 -6
  24. package/generators/client/index.js +114 -32
  25. package/generators/client/needle-api/needle-client-angular.js +1 -1
  26. package/generators/client/needle-api/needle-client-vue.js +57 -7
  27. package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
  28. package/generators/client/templates/angular/package.json +19 -19
  29. package/generators/client/templates/angular/package.json.ejs +2 -1
  30. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
  31. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
  32. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
  33. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
  34. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
  35. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
  36. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
  37. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
  38. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
  39. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +116 -118
  40. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
  41. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
  42. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +74 -76
  43. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
  44. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +50 -52
  45. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +19 -21
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +62 -64
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +87 -89
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +41 -43
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
  58. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +3 -0
  59. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +178 -180
  60. package/generators/client/templates/angular/src/main/webapp/app/core/config/application-config.service.ts.ejs +9 -0
  61. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.spec.ts.ejs +87 -89
  62. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +93 -95
  63. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
  64. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +66 -68
  65. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
  66. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +112 -114
  67. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
  68. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
  69. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +2 -3
  70. package/generators/client/templates/common/README.md.jhi.client.ejs +34 -0
  71. package/generators/client/templates/common/package.json +7 -7
  72. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
  73. package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
  74. package/generators/client/templates/react/package.json +57 -56
  75. package/generators/client/templates/react/package.json.ejs +5 -2
  76. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
  77. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
  78. package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +2 -2
  79. package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
  80. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
  81. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
  82. package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
  83. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
  84. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
  85. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
  86. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
  87. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +17 -1
  88. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +13 -1
  89. package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
  90. package/generators/client/templates/vue/package.json +40 -49
  91. package/generators/client/templates/vue/package.json.ejs +14 -18
  92. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +6 -5
  93. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
  94. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
  95. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
  96. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
  97. package/generators/client/templates/vue/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -4
  98. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +9 -0
  99. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-view.component.ts.ejs +5 -0
  100. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.component.ts.ejs +5 -0
  101. package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +16 -6
  102. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +27 -8
  103. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
  104. package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
  105. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
  106. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
  107. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +14 -0
  108. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
  109. package/generators/client/templates/vue/{webpack/utils.js.ejs → src/main/webapp/app/index.ts.ejs} +1 -12
  110. package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -9
  111. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +23 -11
  112. package/generators/client/templates/vue/src/main/webapp/app/router/admin.ts.ejs +4 -4
  113. package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +45 -3
  114. package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +19 -3
  115. package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +61 -0
  116. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +0 -2
  117. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +3 -1
  118. package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +17 -3
  119. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +25 -10
  120. package/generators/client/templates/vue/src/test/javascript/spec/app/account/account.service.spec.ts.ejs +2 -2
  121. package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +2 -2
  122. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.component.spec.ts.ejs +12 -12
  123. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.service.spec.ts.ejs +2 -1
  124. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +5 -1
  125. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-view.component.spec.ts.ejs +2 -1
  126. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +5 -1
  127. package/generators/client/templates/vue/src/test/javascript/spec/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +10 -4
  128. package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
  129. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
  130. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
  131. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
  132. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/alert/alert.service.spec.ts.ejs +124 -0
  133. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +0 -1
  134. package/generators/client/templates/vue/tsconfig.json.ejs +6 -10
  135. package/generators/client/templates/vue/tsconfig.spec.json.ejs +37 -0
  136. package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
  137. package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
  138. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +152 -126
  139. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -76
  140. package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
  141. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -41
  142. package/generators/cloudfoundry/index.js +9 -9
  143. package/generators/common/index.js +12 -10
  144. package/generators/common/templates/.husky/pre-commit +1 -1
  145. package/generators/common/templates/.prettierrc.ejs +1 -1
  146. package/generators/common/templates/README.md.jhi.ejs +21 -0
  147. package/generators/common/templates/package.json +4 -4
  148. package/generators/cypress/index.js +12 -9
  149. package/generators/cypress/templates/cypress.json.ejs +9 -2
  150. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +4 -4
  151. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +30 -2
  152. package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
  153. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -1
  154. package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
  155. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
  156. package/generators/database-changelog/index.js +33 -22
  157. package/generators/database-changelog-liquibase/index.js +12 -8
  158. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +1 -1
  159. package/generators/docker-compose/index.js +11 -12
  160. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +13 -12
  161. package/generators/entities/index.js +35 -26
  162. package/generators/entities-client/index.js +10 -7
  163. package/generators/entity/index.js +49 -29
  164. package/generators/entity-client/files.js +7 -16
  165. package/generators/entity-client/index.js +74 -11
  166. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
  167. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +58 -60
  168. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -1
  169. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +105 -107
  170. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +8 -1
  171. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +52 -54
  172. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
  173. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +173 -175
  174. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +2 -4
  175. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +193 -195
  176. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +7 -0
  177. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +269 -109
  178. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +5 -2
  179. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +17 -14
  180. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -13
  181. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-details.component.ts.ejs +5 -0
  182. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +23 -8
  183. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
  184. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +9 -1
  185. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  186. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
  187. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-details.component.spec.ts.ejs +2 -1
  188. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +8 -1
  189. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +8 -2
  190. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
  191. package/generators/entity-i18n/index.js +7 -4
  192. package/generators/entity-server/files-couchbase.js +2 -2
  193. package/generators/entity-server/files.js +35 -30
  194. package/generators/entity-server/index.js +12 -8
  195. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +2 -2
  196. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +1 -1
  197. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +6 -2
  198. package/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs +1 -1
  199. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +2 -2
  200. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +17 -30
  201. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +5 -5
  202. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
  203. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
  204. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +2 -2
  205. package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +8 -8
  206. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +4 -4
  207. package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +4 -4
  208. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +7 -3
  209. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +8 -8
  210. package/generators/entity-server/templates/src/main/java/package/service/mapper/BaseEntityMapper.java.ejs +1 -1
  211. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +7 -3
  212. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +51 -53
  213. package/generators/entity-server/templates/src/test/java/package/domain/EntityTest.java.ejs +1 -1
  214. package/generators/entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs +1 -1
  215. package/generators/entity-server/templates/src/test/java/package/service/dto/EntityDTOTest.java.ejs +1 -1
  216. package/generators/entity-server/templates/src/test/java/package/service/mapper/EntityMapperTest.java.ejs +1 -1
  217. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +17 -14
  218. package/generators/gae/index.js +10 -10
  219. package/generators/generator-base-blueprint.js +14 -46
  220. package/generators/generator-base-private.js +42 -22
  221. package/generators/generator-base.js +57 -20
  222. package/generators/generator-constants.js +29 -21
  223. package/generators/generator-transforms.js +39 -27
  224. package/generators/heroku/index.js +27 -48
  225. package/generators/init/constants.cjs +1 -1
  226. package/generators/init/templates/.husky/pre-commit +1 -1
  227. package/generators/java/constants.cjs +1 -1
  228. package/generators/kubernetes/files.js +3 -0
  229. package/generators/kubernetes/index.js +10 -10
  230. package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -1
  231. package/generators/kubernetes/templates/deployment.yml.ejs +8 -3
  232. package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
  233. package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
  234. package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
  235. package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
  236. package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
  237. package/generators/kubernetes/templates/istio/gateway.yml.ejs +7 -5
  238. package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
  239. package/generators/kubernetes-base.js +1 -0
  240. package/generators/kubernetes-helm/files.js +3 -8
  241. package/generators/kubernetes-helm/index.js +10 -10
  242. package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +0 -1
  243. package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +27 -0
  244. package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +0 -11
  245. package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +7 -2
  246. package/generators/kubernetes-helm/templates/app/values.yml.ejs +68 -5
  247. package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +17 -0
  248. package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +2 -2
  249. package/generators/kubernetes-knative/index.js +10 -10
  250. package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +6 -4
  251. package/generators/kubernetes-knative/templates/service.yml.ejs +1 -1
  252. package/generators/languages/index.js +13 -13
  253. package/generators/languages/templates/src/main/webapp/i18n/hr/reset.json.ejs +1 -2
  254. package/generators/languages/templates/src/main/webapp/i18n/vi/login.json +1 -1
  255. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  256. package/generators/openapi-client/index.js +13 -10
  257. package/generators/openshift/index.js +10 -11
  258. package/generators/openshift/templates/deployment.yml.ejs +1 -1
  259. package/generators/page/index.js +12 -10
  260. package/generators/server/__snapshots__/generator.spec.mjs.snap +12 -0
  261. package/generators/server/files-sql.js +52 -0
  262. package/generators/server/files.js +15 -0
  263. package/generators/server/index.js +100 -33
  264. package/generators/server/needle-api/needle-server-cache.js +4 -6
  265. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  266. package/generators/server/templates/build.gradle.ejs +17 -1
  267. package/generators/server/templates/gradle.properties.ejs +11 -11
  268. package/generators/server/templates/npmw +1 -1
  269. package/generators/server/templates/npmw.cmd +1 -1
  270. package/generators/server/templates/pom.xml.ejs +128 -9
  271. package/generators/server/templates/settings.gradle.ejs +9 -0
  272. package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
  273. package/generators/server/templates/src/main/docker/app.yml.ejs +2 -1
  274. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +13 -12
  275. package/generators/server/templates/src/main/java/package/aop/logging/LoggingAspect.java.ejs +1 -1
  276. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_cassandra.java.ejs +0 -6
  277. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_sql.java.ejs +2 -2
  278. package/generators/server/templates/src/main/java/package/config/JacksonConfiguration.java.ejs +1 -1
  279. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +0 -2
  280. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +2 -5
  281. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +9 -1
  282. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -1
  283. package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
  284. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -23
  285. package/generators/server/templates/src/main/java/package/security/PersistentTokenRememberMeServices.java.ejs +0 -2
  286. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +29 -4
  287. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +21 -9
  288. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +13 -5
  289. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
  290. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +1 -1
  291. package/generators/server/templates/src/main/resources/config/application.yml.ejs +7 -7
  292. package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
  293. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
  294. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +6 -1
  295. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
  296. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
  297. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +16 -2
  298. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +63 -0
  299. package/generators/spring-controller/index.js +9 -7
  300. package/generators/spring-service/index.js +10 -7
  301. package/generators/upgrade/index.js +4 -5
  302. package/generators/utils.js +2 -2
  303. package/generators/workspaces/index.js +16 -7
  304. package/jdl/jhipster/default-application-options.js +9 -7
  305. package/package.json +23 -23
  306. package/utils/entity.js +21 -4
  307. package/utils/field.js +12 -2
  308. package/utils/multi-step-transform/index.js +8 -8
  309. package/generators/client/templates/react/.npmrc.ejs +0 -1
  310. package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -17
  311. package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
  312. package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
  313. package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -15
@@ -16,46 +16,38 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- package <%= packageName %>.web.rest;
19
+ package <%= entityAbsolutePackage %>.web.rest;
20
20
 
21
21
  <%_
22
22
  const viaService = !serviceNo;
23
-
24
- let manyToManyWithUser = false;
25
- for (const relationship of relationships) {
26
- if (relationship.otherEntityUser && relationship.relationshipManyToMany) {
27
- manyToManyWithUser = true;
28
- break;
29
- }
30
- }
31
23
  _%>
32
24
  <%_ if (!dtoMapstruct || serviceNo) { _%>
33
- import <%= packageName %>.domain.<%= persistClass %>;
25
+ import <%= entityAbsolutePackage %>.domain.<%= persistClass %>;
34
26
  <%_ } _%>
35
- import <%= packageName %>.repository.<%= entityClass %>Repository;
27
+ import <%= entityAbsolutePackage %>.repository.<%= entityClass %>Repository;
36
28
  <%_ if (!serviceNo) { _%>
37
- import <%= packageName %>.service.<%= entityClass %>Service;
29
+ import <%= entityAbsolutePackage %>.service.<%= entityClass %>Service;
38
30
  <%_ } else { _%>
39
31
  <%_ if (isUsingMapsId === true) { _%>
40
- import <%= packageName %>.repository.<%= mapsIdAssoc.otherEntityNameCapitalized %>Repository;
32
+ import <%= entityAbsolutePackage %>.repository.<%= mapsIdAssoc.otherEntityNameCapitalized %>Repository;
41
33
  <%_ } _%>
42
34
  <%_ if (searchEngineElasticsearch) { _%>
43
- import <%= packageName %>.repository.search.<%= entityClass %>SearchRepository;
35
+ import <%= entityAbsolutePackage %>.repository.search.<%= entityClass %>SearchRepository;
44
36
  <%_ } _%>
45
37
  <%_ } _%>
46
38
  <%_ if (saveUserSnapshot) { _%>
47
- import <%= packageName %>.repository.UserRepository;
39
+ import <%= entityAbsolutePackage %>.repository.UserRepository;
48
40
  <%_ } _%>
49
41
  import <%= packageName %>.web.rest.errors.BadRequestAlertException;
50
42
  <%_ if (dtoMapstruct) { _%>
51
- import <%= packageName %>.service.dto.<%= dtoClass %>;
43
+ import <%= entityAbsolutePackage %>.service.dto.<%= dtoClass %>;
52
44
  <%_ if (serviceNo) { _%>
53
- import <%= packageName %>.service.mapper.<%= entityClass %>Mapper;
45
+ import <%= entityAbsolutePackage %>.service.mapper.<%= entityClass %>Mapper;
54
46
  <%_ } _%>
55
47
  <%_ } _%>
56
48
  <%_ if (jpaMetamodelFiltering) { _%>
57
- import <%= packageName %>.service.criteria.<%= entityClass %>Criteria;
58
- import <%= packageName %>.service.<%= entityClass %>QueryService;
49
+ import <%= entityAbsolutePackage %>.service.criteria.<%= entityClass %>Criteria;
50
+ import <%= entityAbsolutePackage %>.service.<%= entityClass %>QueryService;
59
51
  <%_ } _%>
60
52
 
61
53
  import tech.jhipster.web.util.HeaderUtil;
@@ -134,7 +126,7 @@ import static org.elasticsearch.index.query.QueryBuilders.*;
134
126
  <%_ } _%>
135
127
 
136
128
  /**
137
- * REST controller for managing {@link <%= packageName %>.domain.<%= persistClass %>}.
129
+ * REST controller for managing {@link <%= entityAbsolutePackage %>.domain.<%= persistClass %>}.
138
130
  */
139
131
  @RestController
140
132
  @RequestMapping("/api")
@@ -177,17 +169,19 @@ public class <%= entityClass %>Resource {
177
169
  throw new BadRequestAlertException("A new <%= entityInstance %> cannot already have an ID", ENTITY_NAME, "idexists");
178
170
  }
179
171
  <%_ if (saveUserSnapshot) { _%>
180
- <%_ if (manyToManyWithUser) { _%>
181
- if (<%= instanceName %>.getUsers() != null) {
182
- // Save users in case they are new and only exists in gateway
183
- userRepository.saveAll(<%= instanceName %>.getUsers());
184
- }
185
- <%_ } else { _%>
186
- if (<%= instanceName %>.getUser() != null) {
187
- // Save user in case it's new and only exists in gateway
188
- userRepository.save(<%= instanceName %>.getUser());
189
- }
190
- <%_ } _%>
172
+ <% for (const userRelationship of relationships.filter(rel => rel.otherEntity.builtInUser)) { %>
173
+ <%_ if (userRelationship.collection) { _%>
174
+ if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>() != null) {
175
+ // Save users in case they are new and only exist in gateway
176
+ userRepository.saveAll(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>());
177
+ }
178
+ <%_ } else { _%>
179
+ if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>() != null) {
180
+ // Save user in case it's new and only exists in gateway
181
+ userRepository.save(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>());
182
+ }
183
+ <%_ } _%>
184
+ <% } %>
191
185
  <%_ } _%>
192
186
  <%_ for (field of primaryKey.fields.filter(f => f.autoGenerateByService)) { _%>
193
187
  <%= instanceName %>.set<%= field.fieldNameCapitalized %>(UUID.randomUUID());
@@ -245,17 +239,19 @@ public class <%= entityClass %>Resource {
245
239
  <%_ } _%>
246
240
 
247
241
  <%_ if (saveUserSnapshot) { _%>
248
- <%_ if (manyToManyWithUser) { _%>
249
- if (<%= instanceName %>.getUsers() != null) {
250
- // Save users in case they are new and only exists in gateway
251
- userRepository.saveAll(<%= instanceName %>.getUsers());
252
- }
253
- <%_ } else { _%>
254
- if (<%= instanceName %>.getUser() != null) {
255
- // Save user in case it's new and only exists in gateway
256
- userRepository.save(<%= instanceName %>.getUser());
257
- }
258
- <%_ } _%>
242
+ <% for (const userRelationship of relationships.filter(rel => rel.otherEntity.builtInUser)) { %>
243
+ <%_ if (userRelationship.collection) { _%>
244
+ if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>() != null) {
245
+ // Save users in case they are new and only exist in gateway
246
+ userRepository.saveAll(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>());
247
+ }
248
+ <%_ } else { _%>
249
+ if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>() != null) {
250
+ // Save user in case it's new and only exists in gateway
251
+ userRepository.save(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>());
252
+ }
253
+ <%_ } _%>
254
+ <% } %>
259
255
  <%_ } _%>
260
256
  <%- include('/partials/save_template', {asEntity, asDto, viaService: viaService, returnDirectly: false, isUsingMapsId: false, mapsIdAssoc: mapsIdAssoc}); -%>
261
257
  <%_ if (!reactive) { _%>
@@ -308,17 +304,19 @@ public class <%= entityClass %>Resource {
308
304
  <%_ } _%>
309
305
 
310
306
  <%_ if (saveUserSnapshot) { _%>
311
- <%_ if (manyToManyWithUser) { _%>
312
- if (<%= instanceName %>.getUsers() != null) {
313
- // Save users in case they are new and only exists in gateway
314
- userRepository.saveAll(<%= instanceName %>.getUsers());
315
- }
316
- <%_ } else { _%>
317
- if (<%= instanceName %>.getUser() != null) {
318
- // Save user in case it's new and only exists in gateway
319
- userRepository.save(<%= instanceName %>.getUser());
320
- }
321
- <%_ } _%>
307
+ <% for (const userRelationship of relationships.filter(rel => rel.otherEntity.builtInUser)) { %>
308
+ <%_ if (userRelationship.collection) { _%>
309
+ if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>() != null) {
310
+ // Save users in case they are new and only exist in gateway
311
+ userRepository.saveAll(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>());
312
+ }
313
+ <%_ } else { _%>
314
+ if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>() != null) {
315
+ // Save user in case it's new and only exists in gateway
316
+ userRepository.save(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>());
317
+ }
318
+ <%_ } _%>
319
+ <% } %>
322
320
  <%_ } _%>
323
321
 
324
322
  <%- include('../../common/patch_template', {asEntity, asDto, isService: false, viaService: viaService}); -%>
@@ -16,7 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- package <%= packageName %>.domain;
19
+ package <%= entityAbsolutePackage %>.domain;
20
20
 
21
21
  import org.junit.jupiter.api.Test;
22
22
  import static org.assertj.core.api.Assertions.assertThat;
@@ -16,7 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- package <%= packageName %>.repository.search;
19
+ package <%= entityAbsolutePackage %>.repository.search;
20
20
 
21
21
  import org.springframework.boot.test.mock.mockito.MockBean;
22
22
  import org.springframework.context.annotation.Configuration;
@@ -16,7 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- package <%= packageName %>.service.dto;
19
+ package <%= entityAbsolutePackage %>.service.dto;
20
20
 
21
21
  import org.junit.jupiter.api.Test;
22
22
  import static org.assertj.core.api.Assertions.assertThat;
@@ -16,7 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- package <%= packageName %>.service.mapper;
19
+ package <%= entityAbsolutePackage %>.service.mapper;
20
20
 
21
21
  import org.junit.jupiter.api.BeforeEach;
22
22
  import org.junit.jupiter.api.Test;
@@ -16,7 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- package <%= packageName %>.web.rest;
19
+ package <%= entityAbsolutePackage %>.web.rest;
20
20
 
21
21
  <%_
22
22
 
@@ -57,11 +57,14 @@ if (databaseTypeSql && !reactive) {
57
57
  }
58
58
 
59
59
  _%>
60
+ <%_ if (entityAbsolutePackage !== packageName) { _%>
61
+ import <%= packageName %>.web.rest.TestUtil;
62
+ <% } %>
60
63
  <%_ if (databaseTypeCassandra) { _%>
61
64
  import <%= packageName %>.AbstractCassandraTest;
62
65
  <%_ } _%>
63
66
  import <%= packageName %>.IntegrationTest;
64
- import <%= packageName %>.domain.<%= persistClass %>;
67
+ import <%= entityAbsolutePackage %>.domain.<%= persistClass %>;
65
68
  <%_
66
69
  var imported = [];
67
70
  for (relationship of relationships) { // import entities in required relationships
@@ -70,34 +73,34 @@ for (relationship of relationships) { // import entities in required relationshi
70
73
  const isUsingMapsIdL1 = relationship.id;
71
74
  if (imported.indexOf(otherEntityNameCapitalized) === -1) {
72
75
  if ((relationshipValidate !== null && relationshipValidate === true) || jpaMetamodelFiltering || (isUsingMapsIdL1 === true)) { _%>
73
- import <%= packageName %>.domain.<%= asEntity(otherEntityNameCapitalized) %>;
76
+ import <%= entityAbsolutePackage %>.domain.<%= asEntity(otherEntityNameCapitalized) %>;
74
77
  <%_
75
78
  imported.push(otherEntityNameCapitalized);
76
79
  }
77
80
  }
78
81
  } _%>
79
82
  <%_ if (saveUserSnapshot) { _%>
80
- import <%= packageName %>.repository.UserRepository;
83
+ import <%= entityAbsolutePackage %>.repository.UserRepository;
81
84
  <%_ } _%>
82
- import <%= packageName %>.repository.<%= entityClass %>Repository;
85
+ import <%= entityAbsolutePackage %>.repository.<%= entityClass %>Repository;
83
86
  <%_ if (databaseTypeSql && reactive) { _%>
84
87
  import <%= packageName %>.service.EntityManager;
85
88
  <%_ } _%>
86
89
  <%_ if (isUsingMapsId && (!dtoMapstruct && serviceNo)) { _%>
87
- import <%= packageName %>.repository.<%= mapsIdAssoc.otherEntityNameCapitalized %>Repository;
90
+ import <%= entityAbsolutePackage %>.repository.<%= mapsIdAssoc.otherEntityNameCapitalized %>Repository;
88
91
  <%_ } _%>
89
92
  <%_ if (searchEngineElasticsearch) { _%>
90
- import <%= packageName %>.repository.search.<%= entityClass %>SearchRepository;
93
+ import <%= entityAbsolutePackage %>.repository.search.<%= entityClass %>SearchRepository;
91
94
  <%_ } _%>
92
95
  <%_ if (!serviceNo && fieldsContainOwnerManyToMany) { _%>
93
- import <%= packageName %>.service.<%= entityClass %>Service;
96
+ import <%= entityAbsolutePackage %>.service.<%= entityClass %>Service;
94
97
  <%_ } _%>
95
98
  <%_ if (dtoMapstruct) { _%>
96
- import <%= packageName %>.service.dto.<%= dtoClass %>;
97
- import <%= packageName %>.service.mapper.<%= entityClass %>Mapper;
99
+ import <%= entityAbsolutePackage %>.service.dto.<%= dtoClass %>;
100
+ import <%= entityAbsolutePackage %>.service.mapper.<%= entityClass %>Mapper;
98
101
  <%_ } _%>
99
102
  <%_ if (jpaMetamodelFiltering) { _%>
100
- import <%= packageName %>.service.criteria.<%= entityClass %>Criteria;
103
+ import <%= entityAbsolutePackage %>.service.criteria.<%= entityClass %>Criteria;
101
104
  <%_ } _%>
102
105
 
103
106
  <%_ if (databaseTypeSql && reactive) { _%>
@@ -216,7 +219,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
216
219
 
217
220
  <%_ for (const field of fields.filter(field => !field.transient)) {
218
221
  if (field.fieldIsEnum) { _%>
219
- import <%= packageName %>.domain.enumeration.<%= field.fieldType %>;
222
+ import <%= entityAbsolutePackage %>.domain.enumeration.<%= field.fieldType %>;
220
223
  <%_ }
221
224
  } _%>
222
225
  /**
@@ -447,9 +450,9 @@ if (field.fieldTypeString || field.blobContentTypeText) {
447
450
  <%_ } if (searchEngineElasticsearch) { _%>
448
451
 
449
452
  /**
450
- * This repository is mocked in the <%= packageName %>.repository.search test package.
453
+ * This repository is mocked in the <%= entityAbsolutePackage %>.repository.search test package.
451
454
  *
452
- * @see <%= packageName %>.repository.search.<%= entityClass %>SearchRepositoryMockConfiguration
455
+ * @see <%= entityAbsolutePackage %>.repository.search.<%= entityClass %>SearchRepositoryMockConfiguration
453
456
  */
454
457
  @Autowired
455
458
  private <%= entityClass %>SearchRepository mock<%= entityClass %>SearchRepository;
@@ -35,11 +35,11 @@ const { MAVEN, GRADLE } = require('../../jdl/jhipster/build-tool-types');
35
35
 
36
36
  const NO_CACHE_PROVIDER = cacheProviders.NO;
37
37
 
38
- let useBlueprints;
39
38
  module.exports = class extends BaseBlueprintGenerator {
40
- constructor(args, options, features) {
41
- super(args, options, features);
42
- useBlueprints = !this.fromBlueprint && this.instantiateBlueprints(GENERATOR_GAE);
39
+ async _postConstruct() {
40
+ if (!this.fromBlueprint) {
41
+ await this.composeWithBlueprints(GENERATOR_GAE);
42
+ }
43
43
  }
44
44
 
45
45
  _initializing() {
@@ -121,7 +121,7 @@ module.exports = class extends BaseBlueprintGenerator {
121
121
  }
122
122
 
123
123
  get initializing() {
124
- if (useBlueprints) return;
124
+ if (this.delegateToBlueprint) return {};
125
125
  return this._initializing();
126
126
  }
127
127
 
@@ -607,7 +607,7 @@ module.exports = class extends BaseBlueprintGenerator {
607
607
  }
608
608
 
609
609
  get prompting() {
610
- if (useBlueprints) return;
610
+ if (this.delegateToBlueprint) return {};
611
611
  return this._prompting();
612
612
  }
613
613
 
@@ -748,7 +748,7 @@ module.exports = class extends BaseBlueprintGenerator {
748
748
  }
749
749
 
750
750
  get configuring() {
751
- if (useBlueprints) return;
751
+ if (this.delegateToBlueprint) return {};
752
752
  return this._configuring();
753
753
  }
754
754
 
@@ -761,7 +761,7 @@ module.exports = class extends BaseBlueprintGenerator {
761
761
  }
762
762
 
763
763
  get loading() {
764
- if (useBlueprints) return;
764
+ if (this.delegateToBlueprint) return {};
765
765
  return this._loading();
766
766
  }
767
767
 
@@ -831,7 +831,7 @@ module.exports = class extends BaseBlueprintGenerator {
831
831
  }
832
832
 
833
833
  get writing() {
834
- if (useBlueprints) return;
834
+ if (this.delegateToBlueprint) return {};
835
835
  return this._writing();
836
836
  }
837
837
 
@@ -877,7 +877,7 @@ module.exports = class extends BaseBlueprintGenerator {
877
877
  }
878
878
 
879
879
  get end() {
880
- if (useBlueprints) return;
880
+ if (this.delegateToBlueprint) return {};
881
881
  return this._end();
882
882
  }
883
883
 
@@ -51,8 +51,13 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
51
51
  // jhipsterContext is the original generator
52
52
  this.jhipsterContext = this.options.jhipsterContext;
53
53
 
54
- // Fallback to the original generator if the file does not exists in the blueprint.
55
- this.jhipsterTemplatesFolders.push(this.jhipsterTemplatePath());
54
+ try {
55
+ // Fallback to the original generator if the file does not exists in the blueprint.
56
+ this.jhipsterTemplatesFolders.push(this.jhipsterTemplatePath());
57
+ } catch (error) {
58
+ this.warning('Error adding current blueprint templates as alternative for JHipster templates.');
59
+ this.log(error);
60
+ }
56
61
  }
57
62
  }
58
63
 
@@ -224,44 +229,6 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
224
229
  return false;
225
230
  }
226
231
 
227
- /**
228
- * @private
229
- * @deprecated
230
- * Instantiates the blueprint generators, if any.
231
- * @param {string} subGen - sub generator
232
- * @param {any} extraOptions - extra options to pass to blueprint generator
233
- * @return {true} useBlueprints - true if one or more blueprints generators have been constructed; false otherwise
234
- */
235
- instantiateBlueprints(subGen, extraOptions) {
236
- if (this.options.help) {
237
- // Ignore blueprint registered options.
238
- return false;
239
- }
240
- let useBlueprints = false;
241
-
242
- if (!this.configOptions.blueprintConfigured) {
243
- this.configOptions.blueprintConfigured = true;
244
- this._configureBlueprints();
245
- }
246
-
247
- const blueprints = this.jhipsterConfig.blueprints;
248
- if (blueprints && blueprints.length > 0) {
249
- blueprints.forEach(blueprint => {
250
- const blueprintGenerator = this._composeBlueprint(blueprint.name, subGen, extraOptions);
251
- if (blueprintGenerator) {
252
- if (blueprintGenerator.sbsBlueprint) {
253
- // If sbsBlueprint, add templatePath to the original generator templatesFolder.
254
- this.jhipsterTemplatesFolders.unshift(blueprintGenerator.templatePath());
255
- } else {
256
- // If the blueprints does not sets sbsBlueprint property, ignore normal workflow.
257
- useBlueprints = true;
258
- }
259
- }
260
- });
261
- }
262
- return useBlueprints;
263
- }
264
-
265
232
  /**
266
233
  * @private
267
234
  * Composes with blueprint generators, if any.
@@ -353,7 +320,7 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
353
320
  * @param {any} options - options to pass to blueprint generator
354
321
  * @return {Generator|undefined}
355
322
  */
356
- _composeBlueprint(blueprint, subGen, extraOptions = {}) {
323
+ async _composeBlueprint(blueprint, subGen, extraOptions = {}) {
357
324
  blueprint = normalizeBlueprintName(blueprint);
358
325
  if (!this.configOptions.skipChecks && !this.options.skipChecks) {
359
326
  this._checkBlueprint(blueprint);
@@ -362,16 +329,17 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
362
329
  const generatorName = packageNameToNamespace(blueprint);
363
330
  const generatorNamespace = `${generatorName}:${subGen}`;
364
331
  if (!this.env.isPackageRegistered(generatorName)) {
365
- this.env.lookup({ filterPaths: true, packagePatterns: blueprint });
332
+ await this.env.lookup({ filterPaths: true, packagePatterns: blueprint });
366
333
  }
367
- if (!this.env.get(generatorNamespace)) {
334
+ if (!(await this.env.get(generatorNamespace))) {
368
335
  this.debug(
369
- `No blueprint found for blueprint ${chalk.yellow(blueprint)} and ${chalk.yellow(
370
- subGen
336
+ `No blueprint found for blueprint ${chalk.yellow(blueprint)} and ${chalk.yellow(subGen)} with namespace ${chalk.yellow(
337
+ generatorNamespace
371
338
  )} subgenerator: falling back to default generator`
372
339
  );
373
340
  return undefined;
374
341
  }
342
+ this.debug(`Found blueprint ${chalk.yellow(blueprint)} and ${chalk.yellow(subGen)} with namespace ${chalk.yellow(generatorNamespace)}`);
375
343
 
376
344
  const finalOptions = {
377
345
  ...this.options,
@@ -380,7 +348,7 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
380
348
  jhipsterContext: this,
381
349
  };
382
350
 
383
- const blueprintGenerator = this.composeWith(generatorNamespace, finalOptions, true);
351
+ const blueprintGenerator = await this.composeWith(generatorNamespace, finalOptions, true);
384
352
  if (blueprintGenerator instanceof Error) {
385
353
  throw blueprintGenerator;
386
354
  }
@@ -29,16 +29,13 @@ const https = require('https');
29
29
  const { reproducibleConfigForTests: projectNameReproducibleConfigForTests } = require('./project-name/config.cjs');
30
30
  const packagejs = require('../package.json');
31
31
  const jhipsterUtils = require('./utils');
32
- const constants = require('./generator-constants');
32
+ const { JAVA_COMPATIBLE_VERSIONS, SERVER_TEST_SRC_DIR, SUPPORTED_CLIENT_FRAMEWORKS } = require('./generator-constants');
33
33
  const { languageToJavaLanguage } = require('./utils');
34
34
  const JSONToJDLEntityConverter = require('../jdl/converters/json-to-jdl-entity-converter');
35
35
  const JSONToJDLOptionConverter = require('../jdl/converters/json-to-jdl-option-converter');
36
36
  const { stringify } = require('../utils');
37
37
 
38
- const SERVER_TEST_SRC_DIR = constants.SERVER_TEST_SRC_DIR;
39
- const ANGULAR = constants.SUPPORTED_CLIENT_FRAMEWORKS.ANGULAR;
40
- const REACT = constants.SUPPORTED_CLIENT_FRAMEWORKS.REACT;
41
- const VUE = constants.SUPPORTED_CLIENT_FRAMEWORKS.VUE;
38
+ const { ANGULAR, REACT, VUE } = SUPPORTED_CLIENT_FRAMEWORKS;
42
39
  const dbTypes = require('../jdl/jhipster/field-types');
43
40
  const { REQUIRED } = require('../jdl/jhipster/validations');
44
41
 
@@ -809,17 +806,12 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
809
806
  this.warning('Java is not found on your computer.');
810
807
  } else {
811
808
  const javaVersion = stderr.match(/(?:java|openjdk) version "(.*)"/)[1];
812
- if (
813
- !javaVersion.match(new RegExp('16')) &&
814
- !javaVersion.match(new RegExp('15')) &&
815
- !javaVersion.match(new RegExp('14')) &&
816
- !javaVersion.match(new RegExp('13')) &&
817
- !javaVersion.match(new RegExp('12')) &&
818
- !javaVersion.match(new RegExp('11')) &&
819
- !javaVersion.match(new RegExp('1.8'.replace('.', '\\.')))
820
- ) {
809
+ if (!javaVersion.match(new RegExp(`(${JAVA_COMPATIBLE_VERSIONS.map(ver => `^${ver}`).join('|')})`))) {
810
+ const [latest, ...others] = JAVA_COMPATIBLE_VERSIONS.reverse();
821
811
  this.warning(
822
- `Java 8, 11, 12, 13, 14, 15 or 16 are not found on your computer. Your Java version is: ${chalk.yellow(javaVersion)}`
812
+ `Java ${others.reverse().join(', ')} or ${latest} are not found on your computer. Your Java version is: ${chalk.yellow(
813
+ javaVersion
814
+ )}`
823
815
  );
824
816
  }
825
817
  }
@@ -995,8 +987,9 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
995
987
  const fileName = _.kebabCase(field.fieldType);
996
988
  if (field.fieldIsEnum && (!uniqueEnums[field.fieldType] || (uniqueEnums[field.fieldType] && field.fieldValues.length !== 0))) {
997
989
  const importType = `${field.fieldType}`;
990
+ const basePath = clientFramework === VUE ? '@' : 'app';
998
991
  const modelPath = clientFramework === ANGULAR ? 'entities' : 'shared/model';
999
- const importPath = `app/${modelPath}/enumerations/${fileName}.model`;
992
+ const importPath = `${basePath}/${modelPath}/enumerations/${fileName}.model`;
1000
993
  uniqueEnums[field.fieldType] = field.fieldType;
1001
994
  typeImports.set(importType, importPath);
1002
995
  }
@@ -1146,13 +1139,40 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
1146
1139
  * @param {any} primaryKey - primary key definition.
1147
1140
  * @param {number} [index] - index of the primary key sample, pass undefined for a random key.
1148
1141
  */
1149
- generateTestEntityPrimaryKey(primaryKey, index = 'random') {
1142
+ generateTestEntityPrimaryKey(primaryKey, index) {
1143
+ return JSON.stringify(
1144
+ this.generateTestEntity(
1145
+ primaryKey.fields.map(f => f.reference),
1146
+ index
1147
+ )
1148
+ );
1149
+ }
1150
+
1151
+ /**
1152
+ * Generate a test entity, according to the type
1153
+ *
1154
+ * @param {any} primaryKey - primary key definition.
1155
+ * @param {number} [index] - index of the primary key sample, pass undefined for a random key.
1156
+ */
1157
+ generateTestEntity(references, index = 'random') {
1150
1158
  const random = index === 'random';
1151
- const entries = primaryKey.ids.map(id => {
1152
- const value = random ? id.field.generateFakeData('raw') : this.generateTestEntityId(id.field.fieldType, index, false);
1153
- return [id.name, value];
1154
- });
1155
- return JSON.stringify(Object.fromEntries(entries));
1159
+ const entries = references
1160
+ .map(reference => {
1161
+ if (random && reference.field) {
1162
+ const field = reference.field;
1163
+ const fakeData = field.generateFakeData('json-serializable');
1164
+ if (reference.field.fieldWithContentType) {
1165
+ return [
1166
+ [reference.name, fakeData],
1167
+ [field.contentTypeFieldName, 'unknown'],
1168
+ ];
1169
+ }
1170
+ return [[reference.name, fakeData]];
1171
+ }
1172
+ return [[reference.name, this.generateTestEntityId(reference.type, index, false)]];
1173
+ })
1174
+ .flat();
1175
+ return Object.fromEntries(entries);
1156
1176
  }
1157
1177
 
1158
1178
  /**