generator-jhipster 8.7.1 → 8.7.2

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 (296) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/commands.d.mts +89 -89
  3. package/dist/cli/environment-builder.d.mts +7 -6
  4. package/dist/cli/environment-builder.mjs +5 -3
  5. package/dist/cli/jhipster-command.d.mts +2 -2
  6. package/dist/cli/jhipster-command.mjs +13 -4
  7. package/dist/cli/program.d.mts +53 -36
  8. package/dist/cli/program.mjs +41 -32
  9. package/dist/cli/utils.d.mts +2 -3
  10. package/dist/cli/utils.mjs +11 -21
  11. package/dist/generators/angular/generator.js +2 -2
  12. package/dist/generators/angular/resources/package.json +13 -13
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +2 -2
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.service.ts.ejs +2 -2
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +2 -2
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +2 -2
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.service.ts.ejs +2 -2
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +2 -2
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.ts.ejs +2 -2
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +2 -2
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.ts.ejs +2 -2
  22. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +2 -2
  23. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.ts.ejs +2 -2
  24. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.ts.ejs +2 -2
  25. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.service.ts.ejs +2 -2
  26. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.ts.ejs +2 -2
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.ts.ejs +2 -2
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +2 -2
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway-routes.service.ts.ejs +2 -2
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.ts.ejs +1 -1
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.ts.ejs +2 -2
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +1 -1
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.ts.ejs +3 -3
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.ts.ejs +2 -2
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +1 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +2 -2
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +2 -2
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.ts.ejs +1 -1
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.ts.ejs +2 -2
  41. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +5 -5
  42. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.ts.ejs +3 -3
  43. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +2 -2
  44. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +4 -4
  45. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.ts.ejs +7 -7
  46. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.ts.ejs +3 -3
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-session.service.ts.ejs +2 -2
  48. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/csrf.service.ts.ejs +1 -1
  49. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/state-storage.service.ts.ejs +3 -3
  50. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/notification.interceptor.ts.ejs +1 -1
  51. package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +5 -5
  52. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.ts.ejs +2 -2
  53. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +4 -4
  54. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.ts.ejs +2 -2
  55. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +3 -3
  56. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +7 -7
  57. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +7 -7
  58. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
  59. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/profile.service.ts.ejs +3 -3
  60. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -3
  61. package/dist/generators/angular/templates/src/main/webapp/app/login/login.service.ts.ejs +4 -4
  62. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.ts.ejs +3 -3
  63. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.ts.ejs +1 -1
  64. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +2 -2
  65. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translate.directive.ts.ejs +2 -2
  66. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +3 -3
  67. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +1 -1
  68. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs +1 -1
  69. package/dist/generators/base/api.d.ts +10 -4
  70. package/dist/generators/base/generator.d.ts +4 -0
  71. package/dist/generators/base/generator.js +10 -1
  72. package/dist/generators/base/shared-data.js +2 -0
  73. package/dist/generators/base/support/faker.d.ts +1 -1
  74. package/dist/generators/base/support/faker.js +1 -1
  75. package/dist/generators/base/support/timestamp.js +10 -2
  76. package/dist/generators/base-application/support/prepare-entity.js +6 -1
  77. package/dist/generators/base-application/support/prepare-field.js +40 -16
  78. package/dist/generators/base-application/support/prepare-relationship.d.ts +1 -1
  79. package/dist/generators/base-application/support/task-type-inference.d.ts +18 -18
  80. package/dist/generators/base-application/types.d.ts +4 -0
  81. package/dist/generators/base-core/generator.d.ts +7 -4
  82. package/dist/generators/base-core/generator.js +31 -35
  83. package/dist/generators/base-workspaces/generator.d.ts +34 -1
  84. package/dist/generators/base-workspaces/generator.js +1 -1
  85. package/dist/generators/base-workspaces/internal/docker-base.js +1 -3
  86. package/dist/generators/bootstrap/support/eslint-transform.js +2 -2
  87. package/dist/generators/bootstrap/support/java-unused-imports-transform.js +2 -2
  88. package/dist/generators/bootstrap/support/prettier-support.js +2 -2
  89. package/dist/generators/bootstrap-application-base/generator.d.ts +2 -2
  90. package/dist/generators/bootstrap-application-base/generator.js +19 -5
  91. package/dist/generators/bootstrap-application-base/utils.d.ts +3 -3
  92. package/dist/generators/bootstrap-application-base/utils.js +9 -3
  93. package/dist/generators/bootstrap-workspaces/command.d.ts +12 -2
  94. package/dist/generators/bootstrap-workspaces/command.js +5 -3
  95. package/dist/generators/bootstrap-workspaces/generator.d.ts +8 -2
  96. package/dist/generators/bootstrap-workspaces/generator.js +0 -2
  97. package/dist/generators/bootstrap-workspaces/index.d.ts +1 -0
  98. package/dist/generators/bootstrap-workspaces/index.js +1 -0
  99. package/dist/generators/client/command.d.ts +22 -0
  100. package/dist/generators/client/command.js +22 -0
  101. package/dist/generators/client/files-common.js +1 -1
  102. package/dist/generators/client/generator.js +4 -5
  103. package/dist/generators/client/prompts.js +10 -9
  104. package/dist/generators/client/resources/package.json +3 -3
  105. package/dist/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs +16 -5
  106. package/dist/generators/common/generator.js +2 -2
  107. package/dist/generators/common/resources/package.json +1 -1
  108. package/dist/generators/cypress/files.js +6 -0
  109. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +2 -2
  110. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs +39 -0
  111. package/dist/generators/docker/generator.d.ts +1 -1
  112. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
  113. package/dist/generators/docker-compose/command.js +9 -1
  114. package/dist/generators/docker-compose/generator.d.ts +11 -53
  115. package/dist/generators/docker-compose/generator.js +24 -23
  116. package/dist/generators/generate-blueprint/command.d.ts +97 -20
  117. package/dist/generators/generate-blueprint/command.js +28 -0
  118. package/dist/generators/generate-blueprint/constants.d.ts +2 -2
  119. package/dist/generators/generate-blueprint/files.d.ts +1 -42
  120. package/dist/generators/generate-blueprint/files.js +27 -29
  121. package/dist/generators/generate-blueprint/generator.d.ts +5 -2
  122. package/dist/generators/generate-blueprint/generator.js +78 -22
  123. package/dist/generators/generate-blueprint/resources/package.json +3 -3
  124. package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +6 -8
  125. package/dist/generators/generate-blueprint/templates/README.md.ejs +12 -2
  126. package/dist/generators/generate-blueprint/templates/cli/cli-customizations.cjs.ejs +2 -0
  127. package/dist/generators/generate-blueprint/templates/cli/cli.cjs.ejs +2 -1
  128. package/dist/generators/generate-blueprint/templates/cli/commands.cjs.ejs +1 -1
  129. package/dist/generators/generate-blueprint/templates/eslint.config.js.jhi.blueprint.ejs +3 -2
  130. package/dist/generators/generate-blueprint/templates/generators/generator/command.mjs.ejs +8 -12
  131. package/dist/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +8 -11
  132. package/dist/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +2 -2
  133. package/dist/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +2 -4
  134. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +0 -1
  135. package/dist/generators/generator-constants.d.ts +2 -2
  136. package/dist/generators/generator-constants.js +3 -3
  137. package/dist/generators/git/command.d.ts +10 -0
  138. package/dist/generators/git/command.js +10 -0
  139. package/dist/generators/git/generator.d.ts +5 -4
  140. package/dist/generators/git/generator.js +6 -4
  141. package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +16 -10
  142. package/dist/generators/gradle/internal/needles.d.ts +3 -1
  143. package/dist/generators/gradle/internal/needles.js +10 -5
  144. package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
  145. package/dist/generators/gradle/types.d.ts +3 -2
  146. package/dist/generators/init/command.d.ts +4 -20
  147. package/dist/generators/init/command.js +1 -1
  148. package/dist/generators/init/resources/.node-version +1 -1
  149. package/dist/generators/java/command.d.ts +3 -5
  150. package/dist/generators/java/command.js +1 -20
  151. package/dist/generators/java/generators/bootstrap/command.d.ts +7 -0
  152. package/dist/generators/java/generators/bootstrap/command.js +7 -0
  153. package/dist/generators/java/generators/build-tool/generator.js +37 -13
  154. package/dist/generators/java/generators/graalvm/command.d.ts +5 -0
  155. package/dist/generators/java/generators/graalvm/command.js +5 -0
  156. package/dist/generators/java/generators/graalvm/generator.d.ts +9 -0
  157. package/dist/generators/java/generators/graalvm/generator.js +222 -0
  158. package/dist/generators/java/generators/graalvm/index.d.ts +20 -0
  159. package/dist/generators/java/generators/graalvm/index.js +20 -0
  160. package/dist/generators/java/generators/graalvm/internal/maven-definition.d.ts +8 -0
  161. package/dist/generators/java/generators/graalvm/internal/maven-definition.js +130 -0
  162. package/dist/generators/java/generators/graalvm/resources/build.gradle +1 -0
  163. package/dist/generators/java/generators/graalvm/resources/gradle/libs.versions.toml +5 -0
  164. package/dist/generators/java/generators/graalvm/templates/README.md.jhi.native.ejs +53 -0
  165. package/dist/generators/java/generators/graalvm/templates/gradle/native.gradle.ejs +44 -0
  166. package/dist/generators/java/generators/graalvm/templates/src/main/java/_package_/config/NativeConfiguration.java.ejs +14 -0
  167. package/dist/generators/java/generators/node/generator.d.ts +6 -18
  168. package/dist/generators/java/generators/node/generator.js +31 -0
  169. package/dist/generators/java/generators/openapi-generator/generator.js +2 -2
  170. package/dist/generators/java/support/util.d.ts +1 -1
  171. package/dist/generators/java/types.d.ts +4 -1
  172. package/dist/generators/javascript/generators/bootstrap/command.d.ts +21 -20
  173. package/dist/generators/javascript/generators/bootstrap/generator.d.ts +1 -2
  174. package/dist/generators/javascript/generators/bootstrap/generator.js +9 -5
  175. package/dist/generators/javascript/types.d.ts +9 -2
  176. package/dist/generators/kubernetes/command.d.ts +12 -0
  177. package/dist/generators/kubernetes/command.js +12 -0
  178. package/dist/generators/kubernetes/index.d.ts +1 -0
  179. package/dist/generators/kubernetes/index.js +1 -0
  180. package/dist/generators/kubernetes-helm/index.d.ts +1 -0
  181. package/dist/generators/kubernetes-helm/index.js +1 -0
  182. package/dist/generators/kubernetes-knative/generator.d.ts +1 -1
  183. package/dist/generators/kubernetes-knative/index.d.ts +1 -0
  184. package/dist/generators/kubernetes-knative/index.js +1 -0
  185. package/dist/generators/languages/entity-files.d.ts +3 -2
  186. package/dist/generators/languages/entity-files.js +0 -1
  187. package/dist/generators/languages/generator.d.ts +1 -0
  188. package/dist/generators/languages/generator.js +1 -0
  189. package/dist/generators/liquibase/files.js +8 -0
  190. package/dist/generators/liquibase/generator.d.ts +1 -1
  191. package/dist/generators/liquibase/generator.js +15 -0
  192. package/dist/generators/liquibase/templates/src/main/resources/META-INF/native-image/liquibase/reflect-config.json +145 -0
  193. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/add_relationship_constraints.ejs +81 -0
  194. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity_constraints.xml.ejs +2 -62
  195. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +3 -60
  196. package/dist/generators/maven/generators/frontend-plugin/generator.js +10 -5
  197. package/dist/generators/maven/types.d.ts +3 -6
  198. package/dist/generators/project-name/command.d.ts +25 -20
  199. package/dist/generators/project-name/command.js +20 -4
  200. package/dist/generators/project-name/generator.d.ts +3 -12
  201. package/dist/generators/project-name/generator.js +6 -38
  202. package/dist/generators/react/generator.d.ts +1 -1
  203. package/dist/generators/react/generator.js +15 -2
  204. package/dist/generators/react/resources/package.json +25 -24
  205. package/dist/generators/react/templates/package.json.ejs +0 -3
  206. package/dist/generators/server/generator.d.ts +1 -7
  207. package/dist/generators/server/generator.js +22 -50
  208. package/dist/generators/server/resources/Dockerfile +12 -12
  209. package/dist/generators/server/resources/gradle/libs.versions.toml +10 -7
  210. package/dist/generators/server/resources/pom.xml +11 -11
  211. package/dist/generators/server/types.d.ts +8 -0
  212. package/dist/generators/spring-boot/cleanup.js +2 -2
  213. package/dist/generators/spring-boot/command.d.ts +19 -0
  214. package/dist/generators/spring-boot/command.js +19 -0
  215. package/dist/generators/spring-boot/generator.d.ts +1 -1
  216. package/dist/generators/spring-boot/generator.js +4 -1
  217. package/dist/generators/spring-boot/prompts.js +12 -12
  218. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +107 -106
  219. package/dist/generators/spring-boot/templates/README.md.jhi.spring-boot.ejs +22 -16
  220. package/dist/generators/spring-boot/templates/gradle/profile_dev.gradle.ejs +2 -46
  221. package/dist/generators/spring-boot/templates/gradle/profile_prod.gradle.ejs +1 -47
  222. package/dist/generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs +4 -1
  223. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +29 -6
  224. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +32 -6
  225. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +13 -8
  226. package/dist/generators/spring-boot/templates/src/main/java/_package_/domain/User.java.ejs +2 -3
  227. package/dist/generators/spring-boot/templates/src/main/resources/config/application-dev.yml.ejs +8 -3
  228. package/dist/generators/spring-boot/templates/src/main/resources/config/application.yml.ejs +4 -2
  229. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +8 -7
  230. package/dist/generators/spring-cache/generator.d.ts +2 -1
  231. package/dist/generators/spring-cache/generator.js +18 -0
  232. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  233. package/dist/generators/spring-cloud/generators/gateway/generator.js +2 -2
  234. package/dist/generators/spring-data-couchbase/generator.js +2 -2
  235. package/dist/generators/spring-data-mongodb/generator.d.ts +1 -1
  236. package/dist/generators/spring-data-relational/files.d.ts +1 -0
  237. package/dist/generators/spring-data-relational/files.js +6 -0
  238. package/dist/generators/spring-data-relational/generator.d.ts +2 -1
  239. package/dist/generators/spring-data-relational/generator.js +63 -2
  240. package/dist/generators/spring-data-relational/internal/dependencies.d.ts +87 -7
  241. package/dist/generators/spring-data-relational/internal/dependencies.js +30 -18
  242. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_persistable.ejs +6 -0
  243. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_reactive.ejs +1 -2
  244. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +8 -3
  245. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/JacksonNativeConfiguration.java.ejs +98 -0
  246. package/dist/generators/vue/files-vue.js +4 -1
  247. package/dist/generators/vue/generator.d.ts +1 -1
  248. package/dist/generators/vue/generator.js +84 -3
  249. package/dist/generators/vue/resources/package.json +20 -19
  250. package/dist/generators/vue/support/update-languages.js +1 -1
  251. package/dist/generators/vue/templates/module-federation.config.cjs.ejs +55 -0
  252. package/dist/generators/vue/templates/package.json.ejs +11 -62
  253. package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +1 -1
  254. package/dist/generators/vue/templates/vite.config.mts.ejs +15 -21
  255. package/dist/generators/workspaces/generator.d.ts +20 -9
  256. package/dist/generators/workspaces/generator.js +3 -3
  257. package/dist/lib/application/field-types.d.ts +2 -1
  258. package/dist/lib/command/converter.d.ts +6 -2
  259. package/dist/lib/command/converter.js +4 -1
  260. package/dist/lib/command/load.js +1 -0
  261. package/dist/lib/command/lookup-commands-configs.js +9 -12
  262. package/dist/lib/command/support/merge-union.d.ts +17 -6
  263. package/dist/lib/command/types.d.ts +38 -11
  264. package/dist/lib/eslint/index.d.ts +6 -14
  265. package/dist/lib/eslint/index.js +1 -2
  266. package/dist/lib/index.d.ts +1 -0
  267. package/dist/lib/index.js +7 -3
  268. package/dist/lib/jdl/core/parsing/validator.js +2 -2
  269. package/dist/lib/jhipster/default-application-options.d.ts +83 -15
  270. package/dist/lib/jhipster/default-application-options.js +26 -27
  271. package/dist/lib/testing/get-generator.d.ts +1 -0
  272. package/dist/lib/testing/get-generator.js +6 -2
  273. package/dist/lib/testing/github-group.d.ts +6 -0
  274. package/dist/lib/testing/github-group.js +56 -0
  275. package/dist/lib/testing/github-matrix.d.ts +38 -0
  276. package/dist/lib/testing/github-matrix.js +72 -0
  277. package/dist/lib/testing/github.d.ts +1 -0
  278. package/dist/lib/testing/github.js +6 -2
  279. package/dist/lib/testing/helpers.d.ts +41 -3
  280. package/dist/lib/testing/helpers.js +74 -12
  281. package/dist/lib/testing/index.d.ts +2 -0
  282. package/dist/lib/testing/index.js +2 -0
  283. package/dist/lib/testing/support/matcher.d.ts +2 -2
  284. package/dist/lib/testing/support/matcher.js +3 -3
  285. package/dist/lib/types/application/application.d.ts +6 -1
  286. package/dist/lib/types/application/entity.d.ts +3 -1
  287. package/dist/lib/types/application/field.d.ts +16 -4
  288. package/dist/lib/types/application/options.d.ts +4 -0
  289. package/dist/lib/types/application/relationship.d.ts +1 -0
  290. package/dist/lib/types/application/yo-rc.d.ts +4 -0
  291. package/dist/lib/types/base/entity.d.ts +1 -0
  292. package/dist/lib/utils/logger.d.ts +1 -1
  293. package/dist/lib/utils/yo-rc.d.ts +27 -3
  294. package/package.json +33 -31
  295. package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +0 -6
  296. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +0 -45
