generator-jhipster 8.7.3 → 8.8.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 (518) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/environment-builder.d.mts +1 -3
  3. package/dist/cli/jhipster-command.d.mts +2 -2
  4. package/dist/cli/program.mjs +2 -1
  5. package/dist/generators/angular/files-angular.d.ts +2 -0
  6. package/dist/generators/angular/files-angular.js +39 -4
  7. package/dist/generators/angular/generator.d.ts +14 -154
  8. package/dist/generators/angular/generator.js +98 -196
  9. package/dist/generators/angular/resources/package.json +26 -22
  10. package/dist/generators/angular/support/path-utils.d.ts +1 -0
  11. package/dist/generators/angular/support/path-utils.js +1 -0
  12. package/dist/generators/angular/support/translate-angular.d.ts +3 -2
  13. package/dist/generators/angular/support/translate-angular.js +2 -10
  14. package/dist/generators/angular/support/update-languages.d.ts +1 -1
  15. package/dist/generators/angular/support/update-languages.js +3 -1
  16. package/dist/generators/angular/templates/angular.json.ejs +7 -1
  17. package/dist/generators/angular/templates/angular.json.esbuild.ejs +160 -0
  18. package/dist/generators/angular/templates/build-plugins/define-esbuild.mjs.ejs +10 -0
  19. package/dist/generators/angular/templates/build-plugins/i18n-esbuild.mjs.ejs +49 -0
  20. package/dist/generators/angular/templates/eslint.config.js.jhi.angular.ejs +1 -7
  21. package/dist/generators/angular/templates/jest.conf.js.ejs +1 -2
  22. package/dist/generators/angular/templates/package.json.ejs +2 -19
  23. package/dist/generators/angular/templates/postcss.config.json.ejs +5 -0
  24. package/dist/generators/angular/templates/proxy.conf.json.ejs +27 -0
  25. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +0 -1
  26. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +0 -1
  27. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +0 -1
  28. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +0 -1
  29. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +0 -1
  30. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +0 -1
  31. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.ts.ejs +0 -1
  32. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.ts.ejs +0 -1
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +1 -1
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.ts.ejs +0 -1
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/docs/docs.component.ts.ejs +0 -1
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.ts.ejs +0 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.ts.ejs +1 -2
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +0 -1
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +1 -1
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.ts.ejs +0 -1
  41. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.ts.ejs +0 -1
  42. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts.ejs +0 -1
  43. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.ts.ejs +0 -1
  44. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.ts.ejs +0 -1
  45. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.ts.ejs +0 -1
  46. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +1 -1
  47. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.ts.ejs +0 -1
  48. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +0 -1
  49. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.ts.ejs +0 -1
  50. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts.ejs +0 -1
  51. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +0 -3
  52. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.ts.ejs +0 -1
  53. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.ts.ejs +0 -1
  54. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +1 -1
  55. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.ts.ejs +0 -1
  56. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
  57. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +1 -1
  58. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +1 -3
  59. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +1 -1
  60. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +1 -1
  61. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +0 -1
  62. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/user-management.model.ts.ejs +1 -1
  63. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +0 -1
  64. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +2 -2
  65. package/dist/generators/angular/templates/src/main/webapp/app/config/translation.config.ts.ejs +16 -1
  66. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +2 -2
  67. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.ts.ejs +1 -1
  68. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.model.ts.ejs +1 -1
  69. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.test-samples.ts.ejs +5 -5
  70. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +1 -1
  71. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.ts.ejs +0 -1
  72. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +4 -4
  73. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
  74. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.ts.ejs +13 -2
  75. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +5 -7
  76. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +4 -5
  77. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +27 -17
  78. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +1 -1
  79. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +7 -7
  80. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +3 -3
  81. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +12 -12
  82. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +1 -2
  83. package/dist/generators/angular/templates/src/main/webapp/app/entities/entity-navbar-items.ts.ejs +1 -1
  84. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +0 -1
  85. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.ts.ejs +0 -1
  86. package/dist/generators/angular/templates/src/main/webapp/app/layouts/footer/footer.component.ts.ejs +0 -1
  87. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +7 -5
  88. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +0 -1
  89. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +0 -1
  90. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +2 -2
  91. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +0 -1
  92. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +0 -1
  93. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.ts.ejs +0 -1
  94. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.ts.ejs +0 -1
  95. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +2 -2
  96. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +7 -11
  97. package/dist/generators/angular/templates/src/main/webapp/app/shared/date/duration.pipe.ts.ejs +0 -1
  98. package/dist/generators/angular/templates/src/main/webapp/app/shared/date/format-medium-date.pipe.ts.ejs +0 -1
  99. package/dist/generators/angular/templates/src/main/webapp/app/shared/date/format-medium-datetime.pipe.ts.ejs +0 -1
  100. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +2 -2
  101. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.ts.ejs +4 -5
  102. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts.ejs +0 -1
  103. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translate.directive.spec.ts.ejs +2 -2
  104. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translate.directive.ts.ejs +5 -6
  105. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +1 -1
  106. package/dist/generators/angular/templates/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +0 -1
  107. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +5 -6
  108. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +4 -5
  109. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +1 -2
  110. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.directive.ts.ejs +8 -13
  111. package/dist/generators/angular/templates/src/main/webapp/bootstrap.ts.ejs +2 -2
  112. package/dist/generators/angular/templates/src/main/webapp/declarations.d.ts.ejs +5 -0
  113. package/dist/generators/angular/templates/src/main/webapp/{app/entities/_entityFolder_/list/pagination-template.ejs → environments/environment.development.ts.ejs} +4 -3
  114. package/dist/generators/angular/templates/src/main/webapp/environments/environment.ts.ejs +22 -0
  115. package/dist/generators/angular/templates/src/main/webapp/i18n/index.ts.ejs +14 -0
  116. package/dist/generators/angular/templates/webpack/environment.js.ejs +0 -1
  117. package/dist/generators/angular/templates/webpack/webpack.custom.js.ejs +2 -22
  118. package/dist/generators/angular/types-partial.d.ts +32 -0
  119. package/dist/generators/angular/types.d.ts +35 -1
  120. package/dist/generators/app/generator.d.ts +1 -0
  121. package/dist/generators/app/support/config.d.ts +2 -1
  122. package/dist/generators/base/shared-data.d.ts +12 -8
  123. package/dist/generators/base/shared-data.js +14 -4
  124. package/dist/generators/base/support/index.d.ts +4 -3
  125. package/dist/generators/base/support/index.js +4 -3
  126. package/dist/generators/base/support/jhipster7-context.d.ts +1 -1
  127. package/dist/generators/base/support/jhipster7-context.js +1 -1
  128. package/dist/generators/base/types.d.ts +8 -2
  129. package/dist/generators/base-application/generator.d.ts +98 -87
  130. package/dist/generators/base-application/support/prepare-entity.d.ts +6 -3
  131. package/dist/generators/base-application/support/prepare-entity.js +37 -40
  132. package/dist/generators/base-application/support/prepare-field.js +22 -23
  133. package/dist/generators/base-application/types.d.ts +8 -9
  134. package/dist/generators/base-core/generator.d.ts +5 -5
  135. package/dist/generators/base-core/generator.js +8 -7
  136. package/dist/generators/base-entity-changes/generator.d.ts +2 -4
  137. package/dist/generators/bootstrap/generator.d.ts +1 -0
  138. package/dist/generators/bootstrap/generator.js +2 -8
  139. package/dist/generators/bootstrap/support/eslint-worker.d.ts +1 -1
  140. package/dist/generators/bootstrap-application/generator.d.ts +1 -0
  141. package/dist/generators/bootstrap-application/generator.js +1 -1
  142. package/dist/generators/bootstrap-application-base/generator.d.ts +2 -1
  143. package/dist/generators/bootstrap-application-base/generator.js +10 -0
  144. package/dist/generators/bootstrap-application-base/utils.d.ts +4 -71
  145. package/dist/generators/bootstrap-application-base/utils.js +7 -6
  146. package/dist/generators/bootstrap-application-client/generator.d.ts +2 -1
  147. package/dist/generators/bootstrap-application-client/generator.js +16 -9
  148. package/dist/generators/bootstrap-application-server/generator.d.ts +2 -0
  149. package/dist/generators/bootstrap-application-server/generator.js +27 -5
  150. package/dist/generators/bootstrap-workspaces/generator.d.ts +1 -0
  151. package/dist/generators/ci-cd/generator.d.ts +1 -0
  152. package/dist/generators/ci-cd/templates/.gitlab-ci.yml.ejs +4 -6
  153. package/dist/generators/client/command.d.ts +15 -1
  154. package/dist/generators/client/command.js +15 -1
  155. package/dist/generators/client/files-common.js +1 -1
  156. package/dist/generators/client/generator.d.ts +2 -1
  157. package/dist/generators/client/generator.js +24 -11
  158. package/dist/generators/client/generators/common/generator.d.ts +1 -0
  159. package/dist/generators/client/prompts.d.ts +2 -2
  160. package/dist/generators/client/resources/package.json +5 -5
  161. package/dist/generators/client/support/config.js +4 -2
  162. package/dist/generators/client/support/entity-definition.d.ts +2 -5
  163. package/dist/generators/client/support/entity-definition.js +3 -8
  164. package/dist/generators/client/support/filter-entities.d.ts +5 -1
  165. package/dist/generators/client/support/filter-entities.js +4 -2
  166. package/dist/generators/client/support/prepare-entity.d.ts +20 -1
  167. package/dist/generators/client/support/prepare-entity.js +30 -19
  168. package/dist/generators/client/support/template-utils.d.ts +16 -12
  169. package/dist/generators/client/support/template-utils.js +45 -18
  170. package/dist/generators/client/support/update-languages.d.ts +4 -4
  171. package/dist/generators/client/types.d.ts +10 -3
  172. package/dist/generators/common/files.d.ts +1 -3
  173. package/dist/generators/common/files.js +3 -3
  174. package/dist/generators/common/generator.d.ts +2 -4
  175. package/dist/generators/common/generator.js +17 -15
  176. package/dist/generators/common/resources/package.json +2 -2
  177. package/dist/generators/common/templates/sonar-project.properties.ejs +21 -21
  178. package/dist/generators/cucumber/generator.d.ts +1 -0
  179. package/dist/generators/cypress/generator.d.ts +1 -0
  180. package/dist/generators/cypress/generator.js +12 -5
  181. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
  182. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +4 -1
  183. package/dist/generators/docker/generator.d.ts +1 -0
  184. package/dist/generators/docker/generator.js +1 -1
  185. package/dist/generators/docker/templates/docker/couchbase.yml.ejs +2 -2
  186. package/dist/generators/docker/templates/docker/kafka.yml.ejs +8 -16
  187. package/dist/generators/docker/templates/docker/mysql.yml.ejs +2 -2
  188. package/dist/generators/docker-compose/generator.d.ts +1 -0
  189. package/dist/generators/docker-compose/generator.js +3 -0
  190. package/dist/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +0 -1
  191. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +7 -9
  192. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +1 -3
  193. package/dist/generators/entities/generator.d.ts +1 -0
  194. package/dist/generators/entity/generator.d.ts +1 -0
  195. package/dist/generators/export-jdl/generator.d.ts +1 -0
  196. package/dist/generators/feign-client/generator.d.ts +1 -0
  197. package/dist/generators/gatling/generator.d.ts +1 -0
  198. package/dist/generators/generate-blueprint/command.d.ts +15 -0
  199. package/dist/generators/generate-blueprint/command.js +15 -0
  200. package/dist/generators/generate-blueprint/constants.d.ts +2 -2
  201. package/dist/generators/generate-blueprint/constants.js +1 -2
  202. package/dist/generators/generate-blueprint/files.js +4 -1
  203. package/dist/generators/generate-blueprint/generator.d.ts +2 -0
  204. package/dist/generators/generate-blueprint/generator.js +5 -3
  205. package/dist/generators/generate-blueprint/resources/package.json +3 -3
  206. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +10 -1
  207. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +64 -30
  208. package/dist/generators/{angular/templates/src/main/webapp/app/app.constants.ts.ejs → generate-blueprint/templates/.blueprint/github-build-matrix/command.mjs.ejs} +24 -8
  209. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +23 -7
  210. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.spec.mjs.ejs +24 -0
  211. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
  212. package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +14 -8
  213. package/dist/generators/generate-blueprint/templates/.gitignore.jhi.blueprint.ejs +22 -0
  214. package/dist/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +6 -7
  215. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
  216. package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +7 -0
  217. package/dist/generators/generator-constants.d.ts +1 -1
  218. package/dist/generators/generator-constants.js +1 -1
  219. package/dist/generators/git/generator.d.ts +1 -0
  220. package/dist/generators/git/templates/.gitignore.jhi.ejs +2 -2
  221. package/dist/generators/gradle/command.d.ts +31 -20
  222. package/dist/generators/gradle/generator.d.ts +1 -0
  223. package/dist/generators/gradle/generators/code-quality/generator.d.ts +1 -0
  224. package/dist/generators/gradle/generators/jib/generator.d.ts +1 -0
  225. package/dist/generators/gradle/generators/node-gradle/generator.d.ts +1 -0
  226. package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +5 -54
  227. package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
  228. package/dist/generators/heroku/generator.d.ts +1 -0
  229. package/dist/generators/info/generator.d.ts +1 -0
  230. package/dist/generators/info/support/extract-info.d.ts +2 -0
  231. package/dist/generators/info/support/extract-info.js +25 -12
  232. package/dist/generators/info/support/index.d.ts +1 -0
  233. package/dist/generators/info/support/index.js +1 -0
  234. package/dist/generators/info/support/markdown-content.d.ts +6 -0
  235. package/dist/generators/info/support/markdown-content.js +14 -0
  236. package/dist/generators/init/generator.d.ts +1 -0
  237. package/dist/generators/init/resources/.node-version +1 -1
  238. package/dist/generators/java/generators/bootstrap/generator.d.ts +2 -0
  239. package/dist/generators/java/generators/bootstrap/generator.js +13 -0
  240. package/dist/generators/java/generators/build-tool/generator.d.ts +1 -0
  241. package/dist/generators/java/generators/code-quality/generator.d.ts +1 -0
  242. package/dist/generators/java/generators/domain/generator.d.ts +1 -0
  243. package/dist/generators/java/generators/domain/generator.js +1 -1
  244. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/domain/AssertUtils.java.ejs +1 -1
  245. package/dist/generators/java/generators/graalvm/generator.d.ts +3 -1
  246. package/dist/generators/java/generators/graalvm/generator.js +16 -2
  247. package/dist/generators/java/generators/graalvm/internal/constants.d.ts +1 -0
  248. package/dist/generators/java/generators/graalvm/internal/constants.js +2 -0
  249. package/dist/generators/java/generators/graalvm/internal/maven-definition.d.ts +2 -1
  250. package/dist/generators/java/generators/graalvm/internal/maven-definition.js +2 -1
  251. package/dist/generators/java/generators/graalvm/templates/gradle/native.gradle.ejs +5 -1
  252. package/dist/generators/java/generators/jib/generator.d.ts +1 -0
  253. package/dist/generators/java/generators/node/generator.d.ts +3 -1
  254. package/dist/generators/java/generators/node/generator.js +22 -1
  255. package/dist/generators/java/generators/node/templates/{npmw.cmd → npmw.cmd.ejs} +11 -11
  256. package/dist/generators/java/generators/node/templates/{npmw → npmw.ejs} +5 -2
  257. package/dist/generators/java/generators/openapi-generator/generator.d.ts +1 -0
  258. package/dist/generators/java/generators/server/command.d.ts +5 -0
  259. package/dist/generators/java/generators/server/command.js +5 -0
  260. package/dist/generators/java/generators/server/generator.d.ts +24 -0
  261. package/dist/generators/java/generators/server/generator.js +107 -0
  262. package/dist/generators/java/generators/server/index.d.ts +20 -0
  263. package/dist/generators/java/generators/server/index.js +20 -0
  264. package/dist/generators/java/types.d.ts +3 -0
  265. package/dist/generators/javascript/generators/bootstrap/generator.d.ts +3 -1
  266. package/dist/generators/javascript/generators/bootstrap/generator.js +18 -3
  267. package/dist/generators/javascript/generators/eslint/command.d.ts +12 -20
  268. package/dist/generators/javascript/generators/eslint/command.js +2 -0
  269. package/dist/generators/javascript/generators/eslint/generator.d.ts +1 -0
  270. package/dist/generators/javascript/generators/husky/generator.d.ts +1 -0
  271. package/dist/generators/javascript/generators/prettier/generator.d.ts +1 -0
  272. package/dist/generators/javascript/generators/prettier/generator.js +12 -2
  273. package/dist/generators/javascript/resources/package.json +2 -2
  274. package/dist/generators/javascript/types.d.ts +24 -9
  275. package/dist/generators/jdl/generator.d.ts +1 -0
  276. package/dist/generators/kubernetes/files.js +3 -0
  277. package/dist/generators/kubernetes/generator.d.ts +49 -0
  278. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +1 -3
  279. package/dist/generators/kubernetes/templates/messagebroker/kafka.yml.ejs +16 -55
  280. package/dist/generators/kubernetes-helm/generator.d.ts +42 -0
  281. package/dist/generators/kubernetes-helm/templates/csvc/helpers.tpl.ejs +1 -12
  282. package/dist/generators/kubernetes-helm/templates/csvc/values.yml.ejs +0 -7
  283. package/dist/generators/kubernetes-knative/generator.d.ts +27 -1
  284. package/dist/generators/languages/generator.d.ts +5 -6
  285. package/dist/generators/languages/generator.js +8 -8
  286. package/dist/generators/languages/prompts.js +8 -5
  287. package/dist/generators/languages/support/translate.d.ts +4 -3
  288. package/dist/generators/languages/support/translate.js +1 -19
  289. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/user-management.json +1 -1
  290. package/dist/generators/liquibase/generator.d.ts +1 -0
  291. package/dist/generators/liquibase/generator.js +11 -10
  292. package/dist/generators/liquibase/support/relationship.d.ts +3 -2
  293. package/dist/generators/liquibase/templates/src/main/java/_package_/config/LiquibaseConfiguration.java.ejs +10 -9
  294. package/dist/generators/maven/generator.d.ts +1 -0
  295. package/dist/generators/maven/generators/code-quality/generator.d.ts +1 -0
  296. package/dist/generators/maven/generators/frontend-plugin/generator.d.ts +1 -0
  297. package/dist/generators/maven/generators/frontend-plugin/generator.js +5 -31
  298. package/dist/generators/maven/generators/jib/generator.d.ts +1 -0
  299. package/dist/generators/project-name/generator.d.ts +1 -0
  300. package/dist/generators/react/files-react.js +1 -6
  301. package/dist/generators/react/generator.d.ts +3 -4
  302. package/dist/generators/react/generator.js +21 -13
  303. package/dist/generators/react/resources/package.json +26 -25
  304. package/dist/generators/react/support/translate-react.d.ts +3 -2
  305. package/dist/generators/react/support/translate-react.js +2 -2
  306. package/dist/generators/react/support/update-languages.d.ts +1 -1
  307. package/dist/generators/react/templates/eslint.config.js.jhi.react.ejs +1 -0
  308. package/dist/generators/react/templates/jest.conf.js.ejs +1 -1
  309. package/dist/generators/react/templates/package.json.ejs +1 -2
  310. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +4 -4
  311. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-reducer.spec.ts.ejs +3 -3
  312. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/index.tsx.ejs +1 -1
  313. package/dist/generators/react/templates/src/main/webapp/app/entities/routes.tsx.ejs +1 -1
  314. package/dist/generators/react/templates/src/main/webapp/app/modules/account/index.tsx.ejs +1 -1
  315. package/dist/generators/react/templates/src/main/webapp/app/modules/administration/index.tsx.ejs +1 -1
  316. package/dist/generators/react/templates/src/main/webapp/app/modules/administration/user-management/index.tsx.ejs +1 -1
  317. package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +4 -1
  318. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +1 -1
  319. package/dist/generators/react/templates/src/main/webapp/app/shared/error/error-boundary-routes.spec.tsx.ejs +1 -1
  320. package/dist/generators/react/templates/src/main/webapp/app/shared/error/error-boundary-routes.tsx.ejs +2 -1
  321. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.spec.tsx.ejs +7 -1
  322. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +1 -1
  323. package/dist/generators/react/templates/tsconfig.test.json.ejs +0 -5
  324. package/dist/generators/react/templates/webpack/webpack.dev.js.ejs +1 -1
  325. package/dist/generators/server/generator.d.ts +2 -34
  326. package/dist/generators/server/generator.js +4 -182
  327. package/dist/generators/server/resources/Dockerfile +13 -16
  328. package/dist/generators/server/resources/gradle/libs.versions.toml +8 -8
  329. package/dist/generators/server/resources/pom.xml +9 -9
  330. package/dist/generators/server/support/config.d.ts +2 -4
  331. package/dist/generators/server/support/config.js +0 -6
  332. package/dist/generators/server/support/prepare-entity.d.ts +2 -1
  333. package/dist/generators/server/support/prepare-entity.js +3 -2
  334. package/dist/generators/server/support/prepare-field.d.ts +2 -1
  335. package/dist/generators/server/support/prepare-field.js +2 -0
  336. package/dist/generators/server/support/prepare-relationship.d.ts +2 -1
  337. package/dist/generators/server/support/templates/field-values.d.ts +2 -1
  338. package/dist/generators/server/support/templates/field-values.js +4 -3
  339. package/dist/generators/server/support/update-languages.d.ts +9 -2
  340. package/dist/generators/server/types.d.ts +10 -0
  341. package/dist/generators/spring-boot/command.d.ts +8 -1
  342. package/dist/generators/spring-boot/command.js +13 -6
  343. package/dist/generators/spring-boot/generator.d.ts +2 -11
  344. package/dist/generators/spring-boot/generator.js +21 -20
  345. package/dist/generators/spring-boot/prompts.d.ts +2 -6
  346. package/dist/generators/spring-boot/prompts.js +25 -42
  347. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +191 -252
  348. package/dist/generators/spring-boot/templates/README.md.jhi.spring-boot.ejs +1 -1
  349. package/dist/generators/spring-boot/templates/build.gradle.ejs +6 -1
  350. package/dist/generators/spring-boot/templates/gradle/profile_dev.gradle.ejs +7 -48
  351. package/dist/generators/spring-boot/templates/gradle/profile_prod.gradle.ejs +1 -1
  352. package/dist/generators/spring-boot/templates/package.json.ejs +1 -4
  353. package/dist/generators/spring-boot/templates/pom.xml.ejs +6 -2
  354. package/dist/generators/spring-boot/templates/settings.gradle.ejs +1 -1
  355. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/repository/UserRepository.java.ejs +7 -7
  356. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/UserService.java.ejs +10 -4
  357. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/PublicUserResource.java.ejs +2 -0
  358. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/UserResource.java.ejs +1 -1
  359. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +14 -40
  360. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +3 -24
  361. package/dist/generators/spring-boot/templates/src/main/java/_package_/service/MailService.java.ejs +8 -8
  362. package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs +4 -4
  363. package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs +4 -3
  364. package/dist/generators/spring-boot/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
  365. package/dist/generators/spring-boot/templates/src/main/resources/config/application-tls.yml.ejs +9 -1
  366. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +6 -6
  367. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/criteria/_entityClass_CriteriaTest.java.ejs +5 -4
  368. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/dto/_dtoClass_Test.java.ejs +2 -2
  369. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +19 -21
  370. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +40 -21
  371. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +3 -3
  372. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs +1 -0
  373. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs +2 -2
  374. package/dist/generators/spring-boot/templates/src/test/java/_package_/service/MailServiceIT.java.ejs +2 -2
  375. package/dist/generators/spring-boot/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +2 -2
  376. package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +19 -19
  377. package/dist/generators/spring-cache/generator.d.ts +1 -0
  378. package/dist/generators/spring-cache/generator.js +1 -3
  379. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  380. package/dist/generators/spring-cloud/generators/gateway/generator.d.ts +1 -0
  381. package/dist/generators/spring-cloud-stream/generator.d.ts +1 -0
  382. package/dist/generators/spring-cloud-stream/generators/kafka/generator.d.ts +1 -0
  383. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaProducer.java.ejs +1 -1
  384. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/config/KafkaTestContainer.java.ejs +2 -1
  385. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/config/KafkaTestContainersSpringContextCustomizerFactory.java.ejs +1 -2
  386. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/web/rest/KafkaResourceIT_imperative.java.ejs +1 -1
  387. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +1 -1
  388. package/dist/generators/spring-cloud-stream/generators/pulsar/generator.d.ts +1 -0
  389. package/dist/generators/spring-data-cassandra/generator.d.ts +1 -0
  390. package/dist/generators/spring-data-cassandra/generator.js +1 -1
  391. package/dist/generators/spring-data-couchbase/generator.d.ts +1 -0
  392. package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/_entityPackage_/repository/_entityClass_Repository.java.ejs +1 -1
  393. package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +0 -21
  394. package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/repository/JHipsterCouchbaseRepository.java.ejs +1 -1
  395. package/dist/generators/spring-data-elasticsearch/generator.d.ts +1 -0
  396. package/dist/generators/spring-data-mongodb/generator.d.ts +1 -0
  397. package/dist/generators/spring-data-neo4j/generator.d.ts +1 -0
  398. package/dist/generators/spring-data-relational/generator.d.ts +2 -1
  399. package/dist/generators/spring-data-relational/generator.js +6 -4
  400. package/dist/generators/spring-data-relational/support/database-data.js +0 -3
  401. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/repository/EntityManager_reactive.java.ejs +1 -2
  402. package/dist/generators/spring-websocket/generator.d.ts +1 -0
  403. package/dist/generators/upgrade/generator.d.ts +1 -0
  404. package/dist/generators/vue/files-vue.js +0 -9
  405. package/dist/generators/vue/generator.d.ts +4 -4
  406. package/dist/generators/vue/generator.js +47 -25
  407. package/dist/generators/vue/resources/package.json +28 -29
  408. package/dist/generators/vue/support/translate-vue.d.ts +4 -4
  409. package/dist/generators/vue/support/translate-vue.js +1 -1
  410. package/dist/generators/vue/support/update-languages.d.ts +1 -1
  411. package/dist/generators/vue/templates/package.json.ejs +0 -2
  412. package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management-edit.component.spec.ts.ejs +1 -1
  413. package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management-view.component.spec.ts.ejs +1 -1
  414. package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management.component.spec.ts.ejs +1 -1
  415. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +7 -0
  416. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +3 -6
  417. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.component.spec.ts.ejs +1 -1
  418. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.spec.ts.ejs +1 -1
  419. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.component.spec.ts.ejs +1 -1
  420. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.spec.ts.ejs +3 -3
  421. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +2 -2
  422. package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +15 -0
  423. package/dist/generators/vue/templates/src/main/webapp/app/router/index.ts.ejs +2 -6
  424. package/dist/generators/vue/templates/vite.config.mts.ejs +1 -1
  425. package/dist/generators/vue/templates/vitest.config.mts.ejs +0 -7
  426. package/dist/generators/vue/templates/webpack/webpack.dev.js.ejs +1 -1
  427. package/dist/generators/workspaces/generator.d.ts +1 -0
  428. package/dist/lib/command/converter.d.ts +2 -2
  429. package/dist/lib/command/load.js +8 -25
  430. package/dist/lib/command/types.d.ts +9 -7
  431. package/dist/lib/internal/config-def.js +2 -8
  432. package/dist/lib/jdl/core/models/jdl-application.d.ts +1 -1
  433. package/dist/lib/jhipster/default-application-options.d.ts +7 -4
  434. package/dist/lib/jhipster/default-application-options.js +11 -3
  435. package/dist/lib/testing/github-group.d.ts +1 -1
  436. package/dist/lib/testing/github-group.js +5 -3
  437. package/dist/lib/testing/github.d.ts +5 -1
  438. package/dist/lib/testing/github.js +18 -5
  439. package/dist/lib/testing/helpers.d.ts +14 -1
  440. package/dist/lib/testing/helpers.js +34 -2
  441. package/dist/lib/testing/sample-config.js +2 -2
  442. package/dist/lib/testing/support/entity-samples.d.ts +29 -29
  443. package/dist/lib/testing/support/entity-samples.js +2 -2
  444. package/dist/lib/types/application/application.d.ts +4 -2
  445. package/dist/lib/types/application/entity.d.ts +47 -9
  446. package/dist/lib/types/application/field.d.ts +11 -2
  447. package/dist/lib/types/application/property.d.ts +10 -0
  448. package/dist/lib/types/application/relationship.d.ts +5 -1
  449. package/dist/lib/types/application/tasks.d.ts +14 -4
  450. package/dist/lib/types/base/entity.d.ts +11 -1
  451. package/dist/lib/types/base/field.d.ts +6 -2
  452. package/dist/lib/types/base/property.d.ts +6 -0
  453. package/dist/lib/types/base/relationship.d.ts +3 -1
  454. package/dist/lib/types/base/translation.d.ts +1 -0
  455. package/dist/lib/utils/derived-property.d.ts +6 -0
  456. package/dist/lib/utils/derived-property.js +27 -0
  457. package/dist/lib/utils/object.d.ts +4 -4
  458. package/dist/lib/utils/yo-rc.d.ts +22 -13
  459. package/package.json +37 -37
  460. package/dist/generators/angular/types-export.d.ts +0 -1
  461. package/dist/generators/app/types-export.d.ts +0 -1
  462. package/dist/generators/base/types-export.d.ts +0 -4
  463. package/dist/generators/base-application/types-export.d.ts +0 -6
  464. package/dist/generators/base-core/types-export.d.ts +0 -1
  465. package/dist/generators/base-entity-changes/types-export.d.ts +0 -1
  466. package/dist/generators/bootstrap/types-export.d.ts +0 -1
  467. package/dist/generators/bootstrap-application/types-export.d.ts +0 -1
  468. package/dist/generators/bootstrap-application-base/types-export.d.ts +0 -1
  469. package/dist/generators/bootstrap-application-client/types-export.d.ts +0 -1
  470. package/dist/generators/bootstrap-application-server/types-export.d.ts +0 -1
  471. package/dist/generators/ci-cd/types-export.d.ts +0 -1
  472. package/dist/generators/client/types-export.d.ts +0 -1
  473. package/dist/generators/common/types-export.d.ts +0 -1
  474. package/dist/generators/cucumber/types-export.d.ts +0 -1
  475. package/dist/generators/cypress/types-export.d.ts +0 -1
  476. package/dist/generators/docker/types-export.d.ts +0 -1
  477. package/dist/generators/docker-compose/types-export.d.ts +0 -1
  478. package/dist/generators/entities/types-export.d.ts +0 -1
  479. package/dist/generators/entity/types-export.d.ts +0 -1
  480. package/dist/generators/export-jdl/types-export.d.ts +0 -1
  481. package/dist/generators/feign-client/types-export.d.ts +0 -1
  482. package/dist/generators/gatling/types-export.d.ts +0 -1
  483. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +0 -22
  484. package/dist/generators/generate-blueprint/types-export.d.ts +0 -1
  485. package/dist/generators/git/types-export.d.ts +0 -1
  486. package/dist/generators/gradle/types-export.d.ts +0 -1
  487. package/dist/generators/heroku/types-export.d.ts +0 -1
  488. package/dist/generators/info/types-export.d.ts +0 -1
  489. package/dist/generators/init/types-export.d.ts +0 -1
  490. package/dist/generators/java/types-export.d.ts +0 -1
  491. package/dist/generators/jdl/types-export.d.ts +0 -1
  492. package/dist/generators/kubernetes/types-export.d.ts +0 -1
  493. package/dist/generators/kubernetes-helm/types-export.d.ts +0 -1
  494. package/dist/generators/kubernetes-knative/types-export.d.ts +0 -1
  495. package/dist/generators/languages/types-export.d.ts +0 -1
  496. package/dist/generators/liquibase/types-export.d.ts +0 -1
  497. package/dist/generators/maven/types-export.d.ts +0 -1
  498. package/dist/generators/project-name/types-export.d.ts +0 -1
  499. package/dist/generators/react/templates/src/main/webapp/microfrontends/entities-menu.tsx.ejs +0 -3
  500. package/dist/generators/react/templates/src/main/webapp/microfrontends/entities-routes.tsx.ejs +0 -3
  501. package/dist/generators/react/types-export.d.ts +0 -1
  502. package/dist/generators/server/types-export.d.ts +0 -1
  503. package/dist/generators/spring-boot/types-export.d.ts +0 -1
  504. package/dist/generators/spring-cache/types-export.d.ts +0 -1
  505. package/dist/generators/spring-cloud-stream/types-export.d.ts +0 -1
  506. package/dist/generators/spring-data-cassandra/types-export.d.ts +0 -1
  507. package/dist/generators/spring-data-couchbase/types-export.d.ts +0 -1
  508. package/dist/generators/spring-data-elasticsearch/types-export.d.ts +0 -1
  509. package/dist/generators/spring-data-mongodb/types-export.d.ts +0 -1
  510. package/dist/generators/spring-data-neo4j/types-export.d.ts +0 -1
  511. package/dist/generators/spring-data-relational/types-export.d.ts +0 -1
  512. package/dist/generators/spring-websocket/types-export.d.ts +0 -1
  513. package/dist/generators/upgrade/types-export.d.ts +0 -1
  514. package/dist/generators/vue/templates/src/main/webapp/microfrontends/entities-menu-test.vue.ejs +0 -7
  515. package/dist/generators/vue/templates/src/main/webapp/microfrontends/entities-menu.component-test.ts.ejs +0 -6
  516. package/dist/generators/vue/templates/src/main/webapp/microfrontends/entities-router-test.ts.ejs +0 -1
  517. package/dist/generators/vue/types-export.d.ts +0 -1
  518. package/dist/generators/workspaces/types-export.d.ts +0 -1
