generator-jhipster 8.4.0 → 8.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/README.md +3 -4
  2. package/dist/cli/commands.mjs +2 -0
  3. package/dist/cli/environment-builder.mjs +5 -0
  4. package/dist/cli/program.mjs +10 -4
  5. package/dist/generators/angular/entity-files-angular.js +6 -7
  6. package/dist/generators/angular/resources/package.json +20 -20
  7. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +4 -3
  8. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +3 -2
  9. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +4 -5
  10. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.service.spec.ts.ejs +3 -2
  11. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +6 -5
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +3 -2
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +5 -5
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +3 -2
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +2 -3
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.spec.ts.ejs +3 -2
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +3 -3
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +3 -4
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +3 -3
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +3 -2
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +4 -4
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +3 -2
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +3 -3
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +4 -3
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +3 -2
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts.ejs +1 -1
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.spec.ts.ejs +3 -3
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +3 -2
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +3 -2
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +3 -3
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +3 -4
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +3 -3
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -2
  40. package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -1
  41. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +0 -1
  42. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +2 -2
  43. package/dist/generators/angular/templates/src/main/webapp/app/config/uib-pagination.config.ts.ejs +1 -1
  44. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +7 -5
  45. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.spec.ts.ejs +3 -2
  46. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth-expired.interceptor.ts.ejs +3 -3
  48. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth.interceptor.ts.ejs +2 -2
  49. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts.ejs +1 -1
  50. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +6 -6
  51. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
  52. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +3 -4
  53. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
  54. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +1 -1
  55. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -3
  56. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +2 -2
  57. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +4 -5
  58. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +5 -3
  59. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +5 -6
  60. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
  61. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.ts.ejs +2 -2
  62. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +6 -6
  63. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
  64. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +3 -2
  65. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
  66. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
  67. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
  68. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +11 -9
  69. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
  70. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
  71. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts.ejs +1 -1
  72. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +2 -2
  73. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +10 -10
  74. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +6 -7
  75. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +4 -4
  76. package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +2 -0
  77. package/dist/generators/app/generator.js +4 -13
  78. package/dist/generators/base/command.js +1 -0
  79. package/dist/generators/base/generator.js +22 -28
  80. package/dist/generators/base/internal/command.js +13 -0
  81. package/dist/generators/base/internal/index.js +1 -0
  82. package/dist/generators/base/priorities.js +12 -1
  83. package/dist/generators/base/shared-data.js +74 -2
  84. package/dist/generators/base/support/config.js +1 -1
  85. package/dist/generators/base/support/jhipster7-context.js +155 -52
  86. package/dist/generators/base-application/generator.js +15 -3
  87. package/dist/generators/base-application/priorities.js +1 -0
  88. package/dist/generators/base-application/support/prepare-entity.js +7 -8
  89. package/dist/generators/base-application/support/prepare-relationship.js +3 -2
  90. package/dist/generators/base-core/generator.js +132 -63
  91. package/dist/generators/bootstrap/generator.js +1 -1
  92. package/dist/generators/bootstrap/support/eslint-worker.js +14 -12
  93. package/dist/generators/bootstrap/support/multi-step-transform/template-file.js +6 -1
  94. package/dist/generators/bootstrap-application/generator.js +1 -1
  95. package/dist/generators/bootstrap-application-base/generator.js +7 -3
  96. package/dist/generators/bootstrap-application-client/generator.js +5 -1
  97. package/dist/generators/bootstrap-application-server/generator.js +1 -0
  98. package/dist/generators/ci-cd/generator.js +1 -1
  99. package/dist/generators/ci-cd/templates/docker-registry.yml.ejs +0 -1
  100. package/dist/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +0 -1
  101. package/dist/generators/client/command.js +2 -2
  102. package/dist/generators/client/generator.js +2 -3
  103. package/dist/generators/client/generators/common/command.js +5 -0
  104. package/dist/generators/client/generators/common/generator.js +79 -0
  105. package/dist/generators/client/generators/common/index.js +20 -0
  106. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
  107. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
  108. package/dist/generators/client/resources/package.json +6 -6
  109. package/dist/generators/client/support/filter-entities.js +1 -1
  110. package/dist/generators/client/templates/.eslintignore.ejs +9 -5
  111. package/dist/generators/client/templates/README.md.jhi.client.ejs +29 -20
  112. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
  113. package/dist/generators/common/generator.js +5 -0
  114. package/dist/generators/common/resources/package.json +2 -2
  115. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
  116. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
  117. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
  118. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
  119. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
  120. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
  121. package/dist/generators/docker/templates/docker/mariadb.yml.ejs +1 -1
  122. package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -2
  123. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
  124. package/dist/generators/docker/templates/docker/realm-config/keycloak-health-check.sh +2 -2
  125. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -0
  126. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
  127. package/dist/generators/docker-compose/templates/realm-config/keycloak-health-check.sh +2 -2
  128. package/dist/generators/entity/generator.js +2 -10
  129. package/dist/generators/entity/prompts.js +6 -11
  130. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +1 -1
  131. package/dist/generators/gatling/README.md +15 -0
  132. package/dist/generators/gatling/generator.js +0 -1
  133. package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
  134. package/dist/generators/generate-blueprint/command.js +16 -0
  135. package/dist/generators/generate-blueprint/files.js +11 -1
  136. package/dist/generators/generate-blueprint/generator.js +34 -17
  137. package/dist/generators/generate-blueprint/resources/package.json +3 -1
  138. package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
  139. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
  140. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
  141. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
  142. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +20 -0
  143. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
  144. package/dist/generators/generate-blueprint/templates/.github/workflows/build-cache.yml.ejs +39 -0
  145. package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +105 -0
  146. package/dist/generators/generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs +1 -1
  147. package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
  148. package/dist/generators/generate-blueprint/templates/eslint.config.js.ejs +33 -0
  149. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
  150. package/dist/generators/generator-constants.js +2 -2
  151. package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
  152. package/dist/generators/heroku/generator.js +1 -1
  153. package/dist/generators/info/generator.js +1 -3
  154. package/dist/generators/info/support/extract-info.js +60 -0
  155. package/dist/generators/info/support/index.js +1 -0
  156. package/dist/generators/init/generator.js +2 -2
  157. package/dist/generators/init/resources/.node-version +1 -1
  158. package/dist/generators/init/resources/package.json +2 -2
  159. package/dist/generators/java/generators/bootstrap/generator.js +9 -2
  160. package/dist/generators/java/generators/build-tool/command.js +6 -3
  161. package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
  162. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
  163. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
  164. package/dist/generators/java/generators/node/templates/npmw +1 -5
  165. package/dist/generators/java/support/add-java-annotation.js +28 -7
  166. package/dist/generators/java/support/generated-annotation-transform.js +1 -1
  167. package/dist/generators/java/support/index.js +1 -1
  168. package/dist/generators/jdl/generator.js +7 -7
  169. package/dist/generators/kubernetes/files.js +1 -1
  170. package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +1 -1
  171. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
  172. package/dist/generators/languages/generator.js +5 -2
  173. package/dist/generators/liquibase/templates/src/main/java/_package_/config/LiquibaseConfiguration.java.ejs +1 -1
  174. package/dist/generators/maven/command.js +15 -0
  175. package/dist/generators/maven/generator.js +6 -1
  176. package/dist/generators/maven/index.js +1 -0
  177. package/dist/generators/maven/internal/xml-store.js +7 -6
  178. package/dist/generators/maven/support/pom-store.js +24 -9
  179. package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
  180. package/dist/generators/maven/templates/mvnw +185 -243
  181. package/dist/generators/maven/templates/mvnw.cmd +121 -180
  182. package/dist/generators/react/entity-files-react.js +7 -7
  183. package/dist/generators/react/generator.js +10 -0
  184. package/dist/generators/react/resources/package.json +28 -28
  185. package/dist/generators/react/templates/src/main/webapp/app/app.tsx.ejs +9 -0
  186. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
  187. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
  188. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
  189. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
  190. package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
  191. package/dist/generators/react/templates/src/main/webapp/app/config/translation.ts.ejs +4 -0
  192. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
  193. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
  194. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +15 -1
  195. package/dist/generators/react/templates/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +4 -0
  196. package/dist/generators/react/templates/src/main/webapp/app/modules/login/logout.tsx.ejs +5 -3
  197. package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +1 -1
  198. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +1 -1
  199. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.tsx.ejs +1 -1
  200. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.tsx.ejs +0 -9
  201. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +1 -3
  202. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +29 -6
  203. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
  204. package/dist/generators/react/templates/src/main/webapp/app/shared/util/url-utils.ts.ejs +1 -1
  205. package/dist/generators/server/command.js +0 -11
  206. package/dist/generators/server/generator.js +16 -75
  207. package/dist/generators/server/jdl/application-definition.js +3 -1
  208. package/dist/generators/server/resources/Dockerfile +13 -13
  209. package/dist/generators/server/resources/gradle/libs.versions.toml +9 -7
  210. package/dist/generators/server/resources/pom.xml +16 -16
  211. package/dist/generators/server/support/config.js +4 -8
  212. package/dist/generators/server/support/prepare-entity.js +5 -6
  213. package/dist/generators/server/support/relationship.js +5 -2
  214. package/dist/generators/server/templates/build.gradle.ejs +5 -3
  215. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +2 -1
  216. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +2 -1
  217. package/dist/generators/server/templates/gradle.properties.ejs +1 -1
  218. package/dist/generators/server/templates/pom.xml.ejs +7 -31
  219. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
  220. package/dist/generators/server/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs +1 -1
  221. package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
  222. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +1 -18
  223. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
  224. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +1 -21
  225. package/dist/generators/server/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +1 -1
  226. package/dist/generators/server/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +1 -1
  227. package/dist/generators/server/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs +1 -1
  228. package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
  229. package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs +1 -1
  230. package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +1 -1
  231. package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +34 -0
  232. package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
  233. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
  234. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +1 -1
  235. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +44 -10
  236. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +1 -1
  237. package/dist/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
  238. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +60 -22
  239. package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
  240. package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
  241. package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
  242. package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
  243. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
  244. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
  245. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
  246. package/dist/generators/spring-boot/command.js +117 -6
  247. package/dist/generators/spring-boot/files.js +0 -5
  248. package/dist/generators/spring-boot/generator.js +44 -9
  249. package/dist/generators/spring-boot/prompts.js +6 -70
  250. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +374 -582
  251. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/UserService.java.ejs +1 -1
  252. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +1 -1
  253. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.java.ejs +1 -1
  254. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/PublicUserResource.java.ejs +1 -1
  255. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/UserResource.java.ejs +1 -1
  256. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +1 -1
  257. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
  258. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
  259. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
  260. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
  261. package/dist/generators/spring-cache/internal/dependencies.js +2 -2
  262. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  263. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +3 -3
  264. package/dist/generators/spring-cloud/generators/gateway/command.js +10 -1
  265. package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
  266. package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
  267. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_imperative.java.ejs +1 -1
  268. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_reactive.java.ejs +1 -1
  269. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
  270. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
  271. package/dist/generators/spring-data-cassandra/generator.js +2 -2
  272. package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
  273. package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/config/DatabaseConfiguration.java_neo4j.ejs +18 -2
  274. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
  275. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
  276. package/dist/generators/vue/entity-files-vue.js +7 -7
  277. package/dist/generators/vue/resources/package.json +21 -21
  278. package/dist/generators/vue/templates/.eslintrc.cjs.ejs +7 -0
  279. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
  280. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
  281. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
  282. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
  283. package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
  284. package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
  285. package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
  286. package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
  287. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
  288. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
  289. package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
  290. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
  291. package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
  292. package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
  293. package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
  294. package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
  295. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
  296. package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
  297. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
  298. package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
  299. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
  300. package/dist/jdl/exporters/config.js +1 -0
  301. package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
  302. package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
  303. package/dist/jdl/jdl-importer.js +22 -20
  304. package/dist/jdl/jhipster/binary-options.js +12 -8
  305. package/dist/jdl/jhipster/json-entity.js +1 -1
  306. package/dist/jdl/models/abstract-jdl-option.js +2 -2
  307. package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
  308. package/dist/jdl/models/jdl-binary-option.js +2 -2
  309. package/dist/jdl/models/jdl-deployment.js +11 -0
  310. package/dist/jdl/models/jdl-entity.js +1 -1
  311. package/dist/jdl/models/jdl-enum.js +1 -1
  312. package/dist/jdl/models/jdl-enums.js +0 -18
  313. package/dist/jdl/models/jdl-field.js +2 -2
  314. package/dist/jdl/models/jdl-object-wrapper.js +1 -0
  315. package/dist/jdl/models/jdl-object.js +23 -45
  316. package/dist/jdl/models/jdl-options.js +0 -18
  317. package/dist/jdl/models/jdl-relationships.js +8 -16
  318. package/dist/jdl/models/jdl-unary-option.js +1 -1
  319. package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
  320. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
  321. package/dist/jdl/parsing/jdl-parser.js +14 -0
  322. package/dist/jdl/parsing/lexer/lexer.js +17 -11
  323. package/dist/jdl/parsing/validator.js +16 -2
  324. package/dist/jdl/readers/json-reader.js +1 -1
  325. package/dist/jdl/utils/array-utils.js +6 -0
  326. package/dist/jdl/utils/set-utils.js +3 -2
  327. package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
  328. package/dist/lib/eslint/base.js +25 -0
  329. package/dist/lib/eslint/recommended.js +22 -0
  330. package/dist/testing/github.js +32 -0
  331. package/dist/testing/helpers.js +13 -0
  332. package/dist/testing/index.js +2 -0
  333. package/dist/testing/sample-config.js +31 -0
  334. package/dist/types/cli/commands.d.mts +2 -0
  335. package/dist/types/cli/environment-builder.d.mts +1 -0
  336. package/dist/types/generators/base/api.d.ts +19 -8
  337. package/dist/types/generators/base/generator.d.ts +10 -4
  338. package/dist/types/generators/base/internal/command.d.ts +2 -0
  339. package/dist/types/generators/base/internal/index.d.ts +1 -0
  340. package/dist/types/generators/base/priorities.d.ts +4 -0
  341. package/dist/types/generators/base/shared-data.d.ts +11 -2
  342. package/dist/types/generators/base/types.d.ts +12 -0
  343. package/dist/types/generators/base-application/priorities.d.ts +2 -0
  344. package/dist/types/generators/base-application/support/entity.d.ts +2 -2
  345. package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
  346. package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
  347. package/dist/types/generators/base-application/types.d.ts +11 -0
  348. package/dist/types/generators/base-core/generator.d.ts +18 -2
  349. package/dist/types/generators/generator-constants.d.ts +1 -1
  350. package/dist/types/generators/info/support/extract-info.d.ts +14 -0
  351. package/dist/types/generators/info/support/index.d.ts +1 -0
  352. package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
  353. package/dist/types/generators/java/support/doc.d.ts +1 -1
  354. package/dist/types/generators/java/support/index.d.ts +1 -1
  355. package/dist/types/generators/java/types.d.ts +12 -0
  356. package/dist/types/generators/maven/internal/xml-store.d.ts +3 -2
  357. package/dist/types/generators/maven/support/pom-store.d.ts +5 -2
  358. package/dist/types/generators/maven/types.d.ts +1 -0
  359. package/dist/types/generators/server/support/relationship.d.ts +2 -2
  360. package/dist/types/generators/server/types.d.ts +7 -1
  361. package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
  362. package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
  363. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
  364. package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
  365. package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
  366. package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
  367. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
  368. package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
  369. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
  370. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
  371. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
  372. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
  373. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
  374. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
  375. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
  376. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
  377. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
  378. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
  379. package/dist/types/jdl/converters/types.d.ts +102 -14
  380. package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
  381. package/dist/types/jdl/exporters/config.d.ts +2 -1
  382. package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
  383. package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
  384. package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
  385. package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
  386. package/dist/types/jdl/exporters/types.d.ts +61 -0
  387. package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
  388. package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
  389. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
  390. package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
  391. package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
  392. package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
  393. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
  394. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
  395. package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
  396. package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
  397. package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
  398. package/dist/types/jdl/models/jdl-application.d.ts +16 -13
  399. package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
  400. package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
  401. package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
  402. package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
  403. package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
  404. package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
  405. package/dist/types/jdl/models/jdl-field.d.ts +10 -8
  406. package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
  407. package/dist/types/jdl/models/jdl-object.d.ts +23 -19
  408. package/dist/types/jdl/models/jdl-options.d.ts +7 -24
  409. package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
  410. package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
  411. package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
  412. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
  413. package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
  414. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
  415. package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
  416. package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
  417. package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
  418. package/dist/types/jdl/parsing/validator.d.ts +1 -1
  419. package/dist/types/jdl/utils/array-utils.d.ts +1 -0
  420. package/dist/types/jdl/utils/set-utils.d.ts +1 -19
  421. package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
  422. package/dist/types/lib/eslint/base.d.ts +20 -0
  423. package/dist/types/lib/eslint/recommended.d.ts +20 -0
  424. package/dist/types/testing/github.d.ts +11 -0
  425. package/dist/types/testing/helpers.d.ts +21 -3
  426. package/dist/types/testing/index.d.ts +2 -0
  427. package/dist/types/testing/sample-config.d.ts +4 -0
  428. package/package.json +35 -30
  429. package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +0 -35
  430. /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
