generator-jhipster 7.6.0 → 7.8.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 (432) hide show
  1. package/README.md +1 -4
  2. package/cli/commands.js +3 -0
  3. package/cli/environment-builder.js +53 -18
  4. package/cli/import-jdl.js +3 -0
  5. package/cli/index.mjs +20 -0
  6. package/cli/jhipster.js +19 -11
  7. package/cli/program.js +94 -38
  8. package/generators/app/esm.mjs +1 -3
  9. package/generators/app/index.js +11 -16
  10. package/generators/aws/esm.mjs +1 -3
  11. package/generators/azure-app-service/esm.mjs +1 -3
  12. package/generators/azure-spring-cloud/esm.mjs +1 -3
  13. package/generators/base/esm.mjs +1 -3
  14. package/generators/bootstrap/esm.mjs +1 -3
  15. package/generators/bootstrap/index.js +36 -86
  16. package/generators/bootstrap-application/esm.mjs +19 -0
  17. package/generators/bootstrap-application/generator.mjs +353 -0
  18. package/generators/bootstrap-application/index.mjs +19 -0
  19. package/generators/ci-cd/esm.mjs +1 -3
  20. package/generators/ci-cd/index.js +1 -1
  21. package/generators/ci-cd/prompts.js +1 -1
  22. package/generators/ci-cd/templates/github-actions.yml.ejs +6 -6
  23. package/generators/client/esm.mjs +5 -3
  24. package/generators/client/files-angular.js +9 -0
  25. package/generators/client/files-common.js +9 -9
  26. package/generators/client/files-react.js +25 -2
  27. package/generators/client/files-vue.js +7 -6
  28. package/generators/client/index.js +3 -2
  29. package/generators/client/needle-api/needle-client-react.js +11 -8
  30. package/generators/client/templates/angular/angular.json.ejs +2 -10
  31. package/generators/client/templates/angular/jest.conf.js.ejs +1 -1
  32. package/generators/client/templates/angular/package.json +29 -27
  33. package/generators/client/templates/angular/package.json.ejs +6 -2
  34. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +1 -1
  35. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +7 -7
  36. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +5 -5
  37. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +3 -3
  38. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +10 -10
  39. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +8 -8
  40. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +2 -2
  41. package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +5 -5
  42. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +1 -1
  43. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +2 -2
  44. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
  45. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +6 -6
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +51 -49
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +16 -16
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +32 -32
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +4 -4
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +18 -18
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +12 -12
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +4 -4
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +4 -4
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +8 -8
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +1 -1
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +4 -4
  58. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +5 -5
  59. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +1 -1
  60. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +11 -11
  61. package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +1 -1
  62. package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
  63. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +4 -2
  64. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +0 -6
  65. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +0 -6
  66. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +3 -3
  67. package/generators/client/templates/angular/src/main/webapp/content/scss/_bootstrap-variables.scss.ejs +5 -5
  68. package/generators/client/templates/angular/src/main/webapp/content/scss/global.scss.ejs +29 -0
  69. package/generators/client/templates/angular/src/main/webapp/content/scss/vendor.scss.ejs +0 -4
  70. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +31 -1
  71. package/generators/client/templates/common/package.json +7 -6
  72. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +1 -7
  73. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +2 -3
  74. package/generators/client/templates/react/.eslintrc.json.ejs +1 -1
  75. package/generators/client/templates/react/jest.conf.js.ejs +1 -1
  76. package/generators/client/templates/react/package.json +44 -45
  77. package/generators/client/templates/react/package.json.ejs +1 -0
  78. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +1 -1
  79. package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +53 -6
  80. package/generators/client/templates/react/src/main/webapp/app/config/translation-middleware.ts.ejs +58 -0
  81. package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +45 -0
  82. package/generators/client/templates/react/src/main/webapp/app/entities/reducers.ts.ejs +25 -0
  83. package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +47 -0
  84. package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +7 -7
  85. package/generators/client/templates/react/src/main/webapp/app/main.tsx.ejs +19 -0
  86. package/generators/client/templates/react/src/main/webapp/app/modules/administration/logs/logs.tsx.ejs +1 -1
  87. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +2 -1
  88. package/generators/client/templates/react/src/main/webapp/app/modules/login/login-modal.tsx.ejs +5 -1
  89. package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +24 -7
  90. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +15 -0
  91. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +34 -6
  92. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +9 -2
  93. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +9 -3
  94. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +21 -5
  95. package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +15 -0
  96. package/generators/client/templates/react/src/main/webapp/microfrontends/entities-menu.tsx.ejs +3 -0
  97. package/generators/client/templates/react/src/main/webapp/microfrontends/entities-routes.tsx.ejs +3 -0
  98. package/generators/client/templates/react/tsconfig.json.ejs +3 -3
  99. package/generators/client/templates/react/tsconfig.test.json.ejs +9 -1
  100. package/generators/client/templates/react/webpack/webpack.common.js.ejs +6 -13
  101. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +7 -8
  102. package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +99 -0
  103. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +31 -21
  104. package/generators/client/templates/vue/package.json +30 -31
  105. package/generators/client/templates/vue/package.json.ejs +1 -1
  106. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +4 -3
  107. package/generators/client/templates/vue/src/main/webapp/app/entities/user/user.service.ts.ejs +0 -0
  108. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +29 -1
  109. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +2 -2
  110. package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +0 -4
  111. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +1 -1
  112. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +2 -2
  113. package/generators/client/templates/vue/tsconfig.json.ejs +0 -3
  114. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +6 -2
  115. package/generators/cloudfoundry/esm.mjs +1 -3
  116. package/generators/common/esm.mjs +2 -3
  117. package/generators/common/files.js +1 -2
  118. package/generators/common/index.js +6 -0
  119. package/generators/common/templates/.husky/{pre-commit → pre-commit.ejs} +4 -0
  120. package/generators/common/templates/README.md.jhi.ejs +3 -1
  121. package/generators/common/templates/package.json +4 -4
  122. package/generators/common/templates/sonar-project.properties.ejs +1 -1
  123. package/generators/cypress/esm.mjs +2 -3
  124. package/generators/cypress/files.js +2 -1
  125. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +18 -14
  126. package/generators/database-changelog/esm.mjs +1 -3
  127. package/generators/database-changelog/index.js +1 -1
  128. package/generators/database-changelog-liquibase/esm.mjs +2 -3
  129. package/generators/docker-compose/esm.mjs +1 -3
  130. package/generators/docker-compose/index.js +9 -5
  131. package/generators/entities/esm.mjs +1 -3
  132. package/generators/entities/index.js +2 -2
  133. package/generators/entities-client/esm.mjs +1 -3
  134. package/generators/entity/esm.mjs +1 -3
  135. package/generators/entity/index.js +39 -28
  136. package/generators/entity/prompts.js +4 -1
  137. package/generators/entity-client/esm.mjs +2 -3
  138. package/generators/entity-client/index.js +8 -0
  139. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +1 -1
  140. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +2 -2
  141. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +20 -21
  142. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
  143. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +14 -16
  144. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +3 -3
  145. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +2 -1
  146. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +3 -3
  147. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +5 -4
  148. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-reducer.spec.ts.ejs +1 -1
  149. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +20 -19
  150. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +2 -2
  151. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +21 -20
  152. package/generators/entity-client/templates/react/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
  153. package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
  154. package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
  155. package/generators/entity-i18n/esm.mjs +2 -3
  156. package/generators/entity-i18n/templates/i18n/entity_fr.json.ejs +1 -1
  157. package/generators/entity-server/esm.mjs +2 -3
  158. package/generators/entity-server/files-couchbase.js +23 -2
  159. package/generators/entity-server/files.js +40 -6
  160. package/generators/entity-server/index.js +27 -2
  161. package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +11 -13
  162. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +30 -43
  163. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +5 -6
  164. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.n1ql.ejs +5 -0
  165. package/generators/entity-server/templates/partials/it_patch_update.partial.java.ejs +2 -2
  166. package/generators/entity-server/templates/partials/save_template.ejs +1 -1
  167. package/generators/entity-server/templates/partials/update_template.ejs +77 -0
  168. package/generators/entity-server/templates/reactive/partials/save_template.ejs +1 -1
  169. package/generators/entity-server/templates/reactive/partials/update_template.ejs +41 -0
  170. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +5 -5
  171. package/generators/entity-server/templates/src/main/java/package/common/get_template.ejs +1 -1
  172. package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +17 -8
  173. package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +5 -5
  174. package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +1 -1
  175. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
  176. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +4 -3
  177. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_lifecycle_events.ejs +31 -0
  178. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_persistable.ejs +54 -0
  179. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +1 -1
  180. package/generators/entity-server/templates/src/main/java/package/domain/EntityCallback.java.ejs +43 -0
  181. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +36 -23
  182. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +24 -28
  183. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +37 -0
  184. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +91 -0
  185. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +17 -25
  186. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +2 -2
  187. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
  188. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +12 -27
  189. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +10 -2
  190. package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +8 -6
  191. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +21 -5
  192. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +61 -90
  193. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +6 -4
  194. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +33 -20
  195. package/generators/export-jdl/esm.mjs +1 -3
  196. package/generators/gae/esm.mjs +1 -3
  197. package/generators/generate-blueprint/constants.mjs +146 -0
  198. package/generators/generate-blueprint/esm.mjs +19 -0
  199. package/generators/generate-blueprint/files.mjs +81 -0
  200. package/generators/generate-blueprint/generator.mjs +363 -0
  201. package/generators/generate-blueprint/index.mjs +20 -0
  202. package/generators/generate-blueprint/templates/.eslintrc.json.ejs +41 -0
  203. package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +32 -0
  204. package/generators/generate-blueprint/templates/.mocharc.cjs.ejs +29 -0
  205. package/generators/{server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs → generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs} +4 -7
  206. package/generators/generate-blueprint/templates/README.md.ejs +75 -0
  207. package/generators/generate-blueprint/templates/cli/cli.mjs.ejs +35 -0
  208. package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +25 -0
  209. package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +98 -0
  210. package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +42 -0
  211. package/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +19 -0
  212. package/generators/generate-blueprint/templates/generators/generator/templates/template-file.ejs +0 -0
  213. package/generators/generate-blueprint/templates/test/utils.mjs.ejs +17 -0
  214. package/generators/generator-base-blueprint.js +29 -0
  215. package/generators/generator-base-docker.js +1 -0
  216. package/generators/generator-base-entities.cjs +368 -0
  217. package/generators/generator-base-private.js +1 -1
  218. package/generators/generator-base.js +157 -23
  219. package/generators/generator-constants.js +22 -20
  220. package/generators/generator-list.js +2 -0
  221. package/generators/generator-transforms.js +0 -1
  222. package/generators/gradle/constants.cjs +1 -1
  223. package/generators/gradle/esm.mjs +19 -0
  224. package/generators/heroku/esm.mjs +1 -3
  225. package/generators/info/esm.mjs +1 -3
  226. package/generators/init/esm.mjs +19 -0
  227. package/generators/init/files.cjs +9 -3
  228. package/generators/init/index.cjs +5 -0
  229. package/generators/init/templates/.gitignore.jhi.ejs +5 -0
  230. package/generators/init/templates/{.lintstagedrc.js.ejs → .lintstagedrc.cjs.ejs} +0 -0
  231. package/generators/java/esm.mjs +19 -0
  232. package/generators/java/index.cjs +58 -2
  233. package/generators/kubernetes/esm.mjs +1 -3
  234. package/generators/kubernetes-helm/esm.mjs +1 -3
  235. package/generators/kubernetes-knative/esm.mjs +1 -3
  236. package/generators/languages/esm.mjs +2 -3
  237. package/generators/languages/templates/src/test/resources/i18n/messages_fr.properties.ejs +4 -1
  238. package/generators/maven/esm.mjs +19 -0
  239. package/generators/maven/files.cjs +0 -1
  240. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  241. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
  242. package/generators/maven/templates/mvnw +13 -7
  243. package/generators/maven/templates/mvnw.cmd +19 -13
  244. package/generators/maven/templates/pom.xml.jhi.ejs +1 -1
  245. package/generators/openapi-client/esm.mjs +1 -3
  246. package/generators/openapi-client/index.js +11 -4
  247. package/generators/openshift/esm.mjs +1 -3
  248. package/generators/page/esm.mjs +1 -3
  249. package/generators/project-name/esm.mjs +19 -0
  250. package/generators/server/cleanup.js +19 -3
  251. package/generators/server/esm.mjs +2 -2
  252. package/generators/server/files-couchbase.js +28 -31
  253. package/generators/server/files.js +115 -18
  254. package/generators/server/index.js +23 -17
  255. package/generators/server/needle-api/needle-server-gradle.js +38 -0
  256. package/generators/server/needle-api/needle-server-maven.js +1 -1
  257. package/generators/server/templates/.mvn/jvm.config +1 -0
  258. package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  259. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
  260. package/generators/server/templates/build.gradle.ejs +7 -5
  261. package/generators/server/templates/couchbase/src/main/java/package/repository/CouchbaseSearchRepository.java.ejs +91 -0
  262. package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +47 -45
  263. package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +2 -2
  264. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_ADMIN.json.ejs +3 -0
  265. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_USER.json.ejs +3 -0
  266. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__admin.json.ejs → user/admin.json.ejs} +2 -2
  267. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__user.json.ejs → user/user.json.ejs} +2 -2
  268. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.2__create_indexes.n1ql.ejs +34 -0
  269. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_collections.n1ql.ejs +8 -0
  270. package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +4 -3
  271. package/generators/server/templates/couchbase/src/test/java/package/repository/{JHipsterCouchbaseRepositoryTest.java.ejs → CouchbaseSearchRepositoryTest.java.ejs} +2 -2
  272. package/generators/server/templates/devcontainer/Dockerfile.ejs +25 -0
  273. package/generators/server/templates/devcontainer/devcontainer.json.ejs +64 -0
  274. package/generators/server/templates/gradle/profile_prod.gradle.ejs +4 -0
  275. package/generators/server/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
  276. package/generators/server/templates/gradle.properties.ejs +8 -8
  277. package/generators/server/templates/mvnw +13 -7
  278. package/generators/server/templates/mvnw.cmd +19 -13
  279. package/generators/server/templates/npmw +14 -5
  280. package/generators/server/templates/pom.xml.ejs +65 -58
  281. package/generators/server/templates/settings.gradle.ejs +6 -4
  282. package/generators/server/templates/src/main/docker/app.yml.ejs +4 -6
  283. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -1
  284. package/generators/server/templates/src/main/docker/mysql.yml.ejs +1 -0
  285. package/generators/server/templates/src/main/docker/zipkin.yml.ejs +25 -0
  286. package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +6 -0
  287. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +26 -16
  288. package/generators/{client/templates/react/src/main/webapp/app/entities/index.tsx.ejs → server/templates/src/main/java/package/config/KafkaSseConsumer.java.ejs} +8 -14
  289. package/generators/server/templates/src/main/java/package/config/KafkaSseProducer.java.ejs +30 -0
  290. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration_reactive.java.ejs +1 -1
  291. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +12 -10
  292. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +2 -1
  293. package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +11 -0
  294. package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +6 -6
  295. package/generators/server/templates/src/main/java/package/domain/User.java.ejs +9 -7
  296. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +1 -11
  297. package/generators/server/templates/src/main/java/package/repository/EntityManager.java.ejs +48 -38
  298. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +48 -72
  299. package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +1 -1
  300. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +1 -1
  301. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +1 -1
  302. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +8 -6
  303. package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +0 -1
  304. package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +1 -1
  305. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +60 -108
  306. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource_reactive.java.ejs +74 -0
  307. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -1
  308. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
  309. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +8 -0
  310. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +6 -0
  311. package/generators/server/templates/src/main/resources/config/application.yml.ejs +28 -22
  312. package/generators/server/templates/src/test/java/package/CassandraKeyspaceIT.java.ejs +3 -4
  313. package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +12 -4
  314. package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +18 -15
  315. package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +122 -0
  316. package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +11 -0
  317. package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +11 -0
  318. package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +11 -0
  319. package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +2 -0
  320. package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +38 -0
  321. package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +67 -0
  322. package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +114 -0
  323. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +3 -10
  324. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/StepDefs.java.ejs +8 -0
  325. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +17 -3
  326. package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +1 -4
  327. package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest_reactive.java.ejs +1 -1
  328. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +5 -5
  329. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
  330. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +2 -4
  331. package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +1 -4
  332. package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
  333. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +15 -8
  334. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +1 -4
  335. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +1 -4
  336. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +52 -123
  337. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT_reactive.java.ejs +99 -0
  338. package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +7 -10
  339. package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +1 -6
  340. package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +1 -4
  341. package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +42 -47
  342. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +1 -4
  343. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +2 -5
  344. package/generators/server/templates/src/test/resources/META-INF/spring.factories.ejs +1 -1
  345. package/generators/server/templates/src/test/resources/config/application.yml.ejs +21 -20
  346. package/generators/server/templates/src/test/resources/testcontainers.properties.ejs +1 -0
  347. package/generators/spring-boot/esm.mjs +19 -0
  348. package/generators/spring-controller/esm.mjs +1 -3
  349. package/generators/spring-service/esm.mjs +1 -3
  350. package/generators/upgrade/esm.mjs +1 -3
  351. package/generators/upgrade-config/esm.mjs +1 -3
  352. package/generators/workspaces/esm.mjs +1 -3
  353. package/generators/workspaces/index.js +2 -1
  354. package/lib/constants/logo.cjs +30 -0
  355. package/lib/constants/priorities.cjs +216 -2
  356. package/lib/constants/priorities.mjs +29 -1
  357. package/lib/index.mjs +6 -0
  358. package/lib/support/mixin.cjs +5 -1
  359. package/lib/support/shared-data.cjs +34 -1
  360. package/package.json +33 -29
  361. package/utils/entity.js +21 -2
  362. package/utils/faker.js +3 -3
  363. package/utils/field.js +69 -52
  364. package/utils/relationship.js +15 -4
  365. package/utils/user.js +109 -0
  366. package/generators/app/generator.spec.mjs +0 -47
  367. package/generators/aws/generator.spec.mjs +0 -47
  368. package/generators/azure-app-service/generator.spec.mjs +0 -47
  369. package/generators/azure-spring-cloud/generator.spec.mjs +0 -47
  370. package/generators/base/generator.spec.mjs +0 -44
  371. package/generators/bootstrap/generator.spec.mjs +0 -44
  372. package/generators/ci-cd/generator.spec.mjs +0 -47
  373. package/generators/client/__workflow/devserver-angular.json +0 -13
  374. package/generators/client/__workflow/devserver-react.json +0 -13
  375. package/generators/client/__workflow/devserver-vue.json +0 -13
  376. package/generators/client/generator.spec.mjs +0 -47
  377. package/generators/cloudfoundry/generator.spec.mjs +0 -47
  378. package/generators/common/generator.spec.mjs +0 -47
  379. package/generators/cypress/generator.spec.mjs +0 -47
  380. package/generators/database-changelog/generator.spec.mjs +0 -47
  381. package/generators/database-changelog-liquibase/generator.spec.mjs +0 -47
  382. package/generators/docker-compose/generator.spec.mjs +0 -44
  383. package/generators/entities/generator.spec.mjs +0 -47
  384. package/generators/entities-client/generator.spec.mjs +0 -47
  385. package/generators/entity/generator.spec.mjs +0 -47
  386. package/generators/entity-client/generator.spec.mjs +0 -47
  387. package/generators/entity-i18n/generator.spec.mjs +0 -47
  388. package/generators/entity-server/generator.spec.mjs +0 -47
  389. package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +0 -24
  390. package/generators/export-jdl/generator.spec.mjs +0 -44
  391. package/generators/gae/generator.spec.mjs +0 -47
  392. package/generators/gradle/__snapshots__/generator.spec.cjs.snap +0 -59
  393. package/generators/gradle/generator.spec.cjs +0 -71
  394. package/generators/heroku/generator.spec.mjs +0 -47
  395. package/generators/info/generator.spec.mjs +0 -44
  396. package/generators/init/__snapshots__/generator.spec.cjs.snap +0 -65
  397. package/generators/init/generator.spec.cjs +0 -112
  398. package/generators/java/__snapshots__/generator.spec.cjs.snap +0 -118
  399. package/generators/java/generator.spec.cjs +0 -87
  400. package/generators/kubernetes/generator.spec.mjs +0 -44
  401. package/generators/kubernetes-helm/generator.spec.mjs +0 -44
  402. package/generators/kubernetes-knative/generator.spec.mjs +0 -44
  403. package/generators/languages/generator.spec.mjs +0 -47
  404. package/generators/maven/__snapshots__/generator.spec.cjs.snap +0 -53
  405. package/generators/maven/generator.spec.cjs +0 -78
  406. package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
  407. package/generators/openapi-client/generator.spec.mjs +0 -47
  408. package/generators/openshift/generator.spec.mjs +0 -44
  409. package/generators/page/generator.spec.mjs +0 -47
  410. package/generators/project-name/generator.spec.cjs +0 -43
  411. package/generators/server/__snapshots__/generator.spec.mjs.snap +0 -1931
  412. package/generators/server/generator.spec.mjs +0 -52
  413. package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
  414. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +0 -83
  415. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +0 -40
  416. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +0 -44
  417. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +0 -162
  418. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +0 -104
  419. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -3
  420. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -3
  421. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +0 -19
  422. package/generators/server/templates/src/main/java/package/config/KafkaProperties.java.ejs +0 -68
  423. package/generators/server/templates/src/test/java/package/AbstractCassandraTest.java.ejs +0 -125
  424. package/generators/server/templates/src/test/java/package/MongoDbTestContainerExtension.java.ejs +0 -37
  425. package/generators/server/templates/src/test/java/package/TestContainersSpringContextCustomizerFactory.java.ejs +0 -24
  426. package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +0 -80
  427. package/generators/spring-boot/generator.spec.cjs +0 -64
  428. package/generators/spring-controller/generator.spec.mjs +0 -47
  429. package/generators/spring-service/generator.spec.mjs +0 -47
  430. package/generators/upgrade/generator.spec.mjs +0 -44
  431. package/generators/upgrade-config/generator.spec.mjs +0 -44
  432. package/generators/workspaces/generator.spec.mjs +0 -47