@@ -16,7 +16,8 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import path from 'path';
19
+ import assert from 'node:assert';
20
+ import path from 'node:path';
20
21
  import { clientFrameworkTypes, fieldTypes } from '../../../lib/jhipster/index.js';
21
22
  import { getEntryIfTypeOrTypeAttribute } from './types-utils.js';
22
23
  const { STRING: TYPE_STRING, UUID: TYPE_UUID } = fieldTypes.CommonDBTypes;
@@ -70,9 +71,9 @@ export const generateEntityClientImports = (relationships, dto, clientFramework)
70
71
  export const generateEntityClientEnumImports = (fields, clientFramework) => {
71
72
  const typeImports = new Map();
72
73
  const uniqueEnums = {};
73
- fields.forEach(field => {
74
+ for (const field of fields) {
74
75
  const { enumFileName, fieldType } = field;
75
- if (field.fieldIsEnum && (!uniqueEnums[fieldType] || (uniqueEnums[fieldType] && field.fieldValues.length !== 0))) {
76
+ if (field.fieldIsEnum && (!uniqueEnums[fieldType] || (uniqueEnums[fieldType] && field.fieldValues?.length !== 0))) {
76
77
  const importType = `${fieldType}`;
77
78
  const basePath = clientFramework === VUE ? '@' : 'app';
78
79
  const modelPath = clientFramework === ANGULAR ? 'entities' : 'shared/model';
@@ -80,46 +81,73 @@ export const generateEntityClientEnumImports = (fields, clientFramework) => {
80
81
  uniqueEnums[fieldType] = field.fieldType;
81
82
  typeImports.set(importType, importPath);
82
83
  }
83
- });
84
+ }
84
85
  return typeImports;
85
86
  };
86
87
  /**
87
88
  * @private
88
89
  * Generate a primary key, according to the type
89
- *
90
- * @param {any} primaryKey - primary key definition
91
- * @param {number} index - the index of the primary key, currently it's possible to generate 2 values, index = 0 - first key (default), otherwise second key
92
- * @param {boolean} [wrapped=true] - wrapped values for required types.
93
90
  */
94
91
  export const generateTestEntityId = (primaryKey, index = 0, wrapped = true) => {
95
- primaryKey = getEntryIfTypeOrTypeAttribute(primaryKey);
92
+ if (index === 'random' && typeof primaryKey === 'object') {
93
+ return primaryKey.fields[0].generateFakeData('ts');
94
+ }
95
+ assert(index === 0 || index === 1, 'index must be 0 or 1');
96
+ const primaryKeyType = getEntryIfTypeOrTypeAttribute(primaryKey);
96
97
  let value;
97
- if (primaryKey === TYPE_STRING) {
98
+ if (primaryKeyType === TYPE_STRING) {
98
99
  value = index === 0 ? 'ABC' : 'CBA';
99
100
  }
100
- else if (primaryKey === TYPE_UUID) {
101
+ else if (primaryKeyType === TYPE_UUID) {
101
102
  value = index === 0 ? '9fec3727-3421-4967-b213-ba36557ca194' : '1361f429-3817-4123-8ee3-fdf8943310b2';
102
103
  }
103
104
  else {
104
105
  value = index === 0 ? 123 : 456;
105
106
  }
106
- if (wrapped && [TYPE_UUID, TYPE_STRING].includes(primaryKey)) {
107
+ if (wrapped && [TYPE_UUID, TYPE_STRING].includes(primaryKeyType)) {
107
108
  return `'${value}'`;
108
109
  }
109
110
  return value;
110
111
  };
112
+ /**
113
+ * Generate a test entity, according to the type
114
+ */
115
+ export const generateTsTestEntityForFields = (fields) => {
116
+ const entries = fields
117
+ .map(field => {
118
+ const { fieldWithContentType, contentTypeFieldName, fieldTypeTimed, fieldTypeLocalDate } = field;
119
+ const fakeData = field.generateFakeData('ts');
120
+ if (fieldWithContentType) {
121
+ return [
122
+ [field.propertyName, fakeData],
123
+ [contentTypeFieldName, "'unknown'"],
124
+ ];
125
+ }
126
+ if (fieldTypeTimed || fieldTypeLocalDate) {
127
+ return [[field.propertyName, `dayjs(${fakeData})`]];
128
+ }
129
+ return [[field.propertyName, fakeData]];
130
+ })
131
+ .flat();
132
+ return Object.fromEntries(entries);
133
+ };
134
+ export const stringifyTsEntity = (data, options = {}) => {
135
+ const entries = Object.entries(data);
136
+ const { sep = entries.length > 1 ? '\n ' : '' } = options;
137
+ return `{${sep}${entries.map(([key, value]) => `${key}: ${value}`).join(`,${sep}`)}${sep.trim()}}`;
138
+ };
111
139
  /**
112
140
  * @private
141
+ * @deprecated
113
142
  * Generate a test entity, according to the type
114
143
  *
115
144
  * @param references
116
145
  * @param {number} [index] - index of the primary key sample, pass undefined for a random key.
117
146
  */
118
147
  export const generateTestEntity = (references, index = 'random') => {
119
- const random = index === 'random';
120
148
  const entries = references
121
149
  .map(reference => {
122
- if (random && reference.field) {
150
+ if (index === 'random') {
123
151
  const field = reference.field;
124
152
  const { fieldWithContentType, contentTypeFieldName } = field;
125
153
  const fakeData = field.generateFakeData('json-serializable');
@@ -137,6 +165,7 @@ export const generateTestEntity = (references, index = 'random') => {
137
165
  return Object.fromEntries(entries);
138
166
  };
139
167
  /**
168
+ * @deprecated
140
169
  * Generate a test entity, according to the references
141
170
  *
142
171
  * @param references
@@ -172,10 +201,8 @@ export const generateTypescriptTestEntity = (references, additionalFields = {})
172
201
  }`;
173
202
  };
174
203
  /**
204
+ * @deprecated
175
205
  * Generate a test entity for the PK references (when the PK is a composite key)
176
- *
177
- * @param {any} primaryKey - primary key definition.
178
- * @param {number} [index] - index of the primary key sample, pass undefined for a random key.
179
206
  */
180
207
  export const generateTestEntityPrimaryKey = (primaryKey, index) => {
181
208
  return JSON.stringify(generateTestEntity(primaryKey.fields.map(f => f.reference), index));
@@ -185,7 +212,7 @@ export const generateTestEntityPrimaryKey = (primaryKey, index) => {
185
212
  * Get a parent folder path addition for entity
186
213
  * @param {string} clientRootFolder
187
214
  */
188
- export const getEntityParentPathAddition = clientRootFolder => {
215
+ export const getEntityParentPathAddition = (clientRootFolder) => {
189
216
  if (!clientRootFolder) {
190
217
  return '';
191
218
  }
@@ -17,11 +17,10 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import type { CommonClientServerApplication } from '../../base-application/types.js';
20
- import type BaseGenerator from '../../base/index.js';
20
+ import type BaseGenerator from '../../base-core/index.js';
21
+ type UpdateLanguagesApplication = Pick<CommonClientServerApplication<any>, 'clientBundlerWebpack' | 'clientSrcDir' | 'clientRootDir' | 'enableTranslation' | 'languagesDefinition' | 'languages'>;
21
22
  export type UpdateClientLanguagesTaskParam = {
22
- application: CommonClientServerApplication<any> & {
23
- enableTranslation: true;
24
- };
23
+ application: UpdateLanguagesApplication;
25
24
  control?: any;
26
25
  };
27
26
  /**
@@ -35,3 +34,4 @@ export declare function updateLanguagesInDayjsConfigurationTask(this: BaseGenera
35
34
  configurationFile: string;
36
35
  commonjs?: boolean;
37
36
  }): void;
37
+ export {};
@@ -1,22 +1,28 @@
1
1
  import type { addIconImport, addItemToMenu, addRoute } from '../angular/support/needles.js';
2
- import type { AngularApplication } from '../angular/types.js';
3
2
  import type { ExportApplicationPropertiesFromCommand } from '../../lib/command/index.js';
4
3
  import type { CypressApplication } from '../cypress/types.js';
5
4
  import type { JavaScriptApplication, JavaScriptSourceType } from '../javascript/types.js';
6
5
  import type { PostWritingEntitiesTaskParam } from '../../lib/types/application/tasks.js';
6
+ import type { PartialAngularApplication } from '../angular/types-partial.js';
7
+ import type { Language } from '../languages/support/languages.ts';
7
8
  import type Command from './command.ts';
8
9
 
9
10
  type ApplicationClientProperties = ExportApplicationPropertiesFromCommand<typeof Command>;
10
11
 
11
- export type ClientApplication = ApplicationClientProperties &
12
+ export type FrontendApplication = ApplicationClientProperties &
12
13
  JavaScriptApplication &
13
- AngularApplication &
14
14
  CypressApplication & {
15
15
  webappLoginRegExp: string;
16
+ clientWebappDir?: string;
16
17
  webappEnumerationsDir?: string;
17
18
  clientFrameworkBuiltIn?: boolean;
18
19
  };
19
20
 
21
+ /**
22
+ * @deprecated in favor of frontend application.
23
+ */
24
+ export type ClientApplication = JavaScriptApplication & PartialAngularApplication & FrontendApplication;
25
+
20
26
  export type ClientResources = {
21
27
  /**
22
28
  * resources added to root file.
@@ -41,4 +47,5 @@ export type ClientSourceType = JavaScriptSourceType & {
41
47
  * Add webpack config.
42
48
  */
43
49
  addWebpackConfig?(args: { config: string });
50
+ addLanguagesInFrontend?(args: { languagesDefinition: readonly Language[] });
44
51
  };
@@ -29,7 +29,5 @@ export declare const commonFiles: {
29
29
  }[];
30
30
  };
31
31
  export declare function writeFiles(): {
32
- writeFiles({ application }: {
33
- application: any;
34
- }): any;
32
+ writeFiles: (this: import("../index.js").GeneratorBaseCore, params: import("../../lib/types/application/tasks.js").WritingTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>) => void;
35
33
  };
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  /**
3
2
  * Copyright 2013-2024 the original author or authors from the JHipster project.
4
3
  *
@@ -17,6 +16,7 @@
17
16
  * See the License for the specific language governing permissions and
18
17
  * limitations under the License.
19
18
  */
19
+ import { asWritingTask } from '../base-application/support/task-type-inference.js';
20
20
  /**
21
21
  * The default is to use a file path string. It implies use of the template method.
22
22
  * For any other config an object { file:.., method:.., template:.. } can be used
@@ -35,11 +35,11 @@ export const commonFiles = {
35
35
  };
36
36
  export function writeFiles() {
37
37
  return {
38
- writeFiles({ application }) {
38
+ writeFiles: asWritingTask(function ({ application }) {
39
39
  return this.writeFiles({
40
40
  sections: commonFiles,
41
41
  context: application,
42
42
  });
43
- },
43
+ }),
44
44
  };
45
45
  }
@@ -18,12 +18,10 @@
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
20
  export default class CommonGenerator extends BaseApplicationGenerator {
21
+ [x: string]: any;
21
22
  command: import("../index.js").JHipsterCommandDefinition;
22
23
  beforeQueue(): Promise<void>;
23
- get configuring(): {
24
- configureMonorepository(): Promise<void>;
25
- configureCommitHook(): void;
26
- };
24
+ get configuring(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl, "configureMonorepository" | "configureCommitHook">;
27
25
  get composing(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl, "composing">;
28
26
  get configuringEachEntity(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").ConfiguringEachEntityTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "migrateEntity">;
29
27
  get loading(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").TaskParamWithApplicationDefaults<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "loadPackageJson" | "loadConfig">;
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  /**
3
2
  * Copyright 2013-2024 the original author or authors from the JHipster project.
4
3
  *
@@ -18,6 +17,7 @@
18
17
  * limitations under the License.
19
18
  */
20
19
  import { isFileStateModified } from 'mem-fs-editor/state';
20
+ import { CheckRepoActions } from 'simple-git';
21
21
  import BaseApplicationGenerator from '../base-application/index.js';
22
22
  import { JHIPSTER_DOCUMENTATION_ARCHIVE_PATH, JHIPSTER_DOCUMENTATION_URL, MAIN_DIR, SERVER_MAIN_RES_DIR, TEST_DIR, } from '../generator-constants.js';
23
23
  import { clientFrameworkTypes } from '../../lib/jhipster/index.js';
@@ -41,12 +41,12 @@ export default class CommonGenerator extends BaseApplicationGenerator {
41
41
  }
42
42
  // Public API method used by the getter and also by Blueprints
43
43
  get configuring() {
44
- return {
44
+ return this.asConfiguringTaskGroup({
45
45
  async configureMonorepository() {
46
46
  if (this.jhipsterConfig.monorepository)
47
47
  return;
48
48
  const git = this.createGit();
49
- if ((await git.checkIsRepo()) && !(await git.checkIsRepo('root'))) {
49
+ if ((await git.checkIsRepo()) && !(await git.checkIsRepo(CheckRepoActions.IS_REPO_ROOT))) {
50
50
  this.jhipsterConfig.monorepository = true;
51
51
  }
52
52
  },
@@ -55,7 +55,7 @@ export default class CommonGenerator extends BaseApplicationGenerator {
55
55
  this.jhipsterConfig.skipCommitHook = true;
56
56
  }
57
57
  },
58
- };
58
+ });
59
59
  }
60
60
  get [BaseApplicationGenerator.CONFIGURING]() {
61
61
  return this.delegateTasksToBlueprint(() => this.configuring);
@@ -78,11 +78,11 @@ export default class CommonGenerator extends BaseApplicationGenerator {
78
78
  migrateEntity({ entityConfig, entityStorage }) {
79
79
  for (const field of entityConfig.fields) {
80
80
  if (field.javadoc) {
81
- field.documentation = field.javadoc;
81
+ field.documentation ??= field.javadoc;
82
82
  delete field.javadoc;
83
83
  }
84
84
  if (field.fieldTypeJavadoc) {
85
- field.fieldTypeDocumentation = field.fieldTypeJavadoc;
85
+ field.fieldTypeDocumentation ??= field.fieldTypeJavadoc;
86
86
  delete field.fieldTypeJavadoc;
87
87
  }
88
88
  }
@@ -129,16 +129,18 @@ export default class CommonGenerator extends BaseApplicationGenerator {
129
129
  throw new Error('Entities cannot be generated as the entity suffix and DTO suffix are equals!');
130
130
  }
131
131
  },
132
- setupConstants({ application }) {
132
+ setupConstants({ applicationDefaults }) {
133
133
  // Make constants available in templates
134
- application.MAIN_DIR = MAIN_DIR;
135
- application.TEST_DIR = TEST_DIR;
136
- application.SERVER_MAIN_RES_DIR = SERVER_MAIN_RES_DIR;
137
- application.ANGULAR = ANGULAR;
138
- application.REACT = REACT;
139
- // Make documentation URL available in templates
140
- application.DOCUMENTATION_URL = JHIPSTER_DOCUMENTATION_URL;
141
- application.DOCUMENTATION_ARCHIVE_PATH = JHIPSTER_DOCUMENTATION_ARCHIVE_PATH;
134
+ applicationDefaults({
135
+ MAIN_DIR,
136
+ TEST_DIR,
137
+ SERVER_MAIN_RES_DIR,
138
+ ANGULAR,
139
+ REACT,
140
+ // Make documentation URL available in templates
141
+ DOCUMENTATION_URL: JHIPSTER_DOCUMENTATION_URL,
142
+ DOCUMENTATION_ARCHIVE_PATH: JHIPSTER_DOCUMENTATION_ARCHIVE_PATH,
143
+ });
142
144
  },
143
145
  });
144
146
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "devDependencies": {
3
- "concurrently": "9.0.1",
4
- "npm": "10.9.0",
3
+ "concurrently": "9.1.0",
4
+ "npm": "11.0.0",
5
5
  "wait-on": "8.0.1"
6
6
  }
7
7
  }
@@ -37,45 +37,45 @@ sonar.javascript.lcov.reportPaths=<%_ if (buildToolMaven) { _%>target<%_ } else
37
37
 
38
38
  sonar.sourceEncoding=UTF-8
39
39
  sonar.exclusions=<%= clientSrcDir %>content/**/*.*, <%= clientSrcDir %>i18n/*.js, <%= clientDistDir %>**/*.*
40
- <%_ if (!skipServer) { _%>
40
+ <%_ if (!skipServer && backendTypeJavaAny) { _%>
41
41
 
42
42
  sonar.issue.ignore.multicriteria=\
43
- <%_ if (backendTypeSpringBoot) { _%>
43
+ <%_ if (backendTypeSpringBoot) { _%>
44
44
  S6437,\
45
- <%_ } _%>
46
- <%_ if (cacheProviderAny) { _%>
45
+ <%_ } _%>
46
+ <%_ if (cacheProviderAny) { _%>
47
47
  S1192,\
48
- <%_ } _%>
49
- <%_ if (backendTypeSpringBoot) { _%>
48
+ <%_ } _%>
49
+ <%_ if (backendTypeSpringBoot) { _%>
50
50
  S125,\
51
- <%_ } _%>
52
- <%_ if (gatlingTests) { _%>
51
+ <%_ } _%>
52
+ <%_ if (gatlingTests) { _%>
53
53
  S2187,\
54
- <%_ } _%>
54
+ <%_ } _%>
55
55
  S3437,\
56
- <%_ if (authenticationTypeJwt) { _%>
56
+ <%_ if (authenticationTypeJwt) { _%>
57
57
  S4502,\
58
- <%_ } _%>
58
+ <%_ } _%>
59
59
  S4684,S5145,S7027-domain,S7027-dto,UndocumentedApi
60
60
 
61
- <%_ if (backendTypeSpringBoot) { _%>
61
+ <%_ if (backendTypeSpringBoot) { _%>
62
62
  # Rule https://rules.sonarsource.com/java/RSPEC-6437 is ignored, hardcoded passwords are provided for development purposes
63
63
  sonar.issue.ignore.multicriteria.S6437.resourceKey=<%= srcMainResources %>config/*
64
64
  sonar.issue.ignore.multicriteria.S6437.ruleKey=java:S6437
65
- <%_ } _%>
66
- <%_ if (gatlingTests) { _%>
65
+ <%_ } _%>
66
+ <%_ if (gatlingTests) { _%>
67
67
  # Rule https://rules.sonarsource.com/java/RSPEC-2187 is ignored, gatling tests are not supported by sonar
68
68
  sonar.issue.ignore.multicriteria.S2187.resourceKey= <%- srcTestJava %>gatling/**/*
69
69
  sonar.issue.ignore.multicriteria.S2187.ruleKey=java:S2187
70
- <%_ } _%>
70
+ <%_ } _%>
71
71
  # Rule https://rules.sonarsource.com/java/RSPEC-3437 is ignored, as a JPA-managed field cannot be transient
72
72
  sonar.issue.ignore.multicriteria.S3437.resourceKey= <%- srcMainJava %>**/*
73
73
  sonar.issue.ignore.multicriteria.S3437.ruleKey=squid:S3437
74
- <%_ if (authenticationTypeJwt) { _%>
74
+ <%_ if (authenticationTypeJwt) { _%>
75
75
  # Rule https://rules.sonarsource.com/java/RSPEC-4502 is ignored, as for JWT tokens we are not subject to CSRF attack
76
76
  sonar.issue.ignore.multicriteria.S4502.resourceKey= <%- srcMainJava %>**/*
77
77
  sonar.issue.ignore.multicriteria.S4502.ruleKey=java:S4502
78
- <%_ } _%>
78
+ <%_ } _%>
79
79
  # Rule https://rules.sonarsource.com/java/RSPEC-4684
80
80
  sonar.issue.ignore.multicriteria.S4684.resourceKey= <%- srcMainJava %>**/*
81
81
  sonar.issue.ignore.multicriteria.S4684.ruleKey=java:S4684
@@ -91,14 +91,14 @@ sonar.issue.ignore.multicriteria.S7027-dto.ruleKey = javaarchitecture:S7027
91
91
  # Rule https://rules.sonarsource.com/java/RSPEC-1176 is ignored, as we want to follow "clean code" guidelines and classes, methods and arguments names should be self-explanatory
92
92
  sonar.issue.ignore.multicriteria.UndocumentedApi.resourceKey= <%- srcMainJava %>**/*
93
93
  sonar.issue.ignore.multicriteria.UndocumentedApi.ruleKey=squid:UndocumentedApi
94
- <%_ } _%>
95
- <%_ if (cacheProviderAny) { _%>
94
+ <%_ if (cacheProviderAny) { _%>
96
95
  # Rule https://rules.sonarsource.com/java/RSPEC-1192
97
96
  sonar.issue.ignore.multicriteria.S1192.resourceKey = src/main/java/**/CacheConfiguration.java
98
97
  sonar.issue.ignore.multicriteria.S1192.ruleKey = java:S1192
99
- <%_ } _%>
100
- <%_ if (backendTypeSpringBoot) { _%>
98
+ <%_ } _%>
99
+ <%_ if (backendTypeSpringBoot) { _%>
101
100
  # Rule https://rules.sonarsource.com/xml/RSPEC-125
102
101
  sonar.issue.ignore.multicriteria.S125.resourceKey = src/main/resources/logback-spring.xml
103
102
  sonar.issue.ignore.multicriteria.S125.ruleKey = xml:S125
103
+ <%_ } _%>
104
104
  <%_ } _%>
@@ -18,6 +18,7 @@
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
20
  export default class CucumberGenerator extends BaseApplicationGenerator {
21
+ [x: string]: any;
21
22
  beforeQueue(): Promise<void>;
22
23
  get writing(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").WritingTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "cleanupTask" | "writeTask">;
23
24
  get postWriting(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PostWritingTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "addDependencies">;
@@ -18,6 +18,7 @@
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
20
  export default class CypressGenerator extends BaseApplicationGenerator {
21
+ [x: string]: any;
21
22
  beforeQueue(): Promise<void>;
22
23
  get prompting(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl, "askForCypressOptions">;
23
24
  get loading(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").TaskParamWithApplicationDefaults<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "prepareForTemplates">;
@@ -23,6 +23,7 @@ import { CLIENT_MAIN_SRC_DIR } from '../generator-constants.js';
23
23
  import { generateTestEntity as entityWithFakeValues } from '../client/support/index.js';
24
24
  import { cypressEntityFiles, cypressFiles } from './files.js';
25
25
  const { ANGULAR } = clientFrameworkTypes;
26
+ const WAIT_TIMEOUT = 3 * 60000;
26
27
  export default class CypressGenerator extends BaseApplicationGenerator {
27
28
  async beforeQueue() {
28
29
  if (!this.fromBlueprint) {
@@ -159,18 +160,24 @@ export default class CypressGenerator extends BaseApplicationGenerator {
159
160
  this.loadNodeDependenciesFromPackageJson(application.nodeDependencies, this.fetchFromInstalledJHipster('client', 'resources', 'package.json'));
160
161
  },
161
162
  configure({ application }) {
163
+ const { devServerPort, devServerPortProxy: devServerPortE2e = devServerPort } = application;
162
164
  const clientPackageJson = this.createStorage(this.destinationPath(application.clientRootDir, 'package.json'));
163
165
  clientPackageJson.merge({
164
166
  devDependencies: {
165
167
  'eslint-plugin-cypress': application.nodeDependencies['eslint-plugin-cypress'],
166
168
  },
167
169
  scripts: {
170
+ 'ci:e2e:run': 'concurrently -k -s first -n application,e2e -c red,blue npm:ci:e2e:server:start npm:e2e:headless',
171
+ 'ci:e2e:dev': `concurrently -k -s first -n application,e2e -c red,blue npm:app:start npm:e2e:headless`,
172
+ cypress: 'cypress open --e2e',
168
173
  e2e: 'npm run e2e:cypress:headed --',
169
- 'e2e:headless': 'npm run e2e:cypress --',
170
- 'e2e:cypress:headed': 'npm run e2e:cypress -- --headed',
171
174
  'e2e:cypress': 'cypress run --e2e --browser chrome',
175
+ 'e2e:cypress:headed': 'npm run e2e:cypress -- --headed',
172
176
  'e2e:cypress:record': 'npm run e2e:cypress -- --record',
173
- cypress: 'cypress open --e2e',
177
+ 'e2e:dev': `concurrently -k -s first -n application,e2e -c red,blue npm:app:start npm:e2e`,
178
+ 'e2e:devserver': `concurrently -k -s first -n backend,frontend,e2e -c red,yellow,blue npm:backend:start npm:start "wait-on -t ${WAIT_TIMEOUT} http-get://127.0.0.1:${devServerPortE2e} && npm run e2e:headless -- -c baseUrl=http://localhost:${devServerPortE2e}"`,
179
+ 'pree2e:headless': 'npm run ci:server:await',
180
+ 'e2e:headless': 'npm run e2e:cypress --',
174
181
  },
175
182
  });
176
183
  },
@@ -191,7 +198,7 @@ export default class CypressGenerator extends BaseApplicationGenerator {
191
198
  });
192
199
  },
193
200
  configureCoverage({ application, source }) {
194
- const { cypressCoverage, clientFrameworkAngular, dasherizedBaseName } = application;
201
+ const { cypressCoverage, clientFrameworkAngular, clientRootDir, dasherizedBaseName } = application;
195
202
  if (!cypressCoverage)
196
203
  return;
197
204
  const clientPackageJson = this.createStorage(this.destinationPath(application.clientRootDir, 'package.json'));
@@ -213,7 +220,7 @@ export default class CypressGenerator extends BaseApplicationGenerator {
213
220
  });
214
221
  if (clientFrameworkAngular) {
215
222
  // Add 'ng build --configuration instrumenter' support
216
- this.createStorage('angular.json').setPath(`projects.${dasherizedBaseName}.architect.build.configurations.instrumenter`, {});
223
+ this.createStorage(`${clientRootDir}angular.json`).setPath(`projects.${dasherizedBaseName}.architect.build.configurations.instrumenter`, {});
217
224
  source.addWebpackConfig?.({
218
225
  config: `targetOptions.configuration === 'instrumenter'
219
226
  ? {
@@ -122,7 +122,7 @@ describe('<%= registerPage %>', () => {
122
122
 
123
123
  it('register a valid user', () => {
124
124
  const randomEmail = '<%= faker.internet.email() %>';
125
- const randomUsername = '<%= faker.internet.userName() %>';
125
+ const randomUsername = '<%= faker.internet.username() %>';
126
126
  cy.get(usernameRegisterSelector).type(randomUsername);
127
127
  cy.get(emailRegisterSelector).type(randomEmail);
128
128
  cy.get(firstPasswordRegisterSelector).type('jondoe');
@@ -263,7 +263,8 @@ describe('<%= entityClass %> e2e test', () => {
263
263
  cy.url().should('match', <%= entityInstance %>PageUrlPattern);
264
264
  });
265
265
 
266
- it<% if (jpaMetamodelFiltering && (clientFrameworkAngular || clientFrameworkVue)) { %>.skip<% } %>('edit button click should load edit <%= entityClass %> page and save', () => {
266
+ <% if (jpaMetamodelFiltering && clientFrameworkVue && requiredRelationships.length) { %>// Reason: jpaMetamodelFiltering with required relationship missbehavior<% } %>
267
+ it<% if (jpaMetamodelFiltering && clientFrameworkVue && requiredRelationships.length) { %>.skip<% } %>('edit button click should load edit <%= entityClass %> page and save', () => {
267
268
  cy.get(entityEditButtonSelector).first().click();
268
269
  cy.getEntityCreateUpdateHeading('<%= entityClass %>');
269
270
  cy.get(entityCreateSaveButtonSelector).click();
@@ -275,6 +276,7 @@ describe('<%= entityClass %> e2e test', () => {
275
276
 
276
277
  <%_ } _%>
277
278
  <%_ if (!readOnly) { _%>
279
+ <% if (skipCreateTest) { %>// Reason: cannot create a required entity with relationship with required relationships.<% } %>
278
280
  it<%= skipCreateTest %>('last delete button click should delete instance of <%= entityClass %>', () => {
279
281
  <%_ if (clientFrameworkReact) { _%>
280
282
  cy.intercept('GET', '/<%= baseApi + entityApiUrl %>/*').as('dialogDeleteRequest');
@@ -308,6 +310,7 @@ describe('<%= entityClass %> e2e test', () => {
308
310
  cy.getEntityCreateUpdateHeading('<%= entityClass %>');
309
311
  });
310
312
 
313
+ <% if (skipCreateTest) { %>// Reason: cannot create a required entity with relationship with required relationships.<% } %>
311
314
  it<%= skipCreateTest %>('should create an instance of <%= entityClass %>', () => {
312
315
  <%_ fields.filter(field => (!field.id || !field.autoGenerate) && !field.hidden && !field.readonly).forEach((field) => {
313
316
  const fieldName = field.fieldName;
@@ -18,6 +18,7 @@
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
20
  export default class DockerGenerator extends BaseApplicationGenerator {
21
+ [x: string]: any;
21
22
  hasServicesFile: boolean;
22
23
  beforeQueue(): Promise<void>;
23
24
  get loading(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").TaskParamWithApplicationDefaults<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "loading">;
@@ -190,7 +190,7 @@ export default class DockerGenerator extends BaseApplicationGenerator {
190
190
  source.addDockerExtendedServiceToApplicationAndServices({ serviceName: 'consul' }, { serviceFile: './consul.yml', serviceName: 'consul-config-loader' });
191
191
  }
192
192
  if (application.dockerServices.includes('kafka')) {
193
- source.addDockerExtendedServiceToApplicationAndServices({ serviceName: 'kafka' }, { serviceFile: './kafka.yml', serviceName: 'zookeeper' });
193
+ source.addDockerExtendedServiceToApplicationAndServices({ serviceName: 'kafka' });
194
194
  }
195
195
  },
196
196
  packageJsonScripts({ application }) {
@@ -34,9 +34,9 @@ services:
34
34
  environment:
35
35
  - BUCKET=<%= baseName %>
36
36
  healthcheck:
37
- test: ['CMD', 'curl', '-f', 'http://localhost:8091/ui/index.html']
37
+ test: ['CMD-SHELL', 'curl -f "http://localhost:8091/ui/index.html" && sleep 20']
38
38
  interval: 5s
39
- timeout: 5s
39
+ timeout: 25s
40
40
  retries: 10
41
41
  # volumes:
42
42
  # - ~/volumes/jhipster/<%= baseName.toLowerCase() %>/couchbase/:/opt/couchbase/var
@@ -26,22 +26,14 @@ services:
26
26
  ports:
27
27
  - 127.0.0.1:9092:9092
28
28
  environment:
29
- KAFKA_BROKER_ID: 1
30
- KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
31
- KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
32
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
33
- KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
34
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
35
- KAFKA_ADVERTISED_HOST_NAME: kafka
36
- <%_ if (backendTypeSpringBoot) { _%>
37
- labels:
38
- org.springframework.boot.ignore: true
39
- <%_ } _%>
40
- zookeeper:
41
- image: <%- dockerContainers.zookeeper %>
42
- environment:
43
- ZOOKEEPER_CLIENT_PORT: 2181
44
- ZOOKEEPER_TICK_TIME: 2000
29
+ KAFKA_NODE_ID: 1
30
+ KAFKA_PROCESS_ROLES: broker,controller
31
+ KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
32
+ KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://localhost:9093
33
+ KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
34
+ KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
35
+ KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
36
+ KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
45
37
  <%_ if (backendTypeSpringBoot) { _%>
46
38
  labels:
47
39
  org.springframework.boot.ignore: true
@@ -35,7 +35,7 @@ services:
35
35
  - 127.0.0.1:3306:3306
36
36
  command: mysqld --lower_case_table_names=1 --skip-mysqlx --character_set_server=utf8mb4 --explicit_defaults_for_timestamp
37
37
  healthcheck:
38
- test: ["CMD", "mysql", "-e", "SHOW DATABASES;"]
38
+ test: ['CMD-SHELL', 'mysql -e "SHOW DATABASES;" && sleep 5']
39
39
  interval: 5s
40
- timeout: 5s
40
+ timeout: 10s
41
41
  retries: 10
@@ -4,6 +4,7 @@ import BaseWorkspacesGenerator from '../base-workspaces/index.js';
4
4
  * @extends {import('../base/index.js')}
5
5
  */
6
6
  export default class DockerComposeGenerator extends BaseWorkspacesGenerator {
7
+ [x: string]: any;
7
8
  existingDeployment: any;
8
9
  jwtSecretKey: string;
9
10
  beforeQueue(): Promise<void>;
@@ -173,6 +173,9 @@ export default class DockerComposeGenerator extends BaseWorkspacesGenerator {
173
173
  if (appConfig.devServerPort !== undefined) {
174
174
  deployment.keycloakRedirectUris += `"http://localhost:${appConfig.devServerPort}/*", `;
175
175
  }
176
+ if (appConfig.devServerPortProxy !== undefined) {
177
+ deployment.keycloakRedirectUris += `"http://localhost:${appConfig.devServerPortProxy}/*", `;
178
+ }
176
179
  // Split ports by ":" and take last 2 elements to skip the hostname/IP if present
177
180
  const ports = yamlConfig.ports[0].split(':').slice(-2);
178
181
  ports[0] = appConfig.composePort;
@@ -32,7 +32,6 @@ Launch all your infrastructure by running: `docker compose up -d`.
32
32
  <%_ } _%>
33
33
  <%_ if (useKafka === true) { _%>
34
34
  - Kafka
35
- - Zookeeper
36
35
  <%_ } _%>
37
36
  <%_ if (usePulsar === true) { _%>
38
37
  - Pulsar