generator-jhipster 8.2.1 → 8.4.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 (478) 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 +70 -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 +15 -12
  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 +19 -27
  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 +19 -26
  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 +11 -16
  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 +32 -47
  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 +21 -32
  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 +21 -35
  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_-form.service.ts.ejs +10 -6
  72. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +18 -25
  73. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +0 -2
  74. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +14 -15
  75. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +1 -5
  76. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
  77. package/dist/generators/angular/templates/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
  78. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +11 -18
  79. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
  80. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
  81. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +0 -2
  82. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
  83. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +12 -13
  84. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +1 -2
  85. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +1 -1
  86. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +3 -3
  87. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.ts.ejs +1 -1
  88. package/dist/generators/angular/templates/webpack/webpack.custom.js.ejs +1 -1
  89. package/dist/generators/app/generator.js +4 -22
  90. package/dist/generators/app/support/config.js +1 -3
  91. package/dist/generators/base/generator.js +21 -2
  92. package/dist/generators/base/shared-data.js +1 -2
  93. package/dist/generators/base/support/basename.js +1 -2
  94. package/dist/generators/base/support/needles.js +3 -5
  95. package/dist/generators/base/support/string.js +2 -2
  96. package/dist/generators/base-application/generator.js +4 -4
  97. package/dist/generators/base-application/support/entity.js +1 -2
  98. package/dist/generators/base-application/support/enum.js +2 -2
  99. package/dist/generators/base-application/support/prepare-entity.js +1 -1
  100. package/dist/generators/base-application/support/prepare-field.js +6 -7
  101. package/dist/generators/base-application/support/relationship.js +1 -2
  102. package/dist/generators/base-application/support/task-type-inference.js +6 -0
  103. package/dist/generators/base-core/generator.js +86 -14
  104. package/dist/generators/base-entity-changes/generator.js +24 -0
  105. package/dist/generators/base-workspaces/internal/deployments.js +2 -2
  106. package/dist/generators/base-workspaces/internal/docker-dependencies.js +2 -2
  107. package/dist/generators/bootstrap/generator.js +4 -5
  108. package/dist/generators/bootstrap/internal/transform-utils.js +4 -0
  109. package/dist/generators/bootstrap/support/eslint-transform.js +2 -1
  110. package/dist/generators/bootstrap/support/java-unused-imports-transform.js +2 -1
  111. package/dist/generators/bootstrap/support/prettier-worker.js +2 -4
  112. package/dist/generators/bootstrap-application/generator.js +3 -4
  113. package/dist/generators/bootstrap-application-base/generator.js +46 -6
  114. package/dist/generators/bootstrap-application-base/utils.js +3 -3
  115. package/dist/generators/bootstrap-application-client/generator.js +2 -3
  116. package/dist/generators/bootstrap-application-server/generator.js +22 -19
  117. package/dist/generators/bootstrap-workspaces/generator.js +1 -2
  118. package/dist/generators/ci-cd/command.js +1 -2
  119. package/dist/generators/ci-cd/generator.js +2 -7
  120. package/dist/generators/client/command.js +1 -2
  121. package/dist/generators/client/generator.js +11 -33
  122. package/dist/generators/client/needle-api/needle-client-vue.js +2 -2
  123. package/dist/generators/client/resources/package.json +6 -6
  124. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
  125. package/dist/generators/common/command.js +13 -0
  126. package/dist/generators/common/generator.js +17 -8
  127. package/dist/generators/common/resources/package.json +1 -1
  128. package/dist/generators/cucumber/generator.js +17 -10
  129. package/dist/generators/cucumber/templates/buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle.ejs +1 -5
  130. package/dist/generators/cypress/generator.js +2 -3
  131. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/administration/administration.cy.ts.ejs +10 -0
  132. package/dist/generators/docker/generator.js +4 -6
  133. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +0 -32
  134. package/dist/generators/docker/utils.js +2 -3
  135. package/dist/generators/docker-compose/generator.js +5 -10
  136. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +0 -32
  137. package/dist/generators/entities/generator.js +4 -4
  138. package/dist/generators/entity/generator.js +10 -9
  139. package/dist/generators/entity/prompts.js +12 -12
  140. package/dist/generators/export-jdl/generator.js +0 -5
  141. package/dist/generators/feign-client/generator.js +3 -4
  142. package/dist/generators/gatling/generator.js +2 -3
  143. package/dist/generators/gatling/templates/buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle.ejs +1 -1
  144. package/dist/generators/generate-blueprint/files.js +1 -0
  145. package/dist/generators/generate-blueprint/generator.js +3 -4
  146. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  147. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +3 -2
  148. package/dist/generators/generate-blueprint/templates/generators/generator/command.mjs.ejs +19 -1
  149. package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +6 -0
  150. package/dist/generators/generator-constants.js +5 -2
  151. package/dist/generators/git/generator.js +3 -5
  152. package/dist/generators/gradle/command.js +32 -0
  153. package/dist/generators/gradle/constants.js +0 -1
  154. package/dist/generators/gradle/files.js +2 -8
  155. package/dist/generators/gradle/generator.js +85 -13
  156. package/dist/generators/gradle/generators/code-quality/generator.js +86 -0
  157. package/dist/generators/{java/cleanup.js → gradle/generators/code-quality/index.js} +1 -5
  158. package/dist/generators/gradle/generators/jib/generator.js +64 -0
  159. package/dist/generators/{app/prompts.js → gradle/generators/jib/index.js} +1 -15
  160. package/dist/generators/gradle/generators/node-gradle/generator.js +64 -0
  161. package/dist/generators/gradle/generators/node-gradle/index.js +19 -0
  162. package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +101 -0
  163. package/dist/generators/gradle/index.js +1 -0
  164. package/dist/generators/gradle/internal/needles.js +9 -3
  165. package/dist/generators/gradle/templates/buildSrc/build.gradle.ejs +3 -2
  166. package/dist/generators/gradle/templates/buildSrc/gradle/libs.versions.toml.ejs +8 -1
  167. package/dist/generators/gradle/templates/gradle/wrapper/{gradle-wrapper.properties.ejs → gradle-wrapper.properties} +1 -1
  168. package/dist/generators/heroku/generator.js +2 -7
  169. package/dist/generators/init/generator.js +3 -4
  170. package/dist/generators/init/resources/.node-version +1 -0
  171. package/dist/generators/java/command.js +2 -38
  172. package/dist/generators/java/generator.js +5 -260
  173. package/dist/generators/java/generators/bootstrap/command.js +35 -0
  174. package/dist/generators/java/generators/bootstrap/generator.js +178 -0
  175. package/dist/generators/java/generators/bootstrap/index.js +20 -0
  176. package/dist/generators/java/generators/build-tool/command.js +42 -0
  177. package/dist/generators/java/generators/build-tool/generator.js +143 -0
  178. package/dist/generators/java/generators/build-tool/index.js +20 -0
  179. package/dist/generators/java/generators/code-quality/command.js +5 -0
  180. package/dist/generators/java/generators/code-quality/generator.js +91 -0
  181. package/dist/generators/java/generators/code-quality/index.js +20 -0
  182. package/dist/generators/java/generators/domain/command.js +30 -0
  183. package/dist/generators/java/{entity-files.js → generators/domain/entity-files.js} +1 -1
  184. package/dist/generators/java/generators/domain/generator.js +169 -0
  185. package/dist/generators/java/generators/domain/index.js +20 -0
  186. package/dist/generators/java/generators/jib/command.js +5 -0
  187. package/dist/generators/java/generators/jib/generator.js +97 -0
  188. package/dist/generators/java/generators/jib/index.js +20 -0
  189. package/dist/generators/{server → java/generators/jib}/templates/src/main/docker/jib/entrypoint.sh.ejs +2 -0
  190. package/dist/generators/java/generators/node/command.js +5 -0
  191. package/dist/generators/java/generators/node/generator.js +97 -0
  192. package/dist/generators/java/generators/node/index.js +20 -0
  193. package/dist/generators/java/support/index.js +1 -0
  194. package/dist/generators/jdl/generator.js +6 -13
  195. package/dist/generators/kubernetes/generator.js +1 -6
  196. package/dist/generators/kubernetes/kubernetes-base.js +3 -3
  197. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +0 -32
  198. package/dist/generators/kubernetes-helm/generator.js +1 -6
  199. package/dist/generators/kubernetes-knative/generator.js +1 -6
  200. package/dist/generators/languages/entity-files.js +3 -2
  201. package/dist/generators/languages/files.js +2 -2
  202. package/dist/generators/languages/generator.js +6 -15
  203. package/dist/generators/languages/support/translate.js +34 -9
  204. package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json.ejs +19 -0
  205. package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json.ejs +19 -0
  206. package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json.ejs +19 -0
  207. package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json.ejs +19 -0
  208. package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json.ejs +19 -0
  209. package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json.ejs +19 -0
  210. package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json.ejs +19 -0
  211. package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json.ejs +19 -0
  212. package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json.ejs +19 -0
  213. package/dist/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +2 -2
  214. package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json.ejs +19 -0
  215. package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json.ejs +19 -0
  216. package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json.ejs +19 -0
  217. package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json.ejs +19 -0
  218. package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json.ejs +19 -0
  219. package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json.ejs +19 -0
  220. package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json.ejs +19 -0
  221. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json.ejs +19 -0
  222. package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json.ejs +19 -0
  223. package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json.ejs +19 -0
  224. package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json.ejs +19 -0
  225. package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json.ejs +19 -0
  226. package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json.ejs +19 -0
  227. package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json.ejs +19 -0
  228. package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json.ejs +19 -0
  229. package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json.ejs +19 -0
  230. package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json.ejs +19 -0
  231. package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json.ejs +19 -0
  232. package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json.ejs +19 -0
  233. package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json.ejs +19 -0
  234. package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json.ejs +19 -0
  235. package/dist/generators/languages/templates/src/main/webapp/i18n/pa/{home.json → home.json.ejs} +2 -2
  236. package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json.ejs +19 -0
  237. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json.ejs +19 -0
  238. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json.ejs +19 -0
  239. package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json.ejs +19 -0
  240. package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json.ejs +19 -0
  241. package/dist/generators/languages/templates/src/main/webapp/i18n/si/{home.json → home.json.ejs} +6 -6
  242. package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json.ejs +19 -0
  243. package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json.ejs +19 -0
  244. package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json.ejs +19 -0
  245. package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json.ejs +19 -0
  246. package/dist/generators/languages/templates/src/main/webapp/i18n/te/{home.json → home.json.ejs} +1 -1
  247. package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json.ejs +19 -0
  248. package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json.ejs +19 -0
  249. package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json.ejs +19 -0
  250. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json.ejs +19 -0
  251. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json.ejs +19 -0
  252. package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json.ejs +19 -0
  253. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json.ejs +19 -0
  254. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json.ejs +19 -0
  255. package/dist/generators/languages/translation-data.js +4 -5
  256. package/dist/generators/liquibase/generator.js +126 -36
  257. package/dist/generators/liquibase/support/maven-plugin.js +6 -0
  258. package/dist/generators/liquibase/support/prepare-field.js +16 -1
  259. package/dist/generators/liquibase/support/relationship.js +1 -0
  260. package/dist/generators/liquibase/templates/gradle/liquibase.gradle.ejs +3 -6
  261. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
  262. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +3 -3
  263. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +26 -1
  264. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +3 -3
  265. package/dist/generators/maven/generator.js +14 -6
  266. package/dist/generators/maven/generators/code-quality/command.js +5 -0
  267. package/dist/generators/maven/generators/code-quality/generator.js +268 -0
  268. package/dist/generators/maven/generators/code-quality/index.js +20 -0
  269. package/dist/generators/maven/generators/frontend-plugin/command.js +5 -0
  270. package/dist/generators/maven/generators/frontend-plugin/generator.js +295 -0
  271. package/dist/generators/maven/generators/frontend-plugin/index.js +20 -0
  272. package/dist/generators/maven/generators/jib/command.js +5 -0
  273. package/dist/generators/maven/generators/jib/generator.js +136 -0
  274. package/dist/generators/maven/generators/jib/index.js +20 -0
  275. package/dist/generators/maven/internal/xml-store.js +1 -2
  276. package/dist/generators/maven/support/dependabot-maven.js +12 -2
  277. package/dist/generators/maven/support/pom-store.js +1 -2
  278. package/dist/generators/project-name/generator.js +9 -11
  279. package/dist/generators/react/generator.js +25 -6
  280. package/dist/generators/react/needle-api/needle-client-react.js +2 -2
  281. package/dist/generators/react/resources/package.json +27 -24
  282. package/dist/generators/react/templates/package.json.ejs +1 -7
  283. package/dist/generators/react/templates/src/main/webapp/app/modules/administration/tracker/tracker.tsx.ejs +2 -2
  284. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +7 -7
  285. package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +0 -8
  286. package/dist/generators/server/command.js +2 -34
  287. package/dist/generators/server/generator.js +35 -204
  288. package/dist/generators/server/jdl/application-definition.js +1 -2
  289. package/dist/generators/server/resources/Dockerfile +13 -13
  290. package/dist/generators/server/resources/build.gradle +1 -0
  291. package/dist/generators/server/resources/gradle/libs.versions.toml +27 -9
  292. package/dist/generators/server/resources/pom.xml +9 -27
  293. package/dist/generators/server/support/prepare-field.js +8 -4
  294. package/dist/generators/server/support/prepare-relationship.js +7 -2
  295. package/dist/generators/server/templates/build.gradle.ejs +29 -143
  296. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -3
  297. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +2 -2
  298. package/dist/generators/server/templates/gradle.properties.ejs +0 -7
  299. package/dist/generators/server/templates/pom.xml.ejs +23 -448
  300. package/dist/generators/server/templates/settings.gradle.ejs +0 -4
  301. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +71 -9
  302. package/dist/generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs +4 -1
  303. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +16 -5
  304. package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
  305. package/dist/generators/server/templates/src/main/resources/static/index_microservices.html.ejs +8 -8
  306. package/dist/generators/server/templates/src/test/java/_package_/IntegrationTest.java.ejs +0 -2
  307. package/dist/generators/server/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs +71 -46
  308. package/dist/generators/server/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs +0 -3
  309. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +1 -1
  310. package/dist/generators/spring-boot/cleanup.js +3 -0
  311. package/dist/generators/spring-boot/command.js +40 -2
  312. package/dist/generators/spring-boot/entity-files.js +2 -2
  313. package/dist/generators/spring-boot/files.js +3 -43
  314. package/dist/generators/spring-boot/generator.js +115 -37
  315. package/dist/generators/{server → spring-boot}/prompts.js +6 -48
  316. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +125 -125
  317. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +2 -2
  318. package/dist/generators/spring-cache/generator.js +11 -6
  319. package/dist/generators/spring-cache/internal/dependencies.js +5 -0
  320. package/dist/generators/spring-cache/resources/build.gradle +1 -0
  321. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +15 -0
  322. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +4 -0
  323. package/dist/generators/spring-cache/templates/src/test/java/_package_/config/RedisTestContainersSpringContextCustomizerFactory.java.ejs +29 -13
  324. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -0
  325. package/dist/generators/spring-cloud/generators/gateway/generator.js +146 -0
  326. package/dist/generators/spring-cloud/generators/gateway/index.js +20 -0
  327. package/dist/generators/spring-cloud-stream/generator.js +2 -3
  328. package/dist/generators/spring-cloud-stream/generators/kafka/generator.js +2 -2
  329. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/config/KafkaTestContainersSpringContextCustomizerFactory.java.ejs +28 -12
  330. package/dist/generators/spring-cloud-stream/generators/pulsar/generator.js +2 -2
  331. package/dist/generators/spring-cloud-stream/generators/pulsar/templates/src/test/java/_package_/config/PulsarTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
  332. package/dist/generators/spring-data-cassandra/generator.js +5 -6
  333. package/dist/generators/spring-data-cassandra/templates/src/test/java/_package_/config/CassandraTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
  334. package/dist/generators/spring-data-couchbase/generator.js +3 -4
  335. package/dist/generators/spring-data-elasticsearch/generator.js +3 -5
  336. package/dist/generators/spring-data-mongodb/generator.js +5 -5
  337. package/dist/generators/spring-data-neo4j/generator.js +11 -5
  338. package/dist/generators/spring-data-neo4j/templates/src/test/java/_package_/config/Neo4jTestContainersSpringContextCustomizerFactory.java.ejs +32 -16
  339. package/dist/generators/spring-data-relational/generator.js +6 -7
  340. package/dist/generators/spring-data-relational/support/h2-reserved-keywords.js +22 -0
  341. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +47 -32
  342. package/dist/generators/spring-websocket/generator.js +2 -3
  343. package/dist/generators/upgrade/generator.js +4 -7
  344. package/dist/generators/vue/generator.js +4 -4
  345. package/dist/generators/vue/resources/package.json +24 -21
  346. package/dist/generators/vue/templates/package.json.ejs +3 -3
  347. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.spec.ts.ejs +1 -1
  348. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +1 -1
  349. package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
  350. package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.vue.ejs +1 -1
  351. package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
  352. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
  353. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/init/reset-password-init.vue.ejs +1 -1
  354. package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
  355. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +3 -3
  356. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.vue.ejs +2 -2
  357. package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management-edit.vue.ejs +1 -1
  358. package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +7 -7
  359. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
  360. package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +4 -3
  361. package/dist/generators/vue/templates/vite.config.mts.ejs +6 -0
  362. package/dist/generators/vue/templates/vitest.config.mts.ejs +1 -1
  363. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +0 -9
  364. package/dist/generators/workspaces/generator.js +5 -4
  365. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +2 -2
  366. package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +3 -3
  367. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +2 -2
  368. package/dist/jdl/jdl-importer.js +1 -2
  369. package/dist/jdl/jhipster/default-application-options.js +1 -1
  370. package/dist/jdl/jhipster/field-types.js +2 -2
  371. package/dist/jdl/jhipster/relationship-types.js +1 -2
  372. package/dist/jdl/models/jdl-deployment.js +1 -2
  373. package/dist/jdl/parsing/api.js +2 -2
  374. package/dist/jdl/parsing/lexer/token-creator.js +1 -2
  375. package/dist/jdl/parsing/self-checks/parsing-system-checker.js +13 -13
  376. package/dist/jdl/parsing/validator.js +5 -5
  377. package/dist/testing/get-generator.js +1 -1
  378. package/dist/testing/helpers.js +34 -9
  379. package/dist/types/generators/angular/support/index.d.ts +0 -1
  380. package/dist/types/generators/angular/support/translate-angular.d.ts +7 -4
  381. package/dist/types/generators/app/support/config.d.ts +1 -1
  382. package/dist/types/generators/base/api.d.ts +8 -1
  383. package/dist/types/generators/base/generator.d.ts +1 -1
  384. package/dist/types/generators/base-application/generator.d.ts +4 -4
  385. package/dist/types/generators/base-application/support/task-type-inference.d.ts +3 -0
  386. package/dist/types/generators/base-application/support/update-application-entities-transform.d.ts +1 -1
  387. package/dist/types/generators/base-application/types.d.ts +15 -0
  388. package/dist/types/generators/base-core/generator.d.ts +33 -1
  389. package/dist/types/generators/base-entity-changes/types.d.ts +2 -0
  390. package/dist/types/generators/bootstrap/internal/transform-utils.d.ts +1 -0
  391. package/dist/types/generators/bootstrap/support/java-unused-imports-transform.d.ts +1 -1
  392. package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.ts +2 -2
  393. package/dist/types/generators/docker/utils.d.ts +7 -0
  394. package/dist/types/generators/generator-constants.d.ts +2 -20
  395. package/dist/types/generators/gradle/types.d.ts +21 -7
  396. package/dist/types/generators/java/support/index.d.ts +1 -0
  397. package/dist/types/generators/java/types.d.ts +37 -22
  398. package/dist/types/generators/languages/support/translate.d.ts +29 -0
  399. package/dist/types/generators/maven/support/dependabot-maven.d.ts +17 -1
  400. package/dist/types/generators/project-name/support/name-resolver.d.ts +1 -1
  401. package/dist/types/generators/server/types.d.ts +2 -0
  402. package/dist/types/generators/spring-data-relational/support/h2-reserved-keywords.d.ts +20 -0
  403. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +0 -18
  404. package/dist/types/testing/helpers.d.ts +6 -0
  405. package/dist/types/testing/support/matrix-utils.d.ts +1 -1
  406. package/package.json +19 -32
  407. package/dist/generators/java/files.js +0 -20
  408. package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json +0 -19
  409. package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json +0 -19
  410. package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json +0 -19
  411. package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json +0 -19
  412. package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json +0 -19
  413. package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json +0 -19
  414. package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json +0 -19
  415. package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json +0 -19
  416. package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json +0 -19
  417. package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json +0 -19
  418. package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json +0 -19
  419. package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json +0 -19
  420. package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json +0 -19
  421. package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json +0 -19
  422. package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json +0 -19
  423. package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json +0 -19
  424. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json +0 -19
  425. package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json +0 -19
  426. package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json +0 -19
  427. package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json +0 -19
  428. package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json +0 -19
  429. package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json +0 -19
  430. package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json +0 -19
  431. package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json +0 -19
  432. package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json +0 -19
  433. package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json +0 -19
  434. package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json +0 -19
  435. package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json +0 -19
  436. package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json +0 -19
  437. package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json +0 -19
  438. package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json +0 -19
  439. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json +0 -19
  440. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json +0 -19
  441. package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json +0 -19
  442. package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json +0 -19
  443. package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json +0 -19
  444. package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json +0 -19
  445. package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json +0 -19
  446. package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json +0 -19
  447. package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json +0 -19
  448. package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json +0 -19
  449. package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json +0 -19
  450. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +0 -148
  451. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json +0 -19
  452. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json +0 -19
  453. package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json +0 -19
  454. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json +0 -19
  455. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json +0 -19
  456. package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_imperative.java.ejs +0 -43
  457. package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_reactive.java.ejs +0 -184
  458. package/dist/generators/statistics.js +0 -223
  459. /package/dist/generators/{server → gradle/generators/code-quality}/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs +0 -0
  460. /package/dist/generators/{server → gradle/generators/jib}/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs +0 -0
  461. /package/dist/generators/java/{templates → generators/bootstrap/templates}/src/main/java/_package_/GeneratedByJHipster.java.ejs +0 -0
  462. /package/dist/generators/{server → java/generators/code-quality}/templates/checkstyle.xml.ejs +0 -0
  463. /package/dist/generators/java/{templates → generators/domain/templates}/_global_partials_entity_/field_validators.ejs +0 -0
  464. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +0 -0
  465. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +0 -0
  466. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jakarta_validation.ejs +0 -0
  467. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +0 -0
  468. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +0 -0
  469. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +0 -0
  470. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +0 -0
  471. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/domain/AssertUtils.java.ejs +0 -0
  472. /package/dist/generators/{server → java/generators/node}/templates/npmw +0 -0
  473. /package/dist/generators/{server → java/generators/node}/templates/npmw.cmd +0 -0
  474. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/security/jwt/JWTRelayGatewayFilterFactory.java.ejs +0 -0
  475. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/filter/ModifyServersOpenApiFilter.java.ejs +0 -0
  476. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/GatewayResource.java.ejs +0 -0
  477. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/vm/RouteVM.java.ejs +0 -0
  478. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/test/java/_package_/web/filter/ModifyServersOpenApiFilterTest.java.ejs +0 -0
