generator-jhipster 8.9.0 → 8.11.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 (312) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/cli.mjs +0 -13
  3. package/dist/cli/download.mjs +2 -3
  4. package/dist/cli/environment-builder.mjs +5 -3
  5. package/dist/generators/angular/generator.d.ts +10 -1
  6. package/dist/generators/angular/resources/package.json +27 -27
  7. package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
  8. package/dist/generators/angular/templates/eslint.config.js.jhi.angular.ejs +4 -6
  9. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +1 -1
  10. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +3 -3
  11. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +1 -1
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +6 -4
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +1 -1
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +1 -1
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +1 -1
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +1 -1
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +1 -1
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +1 -1
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +1 -1
  20. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +1 -1
  21. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +1 -1
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +1 -1
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +8 -13
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +1 -1
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +1 -1
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +3 -3
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +2 -2
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +1 -1
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -3
  31. package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -3
  32. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +1 -1
  33. package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +1 -1
  34. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.ts.ejs +1 -2
  35. package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.spec.ts.ejs +0 -1
  36. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +1 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +2 -2
  38. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +2 -2
  39. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +4 -5
  40. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +4 -4
  41. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -2
  42. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +4 -4
  43. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +2 -2
  44. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +7 -7
  45. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +4 -4
  46. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.html.ejs +4 -4
  47. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
  48. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +1 -1
  49. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +8 -6
  50. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +3 -3
  51. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +8 -8
  52. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +2 -2
  53. package/dist/generators/angular/templates/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +1 -1
  54. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs +3 -3
  55. package/dist/generators/app/generator.d.ts +4 -1
  56. package/dist/generators/base/api.d.ts +3 -1
  57. package/dist/generators/base/shared-data.js +1 -0
  58. package/dist/generators/base/support/contents.d.ts +10 -1
  59. package/dist/generators/base/support/contents.js +9 -0
  60. package/dist/generators/base/support/index.d.ts +1 -0
  61. package/dist/generators/base/support/index.js +1 -0
  62. package/dist/generators/base/support/needles.d.ts +14 -5
  63. package/dist/generators/base/support/needles.js +21 -17
  64. package/dist/generators/base/support/os.d.ts +1 -0
  65. package/dist/generators/base/support/os.js +20 -0
  66. package/dist/generators/base/support/write-files.d.ts +18 -0
  67. package/dist/generators/base/support/write-files.js +0 -26
  68. package/dist/generators/base-application/support/prepare-entity.js +14 -26
  69. package/dist/generators/base-application/support/update-application-entities-transform.js +3 -2
  70. package/dist/generators/base-application/types.d.ts +5 -0
  71. package/dist/generators/base-core/generator.js +7 -4
  72. package/dist/generators/bootstrap/generator.d.ts +6 -1
  73. package/dist/generators/bootstrap/generator.js +31 -2
  74. package/dist/generators/bootstrap/support/auto-crlf-transform.js +2 -2
  75. package/dist/generators/bootstrap/support/eslint-worker.js +5 -2
  76. package/dist/generators/bootstrap-application/generator.d.ts +4 -1
  77. package/dist/generators/bootstrap-application-base/generator.d.ts +12 -2
  78. package/dist/generators/bootstrap-application-base/generator.js +4 -3
  79. package/dist/generators/bootstrap-application-client/generator.d.ts +3 -1
  80. package/dist/generators/bootstrap-application-server/generator.d.ts +8 -1
  81. package/dist/generators/bootstrap-workspaces/generator.d.ts +9 -1
  82. package/dist/generators/ci-cd/generator.d.ts +6 -1
  83. package/dist/generators/client/generator.d.ts +13 -1
  84. package/dist/generators/client/generators/common/generator.d.ts +1 -1
  85. package/dist/generators/client/resources/package.json +5 -5
  86. package/dist/generators/client/templates/src/main/webapp/swagger-ui/index.html.ejs +8 -6
  87. package/dist/generators/common/generator.d.ts +8 -1
  88. package/dist/generators/common/resources/package.json +2 -2
  89. package/dist/generators/cucumber/generator.d.ts +2 -1
  90. package/dist/generators/cypress/generator.d.ts +7 -1
  91. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs +11 -3
  92. package/dist/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +4 -4
  93. package/dist/generators/docker/generator.d.ts +4 -1
  94. package/dist/generators/docker-compose/generator.d.ts +23 -1
  95. package/dist/generators/entities/generator.d.ts +4 -1
  96. package/dist/generators/entity/generator.d.ts +5 -1
  97. package/dist/generators/export-jdl/generator.d.ts +3 -1
  98. package/dist/generators/feign-client/generator.d.ts +2 -1
  99. package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +1 -1
  100. package/dist/generators/gatling/generator.d.ts +3 -1
  101. package/dist/generators/generate-blueprint/constants.d.ts +1 -1
  102. package/dist/generators/generate-blueprint/constants.js +1 -1
  103. package/dist/generators/generate-blueprint/files.js +2 -2
  104. package/dist/generators/generate-blueprint/generator.d.ts +10 -1
  105. package/dist/generators/generate-blueprint/generator.js +16 -16
  106. package/dist/generators/generate-blueprint/resources/package.json +3 -3
  107. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +1 -1
  108. package/dist/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +1 -0
  109. package/dist/generators/generator-constants.d.ts +1 -1
  110. package/dist/generators/generator-constants.js +2 -2
  111. package/dist/generators/git/generator.d.ts +5 -1
  112. package/dist/generators/gradle/generator.d.ts +5 -1
  113. package/dist/generators/gradle/generators/code-quality/generator.d.ts +2 -1
  114. package/dist/generators/gradle/generators/jib/generator.d.ts +2 -1
  115. package/dist/generators/gradle/generators/node-gradle/generator.d.ts +2 -1
  116. package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
  117. package/dist/generators/heroku/generator.d.ts +6 -1
  118. package/dist/generators/info/generator.d.ts +1 -1
  119. package/dist/generators/init/generator.d.ts +2 -1
  120. package/dist/generators/init/resources/.node-version +1 -1
  121. package/dist/generators/java/generators/bootstrap/generator.d.ts +8 -2
  122. package/dist/generators/java/generators/bootstrap/generator.js +17 -3
  123. package/dist/generators/java/generators/build-tool/generator.d.ts +2 -1
  124. package/dist/generators/java/generators/code-quality/generator.d.ts +2 -1
  125. package/dist/generators/java/generators/domain/generator.d.ts +6 -1
  126. package/dist/generators/java/generators/graalvm/generator.d.ts +6 -1
  127. package/dist/generators/java/generators/graalvm/internal/constants.d.ts +1 -1
  128. package/dist/generators/java/generators/graalvm/internal/constants.js +2 -2
  129. package/dist/generators/java/generators/graalvm/resources/gradle/libs.versions.toml +1 -1
  130. package/dist/generators/java/generators/jib/generator.d.ts +2 -1
  131. package/dist/generators/java/generators/node/generator.d.ts +4 -1
  132. package/dist/generators/java/generators/node/generator.js +2 -1
  133. package/dist/generators/java/generators/openapi-generator/generator.d.ts +2 -1
  134. package/dist/generators/java/generators/server/generator.d.ts +1 -1
  135. package/dist/generators/java/support/index.d.ts +2 -0
  136. package/dist/generators/java/support/index.js +2 -0
  137. package/dist/generators/java/support/java-enum.d.ts +8 -0
  138. package/dist/generators/java/support/java-enum.js +20 -0
  139. package/dist/generators/java/support/java-file-edit.d.ts +18 -0
  140. package/dist/generators/java/support/java-file-edit.js +94 -0
  141. package/dist/generators/java/types.d.ts +37 -1
  142. package/dist/generators/javascript/generators/bootstrap/generator.d.ts +4 -1
  143. package/dist/generators/javascript/generators/eslint/generator.d.ts +4 -1
  144. package/dist/generators/javascript/generators/eslint/templates/eslint.config.js.jhi.ejs +8 -0
  145. package/dist/generators/javascript/generators/husky/generator.d.ts +3 -1
  146. package/dist/generators/javascript/generators/prettier/generator.d.ts +4 -1
  147. package/dist/generators/javascript/resources/package.json +3 -3
  148. package/dist/generators/jdl/generator.d.ts +3 -1
  149. package/dist/generators/kubernetes/generator.d.ts +25 -19
  150. package/dist/generators/kubernetes-helm/generator.d.ts +18 -12
  151. package/dist/generators/kubernetes-knative/generator.d.ts +14 -8
  152. package/dist/generators/languages/generator.d.ts +9 -1
  153. package/dist/generators/languages/support/languages.js +1 -0
  154. package/dist/generators/languages/templates/entity/i18n/entity_he.json.ejs +78 -0
  155. package/dist/generators/languages/templates/src/main/resources/i18n/messages_he.properties.ejs +41 -0
  156. package/dist/generators/languages/templates/src/main/webapp/i18n/he/activate.json.ejs +27 -0
  157. package/dist/generators/languages/templates/src/main/webapp/i18n/he/configuration.json +11 -0
  158. package/dist/generators/languages/templates/src/main/webapp/i18n/he/error.json +15 -0
  159. package/dist/generators/languages/templates/src/main/webapp/i18n/he/gateway.json +16 -0
  160. package/dist/generators/languages/templates/src/main/webapp/i18n/he/global.json.ejs +172 -0
  161. package/dist/generators/languages/templates/src/main/webapp/i18n/he/health.json.ejs +75 -0
  162. package/dist/generators/languages/templates/src/main/webapp/i18n/he/home.json.ejs +20 -0
  163. package/dist/generators/languages/templates/src/main/webapp/i18n/he/login.json +20 -0
  164. package/dist/generators/languages/templates/src/main/webapp/i18n/he/logs.json +12 -0
  165. package/dist/generators/languages/templates/src/main/webapp/i18n/he/metrics.json +103 -0
  166. package/dist/generators/languages/templates/src/main/webapp/i18n/he/password.json +13 -0
  167. package/dist/generators/languages/templates/src/main/webapp/i18n/he/register.json +25 -0
  168. package/dist/generators/languages/templates/src/main/webapp/i18n/he/reset.json.ejs +45 -0
  169. package/dist/generators/languages/templates/src/main/webapp/i18n/he/sessions.json +16 -0
  170. package/dist/generators/languages/templates/src/main/webapp/i18n/he/settings.json +33 -0
  171. package/dist/generators/languages/templates/src/main/webapp/i18n/he/tracker.json +13 -0
  172. package/dist/generators/languages/templates/src/main/webapp/i18n/he/user-management.json +32 -0
  173. package/dist/generators/languages/templates/src/test/resources/i18n/messages_he.properties.ejs +4 -0
  174. package/dist/generators/liquibase/generator.d.ts +9 -1
  175. package/dist/generators/liquibase/generator.js +3 -19
  176. package/dist/generators/maven/generator.d.ts +6 -1
  177. package/dist/generators/maven/generators/code-quality/generator.d.ts +1 -1
  178. package/dist/generators/maven/generators/frontend-plugin/generator.d.ts +1 -1
  179. package/dist/generators/maven/generators/jib/generator.d.ts +1 -1
  180. package/dist/generators/project-name/generator.d.ts +3 -1
  181. package/dist/generators/react/generator.d.ts +15 -1
  182. package/dist/generators/react/resources/package.json +34 -34
  183. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-delete-dialog.tsx.ejs +2 -1
  184. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +4 -4
  185. package/dist/generators/react/templates/src/main/webapp/app/entities/menu.tsx.ejs +2 -2
  186. package/dist/generators/react/templates/src/main/webapp/app/entities/routes.tsx.ejs +1 -1
  187. package/dist/generators/react/templates/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +0 -6
  188. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/application-profile.spec.ts.ejs +0 -6
  189. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +0 -47
  190. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
  191. package/dist/generators/react/templates/src/main/webapp/app/shared/util/entity-utils.ts.ejs +1 -1
  192. package/dist/generators/server/generator.d.ts +7 -1
  193. package/dist/generators/server/resources/Dockerfile +17 -17
  194. package/dist/generators/server/resources/gradle/libs.versions.toml +15 -15
  195. package/dist/generators/server/resources/pom.xml +16 -16
  196. package/dist/generators/server/types.d.ts +22 -0
  197. package/dist/generators/spring-boot/generator.d.ts +14 -2
  198. package/dist/generators/spring-boot/generator.js +35 -4
  199. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +158 -148
  200. package/dist/generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs +11 -0
  201. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +12 -23
  202. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -1
  203. package/dist/generators/spring-boot/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +61 -5
  204. package/dist/generators/spring-boot/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +29 -1
  205. package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +7 -6
  206. package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +8 -6
  207. package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +8 -6
  208. package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +17 -11
  209. package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs +8 -3
  210. package/dist/generators/spring-boot/templates/src/main/resources/config/application.yml.ejs +3 -0
  211. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +3 -3
  212. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +4 -4
  213. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +4 -4
  214. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +3 -3
  215. package/dist/generators/spring-boot/templates/src/test/java/_package_/config/JHipsterBlockHoundIntegration.java.ejs +0 -2
  216. package/dist/generators/spring-boot/templates/src/test/java/_package_/config/WebConfigurerTest.java.ejs +1 -1
  217. package/dist/generators/spring-boot/templates/src/test/java/_package_/management/SecurityMetersServiceTests.java.ejs +1 -1
  218. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +2 -2
  219. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs +35 -11
  220. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs +35 -6
  221. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs +3 -2
  222. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TestAuthenticationResource.java.ejs +5 -5
  223. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationIT.java.ejs +2 -2
  224. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.java.ejs +1 -4
  225. package/dist/generators/spring-boot/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
  226. package/dist/generators/spring-boot/templates/src/test/java/_package_/service/MailServiceIT.java.ejs +1 -1
  227. package/dist/generators/spring-boot/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +1 -1
  228. package/dist/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs +1 -1
  229. package/dist/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_reactive.java.ejs +1 -2
  230. package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +9 -15
  231. package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +8 -17
  232. package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_skipUserManagement.java.ejs +6 -15
  233. package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/LogoutResourceIT.java.ejs +1 -1
  234. package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -1
  235. package/dist/generators/spring-cache/cleanup.d.ts +2 -20
  236. package/dist/generators/spring-cache/cleanup.js +24 -2
  237. package/dist/generators/spring-cache/files.js +0 -6
  238. package/dist/generators/spring-cache/generator.d.ts +5 -1
  239. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  240. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +0 -14
  241. package/dist/generators/spring-cloud/generators/gateway/generator.d.ts +5 -1
  242. package/dist/generators/spring-cloud-stream/generator.d.ts +2 -1
  243. package/dist/generators/spring-cloud-stream/generators/kafka/generator.d.ts +2 -1
  244. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +1 -1
  245. package/dist/generators/spring-cloud-stream/generators/pulsar/generator.d.ts +2 -1
  246. package/dist/generators/spring-data-cassandra/generator.d.ts +4 -1
  247. package/dist/generators/spring-data-couchbase/generator.d.ts +9 -1
  248. package/dist/generators/spring-data-elasticsearch/generator.d.ts +10 -1
  249. package/dist/generators/spring-data-mongodb/generator.d.ts +9 -1
  250. package/dist/generators/spring-data-neo4j/generator.d.ts +11 -1
  251. package/dist/generators/spring-data-relational/generator.d.ts +11 -1
  252. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/timezone/HibernateTimeZoneIT.java.ejs +2 -2
  253. package/dist/generators/spring-websocket/generator.d.ts +2 -1
  254. package/dist/generators/upgrade/generator.d.ts +3 -1
  255. package/dist/generators/vue/cleanup.js +7 -1
  256. package/dist/generators/vue/files-vue.js +3 -8
  257. package/dist/generators/vue/generator.d.ts +9 -1
  258. package/dist/generators/vue/resources/package.json +31 -31
  259. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +9 -9
  260. package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +21 -7
  261. package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +23 -9
  262. package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.service.ts.ejs +1 -1
  263. package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.vue.ejs +1 -1
  264. package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
  265. package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.spec.ts.ejs +22 -10
  266. package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +24 -5
  267. package/dist/generators/vue/templates/src/main/webapp/app/account/login-modal.ts.ejs +38 -0
  268. package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.spec.ts.ejs +0 -4
  269. package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.ts.ejs +3 -25
  270. package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +24 -8
  271. package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.ts.ejs +23 -9
  272. package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.service.ts.ejs +1 -1
  273. package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
  274. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.spec.ts.ejs +20 -4
  275. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.ts.ejs +23 -13
  276. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
  277. package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
  278. package/dist/generators/vue/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +2 -2
  279. package/dist/generators/vue/templates/src/main/webapp/app/admin/gateway/gateway.service.ts.ejs +1 -1
  280. package/dist/generators/vue/templates/src/main/webapp/app/admin/health/health.service.ts.ejs +10 -10
  281. package/dist/generators/vue/templates/src/main/webapp/app/admin/logs/logs.service.ts.ejs +2 -2
  282. package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics-modal.vue.ejs +2 -2
  283. package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +2 -2
  284. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -5
  285. package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management.service.ts.ejs +6 -6
  286. package/dist/generators/vue/templates/src/main/webapp/app/app.component.ts.ejs +29 -7
  287. package/dist/generators/vue/templates/src/main/webapp/app/app.vue.ejs +19 -1
  288. package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.spec.ts.ejs +66 -51
  289. package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.ts.ejs +30 -8
  290. package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.spec.ts.ejs +41 -11
  291. package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.ts.ejs +10 -11
  292. package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +2 -2
  293. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +43 -16
  294. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +14 -9
  295. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +1 -1
  296. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +7 -7
  297. package/dist/generators/vue/templates/src/main/webapp/app/entities/user/user.service.ts.ejs +1 -1
  298. package/dist/generators/vue/templates/src/main/webapp/app/locale/translation.service.ts.ejs +5 -5
  299. package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +18 -14
  300. package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.ts.ejs +4 -4
  301. package/dist/generators/workspaces/generator.d.ts +7 -1
  302. package/dist/generators/workspaces/support/applications-lookup.js +2 -2
  303. package/dist/lib/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +1 -1
  304. package/dist/lib/jdl/core/built-in-options/binary-options.d.ts +12 -1
  305. package/dist/lib/testing/apply-patch-to-template.d.ts +13 -0
  306. package/dist/lib/testing/apply-patch-to-template.js +90 -0
  307. package/dist/lib/testing/github.js +6 -3
  308. package/dist/lib/testing/helpers.d.ts +1 -0
  309. package/dist/lib/testing/helpers.js +15 -0
  310. package/dist/lib/utils/yo-rc.d.ts +3 -219
  311. package/package.json +36 -37
  312. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +0 -49