@@ -37,7 +37,7 @@ let clientPackageMngrName = 'Npm';
37
37
  let clientPackageMngrAddGlobal = 'install -g';
38
38
  let clientPackageMngrAdd = 'install --save --save-exact';
39
39
  let clientPackageMngrAddDev = 'install --save-dev --save-exact';
40
- let DOCUMENTATION_ARCHIVE_URL = `${DOCUMENTATION_URL + DOCUMENTATION_ARCHIVE_PATH}v${jhipsterVersion}`;
40
+ let DOCUMENTATION_ARCHIVE_URL = `${DOCUMENTATION_URL}`;
41
41
  _%>
42
42
  This application was generated using JHipster <%= jhipsterVersion %>, you can find documentation and help at [<%= DOCUMENTATION_ARCHIVE_URL %>](<%= DOCUMENTATION_ARCHIVE_URL %>).
43
43
  <%_ if (applicationTypeGateway || applicationTypeMicroservice) { _%>
@@ -61,8 +61,10 @@ JHipster configuration is stored in this file at `generator-jhipster` key. You m
61
61
  - `.yo-resolve` (optional) - Yeoman conflict resolver
62
62
  Allows to use a specific action when conflicts are found skipping prompts for files that matches a pattern. Each line should match `[pattern] [action]` with pattern been a [Minimatch](https://github.com/isaacs/minimatch#minimatch) pattern and action been one of skip (default if ommited) or force. Lines starting with `#` are considered comments and are ignored.
63
63
  - `.jhipster/*.json` - JHipster entity configuration files
64
+ <%_ if (!skipClient) { %>
64
65
  - `npmw` - wrapper to use locally installed npm.
65
66
  JHipster installs Node and npm locally using the build tool by default. This wrapper makes sure npm is installed locally and uses it avoiding some differences different versions can cause. By using `./npmw` instead of the traditional `npm` you can configure a Node-less environment to develop or test your application.
67
+ <%_ } _%>
66
68
  - `/src/main/docker` - Docker configurations for the application and services that the application depends on
67
69
 
68
70
  ## Development
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "devDependencies": {
3
- "concurrently": "7.0.0",
3
+ "concurrently": "7.1.0",
4
4
  "husky": "7.0.4",
5
- "lint-staged": "12.2.2",
6
- "npm": "8.3.2",
7
- "wait-on": "6.0.0"
5
+ "lint-staged": "12.3.7",
6
+ "npm": "8.6.0",
7
+ "wait-on": "6.0.1"
8
8
  }
9
9
  }
@@ -45,7 +45,7 @@ sonar.issue.ignore.multicriteria.UndocumentedApi.ruleKey=squid:UndocumentedApi
45
45
  <%_ if (authenticationTypeJwt) { _%>
46
46
  # Rule https://rules.sonarsource.com/java/RSPEC-4502 is ignored, as for JWT tokens we are not subject to CSRF attack
47
47
  sonar.issue.ignore.multicriteria.S4502.resourceKey=<%= MAIN_DIR %>java/**/*
48
- sonar.issue.ignore.multicriteria.S4502.ruleKey=squid:S4502
48
+ sonar.issue.ignore.multicriteria.S4502.ruleKey=java:S4502
49
49
  <%_ } _%>
50
50
  # Rule https://rules.sonarsource.com/java/RSPEC-4684
51
51
  sonar.issue.ignore.multicriteria.S4684.resourceKey=<%= MAIN_DIR %>java/**/*
@@ -16,6 +16,5 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import generator from './index.js';
20
-
21
- export default generator;
19
+ export { default } from './index.js';
20
+ export { files } from './files.js';
@@ -22,7 +22,7 @@
22
22
  * For any other config an object { file:.., method:.., template:.. } can be used
23
23
  */
24
24
 
25
- const faker = require('faker');
25
+ const faker = require('@faker-js/faker');
26
26
 
27
27
  const constants = require('../generator-constants');
28
28
 
@@ -79,6 +79,7 @@ const cypressFiles = {
79
79
  };
80
80
  module.exports = {
81
81
  writeFiles,
82
+ files: cypressFiles,
82
83
  };
83
84
 
84
85
  function writeFiles() {
@@ -66,20 +66,24 @@ describe('/account/settings', () => {
66
66
  cy.wait('@settingsSave').then(({ response }) => expect(response.statusCode).to.equal(200));
67
67
  });
68
68
 
69
- it("should not be able to change 'user' settings if email already exists", () => {
70
- cy.login(adminUsername, adminPassword);
71
- cy.visit('');
72
- cy.clickOnSettingsItem();
73
- cy.get(emailSettingsSelector).clear().type('admin@localhost.fr');
74
- cy.get(submitSettingsSelector).click();
69
+ describe('if there is another user with an email', () => {
70
+ before(() => {
71
+ cy.login(adminUsername, adminPassword);
72
+ cy.visit('/account/settings');
73
+ cy.get(emailSettingsSelector).clear().type('admin@localhost.fr');
74
+ cy.intercept({
75
+ method: 'POST',
76
+ url: '/api/account',
77
+ times: 1,
78
+ }).as('settingsSave');
79
+ cy.get(submitSettingsSelector).click();
80
+ cy.wait('@settingsSave');
81
+ });
75
82
 
76
- cy.login(username, password);
77
- cy.visit('');
78
- cy.clickOnSettingsItem();
79
-
80
- cy.intercept('POST', '/api/account').as('settingsNotSave');
81
- cy.get(emailSettingsSelector).clear().type('admin@localhost.fr');
82
- cy.get(submitSettingsSelector).click();
83
- cy.wait('@settingsNotSave').then(({ response }) => expect(response.statusCode).to.equal(400));
83
+ it("should not be able to change 'user' email to same value", () => {
84
+ cy.get(emailSettingsSelector).clear().type('admin@localhost.fr');
85
+ cy.get(submitSettingsSelector).click();
86
+ cy.wait('@settingsSave').then(({ response }) => expect(response.statusCode).to.equal(400));
87
+ });
84
88
  });
85
89
  });
@@ -16,6 +16,4 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import generator from './index.js';
20
-
21
- export default generator;
19
+ export { default } from './index.js';
@@ -98,7 +98,7 @@ module.exports = class extends BaseBlueprintGenerator {
98
98
  /* ======================================================================== */
99
99
 
100
100
  _composeWithIncrementalChangelogProvider(databaseChangelog) {
101
- const skipWriting = !this.options.entities.includes(databaseChangelog.entityName);
101
+ const skipWriting = this.options.skipWriting || !this.options.entities.includes(databaseChangelog.entityName);
102
102
  return this.composeWithJHipster(GENERATOR_DATABASE_CHANGELOG_LIQUIBASE, {
103
103
  databaseChangelog,
104
104
  skipWriting,
@@ -16,6 +16,5 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import generator from './index.js';
20
-
21
- export default generator;
19
+ export { default } from './index.js';
20
+ export { addEntityFiles, updateEntityFiles, updateConstraintsFiles, updateMigrateFiles, fakeFiles } from './files.js';
@@ -16,6 +16,4 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import generator from './index.js';
20
-
21
- export default generator;
19
+ export { default } from './index.js';
@@ -20,6 +20,7 @@ const chalk = require('chalk');
20
20
  const shelljs = require('shelljs');
21
21
  const jsyaml = require('js-yaml');
22
22
  const pathjs = require('path');
23
+ const normalize = require('normalize-path');
23
24
 
24
25
  const BaseDockerGenerator = require('../generator-base-docker');
25
26
  const { INITIALIZING_PRIORITY, PROMPTING_PRIORITY, CONFIGURING_PRIORITY, LOADING_PRIORITY, PREPARING_PRIORITY, WRITING_PRIORITY } =
@@ -29,7 +30,7 @@ const writeFiles = require('./files').writeFiles;
29
30
  const { GATEWAY, MONOLITH } = require('../../jdl/jhipster/application-types');
30
31
  const { PROMETHEUS } = require('../../jdl/jhipster/monitoring-types');
31
32
  const { EUREKA } = require('../../jdl/jhipster/service-discovery-types');
32
- const { CASSANDRA, COUCHBASE, MARIADB, MONGODB, ORACLE } = require('../../jdl/jhipster/database-types');
33
+ const { CASSANDRA, COUCHBASE, MONGODB, ORACLE } = require('../../jdl/jhipster/database-types');
33
34
  const { ELASTICSEARCH } = require('../../jdl/jhipster/search-engine-types');
34
35
  const { KAFKA } = require('../../jdl/jhipster/message-broker-types');
35
36
  const { MEMCACHED, REDIS } = require('../../jdl/jhipster/cache-types');
@@ -175,11 +176,12 @@ module.exports = class extends BaseDockerGenerator {
175
176
  // Add database configuration
176
177
  const database = appConfig.prodDatabaseType;
177
178
  if (database !== NO_DATABASE && database !== ORACLE) {
178
- const relativePath = pathjs.relative(this.destinationRoot(), `${path}/src/main/docker`);
179
+ const relativePath = normalize(pathjs.relative(this.destinationRoot(), `${path}/src/main/docker`));
179
180
  const databaseYaml = jsyaml.load(this.fs.read(`${path}/src/main/docker/${database}.yml`));
180
181
  const databaseServiceName = `${lowercaseBaseName}-${database}`;
181
182
  let databaseYamlConfig = databaseYaml.services[databaseServiceName];
182
- if (database !== MARIADB) delete databaseYamlConfig.ports;
183
+ // Don't export database ports
184
+ delete databaseYamlConfig.ports;
183
185
 
184
186
  if (database === CASSANDRA) {
185
187
  // node config
@@ -191,9 +193,11 @@ module.exports = class extends BaseDockerGenerator {
191
193
  const cassandraMigrationYaml = jsyaml.load(this.fs.read(`${path}/src/main/docker/cassandra-migration.yml`));
192
194
  const cassandraMigrationConfig = cassandraMigrationYaml.services[`${databaseServiceName}-migration`];
193
195
  cassandraMigrationConfig.build.context = relativePath;
194
- const createKeyspaceScript = cassandraClusterYaml.services[`${databaseServiceName}-migration`].environment[0];
196
+ const createKeyspaceScript = cassandraClusterYaml.services[`${databaseServiceName}-migration`].environment.find(envVariable =>
197
+ envVariable.includes('CREATE_KEYSPACE_SCRIPT')
198
+ );
195
199
  cassandraMigrationConfig.environment.push(createKeyspaceScript);
196
- const cqlFilesRelativePath = pathjs.relative(this.destinationRoot(), `${path}/src/main/resources/config/cql`);
200
+ const cqlFilesRelativePath = normalize(pathjs.relative(this.destinationRoot(), `${path}/src/main/resources/config/cql`));
197
201
  cassandraMigrationConfig.volumes[0] = `${cqlFilesRelativePath}:/cql:ro`;
198
202
 
199
203
  parentConfiguration[`${databaseServiceName}-migration`] = cassandraMigrationConfig;
@@ -16,6 +16,4 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import generator from './index.js';
20
-
21
- export default generator;
19
+ export { default } from './index.js';
@@ -139,7 +139,7 @@ module.exports = class extends BaseBlueprintGenerator {
139
139
  const selectedEntity = this.options.entities.includes(entityName);
140
140
  const { regenerate = !selectedEntity } = this.options;
141
141
  await this.composeWithJHipster(GENERATOR_ENTITY, [entityName], {
142
- skipWriting: !this.options.writeEveryEntity && !selectedEntity,
142
+ skipWriting: this.options.skipWriting || (!this.options.writeEveryEntity && !selectedEntity),
143
143
  regenerate,
144
144
  skipDbChangelog: this.jhipsterConfig.databaseType === SQL || this.options.skipDbChangelog,
145
145
  skipInstall: true,
@@ -175,7 +175,7 @@ module.exports = class extends BaseBlueprintGenerator {
175
175
  _default() {
176
176
  return {
177
177
  async composeEntitiesClient() {
178
- if (this.options.entities.length !== this.jhipsterConfig.entities.length) return;
178
+ if (this.options.skipWriting || this.options.entities.length !== this.jhipsterConfig.entities.length) return;
179
179
  const clientEntities = this.getExistingEntityNames()
180
180
  .map(entityName => {
181
181
  const entity = this.configOptions.sharedEntities[entityName];
@@ -16,6 +16,4 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import generator from './index.js';
20
-
21
- export default generator;
19
+ export { default } from './index.js';
@@ -16,6 +16,4 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import generator from './index.js';
20
-
21
- export default generator;
19
+ export { default } from './index.js';
@@ -45,6 +45,7 @@ const statistics = require('../statistics');
45
45
  const { isReservedClassName, isReservedTableName } = require('../../jdl/jhipster/reserved-keywords');
46
46
  const {
47
47
  prepareEntityForTemplates,
48
+ prepareEntityServerDomainForTemplates,
48
49
  prepareEntityPrimaryKeyForTemplates,
49
50
  loadRequiredConfigIntoEntity,
50
51
  derivedPrimaryKeyProperties,
@@ -71,16 +72,14 @@ const { IMAGE, TEXT } = BlobTypes;
71
72
 
72
73
  const { PaginationTypes, ServiceTypes } = require('../../jdl/jhipster/entity-options');
73
74
 
74
- const { PAGINATION } = PaginationTypes;
75
- const NO_PAGINATION = PaginationTypes.NO;
76
- const NO_SERVICE = ServiceTypes.NO;
75
+ const { NO: NO_PAGINATION } = PaginationTypes;
76
+ const { NO: NO_SERVICE } = ServiceTypes;
77
77
 
78
78
  const { MAX, MIN, MAXLENGTH, MINLENGTH, MAXBYTES, MINBYTES, PATTERN } = require('../../jdl/jhipster/validations');
79
79
 
80
80
  /* constants used throughout */
81
- const SUPPORTED_VALIDATION_RULES = constants.SUPPORTED_VALIDATION_RULES;
81
+ const { SUPPORTED_VALIDATION_RULES, JHIPSTER_CONFIG_DIR } = constants;
82
82
  const ANGULAR = constants.SUPPORTED_CLIENT_FRAMEWORKS.ANGULAR;
83
- const JHIPSTER_CONFIG_DIR = constants.JHIPSTER_CONFIG_DIR;
84
83
 
85
84
  class EntityGenerator extends BaseBlueprintGenerator {
86
85
  constructor(args, options, features) {
@@ -649,16 +648,7 @@ class EntityGenerator extends BaseBlueprintGenerator {
649
648
  },
650
649
 
651
650
  loadDomain() {
652
- const entity = this.context;
653
- const { entityPackage, packageName, packageFolder, persistClass } = entity;
654
- let { entityAbsolutePackage = packageName, entityAbsoluteFolder = packageFolder } = entity;
655
- if (entityPackage) {
656
- entityAbsolutePackage = [packageName, entityPackage].join('.');
657
- entityAbsoluteFolder = path.join(packageFolder, entityPackage.replace(/\./g, '/'));
658
- }
659
- entity.entityAbsolutePackage = entityAbsolutePackage;
660
- entity.entityAbsoluteFolder = entityAbsoluteFolder;
661
- entity.entityAbsoluteClass = `${entityAbsolutePackage}.domain.${persistClass}`;
651
+ prepareEntityServerDomainForTemplates(this.context);
662
652
  },
663
653
  };
664
654
  }
@@ -727,7 +717,9 @@ class EntityGenerator extends BaseBlueprintGenerator {
727
717
  if (!this.context.differentRelationships[entityType]) {
728
718
  this.context.differentRelationships[entityType] = [];
729
719
  }
730
- this.context.differentRelationships[entityType].push(relationship);
720
+ if (!relationship.otherEntityIsEmbedded) {
721
+ this.context.differentRelationships[entityType].push(relationship);
722
+ }
731
723
  });
732
724
  },
733
725
 
@@ -816,6 +808,12 @@ class EntityGenerator extends BaseBlueprintGenerator {
816
808
  this.context.otherEntities = _.uniq(this.context.relationships.map(rel => rel.otherEntity));
817
809
  },
818
810
 
811
+ checkUpdatableEntity() {
812
+ this.context.updatableEntity =
813
+ this.context.fields.some(field => !field.id && !field.transient) ||
814
+ this.context.relationships.some(relationship => !relationship.id && relationship.ownerSide);
815
+ },
816
+
819
817
  processOtherReferences() {
820
818
  this.context.otherReferences = this.context.otherRelationships.map(relationship => relationship.reference);
821
819
  this.context.allReferences
@@ -843,6 +841,7 @@ class EntityGenerator extends BaseBlueprintGenerator {
843
841
  processEntityPrimaryKeysDerivedProperties() {
844
842
  if (!this.context.primaryKey) return;
845
843
  derivedPrimaryKeyProperties(this.context.primaryKey);
844
+ this._checkPersistableInterfaceRequirement();
846
845
  },
847
846
 
848
847
  processPrimaryKeyTypesForRelations() {
@@ -858,20 +857,28 @@ class EntityGenerator extends BaseBlueprintGenerator {
858
857
  * Process relationships that should be loaded eagerly.
859
858
  */
860
859
  processEagerLoadRelationships() {
861
- this.context.relationships
862
- .filter(relationship => relationship.relationshipEagerLoad === undefined)
863
- .forEach(relationship => {
860
+ this.context.relationships.forEach(relationship => {
861
+ if (relationship.otherEntity.embedded) {
862
+ relationship.bagRelationship = false;
863
+ relationship.relationshipEagerLoad = false;
864
+ return;
865
+ }
866
+ relationship.bagRelationship = relationship.ownerSide && relationship.collection;
867
+ if (relationship.relationshipEagerLoad === undefined) {
864
868
  relationship.relationshipEagerLoad =
865
- !relationship.embedded &&
866
- // Allows the entity to force earger load every relationship
867
- (this.context.eagerLoad ||
868
- (this.context.paginate !== PAGINATION &&
869
- relationship.relationshipType === 'many-to-many' &&
870
- relationship.ownerSide === true)) &&
871
- // Neo4j & Couchbase eagerly loads relations by default
872
- ![NEO4J, COUCHBASE].includes(this.context.databaseType);
873
- });
869
+ relationship.bagRelationship ||
870
+ this.context.eagerLoad ||
871
+ // Fetch relationships if otherEntityField differs otherwise the id is enough
872
+ (relationship.ownerSide && relationship.otherEntity.primaryKey.name !== relationship.otherEntityField);
873
+ }
874
+ });
874
875
  this.context.relationshipsContainEagerLoad = this.context.relationships.some(relationship => relationship.relationshipEagerLoad);
876
+ this.context.containsBagRelationships = this.context.relationships.some(relationship => relationship.bagRelationship);
877
+ this.context.implementsEagerLoadApis = // Cassandra doesn't provides *WithEagerReationships apis
878
+ ![CASSANDRA, COUCHBASE].includes(this.context.databaseType) &&
879
+ // Only sql and mongodb provides *WithEagerReationships apis for imperative implementation
880
+ (this.context.reactive || [SQL, MONGODB].includes(this.context.databaseType)) &&
881
+ this.context.relationshipsContainEagerLoad;
875
882
  this.context.eagerRelations = this.context.relationships.filter(rel => rel.relationshipEagerLoad);
876
883
  this.context.regularEagerRelations = this.context.eagerRelations.filter(rel => rel.id !== true);
877
884
 
@@ -1146,6 +1153,10 @@ class EntityGenerator extends BaseBlueprintGenerator {
1146
1153
  _derivedCompositePrimaryKeyProperties(types) {
1147
1154
  this.context.otherEntityPrimaryKeyTypesIncludesUUID = types.includes(UUID);
1148
1155
  }
1156
+
1157
+ _checkPersistableInterfaceRequirement() {
1158
+ this.context.requiresPersistableImplementation = this.context.fields.some(field => field.requiresPersistableImplementation);
1159
+ }
1149
1160
  }
1150
1161
 
1151
1162
  module.exports = EntityGenerator;
@@ -156,7 +156,7 @@ function askForUpdate() {
156
156
  function askForFields() {
157
157
  const context = this.context;
158
158
  // don't prompt if data is imported from a file
159
- if (context.useConfigurationFile && context.updateEntity !== 'add') {
159
+ if (this.options.defaults || (context.useConfigurationFile && context.updateEntity !== 'add')) {
160
160
  return undefined;
161
161
  }
162
162
 
@@ -209,6 +209,9 @@ function askForFieldsToRemove() {
209
209
 
210
210
  function askForRelationships() {
211
211
  const context = this.context;
212
+ if (this.options.defaults) {
213
+ return undefined;
214
+ }
212
215
  // don't prompt if data is imported from a file
213
216
  if (context.useConfigurationFile && context.updateEntity !== 'add') {
214
217
  return undefined;
@@ -16,6 +16,5 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import generator from './index.js';
20
-
21
- export default generator;
19
+ export { default } from './index.js';
20
+ export { angularFiles, reactFiles, vueFiles, commonFiles } from './files.js';
@@ -53,6 +53,13 @@ module.exports = class extends BaseBlueprintGenerator {
53
53
  async loadNativeLanguage() {
54
54
  await this._loadEntityClientTranslations(this.entity, this.jhipsterConfig);
55
55
  },
56
+ async prepareReact() {
57
+ const entity = this.entity;
58
+ if (!entity.clientFrameworkReact) return;
59
+ entity.entityReactState = entity.applicationTypeMonolith
60
+ ? entity.entityInstance
61
+ : `${entity.lowercaseBaseName}.${entity.entityInstance}`;
62
+ },
56
63
  };
57
64
  }
58
65
 
@@ -157,6 +164,7 @@ module.exports = class extends BaseBlueprintGenerator {
157
164
  _postWriting() {
158
165
  return {
159
166
  addToMenu() {
167
+ if (this.skipClient || (this.microfrontend && this.applicationTypeGateway && this.microserviceName)) return undefined;
160
168
  return addToMenu.call(this);
161
169
  },
162
170
 
@@ -20,7 +20,7 @@
20
20
  <div class="modal-header">
21
21
  <h4 class="modal-title" data-cy="<%= entityInstance %>DeleteDialogHeading" <%= jhiPrefix %>Translate="entity.delete.title">Confirm delete operation</h4>
22
22
 
23
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true"
23
+ <button type="button" class="btn-close" data-dismiss="modal" aria-hidden="true"
24
24
  (click)="cancel()">&times;</button>
25
25
  </div>
26
26
 
@@ -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
- <div class="row justify-content-center">
19
+ <div class="d-flex justify-content-center">
20
20
  <div class="col-8">
21
21
  <div *ngIf="<%= entityInstance %>">
22
22
  <h2 data-cy="<%= entityInstance %>DetailsHeading"><span <%= jhiPrefix %>Translate="<%= i18nKeyPrefix %>.detail.title"><%= entityClassHumanized %></span></h2>
@@ -60,7 +60,7 @@ _%>
60
60
  </dd>
61
61
  <%_ } _%>
62
62
  <%_
63
- for (const relationship of relationships) {
63
+ for (const relationship of relationships.filter(rel => !rel.otherEntityIsEmbedded)) {
64
64
  const ownerSide = relationship.ownerSide;
65
65
  const relationshipName = relationship.relationshipName;
66
66
  const relationshipFieldName = relationship.relationshipFieldName;
@@ -31,7 +31,7 @@ _%>
31
31
  <span <%= jhiPrefix %>Translate="<%= i18nKeyPrefix %>.home.title"><%= entityClassPluralHumanized %></span>
32
32
 
33
33
  <div class="d-flex justify-content-end">
34
- <button class="btn btn-info mr-2" (click)="<%= refreshMethod %>" [disabled]="isLoading">
34
+ <button class="btn btn-info me-2" (click)="<%= refreshMethod %>" [disabled]="isLoading">
35
35
  <fa-icon icon="sync" [spin]="isLoading"></fa-icon>
36
36
  <span <%= jhiPrefix %>Translate="<%= i18nKeyPrefix %>.home.refreshListLabel">Refresh List</span>
37
37
  </button>
@@ -52,23 +52,22 @@ _%>
52
52
  <<%= jhiPrefixDashed %>-alert></<%= jhiPrefixDashed %>-alert>
53
53
  <%_ if (searchEngine) { _%>
54
54
 
55
- <div class="row">
55
+ <form name="searchForm" class="row row-cols-sm-auto align-items-center">
56
56
  <div class="col-sm-12">
57
- <form name="searchForm" class="form-inline">
58
- <div class="input-group w-100 mt-3">
59
- <input type="text" class="form-control" [(ngModel)]="currentSearch" id="currentSearch" name="currentSearch" placeholder="<% if (enableTranslation) { %>{{ '<%= i18nKeyPrefix %>.home.search' | translate }}<% } else { %>Query<% } %>">
60
-
61
- <button class="input-group-append btn btn-info" (click)="search(currentSearch)">
62
- <fa-icon icon="search"></fa-icon>
63
- </button>
64
-
65
- <button class="input-group-append btn btn-danger" (click)="search('')" *ngIf="currentSearch">
66
- <fa-icon icon="trash-alt"></fa-icon>
67
- </button>
68
- </div>
69
- </form>
57
+ <div class="input-group w-100 mt-3">
58
+ <label class="visually-hidden" for="currentSearch" <%= jhiPrefix %>Translate="<%= i18nKeyPrefix %>.home.search">Query</label>
59
+ <input type="text" class="form-control" [(ngModel)]="currentSearch" id="currentSearch" name="currentSearch" placeholder="<% if (enableTranslation) { %>{{ '<%= i18nKeyPrefix %>.home.search' | translate }}<% } else { %>Query<% } %>">
60
+
61
+ <button class="btn btn-info" (click)="search(currentSearch)">
62
+ <fa-icon icon="search"></fa-icon>
63
+ </button>
64
+
65
+ <button class="btn btn-danger" (click)="search('')" *ngIf="currentSearch">
66
+ <fa-icon icon="trash-alt"></fa-icon>
67
+ </button>
68
+ </div>
70
69
  </div>
71
- </div>
70
+ </form>
72
71
  <%_ } _%>
73
72
 
74
73
  <div class="alert alert-warning" id="no-result" *ngIf="<%= entityInstancePlural %>?.length === 0">
@@ -82,7 +81,7 @@ _%>
82
81
  <%_ for (const field of fields.filter(field => !field.hidden)) { _%>
83
82
  <th scope="col"<% if (!paginationNo) { %> <%= jhiPrefix %>SortBy="<%= field.fieldName %>"<% } %>><span <%= jhiPrefix %>Translate="<%= field.fieldTranslationKey %>"><%= field.fieldNameHumanized %></span><% if (!paginationNo) { %> <fa-icon <% if (searchEngine && !field.fieldTypeBoolean && !field.fieldTypeNumeric && !field.fieldTypeTemporal) { %>*ngIf="!currentSearch" <% } %>icon="sort"></fa-icon><% } %></th>
84
83
  <%_ } _%>
85
- <%_ for (const relationship of relationships) { _%>
84
+ <%_ for (const relationship of relationships.filter(rel => !rel.otherEntityIsEmbedded)) { _%>
86
85
  <%_ if (relationship.relationshipManyToOne
87
86
  || (relationship.relationshipOneToOne && relationship.ownerSide)
88
87
  || (relationship.relationshipManyToMany && relationship.ownerSide && paginationNo)) {
@@ -126,7 +125,7 @@ _%>
126
125
  <td<% if (field.id) { %>><a<%- routerLink %><% } %>>{{ <%= entityInstance %>.<%= fieldName %> }}<% if (field.id) { %></a><% } %></td>
127
126
  <%_ } _%>
128
127
  <%_ } _%>
129
- <%_ for (const relationship of relationships) {
128
+ <%_ for (const relationship of relationships.filter(rel => !rel.otherEntityIsEmbedded)) {
130
129
  const ownerSide = relationship.ownerSide;
131
130
  const relationshipFieldName = relationship.relationshipFieldName;
132
131
  const relationshipFieldNamePlural = relationship.relationshipFieldNamePlural;
@@ -160,7 +159,7 @@ _%>
160
159
  </td>
161
160
  <%_ } _%>
162
161
  <%_ } _%>
163
- <td class="text-right">
162
+ <td class="text-end">
164
163
  <div class="btn-group">
165
164
  <button type="submit"
166
165
  [routerLink]="['/<%= entityPage %>', <%= entityInstance %>.<%= primaryKey.name %>, 'view']"
@@ -195,11 +194,11 @@ _%>
195
194
  <%_ if (paginationPagination) { _%>
196
195
 
197
196
  <div *ngIf="<%= entityInstancePlural %> && <%= entityInstancePlural %>.length > 0">
198
- <div class="row justify-content-center">
197
+ <div class="d-flex justify-content-center">
199
198
  <<%= jhiPrefixDashed %>-item-count [params]="{ page: page, totalItems: totalItems, itemsPerPage: itemsPerPage }"></<%= jhiPrefixDashed %>-item-count>
200
199
  </div>
201
200
 
202
- <div class="row justify-content-center">
201
+ <div class="d-flex justify-content-center">
203
202
  <ngb-pagination [collectionSize]="totalItems" [(page)]="ngbPaginationPage" [pageSize]="itemsPerPage" [maxSize]="5" [rotate]="true" [boundaryLinks]="true" (pageChange)="loadPage($event)"></ngb-pagination>
204
203
  </div>
205
204
  </div>
@@ -63,7 +63,7 @@ export class <%= entityAngularName %>Component implements OnInit {
63
63
  <%_ } _%>
64
64
 
65
65
  <%_ if (primaryKey) { _%>
66
- track<%= primaryKey.nameCapitalized %>(index: number, item: I<%= entityAngularName %>): <%= primaryKey.tsType %> {
66
+ track<%= primaryKey.nameCapitalized %>(_index: number, item: I<%= entityAngularName %>): <%= primaryKey.tsType %> {
67
67
  return item.<%= primaryKey.name %>!;
68
68
  }
69
69