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
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Copyright 2013-2024 the original author or authors from the JHipster project.
3
+ *
4
+ * This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ * for more information.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import BaseApplicationGenerator from '../../../base-application/index.js';
20
+ export default class NodeGenerator extends BaseApplicationGenerator {
21
+ async beforeQueue() {
22
+ if (!this.fromBlueprint) {
23
+ await this.composeWithBlueprints();
24
+ }
25
+ if (!this.delegateToBlueprint) {
26
+ await this.dependsOnBootstrapApplication();
27
+ await this.dependsOnJHipster('jhipster:java:build-tool');
28
+ }
29
+ }
30
+ get initializing() {
31
+ return this.asInitializingTaskGroup({
32
+ async parseCommand() {
33
+ await this.parseCurrentJHipsterCommand();
34
+ },
35
+ });
36
+ }
37
+ get [BaseApplicationGenerator.INITIALIZING]() {
38
+ return this.delegateTasksToBlueprint(() => this.initializing);
39
+ }
40
+ get prompting() {
41
+ return this.asPromptingTaskGroup({
42
+ async promptCommand({ control }) {
43
+ if (control.existingProject && this.options.askAnswered !== true)
44
+ return;
45
+ await this.promptCurrentJHipsterCommand();
46
+ },
47
+ });
48
+ }
49
+ get [BaseApplicationGenerator.PROMPTING]() {
50
+ return this.delegateTasksToBlueprint(() => this.prompting);
51
+ }
52
+ get composing() {
53
+ return this.asComposingTaskGroup({
54
+ async compose() {
55
+ const { buildTool } = this.jhipsterConfigWithDefaults;
56
+ if (buildTool === 'maven') {
57
+ await this.composeWithJHipster('jhipster:maven:frontend-plugin');
58
+ }
59
+ else if (buildTool === 'gradle') {
60
+ await this.composeWithJHipster('jhipster:gradle:node-gradle');
61
+ }
62
+ },
63
+ });
64
+ }
65
+ get [BaseApplicationGenerator.COMPOSING]() {
66
+ return this.delegateTasksToBlueprint(() => this.composing);
67
+ }
68
+ get loading() {
69
+ return this.asLoadingTaskGroup({
70
+ async loadConfig({ application }) {
71
+ await this.loadCurrentJHipsterCommandConfig(application);
72
+ },
73
+ });
74
+ }
75
+ get [BaseApplicationGenerator.LOADING]() {
76
+ return this.delegateTasksToBlueprint(() => this.loading);
77
+ }
78
+ get writing() {
79
+ return this.asWritingTaskGroup({
80
+ async writing({ application }) {
81
+ await this.writeFiles({
82
+ blocks: [
83
+ {
84
+ condition: (ctx) => ctx.useNpmWrapper,
85
+ transform: false,
86
+ templates: ['npmw', 'npmw.cmd'],
87
+ },
88
+ ],
89
+ context: application,
90
+ });
91
+ },
92
+ });
93
+ }
94
+ get [BaseApplicationGenerator.WRITING]() {
95
+ return this.delegateTasksToBlueprint(() => this.writing);
96
+ }
97
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright 2013-2024 the original author or authors from the JHipster project.
3
+ *
4
+ * This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ * for more information.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ export { default } from './generator.js';
20
+ export { default as command } from './command.js';
@@ -25,5 +25,6 @@ export { default as generatedAnnotationTransform } from './generated-annotation-
25
25
  export * from './java-formatting.js';
26
26
  export * from './key-store.js';
27
27
  export { default as packageInfoTransform } from './package-info-transform.js';
28
+ export * from './package-info-transform.js';
28
29
  export * from './reserved-keywords.js';
29
30
  export * from './util.js';
@@ -17,24 +17,21 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import { extname } from 'path';
20
- import * as _ from 'lodash-es';
20
+ import { upperFirst } from 'lodash-es';
21
21
  import { create as createMemFs } from 'mem-fs';
22
22
  import { create as createMemFsEditor } from 'mem-fs-editor';
23
23
  import { readFile } from 'fs/promises';
24
24
  import BaseGenerator from '../base/index.js';
25
- import command from './command.js';
26
25
  import { downloadJdlFile } from '../../cli/download.mjs';
27
26
  import EnvironmentBuilder from '../../cli/environment-builder.mjs';
28
27
  import { CLI_NAME } from '../../cli/utils.mjs';
29
28
  import { GENERATOR_APP, GENERATOR_ENTITIES, GENERATOR_WORKSPACES } from '../generator-list.js';
30
29
  import { createImporterFromContent } from '../../jdl/jdl-importer.js';
31
30
  import { GENERATOR_JHIPSTER, JHIPSTER_CONFIG_DIR } from '../generator-constants.js';
32
- import statistics from '../statistics.js';
33
31
  import { addApplicationIndex, allNewApplications, customizeForMicroservices } from './internal/index.js';
34
32
  import { mergeYoRcContent } from '../../jdl/index.js';
35
33
  import { normalizeBlueprintName } from '../base/internal/blueprint.js';
36
34
  import { updateApplicationEntitiesTransform } from '../base-application/support/update-application-entities-transform.js';
37
- const { upperFirst } = _;
38
35
  /**
39
36
  * Add jdl extension to the file
40
37
  */
@@ -66,25 +63,24 @@ export default class JdlGenerator extends BaseGenerator {
66
63
  exportedDeployments;
67
64
  async beforeQueue() {
68
65
  if (!this.fromBlueprint) {
69
- await this.composeWithBlueprints('jdl');
66
+ await this.composeWithBlueprints();
70
67
  }
71
68
  }
72
69
  get initializing() {
73
70
  return this.asInitializingTaskGroup({
71
+ async parseCommand() {
72
+ await this.parseCurrentJHipsterCommand();
73
+ },
74
74
  loadArguments() {
75
- this.parseJHipsterArguments(command.arguments);
76
75
  if (this.jdlFiles) {
77
76
  this.log.verboseInfo('Generating jdls', ...this.jdlFiles);
78
77
  }
79
78
  },
80
- loadOptions() {
81
- this.parseJHipsterOptions(command.options);
82
- },
83
79
  existingProject() {
84
80
  this.existingProject = this.jhipsterConfig.baseName !== undefined && this.config.existed;
85
81
  },
86
82
  checkOptions() {
87
- if (!this.inline && !this.jdlFiles?.length) {
83
+ if (!this.skipChecks && !this.inline && !this.jdlFiles?.length) {
88
84
  throw new Error('At least one jdl file is required.');
89
85
  }
90
86
  },
@@ -95,9 +91,6 @@ export default class JdlGenerator extends BaseGenerator {
95
91
  }
96
92
  get configuring() {
97
93
  return this.asConfiguringTaskGroup({
98
- insight() {
99
- statistics.sendSubGenEvent('generator', 'import-jdl');
100
- },
101
94
  async downloadJdlFiles() {
102
95
  if (this.jdlFiles) {
103
96
  this.jdlFiles = await Promise.all(this.jdlFiles.map(toJdlFile).map(async (filename) => {
@@ -23,8 +23,6 @@ import BaseWorkspacesGenerator from '../base-workspaces/index.js';
23
23
  import prompts from './prompts.js';
24
24
  import { writeFiles } from './files.js';
25
25
  import { buildToolTypes, messageBrokerTypes } from '../../jdl/jhipster/index.js';
26
- import { GENERATOR_KUBERNETES } from '../generator-list.js';
27
- import statistics from '../statistics.js';
28
26
  import { checkImages, generateJwtSecret, configureImageNames, loadFromYoRc } from '../base-workspaces/internal/docker-base.js';
29
27
  import { checkKubernetes, loadConfig, setupKubernetesConstants, derivedKubernetesPlatformProperties } from './kubernetes-base.js';
30
28
  import { getJdbcUrl, getR2dbcUrl } from '../spring-data-relational/support/index.js';
@@ -41,7 +39,7 @@ const { MAVEN } = buildToolTypes;
41
39
  export default class KubernetesGenerator extends BaseWorkspacesGenerator {
42
40
  async beforeQueue() {
43
41
  if (!this.fromBlueprint) {
44
- await this.composeWithBlueprints(GENERATOR_KUBERNETES);
42
+ await this.composeWithBlueprints();
45
43
  }
46
44
  }
47
45
  get initializing() {
@@ -88,9 +86,6 @@ export default class KubernetesGenerator extends BaseWorkspacesGenerator {
88
86
  }
89
87
  get configuring() {
90
88
  return {
91
- insight() {
92
- statistics.sendSubGenEvent('generator', GENERATOR_KUBERNETES);
93
- },
94
89
  generateJwtSecret,
95
90
  };
96
91
  }
@@ -17,7 +17,7 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import crypto from 'crypto';
20
- import * as _ from 'lodash-es';
20
+ import { defaults } from 'lodash-es';
21
21
  import { defaultKubernetesConfig } from './kubernetes-constants.js';
22
22
  import { loadFromYoRc } from '../base-workspaces/internal/docker-base.js';
23
23
  import { KUBERNETES_CORE_API_VERSION, KUBERNETES_BATCH_API_VERSION, KUBERNETES_DEPLOYMENT_API_VERSION, KUBERNETES_STATEFULSET_API_VERSION, KUBERNETES_INGRESS_API_VERSION, KUBERNETES_ISTIO_NETWORKING_API_VERSION, KUBERNETES_RBAC_API_VERSION, HELM_KAFKA, HELM_ELASTICSEARCH, HELM_PROMETHEUS, HELM_GRAFANA, HELM_MARIADB, HELM_MYSQL, HELM_POSTGRESQL, HELM_MONGODB_REPLICASET, HELM_COUCHBASE_OPERATOR, } from '../generator-constants.js';
@@ -54,7 +54,7 @@ export function loadConfig() {
54
54
  if (!this.jhipsterConfig.dbRandomPassword) {
55
55
  this.jhipsterConfig.dbRandomPassword = this.options.reproducibleTests ? 'SECRET-PASSWORD' : crypto.randomBytes(30).toString('hex');
56
56
  }
57
- const kubernetesWithDefaults = _.defaults({}, this.jhipsterConfig, defaultKubernetesConfig);
57
+ const kubernetesWithDefaults = defaults({}, this.jhipsterConfig, defaultKubernetesConfig);
58
58
  this.kubernetesNamespace = kubernetesWithDefaults.kubernetesNamespace;
59
59
  this.kubernetesServiceType = kubernetesWithDefaults.kubernetesServiceType;
60
60
  this.ingressType = kubernetesWithDefaults.ingressType;
@@ -66,7 +66,7 @@ export function loadConfig() {
66
66
  this.generatorType = kubernetesWithDefaults.generatorType;
67
67
  }
68
68
  export function saveConfig() {
69
- this.config.set(_.defaults({
69
+ this.config.set(defaults({
70
70
  appsFolders: this.appsFolders,
71
71
  directoryPath: this.directoryPath,
72
72
  clusteredDbApps: this.clusteredDbApps,
@@ -1855,22 +1855,6 @@ data:
1855
1855
  "topLevel": false,
1856
1856
  "builtIn": true,
1857
1857
  "authenticationExecutions": [
1858
- {
1859
- "authenticator": "basic-auth",
1860
- "authenticatorFlow": false,
1861
- "requirement": "REQUIRED",
1862
- "priority": 10,
1863
- "userSetupAllowed": false,
1864
- "autheticatorFlow": false
1865
- },
1866
- {
1867
- "authenticator": "basic-auth-otp",
1868
- "authenticatorFlow": false,
1869
- "requirement": "DISABLED",
1870
- "priority": 20,
1871
- "userSetupAllowed": false,
1872
- "autheticatorFlow": false
1873
- },
1874
1858
  {
1875
1859
  "authenticator": "auth-spnego",
1876
1860
  "authenticatorFlow": false,
@@ -2261,14 +2245,6 @@ data:
2261
2245
  "topLevel": true,
2262
2246
  "builtIn": true,
2263
2247
  "authenticationExecutions": [
2264
- {
2265
- "authenticator": "no-cookie-redirect",
2266
- "authenticatorFlow": false,
2267
- "requirement": "REQUIRED",
2268
- "priority": 10,
2269
- "userSetupAllowed": false,
2270
- "autheticatorFlow": false
2271
- },
2272
2248
  {
2273
2249
  "authenticatorFlow": true,
2274
2250
  "requirement": "REQUIRED",
@@ -2314,14 +2290,6 @@ data:
2314
2290
  "userSetupAllowed": false,
2315
2291
  "autheticatorFlow": false
2316
2292
  },
2317
- {
2318
- "authenticator": "registration-profile-action",
2319
- "authenticatorFlow": false,
2320
- "requirement": "REQUIRED",
2321
- "priority": 40,
2322
- "userSetupAllowed": false,
2323
- "autheticatorFlow": false
2324
- },
2325
2293
  {
2326
2294
  "authenticator": "registration-password-action",
2327
2295
  "authenticatorFlow": false,
@@ -22,10 +22,8 @@ import chalk from 'chalk';
22
22
  import BaseWorkspacesGenerator from '../base-workspaces/index.js';
23
23
  import prompts from '../kubernetes/prompts.js';
24
24
  import { writeFiles } from './files.js';
25
- import { GENERATOR_KUBERNETES_HELM } from '../generator-list.js';
26
25
  import { checkImages, generateJwtSecret, configureImageNames, loadFromYoRc } from '../base-workspaces/internal/docker-base.js';
27
26
  import { checkKubernetes, checkHelm, loadConfig, setupKubernetesConstants, setupHelmConstants, derivedKubernetesPlatformProperties, } from '../kubernetes/kubernetes-base.js';
28
- import statistics from '../statistics.js';
29
27
  import { messageBrokerTypes } from '../../jdl/jhipster/index.js';
30
28
  import { getJdbcUrl, getR2dbcUrl } from '../spring-data-relational/support/index.js';
31
29
  import { loadDeploymentConfig, loadDockerDependenciesTask } from '../base-workspaces/internal/index.js';
@@ -40,7 +38,7 @@ const { KAFKA } = messageBrokerTypes;
40
38
  export default class KubernetesHelmGenerator extends BaseWorkspacesGenerator {
41
39
  async beforeQueue() {
42
40
  if (!this.fromBlueprint) {
43
- await this.composeWithBlueprints(GENERATOR_KUBERNETES_HELM);
41
+ await this.composeWithBlueprints();
44
42
  }
45
43
  }
46
44
  get initializing() {
@@ -87,9 +85,6 @@ export default class KubernetesHelmGenerator extends BaseWorkspacesGenerator {
87
85
  }
88
86
  get configuring() {
89
87
  return {
90
- insight() {
91
- statistics.sendSubGenEvent('generator', GENERATOR_KUBERNETES_HELM);
92
- },
93
88
  generateJwtSecret,
94
89
  };
95
90
  }
@@ -22,10 +22,8 @@ import chalk from 'chalk';
22
22
  import BaseWorkspacesGenerator from '../base-workspaces/index.js';
23
23
  import prompts from './prompts.js';
24
24
  import { writeFiles } from './files.js';
25
- import { GENERATOR_KUBERNETES_KNATIVE } from '../generator-list.js';
26
25
  import { checkImages, generateJwtSecret, configureImageNames, loadFromYoRc } from '../base-workspaces/internal/docker-base.js';
27
26
  import { checkHelm, checkKubernetes, loadConfig, setupKubernetesConstants, setupHelmConstants, derivedKubernetesPlatformProperties, } from '../kubernetes/kubernetes-base.js';
28
- import statistics from '../statistics.js';
29
27
  import { kubernetesPlatformTypes, buildToolTypes, messageBrokerTypes } from '../../jdl/jhipster/index.js';
30
28
  import { getJdbcUrl } from '../spring-data-relational/support/index.js';
31
29
  import { loadDeploymentConfig, loadDockerDependenciesTask } from '../base-workspaces/internal/index.js';
@@ -43,7 +41,7 @@ const { K8S } = GeneratorTypes;
43
41
  export default class KubernetesKnativeGenerator extends BaseWorkspacesGenerator {
44
42
  async beforeQueue() {
45
43
  if (!this.fromBlueprint) {
46
- await this.composeWithBlueprints(GENERATOR_KUBERNETES_KNATIVE);
44
+ await this.composeWithBlueprints();
47
45
  }
48
46
  }
49
47
  get initializing() {
@@ -102,9 +100,6 @@ export default class KubernetesKnativeGenerator extends BaseWorkspacesGenerator
102
100
  }
103
101
  get configuring() {
104
102
  return {
105
- insight() {
106
- statistics.sendSubGenEvent('generator', GENERATOR_KUBERNETES_KNATIVE);
107
- },
108
103
  generateJwtSecret,
109
104
  };
110
105
  }
@@ -59,8 +59,9 @@ export const enumClientI18nFiles = {
59
59
  export function writeEntityFiles() {
60
60
  return {
61
61
  async writeEnumFiles({ entities, application }) {
62
- if (!application.enableTranslation || application.skipClient)
62
+ if (application.skipClient)
63
63
  return;
64
+ const languagesToApply = application.enableTranslation ? this.languagesToApply : [...new Set([application.nativeLanguage, 'en'])];
64
65
  entities = entities.filter(entity => !entity.skipClient && !entity.builtInUser);
65
66
  const { clientSrcDir, packageName, frontendAppName } = application;
66
67
  await Promise.all(entities
@@ -68,7 +69,7 @@ export function writeEntityFiles() {
68
69
  .map(field => {
69
70
  if (!field.fieldIsEnum)
70
71
  return undefined;
71
- return this.languagesToApply.map(lang => this.writeFiles({
72
+ return languagesToApply.map(lang => this.writeFiles({
72
73
  sections: enumClientI18nFiles,
73
74
  context: {
74
75
  ...getEnumInfo(field, entity.clientRootFolder),
@@ -24,7 +24,7 @@ export const clientI18nFiles = {
24
24
  from: context => `${CLIENT_MAIN_SRC_DIR}/i18n/${context.lang}/`,
25
25
  to: context => `${context.clientSrcDir}/i18n/${context.lang}/`,
26
26
  transform: false,
27
- templates: ['error.json', 'login.json', 'home.json', 'password.json', 'register.json', 'sessions.json', 'settings.json'],
27
+ templates: ['error.json', 'login.json', 'password.json', 'register.json', 'sessions.json', 'settings.json'],
28
28
  },
29
29
  {
30
30
  condition: ctx => ctx.clientFrameworkVue && ctx.enableTranslation && !ctx.microfrontend,
@@ -35,7 +35,7 @@ export const clientI18nFiles = {
35
35
  {
36
36
  from: context => `${CLIENT_MAIN_SRC_DIR}/i18n/${context.lang}/`,
37
37
  to: context => `${context.clientSrcDir}/i18n/${context.lang}/`,
38
- templates: ['activate.json', 'global.json', 'reset.json'],
38
+ templates: ['activate.json', 'global.json', 'home.json', 'reset.json'],
39
39
  },
40
40
  {
41
41
  condition: context => context.withAdminUi,
@@ -18,11 +18,9 @@
18
18
  */
19
19
  /* eslint-disable consistent-return */
20
20
  import chalk from 'chalk';
21
- import * as _ from 'lodash-es';
21
+ import { padEnd, startCase } from 'lodash-es';
22
22
  import BaseApplicationGenerator from '../base-application/index.js';
23
23
  import { askForLanguages, askI18n } from './prompts.js';
24
- import statistics from '../statistics.js';
25
- import { GENERATOR_LANGUAGES, GENERATOR_BOOTSTRAP_APPLICATION } from '../generator-list.js';
26
24
  import { clientI18nFiles } from './files.js';
27
25
  import { writeEntityFiles } from './entity-files.js';
28
26
  import TranslationData, { createTranslationsFileFilter, createTranslationsFilter } from './translation-data.js';
@@ -32,10 +30,8 @@ import { updateLanguagesTask as updateLanguagesInReact } from '../react/support/
32
30
  import { updateLanguagesTask as updateLanguagesInVue } from '../vue/support/index.js';
33
31
  import { updateLanguagesTask as updateLanguagesInJava } from '../server/support/index.js';
34
32
  import { SERVER_MAIN_RES_DIR, SERVER_TEST_RES_DIR } from '../generator-constants.js';
35
- import command from './command.js';
36
33
  import { QUEUES } from '../base-application/priorities.js';
37
34
  import { PRIORITY_NAMES } from '../base/priorities.js';
38
- const { startCase } = _;
39
35
  /**
40
36
  * This is the base class for a generator that generates entities.
41
37
  *
@@ -62,10 +58,10 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
62
58
  async beforeQueue() {
63
59
  this.supportedLanguages = supportedLanguages;
64
60
  if (!this.fromBlueprint) {
65
- this.composedBlueprints = await this.composeWithBlueprints('languages');
61
+ this.composedBlueprints = await this.composeWithBlueprints();
66
62
  }
67
63
  if (!this.delegateToBlueprint) {
68
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
64
+ await this.dependsOnBootstrapApplication();
69
65
  }
70
66
  if (!this.jhipsterConfigWithDefaults.skipClient &&
71
67
  this.jhipsterConfigWithDefaults.clientFramework !== 'no' &&
@@ -79,9 +75,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
79
75
  // Public API method used by the getter and also by Blueprints
80
76
  get initializing() {
81
77
  return this.asInitializingTaskGroup({
82
- parseCli() {
83
- this.parseJHipsterArguments(command.arguments);
84
- this.parseJHipsterOptions(command.options);
78
+ async parseCommand() {
79
+ await this.parseCurrentJHipsterCommand();
85
80
  },
86
81
  languagesToApply() {
87
82
  // Validate languages passed as argument.
@@ -99,7 +94,7 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
99
94
  if (unsupportedLanguage) {
100
95
  throw new Error(`Unsupported language "${unsupportedLanguage}" passed as argument to language generator.` +
101
96
  `\nSupported languages: ${this.supportedLanguages
102
- .map(language => `\n ${_.padEnd(language.languageTag, 5)} (${language.name})`)
97
+ .map(language => `\n ${padEnd(language.languageTag, 5)} (${language.name})`)
103
98
  .join('')}`);
104
99
  }
105
100
  }
@@ -226,9 +221,6 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
226
221
  this.env.sharedFs.on('change', listener);
227
222
  control.getWebappTranslation = (...args) => this.translationData.getClientTranslation(...args);
228
223
  },
229
- insight() {
230
- statistics.sendSubGenEvent('generator', GENERATOR_LANGUAGES);
231
- },
232
224
  });
233
225
  }
234
226
  get [BaseApplicationGenerator.DEFAULT]() {
@@ -282,7 +274,6 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
282
274
  },
283
275
  });
284
276
  }
285
- statistics.sendSubGenEvent('languages/language', language);
286
277
  }));
287
278
  },
288
279
  });
@@ -17,17 +17,19 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  const TRANSLATE_FUNCTION_ARGS = /\(\s*'(?<key>[^']+)'(?:,\s*(?<interpolate>\{(?:(?!\}\))[\s\S])*\}))?\)/gs.source;
20
+ export const escapeHtmlTranslationValue = (translation) => translation.replace(/'/g, '&apos;').replace(/"/g, '&quot;').replace(/@/g, '&#64;');
21
+ export const escapeTsTranslationValue = (translation) => translation.replace(/'/g, "\\'").replace(/\\/g, '\\\\');
20
22
  function getTranslationValue(getWebappTranslation, key, data) {
21
23
  return getWebappTranslation(key, data) || undefined;
22
24
  }
23
25
  export const replaceTranslationKeysWithText = (getWebappTranslation, body, regexp, { keyPattern, interpolatePattern, wrapTranslation, escapeHtml, stringify } = {}) => {
24
- const matches = body.matchAll(new RegExp(regexp, 'g'));
26
+ const matches = [...body.matchAll(new RegExp(regexp, 'g'))].reverse();
25
27
  if (typeof wrapTranslation === 'string') {
26
28
  wrapTranslation = [wrapTranslation, wrapTranslation];
27
29
  }
28
30
  for (const match of matches) {
29
31
  const target = match[0];
30
- let key = match?.groups?.key;
32
+ let key = match.groups?.key;
31
33
  if (!key && keyPattern) {
32
34
  const keyMatch = target.match(new RegExp(keyPattern));
33
35
  key = keyMatch?.groups?.key;
@@ -35,7 +37,7 @@ export const replaceTranslationKeysWithText = (getWebappTranslation, body, regex
35
37
  if (!key) {
36
38
  throw new Error(`Translation key not found for ${target}`);
37
39
  }
38
- let interpolate = match.groups && match.groups.interpolate;
40
+ let interpolate = match.groups?.interpolate;
39
41
  if (!interpolate && interpolatePattern) {
40
42
  const interpolateMatch = target.match(new RegExp(interpolatePattern));
41
43
  interpolate = interpolateMatch?.groups?.interpolate;
@@ -44,10 +46,7 @@ export const replaceTranslationKeysWithText = (getWebappTranslation, body, regex
44
46
  if (interpolate) {
45
47
  data = {};
46
48
  try {
47
- const interpolateValues = JSON.parse(interpolate);
48
- for (const [field, value] of Object.entries(interpolateValues)) {
49
- data[field] = value;
50
- }
49
+ data = JSON.parse(interpolate);
51
50
  }
52
51
  catch {
53
52
  throw new Error(`Translation interpolations values should be a JSON, ${interpolate}`);
@@ -63,12 +62,12 @@ export const replaceTranslationKeysWithText = (getWebappTranslation, body, regex
63
62
  }
64
63
  else if (escapeHtml) {
65
64
  // Escape specific chars
66
- replacement = replacement.replace(/'/g, '&apos;').replace(/"/g, '&quot;').replace(/@/g, '&#64;');
65
+ replacement = escapeHtmlTranslationValue(replacement);
67
66
  }
68
67
  else if (stringify) {
69
68
  replacement = JSON.stringify(replacement);
70
69
  }
71
- body = body.replace(target, replacement);
70
+ body = `${body.slice(0, match.index)}${replacement}${body.slice(match.index + target.length)}`;
72
71
  }
73
72
  return body;
74
73
  };
@@ -76,3 +75,29 @@ export const createJhiTransformTranslateReplacer = (getWebappTranslation, transl
76
75
  export const createJhiTransformTranslateStringifyReplacer = getWebappTranslation => (body) => replaceTranslationKeysWithText(getWebappTranslation, body, `__jhiTransformTranslateStringify__${TRANSLATE_FUNCTION_ARGS}`, {
77
76
  stringify: true,
78
77
  });
78
+ export const replaceTranslateContents = (body, filePath, regexp, converter) => {
79
+ const matches = [...body.matchAll(new RegExp(regexp, 'g'))].reverse();
80
+ for (const match of matches) {
81
+ const target = match[0];
82
+ const { key, interpolate, type, prefix = '', suffix = '' } = match.groups ?? {};
83
+ if (!type) {
84
+ throw new Error(`Translation type not found for ${target}`);
85
+ }
86
+ if (!key) {
87
+ throw new Error(`Translation key not found for ${target}`);
88
+ }
89
+ let parsedInterpolate;
90
+ if (interpolate) {
91
+ parsedInterpolate = {};
92
+ try {
93
+ parsedInterpolate = JSON.parse(interpolate);
94
+ }
95
+ catch {
96
+ throw new Error(`Translation interpolations values should be a JSON, ${interpolate}`);
97
+ }
98
+ }
99
+ body = `${body.slice(0, match.index)}${converter({ filePath, key, interpolate, parsedInterpolate, type, prefix, suffix })}${body.slice(match.index + target.length)}`;
100
+ }
101
+ return body;
102
+ };
103
+ export const createJhiTranslateReplacer = (converter, { prefixPattern = '', suffixPattern = '' } = {}) => (body, filePath) => replaceTranslateContents(body, filePath, `${prefixPattern ? `(?<prefix>(${prefixPattern}))?` : ''}__jhiTranslate(?<type>(\\w+))__${TRANSLATE_FUNCTION_ARGS}${suffixPattern ? `(?<suffix>(${suffixPattern}))?` : ''}`, converter);
@@ -0,0 +1,19 @@
1
+ {
2
+ "home": {
3
+ "title": "Mirëseerdhët në, <%- hipsterName %>!",
4
+ "subtitle": "Ky është kreu juaj",
5
+ "logged": {
6
+ "message": "Ju jeni futur si \"{{username}}\"."
7
+ },
8
+ "question": "Në qoftë se keni ndonjë pyetje rreth <%- hipsterProductName %>:",
9
+ "link": {
10
+ "homepage": "Kreu i <%- hipsterHomePageProductName %>",
11
+ "stackoverflow": "<%- hipsterStackOverflowProductName %> tek Stack Overflow",
12
+ "bugtracker": "<%- hipsterBugTrackerProductName %> bug tracker",
13
+ "chat": "<%- hipsterChatProductName %> dhoma e chatit publik",
14
+ "follow": "ndiq <%- hipsterTwitterUsername %> në Twitter"
15
+ },
16
+ "like": "Në qoftë se ju pëlqen <%- hipsterProductName %>, mos harroni të na jepni një yll në",
17
+ "github": "GitHub"
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "home": {
3
+ "title": "أهلا وسهلا بك، جافا هبستر!",
4
+ "subtitle": "هذه صفحتك الرئيسية",
5
+ "logged": {
6
+ "message": "قمت بتسجيل الدخول كمستخدم \"{{username}}\"."
7
+ },
8
+ "question": "إذا كان لديك أي سؤال حول <%- hipsterProductName %>:",
9
+ "link": {
10
+ "homepage": "<%- hipsterHomePageProductName %> homepage",
11
+ "stackoverflow": "<%- hipsterStackOverflowProductName %> on Stack Overflow",
12
+ "bugtracker": "<%- hipsterBugTrackerProductName %> bug tracker",
13
+ "chat": "<%- hipsterChatProductName %> public chat room",
14
+ "follow": "follow <%- hipsterTwitterUsername %> on Twitter"
15
+ },
16
+ "like": "إذا كنت تحب <%- hipsterProductName %>، لا تنسى أن تعطي لنا نجم على",
17
+ "github": "GitHub"
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "home": {
3
+ "title": "Salam, <%- hipsterName %>!",
4
+ "subtitle": "Bu Ana Səhifəniz",
5
+ "logged": {
6
+ "message": "\"{{username}}\" olaraq giriş etdiniz."
7
+ },
8
+ "question": "<%- hipsterProductName %> haqqında suallarınız üçün:",
9
+ "link": {
10
+ "homepage": "<%- hipsterHomePageProductName %> ana səhifə",
11
+ "stackoverflow": "Stack Overflowda <%- hipsterStackOverflowProductName %>",
12
+ "bugtracker": "<%- hipsterBugTrackerProductName %> xəta izləmə",
13
+ "chat": "<%- hipsterChatProductName %> ümumi söhbət otağı",
14
+ "follow": "Twitterdə <%- hipsterTwitterUsername %> adresindən əlaqə saxlaya bilərsiniz"
15
+ },
16
+ "like": "<%- hipsterProductName %>i bəyənsəniz ulduz verməyi unutmayın",
17
+ "github": "GitHub"
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "home": {
3
+ "title": "Добре дошли, <%- hipsterName %>!",
4
+ "subtitle": "Това е вашата начална страница",
5
+ "logged": {
6
+ "message": "Влезли сте като потребител \"{{username}}\"."
7
+ },
8
+ "question": "Ако имате някакви въпроси относно <%- hipsterProductName %>:",
9
+ "link": {
10
+ "homepage": "<%- hipsterHomePageProductName %> начална страница",
11
+ "stackoverflow": "<%- hipsterStackOverflowProductName %> в Stack Overflow",
12
+ "bugtracker": "<%- hipsterBugTrackerProductName %> проследяване на грешки",
13
+ "chat": "<%- hipsterChatProductName %> общодостъпна чат стая",
14
+ "follow": "последвайте <%- hipsterTwitterUsername %> в Twitter"
15
+ },
16
+ "like": "Ако харесвате <%- hipsterProductName %>, не забравяйте да ни дадете звезда в",
17
+ "github": "GitHub"
18
+ }
19
+ }