@@ -17,10 +17,8 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import assert from 'assert';
20
- import * as _ from 'lodash-es';
21
- import escapeStringRegexp from 'escape-string-regexp';
20
+ import { escapeRegExp, kebabCase } from 'lodash-es';
22
21
  import { joinCallbacks } from './write-files.js';
23
- const { kebabCase } = _;
24
22
  /**
25
23
  * Change spaces sequences and '>' to allow any number of spaces or new line prefix
26
24
  */
@@ -40,10 +38,10 @@ export const checkContentIn = (contentToCheck, content, ignoreWhitespaces = true
40
38
  let re;
41
39
  if (typeof contentToCheck === 'string') {
42
40
  const pattern = ignoreWhitespaces
43
- ? convertToPrettierExpressions(escapeStringRegexp(contentToCheck))
41
+ ? convertToPrettierExpressions(escapeRegExp(contentToCheck))
44
42
  : contentToCheck
45
43
  .split('\n')
46
- .map(line => `\\s*${escapeStringRegexp(line)}`)
44
+ .map(line => `\\s*${escapeRegExp(line)}`)
47
45
  .join('\n');
48
46
  re = new RegExp(pattern);
49
47
  }
@@ -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 { camelCase, upperFirst } from 'lodash-es';
20
20
  /**
21
21
  * Calculate a hash code for a given string.
22
22
  * @param str - any string
@@ -39,5 +39,5 @@ export function stringHashCode(str) {
39
39
  * @param value string to convert
40
40
  */
41
41
  export function upperFirstCamelCase(value) {
42
- return _.upperFirst(_.camelCase(value));
42
+ return upperFirst(camelCase(value));
43
43
  }
@@ -68,16 +68,16 @@ export default class BaseApplicationGenerator extends BaseGenerator {
68
68
  delete this.options.applicationWithEntities;
69
69
  }
70
70
  }
