generator-jhipster 8.2.1 → 8.3.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 (339) hide show
  1. package/dist/cli/environment-builder.mjs +3 -3
  2. package/dist/cli/jhipster-command.mjs +1 -2
  3. package/dist/cli/jhipster.cjs +0 -0
  4. package/dist/generators/angular/command.js +5 -0
  5. package/dist/generators/angular/generator.js +36 -9
  6. package/dist/generators/angular/index.js +1 -0
  7. package/dist/generators/angular/needle-api/needle-client-angular.js +3 -3
  8. package/dist/generators/angular/resources/package.json +13 -10
  9. package/dist/generators/angular/support/index.js +0 -1
  10. package/dist/generators/angular/support/translate-angular.js +142 -8
  11. package/dist/generators/angular/templates/package.json.ejs +0 -10
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +4 -4
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +1 -1
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html.ejs +1 -1
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +18 -26
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +1 -1
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +18 -25
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +1 -1
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +10 -15
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +1 -1
  22. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +31 -46
  23. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
  24. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +7 -8
  25. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.ts.ejs +1 -1
  26. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +20 -31
  27. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.ts.ejs +1 -1
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +4 -4
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +7 -7
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +7 -12
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.model.ts.ejs +9 -5
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +5 -9
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +5 -5
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +3 -3
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.ts.ejs +3 -3
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html.ejs +5 -5
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +12 -12
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.ts.ejs +4 -4
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +36 -36
  41. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.ts.ejs +4 -4
  42. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +2 -2
  43. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.ts.ejs +3 -3
  44. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +33 -33
  45. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.ts.ejs +3 -3
  46. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +8 -8
  47. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +8 -8
  48. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.ts.ejs +4 -4
  49. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +13 -13
  50. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts.ejs +3 -3
  51. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +4 -4
  52. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +6 -6
  53. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.ts.ejs +2 -1
  54. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +4 -4
  55. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +26 -26
  56. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +3 -3
  57. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.ts.ejs +2 -2
  58. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +16 -18
  59. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +1 -2
  60. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +20 -34
  61. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +1 -1
  62. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +0 -2
  63. package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +7 -7
  64. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +4 -4
  65. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +25 -25
  66. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +3 -3
  67. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.ts.ejs +2 -2
  68. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +14 -14
  69. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +0 -2
  70. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +1 -2
  71. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +17 -24
  72. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +0 -2
  73. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +14 -15
  74. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +1 -5
  75. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
  76. package/dist/generators/angular/templates/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
  77. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +11 -18
  78. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
  79. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
  80. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +0 -2
  81. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
  82. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +11 -12
  83. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +1 -2
  84. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +1 -1
  85. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +3 -3
  86. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.ts.ejs +1 -1
  87. package/dist/generators/app/generator.js +4 -4
  88. package/dist/generators/base/generator.js +21 -2
  89. package/dist/generators/base/shared-data.js +1 -2
  90. package/dist/generators/base/support/basename.js +1 -2
  91. package/dist/generators/base/support/needles.js +3 -5
  92. package/dist/generators/base/support/string.js +2 -2
  93. package/dist/generators/base-application/generator.js +4 -4
  94. package/dist/generators/base-application/support/entity.js +1 -2
  95. package/dist/generators/base-application/support/enum.js +2 -2
  96. package/dist/generators/base-application/support/prepare-entity.js +1 -1
  97. package/dist/generators/base-application/support/prepare-field.js +5 -6
  98. package/dist/generators/base-application/support/relationship.js +1 -2
  99. package/dist/generators/base-application/support/task-type-inference.js +6 -0
  100. package/dist/generators/base-core/generator.js +83 -14
  101. package/dist/generators/base-workspaces/internal/deployments.js +2 -2
  102. package/dist/generators/base-workspaces/internal/docker-dependencies.js +2 -2
  103. package/dist/generators/bootstrap/generator.js +4 -5
  104. package/dist/generators/bootstrap/internal/transform-utils.js +4 -0
  105. package/dist/generators/bootstrap/support/eslint-transform.js +2 -1
  106. package/dist/generators/bootstrap/support/java-unused-imports-transform.js +2 -1
  107. package/dist/generators/bootstrap/support/prettier-worker.js +2 -4
  108. package/dist/generators/bootstrap-application/generator.js +3 -4
  109. package/dist/generators/bootstrap-application-base/generator.js +4 -5
  110. package/dist/generators/bootstrap-application-base/utils.js +3 -3
  111. package/dist/generators/bootstrap-application-client/generator.js +2 -3
  112. package/dist/generators/bootstrap-application-server/generator.js +21 -15
  113. package/dist/generators/bootstrap-workspaces/generator.js +1 -2
  114. package/dist/generators/ci-cd/command.js +1 -2
  115. package/dist/generators/ci-cd/generator.js +3 -3
  116. package/dist/generators/client/command.js +1 -2
  117. package/dist/generators/client/generator.js +12 -12
  118. package/dist/generators/client/needle-api/needle-client-vue.js +2 -2
  119. package/dist/generators/client/resources/package.json +4 -4
  120. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
  121. package/dist/generators/common/generator.js +5 -5
  122. package/dist/generators/common/resources/package.json +1 -1
  123. package/dist/generators/cucumber/generator.js +17 -10
  124. package/dist/generators/cucumber/templates/buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle.ejs +1 -5
  125. package/dist/generators/cypress/generator.js +2 -3
  126. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/administration/administration.cy.ts.ejs +10 -0
  127. package/dist/generators/docker/generator.js +4 -6
  128. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +0 -32
  129. package/dist/generators/docker/utils.js +2 -3
  130. package/dist/generators/docker-compose/generator.js +4 -5
  131. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +0 -32
  132. package/dist/generators/entities/generator.js +4 -4
  133. package/dist/generators/entity/generator.js +10 -9
  134. package/dist/generators/entity/prompts.js +12 -12
  135. package/dist/generators/feign-client/generator.js +3 -4
  136. package/dist/generators/gatling/generator.js +2 -3
  137. package/dist/generators/generate-blueprint/files.js +1 -0
  138. package/dist/generators/generate-blueprint/generator.js +3 -4
  139. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +3 -2
  140. package/dist/generators/generate-blueprint/templates/generators/generator/command.mjs.ejs +19 -1
  141. package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +6 -0
  142. package/dist/generators/generator-constants.js +5 -2
  143. package/dist/generators/git/generator.js +3 -5
  144. package/dist/generators/gradle/command.js +32 -0
  145. package/dist/generators/gradle/constants.js +0 -1
  146. package/dist/generators/gradle/files.js +2 -8
  147. package/dist/generators/gradle/generator.js +85 -13
  148. package/dist/generators/gradle/generators/code-quality/generator.js +86 -0
  149. package/dist/generators/{java/cleanup.js → gradle/generators/code-quality/index.js} +1 -5
  150. package/dist/generators/gradle/generators/jib/generator.js +64 -0
  151. package/dist/generators/gradle/generators/jib/index.js +19 -0
  152. package/dist/generators/gradle/generators/node-gradle/generator.js +64 -0
  153. package/dist/generators/gradle/generators/node-gradle/index.js +19 -0
  154. package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +101 -0
  155. package/dist/generators/gradle/index.js +1 -0
  156. package/dist/generators/gradle/internal/needles.js +9 -3
  157. package/dist/generators/gradle/templates/buildSrc/build.gradle.ejs +3 -2
  158. package/dist/generators/gradle/templates/buildSrc/gradle/libs.versions.toml.ejs +8 -1
  159. package/dist/generators/gradle/templates/gradle/wrapper/{gradle-wrapper.properties.ejs → gradle-wrapper.properties} +1 -1
  160. package/dist/generators/heroku/generator.js +3 -3
  161. package/dist/generators/init/generator.js +3 -4
  162. package/dist/generators/init/resources/.node-version +1 -0
  163. package/dist/generators/java/command.js +2 -38
  164. package/dist/generators/java/generator.js +5 -260
  165. package/dist/generators/java/generators/bootstrap/command.js +35 -0
  166. package/dist/generators/java/generators/bootstrap/generator.js +178 -0
  167. package/dist/generators/java/generators/bootstrap/index.js +20 -0
  168. package/dist/generators/java/generators/build-tool/command.js +42 -0
  169. package/dist/generators/java/generators/build-tool/generator.js +143 -0
  170. package/dist/generators/java/generators/build-tool/index.js +20 -0
  171. package/dist/generators/java/generators/code-quality/command.js +5 -0
  172. package/dist/generators/java/generators/code-quality/generator.js +91 -0
  173. package/dist/generators/java/generators/code-quality/index.js +20 -0
  174. package/dist/generators/java/generators/domain/command.js +30 -0
  175. package/dist/generators/java/{entity-files.js → generators/domain/entity-files.js} +1 -1
  176. package/dist/generators/java/generators/domain/generator.js +153 -0
  177. package/dist/generators/java/generators/domain/index.js +20 -0
  178. package/dist/generators/java/generators/jib/command.js +5 -0
  179. package/dist/generators/java/generators/jib/generator.js +97 -0
  180. package/dist/generators/java/generators/jib/index.js +20 -0
  181. package/dist/generators/{server → java/generators/jib}/templates/src/main/docker/jib/entrypoint.sh.ejs +2 -0
  182. package/dist/generators/java/generators/node/command.js +5 -0
  183. package/dist/generators/java/generators/node/generator.js +97 -0
  184. package/dist/generators/java/generators/node/index.js +20 -0
  185. package/dist/generators/java/support/index.js +1 -0
  186. package/dist/generators/jdl/generator.js +6 -9
  187. package/dist/generators/kubernetes/generator.js +1 -1
  188. package/dist/generators/kubernetes/kubernetes-base.js +3 -3
  189. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +0 -32
  190. package/dist/generators/kubernetes-helm/generator.js +1 -1
  191. package/dist/generators/kubernetes-knative/generator.js +1 -1
  192. package/dist/generators/languages/entity-files.js +3 -2
  193. package/dist/generators/languages/generator.js +7 -10
  194. package/dist/generators/languages/support/translate.js +34 -9
  195. package/dist/generators/languages/translation-data.js +4 -5
  196. package/dist/generators/liquibase/generator.js +68 -25
  197. package/dist/generators/liquibase/support/maven-plugin.js +6 -0
  198. package/dist/generators/liquibase/templates/gradle/liquibase.gradle.ejs +3 -6
  199. package/dist/generators/maven/generator.js +14 -6
  200. package/dist/generators/maven/generators/code-quality/command.js +5 -0
  201. package/dist/generators/maven/generators/code-quality/generator.js +268 -0
  202. package/dist/generators/maven/generators/code-quality/index.js +20 -0
  203. package/dist/generators/maven/generators/frontend-plugin/command.js +5 -0
  204. package/dist/generators/maven/generators/frontend-plugin/generator.js +295 -0
  205. package/dist/generators/maven/generators/frontend-plugin/index.js +20 -0
  206. package/dist/generators/maven/generators/jib/command.js +5 -0
  207. package/dist/generators/maven/generators/jib/generator.js +136 -0
  208. package/dist/generators/maven/generators/jib/index.js +20 -0
  209. package/dist/generators/maven/internal/xml-store.js +1 -2
  210. package/dist/generators/maven/support/dependabot-maven.js +12 -2
  211. package/dist/generators/maven/support/pom-store.js +1 -2
  212. package/dist/generators/project-name/generator.js +9 -11
  213. package/dist/generators/react/generator.js +25 -6
  214. package/dist/generators/react/needle-api/needle-client-react.js +2 -2
  215. package/dist/generators/react/resources/package.json +18 -15
  216. package/dist/generators/react/templates/package.json.ejs +1 -7
  217. package/dist/generators/react/templates/src/main/webapp/app/modules/administration/tracker/tracker.tsx.ejs +2 -2
  218. package/dist/generators/server/command.js +2 -34
  219. package/dist/generators/server/generator.js +20 -154
  220. package/dist/generators/server/jdl/application-definition.js +1 -2
  221. package/dist/generators/server/prompts.js +4 -46
  222. package/dist/generators/server/resources/Dockerfile +7 -7
  223. package/dist/generators/server/resources/build.gradle +1 -0
  224. package/dist/generators/server/resources/gradle/libs.versions.toml +25 -7
  225. package/dist/generators/server/resources/pom.xml +4 -22
  226. package/dist/generators/server/support/prepare-field.js +1 -2
  227. package/dist/generators/server/templates/build.gradle.ejs +29 -143
  228. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +1 -1
  229. package/dist/generators/server/templates/gradle.properties.ejs +0 -7
  230. package/dist/generators/server/templates/pom.xml.ejs +23 -444
  231. package/dist/generators/server/templates/settings.gradle.ejs +0 -4
  232. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +15 -3
  233. package/dist/generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs +4 -1
  234. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +15 -4
  235. package/dist/generators/server/templates/src/test/java/_package_/IntegrationTest.java.ejs +0 -2
  236. package/dist/generators/server/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs +71 -46
  237. package/dist/generators/server/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs +0 -3
  238. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +1 -1
  239. package/dist/generators/spring-boot/command.js +31 -2
  240. package/dist/generators/spring-boot/entity-files.js +2 -2
  241. package/dist/generators/spring-boot/files.js +3 -38
  242. package/dist/generators/spring-boot/generator.js +98 -37
  243. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +105 -105
  244. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +2 -2
  245. package/dist/generators/spring-cache/generator.js +11 -6
  246. package/dist/generators/spring-cache/internal/dependencies.js +5 -0
  247. package/dist/generators/spring-cache/resources/build.gradle +1 -0
  248. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +15 -0
  249. package/dist/generators/spring-cache/templates/src/test/java/_package_/config/RedisTestContainersSpringContextCustomizerFactory.java.ejs +29 -13
  250. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -0
  251. package/dist/generators/spring-cloud/generators/gateway/generator.js +146 -0
  252. package/dist/generators/spring-cloud/generators/gateway/index.js +20 -0
  253. package/dist/generators/spring-cloud-stream/generator.js +2 -3
  254. package/dist/generators/spring-cloud-stream/generators/kafka/generator.js +2 -2
  255. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/config/KafkaTestContainersSpringContextCustomizerFactory.java.ejs +28 -12
  256. package/dist/generators/spring-cloud-stream/generators/pulsar/generator.js +2 -2
  257. package/dist/generators/spring-cloud-stream/generators/pulsar/templates/src/test/java/_package_/config/PulsarTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
  258. package/dist/generators/spring-data-cassandra/generator.js +5 -6
  259. package/dist/generators/spring-data-cassandra/templates/src/test/java/_package_/config/CassandraTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
  260. package/dist/generators/spring-data-couchbase/generator.js +3 -4
  261. package/dist/generators/spring-data-elasticsearch/generator.js +3 -5
  262. package/dist/generators/spring-data-mongodb/generator.js +5 -5
  263. package/dist/generators/spring-data-neo4j/generator.js +11 -5
  264. package/dist/generators/spring-data-neo4j/templates/src/test/java/_package_/config/Neo4jTestContainersSpringContextCustomizerFactory.java.ejs +32 -16
  265. package/dist/generators/spring-data-relational/generator.js +6 -7
  266. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +47 -32
  267. package/dist/generators/spring-websocket/generator.js +2 -3
  268. package/dist/generators/statistics.js +2 -2
  269. package/dist/generators/upgrade/generator.js +4 -3
  270. package/dist/generators/vue/generator.js +4 -4
  271. package/dist/generators/vue/resources/package.json +18 -15
  272. package/dist/generators/vue/templates/package.json.ejs +3 -3
  273. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.spec.ts.ejs +1 -1
  274. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +1 -1
  275. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +3 -3
  276. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.vue.ejs +2 -2
  277. package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +4 -3
  278. package/dist/generators/vue/templates/vite.config.mts.ejs +6 -0
  279. package/dist/generators/workspaces/generator.js +5 -4
  280. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +2 -2
  281. package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +3 -3
  282. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +2 -2
  283. package/dist/jdl/jdl-importer.js +1 -2
  284. package/dist/jdl/jhipster/default-application-options.js +1 -1
  285. package/dist/jdl/jhipster/field-types.js +2 -2
  286. package/dist/jdl/jhipster/relationship-types.js +1 -2
  287. package/dist/jdl/models/jdl-deployment.js +1 -2
  288. package/dist/jdl/parsing/api.js +2 -2
  289. package/dist/jdl/parsing/lexer/token-creator.js +1 -2
  290. package/dist/jdl/parsing/self-checks/parsing-system-checker.js +13 -13
  291. package/dist/jdl/parsing/validator.js +5 -5
  292. package/dist/testing/get-generator.js +1 -1
  293. package/dist/testing/helpers.js +34 -9
  294. package/dist/types/generators/angular/support/index.d.ts +0 -1
  295. package/dist/types/generators/angular/support/translate-angular.d.ts +7 -4
  296. package/dist/types/generators/app/support/config.d.ts +1 -1
  297. package/dist/types/generators/base/api.d.ts +7 -0
  298. package/dist/types/generators/base/generator.d.ts +1 -1
  299. package/dist/types/generators/base-application/generator.d.ts +4 -4
  300. package/dist/types/generators/base-application/support/task-type-inference.d.ts +3 -0
  301. package/dist/types/generators/base-application/support/update-application-entities-transform.d.ts +1 -1
  302. package/dist/types/generators/base-core/generator.d.ts +33 -1
  303. package/dist/types/generators/bootstrap/internal/transform-utils.d.ts +1 -0
  304. package/dist/types/generators/bootstrap/support/java-unused-imports-transform.d.ts +1 -1
  305. package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.ts +2 -2
  306. package/dist/types/generators/docker/utils.d.ts +7 -0
  307. package/dist/types/generators/generator-constants.d.ts +2 -20
  308. package/dist/types/generators/gradle/types.d.ts +21 -7
  309. package/dist/types/generators/java/support/index.d.ts +1 -0
  310. package/dist/types/generators/java/types.d.ts +37 -22
  311. package/dist/types/generators/languages/support/translate.d.ts +29 -0
  312. package/dist/types/generators/maven/support/dependabot-maven.d.ts +17 -1
  313. package/dist/types/generators/project-name/support/name-resolver.d.ts +1 -1
  314. package/dist/types/generators/server/types.d.ts +2 -0
  315. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +0 -18
  316. package/dist/types/testing/helpers.d.ts +6 -0
  317. package/dist/types/testing/support/matrix-utils.d.ts +1 -1
  318. package/package.json +15 -27
  319. package/dist/generators/java/files.js +0 -20
  320. /package/dist/generators/{server → gradle/generators/code-quality}/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs +0 -0
  321. /package/dist/generators/{server → gradle/generators/jib}/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs +0 -0
  322. /package/dist/generators/java/{templates → generators/bootstrap/templates}/src/main/java/_package_/GeneratedByJHipster.java.ejs +0 -0
  323. /package/dist/generators/{server → java/generators/code-quality}/templates/checkstyle.xml.ejs +0 -0
  324. /package/dist/generators/java/{templates → generators/domain/templates}/_global_partials_entity_/field_validators.ejs +0 -0
  325. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +0 -0
  326. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +0 -0
  327. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jakarta_validation.ejs +0 -0
  328. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +0 -0
  329. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +0 -0
  330. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +0 -0
  331. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +0 -0
  332. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/domain/AssertUtils.java.ejs +0 -0
  333. /package/dist/generators/{server → java/generators/node}/templates/npmw +0 -0
  334. /package/dist/generators/{server → java/generators/node}/templates/npmw.cmd +0 -0
  335. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/security/jwt/JWTRelayGatewayFilterFactory.java.ejs +0 -0
  336. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/filter/ModifyServersOpenApiFilter.java.ejs +0 -0
  337. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/GatewayResource.java.ejs +0 -0
  338. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/vm/RouteVM.java.ejs +0 -0
  339. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/test/java/_package_/web/filter/ModifyServersOpenApiFilterTest.java.ejs +0 -0
