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
@@ -17,8 +17,7 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
20
- import { HttpErrorResponse } from '@angular/common/http';
21
- import { HttpClientTestingModule } from '@angular/common/http/testing';
20
+ import { provideHttpClient, HttpErrorResponse } from '@angular/common/http';
22
21
  import { of, throwError } from 'rxjs';
23
22
 
24
23
  import HealthComponent from './health.component';
@@ -33,7 +32,8 @@ describe('HealthComponent', () => {
33
32
  beforeEach(
34
33
  waitForAsync(() => {
35
34
  TestBed.configureTestingModule({
36
- imports: [HttpClientTestingModule, HealthComponent],
35
+ imports: [HealthComponent],
36
+ providers: [provideHttpClient()],
37
37
  })
38
38
  .overrideTemplate(HealthComponent, '')
39
39
  .compileComponents();
@@ -72,7 +72,7 @@ describe('HealthComponent', () => {
72
72
  it('should handle a 503 on refreshing health data', () => {
73
73
  // GIVEN
74
74
  const health: Health = { status: 'DOWN', components: { mail: { status: 'DOWN' } } };
75
- jest.spyOn(service, 'checkHealth').mockReturnValue(throwError(new HttpErrorResponse({ status: 503, error: health })));
75
+ jest.spyOn(service, 'checkHealth').mockReturnValue(throwError(() => new HttpErrorResponse({ status: 503, error: health })));
76
76
 
77
77
  // WHEN
78
78
  comp.refresh();
@@ -17,7 +17,8 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { TestBed } from '@angular/core/testing';
20
- import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
20
+ import { provideHttpClientTesting, HttpTestingController } from '@angular/common/http/testing';
21
+ import { provideHttpClient } from '@angular/common/http';
21
22
 
22
23
  import { HealthService } from './health.service';
23
24
  import { ApplicationConfigService } from 'app/core/config/application-config.service';
@@ -29,7 +30,7 @@ describe('HealthService Service', () => {
29
30
 
30
31
  beforeEach(() => {
31
32
  TestBed.configureTestingModule({
32
- imports: [HttpClientTestingModule],
33
+ providers: [provideHttpClient(), provideHttpClientTesting()],
33
34
  });
34
35
 
35
36
  service = TestBed.inject(HealthService);
@@ -1,5 +1,5 @@
1
1
  import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
2
- import { HttpClientTestingModule } from '@angular/common/http/testing';
2
+ import { provideHttpClient } from '@angular/common/http';
3
3
  import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
4
4
 
5
5
  import HealthModalComponent from './health-modal.component';
@@ -12,8 +12,8 @@ describe('HealthModalComponent', () => {
12
12
  beforeEach(
13
13
  waitForAsync(() => {
14
14
  TestBed.configureTestingModule({
15
- imports: [HttpClientTestingModule, HealthModalComponent],
16
- providers: [NgbActiveModal],
15
+ imports: [HealthModalComponent],
16
+ providers: [provideHttpClient(), NgbActiveModal],
17
17
  })
18
18
  .overrideTemplate(HealthModalComponent, '')
19
19
  .compileComponents();
@@ -17,7 +17,8 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
20
- import { HttpClientTestingModule } from '@angular/common/http/testing';
20
+ import { provideHttpClientTesting } from '@angular/common/http/testing';
21
+ import { provideHttpClient } from '@angular/common/http';
21
22
  import { of } from 'rxjs';
22
23
 
23
24
  import LogsComponent from './logs.component';
@@ -35,8 +36,8 @@ describe('LogsComponent', () => {
35
36
  beforeEach(
36
37
  waitForAsync(() => {
37
38
  TestBed.configureTestingModule({
38
- imports: [HttpClientTestingModule, LogsComponent],
39
- providers: [LogsService<%= applicationTypeGateway && serviceDiscoveryAny ? ', GatewayRoutesService' : '' %>],
39
+ imports: [LogsComponent],
40
+ providers: [provideHttpClient(), provideHttpClientTesting(), LogsService<%= applicationTypeGateway && serviceDiscoveryAny ? ', GatewayRoutesService' : '' %>],
40
41
  })
41
42
  .overrideTemplate(LogsComponent, '')
42
43
  .compileComponents();
@@ -17,7 +17,8 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { TestBed } from '@angular/core/testing';
20
- import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
20
+ import { provideHttpClientTesting, HttpTestingController } from '@angular/common/http/testing';
21
+ import { provideHttpClient } from '@angular/common/http';
21
22
 
22
23
  import { LogsService } from './logs.service';
23
24
 
@@ -27,7 +28,7 @@ describe('Logs Service', () => {
27
28
 
28
29
  beforeEach(() => {
29
30
  TestBed.configureTestingModule({
30
- imports: [HttpClientTestingModule],
31
+ providers: [provideHttpClient(), provideHttpClientTesting()],
31
32
  });
32
33
 
33
34
  service = TestBed.inject(LogsService);
@@ -67,7 +67,7 @@ export class JvmThreadsComponent {
67
67
 
68
68
  private _threads: Thread[] | undefined;
69
69
 
70
- private modalService = inject(NgbModal);
70
+ private readonly modalService = inject(NgbModal);
71
71
 
72
72
  open(): void {
73
73
  const modalRef = this.modalService.open(MetricsModalThreadsComponent);
@@ -19,45 +19,45 @@
19
19
  <div class="modal-header">
20
20
  <h4 class="modal-title">__jhiTranslateTag__('metrics.jvm.threads.dump.title')</h4>
21
21
 
22
- <button type="button" class="btn-close" (click)="dismiss()">&times;</button>
22
+ <button type="button" class="btn-close" (click)="dismiss()">&nbsp;</button>
23
23
  </div>
24
24
 
25
25
  <div class="modal-body">
26
26
  <div class="mb-3">
27
- <span class="badge bg-primary hand" (click)="threadStateFilter = undefined">
27
+ <button class="badge bg-primary hand" (click)="threadStateFilter = undefined" (keydown.enter)="threadStateFilter = undefined">
28
28
  @if (threadStateFilter === undefined) {
29
29
  <fa-icon icon="check"></fa-icon>
30
30
  }
31
31
  All&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpAll }}</span>
32
- </span>
32
+ </button>
33
33
 
34
- <span class="badge bg-success hand" (click)="threadStateFilter = ThreadState.Runnable">
34
+ <button class="badge bg-success hand" (click)="threadStateFilter = ThreadState.Runnable" (keydown.enter)="threadStateFilter = ThreadState.Runnable">
35
35
  @if (threadStateFilter === ThreadState.Runnable) {
36
36
  <fa-icon icon="check"></fa-icon>
37
37
  }
38
38
  Runnable&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpRunnable }}</span>
39
- </span>
39
+ </button>
40
40
 
41
- <span class="badge bg-info hand" (click)="threadStateFilter = ThreadState.Waiting">
41
+ <button class="badge bg-info hand" (click)="threadStateFilter = ThreadState.Waiting" (keydown.enter)="threadStateFilter = ThreadState.Waiting">
42
42
  @if (threadStateFilter === ThreadState.Waiting) {
43
43
  <fa-icon icon="check"></fa-icon>
44
44
  }
45
45
  Waiting&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpWaiting }}</span>
46
- </span>
46
+ </button>
47
47
 
48
- <span class="badge bg-warning hand" (click)="threadStateFilter = ThreadState.TimedWaiting">
48
+ <button class="badge bg-warning hand" (click)="threadStateFilter = ThreadState.TimedWaiting" (keydown.enter)="threadStateFilter = ThreadState.TimedWaiting">
49
49
  @if (threadStateFilter === ThreadState.TimedWaiting) {
50
50
  <fa-icon icon="check"></fa-icon>
51
51
  }
52
52
  Timed Waiting&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpTimedWaiting }}</span>
53
- </span>
53
+ </button>
54
54
 
55
- <span class="badge bg-danger hand" (click)="threadStateFilter = ThreadState.Blocked">
55
+ <button class="badge bg-danger hand" (click)="threadStateFilter = ThreadState.Blocked" (keydown.enter)="threadStateFilter = ThreadState.Blocked">
56
56
  @if (threadStateFilter === ThreadState.Blocked) {
57
57
  <fa-icon icon="check"></fa-icon>
58
58
  }
59
59
  Blocked&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpBlocked }}</span>
60
- </span>
60
+ </button>
61
61
  </div>
62
62
 
63
63
  @for (thread of getThreads(); track $index) {
@@ -17,7 +17,7 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
20
- import { HttpClientTestingModule } from '@angular/common/http/testing';
20
+ import { provideHttpClient } from '@angular/common/http';
21
21
  import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
22
22
 
23
23
  import { MetricsModalThreadsComponent } from './metrics-modal-threads.component';
@@ -30,8 +30,8 @@ describe('MetricsModalThreadsComponent', () => {
30
30
 
31
31
  beforeEach(waitForAsync(() => {
32
32
  TestBed.configureTestingModule({
33
- imports: [HttpClientTestingModule, MetricsModalThreadsComponent],
34
- providers: [NgbActiveModal],
33
+ imports: [MetricsModalThreadsComponent],
34
+ providers: [provideHttpClient(), NgbActiveModal],
35
35
  })
36
36
  .overrideTemplate(MetricsModalThreadsComponent, '')
37
37
  .compileComponents();
@@ -18,7 +18,7 @@
18
18
  -%>
19
19
  import { ChangeDetectorRef } from '@angular/core';
20
20
  import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
21
- import { HttpClientTestingModule } from '@angular/common/http/testing';
21
+ import { provideHttpClient } from '@angular/common/http';
22
22
  import { of } from 'rxjs';
23
23
 
24
24
  import MetricsComponent from './metrics.component';
@@ -34,7 +34,8 @@ describe('MetricsComponent', () => {
34
34
  beforeEach(
35
35
  waitForAsync(() => {
36
36
  TestBed.configureTestingModule({
37
- imports: [HttpClientTestingModule, MetricsComponent],
37
+ imports: [MetricsComponent],
38
+ providers: [provideHttpClient()],
38
39
  })
39
40
  .overrideTemplate(MetricsComponent, '')
40
41
  .compileComponents();
@@ -17,7 +17,8 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { TestBed } from '@angular/core/testing';
20
- import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
20
+ import { provideHttpClientTesting, HttpTestingController } from '@angular/common/http/testing';
21
+ import { provideHttpClient } from '@angular/common/http';
21
22
 
22
23
  import { MetricsService } from './metrics.service';
23
24
  import { ThreadDump, ThreadState } from './metrics.model';
@@ -28,7 +29,7 @@ describe('Logs Service', () => {
28
29
 
29
30
  beforeEach(() => {
30
31
  TestBed.configureTestingModule({
31
- imports: [HttpClientTestingModule],
32
+ providers: [provideHttpClient(), provideHttpClientTesting()],
32
33
  });
33
34
  service = TestBed.inject(MetricsService);
34
35
  httpMock = TestBed.inject(HttpTestingController);
@@ -20,8 +20,6 @@
20
20
  <form name="deleteForm" (ngSubmit)="confirmDelete(user.login!)">
21
21
  <div class="modal-header">
22
22
  <h4 class="modal-title">__jhiTranslateTag__('entity.delete.title')</h4>
23
-
24
- <span class="btn btn-close" data-dismiss="modal" aria-hidden="true" (click)="cancel()"></span>
25
23
  </div>
26
24
 
27
25
  <div class="modal-body">
@@ -19,7 +19,7 @@
19
19
  jest.mock('@ng-bootstrap/ng-bootstrap');
20
20
 
21
21
  import { ComponentFixture, TestBed, waitForAsync, inject, fakeAsync, tick } from '@angular/core/testing';
22
- import { HttpClientTestingModule } from '@angular/common/http/testing';
22
+ import { provideHttpClient } from '@angular/common/http';
23
23
  import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
24
24
  import { of } from 'rxjs';
25
25
 
@@ -36,8 +36,8 @@ describe('User Management Delete Component', () => {
36
36
  beforeEach(
37
37
  waitForAsync(() => {
38
38
  TestBed.configureTestingModule({
39
- imports: [HttpClientTestingModule, UserManagementDeleteDialogComponent],
40
- providers: [NgbActiveModal],
39
+ imports: [UserManagementDeleteDialogComponent],
40
+ providers: [provideHttpClient(), NgbActiveModal],
41
41
  })
42
42
  .overrideTemplate(UserManagementDeleteDialogComponent, '')
43
43
  .compileComponents();
@@ -22,7 +22,7 @@
22
22
 
23
23
  <div class="d-flex justify-content-end">
24
24
  <button class="btn btn-info me-2" (click)="loadAll()" [disabled]="isLoading()">
25
- <fa-icon icon="sync" [spin]="isLoading()"></fa-icon>
25
+ <fa-icon icon="sync" [animation]="isLoading() ? 'spin' : undefined"></fa-icon>
26
26
  <span>__jhiTranslateTag__('userManagement.home.refreshListLabel')</span>
27
27
  </button>
28
28
  <button class="btn btn-primary jh-create-entity" [routerLink]="['./new']">
@@ -22,8 +22,7 @@ _%>
22
22
  jest.mock('app/core/auth/account.service');
23
23
 
24
24
  import { ComponentFixture, TestBed, waitForAsync, inject, fakeAsync, tick } from '@angular/core/testing';
25
- import { HttpHeaders, HttpResponse } from '@angular/common/http';
26
- import { HttpClientTestingModule } from '@angular/common/http/testing';
25
+ import { provideHttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
27
26
  import { ActivatedRoute } from '@angular/router';
28
27
  import { of } from 'rxjs';
29
28
 
@@ -52,8 +51,8 @@ describe('User Management Component', () => {
52
51
  beforeEach(
53
52
  waitForAsync(() => {
54
53
  TestBed.configureTestingModule({
55
- imports: [HttpClientTestingModule, UserManagementComponent],
56
- providers: [{ provide: ActivatedRoute, useValue: { data, queryParamMap } }, AccountService],
54
+ imports: [UserManagementComponent],
55
+ providers: [provideHttpClient(), { provide: ActivatedRoute, useValue: { data, queryParamMap } }, AccountService],
57
56
  })
58
57
  .overrideTemplate(UserManagementComponent, '')
59
58
  .compileComponents();
@@ -20,8 +20,8 @@
20
20
  const tsKeyId = this.generateTestEntityId(user.primaryKey.type);
21
21
  _%>
22
22
  import { TestBed } from '@angular/core/testing';
23
- import { HttpErrorResponse } from '@angular/common/http';
24
- import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
23
+ import { provideHttpClient, HttpErrorResponse } from '@angular/common/http';
24
+ import { provideHttpClientTesting, HttpTestingController } from '@angular/common/http/testing';
25
25
 
26
26
  <%_ if (generateBuiltInAuthorityEntity) { _%>
27
27
  import { Authority } from 'app/config/authority.constants';
@@ -36,7 +36,7 @@ describe('User Service', () => {
36
36
 
37
37
  beforeEach(() => {
38
38
  TestBed.configureTestingModule({
39
- imports: [HttpClientTestingModule],
39
+ providers: [provideHttpClient(), provideHttpClientTesting()],
40
40
  });
41
41
 
42
42
  service = TestBed.inject(UserManagementService);
@@ -20,7 +20,7 @@
20
20
  const tsKeyId = this.generateTestEntityId(user.primaryKey.type);
21
21
  _%>
22
22
  import { ComponentFixture, TestBed, waitForAsync, inject, fakeAsync, tick } from '@angular/core/testing';
23
- import { HttpClientTestingModule } from '@angular/common/http/testing';
23
+ import { provideHttpClient } from '@angular/common/http';
24
24
  import { FormBuilder } from '@angular/forms';
25
25
  import { ActivatedRoute } from '@angular/router';
26
26
  import { of } from 'rxjs';
@@ -38,8 +38,9 @@ describe('User Management Update Component', () => {
38
38
 
39
39
  beforeEach(waitForAsync(() => {
40
40
  TestBed.configureTestingModule({
41
- imports: [HttpClientTestingModule, UserManagementUpdateComponent],
41
+ imports: [UserManagementUpdateComponent],
42
42
  providers: [
43
+ provideHttpClient(),
43
44
  FormBuilder,
44
45
  {
45
46
  provide: ActivatedRoute,
@@ -25,7 +25,7 @@ import { TranslateService } from "@ngx-translate/core";
25
25
  @Injectable()
26
26
  export class AppPageTitleStrategy extends TitleStrategy {
27
27
  <%_ if (enableTranslation) { _%>
28
- private translateService = inject(TranslateService);
28
+ private readonly translateService = inject(TranslateService);
29
29
  <%_ } _%>
30
30
 
31
31
  override updateTitle(routerState: RouterStateSnapshot): void {
@@ -23,7 +23,6 @@ import { FaIconLibrary } from '@fortawesome/angular-fontawesome';
23
23
  import { NgbDatepickerConfig } from '@ng-bootstrap/ng-bootstrap';
24
24
  import { provideRouter } from '@angular/router';
25
25
  import { registerLocaleData } from '@angular/common';
26
- import { HttpClientModule } from '@angular/common/http';
27
26
  import locale from '@angular/common/locales/<%= angularLocaleId %>';
28
27
  import { FaIconLibrary } from '@fortawesome/angular-fontawesome';
29
28
  import dayjs from 'dayjs/esm';
@@ -20,7 +20,7 @@ import { ApplicationConfig, LOCALE_ID, importProvidersFrom, inject } from '@angu
20
20
  import { BrowserModule, Title } from '@angular/platform-browser';
21
21
  import { Router, RouterFeatures, TitleStrategy, provideRouter, withComponentInputBinding, withDebugTracing, withNavigationErrorHandler, NavigationError } from '@angular/router';
22
22
  import { ServiceWorkerModule } from '@angular/service-worker';
23
- import { HttpClientModule } from '@angular/common/http';
23
+ import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
24
24
 
25
25
  import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
26
26
 
@@ -62,7 +62,7 @@ export const appConfig: ApplicationConfig = {
62
62
  <%_ if (enableTranslation) { _%>
63
63
  importProvidersFrom(TranslationModule),
64
64
  <%_ } _%>
65
- importProvidersFrom(HttpClientModule),
65
+ provideHttpClient(withInterceptorsFromDi()),
66
66
  Title,
67
67
  { provide: LOCALE_ID, useValue: '<%= angularLocaleId %>' },
68
68
  { provide: NgbDateAdapter, useClass: NgbDateDayjsAdapter },
@@ -23,7 +23,7 @@ import { ITEMS_PER_PAGE } from 'app/config/pagination.constants';
23
23
 
24
24
  @Injectable({ providedIn: 'root' })
25
25
  export class PaginationConfig {
26
- private config = inject(NgbPaginationConfig);
26
+ private readonly config = inject(NgbPaginationConfig);
27
27
  constructor() {
28
28
  this.config.boundaryLinks = true;
29
29
  this.config.maxSize = 5;
@@ -19,7 +19,8 @@
19
19
  jest.mock('app/core/auth/state-storage.service');
20
20
 
21
21
  import { Router } from '@angular/router';
22
- import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
22
+ import { provideHttpClientTesting, HttpTestingController } from '@angular/common/http/testing';
23
+ import { provideHttpClient } from '@angular/common/http';
23
24
  import { TestBed } from '@angular/core/testing';
24
25
  <%_ if (enableTranslation) { _%>
25
26
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
@@ -62,13 +63,14 @@ describe('Account Service', () => {
62
63
 
63
64
  beforeEach(() => {
64
65
  TestBed.configureTestingModule({
66
+ <%_ if (enableTranslation) { _%>
65
67
  imports: [
66
- HttpClientTestingModule,
67
- <%_ if (enableTranslation) { _%>
68
68
  TranslateModule.forRoot(),
69
- <%_ } _%>
70
69
  ],
70
+ <%_ } _%>
71
71
  providers: [
72
+ provideHttpClient(),
73
+ provideHttpClientTesting(),
72
74
  StateStorageService,
73
75
  ],
74
76
  });
@@ -214,7 +216,7 @@ describe('save', () => {
214
216
  it('should not navigate to the previous stored url when authentication fails', () => {
215
217
  // WHEN
216
218
  service.identity().subscribe();
217
- httpMock.expectOne({ method: 'GET' }).error(new ErrorEvent(''));
219
+ httpMock.expectOne({ method: 'GET' }).error(new ProgressEvent(''));
218
220
 
219
221
  // THEN
220
222
  expect(mockStorageService.getUrl).not.toHaveBeenCalled();
@@ -17,7 +17,8 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { TestBed } from '@angular/core/testing';
20
- import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
20
+ import { provideHttpClientTesting, HttpTestingController } from '@angular/common/http/testing';
21
+ import { provideHttpClient } from '@angular/common/http';
21
22
  import { AuthServerProvider } from 'app/core/auth/auth-jwt.service';
22
23
  import { StateStorageService } from './state-storage.service';
23
24
 
@@ -28,7 +29,7 @@ describe('Auth JWT', () => {
28
29
 
29
30
  beforeEach(() => {
30
31
  TestBed.configureTestingModule({
31
- imports: [HttpClientTestingModule],
32
+ providers: [provideHttpClient(), provideHttpClientTesting()],
32
33
  });
33
34
 
34
35
  mockStorageService = TestBed.inject(StateStorageService);
@@ -43,7 +43,7 @@ export const UserRouteAccessService: CanActivateFn = (next: ActivatedRouteSnapsh
43
43
  }
44
44
 
45
45
  if (isDevMode()) {
46
- console.error('User has not any of required authorities: ', authorities);
46
+ console.error('User does not have any of the required authorities:', authorities);
47
47
  }
48
48
  router.navigate(['accessdenied']);
49
49
  return false;
@@ -27,9 +27,9 @@ import { StateStorageService } from 'app/core/auth/state-storage.service';
27
27
 
28
28
  @Injectable()
29
29
  export class AuthExpiredInterceptor implements HttpInterceptor {
30
- private loginService = inject(LoginService);
31
- private stateStorageService = inject(StateStorageService);
32
- private router = inject(Router);
30
+ private readonly loginService = inject(LoginService);
31
+ private readonly stateStorageService = inject(StateStorageService);
32
+ private readonly router = inject(Router);
33
33
 
34
34
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
35
35
  return next.handle(request).pipe(
@@ -25,8 +25,8 @@ import { ApplicationConfigService } from '../config/application-config.service';
25
25
 
26
26
  @Injectable()
27
27
  export class AuthInterceptor implements HttpInterceptor {
28
- private stateStorageService = inject(StateStorageService);
29
- private applicationConfigService = inject(ApplicationConfigService);
28
+ private readonly stateStorageService = inject(StateStorageService);
29
+ private readonly applicationConfigService = inject(ApplicationConfigService);
30
30
 
31
31
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
32
32
  const serverApiUrl = this.applicationConfigService.getEndpointFor('');
@@ -25,7 +25,7 @@ import { EventManager, EventWithContent } from 'app/core/util/event-manager.serv
25
25
 
26
26
  @Injectable()
27
27
  export class ErrorHandlerInterceptor implements HttpInterceptor {
28
- private eventManager = inject(EventManager);
28
+ private readonly eventManager = inject(EventManager);
29
29
 
30
30
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
31
31
  return next.handle(request).pipe(
@@ -123,10 +123,10 @@ describe('Alert service test', () => {
123
123
 
124
124
  it('should produce an alert object with correct id', inject([AlertService], (service: AlertService) => {
125
125
  service.addAlert({ type: 'info', message: 'Hello Jhipster info' });
126
- expect(service.addAlert({ type: 'success', message: 'Hello Jhipster success' })).toEqual(
126
+ expect(service.addAlert({ type: 'success', message: 'Hello JHipster success' })).toEqual(
127
127
  expect.objectContaining({
128
128
  type: 'success',
129
- message: 'Hello Jhipster success',
129
+ message: 'Hello JHipster success',
130
130
  id: 1,
131
131
  } as Alert)
132
132
  );
@@ -135,7 +135,7 @@ describe('Alert service test', () => {
135
135
  expect(service.get()[1]).toEqual(
136
136
  expect.objectContaining({
137
137
  type: 'success',
138
- message: 'Hello Jhipster success',
138
+ message: 'Hello JHipster success',
139
139
  id: 1,
140
140
  } as Alert)
141
141
  );
@@ -144,11 +144,11 @@ describe('Alert service test', () => {
144
144
  it('should close an alert correctly', inject([AlertService], (service: AlertService) => {
145
145
  const alert0 = service.addAlert({ type: 'info', message: 'Hello Jhipster info' });
146
146
  const alert1 = service.addAlert({ type: 'info', message: 'Hello Jhipster info 2' });
147
- const alert2 = service.addAlert({ type: 'success', message: 'Hello Jhipster success' });
147
+ const alert2 = service.addAlert({ type: 'success', message: 'Hello JHipster success' });
148
148
  expect(alert2).toEqual(
149
149
  expect.objectContaining({
150
150
  type: 'success',
151
- message: 'Hello Jhipster success',
151
+ message: 'Hello JHipster success',
152
152
  id: 2,
153
153
  } as Alert)
154
154
  );
@@ -168,7 +168,7 @@ describe('Alert service test', () => {
168
168
  expect(service.get()[0]).not.toEqual(
169
169
  expect.objectContaining({
170
170
  type: 'success',
171
- message: 'Hello Jhipster success',
171
+ message: 'Hello JHipster success',
172
172
  id: 2,
173
173
  } as Alert)
174
174
  );
@@ -20,9 +20,6 @@
20
20
  <form name="deleteForm" (ngSubmit)="confirmDelete(<%= entityInstance %>.<%= primaryKey.name %>!)">
21
21
  <div class="modal-header">
22
22
  <h4 class="modal-title" data-cy="<%= entityInstance %>DeleteDialogHeading">__jhiTranslateTag__('entity.delete.title')</h4>
23
-
24
- <span class="btn btn-close" data-dismiss="modal" aria-hidden="true"
25
- (click)="cancel()"></span>
26
23
  </div>
27
24
 
28
25
  <div class="modal-body">
@@ -22,8 +22,7 @@ _%>
22
22
  jest.mock('@ng-bootstrap/ng-bootstrap');
23
23
 
24
24
  import { ComponentFixture, TestBed, inject, fakeAsync, tick } from '@angular/core/testing';
25
- import { HttpResponse } from '@angular/common/http';
26
- import { HttpClientTestingModule } from '@angular/common/http/testing';
25
+ import { provideHttpClient, HttpResponse } from '@angular/common/http';
27
26
  import { of } from 'rxjs';
28
27
  import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
29
28
 
@@ -39,8 +38,8 @@ describe('<%= entityAngularName %> Management Delete Component', () => {
39
38
 
40
39
  beforeEach(() => {
41
40
  TestBed.configureTestingModule({
42
- imports: [HttpClientTestingModule, <%= entityAngularName %>DeleteDialogComponent],
43
- providers: [NgbActiveModal]
41
+ imports: [<%= entityAngularName %>DeleteDialogComponent],
42
+ providers: [provideHttpClient(), NgbActiveModal]
44
43
  })
45
44
  .overrideTemplate(<%= entityAngularName %>DeleteDialogComponent, '')
46
45
  .compileComponents();
@@ -96,7 +96,7 @@ describe('<%= entityAngularName %> Management Detail Component', () => {
96
96
  comp.byteSize(fakeBase64);
97
97
 
98
98
  // THEN
99
- expect(dataUtils.byteSize).toBeCalledWith(fakeBase64);
99
+ expect(dataUtils.byteSize).toHaveBeenCalledWith(fakeBase64);
100
100
  });
101
101
  });
102
102
 
@@ -116,7 +116,7 @@ describe('<%= entityAngularName %> Management Detail Component', () => {
116
116
  comp.openFile(fakeBase64, fakeContentType);
117
117
 
118
118
  // THEN
119
- expect(dataUtils.openFile).toBeCalledWith(fakeBase64, fakeContentType);
119
+ expect(dataUtils.openFile).toHaveBeenCalledWith(fakeBase64, fakeContentType);
120
120
  });
121
121
  });
122
122
  <%_ } _%>
@@ -22,7 +22,7 @@
22
22
 
23
23
  <div class="d-flex justify-content-end">
24
24
  <button class="btn btn-info me-2" (click)="load()" [disabled]="isLoading">
25
- <fa-icon icon="sync" [spin]="isLoading"></fa-icon>
25
+ <fa-icon icon="sync" [animation]="isLoading ? 'spin' : undefined"></fa-icon>
26
26
  <span>__jhiTranslateTag__('<%- i18nKeyPrefix %>.home.refreshListLabel')</span>
27
27
  </button>
28
28
  <%_ if (!readOnly) { _%>
@@ -29,8 +29,7 @@ import {
29
29
  fakeAsync, inject, tick,
30
30
  <%_ } _%>
31
31
  } from '@angular/core/testing';
32
- import { HttpHeaders, HttpResponse } from '@angular/common/http';
33
- import { HttpClientTestingModule } from '@angular/common/http/testing';
32
+ import { provideHttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
34
33
  import { ActivatedRoute } from '@angular/router';
35
34
  import {
36
35
  of,
@@ -59,10 +58,10 @@ describe('<%= entityAngularName %> Management Component', () => {
59
58
  beforeEach(() => {
60
59
  TestBed.configureTestingModule({
61
60
  imports: [
62
- HttpClientTestingModule,
63
61
  <%= entityAngularName %>Component,
64
62
  ],
65
63
  providers: [
64
+ provideHttpClient(),
66
65
  {
67
66
  provide: ActivatedRoute,
68
67
  useValue: {