71
- dependsOnBootstrapAplication(options) {
71
+ dependsOnBootstrapApplication(options) {
72
72
  return this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION, options);
73
73
  }
74
- dependsOnBootstrapAplicationBase(options) {
74
+ dependsOnBootstrapApplicationBase(options) {
75
75
  return this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_BASE, options);
76
76
  }
77
- dependsOnBootstrapAplicationServer(options) {
77
+ dependsOnBootstrapApplicationServer(options) {
78
78
  return this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_SERVER, options);
79
79
  }
80
- dependsOnBootstrapAplicationClient(options) {
80
+ dependsOnBootstrapApplicationClient(options) {
81
81
  return this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_CLIENT, options);
82
82
  }
83
83
  /**
@@ -16,7 +16,6 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import * as _ from 'lodash-es';
20
- const { upperFirst } = _;
19
+ import { upperFirst } from 'lodash-es';
21
20
  // eslint-disable-next-line import/prefer-default-export
22
21
  export const findEntityInEntities = (entityName, entities) => entities.find(entity => upperFirst(entity.name) === upperFirst(entityName));
@@ -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,
@@ -248,7 +247,7 @@ function _derivedProperties(field) {
248
247
  fieldTypeNumeric: fieldType === INTEGER || fieldType === LONG || fieldType === FLOAT || fieldType === DOUBLE || fieldType === BIG_DECIMAL,
249
248
  fieldTypeBinary: fieldType === BYTES || fieldType === BYTE_BUFFER,
250
249
  fieldTypeTimed: fieldType === ZONED_DATE_TIME || fieldType === INSTANT,
251
- fieldTypeCharSequence: fieldType === STRING || fieldType === UUID,
250
+ fieldTypeCharSequence: fieldType === STRING || fieldType === UUID || fieldType === TEXT_BLOB,
252
251
  fieldTypeTemporal: fieldType === ZONED_DATE_TIME || fieldType === INSTANT || fieldType === LOCAL_DATE,
253
252
  fieldValidationRequired: validationRules.includes(REQUIRED),
254
253
  fieldValidationMin: validationRules.includes(MIN),
@@ -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,75 @@ 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) {
250
+ throw new Error(`Configs not found for generator ${this.options.namespace}`);
251
+ }
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) {
224
261
  throw new Error(`Configs not found for generator ${this.options.namespace}`);
225
262
  }
226
- return this.prompt(this.prepareQuestions(module?.command?.configs));
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) ?? def.default;
267
+ }
268
+ if (def.scope === 'generator') {
269
+ context[name] = context[name] ?? this[name] ?? def.default;
270
+ }
271
+ if (def.scope === 'blueprint') {
272
+ context[name] = context[name] ?? this.blueprintStorage?.get(name) ?? def.default;
273
+ }
274
+ });
275
+ }
276
+ /**
277
+ * @experimental
278
+ * Compose the current JHipster command compose.
279
+ * Blueprints commands compose without generators will be composed.
280
+ */
281
+ async composeCurrentJHipsterCommand() {
282
+ const generatorCommand = await this.getCurrentJHipsterCommand();
283
+ for (const compose of generatorCommand.compose ?? []) {
284
+ await this.composeWithJHipster(compose);
285
+ }
286
+ for (const compose of this.generatorsToCompose) {
287
+ await this.composeWithJHipster(compose);
288
+ }
227
289
  }