@@ -16,7 +16,7 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import * as _ from 'lodash-es';
19
+ import { lowerFirst } from 'lodash-es';
20
20
  import { formatDocAsJavaDoc } from '../../java/support/doc.js';
21
21
  const doesTheEnumValueHaveACustomValue = enumValue => {
22
22
  return enumValue.includes('(');
@@ -67,7 +67,7 @@ const getEnums = (enums, customValuesState, comments) => {
67
67
  };
68
68
  const extractEnumInstance = field => {
69
69
  const fieldType = field.fieldType;
70
- return _.lowerFirst(fieldType);
70
+ return lowerFirst(fieldType);
71
71
  };
72
72
  const extractEnumEntries = field => {
73
73
  return field.fieldValues.split(',').map(fieldValue => fieldValue.trim());
@@ -573,7 +573,7 @@ function preparePostEntityCommonDerivedPropertiesNotTyped(entity) {
573
573
  entity.containsBagRelationships = entity.relationships.some(relationship => relationship.bagRelationship);
574
574
  entity.implementsEagerLoadApis = // Cassandra doesn't provides *WithEagerRelationships apis
575
575
  ![CASSANDRA, COUCHBASE, NEO4J].includes(entity.databaseType) &&
576
- // Only sql and mongodb provides *WithEagerReationships apis for imperative implementation
576
+ // Only sql and mongodb provides *WithEagerRelationships apis for imperative implementation
577
577
  (entity.reactive || [SQL, MONGODB].includes(entity.databaseType)) &&
578
578
  entity.relationshipsContainEagerLoad;
579
579
  entity.eagerRelations = entity.relationships.filter(rel => rel.relationshipEagerLoad);
@@ -16,8 +16,7 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { snakeCase, startCase, upperFirst } from 'lodash-es';
20
- import * as _ from 'lodash-es';
19
+ import { snakeCase, startCase, upperFirst, defaults, kebabCase } from 'lodash-es';
21
20
  import { fieldTypes, validations } from '../../../jdl/jhipster/index.js';
22
21
  import { getTypescriptType, prepareField as prepareClientFieldForTemplates } from '../../client/support/index.js';
23
22
  import { prepareField as prepareServerFieldForTemplates } from '../../server/support/index.js';
@@ -223,7 +222,7 @@ function _derivedProperties(field) {
223
222
  const fieldType = field.fieldType;
224
223
  const fieldTypeBlobContent = field.fieldTypeBlobContent;
225
224
  const validationRules = field.fieldValidate ? field.fieldValidateRules : [];
226
- _.defaults(field, {
225
+ defaults(field, {
227
226
  blobContentTypeText: fieldTypeBlobContent === TEXT,
228
227
  blobContentTypeImage: fieldTypeBlobContent === IMAGE,
229
228
  blobContentTypeAny: fieldTypeBlobContent === ANY,
@@ -281,13 +280,13 @@ function prepareCommonFieldForTemplates(entityWithConfig, field, generator) {
281
280
  tsType: ({ fieldType }) => getTypescriptType(fieldType),
282
281
  });
283
282
  prepareProperty(field);
284
- _.defaults(field, {
283
+ defaults(field, {
285
284
  entity: entityWithConfig,
286
285
  });
287
286
  const fieldType = field.fieldType;
288
287
  field.fieldIsEnum = !field.id && fieldIsEnum(fieldType);
289
288
  if (field.fieldIsEnum) {
290
- field.enumFileName = _.kebabCase(field.fieldType);
289
+ field.enumFileName = kebabCase(field.fieldType);
291
290
  field.enumValues = getEnumValuesWithCustomValues(field.fieldValues);
292
291
  }
293
292
  field.fieldWithContentType = (fieldType === BYTES || fieldType === BYTE_BUFFER) && field.fieldTypeBlobContent !== TEXT;
@@ -295,7 +294,7 @@ function prepareCommonFieldForTemplates(entityWithConfig, field, generator) {
295
294
  field.contentTypeFieldName = `${field.fieldName}ContentType`;
296
295
  }
297
296
  field.fieldValidate = Array.isArray(field.fieldValidateRules) && field.fieldValidateRules.length >= 1;
298
- _.defaults(field, {
297
+ defaults(field, {
299
298
  nullable: !(field.fieldValidate === true && field.fieldValidateRules.includes(REQUIRED)),
300
299
  });
301
300
  field.unique = field.fieldValidate === true && field.fieldValidateRules.includes(UNIQUE);
@@ -16,10 +16,9 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import * as _ from 'lodash-es';
19
+ import { upperFirst, lowerFirst } from 'lodash-es';
20
20
  import { stringifyApplicationData } from './debug.js';
21
21
  import { findEntityInEntities } from './entity.js';
22
- const { upperFirst, lowerFirst } = _;
23
22
  export const otherRelationshipType = relationshipType => relationshipType.split('-').reverse().join('-');
24
23
  export const findOtherRelationshipInRelationships = (entityName, relationship, inRelationships) => {
25
24
  return inRelationships.find(otherRelationship => {
@@ -1,3 +1,9 @@
1
+ export function asWriteFilesSection(section) {
2
+ return section;
3
+ }
4
+ export function asWriteFilesBlock(section) {
5
+ return section;
6
+ }
1
7
  export function asInitializingTask(task) {
2
8
  return task;
3
9
  }
@@ -25,8 +25,7 @@ import assert from 'assert';
25
25
  import { requireNamespace } from '@yeoman/namespace';
26
26
  import chalk from 'chalk';
27
27
  import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
28
- import * as _ from 'lodash-es';
29
- import { kebabCase } from 'lodash-es';
28
+ import { kebabCase, snakeCase, merge, get, set } from 'lodash-es';
30
29
  import { simpleGit } from 'simple-git';
31
30
  import semver, { lt as semverLessThan } from 'semver';
32
31
  import YeomanGenerator from 'yeoman-generator';
@@ -41,7 +40,7 @@ import command from '../base/command.js';
41
40
  import { GENERATOR_JHIPSTER, YO_RC_FILE } from '../generator-constants.js';
42
41
  import { convertConfigToOption } from '../../lib/internal/index.js';
43
42
  import { getGradleLibsVersionsProperties } from '../gradle/support/dependabot-gradle.js';
44
- const { merge, get, set } = _;
43
+ import { dockerPlaceholderGenerator } from '../docker/utils.js';
45
44
  const { INITIALIZING, PROMPTING, CONFIGURING, COMPOSING, LOADING, PREPARING, POST_PREPARING, DEFAULT, WRITING, POST_WRITING, INSTALL, POST_INSTALL, END, } = PRIORITY_NAMES;
46
45
  const __filename = fileURLToPath(import.meta.url);
47
46
  const __dirname = dirname(__filename);
@@ -83,6 +82,13 @@ export default class CoreGenerator extends YeomanGenerator {
83
82
  */
84
83
  jhipsterTemplatesFolders;
85
84
  blueprintStorage;
85
+ /** Allow to use a specific definition at current command operations */
86
+ generatorCommand;
87
+ /**
88
+ * @experimental
89
+ * Additional commands to be considered
90
+ */
91
+ generatorsToCompose = [];
86
92
  _jhipsterGenerator;
87
93
  _needleApi;
88
94
  constructor(args, options, features) {
@@ -211,19 +217,72 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`);
211
217
  }
212
218
  return priorities;
213
219
  }
214
- async parseCurrentJHipsterCommand() {
215
- const module = await this._meta?.importModule?.();
216
- if (!module?.command) {
217
- throw new Error(`Command not found for generator ${this.options.namespace}`);
220
+ /**
221
+ * Get the current Command Definition for the generator.
222
+ * `generatorCommand` takes precedence.
223
+ */
224
+ async getCurrentJHipsterCommand() {
225
+ if (!this.generatorCommand) {
226
+ const { command } = ((await this._meta?.importModule?.()) ?? {});
227
+ if (!command) {
228
+ throw new Error(`Command not found for generator ${this.options.namespace}`);
229
+ }
230
+ this.generatorCommand = command;
231
+ return command;
218
232
  }
219
- this.parseJHipsterCommand(module?.command);
233
+ return this.generatorCommand;
220
234
  }
235
+ /**
236
+ * Parse command definition arguments, options and configs.
237
+ * Blueprints with command override takes precedence.
238
+ */
239
+ async parseCurrentJHipsterCommand() {
240
+ const generatorCommand = await this.getCurrentJHipsterCommand();
241
+ this.parseJHipsterCommand(generatorCommand);
242
+ }
243
+ /**
244
+ * Prompts for command definition configs.
245
+ * Blueprints with command override takes precedence.
246
+ */
221
247
  async promptCurrentJHipsterCommand() {
222
- const module = await this._meta?.importModule?.();
223
- if (!module?.command?.configs) {
248
+ const generatorCommand = await this.getCurrentJHipsterCommand();
249
+ if (!generatorCommand.configs) {
224
250
  throw new Error(`Configs not found for generator ${this.options.namespace}`);
225
251
  }
226
- return this.prompt(this.prepareQuestions(module?.command?.configs));
252
+ return this.prompt(this.prepareQuestions(generatorCommand.configs));
253
+ }
254
+ /**
255
+ * Load the current JHipster command storage configuration into the context.
256
+ * Blueprints with command override takes precedence.
257
+ */
258
+ async loadCurrentJHipsterCommandConfig(context) {
259
+ const generatorCommand = await this.getCurrentJHipsterCommand();
260
+ if (!generatorCommand.configs) {
261
+ throw new Error(`Configs not found for generator ${this.options.namespace}`);
262
+ }
263
+ const config = this.jhipsterConfigWithDefaults;
264
+ Object.entries(generatorCommand.configs).forEach(([name, def]) => {
265
+ if (def.scope === 'storage') {
266
+ context[name] = context[name] ?? config?.[name] ?? this.config.get(name);
267
+ }
268
+ if (def.scope === 'blueprint') {
269
+ context[name] = context[name] ?? this.blueprintStorage?.get(name);
270
+ }
271
+ });
272
+ }
273
+ /**
274
+ * @experimental
275
+ * Compose the current JHipster command compose.
276
+ * Blueprints commands compose without generators will be composed.
277
+ */
278
+ async composeCurrentJHipsterCommand() {
279
+ const generatorCommand = await this.getCurrentJHipsterCommand();
280
+ for (const compose of generatorCommand.compose ?? []) {
281
+ await this.composeWithJHipster(compose);
282
+ }
283
+ for (const compose of this.generatorsToCompose) {
284
+ await this.composeWithJHipster(compose);
285
+ }
227
286
  }
228
287
  parseJHipsterCommand(commandDef) {
229
288
  if (commandDef.arguments) {
@@ -871,9 +930,19 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
871
930
  /**
872
931
  * Shallow clone or convert dependencies to placeholder if needed.
873
932
  */
874
- prepareDependencies(map, valuePlaceholder = value => `${_.snakeCase(value).toUpperCase()}_VERSION`) {
933
+ prepareDependencies(map, valuePlaceholder) {
934
+ let placeholder;
935
+ if (valuePlaceholder === 'java') {
936
+ placeholder = value => `'${kebabCase(value).toUpperCase()}-VERSION'`;
937
+ }
938
+ else if (valuePlaceholder === 'docker') {
939
+ placeholder = dockerPlaceholderGenerator;
940
+ }
941
+ else {
942
+ placeholder = valuePlaceholder ?? (value => `${snakeCase(value).toUpperCase()}_VERSION`);
943
+ }
875
944
  if (this.useVersionPlaceholders) {
876
- return Object.fromEntries(Object.keys(map).map(dep => [dep, valuePlaceholder(dep)]));
945
+ return Object.fromEntries(Object.keys(map).map(dep => [dep, placeholder(dep)]));
877
946
  }
878
947
  return {
879
948
  ...map,
@@ -894,7 +963,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
894
963
  }
895
964
  const gradleLibsVersions = this.readTemplate(gradleCatalog)?.toString();
896
965
  if (gradleLibsVersions) {
897
- Object.assign(javaDependencies, this.prepareDependencies(getGradleLibsVersionsProperties(gradleLibsVersions), value => `'${kebabCase(value).toUpperCase()}-VERSION'`));
966
+ Object.assign(javaDependencies, this.prepareDependencies(getGradleLibsVersionsProperties(gradleLibsVersions), 'java'));
898
967
  }
899
968
  }
900
969
  loadNodeDependenciesFromPackageJson(destination, packageJsonFile = this.templatePath('../resources/package.json')) {
@@ -16,13 +16,13 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import * as _ from 'lodash-es';
19
+ import { defaults } from 'lodash-es';
20
20
  import { applicationOptions, deploymentOptions } from '../../../jdl/index.js';
21
21
  import { loadDerivedPlatformConfig, loadPlatformConfig, loadDerivedServerAndPlatformProperties } from '../../server/support/index.js';
22
22
  const { OptionNames } = applicationOptions;
23
23
  const { Options: DeploymentOptions } = deploymentOptions;
24
24
  const { JWT_SECRET_KEY } = OptionNames;
25
- export function loadDeploymentConfig({ config = _.defaults({}, this.jhipsterConfig, DeploymentOptions.defaults(this.jhipsterConfig.deploymentType)), deployment = this, } = {}) {
25
+ export function loadDeploymentConfig({ config = defaults({}, this.jhipsterConfig, DeploymentOptions.defaults(this.jhipsterConfig.deploymentType)), deployment = this, } = {}) {
26
26
  deployment.appsFolders = config.appsFolders;
27
27
  deployment.directoryPath = config.directoryPath;
28
28
  deployment.clusteredDbApps = config.clusteredDbApps;
@@ -17,11 +17,11 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import { dockerContainers as elasticDockerContainer } from '../../generator-constants.js';
20
- import { dockerPlaceholderGenerator, getDockerfileContainers } from '../../docker/utils.js';
20
+ import { getDockerfileContainers } from '../../docker/utils.js';
21
21
  export async function loadDockerDependenciesTask({ context = this } = {}) {
22
22
  const dockerfile = this.readTemplate(this.jhipsterTemplatePath('../../server/resources/Dockerfile'));
23
23
  context.dockerContainers = this.prepareDependencies({
24
24
  ...elasticDockerContainer,
25
25
  ...getDockerfileContainers(dockerfile),
26
- }, dockerPlaceholderGenerator);
26
+ }, 'docker');
27
27
  }
@@ -23,9 +23,8 @@ import { createCommitTransform } from 'mem-fs-editor/transform';
23
23
  import BaseGenerator from '../base/index.js';
24
24
  import { createMultiStepTransform, createPrettierTransform, createForceWriteConfigFilesTransform, autoCrlfTransform, isPrettierConfigFilePath, createSortConfigFilesTransform, createESLintTransform, createRemoveUnusedImportsTransform, } from './support/index.js';
25
25
  import { PRETTIER_EXTENSIONS } from '../generator-constants.js';
26
- import { GENERATOR_BOOTSTRAP, GENERATOR_UPGRADE } from '../generator-list.js';
26
+ import { GENERATOR_UPGRADE } from '../generator-list.js';
27
27
  import { PRIORITY_NAMES, QUEUES } from '../base-application/priorities.js';
28
- import command from './command.js';
29
28
  import { loadStoredAppOptions } from '../app/support/index.js';
30
29
  const { MULTISTEP_TRANSFORM, PRE_CONFLICTS } = PRIORITY_NAMES;
31
30
  const { MULTISTEP_TRANSFORM_QUEUE, PRE_CONFLICTS_QUEUE } = QUEUES;
@@ -48,7 +47,7 @@ export default class BootstrapGenerator extends BaseGenerator {
48
47
  this.env.options.nodePackageManager = 'npm';
49
48
  this.upgradeCommand = this.options.commandName === GENERATOR_UPGRADE;
50
49
  if (!this.fromBlueprint) {
51
- await this.composeWithBlueprints(GENERATOR_BOOTSTRAP);
50
+ await this.composeWithBlueprints();
52
51
  }
53
52
  if (this.delegateToBlueprint) {
54
53
  throw new Error('Only sbs blueprint is supported');
@@ -56,8 +55,8 @@ export default class BootstrapGenerator extends BaseGenerator {
56
55
  }
57
56
  get initializing() {
58
57
  return this.asInitializingTaskGroup({
59
- loadOptions() {
60
- this.parseJHipsterOptions(command.options, command.configs);
58
+ async parseCommand() {
59
+ await this.parseCurrentJHipsterCommand();
61
60
  },
62
61
  validateBlueprint() {
63
62
  if (this.jhipsterConfig.blueprints && !this.skipChecks) {
@@ -0,0 +1,4 @@
1
+ export const addLineNumbers = input => input
2
+ .split('\n')
3
+ .map((line, index) => `${index + 1}: ${line}`)
4
+ .join('\n');
@@ -22,6 +22,7 @@ import { Minimatch } from 'minimatch';
22
22
  import { Piscina } from 'piscina';
23
23
  import { getPackageRoot } from '../../../lib/index.js';
24
24
  import { JS_PRETTIER_EXTENSIONS } from '../../generator-constants.js';
25
+ import { addLineNumbers } from '../internal/transform-utils.js';
25
26
  // eslint-disable-next-line import/prefer-default-export
26
27
  export const createESLintTransform = function (transformOptions = {}) {
27
28
  const { extensions = JS_PRETTIER_EXTENSIONS, ignoreErrors } = transformOptions;
@@ -44,7 +45,7 @@ export const createESLintTransform = function (transformOptions = {}) {
44
45
  file.contents = Buffer.from(result);
45
46
  }
46
47
  if (error) {
47
- const errorMessage = `Error parsing file ${file.relative}: ${error} at ${fileContents}`;
48
+ const errorMessage = `Error parsing file ${file.relative}: ${error} at ${addLineNumbers(fileContents)}`;
48
49
  if (!ignoreErrors) {
49
50
  throw new Error(errorMessage);
50
51
  }
@@ -2,6 +2,7 @@ import { extname } from 'path';
2
2
  import { passthrough } from 'p-transform';
3
3
  import { isFileStateModified } from 'mem-fs-editor/state';
4
4
  import { Piscina } from 'piscina';
5
+ import { addLineNumbers } from '../internal/transform-utils.js';
5
6
  // eslint-disable-next-line import/prefer-default-export
6
7
  export const createRemoveUnusedImportsTransform = function (options = {}) {
7
8
  const { ignoreErrors } = options;
@@ -21,7 +22,7 @@ export const createRemoveUnusedImportsTransform = function (options = {}) {
21
22
  file.contents = Buffer.from(result);
22
23
  }
23
24
  if (error) {
24
- const errorMessage = `Error parsing file ${file.relative}: ${error} at ${fileContents}`;
25
+ const errorMessage = `Error parsing file ${file.relative}: ${error} at ${addLineNumbers(fileContents)}`;
25
26
  if (ignoreErrors) {
26
27
  this?.log?.warn?.(errorMessage);
27
28
  return;
@@ -2,6 +2,7 @@ import prettier from 'prettier';
2
2
  import prettierPluginJava from 'prettier-plugin-java';
3
3
  import prettierPluginProperties from 'prettier-plugin-properties';
4
4
  import prettierPluginPackagejson from 'prettier-plugin-packagejson';
5
+ import { addLineNumbers } from '../internal/transform-utils.js';
5
6
  export default async ({ relativeFilePath, filePath, fileContents, prettierOptions, prettierPackageJson, prettierJava, prettierProperties, }) => {
6
7
  try {
7
8
  const resolvedDestinationFileOptions = await prettier.resolveConfig(relativeFilePath);
@@ -29,10 +30,7 @@ export default async ({ relativeFilePath, filePath, fileContents, prettierOption
29
30
  if (fileContents) {
30
31
  errorMessage = `Error parsing file ${relativeFilePath}: ${error}
31
32
 
32
- At: ${fileContents
33
- .split('\n')
34
- .map((value, idx) => `${idx + 1}: ${value}`)
35
- .join('\n')}`;
33
+ At: ${addLineNumbers(fileContents)}`;
36
34
  }
37
35
  else {
38
36
  errorMessage = `Unknown prettier error: ${error}`;
@@ -20,7 +20,6 @@ import assert from 'assert';
20
20
  import BaseApplicationGenerator from '../base-application/index.js';
21
21
  import { validations } from '../../jdl/jhipster/index.js';
22
22
  import { stringifyApplicationData, derivedPrimaryKeyProperties, preparePostEntitiesCommonDerivedProperties, preparePostEntityCommonDerivedProperties, } from '../base-application/support/index.js';
23
- import { GENERATOR_BOOTSTRAP_APPLICATION, GENERATOR_BOOTSTRAP_APPLICATION_CLIENT, GENERATOR_BOOTSTRAP_APPLICATION_SERVER, } from '../generator-list.js';
24
23
  import { preparePostEntityServerDerivedProperties } from '../server/support/index.js';
25
24
  import { loadStoredAppOptions } from '../app/support/index.js';
26
25
  import { JHIPSTER_DOCUMENTATION_ARCHIVE_PATH, JHIPSTER_DOCUMENTATION_URL } from '../generator-constants.js';
@@ -34,13 +33,13 @@ export default class BootstrapApplicationGenerator extends BaseApplicationGenera
34
33
  }
35
34
  async beforeQueue() {
36
35
  if (!this.fromBlueprint) {
37
- await this.composeWithBlueprints(GENERATOR_BOOTSTRAP_APPLICATION);
36
+ await this.composeWithBlueprints();
38
37
  }
39
38
  if (this.delegateToBlueprint) {
40
39
  throw new Error('Only sbs blueprint is supported');
41
40
  }
42
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_CLIENT);
43
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_SERVER);
41
+ await this.dependsOnBootstrapApplicationClient();
42
+ await this.dependsOnBootstrapApplicationServer();
44
43
  }
45
44
  get preparing() {
46
45
  return this.asPreparingTaskGroup({
@@ -18,7 +18,7 @@
18
18
  */
19
19
  import assert from 'assert';
20
20
  import os from 'os';
21
- import * as _ from 'lodash-es';
21
+ import { lowerFirst } from 'lodash-es';
22
22
  import chalk from 'chalk';
23
23
  import { passthrough } from '@yeoman/transform';
24
24
  import { isFileStateModified } from 'mem-fs-editor/state';
@@ -26,14 +26,13 @@ import BaseApplicationGenerator from '../base-application/index.js';
26
26
  import { addFakerToEntity, loadEntitiesAnnotations, loadEntitiesOtherSide, stringifyApplicationData, prepareEntity as prepareEntityForTemplates, prepareField as prepareFieldForTemplates, prepareRelationship, } from '../base-application/support/index.js';
27
27
  import { createAuthorityEntity, createUserEntity, createUserManagementEntity } from './utils.js';
28
28
  import { JAVA_DOCKER_DIR } from '../generator-constants.js';
29
- import { GENERATOR_BOOTSTRAP, GENERATOR_BOOTSTRAP_APPLICATION_BASE, GENERATOR_COMMON, GENERATOR_PROJECT_NAME } from '../generator-list.js';
29
+ import { GENERATOR_BOOTSTRAP, GENERATOR_COMMON, GENERATOR_PROJECT_NAME } from '../generator-list.js';
30
30
  import { packageJson } from '../../lib/index.js';
31
31
  import { loadLanguagesConfig } from '../languages/support/index.js';
32
32
  import { loadAppConfig, loadDerivedAppConfig, loadStoredAppOptions } from '../app/support/index.js';
33
33
  import { exportJDLTransform, importJDLTransform } from './support/index.js';
34
34
  import command from './command.js';
35
35
  const isWin32 = os.platform() === 'win32';
36
- const { lowerFirst } = _;
37
36
  export default class BootstrapApplicationBase extends BaseApplicationGenerator {
38
37
  constructor(args, options, features) {
39
38
  super(args, options, { jhipsterBootstrap: false, ...features });
@@ -43,7 +42,7 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator {
43
42
  }
44
43
  async beforeQueue() {
45
44
  if (!this.fromBlueprint) {
46
- await this.composeWithBlueprints(GENERATOR_BOOTSTRAP_APPLICATION_BASE);
45
+ await this.composeWithBlueprints();
47
46
  }
48
47
  if (this.delegateToBlueprint) {
49
48
  throw new Error('Only sbs blueprint is supported');
@@ -286,7 +285,7 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator {
286
285
  });
287
286
  }
288
287
  get [BaseApplicationGenerator.POST_PREPARING_EACH_ENTITY]() {
289
- return this.asPostPreparingEachEntityTaskGroup(this.delegateTasksToBlueprint(() => this.postPreparingEachEntity));
288
+ return this.delegateTasksToBlueprint(() => this.postPreparingEachEntity);
290
289
  }
291
290
  get default() {
292
291
  return this.asDefaultTaskGroup({
@@ -16,7 +16,7 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import * as _ from 'lodash-es';
19
+ import { defaults } from 'lodash-es';
20
20
  import { Validations, authenticationTypes, databaseTypes, fieldTypes } from '../../jdl/jhipster/index.js';
21
21
  import { loadRequiredConfigIntoEntity } from '../base-application/support/index.js';
22
22
  import { PaginationTypes } from '../../jdl/jhipster/entity-options.js';
@@ -285,7 +285,7 @@ function addOrExtendFields(fields, fieldsToAdd) {
285
285
  }
286
286
  }
287
287
  else {
288
- _.defaults(field, fieldToAdd);
288
+ defaults(field, fieldToAdd);
289
289
  }
290
290
  }
291
291
  }
@@ -299,7 +299,7 @@ function addOrExtendRelationships(relationships, relationshipsToAdd) {
299
299
  relationships.push(relationship);
300
300
  }
301
301
  else {
302
- _.defaults(relationship, relationshipToAdd);
302
+ defaults(relationship, relationshipToAdd);
303
303
  }
304
304
  }
305
305
  }
@@ -18,7 +18,6 @@
18
18
  */
19
19
  import { loadClientConfig, loadDerivedClientConfig, preparePostEntityClientDerivedProperties } from '../client/support/index.js';
20
20
  import BaseApplicationGenerator from '../base-application/index.js';
21
- import { GENERATOR_BOOTSTRAP_APPLICATION_BASE, GENERATOR_BOOTSTRAP_APPLICATION_CLIENT } from '../generator-list.js';
22
21
  import { loadStoredAppOptions } from '../app/support/index.js';
23
22
  import clientCommand from '../client/command.js';
24
23
  import { loadConfig, loadDerivedConfig } from '../../lib/internal/index.js';
@@ -31,12 +30,12 @@ export default class BootStrapApplicationClient extends BaseApplicationGenerator
31
30
  }
32
31
  async beforeQueue() {
33
32
  if (!this.fromBlueprint) {
34
- await this.composeWithBlueprints(GENERATOR_BOOTSTRAP_APPLICATION_CLIENT);
33
+ await this.composeWithBlueprints();
35
34
  }
36
35
  if (this.delegateToBlueprint) {
37
36
  throw new Error('Only sbs blueprint is supported');
38
37
  }
39
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_BASE);
38
+ await this.dependsOnBootstrapApplicationBase();
40
39
  }
41
40
  get loading() {
42
41
  return this.asLoadingTaskGroup({
@@ -16,19 +16,16 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import * as _ from 'lodash-es';
20
19
  import BaseApplicationGenerator from '../base-application/index.js';
21
- import { GENERATOR_BOOTSTRAP_APPLICATION_BASE, GENERATOR_BOOTSTRAP_APPLICATION_SERVER } from '../generator-list.js';
22
20
  import { JAVA_VERSION, MAIN_DIR, SERVER_MAIN_RES_DIR, SERVER_MAIN_SRC_DIR, SERVER_TEST_RES_DIR, SERVER_TEST_SRC_DIR, TEST_DIR, dockerContainers, } from '../generator-constants.js';
23
21
  import { loadRequiredConfigIntoEntity, prepareEntityPrimaryKeyForTemplates } from '../base-application/support/index.js';
24
22
  import { loadRequiredConfigDerivedProperties, prepareEntity as prepareEntityServerForTemplates, addEntitiesOtherRelationships, hibernateSnakeCase, loadServerConfig, loadDerivedServerConfig, prepareRelationship, } from '../server/support/index.js';
25
23
  import { getGradleLibsVersionsProperties } from '../gradle/support/index.js';
26
24
  import { getPomVersionProperties } from '../maven/support/index.js';
27
25
  import { prepareField as prepareFieldForLiquibaseTemplates } from '../liquibase/support/index.js';
28
- import { dockerPlaceholderGenerator, getDockerfileContainers } from '../docker/utils.js';
29
- import { GRADLE_VERSION } from '../gradle/constants.js';
26
+ import { getDockerfileContainers } from '../docker/utils.js';
30
27
  import { normalizePathEnd } from '../base/support/path.js';
31
- import { getFrontendAppName } from '../base/support/index.js';
28
+ import { getFrontendAppName, mutateData } from '../base/support/index.js';
32
29
  import { getMainClassName } from '../java/support/index.js';
33
30
  import { loadConfig, loadDerivedConfig } from '../../lib/internal/index.js';
34
31
  import serverCommand from '../server/command.js';
@@ -38,35 +35,44 @@ export default class BoostrapApplicationServer extends BaseApplicationGenerator
38
35
  }
39
36
  async beforeQueue() {
40
37
  if (!this.fromBlueprint) {
41
- await this.composeWithBlueprints(GENERATOR_BOOTSTRAP_APPLICATION_SERVER);
38
+ await this.composeWithBlueprints();
42
39
  }
43
40
  if (this.delegateToBlueprint) {
44
41
  throw new Error('Only sbs blueprint is supported');
45
42
  }
46
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_BASE);
43
+ await this.dependsOnBootstrapApplicationBase();
47
44
  }
48
45
  get loading() {
49
46
  return this.asLoadingTaskGroup({
50
47
  async loadApplication({ application }) {
51
48
  loadConfig(serverCommand.configs, { config: this.jhipsterConfigWithDefaults, application });
52
49
  loadServerConfig({ config: this.jhipsterConfigWithDefaults, application });
53
- application.gradleVersion = this.useVersionPlaceholders ? 'GRADLE_VERSION' : GRADLE_VERSION;
54
50
  application.javaVersion = this.useVersionPlaceholders ? 'JAVA_VERSION' : JAVA_VERSION;
55
51
  application.backendType = this.jhipsterConfig.backendType ?? 'Java';
56
52
  const pomFile = this.readTemplate(this.jhipsterTemplatePath('../../server/resources/pom.xml'))?.toString();
57
53
  const gradleLibsVersions = this.readTemplate(this.jhipsterTemplatePath('../../server/resources/gradle/libs.versions.toml'))?.toString();
58
- application.packageInfoJavadocs = [];
59
- application.javaDependencies = this.prepareDependencies({
54
+ const applicationJavaDependencies = this.prepareDependencies({
60
55
  ...getPomVersionProperties(pomFile),
61
56
  ...getGradleLibsVersionsProperties(gradleLibsVersions),
62
- },
63
- // Gradle doesn't allows snakeCase
64
- value => `'${_.kebabCase(value).toUpperCase()}-VERSION'`);
57
+ }, 'java');
65
58
  const dockerfile = this.readTemplate(this.jhipsterTemplatePath('../../server/resources/Dockerfile'));
66
- application.dockerContainers = this.prepareDependencies({
59
+ const applicationDockerContainers = this.prepareDependencies({
67
60
  ...dockerContainers,
68
61
  ...getDockerfileContainers(dockerfile),
69
- }, dockerPlaceholderGenerator);
62
+ }, 'docker');
63
+ mutateData(application, {
64
+ packageInfoJavadocs: [],
65
+ javaProperties: {},
66
+ javaManagedProperties: {},
67
+ javaDependencies: ({ javaDependencies }) => ({
68
+ ...applicationJavaDependencies,
69
+ ...javaDependencies,
70
+ }),
71
+ dockerContainers: ({ dockerContainers: currentDockerContainers = {} }) => ({
72
+ ...applicationDockerContainers,
73
+ ...currentDockerContainers,
74
+ }),
75
+ });
70
76
  },
71
77
  });
72
78
  }
@@ -17,7 +17,6 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import BaseWorkspacesGenerator from '../base-workspaces/index.js';
20
- import { GENERATOR_BOOTSTRAP_WORKSPACES } from '../generator-list.js';
21
20
  import command from './command.js';
22
21
  export default class DockerComposeGenerator extends BaseWorkspacesGenerator {
23
22
  sharedWorkspaces;
@@ -27,7 +26,7 @@ export default class DockerComposeGenerator extends BaseWorkspacesGenerator {
27
26
  this.sharedWorkspaces.existingWorkspaces = this.sharedWorkspaces.existingWorkspaces ?? Boolean(this.jhipsterConfig.appsFolders);
28
27
  this.parseJHipsterOptions(command.options);
29
28
  if (!this.fromBlueprint) {
30
- await this.composeWithBlueprints(GENERATOR_BOOTSTRAP_WORKSPACES);
29
+ await this.composeWithBlueprints();
31
30
  }
32
31
  }
33
32
  get prompting() {
@@ -17,8 +17,7 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import chalk from 'chalk';
20
- import * as _ from 'lodash-es';
21
- const { kebabCase, intersection } = _;
20
+ import { kebabCase, intersection } from 'lodash-es';
22
21
  const includesValue = (prop, values) => answers => answers[prop] && intersection(answers[prop], values).length > 0;
23
22
  const command = {
24
23
  options: {},
@@ -20,7 +20,7 @@
20
20
  import chalk from 'chalk';
21
21
  import BaseApplicationGenerator from '../base-application/index.js';
22
22
  import statistics from '../statistics.js';
23
- import { GENERATOR_BOOTSTRAP_APPLICATION, GENERATOR_CI_CD } from '../generator-list.js';
23
+ import { GENERATOR_CI_CD } from '../generator-list.js';
24
24
  import { clientFrameworkTypes } from '../../jdl/jhipster/index.js';
25
25
  import { createPomStorage } from '../maven/support/pom-store.js';
26
26
  import command from './command.js';
@@ -30,10 +30,10 @@ export default class CiCdGenerator extends BaseApplicationGenerator {
30
30
  insideDocker;
31
31
  async beforeQueue() {
32
32
  if (!this.fromBlueprint) {
33
- await this.composeWithBlueprints(GENERATOR_CI_CD);
33
+ await this.composeWithBlueprints();
34
34
  }
35
35
  if (!this.delegateToBlueprint) {
36
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
36
+ await this.dependsOnBootstrapApplication();
37
37
  }
38
38
  }
39
39
  // Public API method used by the getter and also by Blueprints
@@ -17,12 +17,11 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import chalk from 'chalk';
20
- import * as _ from 'lodash-es';
20
+ import { intersection } from 'lodash-es';
21
21
  import { testFrameworkTypes } from '../../jdl/jhipster/index.js';
22
22
  import { APPLICATION_TYPE_GATEWAY, APPLICATION_TYPE_MICROSERVICE, clientFrameworkTypes } from '../../jdl/index.js';
23
23
  import { GENERATOR_COMMON } from '../generator-list.js';
24
24
  const { CYPRESS } = testFrameworkTypes;
25
- const { intersection } = _;
26
25
  const { ANGULAR, REACT, VUE, NO: CLIENT_FRAMEWORK_NO } = clientFrameworkTypes;
27
26
  const microfrontendsToPromptValue = answer => (Array.isArray(answer) ? answer.map(({ baseName }) => baseName).join(',') : answer);
28
27
  const promptValueToMicrofrontends = answer => answer