@@ -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
- import { loadClientConfig, loadDerivedClientConfig, preparePostEntityClientDerivedProperties } from '../client/support/index.js';
19
+ import { loadClientConfig, loadDerivedClientConfig, preparePostEntityClientDerivedProperties, filterEntitiesAndPropertiesForClient, filterEntitiesForClient, } from '../client/support/index.js';
20
20
  import BaseApplicationGenerator from '../base-application/index.js';
21
21
  import { loadStoredAppOptions } from '../app/support/index.js';
22
22
  import clientCommand from '../client/command.js';
@@ -61,6 +61,10 @@ export default class BootStrapApplicationClient extends BaseApplicationGenerator
61
61
  }
62
62
  get postPreparingEachEntity() {
63
63
  return this.asPostPreparingEachEntityTaskGroup({
64
+ control({ control }) {
65
+ control.filterEntitiesAndPropertiesForClient = filterEntitiesAndPropertiesForClient;
66
+ control.filterEntitiesForClient = filterEntitiesForClient;
67
+ },
64
68
  postPreparingEntity({ entity }) {
65
69
  preparePostEntityClientDerivedProperties(entity);
66
70
  },
@@ -71,6 +71,7 @@ export default class BoostrapApplicationServer extends BaseApplicationGenerator
71
71
  ...applicationDockerContainers,
72
72
  ...currentDockerContainers,
73
73
  }),
74
+ gatewayRoutes: undefined,
74
75
  });