@@ -25,11 +25,10 @@ export const logger: {
25
25
  verboseInfo(this: import("@yeoman/types").Logger, format?: any, ...param: any[]): import("@yeoman/types").Logger;
26
26
  log(this: import("@yeoman/types").Logger, format?: any, ...param: any[]): import("@yeoman/types").Logger;
27
27
  error(this: import("@yeoman/adapter").Logger, msg: any, error: any): void;
28
- fatal(this: any, msg: any, trace: any): never;
28
+ fatal(this: any, msg: any, trace?: any): never;
29
29
  } & {
30
30
  console: Console;
31
31
  };
32
32
  export function getCommand(cmd: any, args?: any[]): string;
33
- export function doneFactory(successMsg: any, sponsorMsg: any): (errorOrMsg: any) => void;
34
- export function printSuccess(): void;
33
+ export function doneFactory(options?: {}): (errorOrMsg: any) => void;
35
34
  export function done(errorOrMsg: any): void;
@@ -17,7 +17,7 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import chalk from 'chalk';
20
- import { CLI_LOGGER, createJHipsterLogger } from '../generators/base/support/index.js';
20
+ import { CLI_LOGGER, createJHipsterLogger } from '../lib/utils/logger.js';
21
21
  export const CLI_NAME = 'jhipster';