@@ -2,7 +2,12 @@ import { computed, <% if (applicationTypeGateway && microfrontend) { %>defineAsy
2
2
  <%_ if (enableTranslation) { _%>
3
3
  import { useI18n } from 'vue-i18n';
4
4
  <%_ } _%>
5
+ <%_ if (authenticationUsesCsrf) { _%>
5
6
  import type LoginService from '@/account/login.service';
7
+ <%_ } %>
8
+ <%_ if (generateUserManagement) { %>
9
+ import { useLoginModal } from '@/account/login-modal';
10
+ <%_ } _%>
6
11
  import type AccountService from '@/account/account.service';
7
12
  <%_ if (enableTranslation) { _%>
8
13
  import languages from '@/shared/config/languages';
@@ -30,7 +35,15 @@ export default defineComponent({
30
35
  <%_ } _%>
31
36
  },
32
37
  setup() {
38
+ <%_ if (authenticationUsesCsrf) { _%>
33
39
  const loginService = inject<LoginService>('loginService');
40
+ <%_ if (authenticationTypeOauth2) { _%>
41
+ const { login } = loginService;
42
+ <%_ } %>
43
+ <%_ } %>
44
+ <%_ if (generateUserManagement) { %>
45
+ const { showLogin } = useLoginModal();
46
+ <%_ } _%>
34
47
  const accountService = inject<AccountService>('accountService');
35
48
  const currentLanguage = inject('currentLanguage', () => computed(() => navigator.language ?? '<%- nativeLanguage %>'), true);
36
49
  <%_ if (enableTranslation) { _%>
@@ -51,14 +64,6 @@ export default defineComponent({
51
64
  const inProduction = computed(() => store.activeProfiles.indexOf('prod') > -1);
52
65
  const authenticated = computed(() => store.authenticated);
53
66
 
54
- const openLogin = () => {
55
- <%_ if (!authenticationTypeOauth2) { _%>
56
- loginService.openLogin();
57
- <%_ } else { %>
58
- loginService.login();
59
- <%_ } _%>
60
- };
61
-
62
67
  const subIsActive = (input: string | string[]) => {
63
68
  const paths = Array.isArray(input) ? input : [input];
64
69
  return paths.some(path => {
@@ -95,7 +100,7 @@ export default defineComponent({
95
100
  logout,
96
101
  subIsActive,
97
102
  accountService,
98
- openLogin,
103
+ <% if (authenticationTypeOauth2) { %>login<% } else { %>showLogin<% } %>,
99
104
  <%_ if (enableTranslation) { _%>
100
105
  changeLanguage,
101
106
  languages: languages(),
@@ -152,7 +152,7 @@
152
152
  <font-awesome-icon icon="sign-out-alt" />
153
153
  <span v-text="t$('global.menu.account.logout')">Sign out</span>
154
154
  </b-dropdown-item>
155
- <b-dropdown-item data-cy="login" v-if="!authenticated" @click="openLogin()" id="login" active-class="active">
155
+ <b-dropdown-item data-cy="login" v-if="!authenticated" @click="showLogin()" id="login" active-class="active">
156
156
  <font-awesome-icon icon="sign-in-alt" />
157
157
  <span v-text="t$('global.menu.account.login')">Sign in</span>
158
158
  </b-dropdown-item>
@@ -11,7 +11,7 @@ const baseSearchApiUrl = '<%= entityApi %>api/<%= entityApiUrl %>/_search?query=
11
11
 
12
12
  export default class <%= entityAngularName %>Service {
13
13
  <%_ if (searchEngineAny) { _%>
14
- public search(query<% if (!paginationNo) { %>, paginationQuery<% } %>) : Promise<any> {
14
+ search(query<% if (!paginationNo) { %>, paginationQuery<% } %>) : Promise<any> {
15
15
  return new Promise<any>((resolve, reject) => {
16
16
  axios.get(`${baseSearchApiUrl}${query}<% if (!paginationNo) { %>&${buildPaginationQueryOpts(paginationQuery)}<% } %>`).then(res => {
17
17
  resolve(<% if (!paginationNo) { %>res<% } else { %>res.data<% } %>);
@@ -20,7 +20,7 @@ export default class <%= entityAngularName %>Service {
20
20
  }
21
21
  <%_ } _%>
22
22
 
23
- public find(<%= primaryKey.name %>: <%- primaryKey.tsType %>) : Promise<I<%= entityAngularName %>> {
23
+ find(<%= primaryKey.name %>: <%- primaryKey.tsType %>) : Promise<I<%= entityAngularName %>> {
24
24
  return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
25
25
  axios.get(`${baseApiUrl}/${<%= primaryKey.name %>}`).then(res => {
26
26
  resolve(res.data);
@@ -28,7 +28,7 @@ export default class <%= entityAngularName %>Service {
28
28
  });
29
29
  }
30
30
 
31
- public retrieve(<% if (!paginationNo) { %>paginationQuery?: any<% } %>) : Promise<any> {
31
+ retrieve(<% if (!paginationNo) { %>paginationQuery?: any<% } %>) : Promise<any> {
32
32
  return new Promise<any>((resolve, reject) => {
33
33
  axios.get(baseApiUrl<% if (!paginationNo) { %> + `?${buildPaginationQueryOpts(paginationQuery)}` <% } %>).then(res => {
34
34
  resolve(res);
@@ -37,7 +37,7 @@ export default class <%= entityAngularName %>Service {
37
37
  }
38
38
  <%_ if (!readOnly) { _%>
39
39
 
40
- public delete(<%= primaryKey.name %>: <%- primaryKey.tsType %>) : Promise<any> {
40
+ delete(<%= primaryKey.name %>: <%- primaryKey.tsType %>) : Promise<any> {
41
41
  return new Promise<any>((resolve, reject) => {
42
42
  axios.delete(`${baseApiUrl}/${<%= primaryKey.name %>}`).then(res => {
43
43
  resolve(res);
@@ -45,7 +45,7 @@ export default class <%= entityAngularName %>Service {
45
45
  });
46
46
  }
47
47
 
48
- public create(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
48
+ create(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
49
49
  return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
50
50
  axios.post(`${baseApiUrl}`, entity).then(res => {
51
51
  resolve(res.data);
@@ -53,7 +53,7 @@ export default class <%= entityAngularName %>Service {
53
53
  });
54
54
  }
55
55
 
56
- public update(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
56
+ update(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
57
57
  return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
58
58
  axios.put(`${baseApiUrl}/${entity.<%= primaryKey.name %>}`, entity).then(res => {
59
59
  resolve(res.data);
@@ -61,7 +61,7 @@ export default class <%= entityAngularName %>Service {
61
61
  });
62
62
  }
63
63
 
64
- public partialUpdate(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
64
+ partialUpdate(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
65
65
  return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
66
66
  axios.patch(`${baseApiUrl}/${entity.<%= primaryKey.name %>}`, entity).then(res => {
67
67
  resolve(res.data);
@@ -3,7 +3,7 @@ import axios from 'axios';
3
3
  const baseApiUrl = 'api/users';
4
4
 
5
5
  export default class UserService {
6
- public retrieve(): Promise<any> {
6
+ retrieve(): Promise<any> {
7
7
  return new Promise<any>((resolve, reject) => {
8
8
  axios
9
9
  .get(baseApiUrl)
@@ -12,7 +12,7 @@ export default class TranslationService {
12
12
  }
13
13
  <%_ if (microfrontend) { _%>
14
14
 
15
- public loadTranslations({ currentLanguage, urlPrefix, hash }: { currentLanguage: string; urlPrefix: string; hash: string }) {
15
+ loadTranslations({ currentLanguage, urlPrefix, hash }: { currentLanguage: string; urlPrefix: string; hash: string }) {
16
16
  if (!this.i18n) return;
17
17
  axios.get(`${urlPrefix}i18n/${currentLanguage}.json?_=${hash}`).then((res: any) => {
18
18
  if (res.data) {
@@ -22,7 +22,7 @@ export default class TranslationService {
22
22
  }
23
23
  <%_ } _%>
24
24
 
25
- public async refreshTranslation(newLanguage: string) {
25
+ async refreshTranslation(newLanguage: string) {
26
26
  if (this.i18n && !this.i18n.messages[newLanguage]) {
27
27
  <%_ if (microfrontend) { _%>
28
28
  const res = await axios.get(`i18n/${newLanguage}.json?_=${I18N_HASH}`);
@@ -34,7 +34,7 @@ export default class TranslationService {
34
34
  }
35
35
  }
36
36
 
37
- public setLocale(lang: string) {
37
+ setLocale(lang: string) {
38
38
  dayjs.locale(lang);
39
39
  this.i18n.locale.value = lang;
40
40
  axios.defaults.headers.common['Accept-Language'] = lang;
@@ -54,11 +54,11 @@ export default class TranslationService {
54
54
  }
55
55
  <%_ } _%>
56
56
 
57
- public isLanguageSupported(lang: string) {
57
+ isLanguageSupported(lang: string) {
58
58
  return Boolean(this.languages[lang]);
59
59
  }
60
60
 
61
- public getLocalStoreLanguage(): string | null {
61
+ getLocalStoreLanguage(): string | null {
62
62
  return localStorage.getItem('currentLanguage');
63
63
  }
64
64
  }
@@ -11,12 +11,17 @@ import { setupAxiosInterceptors } from '@/shared/config/axios-interceptor';
11
11
 
12
12
  import App from './app.vue';
13
13
  import router<% if (applicationTypeGateway && microfrontend) { %>, { lazyRoutes }<% } %> from './router';
14
- import { initFortAwesome<% if (enableTranslation) { %>, initI18N<% } %> } from './shared/config/config';
15
- import { initBootstrapVue } from './shared/config/config-bootstrap-vue';
16
- import JhiItemCountComponent from './shared/jhi-item-count.vue';
17
- import JhiSortIndicatorComponent from './shared/sort/jhi-sort-indicator.vue';
18
- import LoginService from './account/login.service';
19
- import AccountService from './account/account.service';
14
+ import { initFortAwesome<% if (enableTranslation) { %>, initI18N<% } %> } from '@/shared/config/config';
15
+ import { initBootstrapVue } from '@/shared/config/config-bootstrap-vue';
16
+ import JhiItemCountComponent from '@/shared/jhi-item-count.vue';
17
+ import JhiSortIndicatorComponent from '@/shared/sort/jhi-sort-indicator.vue';
18
+ <%_ if (authenticationUsesCsrf) { _%>
19
+ import LoginService from '@/account/login.service';
20
+ <%_ } _%>
21
+ <%_ if (generateUserManagement) { _%>
22
+ import { useLoginModal } from '@/account/login-modal';
23
+ <%_ } _%>
24
+ import AccountService from '@/account/account.service';
20
25
 
21
26
  import '../content/scss/global.scss';
22
27
  import '../content/scss/vendor.scss';
@@ -85,14 +90,12 @@ const i18n = initI18N();
85
90
  const app = createApp({
86
91
  compatConfig: { MODE: 3 },
87
92
  components: { App },
88
- template: '<App/>',
89
- <%_ if (!authenticationTypeOauth2) { _%>
90
- setup(_props, { emit }) {
91
- const loginService = new LoginService({ emit });
92
- provide('loginService', loginService);
93
- <%_ } else { _%>
94
93
  setup() {
94
+ <%_ if (authenticationUsesCsrf) { _%>
95
95
  provide('loginService', new LoginService());
96
+ <%_ } _%>
97
+ <%_ if (generateUserManagement) { _%>
98
+ const { hideLogin, showLogin } = useLoginModal();
96
99
  <%_ } _%>
97
100
  const store = useStore();
98
101
  const accountService = new AccountService(store);
@@ -143,7 +146,7 @@ const app = createApp({
143
146
  router.beforeResolve(async (to, from, next) => {
144
147
  <%_ if (!authenticationTypeOauth2) { _%>
145
148
  // Make sure login modal is closed
146
- loginService.hideLogin();
149
+ hideLogin();
147
150
 
148
151
  <%_ } _%>
149
152
  if (!store.authenticated) {
@@ -173,7 +176,7 @@ const app = createApp({
173
176
  <%_ if (authenticationTypeOauth2) { _%>
174
177
  window.location.reload();
175
178
  <%_ } else { _%>
176
- loginService.openLogin();
179
+ showLogin();
177
180
  <%_ } _%>
178
181
  return;
179
182
  }
@@ -205,6 +208,7 @@ const app = createApp({
205
208
  provide('microfrontendI18n', false);
206
209
  <%_ } _%>
207
210
  },
211
+ template: '<App/>',
208
212
  });
209
213
 
210
214
  initFortAwesome(app);
@@ -43,7 +43,7 @@ export default class AlertService {
43
43
  <%_ } _%>
44
44
  }
45
45
 
46
- public showInfo(toastMessage: string, toastOptions?: any) {
46
+ showInfo(toastMessage: string, toastOptions?: any) {
47
47
  this.bvToast.toast(toastMessage, {
48
48
  toaster: 'b-toaster-top-center',
49
49
  title: 'Info',
@@ -54,7 +54,7 @@ export default class AlertService {
54
54
  });
55
55
  }
56
56
 
57
- public showSuccess(toastMessage: string) {
57
+ showSuccess(toastMessage: string) {
58
58
  this.bvToast.toast(toastMessage, {
59
59
  toaster: 'b-toaster-top-center',
60
60
  title: 'Success',
@@ -64,7 +64,7 @@ export default class AlertService {
64
64
  });
65
65
  }
66
66
 
67
- public showError(toastMessage: string) {
67
+ showError(toastMessage: string) {
68
68
  this.bvToast.toast(toastMessage, {
69
69
  toaster: 'b-toaster-top-center',
70
70
  title: 'Error',
@@ -74,7 +74,7 @@ export default class AlertService {
74
74
  });
75
75
  }
76
76
 
77
- public showHttpError(httpErrorResponse: any) {
77
+ showHttpError(httpErrorResponse: any) {
78
78
  let errorMessage: string | null = null;
79
79
  switch (httpErrorResponse.status) {
80
80
  case 0:
@@ -18,7 +18,13 @@
18
18
  */
19
19
  import BaseWorkspacesGenerator from '../base-workspaces/index.js';
20
20
  export default class WorkspacesGenerator extends BaseWorkspacesGenerator {
21
- [x: string]: any;
21
+ [BaseWorkspacesGenerator.INITIALIZING]: any;
22
+ [BaseWorkspacesGenerator.CONFIGURING]: any;
23
+ [BaseWorkspacesGenerator.COMPOSING]: any;
24
+ [BaseWorkspacesGenerator.LOADING]: any;
25
+ [BaseWorkspacesGenerator.LOADING_WORKSPACES]: any;
26
+ [BaseWorkspacesGenerator.WRITING]: any;
27
+ [BaseWorkspacesGenerator.POST_WRITING]: any;
22
28
  workspaces: boolean;
23
29
  generateApplications: () => Promise<undefined>;
24
30
  generateWith: string;
@@ -18,14 +18,14 @@
18
18
  */
19
19
  import { readFile } from 'node:fs/promises';
20
20
  import { dirname } from 'node:path';
21
- import { globby } from 'globby';
21
+ import { glob } from 'tinyglobby';
22
22
  const isApplication = async (cwd) => {
23
23
  const content = await readFile(cwd, { encoding: 'utf-8' });
24
24
  const jsonContent = JSON.parse(content);
25
25
  return Boolean(jsonContent?.['generator-jhipster']?.baseName);
26
26
  };
27
27
  export const applicationsLookup = async (cwd) => {
28
- const yoRcFiles = await globby('**/.yo-rc.json', { cwd });
28
+ const yoRcFiles = await glob('**/.yo-rc.json', { cwd });
29
29
  const result = await Promise.all(yoRcFiles.map(async (file) => ({ file, isApp: await isApplication(file) })));
30
30
  return result.filter(({ isApp }) => isApp).map(({ file }) => dirname(file));
31
31
  };
@@ -128,7 +128,7 @@ function convertAnnotationsToOptions(annotations) {
128
128
  const result = {};
129
129
  annotations.forEach(annotation => {
130
130
  const annotationName = lowerFirst(annotation.optionName);
131
- const value = annotation.optionValue ? annotation.optionValue : true;
131
+ const value = annotation.optionValue ?? true;
132
132
  if (annotationName in result) {
133
133
  const previousValue = result[annotationName];
134
134
  if (Array.isArray(previousValue)) {
@@ -1,3 +1,12 @@
1
+ declare const Options: {
2
+ DTO: string;
3
+ SERVICE: string;
4
+ PAGINATION: string;
5
+ MICROSERVICE: string;
6
+ SEARCH: string;
7
+ ANGULAR_SUFFIX: string;
8
+ CLIENT_ROOT_FOLDER: string;
9
+ };
1
10
  declare function getOptionName(optionValue: any): string | undefined;
2
11
  declare function forEach(passedFunction: any): void;
3
12
  declare function exists(passedOption: any, passedValue?: any): boolean;
@@ -12,7 +21,9 @@ declare const _default: {
12
21
  CLIENT_ROOT_FOLDER: string;
13
22
  };
14
23
  DefaultValues: {
15
- [x: string]: any;
24
+ [Options.DTO]: any;
25
+ [Options.SERVICE]: any;
26
+ [Options.PAGINATION]: any;
16
27
  };
17
28
  OptionValues: {
18
29
  mapstruct: string;
@@ -0,0 +1,13 @@
1
+ type ApplyOptions = {
2
+ templateFile: string;
3
+ oldFileContents: string;
4
+ newFileContents: string;
5
+ contextSize?: number;
6
+ fuzzFactor?: number;
7
+ };
8
+ export declare const applyChangesToFile: ({ templateFile, oldFileContents, newFileContents, contextSize, fuzzFactor }: ApplyOptions) => {
9
+ success: number;
10
+ failures: number;
11
+ };
12
+ export declare const applyChangesToFileOrCopy: ({ templateFile, oldFileContents, ...opts }: ApplyOptions) => void;
13
+ export {};
@@ -0,0 +1,90 @@
1
+ import { readFileSync, writeFileSync } from 'fs';
2
+ import { applyPatch, structuredPatch } from 'diff';
3
+ const splitHunk = ({ lines, ...hunk }, contextSize) => {
4
+ let contextLines = [];
5
+ // let nextHunkContextLines = [];
6
+ let hunkLines = [];
7
+ const hunks = [];
8
+ for (const line of lines) {
9
+ if (line.startsWith(' ')) {
10
+ contextLines.push(line);
11
+ if (contextLines.length >= contextSize && hunkLines.length > 0) {
12
+ hunks.push({ lines: [...hunkLines, ...contextLines], ...hunk });
13
+ hunkLines = [];
14
+ }
15
+ }
16
+ else {
17
+ hunkLines.push(...contextLines);
18
+ hunkLines.push(line);
19
+ contextLines = [];
20
+ }
21
+ }
22
+ if (hunkLines.length > 0) {
23
+ hunks.push({ lines: [...contextLines, ...hunkLines], ...hunk });
24
+ }
25
+ return hunks;
26
+ };
27
+ export const applyChangesToFile = ({ templateFile, oldFileContents, newFileContents, contextSize = 2, fuzzFactor = 0 }) => {
28
+ const patch = structuredPatch(templateFile, templateFile, oldFileContents, newFileContents, undefined, undefined, {
29
+ context: contextSize,
30
+ newlineIsToken: false,
31
+ // ignoreWhitespace: true,
32
+ // oneChangePerToken: true,
33
+ // maxEditLength: 3,
34
+ });
35
+ patch.hunks = patch.hunks
36
+ .map(({ lines, ...remainning }) => ({
37
+ ...remainning,
38
+ lines: lines
39
+ .map(line => (line === '-' ? ' ' : line.replace('-import', ' import').replace('+import', ' import')))
40
+ .filter(line => line !== '+'),
41
+ }))
42
+ .filter(({ lines }) => lines.some(line => line.startsWith('+') || line.startsWith('-')));
43
+ // apply hunk by hunk, since if a hunk fails, the rest of the file will be skipped
44
+ const content = readFileSync(templateFile, 'utf8').toString();
45
+ let applied = content;
46
+ let failures = 0;
47
+ let success = 0;
48
+ for (const hunk of patch.hunks.map(hunk => splitHunk(hunk, contextSize)).flat()) {
49
+ const result = applyPatch(applied, { ...patch, hunks: [hunk] }, { fuzzFactor });
50
+ if (result) {
51
+ applied = result;
52
+ success++;
53
+ }
54
+ else {
55
+ failures++;
56
+ }
57
+ }
58
+ if (content !== applied) {
59
+ writeFileSync(templateFile, applied);
60
+ }
61
+ return { success, failures };
62
+ };
63
+ export const applyChangesToFileOrCopy = ({ templateFile, oldFileContents, ...opts }) => {
64
+ const result = applyChangesToFile({ templateFile, oldFileContents, ...opts });
65
+ if (result.success === 0 && result.failures > 0) {
66
+ let diskContents;
67
+ if (templateFile.endsWith('.ejs')) {
68
+ diskContents = `<%#
69
+ Copyright 2013-2025 the original author or authors from the JHipster project.
70
+
71
+ This file is part of the JHipster project, see https://www.jhipster.tech/
72
+ for more information.
73
+
74
+ Licensed under the Apache License, Version 2.0 (the "License");
75
+ you may not use this file except in compliance with the License.
76
+ You may obtain a copy of the License at
77
+
78
+ https://www.apache.org/licenses/LICENSE-2.0
79
+
80
+ Unless required by applicable law or agreed to in writing, software
81
+ distributed under the License is distributed on an "AS IS" BASIS,
82
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
83
+ See the License for the specific language governing permissions and
84
+ limitations under the License.
85
+ -%>
86
+ ${oldFileContents}`;
87
+ }
88
+ writeFileSync(templateFile, diskContents ?? oldFileContents, { encoding: 'utf-8' });
89
+ }
90
+ };
@@ -2,7 +2,6 @@ import { randomUUID } from 'node:crypto';
2
2
  import { appendFileSync, existsSync } from 'node:fs';
3
3
  import { EOL } from 'node:os';
4
4
  import process from 'node:process';
5
- import axios from 'axios';
6
5
  export const parseIssue = (issue) => {
7
6
  const result = /^(((?<owner>[^/]*)\/)?(?<repository>[^#]+)#)?(?<issue>\d+)$/.exec(issue);
8
7
  const groups = result?.groups;
@@ -29,13 +28,17 @@ export const setGithubTaskOutput = (name, value) => {
29
28
  };
30
29
  export const getGithubIssue = async ({ owner, repository, issue }) => {
31
30
  const token = process.env.GITHUB_TOKEN;
32
- const response = await axios.get(`https://api.github.com/repos/${owner}/${repository}/issues/${issue}`, {
31
+ const response = await fetch(`https://api.github.com/repos/${owner}/${repository}/issues/${issue}`, {
32
+ method: 'GET',
33
33
  headers: {
34
34
  'X-GitHub-Api-Version': '2022-11-28',
35
35
  Authorization: token ? `Bearer ${token}` : undefined,
36
36
  },
37
37
  });
38
- return response.data;
38
+ if (!response.ok) {
39
+ throw new Error(`Response status: ${response.status}`);
40
+ }
41
+ return await response.json();
39
42
  };
40
43
  export const getGithubSummaryFile = () => {
41
44
  const filePath = process.env.GITHUB_STEP_SUMMARY;
@@ -124,6 +124,7 @@ declare class JHipsterRunContext extends RunContext<GeneratorTestType> {
124
124
  withGradleBuildTool(): this;
125
125
  private withSharedData;
126
126
  run(): Promise<RunResult<GeneratorTestType>>;
127
+ withTask(priorityName: string, method: (...args: any[]) => any): this;
127
128
  }
128
129
  declare class JHipsterTest extends YeomanTest {
129
130
  constructor();
@@ -1,4 +1,5 @@
1
1
  import assert from 'node:assert';
2
+ import { randomInt } from 'node:crypto';
2
3
  import { basename, dirname, isAbsolute, join } from 'node:path';
3
4
  import { mock } from 'node:test';
4
5
  import { merge, set, snakeCase } from 'lodash-es';
@@ -337,6 +338,20 @@ plugins {
337
338
  };
338
339
  return runResult;
339
340
  }
341
+ withTask(priorityName, method) {
342
+ return this.onGenerator(async (gen) => {
343
+ const generator = gen;
344
+ generator.on('queueOwnTasks', () => {
345
+ const priority = generator._queues[priorityName];
346
+ const queueName = priority.queueName ?? priority.priorityName;
347
+ generator.queueTask({
348
+ taskName: `test-task${randomInt(1000)}`,
349
+ queueName,
350
+ method,
351
+ });
352
+ });
353
+ });
354
+ }
340
355
  }
341
356
  class JHipsterTest extends YeomanTest {
342
357
  constructor() {