228
290
  parseJHipsterCommand(commandDef) {
229
291
  if (commandDef.arguments) {
@@ -871,9 +933,19 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
871
933
  /**
872
934
  * Shallow clone or convert dependencies to placeholder if needed.
873
935
  */
874
- prepareDependencies(map, valuePlaceholder = value => `${_.snakeCase(value).toUpperCase()}_VERSION`) {
936
+ prepareDependencies(map, valuePlaceholder) {
937
+ let placeholder;
938
+ if (valuePlaceholder === 'java') {
939
+ placeholder = value => `'${kebabCase(value).toUpperCase()}-VERSION'`;
940
+ }
941
+ else if (valuePlaceholder === 'docker') {
942
+ placeholder = dockerPlaceholderGenerator;
943
+ }
944
+ else {
945
+ placeholder = valuePlaceholder ?? (value => `${snakeCase(value).toUpperCase()}_VERSION`);
946
+ }
875
947
  if (this.useVersionPlaceholders) {
876
- return Object.fromEntries(Object.keys(map).map(dep => [dep, valuePlaceholder(dep)]));
948
+ return Object.fromEntries(Object.keys(map).map(dep => [dep, placeholder(dep)]));
877
949
  }
878
950
  return {
879
951
  ...map,
@@ -894,7 +966,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
894
966
  }
895
967
  const gradleLibsVersions = this.readTemplate(gradleCatalog)?.toString();
896
968
  if (gradleLibsVersions) {
897
- Object.assign(javaDependencies, this.prepareDependencies(getGradleLibsVersionsProperties(gradleLibsVersions), value => `'${kebabCase(value).toUpperCase()}-VERSION'`));
969
+ Object.assign(javaDependencies, this.prepareDependencies(getGradleLibsVersionsProperties(gradleLibsVersions), 'java'));
898
970
  }
899
971
  }
900
972
  loadNodeDependenciesFromPackageJson(destination, packageJsonFile = this.templatePath('../resources/package.json')) {
@@ -33,6 +33,8 @@ const baseChangelog = () => ({
33
33
  addedRelationships: [],
34
34
  removedRelationships: [],
35
35
  relationshipsToRecreateForeignKeysOnly: [],
36
+ removedDefaultValueFields: [],
37
+ addedDefaultValueFields: [],
36
38
  changelogData: {},
37
39
  });
38
40
  /**
@@ -127,6 +129,20 @@ export default class GeneratorBaseEntityChanges extends GeneratorBaseApplication
127
129
  const relationshipsToRecreateForeignKeysOnly = addedRelationships
128
130
  .filter(addedRelationship => removedRelationships.some(removedRelationship => relationshipNeedsForeignKeyRecreationOnly(removedRelationship, addedRelationship)))
129
131
  .concat(removedRelationships.filter(removedRelationship => addedRelationships.some(addedRelationship => relationshipNeedsForeignKeyRecreationOnly(addedRelationship, removedRelationship))));
132
+ const oldFieldsWithDefaultValues = oldFields.filter(field => this.hasAnyDefaultValue(field));
133
+ const newFieldsWithDefaultValues = newFields.filter(field => this.hasAnyDefaultValue(field));
134
+ // find the old fields that have not been deleted anyway or otherwise where the default value is different on the same new field
135
+ const removedDefaultValueFields = oldFieldsWithDefaultValues
136
+ .filter(oldField => !removedFieldNames.includes(oldField.fieldName))
137
+ .filter(
138
+ // field was not removed, so check its default value
139
+ oldField => this.doDefaultValuesDiffer(oldField, newFields.find(newField => newField.fieldName === oldField.fieldName)));
140
+ // find the new fields that have not been added newly anyway or otherwise where the old field had a different default value
141
+ const addedDefaultValueFields = newFieldsWithDefaultValues
142
+ .filter(newField => !addedFieldNames.includes(newField.fieldName))
143
+ .filter(
144
+ // field was not added newly, so check its default value
145
+ newField => this.doDefaultValuesDiffer(oldFields.find(oldField => oldField.fieldName === newField.fieldName), newField));
130
146
  return {
131
147
  ...baseChangelog(),
132
148
  previousEntity: oldConfig,
@@ -139,7 +155,15 @@ export default class GeneratorBaseEntityChanges extends GeneratorBaseApplication
139
155
  addedRelationships,
140
156
  removedRelationships,
141
157
  relationshipsToRecreateForeignKeysOnly,
158
+ removedDefaultValueFields,
159
+ addedDefaultValueFields,
142
160
  };
143
161
  });
144
162
  }
163
+ hasAnyDefaultValue(field) {
164
+ return field.defaultValue !== undefined || field.defaultValueComputed;
165
+ }
166
+ doDefaultValuesDiffer(field1, field2) {
167
+ return field1.defaultValue !== field2.defaultValue || field1.defaultValueComputed !== field2.defaultValueComputed;
168
+ }
145
169
  }
@@ -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');
@@ -89,13 +88,17 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator {
89
88
  }
90
89
  get loading() {
91
90
  return this.asLoadingTaskGroup({
92
- loadApplication({ application, control }) {
91
+ loadApplication({ application, control, applicationDefaults }) {
93
92
  loadAppConfig({
94
93
  config: this.jhipsterConfigWithDefaults,
95
94
  application,
96
95
  useVersionPlaceholders: this.useVersionPlaceholders,
97
96
  });
98
97
  loadLanguagesConfig({ application, config: this.jhipsterConfigWithDefaults, control });
98
+ applicationDefaults({
99
+ backendType: this.jhipsterConfig.backendType ?? 'Java',
100
+ syncUserWithIdp: this.jhipsterConfig.syncUserWithIdp,
101
+ });
99
102
  },
100
103
  loadNodeDependencies({ application }) {
101
104
  this.loadNodeDependencies(application.nodeDependencies, {
@@ -115,10 +118,47 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator {
115
118
  prepareApplication({ application, applicationDefaults }) {
116
119
  loadDerivedAppConfig({ application });
117
120
  applicationDefaults({
121
+ __override__: false,
118
122
  nodePackageManager: 'npm',
119
123
  dockerServicesDir: JAVA_DOCKER_DIR,
120
124
  // TODO drop clientPackageManager
121
125
  clientPackageManager: ({ nodePackageManager }) => nodePackageManager,
126
+ hipsterName: 'Java Hipster',
127
+ hipsterProductName: 'JHipster',
128
+ hipsterHomePageProductName: 'JHipster',
129
+ hipsterStackOverflowProductName: 'JHipster',
130
+ hipsterBugTrackerProductName: 'JHipster',
131
+ hipsterChatProductName: 'JHipster',
132
+ hipsterTwitterUsername: '@jhipster',
133
+ hipsterDocumentationLink: 'https://www.jhipster.tech/',
134
+ hipsterTwitterLink: 'https://twitter.com/jhipster',
135
+ hipsterProjectLink: 'https://github.com/jhipster/generator-jhipster',
136
+ hipsterStackoverflowLink: 'https://stackoverflow.com/tags/jhipster/info',
137
+ hipsterBugTrackerLink: 'https://github.com/jhipster/generator-jhipster/issues?state=open',
138
+ hipsterChatLink: 'https://gitter.im/jhipster/generator-jhipster',
139
+ backendTypeSpringBoot: ({ backendType }) => backendType === 'Java',
140
+ backendTypeJavaAny: ({ backendTypeSpringBoot }) => backendTypeSpringBoot,
141
+ });
142
+ },
143
+ syncUserWithIdp({ application, applicationDefaults }) {
144
+ if (!application.backendTypeSpringBoot)
145
+ return;
146
+ if (application.syncUserWithIdp === undefined && application.authenticationType === 'oauth2') {
147
+ applicationDefaults({
148
+ __override__: false,
149
+ syncUserWithIdp: data => data.databaseType !== 'no' &&
150
+ (data.applicationType === 'gateway' ||
151
+ this.getExistingEntities().some(entity => (entity.definition.relationships ?? []).some(relationship => relationship.otherEntityName.toLowerCase() === 'user'))),
152
+ });
153
+ }
154
+ else if (application.syncUserWithIdp && application.authenticationType !== 'oauth2') {
155
+ throw new Error('syncUserWithIdp is only supported with oauth2 authenticationType');
156
+ }
157
+ },
158
+ userManagement({ applicationDefaults }) {
159
+ applicationDefaults({
160
+ generateBuiltInUserEntity: ({ generateUserManagement, syncUserWithIdp }) => generateUserManagement || syncUserWithIdp,
161
+ generateBuiltInAuthorityEntity: ({ generateBuiltInUserEntity, databaseType }) => generateBuiltInUserEntity && databaseType !== 'cassandra',
122
162
  });
123
163
  },
124
164
  });
@@ -286,7 +326,7 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator {
286
326
  });
287
327
  }
288
328
  get [BaseApplicationGenerator.POST_PREPARING_EACH_ENTITY]() {
289
- return this.asPostPreparingEachEntityTaskGroup(this.delegateTasksToBlueprint(() => this.postPreparingEachEntity));
329
+ return this.delegateTasksToBlueprint(() => this.postPreparingEachEntity);
290
330
  }
291
331
  get default() {
292
332
  return this.asDefaultTaskGroup({