generator-jhipster 8.5.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 (211) 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 +17 -17
  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 +4 -3
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +3 -2
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +3 -3
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +3 -2
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +2 -3
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.spec.ts.ejs +3 -2
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +3 -3
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +3 -4
  19. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +3 -3
  20. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +3 -2
  21. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +4 -4
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +3 -2
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +3 -3
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +4 -3
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +3 -2
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts.ejs +1 -1
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.spec.ts.ejs +3 -3
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +3 -2
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +3 -2
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +3 -3
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +3 -4
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +3 -3
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -2
  35. package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -1
  36. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +0 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +2 -2
  38. package/dist/generators/angular/templates/src/main/webapp/app/config/uib-pagination.config.ts.ejs +1 -1
  39. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +7 -5
  40. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.spec.ts.ejs +3 -2
  41. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth-expired.interceptor.ts.ejs +3 -3
  42. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth.interceptor.ts.ejs +2 -2
  43. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts.ejs +1 -1
  44. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +6 -6
  45. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +3 -4
  46. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +1 -1
  47. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -3
  48. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +2 -2
  49. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +2 -3
  50. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +5 -3
  51. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +2 -3
  52. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.ts.ejs +2 -2
  53. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +3 -3
  54. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
  55. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +3 -2
  56. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +3 -3
  57. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts.ejs +1 -1
  58. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +2 -2
  59. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +10 -10
  60. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +6 -7
  61. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +4 -4
  62. package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +2 -0
  63. package/dist/generators/base/command.js +1 -0
  64. package/dist/generators/base/generator.js +7 -12
  65. package/dist/generators/base/internal/command.js +13 -0
  66. package/dist/generators/base/internal/index.js +1 -0
  67. package/dist/generators/base/shared-data.js +74 -2
  68. package/dist/generators/base/support/config.js +1 -1
  69. package/dist/generators/base/support/jhipster7-context.js +155 -52
  70. package/dist/generators/base-application/generator.js +1 -1
  71. package/dist/generators/base-core/generator.js +93 -55
  72. package/dist/generators/bootstrap/generator.js +1 -1
  73. package/dist/generators/bootstrap/support/eslint-worker.js +14 -12
  74. package/dist/generators/bootstrap/support/multi-step-transform/template-file.js +6 -1
  75. package/dist/generators/bootstrap-application/generator.js +1 -1
  76. package/dist/generators/bootstrap-application-client/generator.js +5 -1
  77. package/dist/generators/ci-cd/generator.js +1 -1
  78. package/dist/generators/ci-cd/templates/docker-registry.yml.ejs +0 -1
  79. package/dist/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +0 -1
  80. package/dist/generators/client/generator.js +2 -3
  81. package/dist/generators/client/resources/package.json +3 -3
  82. package/dist/generators/client/support/filter-entities.js +1 -1
  83. package/dist/generators/client/templates/.eslintignore.ejs +9 -5
  84. package/dist/generators/client/templates/README.md.jhi.client.ejs +29 -20
  85. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
  86. package/dist/generators/common/resources/package.json +1 -1
  87. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
  88. package/dist/generators/docker/templates/docker/mariadb.yml.ejs +1 -1
  89. package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -2
  90. package/dist/generators/docker/templates/docker/realm-config/keycloak-health-check.sh +2 -2
  91. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -0
  92. package/dist/generators/docker-compose/templates/realm-config/keycloak-health-check.sh +2 -2
  93. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +1 -1
  94. package/dist/generators/gatling/generator.js +0 -1
  95. package/dist/generators/generate-blueprint/files.js +3 -1
  96. package/dist/generators/generate-blueprint/generator.js +17 -7
  97. package/dist/generators/generate-blueprint/resources/package.json +2 -0
  98. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +2 -6
  99. package/dist/generators/generate-blueprint/templates/.github/workflows/build-cache.yml.ejs +39 -0
  100. package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +105 -0
  101. package/dist/generators/generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs +1 -1
  102. package/dist/generators/generate-blueprint/templates/eslint.config.js.ejs +33 -0
  103. package/dist/generators/generator-constants.js +2 -2
  104. package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
  105. package/dist/generators/heroku/generator.js +1 -1
  106. package/dist/generators/info/support/extract-info.js +60 -0
  107. package/dist/generators/info/support/index.js +1 -0
  108. package/dist/generators/init/resources/.node-version +1 -1
  109. package/dist/generators/init/resources/package.json +2 -2
  110. package/dist/generators/java/generators/bootstrap/generator.js +9 -2
  111. package/dist/generators/java/generators/build-tool/command.js +2 -2
  112. package/dist/generators/java/generators/node/templates/npmw +1 -5
  113. package/dist/generators/java/support/add-java-annotation.js +1 -1
  114. package/dist/generators/jdl/generator.js +6 -6
  115. package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +1 -0
  116. package/dist/generators/languages/generator.js +1 -0
  117. package/dist/generators/liquibase/templates/src/main/java/_package_/config/LiquibaseConfiguration.java.ejs +1 -1
  118. package/dist/generators/maven/command.js +15 -0
  119. package/dist/generators/maven/generator.js +6 -1
  120. package/dist/generators/maven/index.js +1 -0
  121. package/dist/generators/maven/internal/xml-store.js +7 -6
  122. package/dist/generators/maven/support/pom-store.js +24 -9
  123. package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  124. package/dist/generators/react/entity-files-react.js +7 -7
  125. package/dist/generators/react/resources/package.json +12 -12
  126. package/dist/generators/react/templates/src/main/webapp/app/app.tsx.ejs +9 -0
  127. package/dist/generators/react/templates/src/main/webapp/app/config/translation.ts.ejs +4 -0
  128. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +15 -1
  129. package/dist/generators/react/templates/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +4 -0
  130. package/dist/generators/react/templates/src/main/webapp/app/modules/login/logout.tsx.ejs +5 -3
  131. package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +1 -1
  132. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +1 -1
  133. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.tsx.ejs +1 -1
  134. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.tsx.ejs +0 -9
  135. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +1 -3
  136. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +29 -6
  137. package/dist/generators/react/templates/src/main/webapp/app/shared/util/url-utils.ts.ejs +1 -1
  138. package/dist/generators/server/generator.js +7 -5
  139. package/dist/generators/server/resources/Dockerfile +5 -5
  140. package/dist/generators/server/resources/gradle/libs.versions.toml +5 -5
  141. package/dist/generators/server/resources/pom.xml +11 -11
  142. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +1 -1
  143. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +1 -1
  144. package/dist/generators/server/templates/pom.xml.ejs +0 -26
  145. package/dist/generators/server/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs +1 -1
  146. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +1 -1
  147. package/dist/generators/server/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +1 -1
  148. package/dist/generators/server/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +1 -1
  149. package/dist/generators/server/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs +1 -1
  150. package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs +1 -1
  151. package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +1 -1
  152. package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +11 -0
  153. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
  154. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +1 -1
  155. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +1 -1
  156. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +1 -1
  157. package/dist/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
  158. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +1 -1
  159. package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
  160. package/dist/generators/spring-boot/generator.js +4 -2
  161. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +105 -105
  162. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/UserService.java.ejs +1 -1
  163. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +1 -1
  164. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.java.ejs +1 -1
  165. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/PublicUserResource.java.ejs +1 -1
  166. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/UserResource.java.ejs +1 -1
  167. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +1 -1
  168. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  169. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +3 -3
  170. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -0
  171. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_imperative.java.ejs +1 -1
  172. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_reactive.java.ejs +1 -1
  173. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
  174. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
  175. package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
  176. package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/config/DatabaseConfiguration.java_neo4j.ejs +18 -2
  177. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
  178. package/dist/generators/vue/entity-files-vue.js +7 -7
  179. package/dist/generators/vue/resources/package.json +11 -11
  180. package/dist/generators/vue/templates/.eslintrc.cjs.ejs +7 -0
  181. package/dist/lib/eslint/base.js +25 -0
  182. package/dist/lib/eslint/recommended.js +22 -0
  183. package/dist/testing/github.js +32 -0
  184. package/dist/testing/helpers.js +9 -0
  185. package/dist/testing/index.js +2 -0
  186. package/dist/testing/sample-config.js +31 -0
  187. package/dist/types/cli/commands.d.mts +2 -0
  188. package/dist/types/cli/environment-builder.d.mts +1 -0
  189. package/dist/types/generators/base/api.d.ts +14 -7
  190. package/dist/types/generators/base/internal/command.d.ts +2 -0
  191. package/dist/types/generators/base/internal/index.d.ts +1 -0
  192. package/dist/types/generators/base/shared-data.d.ts +10 -1
  193. package/dist/types/generators/base/types.d.ts +12 -0
  194. package/dist/types/generators/base-application/types.d.ts +11 -0
  195. package/dist/types/generators/base-core/generator.d.ts +2 -1
  196. package/dist/types/generators/generator-constants.d.ts +1 -1
  197. package/dist/types/generators/info/support/extract-info.d.ts +14 -0
  198. package/dist/types/generators/info/support/index.d.ts +1 -0
  199. package/dist/types/generators/java/types.d.ts +12 -0
  200. package/dist/types/generators/maven/internal/xml-store.d.ts +3 -2
  201. package/dist/types/generators/maven/support/pom-store.d.ts +5 -2
  202. package/dist/types/generators/maven/types.d.ts +1 -0
  203. package/dist/types/generators/server/types.d.ts +2 -1
  204. package/dist/types/lib/eslint/base.d.ts +20 -0
  205. package/dist/types/lib/eslint/recommended.d.ts +20 -0
  206. package/dist/types/testing/github.d.ts +11 -0
  207. package/dist/types/testing/helpers.d.ts +8 -0
  208. package/dist/types/testing/index.d.ts +2 -0
  209. package/dist/types/testing/sample-config.d.ts +4 -0
  210. package/package.json +22 -18
  211. package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +0 -35