75
76
  },
76
77
  });
@@ -153,7 +153,7 @@ export default class CiCdGenerator extends BaseApplicationGenerator {
153
153
  postWriting({ application }) {
154
154
  if (application.ciCdIntegrations.includes('deploy')) {
155
155
  if (application.buildToolMaven) {
156
- createPomStorage(this).addDistributionManagement({
156
+ createPomStorage(this, { sortFile: false }).addDistributionManagement({
157
157
  releasesId: application.artifactoryReleasesId,
158
158
  releasesUrl: application.artifactoryReleasesUrl,
159
159
  snapshotsId: application.artifactorySnapshotsId,
@@ -17,7 +17,6 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  # Documentation at https://docs.docker.com/registry/deploying
20
- version: '2'
21
20
  services:
22
21
  registry:
23
22
  image: registry:2
@@ -16,7 +16,6 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- version: '2'
20
19
  services:
21
20
  jenkins:
22
21
  image: <%- dockerContainers.jenkins %>
@@ -42,8 +42,8 @@ const command = {
42
42
  prompt: generator => ({
43
43
  type: 'list',
44
44
  message: () => generator.jhipsterConfigWithDefaults.applicationType === APPLICATION_TYPE_MICROSERVICE
45
- ? `Which ${chalk.yellow('*Framework*')} would you like to use as microfrontend?`
46
- : `Which ${chalk.yellow('*Framework*')} would you like to use for the client?`,
45
+ ? `Which ${chalk.yellow('*framework*')} would you like to use as microfrontend?`
46
+ : `Which ${chalk.yellow('*framework*')} would you like to use for the client?`,
47
47
  }),
48
48
  choices: [
49
49
  { value: ANGULAR, name: 'Angular' },
@@ -26,7 +26,6 @@ import { testFrameworkTypes, clientFrameworkTypes } from '../../jdl/jhipster/ind
26
26
  import { createNeedleCallback } from '../base/support/index.js';
27
27
  import { loadStoredAppOptions } from '../app/support/index.js';
28
28
  import command from './command.js';
29
- import { filterEntitiesAndPropertiesForClient } from './support/index.js';
30
29
  const { ANGULAR, VUE, REACT, NO: CLIENT_FRAMEWORK_NO } = clientFrameworkTypes;
31
30
  const { CYPRESS } = testFrameworkTypes;
32
31
  export default class JHipsterClientGenerator extends BaseApplicationGenerator {
@@ -189,11 +188,11 @@ export default class JHipsterClientGenerator extends BaseApplicationGenerator {
189
188
  }
190
189
  get writingEntities() {
191
190
  return this.asWritingEntitiesTaskGroup({
192
- async writeEnumerationFiles({ application, entities }) {
191
+ async writeEnumerationFiles({ control, application, entities }) {
193
192
  if (!application.webappEnumerationsDir || ![ANGULAR, VUE, REACT].includes(application.clientFramework)) {
194
193
  return;
195
194
  }
196
- for (const entity of filterEntitiesAndPropertiesForClient(entities)) {
195
+ for (const entity of (control.filterEntitiesAndPropertiesForClient ?? (entities => entities))(entities)) {
197
196
  await addEnumerationFiles.call(this, { application, entity });
198
197
  }
199
198
  },
@@ -0,0 +1,5 @@
1
+ const command = {
2
+ configs: {},
3
+ import: [],
4
+ };
5
+ export default command;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Copyright 2013-2024 the original author or authors from the JHipster project.
3
+ *
4
+ * This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ * for more information.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import BaseApplicationGenerator from '../../../base-application/index.js';
20
+ import { clientApplicationTemplatesBlock } from '../../support/index.js';
21
+ export default class CommonGenerator extends BaseApplicationGenerator {
22
+ async beforeQueue() {
23
+ if (!this.fromBlueprint) {
24
+ await this.composeWithBlueprints();
25
+ }
26
+ if (!this.delegateToBlueprint) {
27
+ await this.dependsOnBootstrapApplication();
28
+ }
29
+ }
30
+ get initializing() {
31
+ return this.asInitializingTaskGroup({
32
+ async parseCommand() {
33
+ await this.parseCurrentJHipsterCommand();
34
+ },
35
+ });
36
+ }
37
+ get [BaseApplicationGenerator.INITIALIZING]() {
38
+ return this.delegateTasksToBlueprint(() => this.initializing);
39
+ }
40
+ get prompting() {
41
+ return this.asPromptingTaskGroup({
42
+ async promptCommand({ control }) {
43
+ if (control.existingProject && this.options.askAnswered !== true)
44
+ return;
45
+ await this.promptCurrentJHipsterCommand();
46
+ },
47
+ });
48
+ }
49
+ get [BaseApplicationGenerator.PROMPTING]() {
50
+ return this.delegateTasksToBlueprint(() => this.prompting);
51
+ }
52
+ get loading() {
53
+ return this.asLoadingTaskGroup({
54
+ async loadConfig({ application }) {
55
+ await this.loadCurrentJHipsterCommandConfig(application);
56
+ },
57
+ });
58
+ }
59
+ get [BaseApplicationGenerator.LOADING]() {
60
+ return this.delegateTasksToBlueprint(() => this.loading);
61
+ }
62
+ get writing() {
63
+ return this.asWritingTaskGroup({
64
+ async writing({ application }) {
65
+ await this.writeFiles({
66
+ blocks: [
67
+ clientApplicationTemplatesBlock({
68
+ templates: ['shared/jhipster/problem-details.ts', 'shared/jhipster/headers.ts'],
69
+ }),
70
+ ],
71
+ context: application,
72
+ });
73
+ },
74
+ });
75
+ }
76
+ get [BaseApplicationGenerator.WRITING]() {
77
+ return this.delegateTasksToBlueprint(() => this.writing);
78
+ }
79
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright 2013-2024 the original author or authors from the JHipster project.
3
+ *
4
+ * This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ * for more information.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ export { default } from './generator.js';
20
+ export { default as command } from './command.js';
@@ -0,0 +1,57 @@
1
+ <%#
2
+ Copyright 2013-2024 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ export type HeaderMessage = {
20
+ /** Success message */
21
+ alert?: string;
22
+ /** Error message */
23
+ error?: string;
24
+ /** Entity id for success messages. Entity name for error messages. */
25
+ param?: string;
26
+ };
27
+
28
+ const headerToString = (headerValue: any): string => {
29
+ if (Array.isArray(headerValue)) {
30
+ if (headerValue.length > 1) {
31
+ throw new Error('Multiple header values found');
32
+ }
33
+ headerValue = headerValue[0];
34
+ }
35
+ if (typeof headerValue !== 'string') {
36
+ throw new Error('Header value is not a string');
37
+ }
38
+ return headerValue;
39
+ }
40
+
41
+ const decodeHeaderValue = (headerValue: string): string => decodeURIComponent(headerValue.replace(/\+/g, ' '));
42
+
43
+ export const getMessageFromHeaders = (headers: Record<string, any>): HeaderMessage => {
44
+ let alert: string | undefined = undefined;
45
+ let param: string | undefined = undefined;
46
+ let error: string | undefined = undefined;
47
+ for (const [key, value] of Object.entries(headers)) {
48
+ if (key.toLowerCase().endsWith('-alert')) {
49
+ alert = headerToString(value);
50
+ } else if (key.toLowerCase().endsWith('-error')) {
51
+ error = headerToString(value);
52
+ } else if (key.toLowerCase().endsWith('-params')) {
53
+ param = decodeHeaderValue(headerToString(value));
54
+ }
55
+ }
56
+ return { alert, error, param };
57
+ };
@@ -0,0 +1,51 @@
1
+ <%#
2
+ Copyright 2013-2024 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ /**
20
+ * Problem details defined in RFC 7807.
21
+ * @see https://datatracker.ietf.org/doc/html/rfc7807#section-3.1
22
+ */
23
+ export type ProblemDetails = {
24
+ /** A URI reference that identifies the problem type */
25
+ type: string;
26
+ /** A short, human-readable summary of the problem type */
27
+ title: string;
28
+ /** The HTTP status code */
29
+ status: number;
30
+ /** A human-readable explanation specific to this occurrence of the problem */
31
+ detail: string;
32
+ /** A URI reference that identifies the specific occurrence of the problem */
33
+ instance: string;
34
+ }
35
+
36
+ export const ProblemWithMessageType = 'https://www.jhipster.tech/problem/problem-with-message';
37
+
38
+ export type FieldErrorVM = { message: string; objectName: string; field: string };
39
+
40
+ export type ProblemWithMessage = ProblemDetails & {
41
+ type: typeof ProblemWithMessageType;
42
+
43
+ /** Translation message key */
44
+ message?: string;
45
+ /** Request path */
46
+ path?: string;
47
+ /** Field errors */
48
+ fieldErrors?: FieldErrorVM[];
49
+ };
50
+
51
+ export const isProblemWithMessage = (data: any): data is ProblemWithMessage => data?.type === ProblemWithMessageType;
@@ -3,14 +3,14 @@
3
3
  "dayjs": "1.11.11"
4
4
  },
5
5
  "devDependencies": {
6
- "@cypress/code-coverage": "3.12.37",
6
+ "@cypress/code-coverage": "3.12.39",
7
7
  "babel-loader": "9.1.3",
8
8
  "babel-plugin-istanbul": "6.1.1",
9
- "cypress": "13.8.1",
9
+ "cypress": "13.12.0",
10
10
  "cypress-audit": "1.1.0",
11
- "eslint-plugin-cypress": "3.0.2",
12
- "lighthouse": "12.0.0",
13
- "nyc": "15.1.0",
14
- "swagger-ui-dist": "5.17.2"
11
+ "eslint-plugin-cypress": "3.3.0",
12
+ "lighthouse": "12.1.0",
13
+ "nyc": "17.0.0",
14
+ "swagger-ui-dist": "5.17.14"
15
15
  }
16
16
  }
@@ -5,7 +5,7 @@
5
5
  export const filterEntityPropertiesForClient = (entity) => ({
6
6
  ...entity,
7
7
  fields: entity.fields.filter(field => !field.skipClient),
8
- relationships: entity.relationships.filter(rel => !rel.skipClient && (rel.persistableRelationship || rel.relationshipEagerLoad)),
8
+ relationships: entity.relationships.filter(rel => !(rel.skipClient ?? !(rel.persistableRelationship || rel.relationshipEagerLoad || rel.otherEntity?.jpaMetamodelFiltering))),
9
9
  });
10
10
  /**
11
11
  * Filter entities for frontend templates.
@@ -17,12 +17,16 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  node_modules/
20
- src/main/docker/
21
- <%= !clientFrameworkVue ? '' : clientTestDir %>jest.conf.js
20
+ <%- dockerServicesDir %>
21
+ <%_ if (!clientFrameworkVue) { _%>
22
+ jest.conf.js
23
+ <%_ } _%>
24
+ <%_ if (!clientFrameworkVue || microfrontend) { _%>
22
25
  webpack/
23
- target/
24
- build/
25
- node/
26
+ <%_ } _%>
27
+ <%- temporaryDir %>
26
28
  coverage/
29
+ <%_ if (clientFrameworkReact) { _%>
27
30
  postcss.config.js
31
+ <%_ } _%>
28
32
  <%- this.relativeDir(clientRootDir, clientDistDir) %>
@@ -28,21 +28,28 @@
28
28
  _&>
29
29
  <%_
30
30
  let clientPackageMngrName = 'Npm';
31
+ let clientPackageMngrWrapper = useNpmWrapper ? './npmw' : clientPackageManager;
31
32
  let clientPackageMngrAddGlobal = 'install -g';
32
33
  let clientPackageMngrAdd = 'install --save --save-exact';
33
34
  let clientPackageMngrAddDev = 'install --save-dev --save-exact';
34
35
  -%>
35
36
  <&_ if (fragment.developmentSection) { -&>
37
+ <%_ if (useNpmWrapper) { _%>
38
+ The build system will install automatically the recommended version of Node and <%= clientPackageManager %>.
39
+
40
+ We provide a wrapper to launch <%= clientPackageManager %>.
41
+ <%_ } else { _%>
36
42
  Before you can build this project, you must install and configure the following dependencies on your machine:
37
43
 
38
- 1. [Node.js](https://nodejs.org/): We use Node to run a development web server and build the project.
44
+ 1. [Node.js](https://nodejs.org/): Node is used to run a development web server and build the project.
39
45
  Depending on your system, you can install Node either from source or as a pre-packaged bundle.
40
46
 
41
47
  After installing Node, you should be able to run the following command to install development tools.
48
+ <%_ } _%>
42
49
  You will only need to run this command when dependencies change in [package.json](package.json).
43
50
 
44
51
  ```
45
- <%= clientPackageManager %> install
52
+ <%= clientPackageMngrWrapper %> install
46
53
  ```
47
54
 
48
55
  We use <%= clientPackageManager %> scripts and <&- fragments.customCliSection(' ') &>[Webpack][] as our build system.
@@ -58,14 +65,16 @@ docker compose -f src/main/docker/<%= cacheProviderHazelcast?'hazelcast-manageme
58
65
  <%_ if (cacheProviderRedis) { _%>
59
66
 
60
67
  The cache can also be turned off by adding to the application yaml:
61
- ```
68
+
69
+ ```yaml
62
70
  spring:
63
71
  cache:
64
72
  type: none
65
73
  ```
74
+
66
75
  See [here](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-caching.html#boot-features-caching-provider-none) for details.
67
76
 
68
- **WARNING**: If you using second level hibernate cache and disabling the spring cache, you have to disable the second level hibernate cache as well since they are using
77
+ **WARNING**: If you're using the second level Hibernate cache and disabling the Spring cache, you have to disable the second level Hibernate cache as well since they are using
69
78
  the same CacheManager.
70
79
  <%_ } _%>
71
80
  <%_ } _%>
@@ -80,14 +89,14 @@ auto-refreshes when files change on your hard drive.
80
89
  <%_ if (buildToolGradle) { _%>
81
90
  ./gradlew -x webapp
82
91
  <%_ } _%>
83
- <%= clientPackageManager %> start
92
+ <%= clientPackageMngrWrapper %> start
84
93
  ```
85
94
 
86
95
  <%= clientPackageMngrName %> is also used to manage CSS and JavaScript dependencies used in this application. You can upgrade dependencies by
87
- specifying a newer version in [package.json](package.json). You can also run `<%= clientPackageManager %> update` and `<%= clientPackageManager %> install` to manage dependencies.
88
- Add the `help` flag on any command to see how you can use it. For example, `<%= clientPackageManager %> help update`.
96
+ specifying a newer version in [package.json](package.json). You can also run `<%= clientPackageMngrWrapper %> update` and `<%= clientPackageMngrWrapper %> install` to manage dependencies.
97
+ Add the `help` flag on any command to see how you can use it. For example, `<%= clientPackageMngrWrapper %> help update`.
89
98
 
90
- The `<%= clientPackageManager %> run` command will list all of the scripts available to run for this project.
99
+ The `<%= clientPackageMngrWrapper %> run` command will list all the scripts available to run for this project.
91
100
 
92
101
  ### PWA Support
93
102
 
@@ -121,13 +130,13 @@ ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
121
130
  For example, to add [Leaflet][] library as a runtime dependency of your application, you would run following command:
122
131
 
123
132
  ```
124
- <%= clientPackageManager %> <%= clientPackageMngrAdd %> leaflet
133
+ <%= clientPackageMngrWrapper %> <%= clientPackageMngrAdd %> leaflet
125
134
  ```
126
135
 
127
136
  To benefit from TypeScript type definitions from [DefinitelyTyped][] repository in development, you would run following command:
128
137
 
129
138
  ```
130
- <%= clientPackageManager %> <%= clientPackageMngrAddDev %> @types/leaflet
139
+ <%= clientPackageMngrWrapper %> <%= clientPackageMngrAddDev %> @types/leaflet
131
140
  ```
132
141
 
133
142
  Then you would import the JS and CSS files specified in library's installation instructions so that [Webpack][] knows about them:
@@ -159,9 +168,9 @@ Start gateway from source:
159
168
 
160
169
  ```
161
170
  cd gateway
162
- npm run docker:db:up # start database if necessary
163
- npm run docker:others:up # start service discovery and authentication service if necessary
164
- npm run app:start # alias for ./(mvnw|gradlew)
171
+ <%= clientPackageMngrWrapper %> run docker:db:up # start database if necessary
172
+ <%= clientPackageMngrWrapper %> run docker:others:up # start service discovery and authentication service if necessary
173
+ <%= clientPackageMngrWrapper %> run app:start # alias for ./(mvnw|gradlew)
165
174
  ```
166
175
 
167
176
  Microfrontend's `build-watch` script is configured to watch and compile microfrontend's sources and synchronizes with gateway's frontend.
@@ -169,16 +178,16 @@ Start it using:
169
178
 
170
179
  ```
171
180
  cd microfrontend
172
- npm run docker:db:up # start database if necessary
173
- npm run build-watch
181
+ <%= clientPackageMngrWrapper %> run docker:db:up # start database if necessary
182
+ <%= clientPackageMngrWrapper %> run build-watch
174
183
  ```
175
184
 
176
185
  It's possible to run microfrontend's frontend standalone using:
177
186
 
178
187
  ```
179
188
  cd microfrontend
180
- npm run docker:db:up # start database if necessary
181
- npm watch # alias for `npm start` and `npm run backend:start` in parallel
189
+ <%= clientPackageMngrWrapper %> run docker:db:up # start database if necessary
190
+ <%= clientPackageMngrWrapper %> watch # alias for `npm start` and `npm run backend:start` in parallel
182
191
  ```
183
192
 
184
193
  <%_ } -%>
@@ -190,16 +199,16 @@ npm watch # alias for `npm start` and `npm run backend:start` in parallel
190
199
  Unit tests are run by [Jest][]. They're located in [<%= clientTestDir %>](<%= clientTestDir %>) and can be run with:
191
200
 
192
201
  ```
193
- <%= clientPackageManager %> test
202
+ <%= clientPackageMngrWrapper %> test
194
203
  ```
195
204
 
196
205
  <%_ if (cypressTests) { _%>
197
206
  UI end-to-end tests are powered by [Cypress][]. They're located in [<%= clientTestDir %>cypress](<%= clientTestDir %>cypress)
198
- and can be run by starting Spring Boot in one terminal (`<% if (buildToolMaven) { %>./mvnw spring-boot:run<% } else { %>./gradlew bootRun<% } %>`) and running the tests (`<%= clientPackageManager %> run e2e`) in a second one.
207
+ and can be run by starting Spring Boot in one terminal (`<% if (buildToolMaven) { %>./mvnw spring-boot:run<% } else { %>./gradlew bootRun<% } %>`) and running the tests (`<%= clientPackageMngrWrapper %> run e2e`) in a second one.
199
208
 
200
209
  #### Lighthouse audits
201
210
 
202
- You can execute automated [lighthouse audits][https://developers.google.com/web/tools/lighthouse/] with [cypress audits][https://github.com/mfrachet/cypress-audit] by running `<%= clientPackageManager %> run e2e:cypress:audits`.
211
+ You can execute automated [Lighthouse audits](https://developers.google.com/web/tools/lighthouse/) with [cypress-audit](https://github.com/mfrachet/cypress-audit) by running `<%= clientPackageMngrWrapper %> run e2e:cypress:audits`.
203
212
  You should only run the audits when your application is packaged with the production profile.
204
213
  The lighthouse report is created in <% if (buildToolMaven) { %>`target/cypress/lhreport.html`<% } else { %>`build/cypress/lhreport.html`<% } %>
205
214
  <%_ } _%>
@@ -17,7 +17,7 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  <!DOCTYPE html>
20
- <html class="no-js" lang="<%= nativeLanguage %>" dir="ltr">
20
+ <html class="no-js" lang="<%= nativeLanguage %>" dir="<%- nativeLanguageDefinition.rtl ? 'rtl' : 'ltr' %>">
21
21
  <head>
22
22
  <meta charset="utf-8" />
23
23
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
@@ -136,6 +136,11 @@ export default class CommonGenerator extends BaseApplicationGenerator {
136
136
  // Public API method used by the getter and also by Blueprints
137
137
  get preparing() {
138
138
  return this.asPreparingTaskGroup({
139
+ checkSuffix({ application }) {
140
+ if (application.entitySuffix === application.dtoSuffix) {
141
+ throw new Error('Entities cannot be generated as the entity suffix and DTO suffix are equals!');
142
+ }
143
+ },
139
144
  setupConstants({ application }) {
140
145
  // Make constants available in templates
141
146
  application.MAIN_DIR = MAIN_DIR;
@@ -2,8 +2,8 @@
2
2
  "devDependencies": {
3
3
  "concurrently": "8.2.2",
4
4
  "husky": "9.0.11",
5
- "lint-staged": "15.2.2",
6
- "npm": "10.6.0",
5
+ "lint-staged": "15.2.7",
6
+ "npm": "10.8.1",
7
7
  "wait-on": "7.2.0"
8
8
  }
9
9
  }
@@ -52,7 +52,7 @@ describe('login modal', () => {
52
52
  cy.get(passwordLoginSelector).type('a-password');
53
53
  cy.get(submitLoginSelector).click();
54
54
  <%_ if (!clientFrameworkReact) { _%>
55
- cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(<% if (authenticationTypeSession) { %>401<% } else { %>400<% } %>));
55
+ cy.wait('@authenticate').then(({ response }) => expect(response?.statusCode).to.equal(<% if (authenticationTypeSession) { %>401<% } else { %>400<% } %>));
56
56
  <%_ } _%>
57
57
  // login page should stay open when login fails
58
58
  cy.get(titleLoginSelector).should('be.visible');
@@ -62,7 +62,7 @@ describe('login modal', () => {
62
62
  cy.get(usernameLoginSelector).type('a-login');
63
63
  cy.get(submitLoginSelector).click();
64
64
  <%_ if (!clientFrameworkReact) { _%>
65
- cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(<% if (authenticationTypeSession) { %>401<% } else { %>400<% } %>));
65
+ cy.wait('@authenticate').then(({ response }) => expect(response?.statusCode).to.equal(<% if (authenticationTypeSession) { %>401<% } else { %>400<% } %>));
66
66
  cy.get(errorLoginSelector).should('be.visible');
67
67
  <%_ } else { _%>
68
68
  // login page should stay open when login fails
@@ -74,7 +74,7 @@ describe('login modal', () => {
74
74
  cy.get(usernameLoginSelector).type(username);
75
75
  cy.get(passwordLoginSelector).type('bad-password');
76
76
  cy.get(submitLoginSelector).click();
77
- cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(401));
77
+ cy.wait('@authenticate').then(({ response }) => expect(response?.statusCode).to.equal(401));
78
78
  cy.get(errorLoginSelector).should('be.visible');
79
79
  });
80
80
 
@@ -82,7 +82,7 @@ describe('login modal', () => {
82
82
  cy.get(usernameLoginSelector).type(username);
83
83
  cy.get(passwordLoginSelector).type(password);
84
84
  cy.get(submitLoginSelector).click();
85
- cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(200));
85
+ cy.wait('@authenticate').then(({ response }) => expect(response?.statusCode).to.equal(200));
86
86
  cy.hash().should('eq', '');
87
87
  });
88
88
  });
@@ -80,7 +80,7 @@ describe('/account/password', () => {
80
80
  cy.get(newPasswordSelector).type('jhipster');
81
81
  cy.get(confirmPasswordSelector).type('jhipster');
82
82
  cy.get(submitPasswordSelector).click();
83
- cy.wait('@passwordSave').then(({ response }) => expect(response.statusCode).to.equal(400));
83
+ cy.wait('@passwordSave').then(({ response }) => expect(response?.statusCode).to.equal(400));
84
84
  });
85
85
 
86
86
  it("should be able to update password", () => {
@@ -88,6 +88,6 @@ describe('/account/password', () => {
88
88
  cy.get(newPasswordSelector).type(password);
89
89
  cy.get(confirmPasswordSelector).type(password);
90
90
  cy.get(submitPasswordSelector).click();
91
- cy.wait('@passwordSave').then(({ response }) => expect(response.statusCode).to.equal(200));
91
+ cy.wait('@passwordSave').then(({ response }) => expect(response?.statusCode).to.equal(200));
92
92
  });
93
93
  });
@@ -128,6 +128,6 @@ describe('<%= registerPage %>', () => {
128
128
  cy.get(firstPasswordRegisterSelector).type('jondoe');
129
129
  cy.get(secondPasswordRegisterSelector).type('jondoe');
130
130
  cy.get(submitRegisterSelector).click();
131
- cy.wait('@registerSave').then(({ response }) => expect(response.statusCode).to.equal(201));
131
+ cy.wait('@registerSave').then(({ response }) => expect(response?.statusCode).to.equal(201));
132
132
  });
133
133
  });
@@ -54,6 +54,6 @@ describe('forgot your password', () => {
54
54
  it('should be able to init reset password', () => {
55
55
  cy.get(emailResetPasswordSelector).type('user@gmail.com');
56
56
  cy.get(submitInitResetPasswordSelector).click({ force: true });
57
- cy.wait('@initResetPassword').then(({ response }) => expect(response.statusCode).to.equal(200));
57
+ cy.wait('@initResetPassword').then(({ response }) => expect(response?.statusCode).to.equal(200));
58
58
  });
59
59
  });