22
22
  export const GENERATOR_NAME = 'generator-jhipster';
23
23
  const SUCCESS_MESSAGE = `Congratulations, JHipster execution is complete!
@@ -37,32 +37,22 @@ export const getCommand = (cmd, args = []) => {
37
37
  }
38
38
  return `${cmd}${cmdArgs ? ` ${cmdArgs}` : ''}`;
39
39
  };
40
- export const doneFactory = (successMsg, sponsorMsg) => {
40
+ export const doneFactory = (options = {}) => {
41
+ const { successMsg = SUCCESS_MESSAGE, sponsorMsg = SPONSOR_MESSAGE, logger: log = logger } = options;
41
42
  return errorOrMsg => {
42
43
  if (errorOrMsg instanceof Error) {
43
- logger.error(`ERROR! ${errorOrMsg.message}`);
44
- logger.log(errorOrMsg);
44
+ log.error(`ERROR! ${errorOrMsg.message}`);
45
+ log.log(errorOrMsg);
45
46
  }
46
47
  else if (errorOrMsg) {
47
- logger.error(`ERROR! ${errorOrMsg}`);
48
+ log.error(`ERROR! ${errorOrMsg}`);
48
49
  }
49
50
  else if (successMsg) {
50
- logger.log('');
51
- logger.log(chalk.green.bold(successMsg));
52
- logger.log('');
53
- logger.log(chalk.cyan.bold(sponsorMsg));
51
+ log.log('');
52
+ log.log(chalk.green.bold(successMsg));
53
+ log.log('');
54
+ log.log(chalk.cyan.bold(sponsorMsg));
54
55
  }
55
56
  };
56
57
  };
57
- export const printSuccess = () => {
58
- if (process.exitCode === undefined || process.exitCode === 0) {
59
- logger.log('');
60
- logger.log(chalk.green.bold(SUCCESS_MESSAGE));
61
- logger.log('');
62
- logger.log(chalk.cyan.bold(SPONSOR_MESSAGE));
63
- }
64
- else {
65
- logger.error(`JHipster finished with code ${process.exitCode}`);
66
- }
67
- };
68
- export const done = doneFactory(SUCCESS_MESSAGE, SPONSOR_MESSAGE);
58
+ export const done = doneFactory();
@@ -179,8 +179,8 @@ export default class AngularGenerator extends BaseApplicationGenerator {
179
179
  }
180
180
  get writing() {
181
181
  return this.asWritingTaskGroup({
182
- cleanup({ control }) {
183
- control.cleanupFiles({
182
+ async cleanup({ control }) {
183
+ await control.cleanupFiles({
184
184
  '8.6.1': ['.eslintrc.json', '.eslintignore'],
185
185
  });
186
186
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "dependencies": {
3
- "@angular/common": "18.2.5",
3
+ "@angular/common": "18.2.9",
4
4
  "@fortawesome/angular-fontawesome": "0.15.0",
5
5
  "@fortawesome/fontawesome-svg-core": "6.6.0",
6
6
  "@fortawesome/free-solid-svg-icons": "6.6.0",
@@ -15,41 +15,41 @@
15
15
  "ngx-infinite-scroll": "18.0.0",
16
16
  "rxjs": "7.8.1",
17
17
  "sockjs-client": "1.6.1",
18
- "tslib": "2.7.0",
18
+ "tslib": "2.8.0",
19
19
  "zone.js": "0.14.10"
20
20
  },
21
21
  "devDependencies": {
22
- "@angular-architects/module-federation": "18.0.4",
23
- "@angular-architects/module-federation-runtime": "18.0.4",
22
+ "@angular-architects/module-federation": "18.0.6",
23
+ "@angular-architects/module-federation-runtime": "18.0.6",
24
24
  "@angular-builders/custom-webpack": "18.0.0",
25
25
  "@angular-builders/jest": "18.0.0",
26
- "@angular/cli": "18.2.5",
27
- "@types/jest": "29.5.13",
26
+ "@angular/cli": "18.2.10",
27
+ "@types/jest": "29.5.14",
28
28
  "@types/node": "20.11.25",
29
29
  "@types/sockjs-client": "1.5.4",
30
- "angular-eslint": "18.3.1",
31
- "browser-sync": "3.0.2",
30
+ "angular-eslint": "18.4.0",
31
+ "browser-sync": "3.0.3",
32
32
  "browser-sync-webpack-plugin": "2.3.0",
33
33
  "buffer": "6.0.3",
34
34
  "copy-webpack-plugin": "12.0.2",
35
- "eslint": "9.10.0",
35
+ "eslint": "9.13.0",
36
36
  "eslint-config-prettier": "9.1.0",
37
37
  "eslint-plugin-prettier": "5.2.1",
38
38
  "eslint-webpack-plugin": "4.2.0",
39
39
  "folder-hash": "4.0.4",
40
- "globals": "15.9.0",
40
+ "globals": "15.11.0",
41
41
  "jest": "29.7.0",
42
42
  "jest-date-mock": "1.0.10",
43
43
  "jest-junit": "16.0.0",
44
44
  "jest-preset-angular": "14.2.4",
45
45
  "jest-sonar": "0.2.16",
46
46
  "merge-jsons-webpack-plugin": "2.0.1",
47
- "postcss-rtlcss": "5.4.0",
47
+ "postcss-rtlcss": "5.5.0",
48
48
  "rimraf": "5.0.8",
49
49
  "ts-jest": "29.2.5",
50
50
  "typescript": "5.5.4",
51
- "typescript-eslint": "8.6.0",
52
- "webpack": "5.94.0",
51
+ "typescript-eslint": "8.11.0",
52
+ "webpack": "5.95.0",
53
53
  "webpack-bundle-analyzer": "4.10.2",
54
54
  "webpack-merge": "6.0.1",
55
55
  "webpack-notifier": "1.15.0"
@@ -33,8 +33,8 @@ export default class ActivateComponent implements OnInit {
33
33
  error = signal(false);
34
34
  success = signal(false);
35
35
 
36
- private activateService = inject(ActivateService);
37
- private route = inject(ActivatedRoute);
36
+ private readonly activateService = inject(ActivateService);
37
+ private readonly route = inject(ActivatedRoute);
38
38
 
39
39
  ngOnInit(): void {
40
40
  this.route.queryParams.pipe(mergeMap(params => this.activateService.get(params.key))).subscribe({
@@ -24,8 +24,8 @@ import { ApplicationConfigService } from 'app/core/config/application-config.ser
24
24
 
25
25
  @Injectable({ providedIn: 'root' })
26
26
  export class ActivateService {
27
- private http = inject(HttpClient);
28
- private applicationConfigService = inject(ApplicationConfigService);
27
+ private readonly http = inject(HttpClient);
28
+ private readonly applicationConfigService = inject(ApplicationConfigService);
29
29
 
30
30
  get(key: string): Observable<{}> {
31
31
  return this.http.get(this.applicationConfigService.getEndpointFor('api/activate'), {
@@ -30,8 +30,8 @@ import SharedModule from 'app/shared/shared.module';
30
30
  export default class PasswordStrengthBarComponent {
31
31
  colors = ['#F00', '#F90', '#FF0', '#9F0', '#0F0'];
32
32
 
33
- private renderer = inject(Renderer2);
34
- private elementRef = inject(ElementRef);
33
+ private readonly renderer = inject(Renderer2);
34
+ private readonly elementRef = inject(ElementRef);
35
35
 
36
36
  measureStrength(p: string): number {
37
37
  let force = 0;
@@ -49,8 +49,8 @@ export default class PasswordComponent implements OnInit {
49
49
  }),
50
50
  });
51
51
 
52
- private passwordService = inject(PasswordService);
53
- private accountService = inject(AccountService);
52
+ private readonly passwordService = inject(PasswordService);
53
+ private readonly accountService = inject(AccountService);
54
54
 
55
55
  ngOnInit(): void {
56
56
  this.account$ = this.accountService.identity();
@@ -24,8 +24,8 @@ import { ApplicationConfigService } from 'app/core/config/application-config.ser
24
24
 
25
25
  @Injectable({ providedIn: 'root' })
26
26
  export class PasswordService {
27
- private http = inject(HttpClient);
28
- private applicationConfigService = inject(ApplicationConfigService);
27
+ private readonly http = inject(HttpClient);
28
+ private readonly applicationConfigService = inject(ApplicationConfigService);
29
29
 
30
30
  save(newPassword: string, currentPassword: string): Observable<{}> {
31
31
  return this.http.post(this.applicationConfigService.getEndpointFor('api/account/change-password'), { currentPassword, newPassword });
@@ -50,8 +50,8 @@ export default class PasswordResetFinishComponent implements OnInit, AfterViewIn
50
50
  }),
51
51
  });
52
52
 
53
- private passwordResetFinishService = inject(PasswordResetFinishService);
54
- private route = inject(ActivatedRoute);
53
+ private readonly passwordResetFinishService = inject(PasswordResetFinishService);
54
+ private readonly route = inject(ActivatedRoute);
55
55
 
56
56
  ngOnInit(): void {
57
57
  this.route.queryParams.subscribe(params => {
@@ -24,8 +24,8 @@ import { ApplicationConfigService } from 'app/core/config/application-config.ser
24
24
 
25
25
  @Injectable({ providedIn: 'root' })
26
26
  export class PasswordResetFinishService {
27
- private http = inject(HttpClient);
28
- private applicationConfigService = inject(ApplicationConfigService);
27
+ private readonly http = inject(HttpClient);
28
+ private readonly applicationConfigService = inject(ApplicationConfigService);
29
29
 
30
30
  save(key: string, newPassword: string): Observable<{}> {
31
31
  return this.http.post(this.applicationConfigService.getEndpointFor('api/account/reset-password/finish'), { key, newPassword });
@@ -34,8 +34,8 @@ export default class PasswordResetInitComponent implements AfterViewInit {
34
34
  success = signal(false);
35
35
  resetRequestForm;
36
36
 
37
- private passwordResetInitService = inject(PasswordResetInitService);
38
- private fb = inject(FormBuilder);
37
+ private readonly passwordResetInitService = inject(PasswordResetInitService);
38
+ private readonly fb = inject(FormBuilder);
39
39
 
40
40
  constructor() {
41
41
  this.resetRequestForm = this.fb.group({
@@ -24,8 +24,8 @@ import { ApplicationConfigService } from 'app/core/config/application-config.ser
24
24
 
25
25
  @Injectable({ providedIn: 'root' })
26
26
  export class PasswordResetInitService {
27
- private http = inject(HttpClient);
28
- private applicationConfigService = inject(ApplicationConfigService);
27
+ private readonly http = inject(HttpClient);
28
+ private readonly applicationConfigService = inject(ApplicationConfigService);
29
29
 
30
30
  save(mail: string): Observable<{}> {
31
31
  return this.http.post(this.applicationConfigService.getEndpointFor('api/account/reset-password/init'), mail);
@@ -68,8 +68,8 @@ export default class RegisterComponent implements AfterViewInit {
68
68
  }),
69
69
  });
70
70
 
71
- <%_ if (enableTranslation) { _%>private translateService = inject(TranslateService);<%_ } _%>
72
- private registerService = inject(RegisterService);
71
+ <%_ if (enableTranslation) { _%>private readonly translateService = inject(TranslateService);<%_ } _%>
72
+ private readonly registerService = inject(RegisterService);
73
73
 
74
74
  ngAfterViewInit(): void {
75
75
  this.login().nativeElement.focus();
@@ -25,8 +25,8 @@ import { Registration } from './register.model';
25
25
 
26
26
  @Injectable({ providedIn: 'root' })
27
27
  export class RegisterService {
28
- private http = inject(HttpClient);
29
- private applicationConfigService = inject(ApplicationConfigService);
28
+ private readonly http = inject(HttpClient);
29
+ private readonly applicationConfigService = inject(ApplicationConfigService);
30
30
 
31
31
  save(registration: Registration): Observable<{}> {
32
32
  return this.http.post(this.applicationConfigService.getEndpointFor('api/register'), registration);
@@ -36,8 +36,8 @@ export default class SessionsComponent implements OnInit {
36
36
  success = false;
37
37
  sessions: Session[] = [];
38
38
 
39
- private sessionsService = inject(SessionsService);
40
- private accountService = inject(AccountService);
39
+ private readonly sessionsService = inject(SessionsService);
40
+ private readonly accountService = inject(AccountService);
41
41
 
42
42
  ngOnInit(): void {
43
43
  this.sessionsService.findAll().subscribe(sessions => (this.sessions = sessions));
@@ -25,8 +25,8 @@ import { Session } from './session.model';
25
25
 
26
26
  @Injectable({ providedIn: 'root' })
27
27
  export class SessionsService {
28
- private http = inject(HttpClient);
29
- private applicationConfigService = inject(ApplicationConfigService);
28
+ private readonly http = inject(HttpClient);
29
+ private readonly applicationConfigService = inject(ApplicationConfigService);
30
30
 
31
31
  private resourceUrl = this.applicationConfigService.getEndpointFor('api/account/sessions');
32
32
 
@@ -64,9 +64,9 @@ export default class SettingsComponent implements OnInit {
64
64
  login: new FormControl(initialAccount.login, { nonNullable: true }),
65
65
  });
66
66
 
67
- private accountService = inject(AccountService);
67
+ private readonly accountService = inject(AccountService);
68
68
  <%_ if (enableTranslation) { _%>
69
- private translateService = inject(TranslateService);
69
+ private readonly translateService = inject(TranslateService);
70
70
  <%_ } _%>
71
71
 
72
72
  ngOnInit(): void {
@@ -49,8 +49,8 @@ export default class ConfigurationComponent implements OnInit {
49
49
  return data;
50
50
  });
51
51
 
52
- private sortService = inject(SortService);
53
- private configurationService = inject(ConfigurationService);
52
+ private readonly sortService = inject(SortService);
53
+ private readonly configurationService = inject(ConfigurationService);
54
54
 
55
55
  ngOnInit(): void {
56
56
  this.configurationService.getBeans().subscribe(beans => {
@@ -26,8 +26,8 @@ import { Bean, Beans, ConfigProps, Env, PropertySource } from './configuration.m
26
26
 
27
27
  @Injectable({ providedIn: 'root' })
28
28
  export class ConfigurationService {
29
- private http = inject(HttpClient);
30
- private applicationConfigService = inject(ApplicationConfigService);
29
+ private readonly http = inject(HttpClient);
30
+ private readonly applicationConfigService = inject(ApplicationConfigService);
31
31
 
32
32
  getBeans(): Observable<Bean[]> {
33
33
  return this.http.get<ConfigProps>(this.applicationConfigService.getEndpointFor('management/configprops')).pipe(
@@ -25,8 +25,8 @@ import { GatewayRoute } from './gateway-route.model';
25
25
 
26
26
  @Injectable()
27
27
  export class GatewayRoutesService {
28
- private http = inject(HttpClient);
29
- private applicationConfigService = inject(ApplicationConfigService);
28
+ private readonly http = inject(HttpClient);
29
+ private readonly applicationConfigService = inject(ApplicationConfigService);
30
30
 
31
31
  findAll(): Observable<GatewayRoute[]> {
32
32
  return this.http.get<GatewayRoute[]>(this.applicationConfigService.getEndpointFor('api/gateway/routes'));
@@ -33,7 +33,7 @@ export default class GatewayComponent implements OnInit {
33
33
  gatewayRoutes: GatewayRoute[] = [];
34
34
  updatingRoutes = false;
35
35
 
36
- private gatewayRoutesService = inject(GatewayRoutesService);
36
+ private readonly gatewayRoutesService = inject(GatewayRoutesService);
37
37
 
38
38
  ngOnInit(): void {
39
39
  this.refresh();
@@ -34,8 +34,8 @@ import HealthModalComponent from './modal/health-modal.component';
34
34
  export default class HealthComponent implements OnInit {
35
35
  health?: Health;
36
36
 
37
- private modalService = inject(NgbModal);
38
- private healthService = inject(HealthService);
37
+ private readonly modalService = inject(NgbModal);
38
+ private readonly healthService = inject(HealthService);
39
39
 
40
40
  ngOnInit(): void {
41
41
  this.refresh();
@@ -25,8 +25,8 @@ import { Health } from './health.model';
25
25
 
26
26
  @Injectable({ providedIn: 'root' })
27
27
  export class HealthService {
28
- private http = inject(HttpClient);
29
- private applicationConfigService = inject(ApplicationConfigService);
28
+ private readonly http = inject(HttpClient);
29
+ private readonly applicationConfigService = inject(ApplicationConfigService);
30
30
 
31
31
  checkHealth(): Observable<Health> {
32
32
  return this.http.get<Health>(this.applicationConfigService.getEndpointFor('management/health'));
@@ -31,7 +31,7 @@ import { HealthKey, HealthDetails } from '../health.model';
31
31
  export default class HealthModalComponent {
32
32
  health?: { key: HealthKey; value: HealthDetails };
33
33
 
34
- private activeModal = inject(NgbActiveModal);
34
+ private readonly activeModal = inject(NgbActiveModal);
35
35
 
36
36
  readableValue(value: any): string {
37
37
  if (this.health?.key === 'diskSpace') {
@@ -60,9 +60,9 @@ export default class LogsComponent implements OnInit {
60
60
  selectedService: string | undefined = undefined;
61
61
  <%_ } _%>
62
62
 
63
- private logsService = inject(LogsService);
64
- private sortService = inject(SortService);
65
- <%= applicationTypeGateway && gatewayServicesApiAvailable ? 'private gatewayRoutesService = inject(GatewayRoutesService);' : '' %>
63
+ private readonly logsService = inject(LogsService);
64
+ private readonly sortService = inject(SortService);
65
+ <%= applicationTypeGateway && gatewayServicesApiAvailable ? 'private readonly gatewayRoutesService = inject(GatewayRoutesService);' : '' %>
66
66
 
67
67
  ngOnInit(): void {
68
68
  this.findAndExtractLoggers();
@@ -25,8 +25,8 @@ import { LoggersResponse, Level } from './log.model';
25
25
 
26
26
  @Injectable({ providedIn: 'root' })
27
27
  export class LogsService {
28
- private http = inject(HttpClient);
29
- private applicationConfigService = inject(ApplicationConfigService);
28
+ private readonly http = inject(HttpClient);
29
+ private readonly applicationConfigService = inject(ApplicationConfigService);
30
30
 
31
31
  changeLevel(name: string, configuredLevel: Level<%= applicationTypeGateway && gatewayServicesApiAvailable ? ', service?: string' : '' %>): Observable<{}> {
32
32
  return this.http.post(this.applicationConfigService.getEndpointFor(`management/loggers/${name}`<%= applicationTypeGateway && gatewayServicesApiAvailable ? ', service' : '' %>), { configuredLevel });
@@ -39,7 +39,7 @@ export class MetricsModalThreadsComponent implements OnInit {
39
39
  threadDumpTimedWaiting = 0;
40
40
  threadDumpWaiting = 0;
41
41
 
42
- private activeModal = inject(NgbActiveModal);
42
+ private readonly activeModal = inject(NgbActiveModal);
43
43
 
44
44
  ngOnInit(): void {
45
45
  this.threads?.forEach(thread => {
@@ -55,8 +55,8 @@ export default class MetricsComponent implements OnInit {
55
55
  threads = signal<Thread[] | undefined>(undefined);
56
56
  updatingMetrics = signal(true);
57
57
 
58
- private metricsService = inject(MetricsService);
59
- private changeDetector = inject(ChangeDetectorRef);
58
+ private readonly metricsService = inject(MetricsService);
59
+ private readonly changeDetector = inject(ChangeDetectorRef);
60
60
 
61
61
  ngOnInit(): void {
62
62
  this.refresh();
@@ -25,8 +25,8 @@ import { Metrics, ThreadDump } from './metrics.model';
25
25
 
26
26
  @Injectable({ providedIn: 'root' })
27
27
  export class MetricsService {
28
- private http = inject(HttpClient);
29
- private applicationConfigService = inject(ApplicationConfigService);
28
+ private readonly http = inject(HttpClient);
29
+ private readonly applicationConfigService = inject(ApplicationConfigService);
30
30
 
31
31
  getMetrics(): Observable<Metrics> {
32
32
  return this.http.get<Metrics>(this.applicationConfigService.getEndpointFor('management/jhimetrics'));
@@ -33,7 +33,7 @@ export default class TrackerComponent implements OnInit, OnDestroy {
33
33
  activities: TrackerActivity[] = [];
34
34
  subscription?: Subscription;
35
35
 
36
- private trackerService = inject(TrackerService);
36
+ private readonly trackerService = inject(TrackerService);
37
37
 
38
38
  showActivity(activity: TrackerActivity): void {
39
39
  let existingActivity = false;
@@ -33,8 +33,8 @@ import { UserManagementService } from '../service/user-management.service';
33
33
  export default class UserManagementDeleteDialogComponent {
34
34
  user?: User;
35
35
 
36
- private userService = inject(UserManagementService);
37
- private activeModal = inject(NgbActiveModal);
36
+ private readonly userService = inject(UserManagementService);
37
+ private readonly activeModal = inject(NgbActiveModal);
38
38
 
39
39
  cancel(): void {
40
40
  this.activeModal.dismiss();
@@ -63,13 +63,13 @@ export default class UserManagementComponent implements OnInit {
63
63
  sortState = sortStateSignal({});
64
64
  <%_ } _%>
65
65
 
66
- private userService = inject(UserManagementService);
66
+ private readonly userService = inject(UserManagementService);
67
67
  <%_ if (!databaseTypeCassandra) { _%>
68
- private activatedRoute = inject(ActivatedRoute);
69
- private router = inject(Router);
70
- private sortService = inject(SortService);
68
+ private readonly activatedRoute = inject(ActivatedRoute);
69
+ private readonly router = inject(Router);
70
+ private readonly sortService = inject(SortService);
71
71
  <%_ } _%>
72
- private modalService = inject(NgbModal);
72
+ private readonly modalService = inject(NgbModal);
73
73
 
74
74
  ngOnInit(): void {
75
75
  <%_ if (databaseTypeCassandra) { _%>
@@ -30,10 +30,10 @@ import { Authority } from 'app/config/authority.constants';
30
30
 
31
31
  @Injectable({ providedIn: 'root' })
32
32
  export class UserManagementService {
33
- private http = inject(HttpClient);
34
- private applicationConfigService = inject(ApplicationConfigService);
33
+ private readonly http = inject(HttpClient);
34
+ private readonly applicationConfigService = inject(ApplicationConfigService);
35
35
 
36
- private resourceUrl = this.applicationConfigService.getEndpointFor('api/admin/users');
36
+ private readonly resourceUrl = this.applicationConfigService.getEndpointFor('api/admin/users');
37
37
 
38
38
  <%_ if (generateUserManagement) { _%>
39
39
  create(user: IUser): Observable<IUser> {
@@ -73,8 +73,8 @@ export default class UserManagementUpdateComponent implements OnInit {
73
73
  authorities: new FormControl(userTemplate.authorities, { nonNullable: true }),
74
74
  });
75
75
 
76
- private userService = inject(UserManagementService);
77
- private route = inject(ActivatedRoute);
76
+ private readonly userService = inject(UserManagementService);
77
+ private readonly route = inject(ActivatedRoute);
78
78
 
79
79
  ngOnInit(): void {
80
80
  this.route.data.subscribe(({ user }) => {
@@ -46,12 +46,12 @@ import { TrackerService } from './core/tracker/tracker.service';
46
46
  ],
47
47
  })
48
48
  export default class AppComponent {
49
- private applicationConfigService = inject(ApplicationConfigService);
50
- private iconLibrary = inject(FaIconLibrary);
49
+ private readonly applicationConfigService = inject(ApplicationConfigService);
50
+ private readonly iconLibrary = inject(FaIconLibrary);
51
51
  <%_ if (communicationSpringWebsocket) { _%>
52
- private trackerService = inject(TrackerService);
52
+ private readonly trackerService = inject(TrackerService);
53
53
  <%_ } _%>
54
- private dpConfig = inject(NgbDatepickerConfig);
54
+ private readonly dpConfig = inject(NgbDatepickerConfig);
55
55
 
56
56
  constructor() {
57
57
  <%_ if (communicationSpringWebsocket) { _%>
@@ -31,17 +31,17 @@ import { ApplicationConfigService } from '../config/application-config.service';
31
31
 
32
32
  @Injectable({ providedIn: 'root' })
33
33
  export class AccountService {
34
- private userIdentity = signal<Account | null>(null);
35
- private authenticationState = new ReplaySubject<Account | null>(1);
34
+ private readonly userIdentity = signal<Account | null>(null);
35
+ private readonly authenticationState = new ReplaySubject<Account | null>(1);
36
36
  private accountCache$?: Observable<Account> | null;
37
37
 
38
38
  <%_ if (enableTranslation) { _%>
39
- private translateService = inject(TranslateService);
39
+ private readonly translateService = inject(TranslateService);
40
40
  <%_ } _%>
41
- private http = inject(HttpClient);
42
- private stateStorageService = inject(StateStorageService);
43
- private router = inject(Router);
44
- private applicationConfigService = inject(ApplicationConfigService);
41
+ private readonly http = inject(HttpClient);
42
+ private readonly stateStorageService = inject(StateStorageService);
43
+ private readonly router = inject(Router);
44
+ private readonly applicationConfigService = inject(ApplicationConfigService);
45
45
 
46
46
  <%_ if (generateUserManagement) { _%>
47
47
  save(account: Account): Observable<{}> {
@@ -31,9 +31,9 @@ type JwtToken = {
31
31
 
32
32
  @Injectable({ providedIn: 'root' })
33
33
  export class AuthServerProvider {
34
- private http = inject(HttpClient);
35
- private stateStorageService = inject(StateStorageService);
36
- private applicationConfigService = inject(ApplicationConfigService);
34
+ private readonly http = inject(HttpClient);
35
+ private readonly stateStorageService = inject(StateStorageService);
36
+ private readonly applicationConfigService = inject(ApplicationConfigService);
37
37
 
38
38
  getToken(): string {
39
39
  return this.stateStorageService.getAuthenticationToken() ?? '';
@@ -32,8 +32,8 @@ import { Login } from 'app/login/login.model';
32
32
 
33
33
  @Injectable({ providedIn: 'root' })
34
34
  export class AuthServerProvider {
35
- private http = inject(HttpClient);
36
- private applicationConfigService = inject(ApplicationConfigService);
35
+ private readonly http = inject(HttpClient);
36
+ private readonly applicationConfigService = inject(ApplicationConfigService);
37
37
 
38
38
  <%_ if (!authenticationTypeOauth2) { _%>
39
39
 
@@ -21,7 +21,7 @@ import { CookieService } from 'ngx-cookie-service';
21
21
 
22
22
  @Injectable({ providedIn: 'root' })
23
23
  export class CSRFService {
24
- private cookieService = inject(CookieService);
24
+ private readonly cookieService = inject(CookieService);
25
25
 
26
26
  getCSRF(name = 'XSRF-TOKEN'): string {
27
27
  return this.cookieService.get(name);
@@ -20,10 +20,10 @@ import { Injectable } from '@angular/core';
20
20
 
21
21
  @Injectable({ providedIn: 'root' })
22
22
  export class StateStorageService {
23
- private previousUrlKey = 'previousUrl';
24
- private authenticationKey = '<%= jhiPrefixDashed %>-authenticationToken';
23
+ private readonly previousUrlKey = 'previousUrl';
24
+ private readonly authenticationKey = '<%= jhiPrefixDashed %>-authenticationToken';
25
25
  <%_ if (enableTranslation) { _%>
26
- private localeKey = 'locale';
26
+ private readonly localeKey = 'locale';
27
27
  <%_ } _%>
28
28
 
29
29
  storeUrl(url: string): void {