package/README.md CHANGED
@@ -18,10 +18,9 @@ We are honored by any contributions you may have small or large. Please refer to
18
18
 
19
19
  The following Java and Node combinations are tested and verified by GitHub Actions:
20
20
 
21
- | Java | Node | Status |
22
- | ---- | ---- | ------ |
23
- | 21 | 20 | ✅ |
24
- | 17 | 18 | ✅ |
21
+ | Java | Node | Status |
22
+ | -------- | ----- | ------ |
23
+ | 17/21/22 | 18/20 | ✅ |
25
24
 
26
25
  ## Sponsors
27
26
 
@@ -25,6 +25,7 @@ If you are interested in maintaining this sub-generator fill a feature request o
25
25
  const defaultCommands = {
26
26
  add: {
27
27
  desc: 'Add a feature to current project',
28
+ removed: removedV8,
28
29
  },
29
30
  app: {
30
31
  desc: '[Default] Create a new JHipster application based on the selected options',
@@ -134,6 +135,7 @@ const defaultCommands = {
134
135
  },
135
136
  page: {
136
137
  desc: 'Create a new page. (Supports vue clients)',
138
+ removed: removedV8,
137
139
  },
138
140
  'project-name': {
139
141
  desc: 'Configure project name (alpha)',
@@ -86,6 +86,11 @@ export default class EnvironmentBuilder {
86
86
  static async createDefaultBuilder(...args) {
87
87
  return EnvironmentBuilder.create(...args).prepare();
88
88
  }
89
+ static async run(args, generatorOptions = {}, envOptions = {}) {
90
+ const envBuilder = await EnvironmentBuilder.createDefaultBuilder(envOptions);
91
+ const env = envBuilder.getEnvironment();
92
+ await env.run(args, generatorOptions);
93
+ }
89
94
  /**
90
95
  * Class to manipulate yeoman environment for jhipster needs.
91
96
  * - Registers jhipster generators.
@@ -32,6 +32,7 @@ import { packageJson } from '../lib/index.js';
32
32
  import { packageNameToNamespace } from '../generators/base/support/index.js';
33
33
  import command from '../generators/base/command.js';
34
34
  import { GENERATOR_APP, GENERATOR_BOOTSTRAP, GENERATOR_JDL } from '../generators/generator-list.js';
35
+ import { extractArgumentsFromConfigs } from '../generators/base/internal/command.js';
35
36
  const __filename = fileURLToPath(import.meta.url);
36
37
  const __dirname = dirname(__filename);
37
38
  const { version: JHIPSTER_VERSION } = packageJson;
@@ -85,8 +86,13 @@ const buildAllDependencies = async (generatorNames, { env, blueprintNamespaces }
85
86
  const addCommandGeneratorOptions = async (command, generatorMeta, { root, blueprintOptionDescription, info } = {}) => {
86
87
  const generatorModule = await generatorMeta.importModule();
87
88
  if (generatorModule.command) {
88
- command.addJHipsterOptions(generatorModule.command.options, blueprintOptionDescription);
89
- command.addJHipsterConfigs(generatorModule.command.configs, blueprintOptionDescription);
89
+ const { options, configs } = generatorModule.command;
90
+ if (options) {
91
+ command.addJHipsterOptions(options, blueprintOptionDescription);
92
+ }
93
+ if (configs) {
94
+ command.addJHipsterConfigs(configs, blueprintOptionDescription);
95
+ }
90
96
  }
91
97
  try {
92
98
  if (root || !generatorModule.command || generatorModule.command.loadGeneratorOptions) {
@@ -105,7 +111,7 @@ const addCommandGeneratorOptions = async (command, generatorMeta, { root, bluepr
105
111
  const addCommandRootGeneratorOptions = async (command, generatorMeta, { usage = true } = {}) => {
106
112
  const generatorModule = await generatorMeta.importModule();
107
113
  if (generatorModule.command) {
108
- command.addJHipsterArguments(generatorModule.command.arguments);
114
+ command.addJHipsterArguments(generatorModule.command.arguments ?? extractArgumentsFromConfigs(generatorModule.command.configs));
109
115
  }
110
116
  else {
111
117
  const generator = await generatorMeta.instantiateHelp();
@@ -158,7 +164,7 @@ export const buildCommands = async ({ program, commands = {}, envBuilder, env, l
158
164
  Object.entries(commands).forEach(([cmdName, opts]) => {
159
165
  const { desc, blueprint, argument, options: commandOptions, alias, help: commandHelp, cliOnly, removed, useOptions = {} } = opts;
160
166
  program
161
- .command(cmdName, '', { isDefault: cmdName === defaultCommand })
167
+ .command(cmdName, '', { isDefault: cmdName === defaultCommand, hidden: Boolean(removed) })
162
168
  .description(desc + (blueprint ? chalk.yellow(` (blueprint: ${blueprint})`) : ''))
163
169
  .addCommandArguments(argument)
164
170
  .addCommandOptions(commandOptions)
@@ -1,6 +1,5 @@
1
1
  import { clientApplicationTemplatesBlock } from '../client/support/files.js';
2
2
  import { asWritingEntitiesTask } from '../base-application/support/task-type-inference.js';
3
- import { filterEntitiesAndPropertiesForClient, filterEntitiesForClient } from '../client/support/index.js';
4
3
  const entityModelFiles = clientApplicationTemplatesBlock({
5
4
  templates: ['entities/_entityFolder_/_entityFile_.model.ts', 'entities/_entityFolder_/_entityFile_.test-samples.ts'],
6
5
  });
@@ -69,8 +68,8 @@ export const userManagementFiles = {
69
68
  }),
70
69
  ],
71
70
  };
72
- export const writeEntitiesFiles = asWritingEntitiesTask(async function ({ application, entities }) {
73
- for (const entity of filterEntitiesAndPropertiesForClient(entities)) {
71
+ export const writeEntitiesFiles = asWritingEntitiesTask(async function ({ control, application, entities }) {
72
+ for (const entity of (control.filterEntitiesAndPropertiesForClient ?? (entities => entities))(entities)) {
74
73
  if (entity.builtInUser) {
75
74
  await this.writeFiles({
76
75
  sections: builtInFiles,
@@ -103,12 +102,12 @@ export const writeEntitiesFiles = asWritingEntitiesTask(async function ({ applic
103
102
  }
104
103
  });
105
104
  export async function postWriteEntitiesFiles(taskParam) {
106
- const { source, application } = taskParam;
107
- const entities = filterEntitiesForClient(taskParam.entities).filter(entity => !entity.builtInUser && !entity.embedded && !entity.entityClientModelOnly);
105
+ const { control, source, application } = taskParam;
106
+ const entities = (control.filterEntitiesForClient ?? (entities => entities))(taskParam.entities).filter(entity => !entity.builtInUser && !entity.embedded && !entity.entityClientModelOnly);
108
107
  source.addEntitiesToClient({ application, entities });
109
108
  }
110
- export function cleanupEntitiesFiles({ application, entities }) {
111
- for (const entity of filterEntitiesForClient(entities).filter(entity => !entity.builtIn)) {
109
+ export function cleanupEntitiesFiles({ control, application, entities }) {
110
+ for (const entity of (control.filterEntitiesForClient ?? (entities => entities))(entities).filter(entity => !entity.builtIn)) {
112
111
  const { entityFolderName, entityFileName, name: entityName } = entity;
113
112
  if (this.isJhipsterVersionLessThan('5.0.0')) {
114
113
  this.removeFile(`${application.clientSrcDir}app/entities/${entityName}/${entityName}.model.ts`);
@@ -1,34 +1,34 @@
1
1
  {
2
2
  "dependencies": {
3
- "@angular/common": "17.3.9",
4
- "@fortawesome/angular-fontawesome": "0.14.1",
3
+ "@angular/common": "18.0.4",
4
+ "@fortawesome/angular-fontawesome": "0.15.0",
5
5
  "@fortawesome/fontawesome-svg-core": "6.5.2",
6
6
  "@fortawesome/free-solid-svg-icons": "6.5.2",
7
- "@ng-bootstrap/ng-bootstrap": "16.0.0",
7
+ "@ng-bootstrap/ng-bootstrap": "17.0.0",
8
8
  "@ngx-translate/core": "15.0.0",
9
9
  "@ngx-translate/http-loader": "8.0.0",
10
10
  "@popperjs/core": "2.11.8",
11
11
  "@stomp/rx-stomp": "2.0.0",
12
12
  "bootstrap": "5.3.3",
13
13
  "bootswatch": "5.3.3",
14
- "ngx-cookie-service": "17.1.0",
15
- "ngx-infinite-scroll": "17.0.0",
14
+ "ngx-cookie-service": "18.0.0",
15
+ "ngx-infinite-scroll": "18.0.0",
16
16
  "rxjs": "7.8.1",
17
17
  "sockjs-client": "1.6.1",
18
- "tslib": "2.6.2",
19
- "zone.js": "0.14.6"
18
+ "tslib": "2.6.3",
19
+ "zone.js": "0.14.7"
20
20
  },
21
21
  "devDependencies": {
22
- "@angular-architects/module-federation": "17.0.8",
23
- "@angular-architects/module-federation-runtime": "17.0.8",
24
- "@angular-builders/custom-webpack": "17.0.2",
25
- "@angular-builders/jest": "17.0.3",
26
- "@angular-eslint/eslint-plugin": "17.5.2",
27
- "@angular/cli": "17.3.7",
22
+ "@angular-architects/module-federation": "18.0.4",
23
+ "@angular-architects/module-federation-runtime": "18.0.4",
24
+ "@angular-builders/custom-webpack": "18.0.0",
25
+ "@angular-builders/jest": "18.0.0",
26
+ "@angular-eslint/eslint-plugin": "18.0.1",
27
+ "@angular/cli": "18.0.5",
28
28
  "@types/jest": "29.5.12",
29
29
  "@types/node": "20.11.25",
30
30
  "@types/sockjs-client": "1.5.4",
31
- "@typescript-eslint/eslint-plugin": "7.11.0",
31
+ "@typescript-eslint/eslint-plugin": "7.13.1",
32
32
  "browser-sync": "3.0.2",
33
33
  "browser-sync-webpack-plugin": "2.3.0",
34
34
  "buffer": "6.0.3",
@@ -40,14 +40,14 @@
40
40
  "jest": "29.7.0",
41
41
  "jest-date-mock": "1.0.10",
42
42
  "jest-junit": "16.0.0",
43
- "jest-preset-angular": "14.1.0",
43
+ "jest-preset-angular": "14.1.1",
44
44
  "jest-sonar": "0.2.16",
45
45
  "merge-jsons-webpack-plugin": "2.0.1",
46
46
  "postcss-rtlcss": "5.3.0",
47
47
  "rimraf": "5.0.7",
48
- "ts-jest": "29.1.4",
48
+ "ts-jest": "29.1.5",
49
49
  "typescript": "5.4.5",
50
- "webpack": "5.91.0",
50
+ "webpack": "5.92.1",
51
51
  "webpack-bundle-analyzer": "4.10.2",
52
52
  "webpack-merge": "5.10.0",
53
53
  "webpack-notifier": "1.15.0"
@@ -17,7 +17,7 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { TestBed, waitForAsync, tick, fakeAsync, inject } from '@angular/core/testing';
20
- import { HttpClientTestingModule } from '@angular/common/http/testing';
20
+ import { provideHttpClient } from '@angular/common/http';
21
21
  import { ActivatedRoute } from '@angular/router';
22
22
  import { of, throwError } from 'rxjs';
23
23
 
@@ -30,8 +30,9 @@ describe('ActivateComponent', () => {
30
30
  beforeEach(
31
31
  waitForAsync(() => {
32
32
  TestBed.configureTestingModule({
33
- imports: [HttpClientTestingModule, ActivateComponent],
33
+ imports: [ActivateComponent],
34
34
  providers: [
35
+ provideHttpClient(),
35
36
  {
36
37
  provide: ActivatedRoute,
37
38
  useValue: { queryParams: of({ key: 'ABC123' }) },
@@ -76,7 +77,7 @@ describe('ActivateComponent', () => {
76
77
  it('should set set error to true upon activation failure', inject(
77
78
  [ActivateService],
78
79
  fakeAsync((service: ActivateService) => {
79
- jest.spyOn(service, 'get').mockReturnValue(throwError('ERROR'));
80
+ jest.spyOn(service, 'get').mockReturnValue(throwError(() => {}));
80
81
 
81
82
  comp.ngOnInit();
82
83
  tick();
@@ -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 { ActivateService } from './activate.service';
23
24
  import { ApplicationConfigService } from 'app/core/config/application-config.service';
@@ -29,7 +30,7 @@ describe('ActivateService 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(ActivateService);
@@ -19,8 +19,7 @@
19
19
  jest.mock('app/core/auth/account.service');
20
20
 
21
21
  import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
22
- import { HttpResponse } from '@angular/common/http';
23
- import { HttpClientTestingModule } from '@angular/common/http/testing';
22
+ import { HttpResponse, provideHttpClient } from '@angular/common/http';
24
23
  import { FormBuilder } from '@angular/forms';
25
24
  import { of, throwError } from 'rxjs';
26
25
 
@@ -37,8 +36,8 @@ describe('PasswordComponent', () => {
37
36
  beforeEach(
38
37
  waitForAsync(() => {
39
38
  TestBed.configureTestingModule({
40
- imports: [HttpClientTestingModule, PasswordComponent],
41
- providers: [FormBuilder, AccountService],
39
+ imports: [PasswordComponent],
40
+ providers: [FormBuilder, AccountService, provideHttpClient()],
42
41
  })
43
42
  .overrideTemplate(PasswordComponent, '')
44
43
  .compileComponents();
@@ -106,7 +105,7 @@ describe('PasswordComponent', () => {
106
105
 
107
106
  it('should notify of error if change password fails', () => {
108
107
  // GIVEN
109
- jest.spyOn(service, 'save').mockReturnValue(throwError('ERROR'));
108
+ jest.spyOn(service, 'save').mockReturnValue(throwError(() => {}));
110
109
  comp.passwordForm.patchValue({
111
110
  newPassword: 'myPassword',
112
111
  confirmPassword: 'myPassword',
@@ -1,5 +1,6 @@
1
1
  import { TestBed } from '@angular/core/testing';
2
- import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
2
+ import { provideHttpClientTesting, HttpTestingController } from '@angular/common/http/testing';
3
+ import { provideHttpClient } from '@angular/common/http';
3
4
 
4
5
  import { PasswordService } from './password.service';
5
6
  import { ApplicationConfigService } from 'app/core/config/application-config.service';
@@ -11,7 +12,7 @@ describe('Password Service', () => {
11
12
 
12
13
  beforeEach(() => {
13
14
  TestBed.configureTestingModule({
14
- imports: [HttpClientTestingModule],
15
+ providers: [provideHttpClient(), provideHttpClientTesting()],
15
16
  });
16
17
 
17
18
  service = TestBed.inject(PasswordService);
@@ -18,7 +18,7 @@
18
18
  -%>
19
19
  import { ElementRef, signal } from '@angular/core';
20
20
  import { ComponentFixture, TestBed, inject, tick, fakeAsync } from '@angular/core/testing';
21
- import { HttpClientTestingModule } from '@angular/common/http/testing';
21
+ import { provideHttpClient } from '@angular/common/http';
22
22
  import { FormBuilder } from '@angular/forms';
23
23
  import { ActivatedRoute } from '@angular/router';
24
24
  import { of, throwError } from 'rxjs';
@@ -32,8 +32,9 @@ describe('PasswordResetFinishComponent', () => {
32
32
 
33
33
  beforeEach(() => {
34
34
  fixture = TestBed.configureTestingModule({
35
- imports: [HttpClientTestingModule, PasswordResetFinishComponent],
35
+ imports: [PasswordResetFinishComponent],
36
36
  providers: [
37
+ provideHttpClient(),
37
38
  FormBuilder,
38
39
  {
39
40
  provide: ActivatedRoute,
@@ -98,7 +99,7 @@ describe('PasswordResetFinishComponent', () => {
98
99
  it('should notify of generic error', inject(
99
100
  [PasswordResetFinishService],
100
101
  fakeAsync((service: PasswordResetFinishService) => {
101
- jest.spyOn(service, 'save').mockReturnValue(throwError('ERROR'));
102
+ jest.spyOn(service, 'save').mockReturnValue(throwError(() => {}));
102
103
  comp.passwordForm.patchValue({
103
104
  newPassword: 'password',
104
105
  confirmPassword: 'password',
@@ -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 { PasswordResetFinishService } from './password-reset-finish.service';
23
24
  import { ApplicationConfigService } from 'app/core/config/application-config.service';
@@ -29,7 +30,7 @@ describe('PasswordResetFinish 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(PasswordResetFinishService);
@@ -18,7 +18,7 @@
18
18
  -%>
19
19
  import { ElementRef, signal } from '@angular/core';
20
20
  import { ComponentFixture, TestBed, inject } from '@angular/core/testing';
21
- import { HttpClientTestingModule } from '@angular/common/http/testing';
21
+ import { provideHttpClient } from '@angular/common/http';
22
22
  import { FormBuilder } from '@angular/forms';
23
23
  import { of, throwError } from 'rxjs';
24
24
 
@@ -31,8 +31,8 @@ describe('PasswordResetInitComponent', () => {
31
31
 
32
32
  beforeEach(() => {
33
33
  fixture = TestBed.configureTestingModule({
34
- imports: [HttpClientTestingModule, PasswordResetInitComponent],
35
- providers: [FormBuilder],
34
+ imports: [PasswordResetInitComponent],
35
+ providers: [provideHttpClient(), FormBuilder],
36
36
  })
37
37
  .overrideTemplate(PasswordResetInitComponent, '')
38
38
  .createComponent(PasswordResetInitComponent);
@@ -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 { PasswordResetInitService } from './password-reset-init.service';
23
24
  import { ApplicationConfigService } from 'app/core/config/application-config.service';
@@ -29,7 +30,7 @@ describe('PasswordResetInit 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(PasswordResetInitService);
@@ -17,7 +17,7 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { ComponentFixture, TestBed, waitForAsync, inject, tick, fakeAsync } from '@angular/core/testing';
20
- import { HttpClientTestingModule } from '@angular/common/http/testing';
20
+ import { provideHttpClient } from '@angular/common/http';
21
21
  import { FormBuilder } from '@angular/forms';
22
22
  import { of, throwError } from 'rxjs';
23
23
  <%_ if (enableTranslation) { _%>
@@ -40,10 +40,9 @@ describe('RegisterComponent', () => {
40
40
  <%_ if (enableTranslation) { _%>
41
41
  TranslateModule.forRoot(),
42
42
  <%_ } _%>
43
- HttpClientTestingModule,
44
43
  RegisterComponent,
45
44
  ],
46
- providers: [FormBuilder],
45
+ providers: [provideHttpClient(), FormBuilder],
47
46
  })
48
47
  .overrideTemplate(RegisterComponent, '')
49
48
  .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 { RegisterService } from './register.service';
23
24
  import { ApplicationConfigService } from 'app/core/config/application-config.service';
@@ -30,7 +31,7 @@ describe('RegisterService Service', () => {
30
31
 
31
32
  beforeEach(() => {
32
33
  TestBed.configureTestingModule({
33
- imports: [HttpClientTestingModule],
34
+ providers: [provideHttpClient(), provideHttpClientTesting()],
34
35
  });
35
36
 
36
37
  service = TestBed.inject(RegisterService);
@@ -19,7 +19,7 @@
19
19
  jest.mock('app/core/auth/account.service');
20
20
 
21
21
  import { ComponentFixture, TestBed, inject, tick, fakeAsync } from '@angular/core/testing';
22
- import { HttpClientTestingModule } from '@angular/common/http/testing';
22
+ import { provideHttpClient } from '@angular/common/http';
23
23
  import { of, throwError } from 'rxjs';
24
24
 
25
25
  import { AccountService } from 'app/core/auth/account.service';
@@ -46,8 +46,8 @@ describe('SessionsComponent', () => {
46
46
 
47
47
  beforeEach(() => {
48
48
  fixture = TestBed.configureTestingModule({
49
- imports: [HttpClientTestingModule, SessionsComponent],
50
- providers: [AccountService],
49
+ imports: [SessionsComponent],
50
+ providers: [provideHttpClient(), AccountService],
51
51
  })
52
52
  .overrideTemplate(SessionsComponent, '')
53
53
  .createComponent(SessionsComponent);
@@ -19,7 +19,7 @@
19
19
  jest.mock('app/core/auth/account.service');
20
20
 
21
21
  import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
22
- import { HttpClientTestingModule } from '@angular/common/http/testing';
22
+ import { provideHttpClient } from '@angular/common/http';
23
23
  import { FormBuilder } from '@angular/forms';
24
24
  import { throwError, of } from 'rxjs';
25
25
  <%_ if (enableTranslation) { _%>
@@ -53,10 +53,9 @@ describe('SettingsComponent', () => {
53
53
  <%_ if (enableTranslation) { _%>
54
54
  TranslateModule.forRoot(),
55
55
  <%_ } _%>
56
- HttpClientTestingModule,
57
56
  SettingsComponent,
58
57
  ],
59
- providers: [FormBuilder, AccountService],
58
+ providers: [provideHttpClient(), FormBuilder, AccountService],
60
59
  })
61
60
  .overrideTemplate(SettingsComponent, '')
62
61
  .compileComponents();
@@ -108,7 +107,7 @@ describe('SettingsComponent', () => {
108
107
 
109
108
  it('should notify of error upon failed save', () => {
110
109
  // GIVEN
111
- mockAccountService.save = jest.fn(() => throwError('ERROR'));
110
+ mockAccountService.save = jest.fn(() => throwError(() => {}));
112
111
 
113
112
  // WHEN
114
113
  comp.ngOnInit();
@@ -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 { of } from 'rxjs';
22
22
 
23
23
  import ConfigurationComponent from './configuration.component';
@@ -32,8 +32,8 @@ describe('ConfigurationComponent', () => {
32
32
  beforeEach(
33
33
  waitForAsync(() => {
34
34
  TestBed.configureTestingModule({
35
- imports: [HttpClientTestingModule, ConfigurationComponent],
36
- providers: [ConfigurationService],
35
+ imports: [ConfigurationComponent],
36
+ providers: [provideHttpClient(), ConfigurationService],
37
37
  })
38
38
  .overrideTemplate(ConfigurationComponent, '')
39
39
  .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 { ConfigurationService } from './configuration.service';
23
24
  import { Bean, ConfigProps, Env, PropertySource } from './configuration.model';
@@ -29,7 +30,7 @@ describe('Logs Service', () => {
29
30
 
30
31
  beforeEach(() => {
31
32
  TestBed.configureTestingModule({
32
- imports: [HttpClientTestingModule],
33
+ providers: [provideHttpClient(), provideHttpClientTesting()],
33
34
  });
34
35
 
35
36
  expectedResult = null;
@@ -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);